UNPKG

angular-dynamic-forms-lite

Version:
77 lines 9.3 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { DynamicFormType } from "../form-field/form-field-type"; import { SubType } from "./sub-type"; /** @type {?} */ export var ROOT_ID = "__ROOT__"; /** * @param {?} rootSetting * @param {?} settings * @param {?} defaultFormComponents * @return {?} */ export function createFormFieldSettings(rootSetting, settings, defaultFormComponents) { var e_1, _a; if (settings.has(ROOT_ID)) { /** @type {?} */ var illegalSetting = settings.get(ROOT_ID); throw new Error("Illegal form field id " + illegalSetting.name + " detected for " + illegalSetting.name); } /** @type {?} */ var combinedSettings = new Map(); combinedSettings.set(ROOT_ID, { name: ROOT_ID, component: rootSetting.component, type: DynamicFormType.GROUP, metadata: rootSetting.metadata }); settings.forEach((/** * @param {?} setting * @param {?} id * @return {?} */ function (setting, id) { return combinedSettings.set(id, tslib_1.__assign({}, setting, { type: setting.type ? setting.type : ((/** @type {?} */ (DynamicFormType.SINGLE))) })); })); try { // add missing components from default form components for (var combinedSettings_1 = tslib_1.__values(combinedSettings), combinedSettings_1_1 = combinedSettings_1.next(); !combinedSettings_1_1.done; combinedSettings_1_1 = combinedSettings_1.next()) { var _b = tslib_1.__read(combinedSettings_1_1.value, 2), setting = _b[1]; setting.type = SubType.toSubType(setting.type); if (setting.component || setting.type.type === DynamicFormType.HIDDEN) continue; setting.component = ensureDefaultFormComponents(defaultFormComponents, setting.name, setting.type); } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (combinedSettings_1_1 && !combinedSettings_1_1.done && (_a = combinedSettings_1.return)) _a.call(combinedSettings_1); } finally { if (e_1) throw e_1.error; } } return combinedSettings; } /** * @param {?} defaultFormComponents * @param {?} name * @param {?} _type * @return {?} */ export function ensureDefaultFormComponents(defaultFormComponents, name, _type) { if (!defaultFormComponents) { throw new Error("No default form components available, but you used a DynamicFormType as an component identifier for " + name + ". Did you add the module using DynamicFormsLiteModule.withDefaultComponents()?"); } /** @type {?} */ var subType = SubType.toSubType(_type); /** @type {?} */ var component = defaultFormComponents.get(subType.type)[subType.subType]; if (!component) { throw new Error("No default form component for type " + subType.subType + " (" + subType.type + ") available."); } return component; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItZHluYW1pYy1mb3Jtcy1saXRlLyIsInNvdXJjZXMiOlsibGliL2Zvcm0tc2V0dGluZ3MvZm9ybS1maWVsZC1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQXdCLE1BQU0sK0JBQStCLENBQUM7QUFLdEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFXckMsTUFBTSxLQUFPLE9BQU8sR0FBRyxVQUFVOzs7Ozs7O0FBRWpDLE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsV0FBd0IsRUFDeEIsUUFBMkIsRUFDM0IscUJBQTJDOztJQUUzQyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7O1lBQ25CLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUF5QixjQUFjLENBQUMsSUFBSSxzQkFBaUIsY0FBYyxDQUFDLElBQU0sQ0FBQyxDQUFDO0tBQ3JHOztRQUVLLGdCQUFnQixHQUFzQixJQUFJLEdBQUcsRUFBRTtJQUNyRCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO1FBQzVCLElBQUksRUFBRSxPQUFPO1FBQ2IsU0FBUyxFQUFFLFdBQVcsQ0FBQyxTQUFTO1FBQ2hDLElBQUksRUFBRSxlQUFlLENBQUMsS0FBSztRQUMzQixRQUFRLEVBQUUsV0FBVyxDQUFDLFFBQVE7S0FDL0IsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLE9BQU87Ozs7O0lBQUMsVUFBQyxPQUFPLEVBQUUsRUFBRTtRQUMzQixPQUFBLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFLHVCQUNsQixPQUFPLElBQ1YsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQUEsZUFBZSxDQUFDLE1BQU0sRUFBTyxDQUFDLElBQ25FO0lBSEYsQ0FHRSxFQUNILENBQUM7O1FBRUYsc0RBQXNEO1FBQ3RELEtBQXdCLElBQUEscUJBQUEsaUJBQUEsZ0JBQWdCLENBQUEsa0RBQUEsZ0ZBQUU7WUFBakMsSUFBQSxrREFBVyxFQUFSLGVBQU87WUFDakIsT0FBTyxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLE1BQU07Z0JBQUUsU0FBUztZQUNoRixPQUFPLENBQUMsU0FBUyxHQUFHLDJCQUEyQixDQUFDLHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BHOzs7Ozs7Ozs7SUFFRCxPQUFPLGdCQUFnQixDQUFDO0FBQzFCLENBQUM7Ozs7Ozs7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLHFCQUEyQyxFQUMzQyxJQUFZLEVBQ1osS0FBMkI7SUFFM0IsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1FBQzFCLE1BQU0sSUFBSSxLQUFLLENBQ2IseUdBQXVHLElBQUksbUZBQWdGLENBQzVMLENBQUM7S0FDSDs7UUFFSyxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7O1FBQ2xDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7SUFFMUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXNDLE9BQU8sQ0FBQyxPQUFPLFVBQUssT0FBTyxDQUFDLElBQUksaUJBQWMsQ0FBQyxDQUFDO0tBQ3ZHO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvb3RTZXR0aW5nLCBGb3JtRmllbGRTZXR0aW5nVHlwZSB9IGZyb20gXCIuL2Zvcm0tZmllbGQtc2V0dGluZ1wiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1UeXBlLCBGb3JtQ29tcG9uZW50c0J5VHlwZSB9IGZyb20gXCIuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtdHlwZVwiO1xuaW1wb3J0IHsgU2luZ2xlRm9ybUZpZWxkU2V0dGluZyB9IGZyb20gXCIuLi9mb3JtLWZpZWxkL3NpbmdsZS9zaW5nbGUtZm9ybS1maWVsZC1zZXR0aW5nXCI7XG5pbXBvcnQgeyBHcm91cEZvcm1GaWVsZFNldHRpbmcgfSBmcm9tIFwiLi4vZm9ybS1maWVsZC9ncm91cC9ncm91cC1mb3JtLWZpZWxkLXNldHRpbmdcIjtcbmltcG9ydCB7IEFycmF5Rm9ybUZpZWxkU2V0dGluZyB9IGZyb20gXCIuLi9mb3JtLWZpZWxkL2FycmF5L2FycmF5LWZvcm0tZmllbGQtc2V0dGluZ1wiO1xuaW1wb3J0IHsgRm9ybUZpZWxkQ29tcG9uZW50VHlwZSB9IGZyb20gXCIuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTdWJUeXBlIH0gZnJvbSBcIi4vc3ViLXR5cGVcIjtcbmltcG9ydCB7IEhpZGRlbkZvcm1GaWVsZFNldHRpbmcgfSBmcm9tIFwiLi4vZm9ybS1maWVsZC9oaWRkZW4vaGlkZGVuLWZvcm0tZmllbGQtc2V0dGluZ1wiO1xuXG5leHBvcnQgdHlwZSBDb21iaW5lZEZvcm1GaWVsZFNldHRpbmcgPVxuICB8IFNpbmdsZUZvcm1GaWVsZFNldHRpbmdcbiAgfCBHcm91cEZvcm1GaWVsZFNldHRpbmdcbiAgfCBBcnJheUZvcm1GaWVsZFNldHRpbmdcbiAgfCBIaWRkZW5Gb3JtRmllbGRTZXR0aW5nO1xuXG5leHBvcnQgdHlwZSBGb3JtRmllbGRTZXR0aW5ncyA9IE1hcDxzdHJpbmcsIENvbWJpbmVkRm9ybUZpZWxkU2V0dGluZz47XG5cbmV4cG9ydCBjb25zdCBST09UX0lEID0gXCJfX1JPT1RfX1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRm9ybUZpZWxkU2V0dGluZ3MoXG4gIHJvb3RTZXR0aW5nOiBSb290U2V0dGluZyxcbiAgc2V0dGluZ3M6IEZvcm1GaWVsZFNldHRpbmdzLFxuICBkZWZhdWx0Rm9ybUNvbXBvbmVudHM6IEZvcm1Db21wb25lbnRzQnlUeXBlXG4pOiBGb3JtRmllbGRTZXR0aW5ncyB7XG4gIGlmIChzZXR0aW5ncy5oYXMoUk9PVF9JRCkpIHtcbiAgICBjb25zdCBpbGxlZ2FsU2V0dGluZyA9IHNldHRpbmdzLmdldChST09UX0lEKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYElsbGVnYWwgZm9ybSBmaWVsZCBpZCAke2lsbGVnYWxTZXR0aW5nLm5hbWV9IGRldGVjdGVkIGZvciAke2lsbGVnYWxTZXR0aW5nLm5hbWV9YCk7XG4gIH1cblxuICBjb25zdCBjb21iaW5lZFNldHRpbmdzOiBGb3JtRmllbGRTZXR0aW5ncyA9IG5ldyBNYXAoKTtcbiAgY29tYmluZWRTZXR0aW5ncy5zZXQoUk9PVF9JRCwge1xuICAgIG5hbWU6IFJPT1RfSUQsXG4gICAgY29tcG9uZW50OiByb290U2V0dGluZy5jb21wb25lbnQsXG4gICAgdHlwZTogRHluYW1pY0Zvcm1UeXBlLkdST1VQLFxuICAgIG1ldGFkYXRhOiByb290U2V0dGluZy5tZXRhZGF0YVxuICB9KTtcblxuICBzZXR0aW5ncy5mb3JFYWNoKChzZXR0aW5nLCBpZCkgPT5cbiAgICBjb21iaW5lZFNldHRpbmdzLnNldChpZCwge1xuICAgICAgLi4uc2V0dGluZyxcbiAgICAgIHR5cGU6IHNldHRpbmcudHlwZSA/IHNldHRpbmcudHlwZSA6IChEeW5hbWljRm9ybVR5cGUuU0lOR0xFIGFzIGFueSlcbiAgICB9KVxuICApO1xuXG4gIC8vIGFkZCBtaXNzaW5nIGNvbXBvbmVudHMgZnJvbSBkZWZhdWx0IGZvcm0gY29tcG9uZW50c1xuICBmb3IgKGxldCBbLCBzZXR0aW5nXSBvZiBjb21iaW5lZFNldHRpbmdzKSB7XG4gICAgc2V0dGluZy50eXBlID0gU3ViVHlwZS50b1N1YlR5cGUoc2V0dGluZy50eXBlKTtcbiAgICBpZiAoc2V0dGluZy5jb21wb25lbnQgfHwgc2V0dGluZy50eXBlLnR5cGUgPT09IER5bmFtaWNGb3JtVHlwZS5ISURERU4pIGNvbnRpbnVlO1xuICAgIHNldHRpbmcuY29tcG9uZW50ID0gZW5zdXJlRGVmYXVsdEZvcm1Db21wb25lbnRzKGRlZmF1bHRGb3JtQ29tcG9uZW50cywgc2V0dGluZy5uYW1lLCBzZXR0aW5nLnR5cGUpO1xuICB9XG5cbiAgcmV0dXJuIGNvbWJpbmVkU2V0dGluZ3M7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVEZWZhdWx0Rm9ybUNvbXBvbmVudHMoXG4gIGRlZmF1bHRGb3JtQ29tcG9uZW50czogRm9ybUNvbXBvbmVudHNCeVR5cGUsXG4gIG5hbWU6IHN0cmluZyxcbiAgX3R5cGU6IEZvcm1GaWVsZFNldHRpbmdUeXBlXG4pOiBGb3JtRmllbGRDb21wb25lbnRUeXBlIHtcbiAgaWYgKCFkZWZhdWx0Rm9ybUNvbXBvbmVudHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgTm8gZGVmYXVsdCBmb3JtIGNvbXBvbmVudHMgYXZhaWxhYmxlLCBidXQgeW91IHVzZWQgYSBEeW5hbWljRm9ybVR5cGUgYXMgYW4gY29tcG9uZW50IGlkZW50aWZpZXIgZm9yICR7bmFtZX0uIERpZCB5b3UgYWRkIHRoZSBtb2R1bGUgdXNpbmcgRHluYW1pY0Zvcm1zTGl0ZU1vZHVsZS53aXRoRGVmYXVsdENvbXBvbmVudHMoKT9gXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0IHN1YlR5cGUgPSBTdWJUeXBlLnRvU3ViVHlwZShfdHlwZSk7XG4gIGNvbnN0IGNvbXBvbmVudCA9IGRlZmF1bHRGb3JtQ29tcG9uZW50cy5nZXQoc3ViVHlwZS50eXBlKVtzdWJUeXBlLnN1YlR5cGVdO1xuXG4gIGlmICghY29tcG9uZW50KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBObyBkZWZhdWx0IGZvcm0gY29tcG9uZW50IGZvciB0eXBlICR7c3ViVHlwZS5zdWJUeXBlfSAoJHtzdWJUeXBlLnR5cGV9KSBhdmFpbGFibGUuYCk7XG4gIH1cblxuICByZXR1cm4gY29tcG9uZW50O1xufVxuIl19