UNPKG

docx4js-fork

Version:
159 lines (130 loc) 12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _document = require("../document"); var _document2 = _interopRequireDefault(_document); var _part = require("./part"); var _part2 = _interopRequireDefault(_part); var _color = require("color"); var _color2 = _interopRequireDefault(_color); 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 _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _class = function (_Base) { _inherits(_class, _Base); function _class() { _classCallCheck(this, _class); var _this = _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).apply(this, arguments)); _this.main = new _part2.default("", _this); _this.officeDocument = new _this.constructor.OfficeDocument(_this.main.getRelTarget("officeDocument"), _this); return _this; } _createClass(_class, [{ key: "render", value: function render() { var _officeDocument; return (_officeDocument = this.officeDocument).render.apply(_officeDocument, arguments); } }, { key: "parse", value: function parse() { var _officeDocument2; return (_officeDocument2 = this.officeDocument).parse.apply(_officeDocument2, arguments); } }, { key: "dxa2Px", value: function dxa2Px(a) { return this.pt2Px(a / 20.0); } }, { key: "emu2Px", value: function emu2Px(a) { return this.pt2Px(a / 12700); } }, { key: "pt2Px", value: function pt2Px(pt) { return pt * 96 / 72; } }, { key: "cm2Px", value: function cm2Px(cm) { return this.pt2Px(parseInt(cm) * 28.3464567); } }, { key: "asColor", value: function asColor(v, transform) { if (!v || v.length == 0 || v == 'auto') return '#000000'; v = v.split(' ')[0]; var rgb = v.charAt(0) == '#' ? v : RGB.test(v) ? '#' + v : v; if (transform) { var lumMod = transform.lumMod, lumOff = transform.lumOff, tint = transform.tint, shade = transform.shade; if (lumMod || lumOff || tint) { var color = (0, _color2.default)(rgb); if (tint != undefined) { color = color.lighten(1 - tint); } if (lumMod != undefined) { color = color.lighten(lumMod); } if (lumOff != undefined) { color = color.darken(lumOff); } if (shade != undefined) { color = color.red(color.red() * (1 + shade)).green(color.green() * (1 + shade)).blue(color.blue() * (1 + shade)); } return ("" + color.hex()).replace(/^0x/, "#"); } } return rgb; } }, { key: "toPx", value: function toPx(length) { var value = parseFloat(length), units = String(length).match(RE_LENGTH_UNIT)[1]; switch (units) { case 'cm': return this.cm2Px(value); case 'mm': return this.cm2Px(value / 10); case 'in': return this.pt2Px(value * 72); case 'pt': return this.pt2Px(value); case 'ft': return this.pt2Px(value * 864); default: return value; } } }, { key: "vender", get: function get() { "Microsoft"; } }, { key: "product", get: function get() { return 'Office 2010'; } }, { key: "contentTypes", get: function get() { return this.getObjectPart("[Content_Types].xml")("Types"); } }]); return _class; }(_document2.default); _class.OfficeDocument = _part2.default; exports.default = _class; var RGB = /([a-fA-F0-9]{2}?){3}?/; var RE_LENGTH_UNIT = /^([a-zA-Z]+)$/; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVueG1sL2RvY3VtZW50LmpzIl0sIm5hbWVzIjpbImFyZ3VtZW50cyIsIm1haW4iLCJvZmZpY2VEb2N1bWVudCIsImNvbnN0cnVjdG9yIiwiT2ZmaWNlRG9jdW1lbnQiLCJnZXRSZWxUYXJnZXQiLCJyZW5kZXIiLCJwYXJzZSIsImEiLCJwdDJQeCIsInB0IiwiY20iLCJwYXJzZUludCIsInYiLCJ0cmFuc2Zvcm0iLCJsZW5ndGgiLCJzcGxpdCIsInJnYiIsImNoYXJBdCIsIlJHQiIsInRlc3QiLCJsdW1Nb2QiLCJsdW1PZmYiLCJ0aW50Iiwic2hhZGUiLCJjb2xvciIsInVuZGVmaW5lZCIsImxpZ2h0ZW4iLCJkYXJrZW4iLCJyZWQiLCJncmVlbiIsImJsdWUiLCJoZXgiLCJyZXBsYWNlIiwidmFsdWUiLCJwYXJzZUZsb2F0IiwidW5pdHMiLCJTdHJpbmciLCJtYXRjaCIsIlJFX0xFTkdUSF9VTklUIiwiY20yUHgiLCJnZXRPYmplY3RQYXJ0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7O0FBR0MsbUJBQWE7QUFBQTs7QUFBQSwrR0FDSEEsU0FERzs7QUFFWixRQUFLQyxJQUFMLEdBQVUsbUJBQVMsRUFBVCxRQUFWO0FBQ0EsUUFBS0MsY0FBTCxHQUFvQixJQUFJLE1BQUtDLFdBQUwsQ0FBaUJDLGNBQXJCLENBQW9DLE1BQUtILElBQUwsQ0FBVUksWUFBVixDQUF1QixnQkFBdkIsQ0FBcEMsUUFBcEI7QUFIWTtBQUlaOzs7OzJCQVNPO0FBQUE7O0FBQ1AsVUFBTyx3QkFBS0gsY0FBTCxFQUFvQkksTUFBcEIsd0JBQThCTixTQUE5QixDQUFQO0FBQ0E7OzswQkFFTTtBQUFBOztBQUNOLFVBQU8seUJBQUtFLGNBQUwsRUFBb0JLLEtBQXBCLHlCQUE2QlAsU0FBN0IsQ0FBUDtBQUNBOzs7eUJBRU1RLEMsRUFBRTtBQUNSLFVBQU8sS0FBS0MsS0FBTCxDQUFXRCxJQUFFLElBQWIsQ0FB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QW1CLHFCQUFuQixFQUEwQyxPQUExQyxDQUFQO0FBQ0E7Ozs7OztPQTRFTXJDLGM7OztBQUVSLElBQU1lLE1BQUksdUJBQVY7QUFDQSxJQUFNb0IsaUJBQWUsZUFBckIiLCJmaWxlIjoiZG9jdW1lbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmFzZSBmcm9tIFwiLi4vZG9jdW1lbnRcIlxyXG5pbXBvcnQgUGFydCBmcm9tICcuL3BhcnQnXHJcbmltcG9ydCBDb2xvciBmcm9tIFwiY29sb3JcIlxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgZXh0ZW5kcyBCYXNle1xyXG5cdGNvbnN0cnVjdG9yKCl7XHJcblx0XHRzdXBlciguLi5hcmd1bWVudHMpXHJcblx0XHR0aGlzLm1haW49bmV3IFBhcnQoXCJcIix0aGlzKVxyXG5cdFx0dGhpcy5vZmZpY2VEb2N1bWVudD1uZXcgdGhpcy5jb25zdHJ1Y3Rvci5PZmZpY2VEb2N1bWVudCh0aGlzLm1haW4uZ2V0UmVsVGFyZ2V0KFwib2ZmaWNlRG9jdW1lbnRcIiksIHRoaXMpXHJcblx0fVxyXG5cdGdldCB2ZW5kZXIoKXtcIk1pY3Jvc29mdFwifVxyXG5cclxuXHRnZXQgcHJvZHVjdCgpe3JldHVybiAnT2ZmaWNlIDIwMTAnfVxyXG5cclxuXHRnZXQgY29udGVudFR5cGVzKCl7XHJcblx0XHRyZXR1cm4gdGhpcy5nZXRPYmplY3RQYXJ0KFwiW0NvbnRlbnRfVHlwZXNdLnhtbFwiKShcIlR5cGVzXCIpXHJcblx0fVxyXG5cclxuXHRyZW5kZXIoKXtcclxuXHRcdHJldHVybiB0aGlzLm9mZmljZURvY3VtZW50LnJlbmRlciguLi5hcmd1bWVudHMpXHJcblx0fVxyXG5cclxuXHRwYXJzZSgpe1xyXG5cdFx0cmV0dXJuIHRoaXMub2ZmaWNlRG9jdW1lbnQucGFyc2UoLi4uYXJndW1lbnRzKVxyXG5cdH1cclxuXHJcblx0ZHhhMlB4KGEpe1xyXG5cdFx0cmV0dXJuIHRoaXMucHQyUHgoYS8yMC4wKVxyXG5cdH1cclxuXHJcblx0ZW11MlB4KGEpe1xyXG5cdFx0cmV0dXJuIHRoaXMucHQyUHgoYS8xMjcwMClcclxuXHR9XHJcblx0XHJcblxyXG5cdHB0MlB4KHB0KXtcclxuXHRcdHJldHVybiBwdCo5Ni83MlxyXG5cdH1cclxuXHJcblx0Y20yUHgoY20pe1xyXG5cdFx0cmV0dXJuIHRoaXMucHQyUHgocGFyc2VJbnQoY20pKjI4LjM0NjQ1NjcpXHJcblx0fVxyXG5cclxuXHRhc0NvbG9yKHYsIHRyYW5zZm9ybSl7XHJcblx0XHRpZighdiB8fCB2Lmxlbmd0aD09MCB8fCB2PT0nYXV0bycpXHJcblx0XHRcdHJldHVybiAnIzAwMDAwMCdcclxuXHRcdHY9di5zcGxpdCgnICcpWzBdXHJcblx0XHRjb25zdCByZ2I9di5jaGFyQXQoMCk9PScjJyA/IHYgOiAoUkdCLnRlc3QodikgPyAnIycrdiA6IHYpXHJcblx0XHRpZih0cmFuc2Zvcm0pe1xyXG5cdFx0XHRjb25zdCB7bHVtTW9kLGx1bU9mZix0aW50LHNoYWRlfT10cmFuc2Zvcm1cclxuXHRcdFx0aWYobHVtTW9kfHxsdW1PZmZ8fHRpbnQpe1xyXG5cdFx0ICAgICAgICBsZXQgY29sb3I9Q29sb3IocmdiKVxyXG5cclxuXHRcdCAgICAgICAgaWYodGludCE9dW5kZWZpbmVkKXtcclxuXHRcdCAgICAgICAgICAgIGNvbG9yPWNvbG9yLmxpZ2h0ZW4oMS10aW50KVxyXG5cdFx0ICAgICAgICB9XHJcblxyXG5cdFx0ICAgICAgICBpZihsdW1Nb2QhPXVuZGVmaW5lZCl7XHJcblx0XHQgICAgICAgICAgICBjb2xvcj1jb2xvci5saWdodGVuKGx1bU1vZClcclxuXHRcdCAgICAgICAgfVxyXG5cclxuXHRcdCAgICAgICAgaWYobHVtT2ZmIT11bmRlZmluZWQpe1xyXG5cdFx0ICAgICAgICAgICAgY29sb3I9Y29sb3IuZGFya2VuKGx1bU9mZilcclxuXHRcdCAgICAgICAgfVxyXG5cclxuXHRcdFx0XHRpZihzaGFkZSE9dW5kZWZpbmVkKXtcclxuXHRcdFx0XHRcdGNvbG9yPWNvbG9yXHJcblx0XHRcdFx0XHRcdC5yZWQoY29sb3IucmVkKCkqKDErc2hhZGUpKVxyXG5cdFx0XHRcdFx0XHQuZ3JlZW4oY29sb3IuZ3JlZW4oKSooMStzaGFkZSkpXHJcblx0XHRcdFx0XHRcdC5ibHVlKGNvbG9yLmJsdWUoKSooMStzaGFkZSkpXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdCAgICAgICAgcmV0dXJuIGAke2NvbG9yLmhleCgpfWAucmVwbGFjZSgvXjB4LyxcIiNcIilcclxuXHRcdCAgICB9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gcmdiXHJcblx0fVxyXG5cdFxyXG5cdHRvUHgobGVuZ3RoKSB7XHJcblx0XHR2YXIgdmFsdWUgPSBwYXJzZUZsb2F0KGxlbmd0aCksXHJcblx0XHRcdHVuaXRzID0gU3RyaW5nKGxlbmd0aCkubWF0Y2goUkVfTEVOR1RIX1VOSVQpWzFdO1xyXG5cclxuXHRcdHN3aXRjaCAodW5pdHMpIHtcclxuXHRcdFx0Y2FzZSAnY20nIDogcmV0dXJuIHRoaXMuY20yUHgodmFsdWUpO1xyXG5cdFx0XHRjYXNlICdtbScgOiByZXR1cm4gdGhpcy5jbTJQeCh2YWx1ZSAvIDEwKTtcclxuXHRcdFx0Y2FzZSAnaW4nIDogcmV0dXJuIHRoaXMucHQyUHgodmFsdWUgKiA3Mik7XHJcblx0XHRcdGNhc2UgJ3B0JyA6IHJldHVybiB0aGlzLnB0MlB4KHZhbHVlKTtcclxuXHRcdFx0Y2FzZSAnZnQnIDogcmV0dXJuIHRoaXMucHQyUHgodmFsdWUqODY0KVxyXG5cdFx0XHRkZWZhdWx0ICAgOiByZXR1cm4gdmFsdWU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgT2ZmaWNlRG9jdW1lbnQ9UGFydFxyXG59XHJcbmNvbnN0IFJHQj0vKFthLWZBLUYwLTldezJ9Pyl7M30/LztcclxuY29uc3QgUkVfTEVOR1RIX1VOSVQ9L14oW2EtekEtWl0rKSQvXHJcbiJdfQ==