UNPKG

@gechiui/block-editor

Version:
82 lines (71 loc) 2.56 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ColorPanel; var _element = require("@gechiui/element"); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _lodash = require("lodash"); var _panelColorSettings = _interopRequireDefault(require("../panel-color-settings")); var _contrastChecker = _interopRequireDefault(require("../contrast-checker")); /** * External dependencies */ /** * Internal dependencies */ const resolveContrastCheckerColor = (color, colorSettings, detectedColor) => { if (typeof color === 'function') { return color(colorSettings); } else if (color === true) { return detectedColor; } return color; }; function ColorPanel(_ref) { let { title, colorSettings, colorPanelProps, contrastCheckers, detectedBackgroundColor, detectedColor, panelChildren, initialOpen } = _ref; return (0, _element.createElement)(_panelColorSettings.default, (0, _extends2.default)({ title: title, initialOpen: initialOpen, colorSettings: Object.values(colorSettings) }, colorPanelProps), contrastCheckers && (Array.isArray(contrastCheckers) ? contrastCheckers.map(_ref2 => { let { backgroundColor, textColor, ...rest } = _ref2; backgroundColor = resolveContrastCheckerColor(backgroundColor, colorSettings, detectedBackgroundColor); textColor = resolveContrastCheckerColor(textColor, colorSettings, detectedColor); return (0, _element.createElement)(_contrastChecker.default, (0, _extends2.default)({ key: `${backgroundColor}-${textColor}`, backgroundColor: backgroundColor, textColor: textColor }, rest)); }) : (0, _lodash.map)(colorSettings, _ref3 => { let { value } = _ref3; let { backgroundColor, textColor } = contrastCheckers; backgroundColor = resolveContrastCheckerColor(backgroundColor || value, colorSettings, detectedBackgroundColor); textColor = resolveContrastCheckerColor(textColor || value, colorSettings, detectedColor); return (0, _element.createElement)(_contrastChecker.default, (0, _extends2.default)({}, contrastCheckers, { key: `${backgroundColor}-${textColor}`, backgroundColor: backgroundColor, textColor: textColor })); })), typeof panelChildren === 'function' ? panelChildren(colorSettings) : panelChildren); } //# sourceMappingURL=color-panel.js.map