UNPKG

zeplin-extension-style-kit

Version:

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

81 lines (62 loc) 2.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _scalar = _interopRequireDefault(require("./scalar")); 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; } var remPrecisionAddition = 2; var Length = /*#__PURE__*/function () { function Length(value) { var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref$precision = _ref.precision, precision = _ref$precision === void 0 ? 1 : _ref$precision, _ref$useDensityDiviso = _ref.useDensityDivisor, useDensityDivisor = _ref$useDensityDiviso === void 0 ? true : _ref$useDensityDiviso, _ref$useRemUnit = _ref.useRemUnit, useRemUnit = _ref$useRemUnit === void 0 ? false : _ref$useRemUnit; _classCallCheck(this, Length); this.value = value; this.precision = precision; this.useDensityDivisor = useDensityDivisor; this.useRemUnit = function (remPreferences) { if (!remPreferences || !remPreferences.rootFontSize) { return false; } return useRemUnit instanceof Function ? useRemUnit(remPreferences) : useRemUnit; }; } _createClass(Length, [{ key: "valueOf", value: function valueOf() { var value = this.value, unit = this.unit; return "length::v:".concat(value, ":u:").concat(unit); } }, { key: "equals", value: function equals(other) { return this.value === other.value; } }, { key: "toStyleValue", value: function toStyleValue(_ref2) { var densityDivisor = _ref2.densityDivisor, remPreferences = _ref2.remPreferences; if (this.value === 0) { return "0"; } var densityAwareValue = this.useDensityDivisor ? this.value / densityDivisor : this.value; if (this.useRemUnit(remPreferences)) { return "".concat(new _scalar.default(densityAwareValue / remPreferences.rootFontSize, this.precision + remPrecisionAddition).toStyleValue(), "rem"); } return "".concat(new _scalar.default(densityAwareValue, this.precision).toStyleValue(), "px"); } }]); return Length; }(); var _default = Length; exports.default = _default;