UNPKG

vue-poster-editor

Version:

A poster editor based on Vue.js

93 lines (70 loc) 2.91 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _findIndex2 = require('lodash/findIndex'); var _findIndex3 = _interopRequireDefault(_findIndex2); var _defaultsDeep2 = require('lodash/defaultsDeep'); var _defaultsDeep3 = _interopRequireDefault(_defaultsDeep2); exports.hexaToRgba = hexaToRgba; exports.useEffects = useEffects; var _editorDefaults = require('../editor-defaults'); var _editorDefaults2 = _interopRequireDefault(_editorDefaults); var _onecolor = require('../utils/onecolor'); var _onecolor2 = _interopRequireDefault(_onecolor); var _tinycolor = require('tinycolor2'); var _tinycolor2 = _interopRequireDefault(_tinycolor); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function hexaToRgba(val) { var defaultVal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; if (!val) { return defaultVal; } var color = _onecolor2.default.rgbaParser(val); return color ? color.cssa() : defaultVal; }; function useEffects(type, props) { var effects = type === 'text' ? props.textEffects : props.imageEffects; if (!props.aggregatedColors || !props.aggregatedColors.length) { var aggregatedColors = []; effects.forEach(function (effect) { ['stroke', 'filling', 'shadow'].forEach(function (key) { if (!effect[key] || !effect[key].color) { return; } var color = aggregatedColors.find(function (color) { return _tinycolor2.default.equals(effect[key].color, color); }); if (!color && effect[key]) { aggregatedColors.push(effect[key].color); } }); }); props.aggregatedColors = aggregatedColors; } var effectType = type === 'text' ? 'textEffect' : 'imageEffect'; effects.forEach(function (effect) { (0, _defaultsDeep3.default)(effect, _editorDefaults2.default[effectType]); }); effects.forEach(function (effect) { ['stroke', 'filling', 'shadow'].forEach(function (key) { if (!effect[key] || !effect[key].color) { return; } var linkIndex = (0, _findIndex3.default)(props.aggregatedColors, function (aggregatedColor) { return _tinycolor2.default.equals(effect[key].color, aggregatedColor); }); if (linkIndex > -1) { effect[key].$linkIndex = linkIndex; } }); }); if (type === 'text') { var linkIndex = (0, _findIndex3.default)(props.aggregatedColors, function (aggregatedColor) { return _tinycolor2.default.equals(props.color, aggregatedColor); }); if (linkIndex > -1) { props.$linkIndex = linkIndex; } } };