UNPKG

formiojs

Version:

Common js library for client side interaction with <form.io>

54 lines (43 loc) 1.94 kB
'use strict'; var _components = require('./components'); var _components2 = _interopRequireDefault(_components); var _Components = require('./components/Components'); var _Components2 = _interopRequireDefault(_Components); var _Form = require('./Form'); var _Form2 = _interopRequireDefault(_Form); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } _Components2.default.setComponents(_components2.default); var query = {}; var scripts = document.getElementsByTagName('script'); var thisScript = scripts[scripts.length - 1]; var scriptSrc = thisScript.src.replace(/^([^?]+).*/, '$1').split('/'); scriptSrc.pop(); scriptSrc = scriptSrc.join('/'); var queryString = thisScript.src.replace(/^[^?]+\??/, ''); queryString.replace(/\?/g, '&').split('&').forEach(function (item) { query[item.split('=')[0]] = item.split('=')[1] && decodeURIComponent(item.split('=')[1]); }); query.styles = query.styles || scriptSrc + '/formio.full.min.css'; _Form2.default.embed(query).then(function (instance) { instance.on('submit', function (submission) { var returnUrl = query.return || query.redirect; // Allow form based configuration for return url. if (!returnUrl && instance._form && instance._form.settings && (instance._form.settings.returnUrl || instance._form.settings.redirect)) { returnUrl = instance._form.settings.returnUrl || instance._form.settings.redirect; } if (returnUrl) { var formSrc = instance.formio ? instance.formio.formUrl : ''; var hasQuery = !!returnUrl.match(/\?/); var isOrigin = returnUrl.indexOf(location.origin) === 0; returnUrl += hasQuery ? '&' : '?'; returnUrl += 'sub=' + submission._id; if (!isOrigin && formSrc) { returnUrl += '&form=' + encodeURIComponent(formSrc); } window.location.href = returnUrl; if (isOrigin) { window.location.reload(); } } }); });