@formio/core
Version:
The core Form.io renderering framework.
131 lines (130 loc) • 4.02 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Formio = exports.use = exports.useModule = exports.usePlugin = void 0;
require("core-js/features/object/from-entries");
var sdk_1 = require("./sdk");
Object.defineProperty(exports, "Formio", { enumerable: true, get: function () { return sdk_1.Formio; } });
var validator_1 = require("./validator");
var utils_1 = require("./utils");
var base_1 = require("./base");
sdk_1.Formio.render = base_1.render;
sdk_1.Formio.Components = base_1.Components;
sdk_1.Formio.Validator = sdk_1.Formio.Rules = validator_1.Validator;
sdk_1.Formio.Evaluator = utils_1.Evaluator;
sdk_1.Formio.Utils = utils_1.Utils;
sdk_1.Formio.Templates = base_1.Template;
var lodash_1 = require("@formio/lodash");
/**
* Register a specific plugin.
*
* @param key
* @param plugin
* @returns
*/
function usePlugin(key, plugin) {
switch (key) {
case 'options':
if (!sdk_1.Formio.options) {
return;
}
sdk_1.Formio.options = (0, lodash_1.merge)(sdk_1.Formio.options, plugin);
break;
case 'templates':
if (!sdk_1.Formio.Templates) {
return;
}
var current = sdk_1.Formio.Templates.framework || 'bootstrap';
for (var _i = 0, _a = Object.keys(plugin); _i < _a.length; _i++) {
var framework = _a[_i];
sdk_1.Formio.Templates.extendTemplate(framework, plugin[framework]);
}
if (plugin[current]) {
sdk_1.Formio.Templates.current = plugin[current];
}
break;
case 'components':
if (!sdk_1.Formio.Components) {
return;
}
sdk_1.Formio.Components.setComponents(plugin);
break;
case 'framework':
if (!sdk_1.Formio.Templates) {
return;
}
sdk_1.Formio.Templates.framework = plugin;
break;
case 'fetch':
for (var _b = 0, _c = Object.keys(plugin); _b < _c.length; _b++) {
var name_1 = _c[_b];
sdk_1.Formio.registerPlugin(plugin[name_1], name_1);
}
break;
case 'rules':
if (!sdk_1.Formio.Rules) {
return;
}
sdk_1.Formio.Rules.addRules(plugin);
break;
case 'evaluator':
if (!sdk_1.Formio.Evaluator) {
return;
}
sdk_1.Formio.Evaluator.registerEvaluator(plugin);
break;
default:
console.log('Unknown plugin option', key);
}
}
exports.usePlugin = usePlugin;
;
/**
* Register a new module.
*
* @param module
* @returns
*/
function useModule(module) {
// Sanity check.
if (typeof module !== 'object') {
return;
}
for (var _i = 0, _a = Object.keys(module); _i < _a.length; _i++) {
var key = _a[_i];
usePlugin(key, module[key]);
}
}
exports.useModule = useModule;
;
/**
* Allows passing in plugins as multiple arguments or an array of plugins.
*
* Formio.plugins(plugin1, plugin2, etc);
* Formio.plugins([plugin1, plugin2, etc]);
*/
function use() {
var mods = [];
for (var _i = 0; _i < arguments.length; _i++) {
mods[_i] = arguments[_i];
}
mods.forEach(function (mod) {
if (Array.isArray(mod)) {
mod.forEach(function (p) { return useModule(p); });
}
else {
useModule(mod);
}
});
}
exports.use = use;
;
sdk_1.Formio.useModule = useModule;
sdk_1.Formio.usePlugin = usePlugin;
sdk_1.Formio.use = use;
var components_1 = __importDefault(require("./components"));
sdk_1.Formio.use(components_1.default);
var modules_1 = __importDefault(require("./modules"));
sdk_1.Formio.use(modules_1.default);
;