UNPKG

vue-poster-editor

Version:

A poster editor based on Vue.js

135 lines (115 loc) 3.59 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.commandValueMap = exports.commandAliasMap = exports.tagMap = exports.styleValueMap = exports.styleMap = exports.CUSTOMIZE_MARK = undefined; var _onecolor = require('../onecolor'); var _onecolor2 = _interopRequireDefault(_onecolor); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var CUSTOMIZE_MARK = 'data-customize'; var styleMap = reverseSetMap({ 'color': 'color', 'text-decoration': 'textDecoration', 'text-decoration-line': 'textDecoration', 'font-size': 'fontSize', 'font-family': 'fontFamily', 'font-weight': 'fontWeight', 'font-style': 'fontStyle' }); styleMap.textDecoration = 'text-decoration'; var styleValueMap = { 'color': function color(value) { return _onecolor2.default.cssa(value); }, 'font-size': function fontSize(value) { return isNaN(value - 0) ? value : value + 'px'; }, 'fontSize': function fontSize(value) { return parseFloat(value); }, 'font-weight': resetFontWeightValue, 'fontWeight': resetFontWeightValue, 'font-family': function fontFamily(value) { return value.replace(/"/g, '').split(',')[0]; }, 'fontFamily': function fontFamily(value) { return value.replace(/"/g, '').split(',')[0]; } }; var attrMap = { 'face': 'fontFamily' }; var tagMap = { 'b': { 'fontWeight': 700 }, 'strong': { 'fontWeight': 700 }, 'em': { 'fontStyle': 'italic' }, 'i': { 'fontStyle': 'italic' }, 'font': function font(inheritStyle, elem) { var result = {}; Array.prototype.slice.call(elem.attributes).forEach(function (prop) { var _name = attrMap[prop.name] || prop.name; result[_name] = prop.value; }); return result; }, 'u': function u(inheritStyle) { return mergeTextDecoration(inheritStyle, 'underline'); }, 'strike': function strike(inheritStyle) { return mergeTextDecoration(inheritStyle, 'line-through'); } }; var commandAliasMap = { 'fontWeight': 'bold', 'fontStyle': 'italic', 'color': 'foreColor', 'fontFamily': 'fontName' }; var commandValueMap = { 'fontSize': function fontSize(value) { return parseFloat(value); }, 'fontWeight': function fontWeight(value) { return value ? 700 : 400; }, 'fontStyle': function fontStyle(value) { return value ? 'italic' : 'normal'; }, 'fontFamily': function fontFamily(value) { return value.replace(/"/g, '').split(',')[0]; }, 'color': function color(value) { return value; }, 'textDecoration': function textDecoration(value) { return value; } }; exports.CUSTOMIZE_MARK = CUSTOMIZE_MARK; exports.styleMap = styleMap; exports.styleValueMap = styleValueMap; exports.tagMap = tagMap; exports.commandAliasMap = commandAliasMap; exports.commandValueMap = commandValueMap; function reverseSetMap(map) { Object.keys(map).forEach(function (name) { map[map[name]] = name; }); return map; } function mergeTextDecoration(inheritStyle, value) { var oldValue = inheritStyle['textDecoration']; if (!oldValue) { return { 'textDecoration': value }; } else if (oldValue.indexOf(value) === -1) { return { 'textDecoration': oldValue + ' ' + value }; } } function resetFontWeightValue(value) { var map = { '700': 700, 'bold': 700, 'true': 700 }; return map[value] || 400; }