formio-export-mc
Version:
Formio Export Tools
1,298 lines (996 loc) • 763 kB
JavaScript
(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,
/******/