@stemy/ngx-dynamic-form 10.1.3 → 10.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +27 -27
  2. package/bundles/stemy-ngx-dynamic-form.umd.js +2247 -2247
  3. package/bundles/stemy-ngx-dynamic-form.umd.js.map +1 -1
  4. package/bundles/stemy-ngx-dynamic-form.umd.min.js +2 -2
  5. package/bundles/stemy-ngx-dynamic-form.umd.min.js.map +1 -1
  6. package/esm2015/ngx-dynamic-form/common-types.js +591 -591
  7. package/esm2015/ngx-dynamic-form/components/base/dynamic-form-base.component.js +87 -87
  8. package/esm2015/ngx-dynamic-form/components/dynamic-form/dynamic-form.component.js +91 -91
  9. package/esm2015/ngx-dynamic-form/components/dynamic-form-file/dynamic-form-file.component.js +112 -112
  10. package/esm2015/ngx-dynamic-form/components/dynamic-form-group/dynamic-form-group.component.js +19 -19
  11. package/esm2015/ngx-dynamic-form/components/dynamic-form-input/dynamic-form-input.component.js +73 -73
  12. package/esm2015/ngx-dynamic-form/components/dynamic-form-model/dynamic-form-model.component.js +23 -23
  13. package/esm2015/ngx-dynamic-form/components/dynamic-form-select/dynamic-form-select.component.js +73 -73
  14. package/esm2015/ngx-dynamic-form/components/dynamic-form-static/dynamic-form-static.component.js +20 -20
  15. package/esm2015/ngx-dynamic-form/components/dynamic-forms/dynamic-forms.component.js +134 -134
  16. package/esm2015/ngx-dynamic-form/directives/async-submit.directive.js +89 -89
  17. package/esm2015/ngx-dynamic-form/directives/dynamic-form-control.directive.js +32 -32
  18. package/esm2015/ngx-dynamic-form/directives/dynamic-form-group.directive.js +40 -40
  19. package/esm2015/ngx-dynamic-form/directives/dynamic-form-template.directive.js +38 -38
  20. package/esm2015/ngx-dynamic-form/ngx-dynamic-form.module.js +85 -85
  21. package/esm2015/ngx-dynamic-form/services/dynamic-form.service.js +48 -48
  22. package/esm2015/ngx-dynamic-form/services/form-utilities.js +108 -108
  23. package/esm2015/ngx-dynamic-form/services/open-api.service.js +130 -130
  24. package/esm2015/public_api.js +18 -18
  25. package/esm2015/stemy-ngx-dynamic-form.js +8 -8
  26. package/fesm2015/stemy-ngx-dynamic-form.js +1690 -1690
  27. package/fesm2015/stemy-ngx-dynamic-form.js.map +1 -1
  28. package/ngx-dynamic-form/common-types.d.ts +307 -307
  29. package/ngx-dynamic-form/components/base/dynamic-form-base.component.d.ts +44 -44
  30. package/ngx-dynamic-form/components/dynamic-form/dynamic-form.component.d.ts +21 -21
  31. package/ngx-dynamic-form/components/dynamic-form-file/dynamic-form-file.component.d.ts +16 -16
  32. package/ngx-dynamic-form/components/dynamic-form-group/dynamic-form-group.component.d.ts +6 -6
  33. package/ngx-dynamic-form/components/dynamic-form-input/dynamic-form-input.component.d.ts +13 -13
  34. package/ngx-dynamic-form/components/dynamic-form-model/dynamic-form-model.component.d.ts +6 -6
  35. package/ngx-dynamic-form/components/dynamic-form-select/dynamic-form-select.component.d.ts +9 -9
  36. package/ngx-dynamic-form/components/dynamic-form-static/dynamic-form-static.component.d.ts +5 -5
  37. package/ngx-dynamic-form/components/dynamic-forms/dynamic-forms.component.d.ts +26 -26
  38. package/ngx-dynamic-form/directives/async-submit.directive.d.ts +23 -23
  39. package/ngx-dynamic-form/directives/dynamic-form-control.directive.d.ts +12 -12
  40. package/ngx-dynamic-form/directives/dynamic-form-group.directive.d.ts +14 -14
  41. package/ngx-dynamic-form/directives/dynamic-form-template.directive.d.ts +16 -16
  42. package/ngx-dynamic-form/ngx-dynamic-form.module.d.ts +20 -20
  43. package/ngx-dynamic-form/services/dynamic-form.service.d.ts +12 -12
  44. package/ngx-dynamic-form/services/form-utilities.d.ts +19 -19
  45. package/ngx-dynamic-form/services/open-api.service.d.ts +37 -37
  46. package/package.json +11 -11
  47. package/public_api.d.ts +17 -17
  48. package/stemy-ngx-dynamic-form.d.ts +7 -7
  49. package/stemy-ngx-dynamic-form.metadata.json +1 -1
@@ -1,130 +1,130 @@
1
- import { Injectable } from "@angular/core";
2
- import { ApiService, StringUtils } from "@stemy/ngx-utils";
3
- import { FormUtilities } from "./form-utilities";
4
- import { createFormFile, createFormInput, createFormSelect } from "../common-types";
5
- export class OpenApiService {
6
- constructor(api) {
7
- this.api = api;
8
- const baseUrl = this.api.url("").replace("api/", "api-docs");
9
- this.schemas = {};
10
- this.schemasPromise = new Promise((resolve => {
11
- this.api.client.get(baseUrl).subscribe((res) => {
12
- this.schemas = res.definitions || {};
13
- resolve(this.schemas);
14
- }, () => {
15
- resolve({});
16
- });
17
- }));
18
- }
19
- getFormInputsForSchema(name) {
20
- this.api.cache = {};
21
- return this.schemasPromise.then(schemas => {
22
- const schema = schemas[name];
23
- const inputs = this.getFormInputsForSchemaDef(schema);
24
- return inputs;
25
- });
26
- }
27
- getFormInputsForSchemaDef(schema) {
28
- const inputs = {};
29
- if (!schema)
30
- return inputs;
31
- inputs.schema = schema;
32
- inputs.serializers = {};
33
- inputs.controls = Object.keys(schema.properties || {}).map(p => {
34
- const property = schema.properties[p];
35
- property.id = p;
36
- inputs.serializers[p] = (id, parent) => {
37
- return Promise.resolve(parent.model[id]);
38
- };
39
- return this.getFormControlForProperty(property, schema);
40
- }).filter(t => null !== t);
41
- return inputs;
42
- }
43
- getFormControlForProperty(property, schema) {
44
- if (Array.isArray(property.enum)) {
45
- return createFormSelect(property.id, this.getFormSelectData(property, schema));
46
- }
47
- switch (property.type) {
48
- case "string":
49
- case "number":
50
- case "boolean":
51
- case "textarea":
52
- return createFormInput(property.id, this.getFormInputData(property, schema));
53
- case "list":
54
- return createFormSelect(property.id, this.getFormSelectData(property, schema));
55
- case "file":
56
- return createFormFile(property.id, this.getFormFileData(property, schema));
57
- }
58
- return null;
59
- }
60
- getBaseFormData(property, schema) {
61
- return {
62
- readonly: property.readonly ? FormUtilities.readonly : null,
63
- shouldSerialize: FormUtilities.checkReadonly,
64
- validators: this.getValidators(property, schema)
65
- };
66
- }
67
- getFormInputData(property, schema) {
68
- let type = StringUtils.has(property.id, "password", "Password") ? "password" : property.type;
69
- switch (property.type) {
70
- case "boolean":
71
- type = "checkbox";
72
- break;
73
- case "textarea":
74
- type = "textarea";
75
- break;
76
- }
77
- return Object.assign(Object.assign({}, this.getBaseFormData(property, schema)), { type });
78
- }
79
- getFormSelectData(property, schema) {
80
- const options = Array.isArray(property.enum)
81
- ? () => {
82
- return Promise.resolve(property.enum.map(id => ({ id, label: `${property.id}.${id}` })));
83
- }
84
- : () => {
85
- this.api.cache[property.endpoint] = this.api.cache[property.endpoint] || this.api.list(property.endpoint, this.api.makeListParams(1, -1)).then(result => {
86
- return result.items.map(i => {
87
- return { id: i._id, label: i.name };
88
- });
89
- });
90
- return this.api.cache[property.endpoint];
91
- };
92
- return Object.assign(Object.assign({}, this.getBaseFormData(property, schema)), { options });
93
- }
94
- getFormFileData(property, schema) {
95
- return Object.assign(Object.assign({}, this.getBaseFormData(property, schema)), { multi: property.multi });
96
- }
97
- getValidators(property, schema) {
98
- const validators = [];
99
- if (schema.required.indexOf(property.id) >= 0) {
100
- validators.push(FormUtilities.validateRequired);
101
- }
102
- if (property.minLength) {
103
- validators.push({
104
- type: FormUtilities,
105
- func: FormUtilities.validateMinLength,
106
- params: [property.minLength]
107
- });
108
- }
109
- if (property.maxLength) {
110
- validators.push({
111
- type: FormUtilities,
112
- func: FormUtilities.validateMaxLength,
113
- params: [property.maxLength]
114
- });
115
- }
116
- switch (property.format) {
117
- case "email":
118
- validators.push(FormUtilities.validateEmail);
119
- break;
120
- }
121
- return validators;
122
- }
123
- }
124
- OpenApiService.decorators = [
125
- { type: Injectable }
126
- ];
127
- OpenApiService.ctorParameters = () => [
128
- { type: ApiService }
129
- ];
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9zdGVtbGVyL1dvcmsvbmd4LWR5bmFtaWMtZm9ybS9zcmMvIiwic291cmNlcyI6WyJuZ3gtZHluYW1pYy1mb3JtL3NlcnZpY2VzL29wZW4tYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsVUFBVSxFQUFFLFdBQVcsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRXpELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUUvQyxPQUFPLEVBQ0gsY0FBYyxFQUNkLGVBQWUsRUFDZixnQkFBZ0IsRUFTbkIsTUFBTSxpQkFBaUIsQ0FBQztBQXlCekIsTUFBTSxPQUFPLGNBQWM7SUFLdkIsWUFBb0IsR0FBZTtRQUFmLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksT0FBTyxDQUFNLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNoRCxJQUFJLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO2dCQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFCLENBQUMsRUFBRSxHQUFHLEVBQUU7Z0JBQ0osT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hCLENB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Q1osSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLElBQUksRUFBRSxhQUFhLENBQUMsaUJBQWlCO2dCQUNyQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO2FBQy9CLENBQUMsQ0FBQztTQUNOO1FBQ0QsSUFBSSxRQUFRLENBQUMsU0FBUyxFQUFFO1lBQ3BCLFVBQVUsQ0FBQyxJQUFJLENBQUM7Z0JBQ1osSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLElBQUksRUFBRSxhQUFhLENBQUMsaUJBQWlCO2dCQUNyQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO2FBQy9CLENBQUMsQ0FBQztTQUNOO1FBQ0QsUUFBUSxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3JCLEtBQUssT0FBTztnQkFDUixVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDN0MsTUFBTTtTQUNiO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQzs7O1lBeklKLFVBQVU7OztZQXhDSCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtBcGlTZXJ2aWNlLCBTdHJpbmdVdGlsc30gZnJvbSBcIkBzdGVteS9uZ3gtdXRpbHNcIjtcblxuaW1wb3J0IHtGb3JtVXRpbGl0aWVzfSBmcm9tIFwiLi9mb3JtLXV0aWxpdGllc1wiO1xuXG5pbXBvcnQge1xuICAgIGNyZWF0ZUZvcm1GaWxlLFxuICAgIGNyZWF0ZUZvcm1JbnB1dCxcbiAgICBjcmVhdGVGb3JtU2VsZWN0LFxuICAgIEZvcm1Db250cm9sVmFsaWRhdG9yRmFjdG9yeSxcbiAgICBJRHluYW1pY0Zvcm1Db250cm9sLFxuICAgIElGb3JtQ29udHJvbCxcbiAgICBJRm9ybUNvbnRyb2xEYXRhLFxuICAgIElGb3JtRmlsZURhdGEsXG4gICAgSUZvcm1JbnB1dERhdGEsXG4gICAgSUZvcm1TZWxlY3REYXRhLFxuICAgIElGb3JtU2VyaWFsaXplcnNcbn0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElPcGVuQXBpU2NoZW1hUHJvcGVydHkge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGZvcm1hdDogc3RyaW5nO1xuICAgIGNvbHVtbjogYm9vbGVhbjtcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogYW55O1xuICAgICRyZWY6IHN0cmluZztcbiAgICBlbnVtOiBzdHJpbmdbXTtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9wZW5BcGlTY2hlbWEge1xuICAgIHByb3BlcnRpZXM6IHsgW25hbWU6IHN0cmluZ106IElPcGVuQXBpU2NoZW1hUHJvcGVydHkgfTtcbiAgICByZXF1aXJlZDogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUR5bmFtaWNGb3JtSW5wdXRzIHtcbiAgICBjb250cm9scz86IElGb3JtQ29udHJvbFtdO1xuICAgIHNlcmlhbGl6ZXJzPzogSUZvcm1TZXJpYWxpemVycztcbiAgICBzY2hlbWE/OiBJT3BlbkFwaVNjaGVtYTtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9wZW5BcGlTZXJ2aWNlIHtcblxuICAgIHByaXZhdGUgc2NoZW1hc1Byb21pc2U6IFByb21pc2U8YW55PjtcbiAgICBwcml2YXRlIHNjaGVtYXM6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpOiBBcGlTZXJ2aWNlKSB7XG4gICAgICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLmFwaS51cmwoXCJcIikucmVwbGFjZShcImFwaS9cIiwgXCJhcGktZG9jc1wiKTtcbiAgICAgICAgdGhpcy5zY2hlbWFzID0ge307XG4gICAgICAgIHRoaXMuc2NoZW1hc1Byb21pc2UgPSBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXBpLmNsaWVudC5nZXQoYmFzZVVybCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2NoZW1hcyA9IHJlcy5kZWZpbml0aW9ucyB8fCB7fTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHRoaXMuc2NoZW1hcyk7XG4gICAgICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7fSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIGdldEZvcm1JbnB1dHNGb3JTY2hlbWEobmFtZTogc3RyaW5nKTogUHJvbWlzZTxJRHluYW1pY0Zvcm1JbnB1dHM+IHtcbiAgICAgICAgdGhpcy5hcGkuY2FjaGUgPSB7fTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2NoZW1hc1Byb21pc2UudGhlbihzY2hlbWFzID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNjaGVtYTogSU9wZW5BcGlTY2hlbWEgPSBzY2hlbWFzW25hbWVdO1xuICAgICAgICAgICAgY29uc3QgaW5wdXRzID0gdGhpcy5nZXRGb3JtSW5wdXRzRm9yU2NoZW1hRGVmKHNjaGVtYSk7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXRzO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZvcm1JbnB1dHNGb3JTY2hlbWFEZWYoc2NoZW1hOiBJT3BlbkFwaVNjaGVtYSk6IElEeW5hbWljRm9ybUlucHV0cyB7XG4gICAgICAgIGNvbnN0IGlucHV0czogSUR5bmFtaWNGb3JtSW5wdXRzID0ge307XG4gICAgICAgIGlmICghc2NoZW1hKSByZXR1cm4gaW5wdXRzO1xuICAgICAgICBpbnB1dHMuc2NoZW1hID0gc2NoZW1hO1xuICAgICAgICBpbnB1dHMuc2VyaWFsaXplcnMgPSB7fTtcbiAgICAgICAgaW5wdXRzLmNvbnRyb2xzID0gT2JqZWN0LmtleXMoc2NoZW1hLnByb3BlcnRpZXMgfHwge30pLm1hcChwID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5ID0gc2NoZW1hLnByb3BlcnRpZXNbcF07XG4gICAgICAgICAgICBwcm9wZXJ0eS5pZCA9IHA7XG4gICAgICAgICAgICBpbnB1dHMuc2VyaWFsaXplcnNbcF0gPSAoaWQ6IHN0cmluZywgcGFyZW50OiBJRHluYW1pY0Zvcm1Db250cm9sKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwYXJlbnQubW9kZWxbaWRdKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRGb3JtQ29udHJvbEZvclByb3BlcnR5KHByb3BlcnR5LCBzY2hlbWEpO1xuICAgICAgICB9KS5maWx0ZXIodCA9PiBudWxsICE9PSB0KTtcbiAgICAgICAgcmV0dXJuIGlucHV0cztcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZvcm1Db250cm9sRm9yUHJvcGVydHkocHJvcGVydHk6IElPcGVuQXBpU2NoZW1hUHJvcGVydHksIHNjaGVtYTogSU9wZW5BcGlTY2hlbWEpOiBJRm9ybUNvbnRyb2wge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0eS5lbnVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUZvcm1TZWxlY3QocHJvcGVydHkuaWQsIHRoaXMuZ2V0Rm9ybVNlbGVjdERhdGEocHJvcGVydHksIHNjaGVtYSkpO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAocHJvcGVydHkudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxuICAgICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgIGNhc2UgXCJ0ZXh0YXJlYVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGb3JtSW5wdXQocHJvcGVydHkuaWQsIHRoaXMuZ2V0Rm9ybUlucHV0RGF0YShwcm9wZXJ0eSwgc2NoZW1hKSk7XG4gICAgICAgICAgICBjYXNlIFwibGlzdFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGb3JtU2VsZWN0KHByb3BlcnR5LmlkLCB0aGlzLmdldEZvcm1TZWxlY3REYXRhKHByb3BlcnR5LCBzY2hlbWEpKTtcbiAgICAgICAgICAgIGNhc2UgXCJmaWxlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUZvcm1GaWxlKHByb3BlcnR5LmlkLCB0aGlzLmdldEZvcm1GaWxlRGF0YShwcm9wZXJ0eSwgc2NoZW1hKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRCYXNlRm9ybURhdGEocHJvcGVydHk6IElPcGVuQXBpU2NoZW1hUHJvcGVydHksIHNjaGVtYTogSU9wZW5BcGlTY2hlbWEpOiBJRm9ybUNvbnRyb2xEYXRhIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlYWRvbmx5OiBwcm9wZXJ0eS5yZWFkb25seSA/IEZvcm1VdGlsaXRpZXMucmVhZG9ubHkgOiBudWxsLFxuICAgICAgICAgICAgc2hvdWxkU2VyaWFsaXplOiBGb3JtVXRpbGl0aWVzLmNoZWNrUmVhZG9ubHksXG4gICAgICAgICAgICB2YWxpZGF0b3JzOiB0aGlzLmdldFZhbGlkYXRvcnMocHJvcGVydHksIHNjaGVtYSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9ybUlucHV0RGF0YShwcm9wZXJ0eTogSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eSwgc2NoZW1hOiBJT3BlbkFwaVNjaGVtYSk6IElGb3JtSW5wdXREYXRhIHtcbiAgICAgICAgbGV0IHR5cGUgPSBTdHJpbmdVdGlscy5oYXMocHJvcGVydHkuaWQsIFwicGFzc3dvcmRcIiwgXCJQYXNzd29yZFwiKSA/IFwicGFzc3dvcmRcIiA6IHByb3BlcnR5LnR5cGU7XG4gICAgICAgIHN3aXRjaCAocHJvcGVydHkudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgICAgICB0eXBlID0gXCJjaGVja2JveFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcInRleHRhcmVhXCI6XG4gICAgICAgICAgICAgICAgdHlwZSA9IFwidGV4dGFyZWFcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGhpcy5nZXRCYXNlRm9ybURhdGEocHJvcGVydHksIHNjaGVtYSksXG4gICAgICAgICAgICB0eXBlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGb3JtU2VsZWN0RGF0YShwcm9wZXJ0eTogSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eSwgc2NoZW1hOiBJT3BlbkFwaVNjaGVtYSk6IElGb3JtU2VsZWN0RGF0YSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBBcnJheS5pc0FycmF5KHByb3BlcnR5LmVudW0pXG4gICAgICAgICAgICA/ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHByb3BlcnR5LmVudW0ubWFwKGlkID0+ICh7IGlkLCBsYWJlbDogYCR7cHJvcGVydHkuaWR9LiR7aWR9YCB9KSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcGkuY2FjaGVbcHJvcGVydHkuZW5kcG9pbnRdID0gdGhpcy5hcGkuY2FjaGVbcHJvcGVydHkuZW5kcG9pbnRdIHx8IHRoaXMuYXBpLmxpc3QocHJvcGVydHkuZW5kcG9pbnQsIHRoaXMuYXBpLm1ha2VMaXN0UGFyYW1zKDEsIC0xKSkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Lml0ZW1zLm1hcChpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGlkOiBpLl9pZCwgbGFiZWw6IGkubmFtZSB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hcGkuY2FjaGVbcHJvcGVydHkuZW5kcG9pbnRdO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0QmFzZUZvcm1EYXRhKHByb3BlcnR5LCBzY2hlbWEpLFxuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZvcm1GaWxlRGF0YShwcm9wZXJ0eTogSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eSwgc2NoZW1hOiBJT3BlbkFwaVNjaGVtYSk6IElGb3JtRmlsZURhdGEge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGhpcy5nZXRCYXNlRm9ybURhdGEocHJvcGVydHksIHNjaGVtYSksXG4gICAgICAgICAgICBtdWx0aTogcHJvcGVydHkubXVsdGlcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFZhbGlkYXRvcnMocHJvcGVydHk6IElPcGVuQXBpU2NoZW1hUHJvcGVydHksIHNjaGVtYTogSU9wZW5BcGlTY2hlbWEpOiBGb3JtQ29udHJvbFZhbGlkYXRvckZhY3RvcnlbXSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IEZvcm1Db250cm9sVmFsaWRhdG9yRmFjdG9yeVtdID0gW107XG4gICAgICAgIGlmIChzY2hlbWEucmVxdWlyZWQuaW5kZXhPZihwcm9wZXJ0eS5pZCkgPj0gMCkge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKEZvcm1VdGlsaXRpZXMudmFsaWRhdGVSZXF1aXJlZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb3BlcnR5Lm1pbkxlbmd0aCkge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBGb3JtVXRpbGl0aWVzLFxuICAgICAgICAgICAgICAgIGZ1bmM6IEZvcm1VdGlsaXRpZXMudmFsaWRhdGVNaW5MZW5ndGgsXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBbcHJvcGVydHkubWluTGVuZ3RoXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByb3BlcnR5Lm1heExlbmd0aCkge1xuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBGb3JtVXRpbGl0aWVzLFxuICAgICAgICAgICAgICAgIGZ1bmM6IEZvcm1VdGlsaXRpZXMudmFsaWRhdGVNYXhMZW5ndGgsXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBbcHJvcGVydHkubWF4TGVuZ3RoXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChwcm9wZXJ0eS5mb3JtYXQpIHtcbiAgICAgICAgICAgIGNhc2UgXCJlbWFpbFwiOlxuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChGb3JtVXRpbGl0aWVzLnZhbGlkYXRlRW1haWwpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICAgIH1cbn1cbiJdfQ==
1
+ import { Injectable } from "@angular/core";
2
+ import { ApiService, StringUtils } from "@stemy/ngx-utils";
3
+ import { FormUtilities } from "./form-utilities";
4
+ import { createFormFile, createFormInput, createFormSelect } from "../common-types";
5
+ export class OpenApiService {
6
+ constructor(api) {
7
+ this.api = api;
8
+ const baseUrl = this.api.url("").replace("api/", "api-docs");
9
+ this.schemas = {};
10
+ this.schemasPromise = new Promise((resolve => {
11
+ this.api.client.get(baseUrl).subscribe((res) => {
12
+ this.schemas = res.definitions || {};
13
+ resolve(this.schemas);
14
+ }, () => {
15
+ resolve({});
16
+ });
17
+ }));
18
+ }
19
+ getFormInputsForSchema(name) {
20
+ this.api.cache = {};
21
+ return this.schemasPromise.then(schemas => {
22
+ const schema = schemas[name];
23
+ const inputs = this.getFormInputsForSchemaDef(schema);
24
+ return inputs;
25
+ });
26
+ }
27
+ getFormInputsForSchemaDef(schema) {
28
+ const inputs = {};
29
+ if (!schema)
30
+ return inputs;
31
+ inputs.schema = schema;
32
+ inputs.serializers = {};
33
+ inputs.controls = Object.keys(schema.properties || {}).map(p => {
34
+ const property = schema.properties[p];
35
+ property.id = p;
36
+ inputs.serializers[p] = (id, parent) => {
37
+ return Promise.resolve(parent.model[id]);
38
+ };
39
+ return this.getFormControlForProperty(property, schema);
40
+ }).filter(t => null !== t);
41
+ return inputs;
42
+ }
43
+ getFormControlForProperty(property, schema) {
44
+ if (Array.isArray(property.enum)) {
45
+ return createFormSelect(property.id, this.getFormSelectData(property, schema));
46
+ }
47
+ switch (property.type) {
48
+ case "string":
49
+ case "number":
50
+ case "boolean":
51
+ case "textarea":
52
+ return createFormInput(property.id, this.getFormInputData(property, schema));
53
+ case "list":
54
+ return createFormSelect(property.id, this.getFormSelectData(property, schema));
55
+ case "file":
56
+ return createFormFile(property.id, this.getFormFileData(property, schema));
57
+ }
58
+ return null;
59
+ }
60
+ getBaseFormData(property, schema) {
61
+ return {
62
+ readonly: property.readonly ? FormUtilities.readonly : null,
63
+ shouldSerialize: FormUtilities.checkReadonly,
64
+ validators: this.getValidators(property, schema)
65
+ };
66
+ }
67
+ getFormInputData(property, schema) {
68
+ let type = StringUtils.has(property.id, "password", "Password") ? "password" : property.type;
69
+ switch (property.type) {
70
+ case "boolean":
71
+ type = "checkbox";
72
+ break;
73
+ case "textarea":
74
+ type = "textarea";
75
+ break;
76
+ }
77
+ return Object.assign(Object.assign({}, this.getBaseFormData(property, schema)), { type });
78
+ }
79
+ getFormSelectData(property, schema) {
80
+ const options = Array.isArray(property.enum)
81
+ ? () => {
82
+ return Promise.resolve(property.enum.map(id => ({ id, label: `${property.id}.${id}` })));
83
+ }
84
+ : () => {
85
+ this.api.cache[property.endpoint] = this.api.cache[property.endpoint] || this.api.list(property.endpoint, this.api.makeListParams(1, -1)).then(result => {
86
+ return result.items.map(i => {
87
+ return { id: i._id, label: i.name };
88
+ });
89
+ });
90
+ return this.api.cache[property.endpoint];
91
+ };
92
+ return Object.assign(Object.assign({}, this.getBaseFormData(property, schema)), { options });
93
+ }
94
+ getFormFileData(property, schema) {
95
+ return Object.assign(Object.assign({}, this.getBaseFormData(property, schema)), { multi: property.multi });
96
+ }
97
+ getValidators(property, schema) {
98
+ const validators = [];
99
+ if (schema.required.indexOf(property.id) >= 0) {
100
+ validators.push(FormUtilities.validateRequired);
101
+ }
102
+ if (property.minLength) {
103
+ validators.push({
104
+ type: FormUtilities,
105
+ func: FormUtilities.validateMinLength,
106
+ params: [property.minLength]
107
+ });
108
+ }
109
+ if (property.maxLength) {
110
+ validators.push({
111
+ type: FormUtilities,
112
+ func: FormUtilities.validateMaxLength,
113
+ params: [property.maxLength]
114
+ });
115
+ }
116
+ switch (property.format) {
117
+ case "email":
118
+ validators.push(FormUtilities.validateEmail);
119
+ break;
120
+ }
121
+ return validators;
122
+ }
123
+ }
124
+ OpenApiService.decorators = [
125
+ { type: Injectable }
126
+ ];
127
+ OpenApiService.ctorParameters = () => [
128
+ { type: ApiService }
129
+ ];
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3JrL25neC1keW5hbWljLWZvcm0vc3JjLyIsInNvdXJjZXMiOlsibmd4LWR5bmFtaWMtZm9ybS9zZXJ2aWNlcy9vcGVuLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUV6RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFL0MsT0FBTyxFQUNILGNBQWMsRUFDZCxlQUFlLEVBQ2YsZ0JBQWdCLEVBU25CLE1BQU0saUJBQWlCLENBQUM7QUF5QnpCLE1BQU0sT0FBTyxjQUFjO0lBS3ZCLFlBQW9CLEdBQWU7UUFBZixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQy9CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLE9BQU8sQ0FBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDaEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztnQkFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQixDQUFDLEVBQUUsR0FBRyxFQUFFO2dCQUNKLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FB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RSxhQUFhO2dCQUNuQixJQUFJLEVBQUUsYUFBYSxDQUFDLGlCQUFpQjtnQkFDckMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQzthQUMvQixDQUFDLENBQUM7U0FDTjtRQUNELElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRTtZQUNwQixVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUNaLElBQUksRUFBRSxhQUFhO2dCQUNuQixJQUFJLEVBQUUsYUFBYSxDQUFDLGlCQUFpQjtnQkFDckMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQzthQUMvQixDQUFDLENBQUM7U0FDTjtRQUNELFFBQVEsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNyQixLQUFLLE9BQU87Z0JBQ1IsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQzdDLE1BQU07U0FDYjtRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7OztZQXpJSixVQUFVOzs7WUF4Q0gsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBcGlTZXJ2aWNlLCBTdHJpbmdVdGlsc30gZnJvbSBcIkBzdGVteS9uZ3gtdXRpbHNcIjtcclxuXHJcbmltcG9ydCB7Rm9ybVV0aWxpdGllc30gZnJvbSBcIi4vZm9ybS11dGlsaXRpZXNcIjtcclxuXHJcbmltcG9ydCB7XHJcbiAgICBjcmVhdGVGb3JtRmlsZSxcclxuICAgIGNyZWF0ZUZvcm1JbnB1dCxcclxuICAgIGNyZWF0ZUZvcm1TZWxlY3QsXHJcbiAgICBGb3JtQ29udHJvbFZhbGlkYXRvckZhY3RvcnksXHJcbiAgICBJRHluYW1pY0Zvcm1Db250cm9sLFxyXG4gICAgSUZvcm1Db250cm9sLFxyXG4gICAgSUZvcm1Db250cm9sRGF0YSxcclxuICAgIElGb3JtRmlsZURhdGEsXHJcbiAgICBJRm9ybUlucHV0RGF0YSxcclxuICAgIElGb3JtU2VsZWN0RGF0YSxcclxuICAgIElGb3JtU2VyaWFsaXplcnNcclxufSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElPcGVuQXBpU2NoZW1hUHJvcGVydHkge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIHR5cGU6IHN0cmluZztcclxuICAgIGZvcm1hdDogc3RyaW5nO1xyXG4gICAgY29sdW1uOiBib29sZWFuO1xyXG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGFueTtcclxuICAgICRyZWY6IHN0cmluZztcclxuICAgIGVudW06IHN0cmluZ1tdO1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElPcGVuQXBpU2NoZW1hIHtcclxuICAgIHByb3BlcnRpZXM6IHsgW25hbWU6IHN0cmluZ106IElPcGVuQXBpU2NoZW1hUHJvcGVydHkgfTtcclxuICAgIHJlcXVpcmVkOiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRHluYW1pY0Zvcm1JbnB1dHMge1xyXG4gICAgY29udHJvbHM/OiBJRm9ybUNvbnRyb2xbXTtcclxuICAgIHNlcmlhbGl6ZXJzPzogSUZvcm1TZXJpYWxpemVycztcclxuICAgIHNjaGVtYT86IElPcGVuQXBpU2NoZW1hO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBPcGVuQXBpU2VydmljZSB7XHJcblxyXG4gICAgcHJpdmF0ZSBzY2hlbWFzUHJvbWlzZTogUHJvbWlzZTxhbnk+O1xyXG4gICAgcHJpdmF0ZSBzY2hlbWFzOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGk6IEFwaVNlcnZpY2UpIHtcclxuICAgICAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5hcGkudXJsKFwiXCIpLnJlcGxhY2UoXCJhcGkvXCIsIFwiYXBpLWRvY3NcIik7XHJcbiAgICAgICAgdGhpcy5zY2hlbWFzID0ge307XHJcbiAgICAgICAgdGhpcy5zY2hlbWFzUHJvbWlzZSA9IG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmFwaS5jbGllbnQuZ2V0KGJhc2VVcmwpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2NoZW1hcyA9IHJlcy5kZWZpbml0aW9ucyB8fCB7fTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUodGhpcy5zY2hlbWFzKTtcclxuICAgICAgICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7fSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRGb3JtSW5wdXRzRm9yU2NoZW1hKG5hbWU6IHN0cmluZyk6IFByb21pc2U8SUR5bmFtaWNGb3JtSW5wdXRzPiB7XHJcbiAgICAgICAgdGhpcy5hcGkuY2FjaGUgPSB7fTtcclxuICAgICAgICByZXR1cm4gdGhpcy5zY2hlbWFzUHJvbWlzZS50aGVuKHNjaGVtYXMgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzY2hlbWE6IElPcGVuQXBpU2NoZW1hID0gc2NoZW1hc1tuYW1lXTtcclxuICAgICAgICAgICAgY29uc3QgaW5wdXRzID0gdGhpcy5nZXRGb3JtSW5wdXRzRm9yU2NoZW1hRGVmKHNjaGVtYSk7XHJcbiAgICAgICAgICAgIHJldHVybiBpbnB1dHM7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRGb3JtSW5wdXRzRm9yU2NoZW1hRGVmKHNjaGVtYTogSU9wZW5BcGlTY2hlbWEpOiBJRHluYW1pY0Zvcm1JbnB1dHMge1xyXG4gICAgICAgIGNvbnN0IGlucHV0czogSUR5bmFtaWNGb3JtSW5wdXRzID0ge307XHJcbiAgICAgICAgaWYgKCFzY2hlbWEpIHJldHVybiBpbnB1dHM7XHJcbiAgICAgICAgaW5wdXRzLnNjaGVtYSA9IHNjaGVtYTtcclxuICAgICAgICBpbnB1dHMuc2VyaWFsaXplcnMgPSB7fTtcclxuICAgICAgICBpbnB1dHMuY29udHJvbHMgPSBPYmplY3Qua2V5cyhzY2hlbWEucHJvcGVydGllcyB8fCB7fSkubWFwKHAgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBwcm9wZXJ0eSA9IHNjaGVtYS5wcm9wZXJ0aWVzW3BdO1xyXG4gICAgICAgICAgICBwcm9wZXJ0eS5pZCA9IHA7XHJcbiAgICAgICAgICAgIGlucHV0cy5zZXJpYWxpemVyc1twXSA9IChpZDogc3RyaW5nLCBwYXJlbnQ6IElEeW5hbWljRm9ybUNvbnRyb2wpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocGFyZW50Lm1vZGVsW2lkXSk7XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEZvcm1Db250cm9sRm9yUHJvcGVydHkocHJvcGVydHksIHNjaGVtYSk7XHJcbiAgICAgICAgfSkuZmlsdGVyKHQgPT4gbnVsbCAhPT0gdCk7XHJcbiAgICAgICAgcmV0dXJuIGlucHV0cztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEZvcm1Db250cm9sRm9yUHJvcGVydHkocHJvcGVydHk6IElPcGVuQXBpU2NoZW1hUHJvcGVydHksIHNjaGVtYTogSU9wZW5BcGlTY2hlbWEpOiBJRm9ybUNvbnRyb2wge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHByb3BlcnR5LmVudW0pKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVGb3JtU2VsZWN0KHByb3BlcnR5LmlkLCB0aGlzLmdldEZvcm1TZWxlY3REYXRhKHByb3BlcnR5LCBzY2hlbWEpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3dpdGNoIChwcm9wZXJ0eS50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcclxuICAgICAgICAgICAgY2FzZSBcIm51bWJlclwiOlxyXG4gICAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxyXG4gICAgICAgICAgICBjYXNlIFwidGV4dGFyZWFcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVGb3JtSW5wdXQocHJvcGVydHkuaWQsIHRoaXMuZ2V0Rm9ybUlucHV0RGF0YShwcm9wZXJ0eSwgc2NoZW1hKSk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJsaXN0XCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlRm9ybVNlbGVjdChwcm9wZXJ0eS5pZCwgdGhpcy5nZXRGb3JtU2VsZWN0RGF0YShwcm9wZXJ0eSwgc2NoZW1hKSk7XHJcbiAgICAgICAgICAgIGNhc2UgXCJmaWxlXCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlRm9ybUZpbGUocHJvcGVydHkuaWQsIHRoaXMuZ2V0Rm9ybUZpbGVEYXRhKHByb3BlcnR5LCBzY2hlbWEpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRCYXNlRm9ybURhdGEocHJvcGVydHk6IElPcGVuQXBpU2NoZW1hUHJvcGVydHksIHNjaGVtYTogSU9wZW5BcGlTY2hlbWEpOiBJRm9ybUNvbnRyb2xEYXRhIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICByZWFkb25seTogcHJvcGVydHkucmVhZG9ubHkgPyBGb3JtVXRpbGl0aWVzLnJlYWRvbmx5IDogbnVsbCxcclxuICAgICAgICAgICAgc2hvdWxkU2VyaWFsaXplOiBGb3JtVXRpbGl0aWVzLmNoZWNrUmVhZG9ubHksXHJcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IHRoaXMuZ2V0VmFsaWRhdG9ycyhwcm9wZXJ0eSwgc2NoZW1hKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEZvcm1JbnB1dERhdGEocHJvcGVydHk6IElPcGVuQXBpU2NoZW1hUHJvcGVydHksIHNjaGVtYTogSU9wZW5BcGlTY2hlbWEpOiBJRm9ybUlucHV0RGF0YSB7XHJcbiAgICAgICAgbGV0IHR5cGUgPSBTdHJpbmdVdGlscy5oYXMocHJvcGVydHkuaWQsIFwicGFzc3dvcmRcIiwgXCJQYXNzd29yZFwiKSA/IFwicGFzc3dvcmRcIiA6IHByb3BlcnR5LnR5cGU7XHJcbiAgICAgICAgc3dpdGNoIChwcm9wZXJ0eS50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XHJcbiAgICAgICAgICAgICAgICB0eXBlID0gXCJjaGVja2JveFwiO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ0ZXh0YXJlYVwiOlxyXG4gICAgICAgICAgICAgICAgdHlwZSA9IFwidGV4dGFyZWFcIjtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi50aGlzLmdldEJhc2VGb3JtRGF0YShwcm9wZXJ0eSwgc2NoZW1hKSxcclxuICAgICAgICAgICAgdHlwZVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRGb3JtU2VsZWN0RGF0YShwcm9wZXJ0eTogSU9wZW5BcGlTY2hlbWFQcm9wZXJ0eSwgc2NoZW1hOiBJT3BlbkFwaVNjaGVtYSk6IElGb3JtU2VsZWN0RGF0YSB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IEFycmF5LmlzQXJyYXkocHJvcGVydHkuZW51bSlcclxuICAgICAgICAgICAgPyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHByb3BlcnR5LmVudW0ubWFwKGlkID0+ICh7IGlkLCBsYWJlbDogYCR7cHJvcGVydHkuaWR9LiR7aWR9YCB9KSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hcGkuY2FjaGVbcHJvcGVydHkuZW5kcG9pbnRdID0gdGhpcy5hcGkuY2FjaGVbcHJvcGVydHkuZW5kcG9pbnRdIHx8IHRoaXMuYXBpLmxpc3QocHJvcGVydHkuZW5kcG9pbnQsIHRoaXMuYXBpLm1ha2VMaXN0UGFyYW1zKDEsIC0xKSkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuaXRlbXMubWFwKGkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpZDogaS5faWQsIGxhYmVsOiBpLm5hbWUgfTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBpLmNhY2hlW3Byb3BlcnR5LmVuZHBvaW50XTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi50aGlzLmdldEJhc2VGb3JtRGF0YShwcm9wZXJ0eSwgc2NoZW1hKSxcclxuICAgICAgICAgICAgb3B0aW9ucyxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0Rm9ybUZpbGVEYXRhKHByb3BlcnR5OiBJT3BlbkFwaVNjaGVtYVByb3BlcnR5LCBzY2hlbWE6IElPcGVuQXBpU2NoZW1hKTogSUZvcm1GaWxlRGF0YSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgLi4udGhpcy5nZXRCYXNlRm9ybURhdGEocHJvcGVydHksIHNjaGVtYSksXHJcbiAgICAgICAgICAgIG11bHRpOiBwcm9wZXJ0eS5tdWx0aVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRWYWxpZGF0b3JzKHByb3BlcnR5OiBJT3BlbkFwaVNjaGVtYVByb3BlcnR5LCBzY2hlbWE6IElPcGVuQXBpU2NoZW1hKTogRm9ybUNvbnRyb2xWYWxpZGF0b3JGYWN0b3J5W10ge1xyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IEZvcm1Db250cm9sVmFsaWRhdG9yRmFjdG9yeVtdID0gW107XHJcbiAgICAgICAgaWYgKHNjaGVtYS5yZXF1aXJlZC5pbmRleE9mKHByb3BlcnR5LmlkKSA+PSAwKSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChGb3JtVXRpbGl0aWVzLnZhbGlkYXRlUmVxdWlyZWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocHJvcGVydHkubWluTGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBGb3JtVXRpbGl0aWVzLFxyXG4gICAgICAgICAgICAgICAgZnVuYzogRm9ybVV0aWxpdGllcy52YWxpZGF0ZU1pbkxlbmd0aCxcclxuICAgICAgICAgICAgICAgIHBhcmFtczogW3Byb3BlcnR5Lm1pbkxlbmd0aF1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChwcm9wZXJ0eS5tYXhMZW5ndGgpIHtcclxuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IEZvcm1VdGlsaXRpZXMsXHJcbiAgICAgICAgICAgICAgICBmdW5jOiBGb3JtVXRpbGl0aWVzLnZhbGlkYXRlTWF4TGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgcGFyYW1zOiBbcHJvcGVydHkubWF4TGVuZ3RoXVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3dpdGNoIChwcm9wZXJ0eS5mb3JtYXQpIHtcclxuICAgICAgICAgICAgY2FzZSBcImVtYWlsXCI6XHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goRm9ybVV0aWxpdGllcy52YWxpZGF0ZUVtYWlsKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdmFsaWRhdG9ycztcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,18 +1,18 @@
1
- export { FORM_CONTROL_PROVIDER, FormControlComponent, DynamicFormGroup, DynamicFormControl, defaultSerializer, FormSerializable, FormInput, FormSelect, FormStatic, FormModel, FormFile, FormFieldSet, provideFormGroup, provideFormControl, defineFormControl, getFormFieldSets, getFormControl, getFormSerializer, createFormInput, createFormSelect, createFormStatic, createFormModel, createFormControl } from "./ngx-dynamic-form/common-types";
2
- export { DynamicFormService } from "./ngx-dynamic-form/services/dynamic-form.service";
3
- export { FormUtilities } from "./ngx-dynamic-form/services/form-utilities";
4
- export { OpenApiService } from "./ngx-dynamic-form/services/open-api.service";
5
- export { AsyncSubmitDirective } from "./ngx-dynamic-form/directives/async-submit.directive";
6
- export { DynamicFormControlDirective } from "./ngx-dynamic-form/directives/dynamic-form-control.directive";
7
- export { DynamicFormTemplateDirective } from "./ngx-dynamic-form/directives/dynamic-form-template.directive";
8
- export { DynamicFormBaseComponent } from "./ngx-dynamic-form/components/base/dynamic-form-base.component";
9
- export { DynamicFormComponent } from "./ngx-dynamic-form/components/dynamic-form/dynamic-form.component";
10
- export { DynamicFormsComponent } from "./ngx-dynamic-form/components/dynamic-forms/dynamic-forms.component";
11
- export { DynamicFormGroupComponent } from "./ngx-dynamic-form/components/dynamic-form-group/dynamic-form-group.component";
12
- export { DynamicFormFileComponent } from "./ngx-dynamic-form/components/dynamic-form-file/dynamic-form-file.component";
13
- export { DynamicFormInputComponent } from "./ngx-dynamic-form/components/dynamic-form-input/dynamic-form-input.component";
14
- export { DynamicFormSelectComponent } from "./ngx-dynamic-form/components/dynamic-form-select/dynamic-form-select.component";
15
- export { DynamicFormStaticComponent } from "./ngx-dynamic-form/components/dynamic-form-static/dynamic-form-static.component";
16
- export { DynamicFormModelComponent } from "./ngx-dynamic-form/components/dynamic-form-model/dynamic-form-model.component";
17
- export { NgxDynamicFormModule } from "./ngx-dynamic-form/ngx-dynamic-form.module";
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9zdGVtbGVyL1dvcmsvbmd4LWR5bmFtaWMtZm9ybS9zcmMvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFDSCxxQkFBcUIsRUFHckIsb0JBQW9CLEVBY3BCLGdCQUFnQixFQUNoQixrQkFBa0IsRUF3QmxCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBRVosZ0JBQWdCLEVBRWhCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGlCQUFpQixFQUNwQixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsY0FBYyxFQUE2RCxNQUFNLDhDQUE4QyxDQUFDO0FBRXhJLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzFGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBRTNHLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBQ3ZHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHFFQUFxRSxDQUFDO0FBQzFHLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLCtFQUErRSxDQUFDO0FBQ3hILE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDZFQUE2RSxDQUFDO0FBQ3JILE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLCtFQUErRSxDQUFDO0FBQ3hILE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlGQUFpRixDQUFDO0FBQzNILE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGlGQUFpRixDQUFDO0FBQzNILE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLCtFQUErRSxDQUFDO0FBRXhILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEeW5hbWljRm9ybUNvbnRyb2x9IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0vY29tbW9uLXR5cGVzXCI7XG5cbmV4cG9ydCB7XG4gICAgRk9STV9DT05UUk9MX1BST1ZJREVSLFxuICAgIElGb3JtQ29udHJvbENvbXBvbmVudCxcbiAgICBJRm9ybUdyb3VwQ29tcG9uZW50LFxuICAgIEZvcm1Db250cm9sQ29tcG9uZW50LFxuICAgIElGb3JtQ29udHJvbFByb3ZpZGVyQWNjZXB0b3IsXG4gICAgSUZvcm1Db250cm9sUHJvdmlkZXJMb2FkZXIsXG4gICAgSUZvcm1Db250cm9sT3B0aW9ucyxcbiAgICBJRm9ybUNvbnRyb2xTZXJpYWxpemVyLFxuICAgIElGb3JtSW5wdXRNYXNrLFxuICAgIElGb3JtSW5wdXRNYXNrRnVuY3Rpb24sXG4gICAgSUZvcm1JbnB1dFVuTWFza0Z1bmN0aW9uLFxuICAgIElGb3JtQ29udHJvbFByb3ZpZGVyLFxuICAgIElGb3JtU2VyaWFsaXplcixcbiAgICBJRm9ybVNlcmlhbGl6ZXJzLFxuICAgIER5bmFtaWNGb3JtU3RhdGUsXG4gICAgRHluYW1pY0Zvcm1VcGRhdGVPbixcbiAgICBJRHluYW1pY0Zvcm1Db250cm9sLFxuICAgIER5bmFtaWNGb3JtR3JvdXAsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sLFxuICAgIElGb3JtQ29udHJvbCxcbiAgICBJRm9ybUNvbnRyb2xEYXRhLFxuICAgIElGb3JtSW5wdXREYXRhLFxuICAgIElGb3JtU2VsZWN0RGF0YSxcbiAgICBJRm9ybVN0YXRpY0RhdGEsXG4gICAgSUZvcm1GaWxlRGF0YSxcbiAgICBJRm9ybU1vZGVsRGF0YSxcbiAgICBJRm9ybUZpZWxkU2V0LFxuICAgIElGb3JtQ29udHJvbE9wdGlvbixcbiAgICBJRHluYW1pY0Zvcm1UZW1wbGF0ZXMsXG4gICAgSUR5bmFtaWNGb3JtQ29uZmlnLFxuICAgIElEeW5hbWljU2luZ2xlRm9ybUNvbmZpZyxcbiAgICBJRHluYW1pY011bHRpRm9ybUNvbmZpZyxcbiAgICBJRHluYW1pY0Zvcm1zQ29uZmlncyxcbiAgICBJRHluYW1pY0Zvcm1CYXNlLFxuICAgIEFzeW5jU3VibWl0TWV0aG9kLFxuICAgIElEeW5hbWljRm9ybUluZm8sXG4gICAgSUR5bmFtaWNGb3JtLFxuICAgIElEeW5hbWljRm9ybUZpZWxkU2V0cyxcbiAgICBGb3JtQ29udHJvbFRlc3RlcixcbiAgICBGb3JtQ29udHJvbFRlc3RlckZhY3RvcnksXG4gICAgRm9ybUNvbnRyb2xWYWxpZGF0b3IsXG4gICAgRm9ybUNvbnRyb2xWYWxpZGF0b3JGYWN0b3J5LFxuICAgIGRlZmF1bHRTZXJpYWxpemVyLFxuICAgIEZvcm1TZXJpYWxpemFibGUsXG4gICAgRm9ybUlucHV0LFxuICAgIEZvcm1TZWxlY3QsXG4gICAgRm9ybVN0YXRpYyxcbiAgICBGb3JtTW9kZWwsXG4gICAgRm9ybUZpbGUsXG4gICAgRm9ybUZpZWxkU2V0LFxuICAgIEZvcm1Hcm91cFByb3ZpZGVyLFxuICAgIHByb3ZpZGVGb3JtR3JvdXAsXG4gICAgRm9ybUNvbnRyb2xQcm92aWRlcixcbiAgICBwcm92aWRlRm9ybUNvbnRyb2wsXG4gICAgZGVmaW5lRm9ybUNvbnRyb2wsXG4gICAgZ2V0Rm9ybUZpZWxkU2V0cyxcbiAgICBnZXRGb3JtQ29udHJvbCxcbiAgICBnZXRGb3JtU2VyaWFsaXplcixcbiAgICBjcmVhdGVGb3JtSW5wdXQsXG4gICAgY3JlYXRlRm9ybVNlbGVjdCxcbiAgICBjcmVhdGVGb3JtU3RhdGljLFxuICAgIGNyZWF0ZUZvcm1Nb2RlbCxcbiAgICBjcmVhdGVGb3JtQ29udHJvbFxufSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL2NvbW1vbi10eXBlc1wiO1xuXG5leHBvcnQge0R5bmFtaWNGb3JtU2VydmljZX0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9zZXJ2aWNlcy9keW5hbWljLWZvcm0uc2VydmljZVwiO1xuZXhwb3J0IHtGb3JtVXRpbGl0aWVzfSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL3NlcnZpY2VzL2Zvcm0tdXRpbGl0aWVzXCI7XG5leHBvcnQge09wZW5BcGlTZXJ2aWNlLCBJT3BlbkFwaVNjaGVtYVByb3BlcnR5LCBJT3BlbkFwaVNjaGVtYSwgSUR5bmFtaWNGb3JtSW5wdXRzfSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL3NlcnZpY2VzL29wZW4tYXBpLnNlcnZpY2VcIjtcblxuZXhwb3J0IHtBc3luY1N1Ym1pdERpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9kaXJlY3RpdmVzL2FzeW5jLXN1Ym1pdC5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7RHluYW1pY0Zvcm1Db250cm9sRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL2RpcmVjdGl2ZXMvZHluYW1pYy1mb3JtLWNvbnRyb2wuZGlyZWN0aXZlXCI7XG5leHBvcnQge0R5bmFtaWNGb3JtVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0vZGlyZWN0aXZlcy9keW5hbWljLWZvcm0tdGVtcGxhdGUuZGlyZWN0aXZlXCI7XG5cbmV4cG9ydCB7RHluYW1pY0Zvcm1CYXNlQ29tcG9uZW50fSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvYmFzZS9keW5hbWljLWZvcm0tYmFzZS5jb21wb25lbnRcIjtcbmV4cG9ydCB7RHluYW1pY0Zvcm1Db21wb25lbnR9IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLmNvbXBvbmVudFwiO1xuZXhwb3J0IHtEeW5hbWljRm9ybXNDb21wb25lbnR9IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm1zL2R5bmFtaWMtZm9ybXMuY29tcG9uZW50XCI7XG5leHBvcnQge0R5bmFtaWNGb3JtR3JvdXBDb21wb25lbnR9IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tZ3JvdXAvZHluYW1pYy1mb3JtLWdyb3VwLmNvbXBvbmVudFwiO1xuZXhwb3J0IHtEeW5hbWljRm9ybUZpbGVDb21wb25lbnR9IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tZmlsZS9keW5hbWljLWZvcm0tZmlsZS5jb21wb25lbnRcIjtcbmV4cG9ydCB7RHluYW1pY0Zvcm1JbnB1dENvbXBvbmVudH0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1pbnB1dC9keW5hbWljLWZvcm0taW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQge0R5bmFtaWNGb3JtU2VsZWN0Q29tcG9uZW50fSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXNlbGVjdC9keW5hbWljLWZvcm0tc2VsZWN0LmNvbXBvbmVudFwiO1xuZXhwb3J0IHtEeW5hbWljRm9ybVN0YXRpY0NvbXBvbmVudH0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1zdGF0aWMvZHluYW1pYy1mb3JtLXN0YXRpYy5jb21wb25lbnRcIjtcbmV4cG9ydCB7RHluYW1pY0Zvcm1Nb2RlbENvbXBvbmVudH0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1tb2RlbC9keW5hbWljLWZvcm0tbW9kZWwuY29tcG9uZW50XCI7XG5cbmV4cG9ydCB7Tmd4RHluYW1pY0Zvcm1Nb2R1bGV9IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0vbmd4LWR5bmFtaWMtZm9ybS5tb2R1bGVcIjtcbiJdfQ==
1
+ export { FORM_CONTROL_PROVIDER, FormControlComponent, DynamicFormGroup, DynamicFormControl, defaultSerializer, FormSerializable, FormInput, FormSelect, FormStatic, FormModel, FormFile, FormFieldSet, provideFormGroup, provideFormControl, defineFormControl, getFormFieldSets, getFormControl, getFormSerializer, createFormInput, createFormSelect, createFormStatic, createFormModel, createFormControl } from "./ngx-dynamic-form/common-types";
2
+ export { DynamicFormService } from "./ngx-dynamic-form/services/dynamic-form.service";
3
+ export { FormUtilities } from "./ngx-dynamic-form/services/form-utilities";
4
+ export { OpenApiService } from "./ngx-dynamic-form/services/open-api.service";
5
+ export { AsyncSubmitDirective } from "./ngx-dynamic-form/directives/async-submit.directive";
6
+ export { DynamicFormControlDirective } from "./ngx-dynamic-form/directives/dynamic-form-control.directive";
7
+ export { DynamicFormTemplateDirective } from "./ngx-dynamic-form/directives/dynamic-form-template.directive";
8
+ export { DynamicFormBaseComponent } from "./ngx-dynamic-form/components/base/dynamic-form-base.component";
9
+ export { DynamicFormComponent } from "./ngx-dynamic-form/components/dynamic-form/dynamic-form.component";
10
+ export { DynamicFormsComponent } from "./ngx-dynamic-form/components/dynamic-forms/dynamic-forms.component";
11
+ export { DynamicFormGroupComponent } from "./ngx-dynamic-form/components/dynamic-form-group/dynamic-form-group.component";
12
+ export { DynamicFormFileComponent } from "./ngx-dynamic-form/components/dynamic-form-file/dynamic-form-file.component";
13
+ export { DynamicFormInputComponent } from "./ngx-dynamic-form/components/dynamic-form-input/dynamic-form-input.component";
14
+ export { DynamicFormSelectComponent } from "./ngx-dynamic-form/components/dynamic-form-select/dynamic-form-select.component";
15
+ export { DynamicFormStaticComponent } from "./ngx-dynamic-form/components/dynamic-form-static/dynamic-form-static.component";
16
+ export { DynamicFormModelComponent } from "./ngx-dynamic-form/components/dynamic-form-model/dynamic-form-model.component";
17
+ export { NgxDynamicFormModule } from "./ngx-dynamic-form/ngx-dynamic-form.module";
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3JrL25neC1keW5hbWljLWZvcm0vc3JjLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0gscUJBQXFCLEVBR3JCLG9CQUFvQixFQWNwQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBd0JsQixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUNWLFNBQVMsRUFDVCxRQUFRLEVBQ1IsWUFBWSxFQUVaLGdCQUFnQixFQUVoQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFDZixpQkFBaUIsRUFDcEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUNwRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDekUsT0FBTyxFQUFDLGNBQWMsRUFBNkQsTUFBTSw4Q0FBOEMsQ0FBQztBQUV4SSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUUzRyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUN4RyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUN2RyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUMxRyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwrRUFBK0UsQ0FBQztBQUN4SCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw2RUFBNkUsQ0FBQztBQUNySCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwrRUFBK0UsQ0FBQztBQUN4SCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxpRkFBaUYsQ0FBQztBQUMzSCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxpRkFBaUYsQ0FBQztBQUMzSCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwrRUFBK0UsQ0FBQztBQUV4SCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RHluYW1pY0Zvcm1Db250cm9sfSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuZXhwb3J0IHtcclxuICAgIEZPUk1fQ09OVFJPTF9QUk9WSURFUixcclxuICAgIElGb3JtQ29udHJvbENvbXBvbmVudCxcclxuICAgIElGb3JtR3JvdXBDb21wb25lbnQsXHJcbiAgICBGb3JtQ29udHJvbENvbXBvbmVudCxcclxuICAgIElGb3JtQ29udHJvbFByb3ZpZGVyQWNjZXB0b3IsXHJcbiAgICBJRm9ybUNvbnRyb2xQcm92aWRlckxvYWRlcixcclxuICAgIElGb3JtQ29udHJvbE9wdGlvbnMsXHJcbiAgICBJRm9ybUNvbnRyb2xTZXJpYWxpemVyLFxyXG4gICAgSUZvcm1JbnB1dE1hc2ssXHJcbiAgICBJRm9ybUlucHV0TWFza0Z1bmN0aW9uLFxyXG4gICAgSUZvcm1JbnB1dFVuTWFza0Z1bmN0aW9uLFxyXG4gICAgSUZvcm1Db250cm9sUHJvdmlkZXIsXHJcbiAgICBJRm9ybVNlcmlhbGl6ZXIsXHJcbiAgICBJRm9ybVNlcmlhbGl6ZXJzLFxyXG4gICAgRHluYW1pY0Zvcm1TdGF0ZSxcclxuICAgIER5bmFtaWNGb3JtVXBkYXRlT24sXHJcbiAgICBJRHluYW1pY0Zvcm1Db250cm9sLFxyXG4gICAgRHluYW1pY0Zvcm1Hcm91cCxcclxuICAgIER5bmFtaWNGb3JtQ29udHJvbCxcclxuICAgIElGb3JtQ29udHJvbCxcclxuICAgIElGb3JtQ29udHJvbERhdGEsXHJcbiAgICBJRm9ybUlucHV0RGF0YSxcclxuICAgIElGb3JtU2VsZWN0RGF0YSxcclxuICAgIElGb3JtU3RhdGljRGF0YSxcclxuICAgIElGb3JtRmlsZURhdGEsXHJcbiAgICBJRm9ybU1vZGVsRGF0YSxcclxuICAgIElGb3JtRmllbGRTZXQsXHJcbiAgICBJRm9ybUNvbnRyb2xPcHRpb24sXHJcbiAgICBJRHluYW1pY0Zvcm1UZW1wbGF0ZXMsXHJcbiAgICBJRHluYW1pY0Zvcm1Db25maWcsXHJcbiAgICBJRHluYW1pY1NpbmdsZUZvcm1Db25maWcsXHJcbiAgICBJRHluYW1pY011bHRpRm9ybUNvbmZpZyxcclxuICAgIElEeW5hbWljRm9ybXNDb25maWdzLFxyXG4gICAgSUR5bmFtaWNGb3JtQmFzZSxcclxuICAgIEFzeW5jU3VibWl0TWV0aG9kLFxyXG4gICAgSUR5bmFtaWNGb3JtSW5mbyxcclxuICAgIElEeW5hbWljRm9ybSxcclxuICAgIElEeW5hbWljRm9ybUZpZWxkU2V0cyxcclxuICAgIEZvcm1Db250cm9sVGVzdGVyLFxyXG4gICAgRm9ybUNvbnRyb2xUZXN0ZXJGYWN0b3J5LFxyXG4gICAgRm9ybUNvbnRyb2xWYWxpZGF0b3IsXHJcbiAgICBGb3JtQ29udHJvbFZhbGlkYXRvckZhY3RvcnksXHJcbiAgICBkZWZhdWx0U2VyaWFsaXplcixcclxuICAgIEZvcm1TZXJpYWxpemFibGUsXHJcbiAgICBGb3JtSW5wdXQsXHJcbiAgICBGb3JtU2VsZWN0LFxyXG4gICAgRm9ybVN0YXRpYyxcclxuICAgIEZvcm1Nb2RlbCxcclxuICAgIEZvcm1GaWxlLFxyXG4gICAgRm9ybUZpZWxkU2V0LFxyXG4gICAgRm9ybUdyb3VwUHJvdmlkZXIsXHJcbiAgICBwcm92aWRlRm9ybUdyb3VwLFxyXG4gICAgRm9ybUNvbnRyb2xQcm92aWRlcixcclxuICAgIHByb3ZpZGVGb3JtQ29udHJvbCxcclxuICAgIGRlZmluZUZvcm1Db250cm9sLFxyXG4gICAgZ2V0Rm9ybUZpZWxkU2V0cyxcclxuICAgIGdldEZvcm1Db250cm9sLFxyXG4gICAgZ2V0Rm9ybVNlcmlhbGl6ZXIsXHJcbiAgICBjcmVhdGVGb3JtSW5wdXQsXHJcbiAgICBjcmVhdGVGb3JtU2VsZWN0LFxyXG4gICAgY3JlYXRlRm9ybVN0YXRpYyxcclxuICAgIGNyZWF0ZUZvcm1Nb2RlbCxcclxuICAgIGNyZWF0ZUZvcm1Db250cm9sXHJcbn0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9jb21tb24tdHlwZXNcIjtcclxuXHJcbmV4cG9ydCB7RHluYW1pY0Zvcm1TZXJ2aWNlfSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS5zZXJ2aWNlXCI7XHJcbmV4cG9ydCB7Rm9ybVV0aWxpdGllc30gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9zZXJ2aWNlcy9mb3JtLXV0aWxpdGllc1wiO1xyXG5leHBvcnQge09wZW5BcGlTZXJ2aWNlLCBJT3BlbkFwaVNjaGVtYVByb3BlcnR5LCBJT3BlbkFwaVNjaGVtYSwgSUR5bmFtaWNGb3JtSW5wdXRzfSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL3NlcnZpY2VzL29wZW4tYXBpLnNlcnZpY2VcIjtcclxuXHJcbmV4cG9ydCB7QXN5bmNTdWJtaXREaXJlY3RpdmV9IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0vZGlyZWN0aXZlcy9hc3luYy1zdWJtaXQuZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7RHluYW1pY0Zvcm1Db250cm9sRGlyZWN0aXZlfSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL2RpcmVjdGl2ZXMvZHluYW1pYy1mb3JtLWNvbnRyb2wuZGlyZWN0aXZlXCI7XHJcbmV4cG9ydCB7RHluYW1pY0Zvcm1UZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9kaXJlY3RpdmVzL2R5bmFtaWMtZm9ybS10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcclxuXHJcbmV4cG9ydCB7RHluYW1pY0Zvcm1CYXNlQ29tcG9uZW50fSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvYmFzZS9keW5hbWljLWZvcm0tYmFzZS5jb21wb25lbnRcIjtcclxuZXhwb3J0IHtEeW5hbWljRm9ybUNvbXBvbmVudH0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50XCI7XHJcbmV4cG9ydCB7RHluYW1pY0Zvcm1zQ29tcG9uZW50fSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3Jtcy9keW5hbWljLWZvcm1zLmNvbXBvbmVudFwiO1xyXG5leHBvcnQge0R5bmFtaWNGb3JtR3JvdXBDb21wb25lbnR9IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tZ3JvdXAvZHluYW1pYy1mb3JtLWdyb3VwLmNvbXBvbmVudFwiO1xyXG5leHBvcnQge0R5bmFtaWNGb3JtRmlsZUNvbXBvbmVudH0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1maWxlL2R5bmFtaWMtZm9ybS1maWxlLmNvbXBvbmVudFwiO1xyXG5leHBvcnQge0R5bmFtaWNGb3JtSW5wdXRDb21wb25lbnR9IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0taW5wdXQvZHluYW1pYy1mb3JtLWlucHV0LmNvbXBvbmVudFwiO1xyXG5leHBvcnQge0R5bmFtaWNGb3JtU2VsZWN0Q29tcG9uZW50fSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXNlbGVjdC9keW5hbWljLWZvcm0tc2VsZWN0LmNvbXBvbmVudFwiO1xyXG5leHBvcnQge0R5bmFtaWNGb3JtU3RhdGljQ29tcG9uZW50fSBmcm9tIFwiLi9uZ3gtZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXN0YXRpYy9keW5hbWljLWZvcm0tc3RhdGljLmNvbXBvbmVudFwiO1xyXG5leHBvcnQge0R5bmFtaWNGb3JtTW9kZWxDb21wb25lbnR9IGZyb20gXCIuL25neC1keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tbW9kZWwvZHluYW1pYy1mb3JtLW1vZGVsLmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IHtOZ3hEeW5hbWljRm9ybU1vZHVsZX0gZnJvbSBcIi4vbmd4LWR5bmFtaWMtZm9ybS9uZ3gtZHluYW1pYy1mb3JtLm1vZHVsZVwiO1xyXG4iXX0=
@@ -1,8 +1,8 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public_api';
5
- export { FORM_GROUP_TYPE as ɵa } from './ngx-dynamic-form/common-types';
6
- export { DynamicFormGroupDirective as ɵe } from './ngx-dynamic-form/directives/dynamic-form-group.directive';
7
- export { components as ɵb, directives as ɵc, pipes as ɵd } from './ngx-dynamic-form/ngx-dynamic-form.module';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlbXktbmd4LWR5bmFtaWMtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9zdGVtbGVyL1dvcmsvbmd4LWR5bmFtaWMtZm9ybS9zcmMvIiwic291cmNlcyI6WyJzdGVteS1uZ3gtZHluYW1pYy1mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFFN0IsT0FBTyxFQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMseUJBQXlCLElBQUksRUFBRSxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDM0csT0FBTyxFQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUMsVUFBVSxJQUFJLEVBQUUsRUFBQyxLQUFLLElBQUksRUFBRSxFQUFDLE1BQU0sNENBQTRDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG5cbmV4cG9ydCB7Rk9STV9HUk9VUF9UWVBFIGFzIMm1YX0gZnJvbSAnLi9uZ3gtZHluYW1pYy1mb3JtL2NvbW1vbi10eXBlcyc7XG5leHBvcnQge0R5bmFtaWNGb3JtR3JvdXBEaXJlY3RpdmUgYXMgybVlfSBmcm9tICcuL25neC1keW5hbWljLWZvcm0vZGlyZWN0aXZlcy9keW5hbWljLWZvcm0tZ3JvdXAuZGlyZWN0aXZlJztcbmV4cG9ydCB7Y29tcG9uZW50cyBhcyDJtWIsZGlyZWN0aXZlcyBhcyDJtWMscGlwZXMgYXMgybVkfSBmcm9tICcuL25neC1keW5hbWljLWZvcm0vbmd4LWR5bmFtaWMtZm9ybS5tb2R1bGUnOyJdfQ==
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ export { FORM_GROUP_TYPE as ɵa } from './ngx-dynamic-form/common-types';
6
+ export { DynamicFormGroupDirective as ɵe } from './ngx-dynamic-form/directives/dynamic-form-group.directive';
7
+ export { components as ɵb, directives as ɵc, pipes as ɵd } from './ngx-dynamic-form/ngx-dynamic-form.module';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlbXktbmd4LWR5bmFtaWMtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiJEOi9Xb3JrL25neC1keW5hbWljLWZvcm0vc3JjLyIsInNvdXJjZXMiOlsic3RlbXktbmd4LWR5bmFtaWMtZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxlQUFlLElBQUksRUFBRSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHlCQUF5QixJQUFJLEVBQUUsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQzNHLE9BQU8sRUFBQyxVQUFVLElBQUksRUFBRSxFQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUMsS0FBSyxJQUFJLEVBQUUsRUFBQyxNQUFNLDRDQUE0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuXG5leHBvcnQge0ZPUk1fR1JPVVBfVFlQRSBhcyDJtWF9IGZyb20gJy4vbmd4LWR5bmFtaWMtZm9ybS9jb21tb24tdHlwZXMnO1xuZXhwb3J0IHtEeW5hbWljRm9ybUdyb3VwRGlyZWN0aXZlIGFzIMm1ZX0gZnJvbSAnLi9uZ3gtZHluYW1pYy1mb3JtL2RpcmVjdGl2ZXMvZHluYW1pYy1mb3JtLWdyb3VwLmRpcmVjdGl2ZSc7XG5leHBvcnQge2NvbXBvbmVudHMgYXMgybViLGRpcmVjdGl2ZXMgYXMgybVjLHBpcGVzIGFzIMm1ZH0gZnJvbSAnLi9uZ3gtZHluYW1pYy1mb3JtL25neC1keW5hbWljLWZvcm0ubW9kdWxlJzsiXX0=