zeplin-extension-style-kit
Version:
Models and utilities to generate CSS-like style code in Zeplin extensions.
104 lines (88 loc) • 3.9 kB
JavaScript
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;
;