UNPKG

zeplin-extension-style-kit

Version:

Models and utilities to generate CSS-like style code in Zeplin extensions.

104 lines (88 loc) 3.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _color = _interopRequireDefault(require("../values/color")); var _length = _interopRequireDefault(require("../values/length")); var _constants = require("../constants"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function compareShadow(s1, s2) { return s1.offsetX === s2.offsetX && s1.offsetY === s2.offsetY && s1.blurRadius === s2.blurRadius && s1.color.equals(s2.color); } var Shadow = /*#__PURE__*/function () { function Shadow(shadowObjects, type) { _classCallCheck(this, Shadow); this.objects = shadowObjects; this.type = type; } _createClass(Shadow, [{ key: "equals", value: function equals(other) { return this.type === other.type && this.objects.length === other.objects.length && this.objects.every(function (s, index) { return compareShadow(s, other.objects[index]); }); } }, { key: "getValue", value: function getValue(params, variables) { var shadows = this.objects, type = this.type; if (type === Shadow.TYPES.TEXT) { return shadows.map(function (s) { return Shadow.generateTextShadow(s, params, variables); }).join(", "); } return shadows.map(function (s) { return Shadow.generateBoxShadow(s, params, variables); }).join(", "); } }, { key: "name", get: function get() { return this.type === Shadow.TYPES.TEXT ? _constants.STYLE_PROPS.TEXT_SHADOW : _constants.STYLE_PROPS.BOX_SHADOW; } }], [{ key: "generateTextShadow", value: function generateTextShadow(shadow, _ref, variables) { var densityDivisor = _ref.densityDivisor, colorFormat = _ref.colorFormat; return "".concat(new _length.default(shadow.offsetX).toStyleValue({ densityDivisor }, variables), " ").concat(new _length.default(shadow.offsetY).toStyleValue({ densityDivisor }, variables), " ").concat(new _length.default(shadow.blurRadius).toStyleValue({ densityDivisor }, variables), " ").concat(new _color.default(shadow.color).toStyleValue({ colorFormat }, variables)); } }, { key: "generateBoxShadow", value: function generateBoxShadow(shadow, _ref2, variables) { var densityDivisor = _ref2.densityDivisor, colorFormat = _ref2.colorFormat; return "".concat((shadow.type === "inner" ? "inset " : "") + new _length.default(shadow.offsetX).toStyleValue({ densityDivisor }, variables), " ").concat(new _length.default(shadow.offsetY).toStyleValue({ densityDivisor }, variables), " ").concat(new _length.default(shadow.blurRadius).toStyleValue({ densityDivisor }, variables), " ").concat(new _length.default(shadow.spread).toStyleValue({ densityDivisor }, variables), " ").concat(new _color.default(shadow.color).toStyleValue({ colorFormat }, variables)); } }]); return Shadow; }(); Shadow.TYPES = Object.freeze({ TEXT: "text", BOX: "box" }); var _default = Shadow; exports.default = _default;