UNPKG

formio-export-mc

Version:
1,298 lines (996 loc) 763 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("lodash")); else if(typeof define === 'function' && define.amd) define("formio-export-mc", ["_"], factory); else if(typeof exports === 'object') exports["formio-export-mc"] = factory(require("lodash")); else root["formio-export-mc"] = factory(root["_"]); })(window, function(__WEBPACK_EXTERNAL_MODULE__0__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 66); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE__0__; /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _lodash = __webpack_require__(0); var _lodash2 = _interopRequireDefault(_lodash); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var FormioExportUtils = { /** * Verifies an object properties. * * @param {Object} obj * The object to verify * @param {Object} props * The properties to be verified * @returns {Object} * The verified object */ verifyProperties: function verifyProperties(obj, props) { // verify arguments props = _lodash2.default.isPlainObject(props) ? props : {}; obj = _lodash2.default.isPlainObject(obj) ? obj : {}; // verify each property _lodash2.default.forEach(props, function (prop, key) { // check if there is any default value defined if (prop.hasOwnProperty('default') && !obj.hasOwnProperty(key)) { // set default property value obj[key] = prop.default; } // check if the property is required and defined if (prop.required && _lodash2.default.isNil(obj[key])) { // if not defined, throw error throw new Error('[FormioExportUtils] invalid property (' + key + ' is required)'); } // check that the property type is valid (defined by constructors) if (prop.hasOwnProperty('type') && obj.hasOwnProperty(key)) { // check if property has a valid type var found = !!_lodash2.default.find(_lodash2.default.isArray(prop.type) ? prop.type : [prop.type], function (type) { return FormioExportUtils.isOfType(obj[key], type); }); // check if there has been a match if (!found) { // if no match found, throw error throw new Error('[FormioExportUtils] invalid property (' + key + ' type is invalid)'); } } }); // return the verified object return obj; }, /** * Check if an object is of a certain type * * @param {any} obj * The object to check * @param {Function} type * The type (constructor) to compare to * @returns {Boolean} * Is of same type */ isOfType: function isOfType(obj, type) { switch (type) { case null: return _lodash2.default.isNull(obj); case undefined: return _lodash2.default.isUndefined(obj); case String: return _lodash2.default.isString(obj); case Number: return _lodash2.default.isNumber(obj); case Boolean: return _lodash2.default.isBoolean(obj); case Array: return _lodash2.default.isArray(obj); case Object: return _lodash2.default.isPlainObject(obj); case Element: return _lodash2.default.isElement(obj) || _lodash2.default.isObject(obj) && obj.nodeType > 0; case Function: return _lodash2.default.isFunction(obj); case Date: return _lodash2.default.isDate(obj); case RegExp: return _lodash2.default.isRegExp(obj); case Error: return _lodash2.default.isError(obj); case Symbol: return _lodash2.default.isSymbol(obj); default: console.warn('[FormioExportUtils] type not implemented'); return false; } }, /** * Check if an object is a valid Formio form * * @param {Object} [obj={}] * The object to check * @returns {Boolean} * Is valid Formio form */ isFormioForm: function isFormioForm() { var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return _lodash2.default.isPlainObject(obj) && _lodash2.default.isArray(obj.components) && obj.display === 'form'; }, /** * Check if an object is a valid Formio wizard * * @param {Object} [obj={}] * The object to check * @returns {Boolean} * Is valid Formio wizard */ isFormioWizard: function isFormioWizard() { var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return _lodash2.default.isPlainObject(obj) && _lodash2.default.isArray(obj.components) && obj.display === 'wizard'; }, /** * Check if an object is a valid Formio submission * * @param {Object} [obj={}] * The object to check * @returns {Boolean} * Is valid Formio submission */ isFormioSubmission: function isFormioSubmission() { var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return _lodash2.default.isPlainObject(obj) && _lodash2.default.isPlainObject(obj.data) && obj.hasOwnProperty('_id'); }, /** * Get the value for a component key, in the given submission. * * @param {Object} data * A submission or data object to search. * @param {String} key * A for components API key to search for. */ getValue: function getValue(data, key) { var search = function search(obj) { if (_lodash2.default.isPlainObject(obj)) { if (_lodash2.default.has(obj, key)) { return obj[key]; } var value = null; _lodash2.default.forOwn(obj, function (prop) { var result = search(prop); if (!_lodash2.default.isNil(result)) { value = result; return false; } return true; }); return value; } return null; }; return FormioExportUtils.isFormioSubmission(data) ? search(data.data) : search(data); }, /** * Interpolate a string and add data replacements. * * @param string * The template string to use for interpolation * @param data * The data object to interpolate * @returns {XML|string|*|void} */ interpolate: function interpolate(string, data) { var templateSettings = { evaluate: /\{%(.+?)%\}/g, interpolate: /\{\{(.+?)\}\}/g, escape: /\{\{\{(.+?)\}\}\}/g }; try { return _lodash2.default.template(string, templateSettings)(data); } catch (err) { console.warn('Error interpolating template', err, string, data); return null; } }, /** * Iterate through each component within a form. * * @param {Object} components * The components to iterate. * @param {Function} fn * The iteration function to invoke for each component. * @param {Boolean} includeAll * Whether or not to include layout components. * @param {String} path * The current data path of the element. Example: data.user.firstName * @param {Object} parent * The parent object. */ eachComponent: function eachComponent(components, fn, includeAll, path, parent) { if (!components) return; path = path || ''; components.forEach(function (component) { var hasColumns = component.columns && Array.isArray(component.columns); var hasRows = component.rows && Array.isArray(component.rows); var hasComps = component.components && Array.isArray(component.components); var noRecurse = false; var newPath = component.key ? path ? path + '.' + component.key : component.key : ''; // Keep track of parent references. if (parent) { // Ensure we don't create infinite JSON structures. component.parent = _lodash2.default.clone(parent); delete component.parent.components; delete component.parent.componentMap; delete component.parent.columns; delete component.parent.rows; } if (includeAll || component.tree || !hasColumns && !hasRows && !hasComps) { noRecurse = fn(component, newPath); } var subPath = function subPath() { if (component.key && (['datagrid', 'container', 'editgrid'].includes(component.type) || component.tree)) { return newPath; } else if (component.key && component.type === 'form') { return newPath + '.data'; } return path; }; if (!noRecurse) { if (hasColumns) { component.columns.forEach(function (column) { return FormioExportUtils.eachComponent(column.components, fn, includeAll, subPath(), parent ? component : null); }); } else if (hasRows) { component.rows.forEach(function (row) { return row.forEach(function (column) { return FormioExportUtils.eachComponent(column.components, fn, includeAll, subPath(), parent ? component : null); }); }); } else if (hasComps) { FormioExportUtils.eachComponent(component.components, fn, includeAll, subPath(), parent ? component : null); } } }); }, /** * Creates a DOM element with optional attributes and children elements. * * @param {String} tag * The DOM element tag name * @param {any} args * The DOM element attributes and / or children nodes * @returns {Element} * The DOM element */ createElement: function createElement(tag) { for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } var el = document.createElement(tag); var attributes = {}; // check if there are attributes defined if (!!args[0] && _typeof(args[0]) === 'object') { attributes = args[0]; // ...and remove them from args args = args.slice(1); } // check if HTML style is defined as object if (!!attributes.style && _typeof(attributes.style) === 'object') { // transform the style object into string attributes.style = _lodash2.default.map(attributes.style, function (value, key) { return key + ':' + value; }).join(';'); } // check if innerHTML is defined if (attributes.hasOwnProperty('innerHTML')) { // ...and delete the original innerHTML property el.innerHTML = attributes.innerHTML; delete attributes.innerHTML; } else { // create HTML element with supplied attributes and children (if any) _lodash2.default.forEach(args, function (arg) { if (_lodash2.default.isString(arg)) { el.appendChild(document.createTextNode(arg)); } else if (_lodash2.default.isElement(arg) || _lodash2.default.isObject(arg) && arg.nodeType > 0) { el.appendChild(arg); } }); } _lodash2.default.forEach(attributes, function (value, key) { el.setAttribute(key, value); }); // return the created HTML element return el; } }; exports.default = FormioExportUtils; module.exports = exports['default']; /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { "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 _lodash = __webpack_require__(0); var _lodash2 = _interopRequireDefault(_lodash); var _utils = __webpack_require__(1); var _utils2 = _interopRequireDefault(_utils); var _2 = __webpack_require__(10); var _3 = _interopRequireDefault(_2); var _plugins = __webpack_require__(64); 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"); } } var BaseComponent = function () { function BaseComponent(component, data) { var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; _classCallCheck(this, BaseComponent); if (!(this instanceof BaseComponent)) { return new BaseComponent(component, data); } this.type = ''; this._options = _lodash2.default.cloneDeep(options); this._value = null; this._dims = {}; this._baseWidth = 1; this._baseHeight = 1; this._component = component; if (_lodash2.default.isObject(component) && component.hasOwnProperty('type')) { var comp = _lodash2.default.cloneDeep(component); for (var property in comp) { this[property] = comp[property]; } } if (data === null) { return this; } if (_lodash2.default.isPlainObject(data)) { this._value = _utils2.default.getValue({ data: data }, this.key); if (_lodash2.default.isNil(this._value) && !this.input) { this._value = _lodash2.default.cloneDeep(data); } } else { this._value = data; } } _createClass(BaseComponent, [{ key: 'getLabel', value: function getLabel() { return this.legend || this.title || this.label || this.key; } }, { key: 'emptyValue', value: function emptyValue() { return _lodash2.default.isNil(this._options.emptyValue) ? '' : this._options.emptyValue; } }, { key: 'toHtml', value: function toHtml(element) { return (0, _plugins.toHtml)(element, this); } }, { key: 'getDimensions', value: function getDimensions() { this._dims = (0, _plugins.getDimensions)(this); return this._dims; } }, { key: 'hasComponents', value: function hasComponents() { var hasColumns = this.columns && Array.isArray(this.columns); var hasRows = this.rows && Array.isArray(this.rows); var hasComps = this.components && Array.isArray(this.components); return hasColumns || hasRows || hasComps; } }, { key: 'updateDimensions', value: function updateDimensions() { this._width = 1; this._height = 1; } }, { key: 'createComponent', value: function createComponent(component, data, options) { return _3.default.create(component, data, options); } }, { key: 'formatValue', value: function formatValue() { if (_lodash2.default.isNil(this._value)) { return this.emptyValue(); } return this._value.toString(); } }, { key: 'isLayoutComponent', value: function isLayoutComponent() { return false; } }]); return BaseComponent; }(); exports.default = BaseComponent; module.exports = exports['default']; /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { "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 _lodash = __webpack_require__(0); var _lodash2 = _interopRequireDefault(_lodash); var _base = __webpack_require__(2); var _base2 = _interopRequireDefault(_base); 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 TextFieldComponent = function (_BaseComponent) { _inherits(TextFieldComponent, _BaseComponent); function TextFieldComponent(component, data, options) { _classCallCheck(this, TextFieldComponent); return _possibleConstructorReturn(this, (TextFieldComponent.__proto__ || Object.getPrototypeOf(TextFieldComponent)).call(this, component, data, options)); } _createClass(TextFieldComponent, [{ key: 'formatValue', value: function formatValue() { if (_lodash2.default.isEmpty(this._value)) { return this.emptyValue(); } return _lodash2.default.isString(this._value) ? this._value : this._value.toString(); } }]); return TextFieldComponent; }(_base2.default); exports.default = TextFieldComponent; module.exports = exports['default']; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { "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 _lodash = __webpack_require__(0); var _lodash2 = _interopRequireDefault(_lodash); var _base = __webpack_require__(2); var _base2 = _interopRequireDefault(_base); var _plugins = __webpack_require__(36); 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 ContainerComponent = function (_BaseComponent) { _inherits(ContainerComponent, _BaseComponent); function ContainerComponent(component, data, options) { _classCallCheck(this, ContainerComponent); var _this = _possibleConstructorReturn(this, (ContainerComponent.__proto__ || Object.getPrototypeOf(ContainerComponent)).call(this, component, data, options)); if (_this.components && _lodash2.default.isArray(_this.components)) { var components = []; _lodash2.default.forEach(_this.components, function (c) { components.push(_this.createComponent(c, data, options)); }); _this.components = components; } return _this; } _createClass(ContainerComponent, [{ key: 'toHtml', value: function toHtml(element) { return (0, _plugins.toHtml)(element, this); } }]); return ContainerComponent; }(_base2.default); exports.default = ContainerComponent; module.exports = exports['default']; /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _container = __webpack_require__(4); var _container2 = _interopRequireDefault(_container); 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 PanelComponent = function (_ContainerComponent) { _inherits(PanelComponent, _ContainerComponent); function PanelComponent(component, data, options) { _classCallCheck(this, PanelComponent); return _possibleConstructorReturn(this, (PanelComponent.__proto__ || Object.getPrototypeOf(PanelComponent)).call(this, component, data, options)); } return PanelComponent; }(_container2.default); exports.default = PanelComponent; module.exports = exports['default']; /***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) { "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 _base = __webpack_require__(2); var _base2 = _interopRequireDefault(_base); var _plugins = __webpack_require__(39); 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 FileComponent = function (_BaseComponent) { _inherits(FileComponent, _BaseComponent); function FileComponent(component, data, options) { _classCallCheck(this, FileComponent); return _possibleConstructorReturn(this, (FileComponent.__proto__ || Object.getPrototypeOf(FileComponent)).call(this, component, data, options)); } _createClass(FileComponent, [{ key: 'toHtml', value: function toHtml(element) { return (0, _plugins.toHtml)(element, this); } }]); return FileComponent; }(_base2.default); exports.default = FileComponent; module.exports = exports['default']; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "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 _lodash = __webpack_require__(0); var _lodash2 = _interopRequireDefault(_lodash); var _utils = __webpack_require__(1); var _utils2 = _interopRequireDefault(_utils); var _base = __webpack_require__(2); var _base2 = _interopRequireDefault(_base); var _plugins = __webpack_require__(45); 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 SelectComponent = function (_BaseComponent) { _inherits(SelectComponent, _BaseComponent); function SelectComponent(component, data, options) { _classCallCheck(this, SelectComponent); var _this = _possibleConstructorReturn(this, (SelectComponent.__proto__ || Object.getPrototypeOf(SelectComponent)).call(this, component, data, options)); if (!_this.multiple) { _this._value = [_this._value]; } return _this; } _createClass(SelectComponent, [{ key: 'toHtml', value: function toHtml(element) { return (0, _plugins.toHtml)(element, this); } }, { key: 'formatValues', value: function formatValues() { var _this2 = this; if (_lodash2.default.isNil(this._value)) { return this.emptyValue(); } var values = []; _lodash2.default.forEach(this._value, function (value) { values.push(_this2.formatValue(value)); }); return values; } }, { key: 'formatValue', value: function formatValue(value) { if (_lodash2.default.isNil(value)) { return this.emptyValue(); } switch (this.dataSrc) { case 'url': return value; case 'custom': case 'resource': return _lodash2.default.isPlainObject(value) ? _utils2.default.interpolate(this.template, { item: value }) : value; case 'values': case 'json': var valueProperty = this.valueProperty || 'value'; var item = _lodash2.default.find(this.data[this.dataSrc], function (o) { return o[valueProperty] === value; }); return _lodash2.default.isPlainObject(item) ? _utils2.default.interpolate(this.template, { item: item }) : value; default: return value; } } }]); return SelectComponent; }(_base2.default); exports.default = SelectComponent; module.exports = exports['default']; /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { "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 _utils = __webpack_require__(1); var _utils2 = _interopRequireDefault(_utils); 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"); } } var FormioExportTranslation = function () { function FormioExportTranslation() { _classCallCheck(this, FormioExportTranslation); } _createClass(FormioExportTranslation, null, [{ key: 'translateComponent', value: function translateComponent(components, options) { if (!(options.hasOwnProperty('i18n') && !!options.i18n)) { return components; } if (!(options.hasOwnProperty('language') && !!options.language)) { return components; } _utils2.default.eachComponent(components, function (component) { ['label', 'content', 'customMessage'].forEach(function (property) { FormioExportTranslation.translateProperty(property, component, FormioExportTranslation, options); }); }, true); return components; } }, { key: 'translateProperty', value: function translateProperty(property, component, FormioExportTranslation, options) { if (component.hasOwnProperty(property)) { component[property] = FormioExportTranslation.translate(component[property], options); } ['questions', 'values'].forEach(function (arrayProperty) { FormioExportTranslation.translateArrayProperty(component, arrayProperty, property, FormioExportTranslation, options); }); } }, { key: 'translateArrayProperty', value: function translateArrayProperty(component, arrayProperty, property, FormioExportTranslation, options) { if (component.hasOwnProperty(arrayProperty)) { component[arrayProperty].forEach(function (arrayProperty) { if (arrayProperty.hasOwnProperty(property)) { arrayProperty[property] = FormioExportTranslation.translate(arrayProperty[property], options); } }); } } }, { key: 'translate', value: function translate(value, options) { var translated; if (options && options.i18n) { translated = options.i18n[options.language][value]; return translated ? translated : value; } return value; } }]); return FormioExportTranslation; }(); exports.default = FormioExportTranslation; ; module.exports = exports['default']; /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { "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 _lodash = __webpack_require__(0); var _lodash2 = _interopRequireDefault(_lodash); var _base = __webpack_require__(2); var _base2 = _interopRequireDefault(_base); 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 NumberComponent = function (_BaseComponent) { _inherits(NumberComponent, _BaseComponent); function NumberComponent(component, data, options) { _classCallCheck(this, NumberComponent); return _possibleConstructorReturn(this, (NumberComponent.__proto__ || Object.getPrototypeOf(NumberComponent)).call(this, component, data, options)); } _createClass(NumberComponent, [{ key: 'formatValue', value: function formatValue() { if (_lodash2.default.isNil(this._value)) { return this.emptyValue(); } return this._value.toLocaleString(); } }]); return NumberComponent; }(_base2.default); exports.default = NumberComponent; module.exports = exports['default']; /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _textfield = __webpack_require__(3); var _textfield2 = _interopRequireDefault(_textfield); var _textarea = __webpack_require__(61); var _textarea2 = _interopRequireDefault(_textarea); var _email = __webpack_require__(60); var _email2 = _interopRequireDefault(_email); var _password = __webpack_require__(59); var _password2 = _interopRequireDefault(_password); var _phonenumber = __webpack_require__(58); var _phonenumber2 = _interopRequireDefault(_phonenumber); var _number = __webpack_require__(9); var _number2 = _interopRequireDefault(_number); var _currency = __webpack_require__(57); var _currency2 = _interopRequireDefault(_currency); var _datetime = __webpack_require__(56); var _datetime2 = _interopRequireDefault(_datetime); var _day = __webpack_require__(55); var _day2 = _interopRequireDefault(_day); var _time = __webpack_require__(54); var _time2 = _interopRequireDefault(_time); var _address = __webpack_require__(53); var _address2 = _interopRequireDefault(_address); var _checkbox = __webpack_require__(52); var _checkbox2 = _interopRequireDefault(_checkbox); var _radio = __webpack_require__(49); var _radio2 = _interopRequireDefault(_radio); var _selectboxes = __webpack_require__(48); var _selectboxes2 = _interopRequireDefault(_selectboxes); var _select = __webpack_require__(7); var _select2 = _interopRequireDefault(_select); var _resource = __webpack_require__(43); var _resource2 = _interopRequireDefault(_resource); var _survey = __webpack_require__(42); var _survey2 = _interopRequireDefault(_survey); var _file = __webpack_require__(6); var _file2 = _interopRequireDefault(_file); var _signature = __webpack_require__(37); var _signature2 = _interopRequireDefault(_signature); var _container = __webpack_require__(4); var _container2 = _interopRequireDefault(_container); var _datagrid = __webpack_require__(34); var _datagrid2 = _interopRequireDefault(_datagrid); var _editgrid = __webpack_require__(30); var _editgrid2 = _interopRequireDefault(_editgrid); var _form = __webpack_require__(29); var _form2 = _interopRequireDefault(_form); var _columns = __webpack_require__(25); var _columns2 = _interopRequireDefault(_columns); var _panel = __webpack_require__(5); var _panel2 = _interopRequireDefault(_panel); var _fieldset = __webpack_require__(21); var _fieldset2 = _interopRequireDefault(_fieldset); var _htmlelement = __webpack_require__(20); var _htmlelement2 = _interopRequireDefault(_htmlelement); var _unknown = __webpack_require__(19); var _unknown2 = _interopRequireDefault(_unknown); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var FormioComponent = { textfield: _textfield2.default, textarea: _textarea2.default, email: _email2.default, password: _password2.default, phoneNumber: _phonenumber2.default, number: _number2.default, currency: _currency2.default, datetime: _datetime2.default, day: _day2.default, time: _time2.default, address: _address2.default, checkbox: _checkbox2.default, radio: _radio2.default, selectboxes: _selectboxes2.default, select: _select2.default, resource: _resource2.default, survey: _survey2.default, file: _file2.default, signature: _signature2.default, container: _container2.default, datagrid: _datagrid2.default, editgrid: _editgrid2.default, columns: _columns2.default, panel: _panel2.default, fieldset: _fieldset2.default, htmlelement: _htmlelement2.default, unknown: _unknown2.default, form: _form2.default, create: function create(component, data, options) { var c = null; if (!component) { return null; } else if (FormioComponent.hasOwnProperty(component.type)) { c = new FormioComponent[component.type](component, data, options); } else { c = new _unknown2.default(component, data, options); } return c; } }; exports.default = FormioComponent; module.exports = exports['default']; /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.style = undefined; var _utils = __webpack_require__(1); var _utils2 = _interopRequireDefault(_utils); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* eslint max-len:off */ var style = exports.style = _utils2.default.createElement('style', { type: 'text/css' }, '\n.card,\n.col {\n\tposition: relative\n}\n\n.card,\nbody {\n\tbackground-color: #fff\n}\n\nbody {\n\tmargin: 0;\n\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";\n\tfont-size: .9rem;\n\tfont-weight: 400;\n\tline-height: 1.3;\n\tcolor: #212529;\n\ttext-align: left\n}\n\n.card-header,\n#formio__export .formio-component.grid-component>.component-value .grid-header,\n.text-bold {\n\tfont-weight: 700\n}\n\n.card-header,\n.text-center {\n\ttext-align: center\n}\n\n*,\n::after,\n::before {\n\tbox-sizing: border-box\n}\n\n.row {\n\tdisplay: -ms-flexbox;\n\tdisplay: flex;\n\t-ms-flex-wrap: wrap;\n\tflex-wrap: wrap;\n\tmargin-right: -8px;\n\tmargin-left: -8px\n}\n\n.col {\n\t-ms-flex-preferred-size: 0;\n\tflex-basis: 0;\n\t-ms-flex-positive: 1;\n\tflex-grow: 1;\n\tmax-width: 100%;\n\twidth: 100%;\n\tmin-height: 1px;\n\tpadding-right: 15px;\n\tpadding-left: 15px\n}\n\n.card {\n\tdisplay: -ms-flexbox;\n\tdisplay: flex;\n\t-ms-flex-direction: column;\n\tflex-direction: column;\n\tmin-width: 0;\n\tword-wrap: break-word;\n\tbackground-clip: border-box;\n\tborder: none;\n\tborder-radius: 0\n}\n\n.card-header {\n\tpadding: .75rem 1.25rem;\n\tmargin-bottom: 0;\n\tbackground-color: rgba(0, 0, 0, .03);\n\tborder-bottom: 1px solid rgba(0, 0, 0, .125)\n}\n\n.card-body {\n\t-ms-flex: 1 1 auto;\n\tflex: 1 1 auto\n}\n\n.col-sm-3 {\n\t-ms-flex: 0 0 25%;\n\tflex: 0 0 25%;\n\tmax-width: 25%\n}\n.col-sm-9 {\n\t-ms-flex: 0 0 75%;\n\tflex: 0 0 75%;\n\tmax-width: 75%\n}\n\n.text-right {\n\ttext-align: right\n}\n\n.text-left {\n\ttext-align: left\n}\n\n.form-title,\n#formio__export .formio-component.signature-component>.component-value {\n\ttext-align: center\n}\n\n#formio__export {\n\tborder: 1px solid #ddd;\n\tfont-family: Lato;\n\tmax-width: 790px\n}\n\n#formio__export .formio-component:not(.no-layout) {\n\tborder-top: 1px solid #ddd;\n\tmin-height: 32px;\n\tdisplay: flex;\n\tflex-direction: row\n}\n\n#formio__export>.formio-component:first-child {\n\tborder-top: none\n}\n\n#formio__export .formio-component.no-layout {\n\tflex-direction: column\n}\n\n#formio__export .formio-component.no-layout>.col {\n\tpadding: 0;\n\tborder-top: 1px solid #ddd\n}\n\n#formio__export .formio-component.columns-component>.col>.formio-component,\n#formio__export .formio-component>.component-value.card-body.grid-transpose>.grid-row:first-child {\n\tborder-top: none\n}\n\n#formio__export .formio-component:not(.card)>.component-label {\n\tborder-right: 1px solid #ddd;\n\tfont-weight: 700;\n\tpadding: 8px\n}\n\n#formio__export .formio-component.card>.component-label {\n\tborder-right: none\n}\n\n#formio__export .formio-component>.component-value {\n\tpadding: 8px\n}\n\n#formio__export .formio-component>.component-value>.component-item {\n\tdisplay: block\n}\n\n#formio__export .formio-component>.component-value>img {\n\tmax-width: 250px;\n max-height: 70px;\n}\n\n#formio__export .formio-component:not(.survey-component):not(.grid-component)>.component-value.card-body {\n\tpadding: 0\n}\n\n#formio__export .formio-component>.component-value.card-body.grid-transpose {\n\tpadding: 0 8px\n}\n\n.form-title {\n\ttext-transform: uppercase\n}\n\n#formio__export .formio-component.form-component {\n\tflex-direction: column\n}\n\n#formio__export .formio-component.currency-component>.component-value::before {\n\tcontent: "$"\n}\n\n#formio__export .formio-component.columns-component.no-layout {\n\tflex: columns\n}\n\n#formio__export .formio-component.columns-component>.col:not(:last-child)>.formio-component {\n\tborder-right: 1px solid #ddd\n}\n\n#formio__export .formio-component.grid-component>.component-value {\n\tpadding: 8px\n}\n\n#formio__export .formio-component.grid-component>.component-value .grid-row:not(.grid-header) {\n\tborder-top: 1px solid #ddd\n}\n\n#formio__export .formio-component.card>.card-body>.formio-component:first-child,\n#formio__export .formio-component.container-component>.component-value>.formio-component:first-child,\n#formio__export .formio-component.grid-component>.component-value .grid-row>.grid-cell>.formio-component {\n\tborder-top: none\n}\n\n#formio__export .formio-component.grid-component>.component-value .grid-row>.grid-cell {\n\tpadding: 0\n}\n\n#formio__export .formio-component.grid-component>.component-value .grid-header>.grid-cell {\n\tpadding: 8px\n}\n\n#formio__export .formio-component.grid-component>.component-value.grid-transpose>.row>.col:first-child {\n\tpadding: 8px;\n\tborder-right: 1px solid #ddd\n}\n\n#formio__export .formio-component.container-component>.component-value {\n\tpadding: 0\n}\n\n#formio__export .formio-component.card,\n#formio__export .formio-component.grid-component,\n#formio__export .formio-component.htmlelement-component {\n\tflex-direction: column\n}\n\n#formio__export .formio-component.grid-component>.card-body,\n#formio__export .formio-component.survey-component .component-value>.survey-question>* {\n\tpadding: 8px\n}'); /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _utils = __webpack_require__(1); var _utils2 = _interopRequireDefault(_utils); var _style = __webpack_require__(11); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.default = function (component) { return new Promise(function (resolve, reject) { try { var container = _utils2.default.createElement('div', { id: 'formio__export' }); var head = _utils2.default.createElement('head'); var body = _utils2.default.createElement('body'); component.toHtml(container); body.appendChild(container); head.appendChild(_utils2.default.createElement('meta', { 'http-equiv': 'Content-Type', content: 'text/html; charset=UTF-8' })); head.appendChild(_utils2.default.createElement('meta', { name: 'viewport', content: 'width=device-width, initial-scale=1.0' })); head.appendChild(_style.style); var htmlPage = _utils2.default.createElement('html', { xmlns: 'http://www.w3.org/1999/xhtml' }, head, body); resolve(htmlPage); } catch (error) { console.error(error); reject(error); } }); }; module.exports = exports['default']; /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function () { var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return new Promise(function (resolve, reject) { try { throw new Error('[FormioExport] method not implemented'); } catch (error) { console.error(error); reject(error); } }); }; module.exports = exports['default']; /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { (function webpackUniversalModuleDefinition(root, factory) { if(true) module.exports = factory(); else {} })(typeof self !== 'undefined' ? self : this, function() { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/