@wordpress/components
Version:
UI components for WordPress.
74 lines (63 loc) • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.serializeGradientColor = serializeGradientColor;
exports.serializeGradientPosition = serializeGradientPosition;
exports.serializeGradientColorStop = serializeGradientColorStop;
exports.serializeGradientOrientation = serializeGradientOrientation;
exports.serializeGradient = serializeGradient;
var _lodash = require("lodash");
/**
* External dependencies
*/
function serializeGradientColor({
type,
value
}) {
if (type === 'literal') {
return value;
}
if (type === 'hex') {
return `#${value}`;
}
return `${type}(${value.join(',')})`;
}
function serializeGradientPosition(position) {
if (!position) {
return '';
}
const {
value,
type
} = position;
return `${value}${type}`;
}
function serializeGradientColorStop({
type,
value,
length
}) {
return `${serializeGradientColor({
type,
value
})} ${serializeGradientPosition(length)}`;
}
function serializeGradientOrientation(orientation) {
if (!orientation || orientation.type !== 'angular') {
return;
}
return `${orientation.value}deg`;
}
function serializeGradient({
type,
orientation,
colorStops
}) {
const serializedOrientation = serializeGradientOrientation(orientation);
const serializedColorStops = colorStops.sort((colorStop1, colorStop2) => {
return (0, _lodash.get)(colorStop1, ['length', 'value'], 0) - (0, _lodash.get)(colorStop2, ['length', 'value'], 0);
}).map(serializeGradientColorStop);
return `${type}(${(0, _lodash.compact)([serializedOrientation, ...serializedColorStops]).join(',')})`;
}
//# sourceMappingURL=serializer.js.map