UNPKG

@wordpress/style-engine

Version:
94 lines (84 loc) 3.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _utils = require("../utils"); /** * Internal dependencies */ const color = { name: 'color', generate: function (style, options) { let path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ['border', 'color']; let ruleKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'borderColor'; return (0, _utils.generateRule)(style, options, path, ruleKey); } }; const radius = { name: 'radius', generate: (style, options) => { return (0, _utils.generateBoxRules)(style, options, ['border', 'radius'], { default: 'borderRadius', individual: 'border%sRadius' }, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']); } }; const borderStyle = { name: 'style', generate: function (style, options) { let path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ['border', 'style']; let ruleKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'borderStyle'; return (0, _utils.generateRule)(style, options, path, ruleKey); } }; const width = { name: 'width', generate: function (style, options) { let path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ['border', 'width']; let ruleKey = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'borderWidth'; return (0, _utils.generateRule)(style, options, path, ruleKey); } }; const borderDefinitionsWithIndividualStyles = [color, borderStyle, width]; /** * Returns a curried generator function with the individual border property ('top' | 'right' | 'bottom' | 'left') baked in. * * @param individualProperty Individual border property ('top' | 'right' | 'bottom' | 'left'). * * @return StyleDefinition[ 'generate' ] */ const createBorderGenerateFunction = individualProperty => (style, options) => { var _style$border; const styleValue = style === null || style === void 0 ? void 0 : (_style$border = style.border) === null || _style$border === void 0 ? void 0 : _style$border[individualProperty]; if (!styleValue) { return []; } return borderDefinitionsWithIndividualStyles.reduce((acc, borderDefinition) => { const key = borderDefinition.name; if (styleValue.hasOwnProperty(key) && typeof borderDefinition.generate === 'function') { const ruleKey = `border${(0, _utils.upperFirst)(individualProperty)}${(0, _utils.upperFirst)(key)}`; acc.push(...borderDefinition.generate(style, options, ['border', individualProperty, key], ruleKey)); } return acc; }, []); }; const borderTop = { name: 'borderTop', generate: createBorderGenerateFunction('top') }; const borderRight = { name: 'borderRight', generate: createBorderGenerateFunction('right') }; const borderBottom = { name: 'borderBottom', generate: createBorderGenerateFunction('bottom') }; const borderLeft = { name: 'borderLeft', generate: createBorderGenerateFunction('left') }; var _default = [...borderDefinitionsWithIndividualStyles, radius, borderTop, borderRight, borderBottom, borderLeft]; exports.default = _default; //# sourceMappingURL=index.js.map