aot-formio-export
Version:
1,424 lines (1,087 loc) • 759 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("lodash"), require("moment"));
else if(typeof define === 'function' && define.amd)
define("@aot-technologies/formio-export", ["_", "moment"], factory);
else if(typeof exports === 'object')
exports["@aot-technologies/formio-export"] = factory(require("lodash"), require("moment"));
else
root["@aot-technologies/formio-export"] = factory(root["_"], root["moment"]);
})(window, function(__WEBPACK_EXTERNAL_MODULE__0__, __WEBPACK_EXTERNAL_MODULE__23__) {
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, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // 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 = 11);
/******/ })
/************************************************************************/
/******/ ([
/* 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__(5);
var _3 = _interopRequireDefault(_2);
var _plugins = __webpack_require__(14);
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;
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: 'getHtml',
value: function getHtml() {
return this.html;
}
}, {
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();
}
var value = typeof this._value === 'string' ? this._value : this._value.toString();
if (this.type === 'textarea' && this.editor === 'ckeditor') {
value = value.replace(/<\/?[^>]+(>|$)/g, '').replace(/ /g, ' ');
}
return value;
}
}]);
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__(41);
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 _textfield = __webpack_require__(3);
var _textfield2 = _interopRequireDefault(_textfield);
var _textarea = __webpack_require__(17);
var _textarea2 = _interopRequireDefault(_textarea);
var _email = __webpack_require__(18);
var _email2 = _interopRequireDefault(_email);
var _password = __webpack_require__(19);
var _password2 = _interopRequireDefault(_password);
var _phonenumber = __webpack_require__(20);
var _phonenumber2 = _interopRequireDefault(_phonenumber);
var _number = __webpack_require__(6);
var _number2 = _interopRequireDefault(_number);
var _currency = __webpack_require__(21);
var _currency2 = _interopRequireDefault(_currency);
var _datetime = __webpack_require__(22);
var _datetime2 = _interopRequireDefault(_datetime);
var _day = __webpack_require__(24);
var _day2 = _interopRequireDefault(_day);
var _time = __webpack_require__(25);
var _time2 = _interopRequireDefault(_time);
var _address = __webpack_require__(26);
var _address2 = _interopRequireDefault(_address);
var _checkbox = __webpack_require__(27);
var _checkbox2 = _interopRequireDefault(_checkbox);
var _radio = __webpack_require__(28);
var _radio2 = _interopRequireDefault(_radio);
var _selectboxes = __webpack_require__(29);
var _selectboxes2 = _interopRequireDefault(_selectboxes);
var _select = __webpack_require__(7);
var _select2 = _interopRequireDefault(_select);
var _resource = __webpack_require__(34);
var _resource2 = _interopRequireDefault(_resource);
var _survey = __webpack_require__(35);
var _survey2 = _interopRequireDefault(_survey);
var _file = __webpack_require__(8);
var _file2 = _interopRequireDefault(_file);
var _signature = __webpack_require__(40);
var _signature2 = _interopRequireDefault(_signature);
var _container = __webpack_require__(4);
var _container2 = _interopRequireDefault(_container);
var _datagrid = __webpack_require__(43);
var _datagrid2 = _interopRequireDefault(_datagrid);
var _editgrid = __webpack_require__(47);
var _editgrid2 = _interopRequireDefault(_editgrid);
var _form = __webpack_require__(48);
var _form2 = _interopRequireDefault(_form);
var _html = __webpack_require__(52);
var _html2 = _interopRequireDefault(_html);
var _content = __webpack_require__(9);
var _content2 = _interopRequireDefault(_content);
var _columns = __webpack_require__(55);
var _columns2 = _interopRequireDefault(_columns);
var _panel = __webpack_require__(10);
var _panel2 = _interopRequireDefault(_panel);
var _fieldset = __webpack_require__(59);
var _fieldset2 = _interopRequireDefault(_fieldset);
var _well = __webpack_require__(60);
var _well2 = _interopRequireDefault(_well);
var _unknown = __webpack_require__(63);
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,
unknown: _unknown2.default,
well: _well2.default,
form: _form2.default,
content: _content2.default,
html: _html2.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);
}
if (data != null && component.type !== 'form' && component.conditional !== undefined && component.conditional.when !== null) {
var componentToCheck = component.conditional.when;
var componentValue = data[componentToCheck];
var componentShouldBe = component.conditional.eq;
switch (c.type) {
case 'columns':
for (var i in c.columns) {
for (var j in c.columns[i].components) {
var hidden = !(component.conditional.show === 'true' && componentValue === componentShouldBe);
c.columns[i].components[j].hidden = hidden;
}
}
break;
default:
c.hidden = !(component.conditional.show === 'true' && componentValue === componentShouldBe);
break;
}
}
return c;
}
};
exports.default = FormioComponent;
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 _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'];
/***/ }),
/* 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__(32);
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 _base = __webpack_require__(2);
var _base2 = _interopRequireDefault(_base);
var _plugins = __webpack_require__(38);
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'];
/***/ }),
/* 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 _container = __webpack_require__(4);
var _container2 = _interopRequireDefault(_container);
var _plugins = __webpack_require__(53);
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 ContentComponent = function (_ContainerComponent) {
_inherits(ContentComponent, _ContainerComponent);
function ContentComponent(component, data, options) {
_classCallCheck(this, ContentComponent);
return _possibleConstructorReturn(this, (ContentComponent.__proto__ || Object.getPrototypeOf(ContentComponent)).call(this, component, data, options));
}
_createClass(ContentComponent, [{
key: 'toHtml',
value: function toHtml(element) {
return (0, _plugins.toHtml)(element, this);
}
}]);
return ContentComponent;
}(_container2.default);
exports.default = ContentComponent;
module.exports = exports['default'];
/***/ }),
/* 10 */
/***/ (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'];
/***/ }),
/* 11 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/* WEBPACK VAR INJECTION */(function(global) {
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 _formioExport = __webpack_require__(13);
var _formioExport2 = _interopRequireDefault(_formioExport);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
if ((typeof global === 'undefined' ? 'undefined' : _typeof(global)) === 'object') {
global.FormioExport = _formioExport2.default;
}
exports.default = _formioExport2.default;
module.exports = exports['default'];
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(12)))
/***/ }),
/* 12 */
/***/ (function(module, exports) {
var g;
// This works in non-strict mode
g = (function() {
return this;
})();
try {
// This works if eval is allowed (see CSP)
g = g || new Function("return this")();
} catch (e) {
// This works if the window reference is available
if (typeof window === "object") g = window;
}
// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}
module.exports = g;
/***/ }),
/* 13 */
/***/ (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; }; }();
// Import export plugins
var _lodash = __webpack_require__(0);
var _lodash2 = _interopRequireDefault(_lodash);
var _utils = __webpack_require__(1);
var _utils2 = _interopRequireDefault(_utils);
var _formio = __webpack_require__(5);
var _formio2 = _interopRequireDefault(_formio);
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"); } }
/**
* Class for exporting formio components into different formats
*
* @class FormioExport
*/
var FormioExport = function () {
/**
* Creates an instance of FormioExport.
* @param {any} component The formio component
* @param {any} data The formio component data
* @param {any} [options={}] Formio optional parameters
* @memberof FormioExport
*/
function FormioExport(component, data) {
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
_classCallCheck(this, FormioExport);
if (!(this instanceof FormioExport)) {
return new FormioExport(component, data);
}
this.component = null;
this.data = {};
this.options = {};
if (options.hasOwnProperty('formio')) {
this.options = _lodash2.default.cloneDeep(options.formio);
}
if (options.hasOwnProperty('component')) {
this.component = options.component;
} else if (component) {
this.component = component;
}
if (options.hasOwnProperty('data')) {
this.data = options.data;
} else if (!_lodash2.default.isNil(data)) {
this.data = data;
}
if (_utils2.default.isFormioSubmission(this.data)) {
this.data = this.data.data;
}
if (options.hasOwnProperty('meta')) {
this.options.submission = this.options.submission || {};
this.options.submission.generatedOn = options.meta.generatedOn;
this.options.submission.generatedBy = options.meta.generatedBy;
}
if (this.component) {
if (_utils2.default.isFormioForm(this.component) || _utils2.default.isFormioWizard(this.component)) {
this.component.type = 'form';
this.component.display = 'form';
}
this.component = _formio2.default.create(component || this.component, this.data, this.options);
} else if (!this.component) {
console.warn(this.constructor.name, 'no component defined');
}
}
/**
* Renders the formio component to HTML
*
* @returns {Promise} The promise containing the HTML render of the formio component
* @memberof FormioExport
*/
_createClass(FormioExport, [{
key: 'toHtml',
value: function toHtml() {
var _this = this;
return new Promise(function (resolve, reject) {
try {
(0, _plugins.toHtml)(_this.component).then(function (html) {
return resolve(html);
});
} catch (error) {
reject(error);
}
});
}
/**
* Exports the formio component to a jsPDF object
*
* @param {any} [config={}] The Html2PDf configuration
* @returns {Promise} The promise containing the jsPDF object
* @memberof FormioExport
*/
}, {
key: 'toPdf',
value: function toPdf() {
var _this2 = this;
var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return new Promise(function (resolve, reject) {
try {
_this2.toHtml().then(function (source) {
(0, _plugins.toPdf)(Object.assign(config, { source: source })).then(function (pdf) {
return resolve(pdf);
});
});
} catch (error) {
reject(error);
}
});
}
/**
* Exports the formio component to a xlsx object
*
* @param {any} [config={}] The xlsx configuration
* @returns {Promise} The promise containing the xlsx object
* @memberof FormioExport
*/
}, {
key: 'toXlsx',
value: function toXlsx() {
var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return new Promise(function (resolve, reject) {
try {
(0, _plugins.toXlsx)(config).then(function (xlsx) {
return resolve(xlsx);
});
} catch (error) {
reject(error);
}
});
}