@ngx-formly/core 6.3.12 → 7.0.0-alpha.1
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.
- package/README.md +1 -0
- package/esm2022/json-schema/formly-json-schema.service.mjs +628 -0
- package/esm2022/lib/components/formly.field.mjs +292 -0
- package/esm2022/lib/components/formly.form.mjs +164 -0
- package/{esm2020 → esm2022}/lib/components/formly.template.mjs +8 -8
- package/esm2022/lib/core.config.mjs +36 -0
- package/esm2022/lib/core.mjs +20 -0
- package/esm2022/lib/core.module.mjs +74 -0
- package/esm2022/lib/extensions/core/core.mjs +148 -0
- package/esm2022/lib/extensions/field-expression/field-expression.mjs +250 -0
- package/esm2022/lib/extensions/field-expression/utils.mjs +17 -0
- package/esm2022/lib/extensions/field-form/field-form.mjs +141 -0
- package/esm2022/lib/extensions/field-form/utils.mjs +100 -0
- package/esm2022/lib/extensions/field-validation/field-validation.mjs +135 -0
- package/esm2022/lib/extensions/index.mjs +2 -0
- package/esm2022/lib/models/fieldconfig.cache.mjs +2 -0
- package/esm2022/lib/models/fieldconfig.mjs +2 -0
- package/esm2022/lib/services/formly.builder.mjs +100 -0
- package/esm2022/lib/services/formly.config.mjs +229 -0
- package/esm2022/lib/templates/field-array.type.mjs +84 -0
- package/esm2022/lib/templates/field-template.type.mjs +34 -0
- package/esm2022/lib/templates/field.type.mjs +57 -0
- package/{esm2020 → esm2022}/lib/templates/field.wrapper.mjs +4 -4
- package/esm2022/lib/templates/formly.attributes.mjs +187 -0
- package/{esm2020 → esm2022}/lib/templates/formly.group.mjs +8 -8
- package/esm2022/lib/templates/formly.validation-message.mjs +69 -0
- package/esm2022/lib/utils.mjs +312 -0
- package/esm2022/preset/preset-substitution.extension.mjs +30 -0
- package/esm2022/preset/preset.config.mjs +11 -0
- package/esm2022/preset/preset.module.mjs +18 -0
- package/esm2022/select/select-options.pipe.mjs +100 -0
- package/{esm2020 → esm2022}/select/select.module.mjs +5 -5
- package/esm2022/testing/component-factory.mjs +86 -0
- package/{fesm2020 → fesm2022}/ngx-formly-core-json-schema.mjs +16 -16
- package/fesm2022/ngx-formly-core-json-schema.mjs.map +1 -0
- package/fesm2022/ngx-formly-core-preset.mjs +62 -0
- package/fesm2022/ngx-formly-core-preset.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/ngx-formly-core-select.mjs +7 -7
- package/{fesm2020 → fesm2022}/ngx-formly-core-select.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/ngx-formly-core-testing.mjs +5 -4
- package/fesm2022/ngx-formly-core-testing.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/ngx-formly-core.mjs +1747 -1702
- package/fesm2022/ngx-formly-core.mjs.map +1 -0
- package/lib/components/formly.field.d.ts +5 -1
- package/lib/components/formly.form.d.ts +8 -4
- package/lib/components/formly.template.d.ts +1 -1
- package/lib/core.config.d.ts +10 -0
- package/lib/core.d.ts +4 -3
- package/lib/core.module.d.ts +2 -5
- package/lib/extensions/field-expression/utils.d.ts +1 -1
- package/lib/extensions/index.d.ts +1 -0
- package/lib/models/config.d.ts +1 -1
- package/lib/models/fieldconfig.cache.d.ts +3 -3
- package/lib/models/fieldconfig.d.ts +8 -7
- package/lib/services/formly.builder.d.ts +5 -5
- package/lib/services/formly.config.d.ts +3 -9
- package/lib/templates/field-array.type.d.ts +3 -3
- package/lib/templates/field-template.type.d.ts +1 -1
- package/lib/templates/field.type.d.ts +5 -5
- package/lib/templates/field.wrapper.d.ts +1 -1
- package/lib/templates/formly.attributes.d.ts +1 -1
- package/lib/templates/formly.group.d.ts +1 -1
- package/lib/templates/formly.validation-message.d.ts +1 -1
- package/lib/utils.d.ts +5 -5
- package/package.json +23 -37
- package/preset/preset.config.d.ts +2 -0
- package/select/select-options.pipe.d.ts +1 -1
- package/testing/component-factory.d.ts +2 -2
- package/esm2020/json-schema/formly-json-schema.service.mjs +0 -628
- package/esm2020/lib/components/formly.field.mjs +0 -284
- package/esm2020/lib/components/formly.form.mjs +0 -147
- package/esm2020/lib/core.mjs +0 -19
- package/esm2020/lib/core.module.mjs +0 -91
- package/esm2020/lib/extensions/core/core.mjs +0 -148
- package/esm2020/lib/extensions/field-expression/field-expression.mjs +0 -250
- package/esm2020/lib/extensions/field-expression/utils.mjs +0 -17
- package/esm2020/lib/extensions/field-form/field-form.mjs +0 -141
- package/esm2020/lib/extensions/field-form/utils.mjs +0 -100
- package/esm2020/lib/extensions/field-validation/field-validation.mjs +0 -135
- package/esm2020/lib/models/fieldconfig.cache.mjs +0 -2
- package/esm2020/lib/models/fieldconfig.mjs +0 -2
- package/esm2020/lib/services/formly.builder.mjs +0 -93
- package/esm2020/lib/services/formly.config.mjs +0 -229
- package/esm2020/lib/templates/field-array.type.mjs +0 -84
- package/esm2020/lib/templates/field-template.type.mjs +0 -34
- package/esm2020/lib/templates/field.type.mjs +0 -57
- package/esm2020/lib/templates/formly.attributes.mjs +0 -187
- package/esm2020/lib/templates/formly.validation-message.mjs +0 -69
- package/esm2020/lib/utils.mjs +0 -312
- package/esm2020/preset/preset-substitution.extension.mjs +0 -30
- package/esm2020/preset/preset.module.mjs +0 -32
- package/esm2020/select/select-options.pipe.mjs +0 -100
- package/esm2020/testing/component-factory.mjs +0 -85
- package/fesm2015/ngx-formly-core-json-schema.mjs +0 -615
- package/fesm2015/ngx-formly-core-json-schema.mjs.map +0 -1
- package/fesm2015/ngx-formly-core-preset.mjs +0 -69
- package/fesm2015/ngx-formly-core-preset.mjs.map +0 -1
- package/fesm2015/ngx-formly-core-select.mjs +0 -120
- package/fesm2015/ngx-formly-core-select.mjs.map +0 -1
- package/fesm2015/ngx-formly-core-testing.mjs +0 -87
- package/fesm2015/ngx-formly-core-testing.mjs.map +0 -1
- package/fesm2015/ngx-formly-core.mjs +0 -2417
- package/fesm2015/ngx-formly-core.mjs.map +0 -1
- package/fesm2020/ngx-formly-core-json-schema.mjs.map +0 -1
- package/fesm2020/ngx-formly-core-preset.mjs +0 -67
- package/fesm2020/ngx-formly-core-preset.mjs.map +0 -1
- package/fesm2020/ngx-formly-core-testing.mjs.map +0 -1
- package/fesm2020/ngx-formly-core.mjs.map +0 -1
- package/json-schema/package.json +0 -10
- package/preset/package.json +0 -10
- package/select/package.json +0 -10
- package/testing/package.json +0 -10
- /package/{esm2020 → esm2022}/json-schema/ngx-formly-core-json-schema.mjs +0 -0
- /package/{esm2020 → esm2022}/json-schema/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/ngx-formly-core.mjs +0 -0
- /package/{esm2020 → esm2022}/preset/ngx-formly-core-preset.mjs +0 -0
- /package/{esm2020 → esm2022}/preset/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/select/ngx-formly-core-select.mjs +0 -0
- /package/{esm2020 → esm2022}/select/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/ngx-formly-core-testing.mjs +0 -0
- /package/{esm2020 → esm2022}/testing/public_api.mjs +0 -0
- /package/{ngx-formly-core.d.ts → index.d.ts} +0 -0
- /package/json-schema/{ngx-formly-core-json-schema.d.ts → index.d.ts} +0 -0
- /package/preset/{ngx-formly-core-preset.d.ts → index.d.ts} +0 -0
- /package/select/{ngx-formly-core-select.d.ts → index.d.ts} +0 -0
- /package/testing/{ngx-formly-core-testing.d.ts → index.d.ts} +0 -0
|
@@ -1,229 +0,0 @@
|
|
|
1
|
-
import { Injectable, InjectionToken, Type } from '@angular/core';
|
|
2
|
-
import { reverseDeepMerge, defineHiddenProp } from './../utils';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* An InjectionToken for registering additional formly config options (types, wrappers ...).
|
|
6
|
-
*/
|
|
7
|
-
export const FORMLY_CONFIG = new InjectionToken('FORMLY_CONFIG');
|
|
8
|
-
/**
|
|
9
|
-
* Maintains list of formly config options. This can be used to register new field type.
|
|
10
|
-
*/
|
|
11
|
-
export class FormlyConfig {
|
|
12
|
-
constructor() {
|
|
13
|
-
this.types = {};
|
|
14
|
-
this.validators = {};
|
|
15
|
-
this.wrappers = {};
|
|
16
|
-
this.messages = {};
|
|
17
|
-
this.extras = {
|
|
18
|
-
checkExpressionOn: 'modelChange',
|
|
19
|
-
lazyRender: true,
|
|
20
|
-
resetFieldOnHide: true,
|
|
21
|
-
renderFormlyFieldElement: true,
|
|
22
|
-
showError(field) {
|
|
23
|
-
return (field.formControl?.invalid &&
|
|
24
|
-
(field.formControl?.touched || field.options.parentForm?.submitted || !!field.field.validation?.show));
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
this.extensions = {};
|
|
28
|
-
this.presets = {};
|
|
29
|
-
this.extensionsByPriority = {};
|
|
30
|
-
}
|
|
31
|
-
addConfig(config) {
|
|
32
|
-
if (config.types) {
|
|
33
|
-
config.types.forEach((type) => this.setType(type));
|
|
34
|
-
}
|
|
35
|
-
if (config.validators) {
|
|
36
|
-
config.validators.forEach((validator) => this.setValidator(validator));
|
|
37
|
-
}
|
|
38
|
-
if (config.wrappers) {
|
|
39
|
-
config.wrappers.forEach((wrapper) => this.setWrapper(wrapper));
|
|
40
|
-
}
|
|
41
|
-
if (config.validationMessages) {
|
|
42
|
-
config.validationMessages.forEach((validation) => this.addValidatorMessage(validation.name, validation.message));
|
|
43
|
-
}
|
|
44
|
-
if (config.extensions) {
|
|
45
|
-
this.setSortedExtensions(config.extensions);
|
|
46
|
-
}
|
|
47
|
-
if (config.extras) {
|
|
48
|
-
this.extras = { ...this.extras, ...config.extras };
|
|
49
|
-
}
|
|
50
|
-
if (config.presets) {
|
|
51
|
-
this.presets = {
|
|
52
|
-
...this.presets,
|
|
53
|
-
...config.presets.reduce((acc, curr) => ({ ...acc, [curr.name]: curr.config }), {}),
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Allows you to specify a custom type which you can use in your field configuration.
|
|
59
|
-
* You can pass an object of options, or an array of objects of options.
|
|
60
|
-
*/
|
|
61
|
-
setType(options) {
|
|
62
|
-
if (Array.isArray(options)) {
|
|
63
|
-
options.forEach((option) => this.setType(option));
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
if (!this.types[options.name]) {
|
|
67
|
-
this.types[options.name] = { name: options.name };
|
|
68
|
-
}
|
|
69
|
-
['component', 'extends', 'defaultOptions', 'wrappers'].forEach((prop) => {
|
|
70
|
-
if (options.hasOwnProperty(prop)) {
|
|
71
|
-
this.types[options.name][prop] = options[prop];
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
getType(name, throwIfNotFound = false) {
|
|
77
|
-
if (name instanceof Type) {
|
|
78
|
-
return { component: name, name: name.prototype.constructor.name };
|
|
79
|
-
}
|
|
80
|
-
if (!this.types[name]) {
|
|
81
|
-
if (throwIfNotFound) {
|
|
82
|
-
throw new Error(`[Formly Error] The type "${name}" could not be found. Please make sure that is registered through the FormlyModule declaration.`);
|
|
83
|
-
}
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
this.mergeExtendedType(name);
|
|
87
|
-
return this.types[name];
|
|
88
|
-
}
|
|
89
|
-
/** @ignore */
|
|
90
|
-
getMergedField(field = {}) {
|
|
91
|
-
const type = this.getType(field.type);
|
|
92
|
-
if (!type) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
if (type.defaultOptions) {
|
|
96
|
-
reverseDeepMerge(field, type.defaultOptions);
|
|
97
|
-
}
|
|
98
|
-
const extendDefaults = type.extends && this.getType(type.extends).defaultOptions;
|
|
99
|
-
if (extendDefaults) {
|
|
100
|
-
reverseDeepMerge(field, extendDefaults);
|
|
101
|
-
}
|
|
102
|
-
if (field?.optionsTypes) {
|
|
103
|
-
field.optionsTypes.forEach((option) => {
|
|
104
|
-
const defaultOptions = this.getType(option).defaultOptions;
|
|
105
|
-
if (defaultOptions) {
|
|
106
|
-
reverseDeepMerge(field, defaultOptions);
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
const componentRef = this.resolveFieldTypeRef(field);
|
|
111
|
-
if (componentRef?.instance?.defaultOptions) {
|
|
112
|
-
reverseDeepMerge(field, componentRef.instance.defaultOptions);
|
|
113
|
-
}
|
|
114
|
-
if (!field.wrappers && type.wrappers) {
|
|
115
|
-
field.wrappers = [...type.wrappers];
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
/** @ignore @internal */
|
|
119
|
-
resolveFieldTypeRef(field = {}) {
|
|
120
|
-
const type = this.getType(field.type);
|
|
121
|
-
if (!type) {
|
|
122
|
-
return null;
|
|
123
|
-
}
|
|
124
|
-
if (!type.component || type._componentRef) {
|
|
125
|
-
return type._componentRef;
|
|
126
|
-
}
|
|
127
|
-
const { _viewContainerRef, _injector } = field.options;
|
|
128
|
-
if (!_viewContainerRef || !_injector) {
|
|
129
|
-
return null;
|
|
130
|
-
}
|
|
131
|
-
const componentRef = _viewContainerRef.createComponent(type.component, { injector: _injector });
|
|
132
|
-
defineHiddenProp(type, '_componentRef', componentRef);
|
|
133
|
-
try {
|
|
134
|
-
componentRef.destroy();
|
|
135
|
-
}
|
|
136
|
-
catch (e) {
|
|
137
|
-
console.error(`An error occurred while destroying the Formly component type "${field.type}"`, e);
|
|
138
|
-
}
|
|
139
|
-
return type._componentRef;
|
|
140
|
-
}
|
|
141
|
-
setWrapper(options) {
|
|
142
|
-
this.wrappers[options.name] = options;
|
|
143
|
-
if (options.types) {
|
|
144
|
-
options.types.forEach((type) => {
|
|
145
|
-
this.setTypeWrapper(type, options.name);
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
getWrapper(name) {
|
|
150
|
-
if (name instanceof Type) {
|
|
151
|
-
return { component: name, name: name.prototype.constructor.name };
|
|
152
|
-
}
|
|
153
|
-
if (!this.wrappers[name]) {
|
|
154
|
-
throw new Error(`[Formly Error] The wrapper "${name}" could not be found. Please make sure that is registered through the FormlyModule declaration.`);
|
|
155
|
-
}
|
|
156
|
-
return this.wrappers[name];
|
|
157
|
-
}
|
|
158
|
-
/** @ignore */
|
|
159
|
-
setTypeWrapper(type, name) {
|
|
160
|
-
if (!this.types[type]) {
|
|
161
|
-
this.types[type] = {};
|
|
162
|
-
}
|
|
163
|
-
if (!this.types[type].wrappers) {
|
|
164
|
-
this.types[type].wrappers = [];
|
|
165
|
-
}
|
|
166
|
-
if (this.types[type].wrappers.indexOf(name) === -1) {
|
|
167
|
-
this.types[type].wrappers.push(name);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
setValidator(options) {
|
|
171
|
-
this.validators[options.name] = options;
|
|
172
|
-
}
|
|
173
|
-
getValidator(name) {
|
|
174
|
-
if (!this.validators[name]) {
|
|
175
|
-
throw new Error(`[Formly Error] The validator "${name}" could not be found. Please make sure that is registered through the FormlyModule declaration.`);
|
|
176
|
-
}
|
|
177
|
-
return this.validators[name];
|
|
178
|
-
}
|
|
179
|
-
addValidatorMessage(name, message) {
|
|
180
|
-
this.messages[name] = message;
|
|
181
|
-
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
182
|
-
const deprecated = { minlength: 'minLength', maxlength: 'maxLength' };
|
|
183
|
-
if (deprecated[name]) {
|
|
184
|
-
console.warn(`Formly deprecation: passing validation messages key '${name}' is deprecated since v6.0, use '${deprecated[name]}' instead.`);
|
|
185
|
-
this.messages[deprecated[name]] = message;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
getValidatorMessage(name) {
|
|
190
|
-
return this.messages[name];
|
|
191
|
-
}
|
|
192
|
-
setSortedExtensions(extensionOptions) {
|
|
193
|
-
// insert new extensions, grouped by priority
|
|
194
|
-
extensionOptions.forEach((extensionOption) => {
|
|
195
|
-
const priority = extensionOption.priority ?? 1;
|
|
196
|
-
this.extensionsByPriority[priority] = {
|
|
197
|
-
...this.extensionsByPriority[priority],
|
|
198
|
-
[extensionOption.name]: extensionOption.extension,
|
|
199
|
-
};
|
|
200
|
-
});
|
|
201
|
-
// flatten extensions object with sorted keys
|
|
202
|
-
this.extensions = Object.keys(this.extensionsByPriority)
|
|
203
|
-
.map(Number)
|
|
204
|
-
.sort((a, b) => a - b)
|
|
205
|
-
.reduce((acc, prio) => ({
|
|
206
|
-
...acc,
|
|
207
|
-
...this.extensionsByPriority[prio],
|
|
208
|
-
}), {});
|
|
209
|
-
}
|
|
210
|
-
mergeExtendedType(name) {
|
|
211
|
-
if (!this.types[name].extends) {
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
const extendedType = this.getType(this.types[name].extends);
|
|
215
|
-
if (!this.types[name].component) {
|
|
216
|
-
this.types[name].component = extendedType.component;
|
|
217
|
-
}
|
|
218
|
-
if (!this.types[name].wrappers) {
|
|
219
|
-
this.types[name].wrappers = extendedType.wrappers;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
FormlyConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlyConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
224
|
-
FormlyConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlyConfig, providedIn: 'root' });
|
|
225
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlyConfig, decorators: [{
|
|
226
|
-
type: Injectable,
|
|
227
|
-
args: [{ providedIn: 'root' }]
|
|
228
|
-
}] });
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb3JlL3NyYy9saWIvc2VydmljZXMvZm9ybWx5LmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBZ0IsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFlaEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQWlCLGVBQWUsQ0FBQyxDQUFDO0FBR2pGOztHQUVHO0FBRUgsTUFBTSxPQUFPLFlBQVk7SUFEekI7UUFFRSxVQUFLLEdBQW1DLEVBQUUsQ0FBQztRQUMzQyxlQUFVLEdBQXdDLEVBQUUsQ0FBQztRQUNyRCxhQUFRLEdBQXNDLEVBQUUsQ0FBQztRQUNqRCxhQUFRLEdBQTJELEVBQUUsQ0FBQztRQUV0RSxXQUFNLEdBQXdDO1lBQzVDLGlCQUFpQixFQUFFLGFBQWE7WUFDaEMsVUFBVSxFQUFFLElBQUk7WUFDaEIsZ0JBQWdCLEVBQUUsSUFBSTtZQUN0Qix3QkFBd0IsRUFBRSxJQUFJO1lBQzlCLFNBQVMsQ0FBQyxLQUFnQjtnQkFDeEIsT0FBTyxDQUNMLEtBQUssQ0FBQyxXQUFXLEVBQUUsT0FBTztvQkFDMUIsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUN0RyxDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUM7UUFDRixlQUFVLEdBQXdDLEVBQUUsQ0FBQztRQUNyRCxZQUFPLEdBQTRFLEVBQUUsQ0FBQztRQUU5RSx5QkFBb0IsR0FBd0QsRUFBRSxD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QyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFO1lBQzdCLE9BQU87U0FDUjtRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUU7WUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQztTQUNyRDtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtZQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDO1NBQ25EO0lBQ0gsQ0FBQzs7MEdBOVBVLFlBQVk7OEdBQVosWUFBWSxjQURDLE1BQU07NEZBQ25CLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIENvbXBvbmVudFJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi8uLi90ZW1wbGF0ZXMvZmllbGQudHlwZSc7XG5pbXBvcnQgeyByZXZlcnNlRGVlcE1lcmdlLCBkZWZpbmVIaWRkZW5Qcm9wIH0gZnJvbSAnLi8uLi91dGlscyc7XG5pbXBvcnQge1xuICBGb3JtbHlGaWVsZENvbmZpZyxcbiAgRm9ybWx5RmllbGRDb25maWdDYWNoZSxcbiAgQ29uZmlnT3B0aW9uLFxuICBUeXBlT3B0aW9uLFxuICBWYWxpZGF0b3JPcHRpb24sXG4gIFdyYXBwZXJPcHRpb24sXG4gIEZvcm1seUV4dGVuc2lvbixcbiAgVmFsaWRhdGlvbk1lc3NhZ2VPcHRpb24sXG4gIEV4dGVuc2lvbk9wdGlvbixcbiAgRm9ybWx5RmllbGRDb25maWdQcmVzZXRQcm92aWRlcixcbn0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IEZpZWxkV3JhcHBlciB9IGZyb20gJy4uL3RlbXBsYXRlcy9maWVsZC53cmFwcGVyJztcblxuLyoqXG4gKiBBbiBJbmplY3Rpb25Ub2tlbiBmb3IgcmVnaXN0ZXJpbmcgYWRkaXRpb25hbCBmb3JtbHkgY29uZmlnIG9wdGlvbnMgKHR5cGVzLCB3cmFwcGVycyAuLi4pLlxuICovXG5leHBvcnQgY29uc3QgRk9STUxZX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb25maWdPcHRpb25bXT4oJ0ZPUk1MWV9DT05GSUcnKTtcbmRlY2xhcmUgY29uc3QgbmdEZXZNb2RlOiBhbnk7XG5cbi8qKlxuICogTWFpbnRhaW5zIGxpc3Qgb2YgZm9ybWx5IGNvbmZpZyBvcHRpb25zLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHJlZ2lzdGVyIG5ldyBmaWVsZCB0eXBlLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEZvcm1seUNvbmZpZyB7XG4gIHR5cGVzOiB7IFtuYW1lOiBzdHJpbmddOiBUeXBlT3B0aW9uIH0gPSB7fTtcbiAgdmFsaWRhdG9yczogeyBbbmFtZTogc3RyaW5nXTogVmFsaWRhdG9yT3B0aW9uIH0gPSB7fTtcbiAgd3JhcHBlcnM6IHsgW25hbWU6IHN0cmluZ106IFdyYXBwZXJPcHRpb24gfSA9IHt9O1xuICBtZXNzYWdlczogeyBbbmFtZTogc3RyaW5nXTogVmFsaWRhdGlvbk1lc3NhZ2VPcHRpb25bJ21lc3NhZ2UnXSB9ID0ge307XG5cbiAgZXh0cmFzOiBOb25OdWxsYWJsZTxDb25maWdPcHRpb25bJ2V4dHJhcyddPiA9IHtcbiAgICBjaGVja0V4cHJlc3Npb25PbjogJ21vZGVsQ2hhbmdlJyxcbiAgICBsYXp5UmVuZGVyOiB0cnVlLFxuICAgIHJlc2V0RmllbGRPbkhpZGU6IHRydWUsXG4gICAgcmVuZGVyRm9ybWx5RmllbGRFbGVtZW50OiB0cnVlLFxuICAgIHNob3dFcnJvcihmaWVsZDogRmllbGRUeXBlKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBmaWVsZC5mb3JtQ29udHJvbD8uaW52YWxpZCAmJlxuICAgICAgICAoZmllbGQuZm9ybUNvbnRyb2w/LnRvdWNoZWQgfHwgZmllbGQub3B0aW9ucy5wYXJlbnRGb3JtPy5zdWJtaXR0ZWQgfHwgISFmaWVsZC5maWVsZC52YWxpZGF0aW9uPy5zaG93KVxuICAgICAgKTtcbiAgICB9LFxuICB9O1xuICBleHRlbnNpb25zOiB7IFtuYW1lOiBzdHJpbmddOiBGb3JtbHlFeHRlbnNpb24gfSA9IHt9O1xuICBwcmVzZXRzOiB7IFtuYW1lOiBzdHJpbmddOiBGb3JtbHlGaWVsZENvbmZpZyB8IEZvcm1seUZpZWxkQ29uZmlnUHJlc2V0UHJvdmlkZXIgfSA9IHt9O1xuXG4gIHByaXZhdGUgZXh0ZW5zaW9uc0J5UHJpb3JpdHk6IFJlY29yZDxudW1iZXIsIHsgW25hbWU6IHN0cmluZ106IEZvcm1seUV4dGVuc2lvbiB9PiA9IHt9O1xuXG4gIGFkZENvbmZpZyhjb25maWc6IENvbmZpZ09wdGlvbikge1xuICAgIGlmIChjb25maWcudHlwZXMpIHtcbiAgICAgIGNvbmZpZy50eXBlcy5mb3JFYWNoKCh0eXBlKSA9PiB0aGlzLnNldFR5cGUodHlwZSkpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnZhbGlkYXRvcnMpIHtcbiAgICAgIGNvbmZpZy52YWxpZGF0b3JzLmZvckVhY2goKHZhbGlkYXRvcikgPT4gdGhpcy5zZXRWYWxpZGF0b3IodmFsaWRhdG9yKSk7XG4gICAgfVxuICAgIGlmIChjb25maWcud3JhcHBlcnMpIHtcbiAgICAgIGNvbmZpZy53cmFwcGVycy5mb3JFYWNoKCh3cmFwcGVyKSA9PiB0aGlzLnNldFdyYXBwZXIod3JhcHBlcikpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnZhbGlkYXRpb25NZXNzYWdlcykge1xuICAgICAgY29uZmlnLnZhbGlkYXRpb25NZXNzYWdlcy5mb3JFYWNoKCh2YWxpZGF0aW9uKSA9PiB0aGlzLmFkZFZhbGlkYXRvck1lc3NhZ2UodmFsaWRhdGlvbi5uYW1lLCB2YWxpZGF0aW9uLm1lc3NhZ2UpKTtcbiAgICB9XG4gICAgaWYgKGNvbmZpZy5leHRlbnNpb25zKSB7XG4gICAgICB0aGlzLnNldFNvcnRlZEV4dGVuc2lvbnMoY29uZmlnLmV4dGVuc2lvbnMpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmV4dHJhcykge1xuICAgICAgdGhpcy5leHRyYXMgPSB7IC4uLnRoaXMuZXh0cmFzLCAuLi5jb25maWcuZXh0cmFzIH07XG4gICAgfVxuICAgIGlmIChjb25maWcucHJlc2V0cykge1xuICAgICAgdGhpcy5wcmVzZXRzID0ge1xuICAgICAgICAuLi50aGlzLnByZXNldHMsXG4gICAgICAgIC4uLmNvbmZpZy5wcmVzZXRzLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiAoeyAuLi5hY2MsIFtjdXJyLm5hbWVdOiBjdXJyLmNvbmZpZyB9KSwge30pLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIHlvdSB0byBzcGVjaWZ5IGEgY3VzdG9tIHR5cGUgd2hpY2ggeW91IGNhbiB1c2UgaW4geW91ciBmaWVsZCBjb25maWd1cmF0aW9uLlxuICAgKiBZb3UgY2FuIHBhc3MgYW4gb2JqZWN0IG9mIG9wdGlvbnMsIG9yIGFuIGFycmF5IG9mIG9iamVjdHMgb2Ygb3B0aW9ucy5cbiAgICovXG4gIHNldFR5cGUob3B0aW9uczogVHlwZU9wdGlvbiB8IFR5cGVPcHRpb25bXSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMpKSB7XG4gICAgICBvcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4gdGhpcy5zZXRUeXBlKG9wdGlvbikpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXRoaXMudHlwZXNbb3B0aW9ucy5uYW1lXSkge1xuICAgICAgICB0aGlzLnR5cGVzW29wdGlvbnMubmFtZV0gPSA8VHlwZU9wdGlvbj57IG5hbWU6IG9wdGlvbnMubmFtZSB9O1xuICAgICAgfVxuXG4gICAgICAoWydjb21wb25lbnQnLCAnZXh0ZW5kcycsICdkZWZhdWx0T3B0aW9ucycsICd3cmFwcGVycyddIGFzIChrZXlvZiBUeXBlT3B0aW9uKVtdKS5mb3JFYWNoKChwcm9wKSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25zLmhhc093blByb3BlcnR5KHByb3ApKSB7XG4gICAgICAgICAgdGhpcy50eXBlc1tvcHRpb25zLm5hbWVdW3Byb3BdID0gb3B0aW9uc1twcm9wXSBhcyBhbnk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldFR5cGUobmFtZTogRm9ybWx5RmllbGRDb25maWdbJ3R5cGUnXSwgdGhyb3dJZk5vdEZvdW5kID0gZmFsc2UpOiBUeXBlT3B0aW9uIHtcbiAgICBpZiAobmFtZSBpbnN0YW5jZW9mIFR5cGUpIHtcbiAgICAgIHJldHVybiB7IGNvbXBvbmVudDogbmFtZSwgbmFtZTogbmFtZS5wcm90b3R5cGUuY29uc3RydWN0b3IubmFtZSB9O1xuICAgIH1cblxuICAgIGlmICghdGhpcy50eXBlc1tuYW1lXSkge1xuICAgICAgaWYgKHRocm93SWZOb3RGb3VuZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFtGb3JtbHkgRXJyb3JdIFRoZSB0eXBlIFwiJHtuYW1lfVwiIGNvdWxkIG5vdCBiZSBmb3VuZC4gUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IGlzIHJlZ2lzdGVyZWQgdGhyb3VnaCB0aGUgRm9ybWx5TW9kdWxlIGRlY2xhcmF0aW9uLmAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHRoaXMubWVyZ2VFeHRlbmRlZFR5cGUobmFtZSk7XG5cbiAgICByZXR1cm4gdGhpcy50eXBlc1tuYW1lXTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIGdldE1lcmdlZEZpZWxkKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZyA9IHt9KTogYW55IHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5nZXRUeXBlKGZpZWxkLnR5cGUpO1xuICAgIGlmICghdHlwZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlLmRlZmF1bHRPcHRpb25zKSB7XG4gICAgICByZXZlcnNlRGVlcE1lcmdlKGZpZWxkLCB0eXBlLmRlZmF1bHRPcHRpb25zKTtcbiAgICB9XG5cbiAgICBjb25zdCBleHRlbmREZWZhdWx0cyA9IHR5cGUuZXh0ZW5kcyAmJiB0aGlzLmdldFR5cGUodHlwZS5leHRlbmRzKS5kZWZhdWx0T3B0aW9ucztcbiAgICBpZiAoZXh0ZW5kRGVmYXVsdHMpIHtcbiAgICAgIHJldmVyc2VEZWVwTWVyZ2UoZmllbGQsIGV4dGVuZERlZmF1bHRzKTtcbiAgICB9XG5cbiAgICBpZiAoZmllbGQ/Lm9wdGlvbnNUeXBlcykge1xuICAgICAgZmllbGQub3B0aW9uc1R5cGVzLmZvckVhY2goKG9wdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHRoaXMuZ2V0VHlwZShvcHRpb24pLmRlZmF1bHRPcHRpb25zO1xuICAgICAgICBpZiAoZGVmYXVsdE9wdGlvbnMpIHtcbiAgICAgICAgICByZXZlcnNlRGVlcE1lcmdlKGZpZWxkLCBkZWZhdWx0T3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMucmVzb2x2ZUZpZWxkVHlwZVJlZihmaWVsZCk7XG4gICAgaWYgKGNvbXBvbmVudFJlZj8uaW5zdGFuY2U/LmRlZmF1bHRPcHRpb25zKSB7XG4gICAgICByZXZlcnNlRGVlcE1lcmdlKGZpZWxkLCBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGVmYXVsdE9wdGlvbnMpO1xuICAgIH1cblxuICAgIGlmICghZmllbGQud3JhcHBlcnMgJiYgdHlwZS53cmFwcGVycykge1xuICAgICAgZmllbGQud3JhcHBlcnMgPSBbLi4udHlwZS53cmFwcGVyc107XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgQGludGVybmFsICovXG4gIHJlc29sdmVGaWVsZFR5cGVSZWYoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUgPSB7fSk6IENvbXBvbmVudFJlZjxGaWVsZFR5cGU+IHtcbiAgICBjb25zdCB0eXBlOiBUeXBlT3B0aW9uICYgeyBfY29tcG9uZW50UmVmPzogQ29tcG9uZW50UmVmPGFueT4gfSA9IHRoaXMuZ2V0VHlwZShmaWVsZC50eXBlKTtcbiAgICBpZiAoIXR5cGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghdHlwZS5jb21wb25lbnQgfHwgdHlwZS5fY29tcG9uZW50UmVmKSB7XG4gICAgICByZXR1cm4gdHlwZS5fY29tcG9uZW50UmVmO1xuICAgIH1cblxuICAgIGNvbnN0IHsgX3ZpZXdDb250YWluZXJSZWYsIF9pbmplY3RvciB9ID0gZmllbGQub3B0aW9ucztcbiAgICBpZiAoIV92aWV3Q29udGFpbmVyUmVmIHx8ICFfaW5qZWN0b3IpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IF92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudDxGaWVsZFR5cGU+KHR5cGUuY29tcG9uZW50LCB7IGluamVjdG9yOiBfaW5qZWN0b3IgfSk7XG4gICAgZGVmaW5lSGlkZGVuUHJvcCh0eXBlLCAnX2NvbXBvbmVudFJlZicsIGNvbXBvbmVudFJlZik7XG4gICAgdHJ5IHtcbiAgICAgIGNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5lcnJvcihgQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgZGVzdHJveWluZyB0aGUgRm9ybWx5IGNvbXBvbmVudCB0eXBlIFwiJHtmaWVsZC50eXBlfVwiYCwgZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGUuX2NvbXBvbmVudFJlZjtcbiAgfVxuXG4gIHNldFdyYXBwZXIob3B0aW9uczogV3JhcHBlck9wdGlvbikge1xuICAgIHRoaXMud3JhcHBlcnNbb3B0aW9ucy5uYW1lXSA9IG9wdGlvbnM7XG4gICAgaWYgKG9wdGlvbnMudHlwZXMpIHtcbiAgICAgIG9wdGlvbnMudHlwZXMuZm9yRWFjaCgodHlwZSkgPT4ge1xuICAgICAgICB0aGlzLnNldFR5cGVXcmFwcGVyKHR5cGUsIG9wdGlvbnMubmFtZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBnZXRXcmFwcGVyKG5hbWU6IHN0cmluZyB8IFR5cGU8RmllbGRXcmFwcGVyPik6IFdyYXBwZXJPcHRpb24ge1xuICAgIGlmIChuYW1lIGluc3RhbmNlb2YgVHlwZSkge1xuICAgICAgcmV0dXJuIHsgY29tcG9uZW50OiBuYW1lLCBuYW1lOiBuYW1lLnByb3RvdHlwZS5jb25zdHJ1Y3Rvci5uYW1lIH07XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLndyYXBwZXJzW25hbWVdKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBbRm9ybWx5IEVycm9yXSBUaGUgd3JhcHBlciBcIiR7bmFtZX1cIiBjb3VsZCBub3QgYmUgZm91bmQuIFBsZWFzZSBtYWtlIHN1cmUgdGhhdCBpcyByZWdpc3RlcmVkIHRocm91Z2ggdGhlIEZvcm1seU1vZHVsZSBkZWNsYXJhdGlvbi5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy53cmFwcGVyc1tuYW1lXTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHNldFR5cGVXcmFwcGVyKHR5cGU6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnR5cGVzW3R5cGVdKSB7XG4gICAgICB0aGlzLnR5cGVzW3R5cGVdID0gPFR5cGVPcHRpb24+e307XG4gICAgfVxuICAgIGlmICghdGhpcy50eXBlc1t0eXBlXS53cmFwcGVycykge1xuICAgICAgdGhpcy50eXBlc1t0eXBlXS53cmFwcGVycyA9IFtdO1xuICAgIH1cbiAgICBpZiAodGhpcy50eXBlc1t0eXBlXS53cmFwcGVycy5pbmRleE9mKG5hbWUpID09PSAtMSkge1xuICAgICAgdGhpcy50eXBlc1t0eXBlXS53cmFwcGVycy5wdXNoKG5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHNldFZhbGlkYXRvcihvcHRpb25zOiBWYWxpZGF0b3JPcHRpb24pIHtcbiAgICB0aGlzLnZhbGlkYXRvcnNbb3B0aW9ucy5uYW1lXSA9IG9wdGlvbnM7XG4gIH1cblxuICBnZXRWYWxpZGF0b3IobmFtZTogc3RyaW5nKTogVmFsaWRhdG9yT3B0aW9uIHtcbiAgICBpZiAoIXRoaXMudmFsaWRhdG9yc1tuYW1lXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgW0Zvcm1seSBFcnJvcl0gVGhlIHZhbGlkYXRvciBcIiR7bmFtZX1cIiBjb3VsZCBub3QgYmUgZm91bmQuIFBsZWFzZSBtYWtlIHN1cmUgdGhhdCBpcyByZWdpc3RlcmVkIHRocm91Z2ggdGhlIEZvcm1seU1vZHVsZSBkZWNsYXJhdGlvbi5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy52YWxpZGF0b3JzW25hbWVdO1xuICB9XG5cbiAgYWRkVmFsaWRhdG9yTWVzc2FnZShuYW1lOiBzdHJpbmcsIG1lc3NhZ2U6IFZhbGlkYXRpb25NZXNzYWdlT3B0aW9uWydtZXNzYWdlJ10pIHtcbiAgICB0aGlzLm1lc3NhZ2VzW25hbWVdID0gbWVzc2FnZTtcbiAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICBjb25zdCBkZXByZWNhdGVkID0geyBtaW5sZW5ndGg6ICdtaW5MZW5ndGgnLCBtYXhsZW5ndGg6ICdtYXhMZW5ndGgnIH0gYXMgYW55O1xuICAgICAgaWYgKGRlcHJlY2F0ZWRbbmFtZV0pIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBGb3JtbHkgZGVwcmVjYXRpb246IHBhc3NpbmcgdmFsaWRhdGlvbiBtZXNzYWdlcyBrZXkgJyR7bmFtZX0nIGlzIGRlcHJlY2F0ZWQgc2luY2UgdjYuMCwgdXNlICcke2RlcHJlY2F0ZWRbbmFtZV19JyBpbnN0ZWFkLmAsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubWVzc2FnZXNbZGVwcmVjYXRlZFtuYW1lXV0gPSBtZXNzYWdlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldFZhbGlkYXRvck1lc3NhZ2UobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZXNbbmFtZV07XG4gIH1cblxuICBwcml2YXRlIHNldFNvcnRlZEV4dGVuc2lvbnMoZXh0ZW5zaW9uT3B0aW9uczogRXh0ZW5zaW9uT3B0aW9uW10pIHtcbiAgICAvLyBpbnNlcnQgbmV3IGV4dGVuc2lvbnMsIGdyb3VwZWQgYnkgcHJpb3JpdHlcbiAgICBleHRlbnNpb25PcHRpb25zLmZvckVhY2goKGV4dGVuc2lvbk9wdGlvbikgPT4ge1xuICAgICAgY29uc3QgcHJpb3JpdHkgPSBleHRlbnNpb25PcHRpb24ucHJpb3JpdHkgPz8gMTtcbiAgICAgIHRoaXMuZXh0ZW5zaW9uc0J5UHJpb3JpdHlbcHJpb3JpdHldID0ge1xuICAgICAgICAuLi50aGlzLmV4dGVuc2lvbnNCeVByaW9yaXR5W3ByaW9yaXR5XSxcbiAgICAgICAgW2V4dGVuc2lvbk9wdGlvbi5uYW1lXTogZXh0ZW5zaW9uT3B0aW9uLmV4dGVuc2lvbixcbiAgICAgIH07XG4gICAgfSk7XG4gICAgLy8gZmxhdHRlbiBleHRlbnNpb25zIG9iamVjdCB3aXRoIHNvcnRlZCBrZXlzXG4gICAgdGhpcy5leHRlbnNpb25zID0gT2JqZWN0LmtleXModGhpcy5leHRlbnNpb25zQnlQcmlvcml0eSlcbiAgICAgIC5tYXAoTnVtYmVyKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGEgLSBiKVxuICAgICAgLnJlZHVjZShcbiAgICAgICAgKGFjYywgcHJpbykgPT4gKHtcbiAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgLi4udGhpcy5leHRlbnNpb25zQnlQcmlvcml0eVtwcmlvXSxcbiAgICAgICAgfSksXG4gICAgICAgIHt9LFxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VFeHRlbmRlZFR5cGUobmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLnR5cGVzW25hbWVdLmV4dGVuZHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBleHRlbmRlZFR5cGUgPSB0aGlzLmdldFR5cGUodGhpcy50eXBlc1tuYW1lXS5leHRlbmRzKTtcbiAgICBpZiAoIXRoaXMudHlwZXNbbmFtZV0uY29tcG9uZW50KSB7XG4gICAgICB0aGlzLnR5cGVzW25hbWVdLmNvbXBvbmVudCA9IGV4dGVuZGVkVHlwZS5jb21wb25lbnQ7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnR5cGVzW25hbWVdLndyYXBwZXJzKSB7XG4gICAgICB0aGlzLnR5cGVzW25hbWVdLndyYXBwZXJzID0gZXh0ZW5kZWRUeXBlLndyYXBwZXJzO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import { FormArray } from '@angular/forms';
|
|
3
|
-
import { FieldType } from './field.type';
|
|
4
|
-
import { clone, assignFieldValue, getFieldValue, hasKey } from '../utils';
|
|
5
|
-
import { registerControl, unregisterControl, findControl } from '../extensions/field-form/utils';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class FieldArrayType extends FieldType {
|
|
8
|
-
onPopulate(field) {
|
|
9
|
-
if (hasKey(field)) {
|
|
10
|
-
const control = findControl(field);
|
|
11
|
-
registerControl(field, control ? control : new FormArray([], { updateOn: field.modelOptions.updateOn }));
|
|
12
|
-
}
|
|
13
|
-
field.fieldGroup = field.fieldGroup || [];
|
|
14
|
-
const length = Array.isArray(field.model) ? field.model.length : 0;
|
|
15
|
-
if (field.fieldGroup.length > length) {
|
|
16
|
-
for (let i = field.fieldGroup.length - 1; i >= length; --i) {
|
|
17
|
-
unregisterControl(field.fieldGroup[i], true);
|
|
18
|
-
field.fieldGroup.splice(i, 1);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
for (let i = field.fieldGroup.length; i < length; i++) {
|
|
22
|
-
const f = { ...clone(typeof field.fieldArray === 'function' ? field.fieldArray(field) : field.fieldArray) };
|
|
23
|
-
if (f.key !== null) {
|
|
24
|
-
f.key = `${i}`;
|
|
25
|
-
}
|
|
26
|
-
field.fieldGroup.push(f);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
add(i, initialModel, { markAsDirty } = { markAsDirty: true }) {
|
|
30
|
-
markAsDirty && this.formControl.markAsDirty();
|
|
31
|
-
i = i == null ? this.field.fieldGroup.length : i;
|
|
32
|
-
if (!this.model) {
|
|
33
|
-
assignFieldValue(this.field, []);
|
|
34
|
-
}
|
|
35
|
-
this.model.splice(i, 0, initialModel ? clone(initialModel) : undefined);
|
|
36
|
-
this.markFieldForCheck(this.field.fieldGroup[i]);
|
|
37
|
-
this._build();
|
|
38
|
-
}
|
|
39
|
-
remove(i, { markAsDirty } = { markAsDirty: true }) {
|
|
40
|
-
markAsDirty && this.formControl.markAsDirty();
|
|
41
|
-
this.model.splice(i, 1);
|
|
42
|
-
const field = this.field.fieldGroup[i];
|
|
43
|
-
this.field.fieldGroup.splice(i, 1);
|
|
44
|
-
this.field.fieldGroup.forEach((f, key) => this.updateArrayElementKey(f, `${key}`));
|
|
45
|
-
unregisterControl(field, true);
|
|
46
|
-
this._build();
|
|
47
|
-
}
|
|
48
|
-
_build() {
|
|
49
|
-
const fields = this.field.formControl._fields ?? [this.field];
|
|
50
|
-
fields.forEach((f) => this.options.build(f));
|
|
51
|
-
this.options.fieldChanges.next({
|
|
52
|
-
field: this.field,
|
|
53
|
-
value: getFieldValue(this.field),
|
|
54
|
-
type: 'valueChanges',
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
updateArrayElementKey(f, newKey) {
|
|
58
|
-
if (hasKey(f)) {
|
|
59
|
-
f.key = newKey;
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
if (!f.fieldGroup?.length) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
for (let i = 0; i < f.fieldGroup.length; i++) {
|
|
66
|
-
this.updateArrayElementKey(f.fieldGroup[i], newKey);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
markFieldForCheck(f) {
|
|
70
|
-
if (!f) {
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
f.fieldGroup?.forEach((c) => this.markFieldForCheck(c));
|
|
74
|
-
if (f.hide === false) {
|
|
75
|
-
this.options._hiddenFieldsForCheck.push({ field: f });
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
FieldArrayType.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FieldArrayType, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
80
|
-
FieldArrayType.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FieldArrayType, usesInheritance: true, ngImport: i0 });
|
|
81
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FieldArrayType, decorators: [{
|
|
82
|
-
type: Directive
|
|
83
|
-
}] });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtYXJyYXkudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb3JlL3NyYy9saWIvdGVtcGxhdGVzL2ZpZWxkLWFycmF5LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFRakcsTUFBTSxPQUFnQixjQUNwQixTQUFRLFNBQVk7SUFHcEIsVUFBVSxDQUFDLEtBQVE7UUFDakIsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLGVBQWUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMxRztRQUVELEtBQUssQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFFMUMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFD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aUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE9BQTZDLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDOUY7SUFDSCxDQUFDOzs0R0F2Rm1CLGNBQWM7Z0dBQWQsY0FBYzs0RkFBZCxjQUFjO2tCQURuQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXkgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuL2ZpZWxkLnR5cGUnO1xuaW1wb3J0IHsgY2xvbmUsIGFzc2lnbkZpZWxkVmFsdWUsIGdldEZpZWxkVmFsdWUsIGhhc0tleSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlFeHRlbnNpb24sIEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJDb250cm9sLCB1bnJlZ2lzdGVyQ29udHJvbCwgZmluZENvbnRyb2wgfSBmcm9tICcuLi9leHRlbnNpb25zL2ZpZWxkLWZvcm0vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkQXJyYXlUeXBlQ29uZmlnPFQgPSBGb3JtbHlGaWVsZENvbmZpZ1sncHJvcHMnXT4gZXh0ZW5kcyBGb3JtbHlGaWVsZENvbmZpZzxUPiB7XG4gIGZvcm1Db250cm9sOiBGb3JtQXJyYXk7XG4gIHByb3BzOiBOb25OdWxsYWJsZTxUPjtcbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmllbGRBcnJheVR5cGU8RiBleHRlbmRzIEZvcm1seUZpZWxkQ29uZmlnID0gRmllbGRBcnJheVR5cGVDb25maWc+XG4gIGV4dGVuZHMgRmllbGRUeXBlPEY+XG4gIGltcGxlbWVudHMgRm9ybWx5RXh0ZW5zaW9uPEY+XG57XG4gIG9uUG9wdWxhdGUoZmllbGQ6IEYpIHtcbiAgICBpZiAoaGFzS2V5KGZpZWxkKSkge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZpbmRDb250cm9sKGZpZWxkKTtcbiAgICAgIHJlZ2lzdGVyQ29udHJvbChmaWVsZCwgY29udHJvbCA/IGNvbnRyb2wgOiBuZXcgRm9ybUFycmF5KFtdLCB7IHVwZGF0ZU9uOiBmaWVsZC5tb2RlbE9wdGlvbnMudXBkYXRlT24gfSkpO1xuICAgIH1cblxuICAgIGZpZWxkLmZpZWxkR3JvdXAgPSBmaWVsZC5maWVsZEdyb3VwIHx8IFtdO1xuXG4gICAgY29uc3QgbGVuZ3RoID0gQXJyYXkuaXNBcnJheShmaWVsZC5tb2RlbCkgPyBmaWVsZC5tb2RlbC5sZW5ndGggOiAwO1xuICAgIGlmIChmaWVsZC5maWVsZEdyb3VwLmxlbmd0aCA+IGxlbmd0aCkge1xuICAgICAgZm9yIChsZXQgaSA9IGZpZWxkLmZpZWxkR3JvdXAubGVuZ3RoIC0gMTsgaSA+PSBsZW5ndGg7IC0taSkge1xuICAgICAgICB1bnJlZ2lzdGVyQ29udHJvbChmaWVsZC5maWVsZEdyb3VwW2ldLCB0cnVlKTtcbiAgICAgICAgZmllbGQuZmllbGRHcm91cC5zcGxpY2UoaSwgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IGZpZWxkLmZpZWxkR3JvdXAubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGYgPSB7IC4uLmNsb25lKHR5cGVvZiBmaWVsZC5maWVsZEFycmF5ID09PSAnZnVuY3Rpb24nID8gZmllbGQuZmllbGRBcnJheShmaWVsZCkgOiBmaWVsZC5maWVsZEFycmF5KSB9O1xuICAgICAgaWYgKGYua2V5ICE9PSBudWxsKSB7XG4gICAgICAgIGYua2V5ID0gYCR7aX1gO1xuICAgICAgfVxuXG4gICAgICBmaWVsZC5maWVsZEdyb3VwLnB1c2goZik7XG4gICAgfVxuICB9XG5cbiAgYWRkKGk/OiBudW1iZXIsIGluaXRpYWxNb2RlbD86IGFueSwgeyBtYXJrQXNEaXJ0eSB9ID0geyBtYXJrQXNEaXJ0eTogdHJ1ZSB9KSB7XG4gICAgbWFya0FzRGlydHkgJiYgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIGkgPSBpID09IG51bGwgPyB0aGlzLmZpZWxkLmZpZWxkR3JvdXAubGVuZ3RoIDogaTtcbiAgICBpZiAoIXRoaXMubW9kZWwpIHtcbiAgICAgIGFzc2lnbkZpZWxkVmFsdWUodGhpcy5maWVsZCwgW10pO1xuICAgIH1cblxuICAgIHRoaXMubW9kZWwuc3BsaWNlKGksIDAsIGluaXRpYWxNb2RlbCA/IGNsb25lKGluaXRpYWxNb2RlbCkgOiB1bmRlZmluZWQpO1xuICAgIHRoaXMubWFya0ZpZWxkRm9yQ2hlY2sodGhpcy5maWVsZC5maWVsZEdyb3VwW2ldKTtcbiAgICB0aGlzLl9idWlsZCgpO1xuICB9XG5cbiAgcmVtb3ZlKGk6IG51bWJlciwgeyBtYXJrQXNEaXJ0eSB9ID0geyBtYXJrQXNEaXJ0eTogdHJ1ZSB9KSB7XG4gICAgbWFya0FzRGlydHkgJiYgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMubW9kZWwuc3BsaWNlKGksIDEpO1xuXG4gICAgY29uc3QgZmllbGQgPSB0aGlzLmZpZWxkLmZpZWxkR3JvdXBbaV07XG4gICAgdGhpcy5maWVsZC5maWVsZEdyb3VwLnNwbGljZShpLCAxKTtcbiAgICB0aGlzLmZpZWxkLmZpZWxkR3JvdXAuZm9yRWFjaCgoZiwga2V5KSA9PiB0aGlzLnVwZGF0ZUFycmF5RWxlbWVudEtleShmLCBgJHtrZXl9YCkpO1xuICAgIHVucmVnaXN0ZXJDb250cm9sKGZpZWxkLCB0cnVlKTtcbiAgICB0aGlzLl9idWlsZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVpbGQoKSB7XG4gICAgY29uc3QgZmllbGRzID0gKHRoaXMuZmllbGQgYXMgRm9ybWx5RmllbGRDb25maWdDYWNoZSkuZm9ybUNvbnRyb2wuX2ZpZWxkcyA/PyBbdGhpcy5maWVsZF07XG4gICAgZmllbGRzLmZvckVhY2goKGYpID0+ICh0aGlzLm9wdGlvbnMgYXMgYW55KS5idWlsZChmKSk7XG4gICAgdGhpcy5vcHRpb25zLmZpZWxkQ2hhbmdlcy5uZXh0KHtcbiAgICAgIGZpZWxkOiB0aGlzLmZpZWxkLFxuICAgICAgdmFsdWU6IGdldEZpZWxkVmFsdWUodGhpcy5maWVsZCksXG4gICAgICB0eXBlOiAndmFsdWVDaGFuZ2VzJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQXJyYXlFbGVtZW50S2V5KGY6IEZvcm1seUZpZWxkQ29uZmlnLCBuZXdLZXk6IHN0cmluZykge1xuICAgIGlmIChoYXNLZXkoZikpIHtcbiAgICAgIGYua2V5ID0gbmV3S2V5O1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghZi5maWVsZEdyb3VwPy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGYuZmllbGRHcm91cC5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy51cGRhdGVBcnJheUVsZW1lbnRLZXkoZi5maWVsZEdyb3VwW2ldLCBuZXdLZXkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWFya0ZpZWxkRm9yQ2hlY2soZjogRm9ybWx5RmllbGRDb25maWcpIHtcbiAgICBpZiAoIWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmLmZpZWxkR3JvdXA/LmZvckVhY2goKGM6IGFueSkgPT4gdGhpcy5tYXJrRmllbGRGb3JDaGVjayhjKSk7XG4gICAgaWYgKGYuaGlkZSA9PT0gZmFsc2UpIHtcbiAgICAgICh0aGlzLm9wdGlvbnMgYXMgRm9ybWx5RmllbGRDb25maWdDYWNoZVsnb3B0aW9ucyddKS5faGlkZGVuRmllbGRzRm9yQ2hlY2sucHVzaCh7IGZpZWxkOiBmIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
-
import { FieldType } from './field.type';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/platform-browser";
|
|
5
|
-
/** @ignore */
|
|
6
|
-
export class FormlyTemplateType extends FieldType {
|
|
7
|
-
constructor(sanitizer) {
|
|
8
|
-
super();
|
|
9
|
-
this.sanitizer = sanitizer;
|
|
10
|
-
this.innerHtml = {};
|
|
11
|
-
}
|
|
12
|
-
get template() {
|
|
13
|
-
if (this.field && this.field.template !== this.innerHtml.template) {
|
|
14
|
-
this.innerHtml = {
|
|
15
|
-
template: this.field.template,
|
|
16
|
-
content: this.props.safeHtml
|
|
17
|
-
? this.sanitizer.bypassSecurityTrustHtml(this.field.template)
|
|
18
|
-
: this.field.template,
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
return this.innerHtml.content;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
FormlyTemplateType.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlyTemplateType, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
-
FormlyTemplateType.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FormlyTemplateType, selector: "formly-template", usesInheritance: true, ngImport: i0, template: `<div [innerHtml]="template"></div>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FormlyTemplateType, decorators: [{
|
|
27
|
-
type: Component,
|
|
28
|
-
args: [{
|
|
29
|
-
selector: 'formly-template',
|
|
30
|
-
template: `<div [innerHtml]="template"></div>`,
|
|
31
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
32
|
-
}]
|
|
33
|
-
}], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdGVtcGxhdGUudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb3JlL3NyYy9saWIvdGVtcGxhdGVzL2ZpZWxkLXRlbXBsYXRlLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFFekMsY0FBYztBQU1kLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxTQUFTO0lBZS9DLFlBQW9CLFNBQXVCO1FBQ3pDLEtBQUssRUFBRSxDQUFDO1FBRFUsY0FBUyxHQUFULFNBQVMsQ0FBYztRQURuQyxjQUFTLEdBQThDLEVBQUUsQ0FBQztJQUdsRSxDQUFDO0lBaEJELElBQUksUUFBUTtRQUNWLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtZQUNqRSxJQUFJLENBQUMsU0FBUyxHQUFHO2dCQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7Z0JBQzdCLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7b0JBQzFCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO29CQUM3RCxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRO2FBQ3hCLENBQUM7U0FDSDtRQUVELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7SUFDaEMsQ0FBQzs7Z0hBWlUsa0JBQWtCO29HQUFsQixrQkFBa0IsOEVBSG5CLG9DQUFvQzs0RkFHbkMsa0JBQWtCO2tCQUw5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRSxvQ0FBb0M7b0JBQzlDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJy4vZmllbGQudHlwZSc7XG5cbi8qKiBAaWdub3JlICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmb3JtbHktdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZTogYDxkaXYgW2lubmVySHRtbF09XCJ0ZW1wbGF0ZVwiPjwvZGl2PmAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtbHlUZW1wbGF0ZVR5cGUgZXh0ZW5kcyBGaWVsZFR5cGUge1xuICBnZXQgdGVtcGxhdGUoKSB7XG4gICAgaWYgKHRoaXMuZmllbGQgJiYgdGhpcy5maWVsZC50ZW1wbGF0ZSAhPT0gdGhpcy5pbm5lckh0bWwudGVtcGxhdGUpIHtcbiAgICAgIHRoaXMuaW5uZXJIdG1sID0ge1xuICAgICAgICB0ZW1wbGF0ZTogdGhpcy5maWVsZC50ZW1wbGF0ZSxcbiAgICAgICAgY29udGVudDogdGhpcy5wcm9wcy5zYWZlSHRtbFxuICAgICAgICAgID8gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodGhpcy5maWVsZC50ZW1wbGF0ZSlcbiAgICAgICAgICA6IHRoaXMuZmllbGQudGVtcGxhdGUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmlubmVySHRtbC5jb250ZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBpbm5lckh0bWw6IHsgY29udGVudD86IFNhZmVIdG1sOyB0ZW1wbGF0ZT86IHN0cmluZyB9ID0ge307XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHtcbiAgICBzdXBlcigpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { Input, Directive, ViewChildren } from '@angular/core';
|
|
2
|
-
import { NgControl } from '@angular/forms';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class FieldType {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.field = {};
|
|
7
|
-
}
|
|
8
|
-
set _formlyControls(controls) {
|
|
9
|
-
const f = this.field;
|
|
10
|
-
f._localFields = controls
|
|
11
|
-
.map((c) => c.control._fields || [])
|
|
12
|
-
.flat()
|
|
13
|
-
.filter((f) => f.formControl !== this.field.formControl);
|
|
14
|
-
}
|
|
15
|
-
get model() {
|
|
16
|
-
return this.field.model;
|
|
17
|
-
}
|
|
18
|
-
get form() {
|
|
19
|
-
return this.field.form;
|
|
20
|
-
}
|
|
21
|
-
get options() {
|
|
22
|
-
return this.field.options;
|
|
23
|
-
}
|
|
24
|
-
get key() {
|
|
25
|
-
return this.field.key;
|
|
26
|
-
}
|
|
27
|
-
get formControl() {
|
|
28
|
-
return this.field.formControl;
|
|
29
|
-
}
|
|
30
|
-
get props() {
|
|
31
|
-
return (this.field.props || {});
|
|
32
|
-
}
|
|
33
|
-
/** @deprecated Use `props` instead. */
|
|
34
|
-
get to() {
|
|
35
|
-
return this.props;
|
|
36
|
-
}
|
|
37
|
-
get showError() {
|
|
38
|
-
return this.options.showError(this);
|
|
39
|
-
}
|
|
40
|
-
get id() {
|
|
41
|
-
return this.field.id;
|
|
42
|
-
}
|
|
43
|
-
get formState() {
|
|
44
|
-
return this.options?.formState || {};
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
FieldType.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FieldType, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
48
|
-
FieldType.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FieldType, inputs: { field: "field" }, viewQueries: [{ propertyName: "_formlyControls", predicate: NgControl, descendants: true }], ngImport: i0 });
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FieldType, decorators: [{
|
|
50
|
-
type: Directive
|
|
51
|
-
}], propDecorators: { _formlyControls: [{
|
|
52
|
-
type: ViewChildren,
|
|
53
|
-
args: [NgControl]
|
|
54
|
-
}], field: [{
|
|
55
|
-
type: Input
|
|
56
|
-
}] } });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb3JlL3NyYy9saWIvdGVtcGxhdGVzL2ZpZWxkLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWEsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBZSxTQUFTLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFlbkUsTUFBTSxPQUFnQixTQUFTO0lBRC9CO1FBVVcsVUFBSyxHQUFNLEVBQU8sQ0FBQztLQTJDN0I7SUFuREMsSUFBNkIsZUFBZSxDQUFDLFFBQThCO1FBQ3pFLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUErQixDQUFDO1FBQy9DLENBQUMsQ0FBQyxZQUFZLEdBQUcsUUFBUTthQUN0QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFFLENBQUMsQ0FBQyxPQUFpRCxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7YUFDOUUsSUFBSSxFQUFFO2FBQ04sTUFBTSxDQUFDLENBQUMsQ0FBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFLRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBNEMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBNEIsQ0FBQztJQUM3RCxDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLElBQUksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxFQUFFO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDdkMsQ0FBQzs7dUdBbkRtQixTQUFTOzJGQUFULFNBQVMsMEZBQ2YsU0FBUzs0RkFESCxTQUFTO2tCQUQ5QixTQUFTOzhCQUVxQixlQUFlO3NCQUEzQyxZQUFZO3VCQUFDLFNBQVM7Z0JBUWQsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIERpcmVjdGl2ZSwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOZ0NvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IEZpZWxkV3JhcHBlciB9IGZyb20gJy4vZmllbGQud3JhcHBlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRUeXBlQ29uZmlnPFQgPSBGb3JtbHlGaWVsZENvbmZpZ1sncHJvcHMnXT4gZXh0ZW5kcyBGb3JtbHlGaWVsZENvbmZpZzxUPiB7XG4gIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcbiAgcHJvcHM6IE5vbk51bGxhYmxlPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkR3JvdXBUeXBlQ29uZmlnPFQgPSBGb3JtbHlGaWVsZENvbmZpZ1sncHJvcHMnXT4gZXh0ZW5kcyBGb3JtbHlGaWVsZENvbmZpZzxUPiB7XG4gIGZvcm1Db250cm9sOiBGb3JtR3JvdXA7XG4gIHByb3BzOiBOb25OdWxsYWJsZTxUPjtcbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmllbGRUeXBlPEYgZXh0ZW5kcyBGb3JtbHlGaWVsZENvbmZpZyA9IEZvcm1seUZpZWxkQ29uZmlnPiB7XG4gIEBWaWV3Q2hpbGRyZW4oTmdDb250cm9sKSBzZXQgX2Zvcm1seUNvbnRyb2xzKGNvbnRyb2xzOiBRdWVyeUxpc3Q8TmdDb250cm9sPikge1xuICAgIGNvbnN0IGYgPSB0aGlzLmZpZWxkIGFzIEZvcm1seUZpZWxkQ29uZmlnQ2FjaGU7XG4gICAgZi5fbG9jYWxGaWVsZHMgPSBjb250cm9sc1xuICAgICAgLm1hcCgoYykgPT4gKGMuY29udHJvbCBhcyBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlWydmb3JtQ29udHJvbCddKS5fZmllbGRzIHx8IFtdKVxuICAgICAgLmZsYXQoKVxuICAgICAgLmZpbHRlcigoZjogRm9ybWx5RmllbGRDb25maWcpID0+IGYuZm9ybUNvbnRyb2wgIT09IHRoaXMuZmllbGQuZm9ybUNvbnRyb2wpO1xuICB9XG5cbiAgQElucHV0KCkgZmllbGQ6IEYgPSB7fSBhcyBGO1xuICBkZWZhdWx0T3B0aW9ucz86IFBhcnRpYWw8Rj47XG5cbiAgZ2V0IG1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLm1vZGVsO1xuICB9XG5cbiAgZ2V0IGZvcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGQuZm9ybTtcbiAgfVxuXG4gIGdldCBvcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLm9wdGlvbnM7XG4gIH1cblxuICBnZXQga2V5KCkge1xuICAgIHJldHVybiB0aGlzLmZpZWxkLmtleTtcbiAgfVxuXG4gIGdldCBmb3JtQ29udHJvbCgpIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5mb3JtQ29udHJvbCBhcyBOb25OdWxsYWJsZTxGWydmb3JtQ29udHJvbCddPjtcbiAgfVxuXG4gIGdldCBwcm9wcygpIHtcbiAgICByZXR1cm4gKHRoaXMuZmllbGQucHJvcHMgfHwge30pIGFzIE5vbk51bGxhYmxlPEZbJ3Byb3BzJ10+O1xuICB9XG5cbiAgLyoqIEBkZXByZWNhdGVkIFVzZSBgcHJvcHNgIGluc3RlYWQuICovXG4gIGdldCB0bygpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcztcbiAgfVxuXG4gIGdldCBzaG93RXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5zaG93RXJyb3IodGhpcyk7XG4gIH1cblxuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5pZDtcbiAgfVxuXG4gIGdldCBmb3JtU3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucz8uZm9ybVN0YXRlIHx8IHt9O1xuICB9XG59XG4iXX0=
|