@ngx-formly/core 5.10.25 → 5.10.29
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 +10 -8
- package/bundles/ngx-formly-core-json-schema.umd.js +10 -5
- package/bundles/ngx-formly-core-json-schema.umd.js.map +1 -1
- package/bundles/ngx-formly-core-json-schema.umd.min.js +1 -1
- package/bundles/ngx-formly-core-json-schema.umd.min.js.map +1 -1
- package/bundles/ngx-formly-core.umd.js +53 -69
- package/bundles/ngx-formly-core.umd.js.map +1 -1
- package/bundles/ngx-formly-core.umd.min.js +1 -1
- package/bundles/ngx-formly-core.umd.min.js.map +1 -1
- package/esm2015/json-schema/formly-json-schema.service.js +12 -7
- package/esm2015/lib/core.js +2 -2
- package/esm2015/lib/extensions/core/core.js +2 -1
- package/esm2015/lib/extensions/field-expression/field-expression.js +22 -22
- package/esm2015/lib/extensions/field-form/utils.js +11 -4
- package/esm2015/lib/templates/formly.validation-message.js +14 -3
- package/esm2015/lib/utils.js +1 -22
- package/esm2015/ngx-formly-core.js +2 -2
- package/esm2015/public_api.js +2 -2
- package/esm5/json-schema/formly-json-schema.service.js +12 -7
- package/esm5/lib/core.js +2 -2
- package/esm5/lib/extensions/core/core.js +2 -1
- package/esm5/lib/extensions/field-expression/field-expression.js +27 -22
- package/esm5/lib/extensions/field-form/utils.js +11 -4
- package/esm5/lib/templates/formly.validation-message.js +15 -3
- package/esm5/lib/utils.js +4 -36
- package/esm5/ngx-formly-core.js +2 -2
- package/esm5/public_api.js +2 -2
- package/fesm2015/ngx-formly-core-json-schema.js +11 -6
- package/fesm2015/ngx-formly-core-json-schema.js.map +1 -1
- package/fesm2015/ngx-formly-core.js +47 -50
- package/fesm2015/ngx-formly-core.js.map +1 -1
- package/fesm5/ngx-formly-core-json-schema.js +11 -6
- package/fesm5/ngx-formly-core-json-schema.js.map +1 -1
- package/fesm5/ngx-formly-core.js +54 -63
- package/fesm5/ngx-formly-core.js.map +1 -1
- package/json-schema/ngx-formly-core-json-schema.metadata.json +1 -1
- package/lib/core.d.ts +1 -1
- package/lib/utils.d.ts +0 -1
- package/ngx-formly-core.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @fileoverview added by tsickle
|
|
3
3
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
4
|
*/
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
5
6
|
import { isObject, isNullOrUndefined, isUndefined, isFunction, defineHiddenProp, wrapProperty, reduceFormUpdateValidityCalls, getFieldValue, assignFieldValue } from '../../utils';
|
|
6
7
|
import { evalExpression, evalStringExpression } from './utils';
|
|
7
8
|
import { isObservable, Observable } from 'rxjs';
|
|
@@ -181,12 +182,14 @@ FieldExpressionExtension = /** @class */ (function () {
|
|
|
181
182
|
*/
|
|
182
183
|
function (prop, expression, parentExpression) {
|
|
183
184
|
return (/**
|
|
184
|
-
* @param {
|
|
185
|
-
* @param {?} formState
|
|
186
|
-
* @param {?} field
|
|
185
|
+
* @param {...?} args
|
|
187
186
|
* @return {?}
|
|
188
187
|
*/
|
|
189
|
-
function (
|
|
188
|
+
function () {
|
|
189
|
+
var args = [];
|
|
190
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
191
|
+
args[_i] = arguments[_i];
|
|
192
|
+
}
|
|
190
193
|
try {
|
|
191
194
|
if (typeof expression === 'string') {
|
|
192
195
|
expression = evalStringExpression(expression, ['model', 'formState', 'field']);
|
|
@@ -197,7 +200,7 @@ FieldExpressionExtension = /** @class */ (function () {
|
|
|
197
200
|
*/
|
|
198
201
|
function () { return !!expression; });
|
|
199
202
|
}
|
|
200
|
-
return (parentExpression && parentExpression()) || expression(
|
|
203
|
+
return (parentExpression && parentExpression()) || expression.apply(void 0, tslib_1.__spread(args));
|
|
201
204
|
}
|
|
202
205
|
catch (error) {
|
|
203
206
|
error.message = "[Formly Error] [Expression \"" + prop + "\"] " + error.message;
|
|
@@ -299,12 +302,14 @@ FieldExpressionExtension = /** @class */ (function () {
|
|
|
299
302
|
var expressionProperties = field._expressionProperties;
|
|
300
303
|
for (var key in expressionProperties) {
|
|
301
304
|
/** @type {?} */
|
|
302
|
-
var expressionValue = evalExpression(expressionProperties[key].expression, { field: field }, [field.model, field.options.formState, field]);
|
|
305
|
+
var expressionValue = evalExpression(expressionProperties[key].expression, { field: field }, [field.model, field.options.formState, field, ignoreCache]);
|
|
303
306
|
if (key === 'templateOptions.disabled') {
|
|
304
307
|
expressionValue = !!expressionValue;
|
|
305
308
|
}
|
|
306
309
|
if (ignoreCache || (expressionProperties[key].expressionValue !== expressionValue
|
|
307
|
-
&& (!isObject(expressionValue)
|
|
310
|
+
&& (!(isObject(expressionValue) || isFunction(expressionValue))
|
|
311
|
+
|| (isFunction(expressionValue)
|
|
312
|
+
&& ('' + expressionProperties[key].expressionValue !== '' + expressionValue))
|
|
308
313
|
|| isObservable(expressionValue)
|
|
309
314
|
|| JSON.stringify(expressionValue) !== JSON.stringify(expressionProperties[key].expressionValue)))) {
|
|
310
315
|
markForCheck = true;
|
|
@@ -331,7 +336,7 @@ FieldExpressionExtension = /** @class */ (function () {
|
|
|
331
336
|
return false;
|
|
332
337
|
}
|
|
333
338
|
/** @type {?} */
|
|
334
|
-
var hideExpressionResult = !!evalExpression(field.hideExpression, { field: field }, [field.model, field.options.formState, field]);
|
|
339
|
+
var hideExpressionResult = !!evalExpression(field.hideExpression, { field: field }, [field.model, field.options.formState, field, ignoreCache]);
|
|
335
340
|
/** @type {?} */
|
|
336
341
|
var markForCheck = false;
|
|
337
342
|
if (hideExpressionResult !== field.hide || ignoreCache) {
|
|
@@ -389,6 +394,19 @@ FieldExpressionExtension = /** @class */ (function () {
|
|
|
389
394
|
*/
|
|
390
395
|
function (field, hide, resetOnHide) {
|
|
391
396
|
var _this = this;
|
|
397
|
+
if (field.fieldGroup) {
|
|
398
|
+
field.fieldGroup
|
|
399
|
+
.filter((/**
|
|
400
|
+
* @param {?} f
|
|
401
|
+
* @return {?}
|
|
402
|
+
*/
|
|
403
|
+
function (f) { return !f.hideExpression; }))
|
|
404
|
+
.forEach((/**
|
|
405
|
+
* @param {?} f
|
|
406
|
+
* @return {?}
|
|
407
|
+
*/
|
|
408
|
+
function (f) { return _this.toggleFormControl(f, hide, resetOnHide); }));
|
|
409
|
+
}
|
|
392
410
|
if (field.formControl && field.key) {
|
|
393
411
|
defineHiddenProp(field, '_hide', !!(hide || field.hide));
|
|
394
412
|
/** @type {?} */
|
|
@@ -422,19 +440,6 @@ FieldExpressionExtension = /** @class */ (function () {
|
|
|
422
440
|
}
|
|
423
441
|
}
|
|
424
442
|
}
|
|
425
|
-
if (field.fieldGroup) {
|
|
426
|
-
field.fieldGroup
|
|
427
|
-
.filter((/**
|
|
428
|
-
* @param {?} f
|
|
429
|
-
* @return {?}
|
|
430
|
-
*/
|
|
431
|
-
function (f) { return !f.hideExpression; }))
|
|
432
|
-
.forEach((/**
|
|
433
|
-
* @param {?} f
|
|
434
|
-
* @return {?}
|
|
435
|
-
*/
|
|
436
|
-
function (f) { return _this.toggleFormControl(f, hide, resetOnHide); }));
|
|
437
|
-
}
|
|
438
443
|
if (field.options.fieldChanges) {
|
|
439
444
|
field.options.fieldChanges.next((/** @type {?} */ ({ field: field, type: 'hidden', value: hide })));
|
|
440
445
|
}
|
|
@@ -526,4 +531,4 @@ FieldExpressionExtension = /** @class */ (function () {
|
|
|
526
531
|
* \@experimental
|
|
527
532
|
*/
|
|
528
533
|
export { FieldExpressionExtension };
|
|
529
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZXhwcmVzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3gtZm9ybWx5L2NvcmUvIiwic291cmNlcyI6WyJsaWIvZXh0ZW5zaW9ucy9maWVsZC1leHByZXNzaW9uL2ZpZWxkLWV4cHJlc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsNkJBQTZCLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25MLE9BQU8sRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRTlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRzNDOzs7O0lBQUE7SUFnVUEsQ0FBQzs7Ozs7SUEvVEMsOENBQVc7Ozs7SUFBWCxVQUFZLEtBQTZCO1FBQXpDLGlCQWdCQztRQWZDLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUM3QyxPQUFPO1NBQ1I7O1lBRUcsV0FBVyxHQUFHLEtBQUs7UUFDdkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXOzs7OztRQUFHLFVBQUMsQ0FBQyxFQUFFLFdBQVc7WUFDekMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDaEIsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDbkIsNkJBQTZCLENBQzNCLENBQUMsQ0FBQyxXQUFXOzs7Z0JBQ2IsY0FBTSxPQUFBLEtBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxFQUEvQixD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c0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seVZhbHVlQ2hhbmdlRXZlbnQsIEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Zvcm1seS5maWVsZC5jb25maWcnO1xuaW1wb3J0IHsgaXNPYmplY3QsIGlzTnVsbE9yVW5kZWZpbmVkLCBpc1VuZGVmaW5lZCwgaXNGdW5jdGlvbiwgZGVmaW5lSGlkZGVuUHJvcCwgd3JhcFByb3BlcnR5LCByZWR1Y2VGb3JtVXBkYXRlVmFsaWRpdHlDYWxscywgZ2V0RmllbGRWYWx1ZSwgYXNzaWduRmllbGRWYWx1ZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGV2YWxFeHByZXNzaW9uLCBldmFsU3RyaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1seUV4dGVuc2lvbiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm1seS5jb25maWcnO1xuaW1wb3J0IHsgdW5yZWdpc3RlckNvbnRyb2wsIHJlZ2lzdGVyQ29udHJvbCwgdXBkYXRlVmFsaWRpdHkgfSBmcm9tICcuLi9maWVsZC1mb3JtL3V0aWxzJztcbmltcG9ydCB7IEZvcm1BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLyoqIEBleHBlcmltZW50YWwgKi9cbmV4cG9ydCBjbGFzcyBGaWVsZEV4cHJlc3Npb25FeHRlbnNpb24gaW1wbGVtZW50cyBGb3JtbHlFeHRlbnNpb24ge1xuICBwcmVQb3B1bGF0ZShmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSkge1xuICAgIGlmIChmaWVsZC5wYXJlbnQgfHwgZmllbGQub3B0aW9ucy5fY2hlY2tGaWVsZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjaGVja0xvY2tlZCA9IGZhbHNlO1xuICAgIGZpZWxkLm9wdGlvbnMuX2NoZWNrRmllbGQgPSAoZiwgaWdub3JlQ2FjaGUpID0+IHtcbiAgICAgIGlmICghY2hlY2tMb2NrZWQpIHtcbiAgICAgICAgY2hlY2tMb2NrZWQgPSB0cnVlO1xuICAgICAgICByZWR1Y2VGb3JtVXBkYXRlVmFsaWRpdHlDYWxscyhcbiAgICAgICAgICBmLmZvcm1Db250cm9sLFxuICAgICAgICAgICgpID0+IHRoaXMuY2hlY2tGaWVsZChmLCBpZ25vcmVDYWNoZSksXG4gICAgICAgICk7XG4gICAgICAgIGNoZWNrTG9ja2VkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHBvc3RQb3B1bGF0ZShmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSkge1xuICAgIGlmICghZmllbGQucGFyZW50IHx8IGZpZWxkLl9leHByZXNzaW9uUHJvcGVydGllcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGNhY2hlIGJ1aWx0IGV4cHJlc3Npb25cbiAgICBkZWZpbmVIaWRkZW5Qcm9wKGZpZWxkLCAnX2V4cHJlc3Npb25Qcm9wZXJ0aWVzJywge30pO1xuXG4gICAgaWYgKGZpZWxkLmV4cHJlc3Npb25Qcm9wZXJ0aWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBmaWVsZC5leHByZXNzaW9uUHJvcGVydGllcykge1xuICAgICAgICBjb25zdCBleHByZXNzaW9uUHJvcGVydHkgPSBmaWVsZC5leHByZXNzaW9uUHJvcGVydGllc1trZXldO1xuXG4gICAgICAgIGlmICh0eXBlb2YgZXhwcmVzc2lvblByb3BlcnR5ID09PSAnc3RyaW5nJyB8fCBpc0Z1bmN0aW9uKGV4cHJlc3Npb25Qcm9wZXJ0eSkpIHtcbiAgICAgICAgICBmaWVsZC5fZXhwcmVzc2lvblByb3BlcnRpZXNba2V5XSA9IHtcbiAgICAgICAgICAgIGV4cHJlc3Npb246IHRoaXMuX2V2YWxFeHByZXNzaW9uKFxuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0eSxcbiAgICAgICAgICAgICAga2V5ID09PSAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJyAmJiBmaWVsZC5wYXJlbnQuZXhwcmVzc2lvblByb3BlcnRpZXMgJiYgZmllbGQucGFyZW50LmV4cHJlc3Npb25Qcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KCd0ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQnKVxuICAgICAgICAgICAgICAgID8gKCkgPT4gZmllbGQucGFyZW50LnRlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZFxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmIChrZXkgPT09ICd0ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQnKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZmllbGQuX2V4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0sICdleHByZXNzaW9uVmFsdWUnLCB7XG4gICAgICAgICAgICAgIGdldDogKCkgPT4gZmllbGQudGVtcGxhdGVPcHRpb25zLmRpc2FibGVkLFxuICAgICAgICAgICAgICBzZXQ6ICgpID0+IHsgfSxcbiAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV4cHJlc3Npb25Qcm9wZXJ0eSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgICBjb25zdCBzdWJzY3JpYmUgPSAoKSA9PiAoZXhwcmVzc2lvblByb3BlcnR5IGFzIE9ic2VydmFibGU8YW55PilcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodiA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0RXhwclZhbHVlKGZpZWxkLCBrZXksIHYpO1xuICAgICAgICAgICAgICBpZiAoZmllbGQub3B0aW9ucyAmJiBmaWVsZC5vcHRpb25zLl9tYXJrRm9yQ2hlY2spIHtcbiAgICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLl9tYXJrRm9yQ2hlY2soZmllbGQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgIGxldCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IHN1YnNjcmliZSgpO1xuICAgICAgICAgIGNvbnN0IG9uSW5pdCA9IGZpZWxkLmhvb2tzLm9uSW5pdDtcbiAgICAgICAgICBmaWVsZC5ob29rcy5vbkluaXQgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoc3Vic2NyaXB0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIHN1YnNjcmlwdGlvbiA9IHN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9uSW5pdCAmJiBvbkluaXQoZmllbGQpO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBvbkRlc3Ryb3kgPSBmaWVsZC5ob29rcy5vbkRlc3Ryb3k7XG4gICAgICAgICAgZmllbGQuaG9va3Mub25EZXN0cm95ID0gKCkgPT4ge1xuICAgICAgICAgICAgb25EZXN0cm95ICYmIG9uRGVzdHJveShmaWVsZCk7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmaWVsZC5oaWRlRXhwcmVzc2lvbikge1xuICAgICAgLy8gZGVsZXRlIGhpZGUgdmFsdWUgaW4gb3JkZXIgdG8gZm9yY2UgcmUtZXZhbHVhdGUgaXQgaW4gRm9ybWx5Rm9ybUV4cHJlc3Npb24uXG4gICAgICBkZWxldGUgZmllbGQuaGlkZTtcblxuICAgICAgZmllbGQuaGlkZUV4cHJlc3Npb24gPSB0aGlzLl9ldmFsRXhwcmVzc2lvbihcbiAgICAgICAgJ2hpZGUnLFxuICAgICAgICBmaWVsZC5oaWRlRXhwcmVzc2lvbixcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGxldCByb290ID0gZmllbGQucGFyZW50O1xuICAgICAgICAgIHdoaWxlIChyb290LnBhcmVudCAmJiAhcm9vdC5oaWRlKSB7XG4gICAgICAgICAgICByb290ID0gcm9vdC5wYXJlbnQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJvb3QuaGlkZTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdyYXBQcm9wZXJ0eShmaWVsZCwgJ2hpZGUnLCAoeyBjdXJyZW50VmFsdWUsIGZpcnN0Q2hhbmdlIH0pID0+IHtcbiAgICAgICAgZmllbGQuX2hpZGUgPSBjdXJyZW50VmFsdWU7XG4gICAgICAgIGlmICghZmlyc3RDaGFuZ2UgfHwgKGZpcnN0Q2hhbmdlICYmIGN1cnJlbnRWYWx1ZSA9PT0gdHJ1ZSkpIHtcbiAgICAgICAgICBmaWVsZC5vcHRpb25zLl9oaWRkZW5GaWVsZHNGb3JDaGVjay5wdXNoKGZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZXZhbEV4cHJlc3Npb24ocHJvcDogc3RyaW5nLCBleHByZXNzaW9uLCBwYXJlbnRFeHByZXNzaW9uPykge1xuICAgIHJldHVybiAobW9kZWw6IGFueSwgZm9ybVN0YXRlOiBhbnksIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBleHByZXNzaW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGV4cHJlc3Npb24gPSBldmFsU3RyaW5nRXhwcmVzc2lvbihleHByZXNzaW9uLCBbJ21vZGVsJywgJ2Zvcm1TdGF0ZScsICdmaWVsZCddKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgZXhwcmVzc2lvbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGV4cHJlc3Npb24gPSAoKSA9PiAhIWV4cHJlc3Npb247XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKHBhcmVudEV4cHJlc3Npb24gJiYgcGFyZW50RXhwcmVzc2lvbigpKSB8fCBleHByZXNzaW9uKG1vZGVsLCBmb3JtU3RhdGUsIGZpZWxkKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgW0Zvcm1seSBFcnJvcl0gW0V4cHJlc3Npb24gXCIke3Byb3B9XCJdICR7ZXJyb3IubWVzc2FnZX1gO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZpZWxkKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlLCBpZ25vcmVDYWNoZSA9IGZhbHNlKSB7XG4gICAgY29uc3QgZmllbGRDaGFuZ2VkID0gdGhpcy5fY2hlY2tGaWVsZChmaWVsZCwgaWdub3JlQ2FjaGUpO1xuXG4gICAgZmllbGQub3B0aW9ucy5faGlkZGVuRmllbGRzRm9yQ2hlY2tcbiAgICAgIC5zb3J0KGYgPT4gZi5oaWRlID8gLTEgOiAxKVxuICAgICAgLmZvckVhY2goZiA9PiB0aGlzLnRvZ2dsZUZvcm1Db250cm9sKGYsICEhZi5oaWRlLCAhaWdub3JlQ2FjaGUpKTtcblxuICAgIGZpZWxkLm9wdGlvbnMuX2hpZGRlbkZpZWxkc0ZvckNoZWNrID0gW107XG4gICAgaWYgKGZpZWxkQ2hhbmdlZCkge1xuICAgICAgdGhpcy5jaGVja0ZpZWxkKGZpZWxkKTtcbiAgICAgIGlmIChmaWVsZC5vcHRpb25zICYmIGZpZWxkLm9wdGlvbnMuX21hcmtGb3JDaGVjaykge1xuICAgICAgICBmaWVsZC5vcHRpb25zLl9tYXJrRm9yQ2hlY2soZmllbGQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrRmllbGQoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUsIGlnbm9yZUNhY2hlID0gZmFsc2UpIHtcbiAgICBsZXQgZmllbGRDaGFuZ2VkID0gZmFsc2U7XG4gICAgZmllbGQuZmllbGRHcm91cC5mb3JFYWNoKGYgPT4ge1xuICAgICAgaWYgKCFmLm9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNoZWNrRmllbGRFeHByZXNzaW9uQ2hhbmdlKGYsIGlnbm9yZUNhY2hlKSAmJiAoZmllbGRDaGFuZ2VkID0gdHJ1ZSk7XG4gICAgICBpZiAodGhpcy5jaGVja0ZpZWxkVmlzaWJpbGl0eUNoYW5nZShmLCBpZ25vcmVDYWNoZSkpIHtcbiAgICAgICAgZmllbGQub3B0aW9ucy5faGlkZGVuRmllbGRzRm9yQ2hlY2sucHVzaChmKTtcbiAgICAgICAgZmllbGRDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGYuZmllbGRHcm91cCAmJiBmLmZpZWxkR3JvdXAubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLl9jaGVja0ZpZWxkKGYsIGlnbm9yZUNhY2hlKSAmJiAoZmllbGRDaGFuZ2VkID0gdHJ1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmllbGRDaGFuZ2VkO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZpZWxkRXhwcmVzc2lvbkNoYW5nZShmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSwgaWdub3JlQ2FjaGUpOiBib29sZWFuIHtcbiAgICBpZiAoIWZpZWxkIHx8ICFmaWVsZC5fZXhwcmVzc2lvblByb3BlcnRpZXMpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgbWFya0ZvckNoZWNrID0gZmFsc2U7XG4gICAgY29uc3QgZXhwcmVzc2lvblByb3BlcnRpZXMgPSBmaWVsZC5fZXhwcmVzc2lvblByb3BlcnRpZXM7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBleHByZXNzaW9uUHJvcGVydGllcykge1xuICAgICAgbGV0IGV4cHJlc3Npb25WYWx1ZSA9IGV2YWxFeHByZXNzaW9uKGV4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0uZXhwcmVzc2lvbiwgeyBmaWVsZCB9LCBbZmllbGQubW9kZWwsIGZpZWxkLm9wdGlvbnMuZm9ybVN0YXRlLCBmaWVsZF0pO1xuICAgICAgaWYgKGtleSA9PT0gJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCcpIHtcbiAgICAgICAgZXhwcmVzc2lvblZhbHVlID0gISFleHByZXNzaW9uVmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgaWdub3JlQ2FjaGUgfHwgKFxuICAgICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0uZXhwcmVzc2lvblZhbHVlICE9PSBleHByZXNzaW9uVmFsdWVcbiAgICAgICAgICAmJiAoXG4gICAgICAgICAgICAhaXNPYmplY3QoZXhwcmVzc2lvblZhbHVlKVxuICAgICAgICAgICAgfHwgaXNPYnNlcnZhYmxlKGV4cHJlc3Npb25WYWx1ZSlcbiAgICAgICAgICAgIHx8IEpTT04uc3RyaW5naWZ5KGV4cHJlc3Npb25WYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGV4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0uZXhwcmVzc2lvblZhbHVlKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIG1hcmtGb3JDaGVjayA9IHRydWU7XG4gICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0uZXhwcmVzc2lvblZhbHVlID0gZXhwcmVzc2lvblZhbHVlO1xuICAgICAgICB0aGlzLnNldEV4cHJWYWx1ZShmaWVsZCwga2V5LCBleHByZXNzaW9uVmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXJrRm9yQ2hlY2s7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRmllbGRWaXNpYmlsaXR5Q2hhbmdlKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlLCBpZ25vcmVDYWNoZSk6IGJvb2xlYW4ge1xuICAgIGlmICghZmllbGQgfHwgaXNOdWxsT3JVbmRlZmluZWQoZmllbGQuaGlkZUV4cHJlc3Npb24pKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgaGlkZUV4cHJlc3Npb25SZXN1bHQ6IGJvb2xlYW4gPSAhIWV2YWxFeHByZXNzaW9uKFxuICAgICAgZmllbGQuaGlkZUV4cHJlc3Npb24sXG4gICAgICB7IGZpZWxkIH0sXG4gICAgICBbZmllbGQubW9kZWwsIGZpZWxkLm9wdGlvbnMuZm9ybVN0YXRlLCBmaWVsZF0sXG4gICAgKTtcbiAgICBsZXQgbWFya0ZvckNoZWNrID0gZmFsc2U7XG4gICAgaWYgKGhpZGVFeHByZXNzaW9uUmVzdWx0ICE9PSBmaWVsZC5oaWRlIHx8IGlnbm9yZUNhY2hlKSB7XG4gICAgICBtYXJrRm9yQ2hlY2sgPSB0cnVlO1xuICAgICAgLy8gdG9nZ2xlIGhpZGVcbiAgICAgIGZpZWxkLmhpZGUgPSBoaWRlRXhwcmVzc2lvblJlc3VsdDtcbiAgICAgIGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5oaWRkZW4gPSBoaWRlRXhwcmVzc2lvblJlc3VsdDtcbiAgICB9XG5cbiAgICByZXR1cm4gbWFya0ZvckNoZWNrO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREaXNhYmxlZFN0YXRlKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZywgdmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoZmllbGQuZmllbGRHcm91cCkge1xuICAgICAgZmllbGQuZmllbGRHcm91cFxuICAgICAgICAuZmlsdGVyKGYgPT4gIWYuZXhwcmVzc2lvblByb3BlcnRpZXMgfHwgIWYuZXhwcmVzc2lvblByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCcpKVxuICAgICAgICAuZm9yRWFjaChmID0+IHRoaXMuc2V0RGlzYWJsZWRTdGF0ZShmLCB2YWx1ZSkpO1xuICAgIH1cblxuICAgIGlmIChmaWVsZC5rZXkgJiYgZmllbGQudGVtcGxhdGVPcHRpb25zLmRpc2FibGVkICE9PSB2YWx1ZSkge1xuICAgICAgZmllbGQudGVtcGxhdGVPcHRpb25zLmRpc2FibGVkID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVGb3JtQ29udHJvbChmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSwgaGlkZTogYm9vbGVhbiwgcmVzZXRPbkhpZGU6IGJvb2xlYW4pIHtcbiAgICBpZiAoZmllbGQuZm9ybUNvbnRyb2wgJiYgZmllbGQua2V5KSB7XG4gICAgICBkZWZpbmVIaWRkZW5Qcm9wKGZpZWxkLCAnX2hpZGUnLCAhIShoaWRlIHx8IGZpZWxkLmhpZGUpKTtcbiAgICAgIGNvbnN0IGMgPSBmaWVsZC5mb3JtQ29udHJvbDtcbiAgICAgIGlmIChjWydfZmllbGRzJ10gJiYgY1snX2ZpZWxkcyddLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdXBkYXRlVmFsaWRpdHkoYyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChoaWRlID09PSB0cnVlICYmICghY1snX2ZpZWxkcyddIHx8IGNbJ19maWVsZHMnXS5ldmVyeShmID0+ICEhZi5faGlkZSkpKSB7XG4gICAgICAgIHVucmVnaXN0ZXJDb250cm9sKGZpZWxkLCB0cnVlKTtcbiAgICAgICAgaWYgKHJlc2V0T25IaWRlICYmIGZpZWxkLnJlc2V0T25IaWRlKSB7XG4gICAgICAgICAgZmllbGQuZm9ybUNvbnRyb2wucmVzZXQoeyB2YWx1ZTogdW5kZWZpbmVkLCBkaXNhYmxlZDogZmllbGQuZm9ybUNvbnRyb2wuZGlzYWJsZWQgfSk7XG4gICAgICAgICAgaWYgKGZpZWxkLmZpZWxkR3JvdXApIHtcbiAgICAgICAgICAgIGFzc2lnbkZpZWxkVmFsdWUoZmllbGQsIHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC5mb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgICAgICAgICBmaWVsZC5maWVsZEdyb3VwLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGhpZGUgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChmaWVsZC5yZXNldE9uSGlkZSAmJiBmaWVsZC5wYXJlbnQgJiYgIWlzVW5kZWZpbmVkKGZpZWxkLmRlZmF1bHRWYWx1ZSkgJiYgaXNVbmRlZmluZWQoZ2V0RmllbGRWYWx1ZShmaWVsZCkpKSB7XG4gICAgICAgICAgYXNzaWduRmllbGRWYWx1ZShmaWVsZCwgZmllbGQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZWdpc3RlckNvbnRyb2woZmllbGQsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIGlmIChmaWVsZC5yZXNldE9uSGlkZSAmJiBmaWVsZC5maWVsZEFycmF5ICYmIChmaWVsZC5maWVsZEdyb3VwIHx8IFtdKS5sZW5ndGggIT09IChmaWVsZC5tb2RlbCB8fCBbXSkubGVuZ3RoKSB7XG4gICAgICAgICAgKDxhbnk+IGZpZWxkLm9wdGlvbnMpLl9idWlsZEZvcm0odHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmllbGQuZmllbGRHcm91cCkge1xuICAgICAgZmllbGQuZmllbGRHcm91cFxuICAgICAgICAuZmlsdGVyKGYgPT4gIWYuaGlkZUV4cHJlc3Npb24pXG4gICAgICAgIC5mb3JFYWNoKGYgPT4gdGhpcy50b2dnbGVGb3JtQ29udHJvbChmLCBoaWRlLCByZXNldE9uSGlkZSkpO1xuICAgIH1cblxuICAgIGlmIChmaWVsZC5vcHRpb25zLmZpZWxkQ2hhbmdlcykge1xuICAgICAgZmllbGQub3B0aW9ucy5maWVsZENoYW5nZXMubmV4dCg8Rm9ybWx5VmFsdWVDaGFuZ2VFdmVudD4geyBmaWVsZCwgdHlwZTogJ2hpZGRlbicsIHZhbHVlOiBoaWRlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0RXhwclZhbHVlKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlLCBwcm9wOiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICB0cnkge1xuICAgICAgbGV0IHRhcmdldCA9IGZpZWxkO1xuICAgICAgY29uc3QgcGF0aHMgPSBwcm9wLmluZGV4T2YoJ1snKSA9PT0gLTFcbiAgICAgICAgPyBwcm9wLnNwbGl0KCcuJylcbiAgICAgICAgOiBwcm9wXG4gICAgICAgICAgLnJlcGxhY2UoL1xcJ3xcXFwiL2csICcnKVxuICAgICAgICAgIC5zcGxpdCgvW1tcXF1dezEsMn0vKSAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjAxOTgyMDZcbiAgICAgICAgICAuZmlsdGVyKHYgPT4gdilcbiAgICAgIDtcbiAgICAgIGNvbnN0IGxhc3RJbmRleCA9IHBhdGhzLmxlbmd0aCAtIDE7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxhc3RJbmRleDsgaSsrKSB7XG4gICAgICAgIHRhcmdldCA9IHRhcmdldFtwYXRoc1tpXV07XG4gICAgICB9XG5cbiAgICAgIHRhcmdldFtwYXRoc1tsYXN0SW5kZXhdXSA9IHZhbHVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBlcnJvci5tZXNzYWdlID0gYFtGb3JtbHkgRXJyb3JdIFtFeHByZXNzaW9uIFwiJHtwcm9wfVwiXSAke2Vycm9yLm1lc3NhZ2V9YDtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cblxuICAgIGlmIChwcm9wID09PSAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJyAmJiBmaWVsZC5rZXkpIHtcbiAgICAgIHRoaXMuc2V0RGlzYWJsZWRTdGF0ZShmaWVsZCwgdmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChwcm9wLmluZGV4T2YoJ21vZGVsLicpID09PSAwKSB7XG4gICAgICBjb25zdCBwYXRoID0gcHJvcC5yZXBsYWNlKC9ebW9kZWxcXC4vLCAnJyksXG4gICAgICAgIGNvbnRyb2wgPSBmaWVsZC5rZXkgJiYgcHJvcCA9PT0gcGF0aCA/IGZpZWxkLmZvcm1Db250cm9sIDogZmllbGQucGFyZW50LmZvcm1Db250cm9sLmdldChwYXRoKTtcblxuICAgICAgaWYgKFxuICAgICAgICBjb250cm9sXG4gICAgICAgICYmICEoaXNOdWxsT3JVbmRlZmluZWQoY29udHJvbC52YWx1ZSkgJiYgaXNOdWxsT3JVbmRlZmluZWQodmFsdWUpKVxuICAgICAgICAmJiBjb250cm9sLnZhbHVlICE9PSB2YWx1ZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5lbWl0RXhwcmVzc2lvbkNoYW5nZXMoZmllbGQsIHByb3AsIHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEV4cHJlc3Npb25DaGFuZ2VzKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlLCBwcm9wZXJ0eTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKCFmaWVsZC5vcHRpb25zLmZpZWxkQ2hhbmdlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZpZWxkLm9wdGlvbnMuZmllbGRDaGFuZ2VzLm5leHQoe1xuICAgICAgZmllbGQ6IGZpZWxkLFxuICAgICAgdHlwZTogJ2V4cHJlc3Npb25DaGFuZ2VzJyxcbiAgICAgIHByb3BlcnR5LFxuICAgICAgdmFsdWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
534
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZXhwcmVzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3gtZm9ybWx5L2NvcmUvIiwic291cmNlcyI6WyJsaWIvZXh0ZW5zaW9ucy9maWVsZC1leHByZXNzaW9uL2ZpZWxkLWV4cHJlc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLDZCQUE2QixFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNuTCxPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUU5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUczQzs7OztJQUFBO0lBb1VBLENBQUM7Ozs7O0lBblVDLDhDQUFXOzs7O0lBQVgsVUFBWSxLQUE2QjtRQUF6QyxpQkFnQkM7UUFmQyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDN0MsT0FBTztTQUNSOztZQUVHLFdBQVcsR0FBRyxLQUFLO1FBQ3ZCLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVzs7Ozs7UUFBRyxVQUFDLENBQUMsRUFBRSxXQUFXO1lBQ3pDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2hCLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ25CLDZCQUE2QixDQUMzQixDQUFDLENBQUMsV0FBVzs7O2dCQUNiLGNBQU0sT0FBQSxLQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsRUFBL0Is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QUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQzlCLEtBQUssRUFBRSxLQUFLO1lBQ1osSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixRQUFRLFVBQUE7WUFDUixLQUFLLE9BQUE7U0FDTixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0gsK0JBQUM7QUFBRCxDQUFDLEFBcFVELElBb1VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seVZhbHVlQ2hhbmdlRXZlbnQsIEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Zvcm1seS5maWVsZC5jb25maWcnO1xuaW1wb3J0IHsgaXNPYmplY3QsIGlzTnVsbE9yVW5kZWZpbmVkLCBpc1VuZGVmaW5lZCwgaXNGdW5jdGlvbiwgZGVmaW5lSGlkZGVuUHJvcCwgd3JhcFByb3BlcnR5LCByZWR1Y2VGb3JtVXBkYXRlVmFsaWRpdHlDYWxscywgZ2V0RmllbGRWYWx1ZSwgYXNzaWduRmllbGRWYWx1ZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IGV2YWxFeHByZXNzaW9uLCBldmFsU3RyaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1seUV4dGVuc2lvbiB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm1seS5jb25maWcnO1xuaW1wb3J0IHsgdW5yZWdpc3RlckNvbnRyb2wsIHJlZ2lzdGVyQ29udHJvbCwgdXBkYXRlVmFsaWRpdHkgfSBmcm9tICcuLi9maWVsZC1mb3JtL3V0aWxzJztcbmltcG9ydCB7IEZvcm1BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLyoqIEBleHBlcmltZW50YWwgKi9cbmV4cG9ydCBjbGFzcyBGaWVsZEV4cHJlc3Npb25FeHRlbnNpb24gaW1wbGVtZW50cyBGb3JtbHlFeHRlbnNpb24ge1xuICBwcmVQb3B1bGF0ZShmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSkge1xuICAgIGlmIChmaWVsZC5wYXJlbnQgfHwgZmllbGQub3B0aW9ucy5fY2hlY2tGaWVsZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjaGVja0xvY2tlZCA9IGZhbHNlO1xuICAgIGZpZWxkLm9wdGlvbnMuX2NoZWNrRmllbGQgPSAoZiwgaWdub3JlQ2FjaGUpID0+IHtcbiAgICAgIGlmICghY2hlY2tMb2NrZWQpIHtcbiAgICAgICAgY2hlY2tMb2NrZWQgPSB0cnVlO1xuICAgICAgICByZWR1Y2VGb3JtVXBkYXRlVmFsaWRpdHlDYWxscyhcbiAgICAgICAgICBmLmZvcm1Db250cm9sLFxuICAgICAgICAgICgpID0+IHRoaXMuY2hlY2tGaWVsZChmLCBpZ25vcmVDYWNoZSksXG4gICAgICAgICk7XG4gICAgICAgIGNoZWNrTG9ja2VkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHBvc3RQb3B1bGF0ZShmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSkge1xuICAgIGlmICghZmllbGQucGFyZW50IHx8IGZpZWxkLl9leHByZXNzaW9uUHJvcGVydGllcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGNhY2hlIGJ1aWx0IGV4cHJlc3Npb25cbiAgICBkZWZpbmVIaWRkZW5Qcm9wKGZpZWxkLCAnX2V4cHJlc3Npb25Qcm9wZXJ0aWVzJywge30pO1xuXG4gICAgaWYgKGZpZWxkLmV4cHJlc3Npb25Qcm9wZXJ0aWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBmaWVsZC5leHByZXNzaW9uUHJvcGVydGllcykge1xuICAgICAgICBjb25zdCBleHByZXNzaW9uUHJvcGVydHkgPSBmaWVsZC5leHByZXNzaW9uUHJvcGVydGllc1trZXldO1xuXG4gICAgICAgIGlmICh0eXBlb2YgZXhwcmVzc2lvblByb3BlcnR5ID09PSAnc3RyaW5nJyB8fCBpc0Z1bmN0aW9uKGV4cHJlc3Npb25Qcm9wZXJ0eSkpIHtcbiAgICAgICAgICBmaWVsZC5fZXhwcmVzc2lvblByb3BlcnRpZXNba2V5XSA9IHtcbiAgICAgICAgICAgIGV4cHJlc3Npb246IHRoaXMuX2V2YWxFeHByZXNzaW9uKFxuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0eSxcbiAgICAgICAgICAgICAga2V5ID09PSAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJyAmJiBmaWVsZC5wYXJlbnQuZXhwcmVzc2lvblByb3BlcnRpZXMgJiYgZmllbGQucGFyZW50LmV4cHJlc3Npb25Qcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KCd0ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQnKVxuICAgICAgICAgICAgICAgID8gKCkgPT4gZmllbGQucGFyZW50LnRlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZFxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmIChrZXkgPT09ICd0ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQnKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZmllbGQuX2V4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0sICdleHByZXNzaW9uVmFsdWUnLCB7XG4gICAgICAgICAgICAgIGdldDogKCkgPT4gZmllbGQudGVtcGxhdGVPcHRpb25zLmRpc2FibGVkLFxuICAgICAgICAgICAgICBzZXQ6ICgpID0+IHsgfSxcbiAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV4cHJlc3Npb25Qcm9wZXJ0eSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgICBjb25zdCBzdWJzY3JpYmUgPSAoKSA9PiAoZXhwcmVzc2lvblByb3BlcnR5IGFzIE9ic2VydmFibGU8YW55PilcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodiA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0RXhwclZhbHVlKGZpZWxkLCBrZXksIHYpO1xuICAgICAgICAgICAgICBpZiAoZmllbGQub3B0aW9ucyAmJiBmaWVsZC5vcHRpb25zLl9tYXJrRm9yQ2hlY2spIHtcbiAgICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLl9tYXJrRm9yQ2hlY2soZmllbGQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgIGxldCBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IHN1YnNjcmliZSgpO1xuICAgICAgICAgIGNvbnN0IG9uSW5pdCA9IGZpZWxkLmhvb2tzLm9uSW5pdDtcbiAgICAgICAgICBmaWVsZC5ob29rcy5vbkluaXQgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoc3Vic2NyaXB0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICAgIHN1YnNjcmlwdGlvbiA9IHN1YnNjcmliZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9uSW5pdCAmJiBvbkluaXQoZmllbGQpO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBvbkRlc3Ryb3kgPSBmaWVsZC5ob29rcy5vbkRlc3Ryb3k7XG4gICAgICAgICAgZmllbGQuaG9va3Mub25EZXN0cm95ID0gKCkgPT4ge1xuICAgICAgICAgICAgb25EZXN0cm95ICYmIG9uRGVzdHJveShmaWVsZCk7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmaWVsZC5oaWRlRXhwcmVzc2lvbikge1xuICAgICAgLy8gZGVsZXRlIGhpZGUgdmFsdWUgaW4gb3JkZXIgdG8gZm9yY2UgcmUtZXZhbHVhdGUgaXQgaW4gRm9ybWx5Rm9ybUV4cHJlc3Npb24uXG4gICAgICBkZWxldGUgZmllbGQuaGlkZTtcblxuICAgICAgZmllbGQuaGlkZUV4cHJlc3Npb24gPSB0aGlzLl9ldmFsRXhwcmVzc2lvbihcbiAgICAgICAgJ2hpZGUnLFxuICAgICAgICBmaWVsZC5oaWRlRXhwcmVzc2lvbixcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGxldCByb290ID0gZmllbGQucGFyZW50O1xuICAgICAgICAgIHdoaWxlIChyb290LnBhcmVudCAmJiAhcm9vdC5oaWRlKSB7XG4gICAgICAgICAgICByb290ID0gcm9vdC5wYXJlbnQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJvb3QuaGlkZTtcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdyYXBQcm9wZXJ0eShmaWVsZCwgJ2hpZGUnLCAoeyBjdXJyZW50VmFsdWUsIGZpcnN0Q2hhbmdlIH0pID0+IHtcbiAgICAgICAgZmllbGQuX2hpZGUgPSBjdXJyZW50VmFsdWU7XG4gICAgICAgIGlmICghZmlyc3RDaGFuZ2UgfHwgKGZpcnN0Q2hhbmdlICYmIGN1cnJlbnRWYWx1ZSA9PT0gdHJ1ZSkpIHtcbiAgICAgICAgICBmaWVsZC5vcHRpb25zLl9oaWRkZW5GaWVsZHNGb3JDaGVjay5wdXNoKGZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZXZhbEV4cHJlc3Npb24ocHJvcDogc3RyaW5nLCBleHByZXNzaW9uLCBwYXJlbnRFeHByZXNzaW9uPykge1xuICAgIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHR5cGVvZiBleHByZXNzaW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGV4cHJlc3Npb24gPSBldmFsU3RyaW5nRXhwcmVzc2lvbihleHByZXNzaW9uLCBbJ21vZGVsJywgJ2Zvcm1TdGF0ZScsICdmaWVsZCddKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgZXhwcmVzc2lvbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGV4cHJlc3Npb24gPSAoKSA9PiAhIWV4cHJlc3Npb247XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKHBhcmVudEV4cHJlc3Npb24gJiYgcGFyZW50RXhwcmVzc2lvbigpKSB8fCBleHByZXNzaW9uKC4uLmFyZ3MpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBbRm9ybWx5IEVycm9yXSBbRXhwcmVzc2lvbiBcIiR7cHJvcH1cIl0gJHtlcnJvci5tZXNzYWdlfWA7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRmllbGQoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUsIGlnbm9yZUNhY2hlID0gZmFsc2UpIHtcbiAgICBjb25zdCBmaWVsZENoYW5nZWQgPSB0aGlzLl9jaGVja0ZpZWxkKGZpZWxkLCBpZ25vcmVDYWNoZSk7XG5cbiAgICBmaWVsZC5vcHRpb25zLl9oaWRkZW5GaWVsZHNGb3JDaGVja1xuICAgICAgLnNvcnQoZiA9PiBmLmhpZGUgPyAtMSA6IDEpXG4gICAgICAuZm9yRWFjaChmID0+IHRoaXMudG9nZ2xlRm9ybUNvbnRyb2woZiwgISFmLmhpZGUsICFpZ25vcmVDYWNoZSkpO1xuXG4gICAgZmllbGQub3B0aW9ucy5faGlkZGVuRmllbGRzRm9yQ2hlY2sgPSBbXTtcbiAgICBpZiAoZmllbGRDaGFuZ2VkKSB7XG4gICAgICB0aGlzLmNoZWNrRmllbGQoZmllbGQpO1xuICAgICAgaWYgKGZpZWxkLm9wdGlvbnMgJiYgZmllbGQub3B0aW9ucy5fbWFya0ZvckNoZWNrKSB7XG4gICAgICAgIGZpZWxkLm9wdGlvbnMuX21hcmtGb3JDaGVjayhmaWVsZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2hlY2tGaWVsZChmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSwgaWdub3JlQ2FjaGUgPSBmYWxzZSkge1xuICAgIGxldCBmaWVsZENoYW5nZWQgPSBmYWxzZTtcbiAgICBmaWVsZC5maWVsZEdyb3VwLmZvckVhY2goZiA9PiB7XG4gICAgICBpZiAoIWYub3B0aW9ucykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2hlY2tGaWVsZEV4cHJlc3Npb25DaGFuZ2UoZiwgaWdub3JlQ2FjaGUpICYmIChmaWVsZENoYW5nZWQgPSB0cnVlKTtcbiAgICAgIGlmICh0aGlzLmNoZWNrRmllbGRWaXNpYmlsaXR5Q2hhbmdlKGYsIGlnbm9yZUNhY2hlKSkge1xuICAgICAgICBmaWVsZC5vcHRpb25zLl9oaWRkZW5GaWVsZHNGb3JDaGVjay5wdXNoKGYpO1xuICAgICAgICBmaWVsZENoYW5nZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAoZi5maWVsZEdyb3VwICYmIGYuZmllbGRHcm91cC5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuX2NoZWNrRmllbGQoZiwgaWdub3JlQ2FjaGUpICYmIChmaWVsZENoYW5nZWQgPSB0cnVlKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBmaWVsZENoYW5nZWQ7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRmllbGRFeHByZXNzaW9uQ2hhbmdlKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlLCBpZ25vcmVDYWNoZSk6IGJvb2xlYW4ge1xuICAgIGlmICghZmllbGQgfHwgIWZpZWxkLl9leHByZXNzaW9uUHJvcGVydGllcykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGxldCBtYXJrRm9yQ2hlY2sgPSBmYWxzZTtcbiAgICBjb25zdCBleHByZXNzaW9uUHJvcGVydGllcyA9IGZpZWxkLl9leHByZXNzaW9uUHJvcGVydGllcztcblxuICAgIGZvciAoY29uc3Qga2V5IGluIGV4cHJlc3Npb25Qcm9wZXJ0aWVzKSB7XG4gICAgICBsZXQgZXhwcmVzc2lvblZhbHVlID0gZXZhbEV4cHJlc3Npb24oZXhwcmVzc2lvblByb3BlcnRpZXNba2V5XS5leHByZXNzaW9uLCB7IGZpZWxkIH0sIFtmaWVsZC5tb2RlbCwgZmllbGQub3B0aW9ucy5mb3JtU3RhdGUsIGZpZWxkLCBpZ25vcmVDYWNoZV0pO1xuICAgICAgaWYgKGtleSA9PT0gJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCcpIHtcbiAgICAgICAgZXhwcmVzc2lvblZhbHVlID0gISFleHByZXNzaW9uVmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgaWdub3JlQ2FjaGUgfHwgKFxuICAgICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0uZXhwcmVzc2lvblZhbHVlICE9PSBleHByZXNzaW9uVmFsdWVcbiAgICAgICAgICAmJiAoXG4gICAgICAgICAgICAhKGlzT2JqZWN0KGV4cHJlc3Npb25WYWx1ZSkgfHwgaXNGdW5jdGlvbihleHByZXNzaW9uVmFsdWUpKVxuICAgICAgICAgICAgfHwgKFxuICAgICAgICAgICAgICBpc0Z1bmN0aW9uKGV4cHJlc3Npb25WYWx1ZSlcbiAgICAgICAgICAgICAgJiYgKCcnICsgZXhwcmVzc2lvblByb3BlcnRpZXNba2V5XS5leHByZXNzaW9uVmFsdWUgIT09ICcnICsgZXhwcmVzc2lvblZhbHVlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgfHwgaXNPYnNlcnZhYmxlKGV4cHJlc3Npb25WYWx1ZSlcbiAgICAgICAgICAgIHx8IEpTT04uc3RyaW5naWZ5KGV4cHJlc3Npb25WYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGV4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0uZXhwcmVzc2lvblZhbHVlKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKSB7XG4gICAgICAgIG1hcmtGb3JDaGVjayA9IHRydWU7XG4gICAgICAgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzW2tleV0uZXhwcmVzc2lvblZhbHVlID0gZXhwcmVzc2lvblZhbHVlO1xuICAgICAgICB0aGlzLnNldEV4cHJWYWx1ZShmaWVsZCwga2V5LCBleHByZXNzaW9uVmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtYXJrRm9yQ2hlY2s7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRmllbGRWaXNpYmlsaXR5Q2hhbmdlKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlLCBpZ25vcmVDYWNoZSk6IGJvb2xlYW4ge1xuICAgIGlmICghZmllbGQgfHwgaXNOdWxsT3JVbmRlZmluZWQoZmllbGQuaGlkZUV4cHJlc3Npb24pKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgaGlkZUV4cHJlc3Npb25SZXN1bHQ6IGJvb2xlYW4gPSAhIWV2YWxFeHByZXNzaW9uKFxuICAgICAgZmllbGQuaGlkZUV4cHJlc3Npb24sXG4gICAgICB7IGZpZWxkIH0sXG4gICAgICBbZmllbGQubW9kZWwsIGZpZWxkLm9wdGlvbnMuZm9ybVN0YXRlLCBmaWVsZCwgaWdub3JlQ2FjaGVdLFxuICAgICk7XG4gICAgbGV0IG1hcmtGb3JDaGVjayA9IGZhbHNlO1xuICAgIGlmIChoaWRlRXhwcmVzc2lvblJlc3VsdCAhPT0gZmllbGQuaGlkZSB8fCBpZ25vcmVDYWNoZSkge1xuICAgICAgbWFya0ZvckNoZWNrID0gdHJ1ZTtcbiAgICAgIC8vIHRvZ2dsZSBoaWRlXG4gICAgICBmaWVsZC5oaWRlID0gaGlkZUV4cHJlc3Npb25SZXN1bHQ7XG4gICAgICBmaWVsZC50ZW1wbGF0ZU9wdGlvbnMuaGlkZGVuID0gaGlkZUV4cHJlc3Npb25SZXN1bHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hcmtGb3JDaGVjaztcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGlzYWJsZWRTdGF0ZShmaWVsZDogRm9ybWx5RmllbGRDb25maWcsIHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKGZpZWxkLmZpZWxkR3JvdXApIHtcbiAgICAgIGZpZWxkLmZpZWxkR3JvdXBcbiAgICAgICAgLmZpbHRlcihmID0+ICFmLmV4cHJlc3Npb25Qcm9wZXJ0aWVzIHx8ICFmLmV4cHJlc3Npb25Qcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KCd0ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQnKSlcbiAgICAgICAgLmZvckVhY2goZiA9PiB0aGlzLnNldERpc2FibGVkU3RhdGUoZiwgdmFsdWUpKTtcbiAgICB9XG5cbiAgICBpZiAoZmllbGQua2V5ICYmIGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCAhPT0gdmFsdWUpIHtcbiAgICAgIGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlRm9ybUNvbnRyb2woZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUsIGhpZGU6IGJvb2xlYW4sIHJlc2V0T25IaWRlOiBib29sZWFuKSB7XG4gICAgaWYgKGZpZWxkLmZpZWxkR3JvdXApIHtcbiAgICAgIGZpZWxkLmZpZWxkR3JvdXBcbiAgICAgICAgLmZpbHRlcihmID0+ICFmLmhpZGVFeHByZXNzaW9uKVxuICAgICAgICAuZm9yRWFjaChmID0+IHRoaXMudG9nZ2xlRm9ybUNvbnRyb2woZiwgaGlkZSwgcmVzZXRPbkhpZGUpKTtcbiAgICB9XG5cbiAgICBpZiAoZmllbGQuZm9ybUNvbnRyb2wgJiYgZmllbGQua2V5KSB7XG4gICAgICBkZWZpbmVIaWRkZW5Qcm9wKGZpZWxkLCAnX2hpZGUnLCAhIShoaWRlIHx8IGZpZWxkLmhpZGUpKTtcbiAgICAgIGNvbnN0IGMgPSBmaWVsZC5mb3JtQ29udHJvbDtcbiAgICAgIGlmIChjWydfZmllbGRzJ10gJiYgY1snX2ZpZWxkcyddLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdXBkYXRlVmFsaWRpdHkoYyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChoaWRlID09PSB0cnVlICYmICghY1snX2ZpZWxkcyddIHx8IGNbJ19maWVsZHMnXS5ldmVyeShmID0+ICEhZi5faGlkZSkpKSB7XG4gICAgICAgIHVucmVnaXN0ZXJDb250cm9sKGZpZWxkLCB0cnVlKTtcbiAgICAgICAgaWYgKHJlc2V0T25IaWRlICYmIGZpZWxkLnJlc2V0T25IaWRlKSB7XG4gICAgICAgICAgZmllbGQuZm9ybUNvbnRyb2wucmVzZXQoeyB2YWx1ZTogdW5kZWZpbmVkLCBkaXNhYmxlZDogZmllbGQuZm9ybUNvbnRyb2wuZGlzYWJsZWQgfSk7XG4gICAgICAgICAgaWYgKGZpZWxkLmZpZWxkR3JvdXApIHtcbiAgICAgICAgICAgIGFzc2lnbkZpZWxkVmFsdWUoZmllbGQsIHVuZGVmaW5lZCk7XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC5mb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgICAgICAgICAgICBmaWVsZC5maWVsZEdyb3VwLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGhpZGUgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChmaWVsZC5yZXNldE9uSGlkZSAmJiBmaWVsZC5wYXJlbnQgJiYgIWlzVW5kZWZpbmVkKGZpZWxkLmRlZmF1bHRWYWx1ZSkgJiYgaXNVbmRlZmluZWQoZ2V0RmllbGRWYWx1ZShmaWVsZCkpKSB7XG4gICAgICAgICAgYXNzaWduRmllbGRWYWx1ZShmaWVsZCwgZmllbGQuZGVmYXVsdFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZWdpc3RlckNvbnRyb2woZmllbGQsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIGlmIChmaWVsZC5yZXNldE9uSGlkZSAmJiBmaWVsZC5maWVsZEFycmF5ICYmIChmaWVsZC5maWVsZEdyb3VwIHx8IFtdKS5sZW5ndGggIT09IChmaWVsZC5tb2RlbCB8fCBbXSkubGVuZ3RoKSB7XG4gICAgICAgICAgKDxhbnk+IGZpZWxkLm9wdGlvbnMpLl9idWlsZEZvcm0odHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZmllbGQub3B0aW9ucy5maWVsZENoYW5nZXMpIHtcbiAgICAgIGZpZWxkLm9wdGlvbnMuZmllbGRDaGFuZ2VzLm5leHQoPEZvcm1seVZhbHVlQ2hhbmdlRXZlbnQ+IHsgZmllbGQsIHR5cGU6ICdoaWRkZW4nLCB2YWx1ZTogaGlkZSB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEV4cHJWYWx1ZShmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSwgcHJvcDogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCB0YXJnZXQgPSBmaWVsZDtcbiAgICAgIGNvbnN0IHBhdGhzID0gcHJvcC5pbmRleE9mKCdbJykgPT09IC0xXG4gICAgICAgID8gcHJvcC5zcGxpdCgnLicpXG4gICAgICAgIDogcHJvcFxuICAgICAgICAgIC5yZXBsYWNlKC9cXCd8XFxcIi9nLCAnJylcbiAgICAgICAgICAuc3BsaXQoL1tbXFxdXXsxLDJ9LykgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzIwMTk4MjA2XG4gICAgICAgICAgLmZpbHRlcih2ID0+IHYpXG4gICAgICA7XG4gICAgICBjb25zdCBsYXN0SW5kZXggPSBwYXRocy5sZW5ndGggLSAxO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsYXN0SW5kZXg7IGkrKykge1xuICAgICAgICB0YXJnZXQgPSB0YXJnZXRbcGF0aHNbaV1dO1xuICAgICAgfVxuXG4gICAgICB0YXJnZXRbcGF0aHNbbGFzdEluZGV4XV0gPSB2YWx1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgZXJyb3IubWVzc2FnZSA9IGBbRm9ybWx5IEVycm9yXSBbRXhwcmVzc2lvbiBcIiR7cHJvcH1cIl0gJHtlcnJvci5tZXNzYWdlfWA7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICBpZiAocHJvcCA9PT0gJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCcgJiYgZmllbGQua2V5KSB7XG4gICAgICB0aGlzLnNldERpc2FibGVkU3RhdGUoZmllbGQsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcC5pbmRleE9mKCdtb2RlbC4nKSA9PT0gMCkge1xuICAgICAgY29uc3QgcGF0aCA9IHByb3AucmVwbGFjZSgvXm1vZGVsXFwuLywgJycpLFxuICAgICAgICBjb250cm9sID0gZmllbGQua2V5ICYmIHByb3AgPT09IHBhdGggPyBmaWVsZC5mb3JtQ29udHJvbCA6IGZpZWxkLnBhcmVudC5mb3JtQ29udHJvbC5nZXQocGF0aCk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgY29udHJvbFxuICAgICAgICAmJiAhKGlzTnVsbE9yVW5kZWZpbmVkKGNvbnRyb2wudmFsdWUpICYmIGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKSlcbiAgICAgICAgJiYgY29udHJvbC52YWx1ZSAhPT0gdmFsdWVcbiAgICAgICkge1xuICAgICAgICBjb250cm9sLnBhdGNoVmFsdWUodmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZW1pdEV4cHJlc3Npb25DaGFuZ2VzKGZpZWxkLCBwcm9wLCB2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRFeHByZXNzaW9uQ2hhbmdlcyhmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSwgcHJvcGVydHk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGlmICghZmllbGQub3B0aW9ucy5maWVsZENoYW5nZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBmaWVsZC5vcHRpb25zLmZpZWxkQ2hhbmdlcy5uZXh0KHtcbiAgICAgIGZpZWxkOiBmaWVsZCxcbiAgICAgIHR5cGU6ICdleHByZXNzaW9uQ2hhbmdlcycsXG4gICAgICBwcm9wZXJ0eSxcbiAgICAgIHZhbHVlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -13,13 +13,18 @@ import { getKeyPath, getFieldValue, isNullOrUndefined, defineHiddenProp, wrapPro
|
|
|
13
13
|
export function unregisterControl(field, emitEvent) {
|
|
14
14
|
if (emitEvent === void 0) { emitEvent = false; }
|
|
15
15
|
/** @type {?} */
|
|
16
|
-
var
|
|
16
|
+
var control = field.formControl;
|
|
17
|
+
/** @type {?} */
|
|
18
|
+
var fieldIndex = control['_fields'] ? control['_fields'].indexOf(field) : -1;
|
|
19
|
+
if (fieldIndex !== -1) {
|
|
20
|
+
control['_fields'].splice(fieldIndex, 1);
|
|
21
|
+
}
|
|
22
|
+
/** @type {?} */
|
|
23
|
+
var form = (/** @type {?} */ (control.parent));
|
|
17
24
|
if (!form) {
|
|
18
25
|
return;
|
|
19
26
|
}
|
|
20
27
|
/** @type {?} */
|
|
21
|
-
var control = field.formControl;
|
|
22
|
-
/** @type {?} */
|
|
23
28
|
var opts = { emitEvent: emitEvent };
|
|
24
29
|
if (form instanceof FormArray) {
|
|
25
30
|
/** @type {?} */
|
|
@@ -206,6 +211,8 @@ function updateControl(form, opts, action) {
|
|
|
206
211
|
*/
|
|
207
212
|
export function clearControl(form) {
|
|
208
213
|
form['_fields'] && delete form['_fields'];
|
|
214
|
+
form.setValidators(null);
|
|
215
|
+
form.setAsyncValidators(null);
|
|
209
216
|
if (form instanceof FormGroup || form instanceof FormArray) {
|
|
210
217
|
Object.keys(form.controls)
|
|
211
218
|
.forEach((/**
|
|
@@ -215,4 +222,4 @@ export function clearControl(form) {
|
|
|
215
222
|
function (k) { return clearControl(form.controls[k]); }));
|
|
216
223
|
}
|
|
217
224
|
}
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4LWZvcm1seS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2V4dGVuc2lvbnMvZmllbGQtZm9ybS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRixPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7OztBQUkzRyxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBd0IsRUFBRSxTQUFpQjtJQUFqQiwwQkFBQSxFQUFBLGlCQUFpQjs7UUFDckUsSUFBSSxHQUFHLG1CQUFBLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUF5QjtJQUM5RCxJQUFJLENBQUMsSUFBSSxFQUFFO1FBQ1QsT0FBTztLQUNSOztRQUVLLE9BQU8sR0FBRyxLQUFLLENBQUMsV0FBVzs7UUFDM0IsSUFBSSxHQUFHLEVBQUUsU0FBUyxXQUFBLEVBQUU7SUFDMUIsSUFBSSxJQUFJLFlBQVksU0FBUyxFQUFFOztZQUN2QixLQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLEtBQUssT0FBTyxFQUFiLENBQWEsRUFBQztRQUN2RCxJQUFJLEtBQUcsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNkLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSTs7O1lBQUUsY0FBTSxPQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBRyxDQUFDLEVBQWxCLENBQWtCLEVBQUMsQ0FBQztTQUNyRDtLQUNGO1NBQU0sSUFBSSxJQUFJLFlBQVksU0FBUyxFQUFFOztZQUM5QixLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQzs7WUFDekIsS0FBRyxHQUFHLEtBQUssQ0FB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QyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JFLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQUU7UUFDNUIsSUFBSSxDQUFDLHNCQUFzQjs7OztRQUFHLFVBQUMsSUFBSTtZQUNqQyxzQkFBc0Isc0JBQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLElBQUUsU0FBUyxFQUFFLEtBQUssSUFBRyxDQUFDO1FBQ2hFLENBQUMsQ0FBQSxDQUFDO0tBQ0g7SUFFRCxNQUFNLEVBQUUsQ0FBQztJQUVULElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQUU7UUFDNUIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHNCQUFzQixDQUFDO0tBQ3REO0FBQ0gsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQXFCO0lBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxJQUFJLElBQUksWUFBWSxTQUFTLElBQUksSUFBSSxZQUFZLFNBQVMsRUFBRTtRQUMxRCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDdkIsT0FBTzs7OztRQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBOUIsQ0FBOEIsRUFBQyxDQUFDO0tBQ25EO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IGdldEtleVBhdGgsIGdldEZpZWxkVmFsdWUsIGlzTnVsbE9yVW5kZWZpbmVkLCBkZWZpbmVIaWRkZW5Qcm9wLCB3cmFwUHJvcGVydHkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9mb3JtbHkuZmllbGQuY29uZmlnJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gdW5yZWdpc3RlckNvbnRyb2woZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBlbWl0RXZlbnQgPSBmYWxzZSkge1xuICBjb25zdCBmb3JtID0gZmllbGQuZm9ybUNvbnRyb2wucGFyZW50IGFzIEZvcm1BcnJheSB8IEZvcm1Hcm91cDtcbiAgaWYgKCFmb3JtKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY29udHJvbCA9IGZpZWxkLmZvcm1Db250cm9sO1xuICBjb25zdCBvcHRzID0geyBlbWl0RXZlbnQgfTtcbiAgaWYgKGZvcm0gaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICBjb25zdCBrZXkgPSBmb3JtLmNvbnRyb2xzLmZpbmRJbmRleChjID0+IGMgPT09IGNvbnRyb2wpO1xuICAgIGlmIChrZXkgIT09IC0xKSB7XG4gICAgICB1cGRhdGVDb250cm9sKGZvcm0sIG9wdHMsICgpID0+IGZvcm0ucmVtb3ZlQXQoa2V5KSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGZvcm0gaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICBjb25zdCBwYXRocyA9IGdldEtleVBhdGgoZmllbGQpO1xuICAgIGNvbnN0IGtleSA9IHBhdGhzW3BhdGhzLmxlbmd0aCAtIDFdO1xuICAgIGlmIChmb3JtLmdldChba2V5XSkgPT09IGNvbnRyb2wpIHtcbiAgICAgIHVwZGF0ZUNvbnRyb2woZm9ybSwgb3B0cywgKCkgPT4gZm9ybS5yZW1vdmVDb250cm9sKGtleSkpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnRyb2wuc2V0UGFyZW50KG51bGwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZENvbnRyb2woZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogQWJzdHJhY3RDb250cm9sIHtcbiAgaWYgKGZpZWxkLmZvcm1Db250cm9sKSB7XG4gICAgcmV0dXJuIGZpZWxkLmZvcm1Db250cm9sO1xuICB9XG5cbiAgaWYgKGZpZWxkWydzaGFyZUZvcm1Db250cm9sJ10gPT09IGZhbHNlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBmb3JtID0gZmllbGQucGFyZW50LmZvcm1Db250cm9sIGFzIEZvcm1Hcm91cDtcblxuICByZXR1cm4gZm9ybSA/IGZvcm0uZ2V0KGdldEtleVBhdGgoZmllbGQpKSA6IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckNvbnRyb2woZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUsIGNvbnRyb2w/OiBhbnksIGVtaXRFdmVudCA9IGZhbHNlKSB7XG4gIGNvbnRyb2wgPSBjb250cm9sIHx8IGZpZWxkLmZvcm1Db250cm9sO1xuICBpZiAoIWNvbnRyb2xbJ19maWVsZHMnXSkge1xuICAgIGRlZmluZUhpZGRlblByb3AoY29udHJvbCwgJ19maWVsZHMnLCBbXSk7XG4gIH1cbiAgaWYgKGNvbnRyb2xbJ19maWVsZHMnXS5pbmRleE9mKGZpZWxkKSA9PT0gLTEpIHtcbiAgICBjb250cm9sWydfZmllbGRzJ10ucHVzaChmaWVsZCk7XG4gIH1cblxuICBpZiAoIWZpZWxkLmZvcm1Db250cm9sICYmIGNvbnRyb2wpIHtcbiAgICBkZWZpbmVIaWRkZW5Qcm9wKGZpZWxkLCAnZm9ybUNvbnRyb2wnLCBjb250cm9sKTtcbiAgICBjb250cm9sLnNldFZhbGlkYXRvcnMobnVsbCk7XG4gICAgY29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnMobnVsbCk7XG5cbiAgICBmaWVsZC50ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQgPSAhIWZpZWxkLnRlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZDtcbiAgICB3cmFwUHJvcGVydHkoZmllbGQudGVtcGxhdGVPcHRpb25zLCAnZGlzYWJsZWQnLCAoeyBmaXJzdENoYW5nZSwgY3VycmVudFZhbHVlIH0pID0+IHtcbiAgICAgIGlmICghZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgY3VycmVudFZhbHVlID8gZmllbGQuZm9ybUNvbnRyb2wuZGlzYWJsZSgpIDogZmllbGQuZm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKGNvbnRyb2wucmVnaXN0ZXJPbkRpc2FibGVkQ2hhbmdlKSB7XG4gICAgICBjb250cm9sLnJlZ2lzdGVyT25EaXNhYmxlZENoYW5nZShcbiAgICAgICAgKHZhbHVlOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgZmllbGQudGVtcGxhdGVPcHRpb25zWydfX18kZGlzYWJsZWQnXSA9IHZhbHVlO1xuICAgICAgICAgIC8vIFRPRE8gcmVtb3ZlIGluIFY2XG4gICAgICAgICAgZmllbGQub3B0aW9ucyAmJiBmaWVsZC5vcHRpb25zLl9tYXJrRm9yQ2hlY2soZmllbGQpO1xuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBsZXQgcGFyZW50ID0gZmllbGQucGFyZW50LmZvcm1Db250cm9sIGFzIEZvcm1Hcm91cDtcbiAgaWYgKCFwYXJlbnQgfHwgIWZpZWxkLmtleSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHBhdGhzID0gZ2V0S2V5UGF0aChmaWVsZCk7XG4gIGNvbnN0IHZhbHVlID0gZ2V0RmllbGRWYWx1ZShmaWVsZCk7XG4gIGlmIChcbiAgICAhKGlzTnVsbE9yVW5kZWZpbmVkKGNvbnRyb2wudmFsdWUpICYmIGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlKSlcbiAgICAmJiBjb250cm9sLnZhbHVlICE9PSB2YWx1ZVxuICAgICYmIGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQ29udHJvbFxuICApIHtcbiAgICBjb250cm9sLnBhdGNoVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCAocGF0aHMubGVuZ3RoIC0gMSk7IGkrKykge1xuICAgIGNvbnN0IHBhdGggPSBwYXRoc1tpXTtcbiAgICBpZiAoIXBhcmVudC5nZXQoW3BhdGhdKSkge1xuICAgICAgdXBkYXRlQ29udHJvbChcbiAgICAgICAgcGFyZW50LFxuICAgICAgICB7IGVtaXRFdmVudCB9LFxuICAgICAgICAoKSA9PiBwYXJlbnQuc2V0Q29udHJvbChwYXRoLCBuZXcgRm9ybUdyb3VwKHt9KSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHBhcmVudCA9IDxGb3JtR3JvdXA+IHBhcmVudC5nZXQoW3BhdGhdKTtcbiAgfVxuXG4gIGNvbnN0IGtleSA9IHBhdGhzW3BhdGhzLmxlbmd0aCAtIDFdO1xuICBpZiAoIWZpZWxkLl9oaWRlICYmIHBhcmVudC5nZXQoW2tleV0pICE9PSBjb250cm9sKSB7XG4gICAgdXBkYXRlQ29udHJvbChcbiAgICAgIHBhcmVudCxcbiAgICAgIHsgZW1pdEV2ZW50IH0sXG4gICAgICAoKSA9PiBwYXJlbnQuc2V0Q29udHJvbChrZXksIGNvbnRyb2wpLFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVZhbGlkaXR5KGM6IEFic3RyYWN0Q29udHJvbCkge1xuICBjb25zdCBzdGF0dXMgPSBjLnN0YXR1cztcbiAgYy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgaWYgKHN0YXR1cyAhPT0gYy5zdGF0dXMpIHtcbiAgICAoYy5zdGF0dXNDaGFuZ2VzIGFzIEV2ZW50RW1pdHRlcjxzdHJpbmc+KS5lbWl0KGMuc3RhdHVzKTtcbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVDb250cm9sKGZvcm06IEZvcm1Hcm91cHxGb3JtQXJyYXksIG9wdHM6IHsgZW1pdEV2ZW50OiBib29sZWFuIH0sIGFjdGlvbjogRnVuY3Rpb24pIHtcbiAgLyoqXG4gICAqICB3b3JrYXJvdW5kIGZvciBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8yNzY3OVxuICAgKi9cbiAgaWYgKGZvcm0gaW5zdGFuY2VvZiBGb3JtR3JvdXAgJiYgIWZvcm1bJ19fcGF0Y2hGb3JFYWNoQ2hpbGQnXSkge1xuICAgIGRlZmluZUhpZGRlblByb3AoZm9ybSwgJ19fcGF0Y2hGb3JFYWNoQ2hpbGQnLCB0cnVlKTtcbiAgICAoZm9ybSBhcyBhbnkpLl9mb3JFYWNoQ2hpbGQgPSAoY2I6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICBPYmplY3RcbiAgICAgICAgLmtleXMoZm9ybS5jb250cm9scylcbiAgICAgICAgLmZvckVhY2goayA9PiBmb3JtLmNvbnRyb2xzW2tdICYmIGNiKGZvcm0uY29udHJvbHNba10sIGspKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIHdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzIwNDM5XG4gICAqL1xuICBjb25zdCB1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5ID0gZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5LmJpbmQoZm9ybSk7XG4gIGlmIChvcHRzLmVtaXRFdmVudCA9PT0gZmFsc2UpIHtcbiAgICBmb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkgPSAob3B0cykgPT4ge1xuICAgICAgdXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IC4uLihvcHRzIHx8IHt9KSwgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9O1xuICB9XG5cbiAgYWN0aW9uKCk7XG5cbiAgaWYgKG9wdHMuZW1pdEV2ZW50ID09PSBmYWxzZSkge1xuICAgIGZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSA9IHVwZGF0ZVZhbHVlQW5kVmFsaWRpdHk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyQ29udHJvbChmb3JtOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgZm9ybVsnX2ZpZWxkcyddICYmIGRlbGV0ZSBmb3JtWydfZmllbGRzJ107XG4gIGlmIChmb3JtIGluc3RhbmNlb2YgRm9ybUdyb3VwIHx8IGZvcm0gaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICBPYmplY3Qua2V5cyhmb3JtLmNvbnRyb2xzKVxuICAgICAgLmZvckVhY2goKGspID0+IGNsZWFyQ29udHJvbChmb3JtLmNvbnRyb2xzW2tdKSk7XG4gIH1cbn1cbiJdfQ==
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4LWZvcm1seS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2V4dGVuc2lvbnMvZmllbGQtZm9ybS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRixPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7OztBQUkzRyxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBd0IsRUFBRSxTQUFpQjtJQUFqQiwwQkFBQSxFQUFBLGlCQUFpQjs7UUFDckUsT0FBTyxHQUFHLEtBQUssQ0FBQyxXQUFXOztRQUMzQixVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsSUFBSSxVQUFVLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDckIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7S0FDMUM7O1FBRUssSUFBSSxHQUFHLG1CQUFBLE9BQU8sQ0FBQyxNQUFNLEVBQXlCO0lBQ3BELElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDVCxPQUFPO0tBQ1I7O1FBRUssSUFBSSxHQUFHLEVBQUUsU0FBUyxXQUFBLEVBQUU7SUFDMUIsSUFBSSxJQUFJLFlBQVksU0FBUyxFQUFFOztZQUN2QixLQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLEtBQUssT0FBTyxFQUFiLENBQWEsRUFBQztRQUN2RCxJQUFJLEtBQUcsS0FB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RUFBOUIsQ0FBOEIsRUFBQyxDQUFDO0tBQ25EO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IGdldEtleVBhdGgsIGdldEZpZWxkVmFsdWUsIGlzTnVsbE9yVW5kZWZpbmVkLCBkZWZpbmVIaWRkZW5Qcm9wLCB3cmFwUHJvcGVydHkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9mb3JtbHkuZmllbGQuY29uZmlnJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gdW5yZWdpc3RlckNvbnRyb2woZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBlbWl0RXZlbnQgPSBmYWxzZSkge1xuICBjb25zdCBjb250cm9sID0gZmllbGQuZm9ybUNvbnRyb2w7XG4gIGNvbnN0IGZpZWxkSW5kZXggPSBjb250cm9sWydfZmllbGRzJ10gPyBjb250cm9sWydfZmllbGRzJ10uaW5kZXhPZihmaWVsZCkgOiAtMTtcbiAgaWYgKGZpZWxkSW5kZXggIT09IC0xKSB7XG4gICAgY29udHJvbFsnX2ZpZWxkcyddLnNwbGljZShmaWVsZEluZGV4LCAxKTtcbiAgfVxuXG4gIGNvbnN0IGZvcm0gPSBjb250cm9sLnBhcmVudCBhcyBGb3JtQXJyYXkgfCBGb3JtR3JvdXA7XG4gIGlmICghZm9ybSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG9wdHMgPSB7IGVtaXRFdmVudCB9O1xuICBpZiAoZm9ybSBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgIGNvbnN0IGtleSA9IGZvcm0uY29udHJvbHMuZmluZEluZGV4KGMgPT4gYyA9PT0gY29udHJvbCk7XG4gICAgaWYgKGtleSAhPT0gLTEpIHtcbiAgICAgIHVwZGF0ZUNvbnRyb2woZm9ybSwgb3B0cywgKCkgPT4gZm9ybS5yZW1vdmVBdChrZXkpKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoZm9ybSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgIGNvbnN0IHBhdGhzID0gZ2V0S2V5UGF0aChmaWVsZCk7XG4gICAgY29uc3Qga2V5ID0gcGF0aHNbcGF0aHMubGVuZ3RoIC0gMV07XG4gICAgaWYgKGZvcm0uZ2V0KFtrZXldKSA9PT0gY29udHJvbCkge1xuICAgICAgdXBkYXRlQ29udHJvbChmb3JtLCBvcHRzLCAoKSA9PiBmb3JtLnJlbW92ZUNvbnRyb2woa2V5KSk7XG4gICAgfVxuICB9XG5cbiAgY29udHJvbC5zZXRQYXJlbnQobnVsbCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQ29udHJvbChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpOiBBYnN0cmFjdENvbnRyb2wge1xuICBpZiAoZmllbGQuZm9ybUNvbnRyb2wpIHtcbiAgICByZXR1cm4gZmllbGQuZm9ybUNvbnRyb2w7XG4gIH1cblxuICBpZiAoZmllbGRbJ3NoYXJlRm9ybUNvbnRyb2wnXSA9PT0gZmFsc2UpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGZvcm0gPSBmaWVsZC5wYXJlbnQuZm9ybUNvbnRyb2wgYXMgRm9ybUdyb3VwO1xuXG4gIHJldHVybiBmb3JtID8gZm9ybS5nZXQoZ2V0S2V5UGF0aChmaWVsZCkpIDogbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQ29udHJvbChmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSwgY29udHJvbD86IGFueSwgZW1pdEV2ZW50ID0gZmFsc2UpIHtcbiAgY29udHJvbCA9IGNvbnRyb2wgfHwgZmllbGQuZm9ybUNvbnRyb2w7XG4gIGlmICghY29udHJvbFsnX2ZpZWxkcyddKSB7XG4gICAgZGVmaW5lSGlkZGVuUHJvcChjb250cm9sLCAnX2ZpZWxkcycsIFtdKTtcbiAgfVxuICBpZiAoY29udHJvbFsnX2ZpZWxkcyddLmluZGV4T2YoZmllbGQpID09PSAtMSkge1xuICAgIGNvbnRyb2xbJ19maWVsZHMnXS5wdXNoKGZpZWxkKTtcbiAgfVxuXG4gIGlmICghZmllbGQuZm9ybUNvbnRyb2wgJiYgY29udHJvbCkge1xuICAgIGRlZmluZUhpZGRlblByb3AoZmllbGQsICdmb3JtQ29udHJvbCcsIGNvbnRyb2wpO1xuICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhudWxsKTtcbiAgICBjb250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyhudWxsKTtcblxuICAgIGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCA9ICEhZmllbGQudGVtcGxhdGVPcHRpb25zLmRpc2FibGVkO1xuICAgIHdyYXBQcm9wZXJ0eShmaWVsZC50ZW1wbGF0ZU9wdGlvbnMsICdkaXNhYmxlZCcsICh7IGZpcnN0Q2hhbmdlLCBjdXJyZW50VmFsdWUgfSkgPT4ge1xuICAgICAgaWYgKCFmaXJzdENoYW5nZSkge1xuICAgICAgICBjdXJyZW50VmFsdWUgPyBmaWVsZC5mb3JtQ29udHJvbC5kaXNhYmxlKCkgOiBmaWVsZC5mb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAoY29udHJvbC5yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UpIHtcbiAgICAgIGNvbnRyb2wucmVnaXN0ZXJPbkRpc2FibGVkQ2hhbmdlKFxuICAgICAgICAodmFsdWU6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICBmaWVsZC50ZW1wbGF0ZU9wdGlvbnNbJ19fXyRkaXNhYmxlZCddID0gdmFsdWU7XG4gICAgICAgICAgLy8gVE9ETyByZW1vdmUgaW4gVjZcbiAgICAgICAgICBmaWVsZC5vcHRpb25zICYmIGZpZWxkLm9wdGlvbnMuX21hcmtGb3JDaGVjayhmaWVsZCk7XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGxldCBwYXJlbnQgPSBmaWVsZC5wYXJlbnQuZm9ybUNvbnRyb2wgYXMgRm9ybUdyb3VwO1xuICBpZiAoIXBhcmVudCB8fCAhZmllbGQua2V5KSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcGF0aHMgPSBnZXRLZXlQYXRoKGZpZWxkKTtcbiAgY29uc3QgdmFsdWUgPSBnZXRGaWVsZFZhbHVlKGZpZWxkKTtcbiAgaWYgKFxuICAgICEoaXNOdWxsT3JVbmRlZmluZWQoY29udHJvbC52YWx1ZSkgJiYgaXNOdWxsT3JVbmRlZmluZWQodmFsdWUpKVxuICAgICYmIGNvbnRyb2wudmFsdWUgIT09IHZhbHVlXG4gICAgJiYgY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Db250cm9sXG4gICkge1xuICAgIGNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IChwYXRocy5sZW5ndGggLSAxKTsgaSsrKSB7XG4gICAgY29uc3QgcGF0aCA9IHBhdGhzW2ldO1xuICAgIGlmICghcGFyZW50LmdldChbcGF0aF0pKSB7XG4gICAgICB1cGRhdGVDb250cm9sKFxuICAgICAgICBwYXJlbnQsXG4gICAgICAgIHsgZW1pdEV2ZW50IH0sXG4gICAgICAgICgpID0+IHBhcmVudC5zZXRDb250cm9sKHBhdGgsIG5ldyBGb3JtR3JvdXAoe30pKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcGFyZW50ID0gPEZvcm1Hcm91cD4gcGFyZW50LmdldChbcGF0aF0pO1xuICB9XG5cbiAgY29uc3Qga2V5ID0gcGF0aHNbcGF0aHMubGVuZ3RoIC0gMV07XG4gIGlmICghZmllbGQuX2hpZGUgJiYgcGFyZW50LmdldChba2V5XSkgIT09IGNvbnRyb2wpIHtcbiAgICB1cGRhdGVDb250cm9sKFxuICAgICAgcGFyZW50LFxuICAgICAgeyBlbWl0RXZlbnQgfSxcbiAgICAgICgpID0+IHBhcmVudC5zZXRDb250cm9sKGtleSwgY29udHJvbCksXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlVmFsaWRpdHkoYzogQWJzdHJhY3RDb250cm9sKSB7XG4gIGNvbnN0IHN0YXR1cyA9IGMuc3RhdHVzO1xuICBjLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICBpZiAoc3RhdHVzICE9PSBjLnN0YXR1cykge1xuICAgIChjLnN0YXR1c0NoYW5nZXMgYXMgRXZlbnRFbWl0dGVyPHN0cmluZz4pLmVtaXQoYy5zdGF0dXMpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZUNvbnRyb2woZm9ybTogRm9ybUdyb3VwfEZvcm1BcnJheSwgb3B0czogeyBlbWl0RXZlbnQ6IGJvb2xlYW4gfSwgYWN0aW9uOiBGdW5jdGlvbikge1xuICAvKipcbiAgICogIHdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzI3Njc5XG4gICAqL1xuICBpZiAoZm9ybSBpbnN0YW5jZW9mIEZvcm1Hcm91cCAmJiAhZm9ybVsnX19wYXRjaEZvckVhY2hDaGlsZCddKSB7XG4gICAgZGVmaW5lSGlkZGVuUHJvcChmb3JtLCAnX19wYXRjaEZvckVhY2hDaGlsZCcsIHRydWUpO1xuICAgIChmb3JtIGFzIGFueSkuX2ZvckVhY2hDaGlsZCA9IChjYjogRnVuY3Rpb24pID0+IHtcbiAgICAgIE9iamVjdFxuICAgICAgICAua2V5cyhmb3JtLmNvbnRyb2xzKVxuICAgICAgICAuZm9yRWFjaChrID0+IGZvcm0uY29udHJvbHNba10gJiYgY2IoZm9ybS5jb250cm9sc1trXSwgaykpO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogd29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMjA0MzlcbiAgICovXG4gIGNvbnN0IHVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkgPSBmb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkuYmluZChmb3JtKTtcbiAgaWYgKG9wdHMuZW1pdEV2ZW50ID09PSBmYWxzZSkge1xuICAgIGZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSA9IChvcHRzKSA9PiB7XG4gICAgICB1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgLi4uKG9wdHMgfHwge30pLCBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH07XG4gIH1cblxuICBhY3Rpb24oKTtcblxuICBpZiAob3B0cy5lbWl0RXZlbnQgPT09IGZhbHNlKSB7XG4gICAgZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5ID0gdXBkYXRlVmFsdWVBbmRWYWxpZGl0eTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJDb250cm9sKGZvcm06IEFic3RyYWN0Q29udHJvbCkge1xuICBmb3JtWydfZmllbGRzJ10gJiYgZGVsZXRlIGZvcm1bJ19maWVsZHMnXTtcbiAgZm9ybS5zZXRWYWxpZGF0b3JzKG51bGwpO1xuICBmb3JtLnNldEFzeW5jVmFsaWRhdG9ycyhudWxsKTtcbiAgaWYgKGZvcm0gaW5zdGFuY2VvZiBGb3JtR3JvdXAgfHwgZm9ybSBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xuICAgIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpXG4gICAgICAuZm9yRWFjaCgoaykgPT4gY2xlYXJDb250cm9sKGZvcm0uY29udHJvbHNba10pKTtcbiAgfVxufVxuIl19
|
|
@@ -6,7 +6,8 @@ import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
|
|
|
6
6
|
import { FormlyConfig } from '../services/formly.config';
|
|
7
7
|
import { isObject } from '../utils';
|
|
8
8
|
import { isObservable, of } from 'rxjs';
|
|
9
|
-
import {
|
|
9
|
+
import { merge } from 'rxjs';
|
|
10
|
+
import { startWith, switchMap, filter } from 'rxjs/operators';
|
|
10
11
|
var FormlyValidationMessage = /** @class */ (function () {
|
|
11
12
|
function FormlyValidationMessage(formlyConfig) {
|
|
12
13
|
this.formlyConfig = formlyConfig;
|
|
@@ -19,7 +20,18 @@ var FormlyValidationMessage = /** @class */ (function () {
|
|
|
19
20
|
*/
|
|
20
21
|
function () {
|
|
21
22
|
var _this = this;
|
|
22
|
-
this.errorMessage$ = this.field.formControl.statusChanges
|
|
23
|
+
this.errorMessage$ = merge(this.field.formControl.statusChanges, (!this.field.options
|
|
24
|
+
? of(null)
|
|
25
|
+
: this.field.options.fieldChanges.pipe(filter((/**
|
|
26
|
+
* @param {?} __0
|
|
27
|
+
* @return {?}
|
|
28
|
+
*/
|
|
29
|
+
function (_a) {
|
|
30
|
+
var field = _a.field, type = _a.type, property = _a.property;
|
|
31
|
+
return (field === _this.field)
|
|
32
|
+
&& (type === 'expressionChanges')
|
|
33
|
+
&& (property.indexOf('validation') !== -1);
|
|
34
|
+
}))))).pipe(startWith(null), switchMap((/**
|
|
23
35
|
* @return {?}
|
|
24
36
|
*/
|
|
25
37
|
function () { return isObservable(_this.errorMessage)
|
|
@@ -92,4 +104,4 @@ if (false) {
|
|
|
92
104
|
*/
|
|
93
105
|
FormlyValidationMessage.prototype.formlyConfig;
|
|
94
106
|
}
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LnZhbGlkYXRpb24tbWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3gtZm9ybWx5L2NvcmUvIiwic291cmNlcyI6WyJsaWIvdGVtcGxhdGVzL2Zvcm1seS52YWxpZGF0aW9uLW1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQTJCLE1BQU0sMkJBQTJCLENBQUM7QUFFbEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQWMsWUFBWSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlEO0lBU0UsaUNBQW9CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQUcsQ0FBQzs7OztJQUVsRCw2Q0FBVzs7O0lBQVg7UUFBQSxpQkFzQkM7UUFyQkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFDcEMsQ0FDRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTztZQUNuQixDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztZQUNWLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNsQyxNQUFNOzs7O1lBQUMsVUFBQyxFQUF5QjtvQkFBdkIsZ0JBQUssRUFBRSxjQUFJLEVBQUUsc0JBQVE7Z0JBQzdCLE9BQU8sQ0FBQyxLQUFLLEtBQUssS0FBSSxDQUFDLEtBQUssQ0FBQzt1QkFDeEIsQ0FB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QUFDO0NBQUEsQUF2RUQsSUF1RUM7U0FsRVksdUJBQXVCOzs7SUFDbEMsd0NBQWtDOztJQUNsQyxnREFBa0M7Ozs7O0lBRXRCLCtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1seUNvbmZpZywgVmFsaWRhdGlvbk1lc3NhZ2VPcHRpb24gfSBmcm9tICcuLi9zZXJ2aWNlcy9mb3JtbHkuY29uZmlnJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vY29tcG9uZW50cy9mb3JtbHkuZmllbGQuY29uZmlnJztcbmltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgaXNPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm1seS12YWxpZGF0aW9uLW1lc3NhZ2UnLFxuICB0ZW1wbGF0ZTogYHt7IGVycm9yTWVzc2FnZSQgfCBhc3luYyB9fWAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtbHlWYWxpZGF0aW9uTWVzc2FnZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZztcbiAgZXJyb3JNZXNzYWdlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybWx5Q29uZmlnOiBGb3JtbHlDb25maWcpIHt9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UkID0gbWVyZ2UoXG4gICAgICB0aGlzLmZpZWxkLmZvcm1Db250cm9sLnN0YXR1c0NoYW5nZXMsXG4gICAgICAoXG4gICAgICAgICF0aGlzLmZpZWxkLm9wdGlvbnNcbiAgICAgICAgPyBvZihudWxsKVxuICAgICAgICA6IHRoaXMuZmllbGQub3B0aW9ucy5maWVsZENoYW5nZXMucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoeyBmaWVsZCwgdHlwZSwgcHJvcGVydHkgfSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gKGZpZWxkID09PSB0aGlzLmZpZWxkKVxuICAgICAgICAgICAgICAgICYmICh0eXBlID09PSAnZXhwcmVzc2lvbkNoYW5nZXMnKVxuICAgICAgICAgICAgICAgICYmIChwcm9wZXJ0eS5pbmRleE9mKCd2YWxpZGF0aW9uJykgIT09IC0xKVxuICAgICAgICAgICAgICA7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApXG4gICAgICApLFxuICAgICkucGlwZShcbiAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBpc09ic2VydmFibGUodGhpcy5lcnJvck1lc3NhZ2UpXG4gICAgICAgID8gdGhpcy5lcnJvck1lc3NhZ2VcbiAgICAgICAgOiBvZih0aGlzLmVycm9yTWVzc2FnZSksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBnZXQgZXJyb3JNZXNzYWdlKCkge1xuICAgIGNvbnN0IGZpZWxkRm9ybSA9IHRoaXMuZmllbGQuZm9ybUNvbnRyb2w7XG4gICAgZm9yIChsZXQgZXJyb3IgaW4gZmllbGRGb3JtLmVycm9ycykge1xuICAgICAgaWYgKGZpZWxkRm9ybS5lcnJvcnMuaGFzT3duUHJvcGVydHkoZXJyb3IpKSB7XG4gICAgICAgIGxldCBtZXNzYWdlOiBWYWxpZGF0aW9uTWVzc2FnZU9wdGlvblsnbWVzc2FnZSddID0gdGhpcy5mb3JtbHlDb25maWcuZ2V0VmFsaWRhdG9yTWVzc2FnZShlcnJvcik7XG5cbiAgICAgICAgaWYgKGlzT2JqZWN0KGZpZWxkRm9ybS5lcnJvcnNbZXJyb3JdKSkge1xuICAgICAgICAgIGlmIChmaWVsZEZvcm0uZXJyb3JzW2Vycm9yXS5lcnJvclBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGRGb3JtLmVycm9yc1tlcnJvcl0ubWVzc2FnZSkge1xuICAgICAgICAgICAgbWVzc2FnZSA9IGZpZWxkRm9ybS5lcnJvcnNbZXJyb3JdLm1lc3NhZ2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZmllbGQudmFsaWRhdGlvbiAmJiB0aGlzLmZpZWxkLnZhbGlkYXRpb24ubWVzc2FnZXMgJiYgdGhpcy5maWVsZC52YWxpZGF0aW9uLm1lc3NhZ2VzW2Vycm9yXSkge1xuICAgICAgICAgIG1lc3NhZ2UgPSB0aGlzLmZpZWxkLnZhbGlkYXRpb24ubWVzc2FnZXNbZXJyb3JdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZmllbGQudmFsaWRhdG9ycyAmJiB0aGlzLmZpZWxkLnZhbGlkYXRvcnNbZXJyb3JdICYmIHRoaXMuZmllbGQudmFsaWRhdG9yc1tlcnJvcl0ubWVzc2FnZSkge1xuICAgICAgICAgIG1lc3NhZ2UgPSB0aGlzLmZpZWxkLnZhbGlkYXRvcnNbZXJyb3JdLm1lc3NhZ2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5maWVsZC5hc3luY1ZhbGlkYXRvcnMgJiYgdGhpcy5maWVsZC5hc3luY1ZhbGlkYXRvcnNbZXJyb3JdICYmIHRoaXMuZmllbGQuYXN5bmNWYWxpZGF0b3JzW2Vycm9yXS5tZXNzYWdlKSB7XG4gICAgICAgICAgbWVzc2FnZSA9IHRoaXMuZmllbGQuYXN5bmNWYWxpZGF0b3JzW2Vycm9yXS5tZXNzYWdlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgcmV0dXJuIG1lc3NhZ2UoZmllbGRGb3JtLmVycm9yc1tlcnJvcl0sIHRoaXMuZmllbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/esm5/lib/utils.js
CHANGED
|
@@ -101,44 +101,12 @@ export function assignModelValue(model, paths, value) {
|
|
|
101
101
|
}
|
|
102
102
|
model[paths[paths.length - 1]] = clone(value);
|
|
103
103
|
}
|
|
104
|
-
/**
|
|
105
|
-
* @param {?} field
|
|
106
|
-
* @return {?}
|
|
107
|
-
*/
|
|
108
|
-
export function getFieldInitialValue(field) {
|
|
109
|
-
var e_1, _a;
|
|
110
|
-
/** @type {?} */
|
|
111
|
-
var value = field.options['_initialModel'];
|
|
112
|
-
/** @type {?} */
|
|
113
|
-
var paths = getKeyPath(field);
|
|
114
|
-
while (field.parent) {
|
|
115
|
-
field = field.parent;
|
|
116
|
-
paths = tslib_1.__spread(getKeyPath(field), paths);
|
|
117
|
-
}
|
|
118
|
-
try {
|
|
119
|
-
for (var paths_1 = tslib_1.__values(paths), paths_1_1 = paths_1.next(); !paths_1_1.done; paths_1_1 = paths_1.next()) {
|
|
120
|
-
var path = paths_1_1.value;
|
|
121
|
-
if (!value) {
|
|
122
|
-
return undefined;
|
|
123
|
-
}
|
|
124
|
-
value = value[path];
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
128
|
-
finally {
|
|
129
|
-
try {
|
|
130
|
-
if (paths_1_1 && !paths_1_1.done && (_a = paths_1.return)) _a.call(paths_1);
|
|
131
|
-
}
|
|
132
|
-
finally { if (e_1) throw e_1.error; }
|
|
133
|
-
}
|
|
134
|
-
return value;
|
|
135
|
-
}
|
|
136
104
|
/**
|
|
137
105
|
* @param {?} field
|
|
138
106
|
* @return {?}
|
|
139
107
|
*/
|
|
140
108
|
export function getFieldValue(field) {
|
|
141
|
-
var
|
|
109
|
+
var e_1, _a;
|
|
142
110
|
/** @type {?} */
|
|
143
111
|
var model = field.parent.model;
|
|
144
112
|
try {
|
|
@@ -150,12 +118,12 @@ export function getFieldValue(field) {
|
|
|
150
118
|
model = model[path];
|
|
151
119
|
}
|
|
152
120
|
}
|
|
153
|
-
catch (
|
|
121
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
154
122
|
finally {
|
|
155
123
|
try {
|
|
156
124
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
157
125
|
}
|
|
158
|
-
finally { if (
|
|
126
|
+
finally { if (e_1) throw e_1.error; }
|
|
159
127
|
}
|
|
160
128
|
return model;
|
|
161
129
|
}
|
|
@@ -381,4 +349,4 @@ export function reduceFormUpdateValidityCalls(form, action) {
|
|
|
381
349
|
updateValidityArgs.called && updateValidity({ emitEvent: updateValidityArgs.emitEvent });
|
|
382
350
|
form._updateTreeValidity = updateValidity;
|
|
383
351
|
}
|
|
384
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4LWZvcm1seS9jb3JlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQUU1QyxNQUFNLFVBQVUsVUFBVSxDQUFDLE1BQWMsRUFBRSxLQUF3QixFQUFFLEtBQW9CO0lBQ3ZGLElBQUksS0FBSyxDQUFDLEVBQUU7UUFBRSxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7O1FBQzFCLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSTtJQUNyQixJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxRQUFRO1FBQUUsSUFBSSxHQUFHLFVBQVUsQ0FBQztJQUMvQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwRCxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBNkI7SUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7UUFDZCxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQseUdBQXlHO0lBQ3pHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxHQUFHLEVBQUU7O1lBQ25ELElBQUksR0FBYSxFQUFFO1FBQ3ZCLElBQUksT0FBTyxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRTs7Z0JBQzNCLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRztnQkFDWCxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQztZQUMxQyxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6RDthQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzNCO2FBQU07WUFDTCxJQUFJLEdBQUcsQ0FBQyxLQUFHLEtBQUssQ0FBQyxHQUFLLENBQUMsQ0FBQztTQUN6QjtRQUVELEtBQUssQ0FBQyxRQUFRLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLE1BQUEsRUFBRSxDQUFDO0tBQzNDO0lBRUQsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEMsQ0FBQzs7QUFFRCxNQUFNLEtBQU8saUJBQWlCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQzs7Ozs7O0FBRWhHLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUE2QixFQUFFLEtBQVU7O1FBQ3BFLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQzdCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDdEIsT0FBTztLQUNSOztRQUVHLElBQUksR0FBRyxLQUFLO0lBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNsQixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNuQixLQUFLLG9CQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBSyxLQUFLLENBQUMsQ0FBQztLQUN6QztJQUVELElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFOztZQUN0QyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRTs7WUFDZixDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU07Ozs7O1FBQUMsVUFBQyxLQUFLLEVBQUUsSUFBSSxJQUFLLE9BQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBakIsQ0FBaUIsR0FBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1osT0FBTztLQUNSO0lBRUQsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDN0MsQ0FBQzs7Ozs7OztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFVLEVBQUUsS0FBZSxFQUFFLEtBQVU7SUFDdEUsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTs7WUFDckMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUMxQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3BEO1FBRUQsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNyQjtJQUVELEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRCxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxLQUF3Qjs7O1FBQ3ZELEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQzs7UUFDdEMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDN0IsT0FBTyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ25CLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ3JCLEtBQUssb0JBQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFLLEtBQUssQ0FBQyxDQUFDO0tBQzFDOztRQUVELEtBQW1CLElBQUEsVUFBQSxpQkFBQSxLQUFLLENBQUEsNEJBQUEsK0NBQUU7WUFBckIsSUFBTSxJQUFJLGtCQUFBO1lBQ2IsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDVixPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckI7Ozs7Ozs7OztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQXdCOzs7UUFDaEQsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSzs7UUFDOUIsS0FBbUIsSUFBQSxLQUFBLGlCQUFBLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQSxnQkFBQSw0QkFBRTtZQUFqQyxJQUFNLElBQUksV0FBQTtZQUNiLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1YsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUNELEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDckI7Ozs7Ozs7OztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQVM7SUFBRSxjQUFjO1NBQWQsVUFBYyxFQUFkLHFCQUFjLEVBQWQsSUFBYztRQUFkLDZCQUFjOztJQUN4RCxJQUFJLENBQUMsT0FBTzs7OztJQUFDLFVBQUEsR0FBRztRQUNkLEtBQUssSUFBSSxNQUFNLElBQUksR0FBRyxFQUFFO1lBQ3RCLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO2dCQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQ25DO2lCQUFNLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtnQkFDcEQsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQzdDO1NBQ0Y7SUFDSCxDQUFDLEVBQUMsQ0FBQztJQUNILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBVTtJQUMxQyxPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQztBQUMvQyxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBVTtJQUNwQyxPQUFPLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDN0IsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQVU7SUFDdEMsT0FBTyxLQUFLLEtBQUssRUFBRSxDQUFDO0FBQ3RCLENBQUM7Ozs7O0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFVO0lBQ25DLE9BQU8sT0FBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLFVBQVUsQ0FBQztBQUN0QyxDQUFDOzs7Ozs7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLElBQVMsRUFBRSxJQUFTO0lBQ2pELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUM7V0FDbEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztXQUMzRCxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLENBQU07SUFDN0IsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztBQUM1QyxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBUTtJQUNoQyxPQUFPLENBQUMsQ0FBQyxHQUFHLElBQUksT0FBTyxHQUFHLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQUNqRCxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxLQUFLLENBQUMsS0FBVTtJQUM5QixJQUNFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztXQUNiLFlBQVksQ0FBQyxLQUFLLENBQUM7V0FDbkIsQ0FBQyxLQUFLLFlBQVksV0FBVyxDQUFDO1dBQzlCLDZCQUE2QixDQUFDLEtBQUssQ0FBQyxxQ0FBcUM7V0FDekUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDaEY7UUFDQSxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsSUFBSSxLQUFLLFlBQVksR0FBRyxFQUFFO1FBQ3hCLE9BQU8sSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdkI7SUFFRCxJQUFJLEtBQUssWUFBWSxHQUFHLEVBQUU7UUFDeEIsT0FBTyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN2QjtJQUVELDhEQUE4RDtJQUM5RCxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3JELE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO0tBQ3RCO0lBRUQsSUFBSSxLQUFLLFlBQVksZUFBZSxFQUFFO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUU7UUFDekIsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztLQUNsQztJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN4QixPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRzs7OztRQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFSLENBQVEsRUFBQyxDQUFDO0tBQzFDOzs7O1FBSUssS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDOztRQUN0QyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLHdEQUF3RDtJQUN4RCwyREFBMkQ7SUFDM0QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU07Ozs7O0lBQUMsVUFBQyxNQUFNLEVBQUUsSUFBSTs7WUFDdEMsUUFBUSxHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1FBQzdELElBQUksUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNoQixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDL0M7YUFBTTtZQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDbkM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDOzs7Ozs7O0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQVUsRUFBRSxJQUFZLEVBQUUsWUFBaUI7SUFDMUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUM7QUFDN0IsQ0FBQzs7Ozs7Ozs7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUMxQixDQUFNLEVBQ04sSUFBWSxFQUNaLEtBQW1GO0lBRW5GLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFO1FBQ2pCLGdCQUFnQixDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDdkM7SUFFRCxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN2QixDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6Qjs7UUFFRyxHQUFHLEdBQW1CLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO0lBQzVDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUM3QixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hCLEtBQUssQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEQsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNwQixnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsU0FBTyxJQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDNUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFO2dCQUM3QixZQUFZLEVBQUUsSUFBSTtnQkFDbEIsR0FBRzs7O2dCQUFFLGNBQU0sT0FBQSxDQUFDLENBQUMsU0FBTyxJQUFNLENBQUMsRUFBaEIsQ0FBZ0IsQ0FBQTtnQkFDM0IsR0FBRzs7OztnQkFBRSxVQUFBLFlBQVk7b0JBQ2YsSUFBSSxZQUFZLEtBQUssQ0FBQyxDQUFDLFNBQU8sSUFBTSxDQUFDLEVBQUU7OzRCQUMvQixlQUFhLEdBQUcsQ0FBQyxDQUFDLFNBQU8sSUFBTSxDQUFDO3dCQUN0QyxDQUFDLENBQUMsU0FBTyxJQUFNLENBQUMsR0FBRyxZQUFZLENBQUM7d0JBQ2hDLEdBQUcsQ0FBQyxPQUFPOzs7O3dCQUFDLFVBQUEsUUFBUSxJQUFJLE9BQUEsUUFBUSxDQUFDLEVBQUUsYUFBYSxpQkFBQSxFQUFFLFlBQVksY0FBQSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUE3RCxDQUE2RCxFQUFDLENBQUM7cUJBQ3hGO2dCQUNILENBQUMsQ0FBQTthQUNGLENBQUMsQ0FBQztTQUNKO0tBQ0Y7SUFFRDs7O0lBQU8sY0FBTSxPQUFBLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBakMsQ0FBaUMsRUFBQztBQUNqRCxDQUFDOzs7Ozs7QUFFRCxNQUFNLFVBQVUsNkJBQTZCLENBQUMsSUFBUyxFQUFFLE1BQWdCOztRQUNqRSxjQUFjLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7O1FBRXRELGtCQUFrQixHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFO0lBQzVELElBQUksQ0FBQyxtQkFBbUI7Ozs7SUFBRyxVQUFDLEVBQW1DO1lBQWpDLGdFQUFTO1FBQTZCLE9BQUEsa0JBQWtCLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLElBQUksa0JBQWtCLENBQUMsU0FBUyxFQUFFO0lBQTNGLENBQTJGLENBQUEsQ0FBQztJQUNoSyxNQUFNLEVBQUUsQ0FBQztJQUVULGtCQUFrQixDQUFDLE1BQU0sSUFBSSxjQUFjLENBQUMsRUFBRSxTQUFTLEVBQUUsa0JBQWtCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN6RixJQUFJLENBQUMsbUJBQW1CLEdBQUcsY0FBYyxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJy4vY29yZSc7XG5pbXBvcnQgeyBpc09ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybWx5LmZpZWxkLmNvbmZpZyc7XG5pbXBvcnQgeyBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmllbGRJZChmb3JtSWQ6IHN0cmluZywgZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBpbmRleDogc3RyaW5nfG51bWJlcikge1xuICBpZiAoZmllbGQuaWQpIHJldHVybiBmaWVsZC5pZDtcbiAgbGV0IHR5cGUgPSBmaWVsZC50eXBlO1xuICBpZiAoIXR5cGUgJiYgZmllbGQudGVtcGxhdGUpIHR5cGUgPSAndGVtcGxhdGUnO1xuICByZXR1cm4gW2Zvcm1JZCwgdHlwZSwgZmllbGQua2V5LCBpbmRleF0uam9pbignXycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5UGF0aChmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSk6IHN0cmluZ1tdIHtcbiAgaWYgKCFmaWVsZC5rZXkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKiBXZSBzdG9yZSB0aGUga2V5UGF0aCBpbiB0aGUgZmllbGQgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgZnJlcXVlbnRseS4gKi9cbiAgaWYgKCFmaWVsZC5fa2V5UGF0aCB8fCBmaWVsZC5fa2V5UGF0aC5rZXkgIT09IGZpZWxkLmtleSkge1xuICAgIGxldCBwYXRoOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICh0eXBlb2YgZmllbGQua2V5ID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3Qga2V5ID0gZmllbGQua2V5LmluZGV4T2YoJ1snKSA9PT0gLTFcbiAgICAgICAgPyBmaWVsZC5rZXlcbiAgICAgICAgOiBmaWVsZC5rZXkucmVwbGFjZSgvXFxbKFxcdyspXFxdL2csICcuJDEnKTtcbiAgICAgIHBhdGggPSBrZXkuaW5kZXhPZignLicpICE9PSAtMSA/IGtleS5zcGxpdCgnLicpIDogW2tleV07XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLmtleSkpIHtcbiAgICAgIHBhdGggPSBmaWVsZC5rZXkuc2xpY2UoMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhdGggPSBbYCR7ZmllbGQua2V5fWBdO1xuICAgIH1cblxuICAgIGZpZWxkLl9rZXlQYXRoID0geyBrZXk6IGZpZWxkLmtleSwgcGF0aCB9O1xuICB9XG5cbiAgcmV0dXJuIGZpZWxkLl9rZXlQYXRoLnBhdGguc2xpY2UoMCk7XG59XG5cbmV4cG9ydCBjb25zdCBGT1JNTFlfVkFMSURBVE9SUyA9IFsncmVxdWlyZWQnLCAncGF0dGVybicsICdtaW5MZW5ndGgnLCAnbWF4TGVuZ3RoJywgJ21pbicsICdtYXgnXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnbkZpZWxkVmFsdWUoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnQ2FjaGUsIHZhbHVlOiBhbnkpIHtcbiAgbGV0IHBhdGhzID0gZ2V0S2V5UGF0aChmaWVsZCk7XG4gIGlmIChwYXRocy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgcm9vdCA9IGZpZWxkO1xuICB3aGlsZSAocm9vdC5wYXJlbnQpIHtcbiAgICByb290ID0gcm9vdC5wYXJlbnQ7XG4gICAgcGF0aHMgPSBbLi4uZ2V0S2V5UGF0aChyb290KSwgLi4ucGF0aHNdO1xuICB9XG5cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgZmllbGQucmVzZXRPbkhpZGUpIHtcbiAgICBjb25zdCBrID0gcGF0aHMucG9wKCk7XG4gICAgY29uc3QgbSA9IHBhdGhzLnJlZHVjZSgobW9kZWwsIHBhdGgpID0+IG1vZGVsW3BhdGhdIHx8IHt9LCByb290Lm1vZGVsKTtcbiAgICBkZWxldGUgbVtrXTtcbiAgICByZXR1cm47XG4gIH1cblxuICBhc3NpZ25Nb2RlbFZhbHVlKHJvb3QubW9kZWwsIHBhdGhzLCB2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NpZ25Nb2RlbFZhbHVlKG1vZGVsOiBhbnksIHBhdGhzOiBzdHJpbmdbXSwgdmFsdWU6IGFueSkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IChwYXRocy5sZW5ndGggLSAxKTsgaSsrKSB7XG4gICAgY29uc3QgcGF0aCA9IHBhdGhzW2ldO1xuICAgIGlmICghbW9kZWxbcGF0aF0gfHwgIWlzT2JqZWN0KG1vZGVsW3BhdGhdKSkge1xuICAgICAgbW9kZWxbcGF0aF0gPSAvXlxcZCskLy50ZXN0KHBhdGhzW2kgKyAxXSkgPyBbXSA6IHt9O1xuICAgIH1cblxuICAgIG1vZGVsID0gbW9kZWxbcGF0aF07XG4gIH1cblxuICBtb2RlbFtwYXRoc1twYXRocy5sZW5ndGggLSAxXV0gPSBjbG9uZSh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZEluaXRpYWxWYWx1ZShmaWVsZDogRm9ybWx5RmllbGRDb25maWcpIHtcbiAgbGV0IHZhbHVlID0gZmllbGQub3B0aW9uc1snX2luaXRpYWxNb2RlbCddO1xuICBsZXQgcGF0aHMgPSBnZXRLZXlQYXRoKGZpZWxkKTtcbiAgd2hpbGUgKGZpZWxkLnBhcmVudCkge1xuICAgIGZpZWxkID0gZmllbGQucGFyZW50O1xuICAgIHBhdGhzID0gWy4uLmdldEtleVBhdGgoZmllbGQpLCAuLi5wYXRoc107XG4gIH1cblxuICBmb3IgKGNvbnN0IHBhdGggb2YgcGF0aHMpIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB2YWx1ZSA9IHZhbHVlW3BhdGhdO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmllbGRWYWx1ZShmaWVsZDogRm9ybWx5RmllbGRDb25maWcpOiBhbnkge1xuICBsZXQgbW9kZWwgPSBmaWVsZC5wYXJlbnQubW9kZWw7XG4gIGZvciAoY29uc3QgcGF0aCBvZiBnZXRLZXlQYXRoKGZpZWxkKSkge1xuICAgIGlmICghbW9kZWwpIHtcbiAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9XG4gICAgbW9kZWwgPSBtb2RlbFtwYXRoXTtcbiAgfVxuXG4gIHJldHVybiBtb2RlbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJldmVyc2VEZWVwTWVyZ2UoZGVzdDogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xuICBhcmdzLmZvckVhY2goc3JjID0+IHtcbiAgICBmb3IgKGxldCBzcmNBcmcgaW4gc3JjKSB7XG4gICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQoZGVzdFtzcmNBcmddKSB8fCBpc0JsYW5rU3RyaW5nKGRlc3Rbc3JjQXJnXSkpIHtcbiAgICAgICAgZGVzdFtzcmNBcmddID0gY2xvbmUoc3JjW3NyY0FyZ10pO1xuICAgICAgfSBlbHNlIGlmIChvYmpBbmRTYW1lVHlwZShkZXN0W3NyY0FyZ10sIHNyY1tzcmNBcmddKSkge1xuICAgICAgICByZXZlcnNlRGVlcE1lcmdlKGRlc3Rbc3JjQXJnXSwgc3JjW3NyY0FyZ10pO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBkZXN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdWxsT3JVbmRlZmluZWQodmFsdWU6IGFueSkge1xuICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVW5kZWZpbmVkKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0JsYW5rU3RyaW5nKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIHZhbHVlID09PSAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWU6IGFueSkge1xuICByZXR1cm4gdHlwZW9mKHZhbHVlKSA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9iakFuZFNhbWVUeXBlKG9iajE6IGFueSwgb2JqMjogYW55KSB7XG4gIHJldHVybiBpc09iamVjdChvYmoxKSAmJiBpc09iamVjdChvYmoyKVxuICAgICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmoxKSA9PT0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iajIpXG4gICAgJiYgIShBcnJheS5pc0FycmF5KG9iajEpIHx8IEFycmF5LmlzQXJyYXkob2JqMikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QoeDogYW55KSB7XG4gIHJldHVybiB4ICE9IG51bGwgJiYgdHlwZW9mIHggPT09ICdvYmplY3QnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9taXNlKG9iajogYW55KTogb2JqIGlzIFByb21pc2U8YW55PiB7XG4gIHJldHVybiAhIW9iaiAmJiB0eXBlb2Ygb2JqLnRoZW4gPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbG9uZSh2YWx1ZTogYW55KTogYW55IHtcbiAgaWYgKFxuICAgICFpc09iamVjdCh2YWx1ZSlcbiAgICB8fCBpc09ic2VydmFibGUodmFsdWUpXG4gICAgfHwgKHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpXG4gICAgfHwgLyogaW5zdGFuY2VvZiBTYWZlSHRtbEltcGwgKi8gdmFsdWUuY2hhbmdpbmdUaGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eVxuICAgIHx8IFsnUmVnRXhwJywgJ0ZpbGVMaXN0JywgJ0ZpbGUnLCAnQmxvYiddLmluZGV4T2YodmFsdWUuY29uc3RydWN0b3IubmFtZSkgIT09IC0xXG4gICkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFNldCkge1xuICAgIHJldHVybiBuZXcgU2V0KHZhbHVlKTtcbiAgfVxuXG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE1hcCkge1xuICAgIHJldHVybiBuZXcgTWFwKHZhbHVlKTtcbiAgfVxuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2Jsb2IvbWFzdGVyL21vbWVudC5qcyNMMjUyXG4gIGlmICh2YWx1ZS5faXNBTW9tZW50T2JqZWN0ICYmIGlzRnVuY3Rpb24odmFsdWUuY2xvbmUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLmNsb25lKCk7XG4gIH1cblxuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodmFsdWUuZ2V0VGltZSgpKTtcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5zbGljZSgwKS5tYXAodiA9PiBjbG9uZSh2KSk7XG4gIH1cblxuICAvLyBiZXN0IHdheSB0byBjbG9uZSBhIGpzIG9iamVjdCBtYXliZVxuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MTQ3NDk4Ni9ob3ctdG8tY2xvbmUtYS1qYXZhc2NyaXB0LWVzNi1jbGFzcy1pbnN0YW5jZVxuICBjb25zdCBwcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSk7XG4gIGxldCBjID0gT2JqZWN0LmNyZWF0ZShwcm90byk7XG4gIGMgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YoYywgcHJvdG8pO1xuICAvLyBuZWVkIHRvIG1ha2UgYSBkZWVwIGNvcHkgc28gd2UgZG9udCB1c2UgT2JqZWN0LmFzc2lnblxuICAvLyBhbHNvIE9iamVjdC5hc3NpZ24gd29udCBjb3B5IHByb3BlcnR5IGRlc2NyaXB0b3IgZXhhY3RseVxuICByZXR1cm4gT2JqZWN0LmtleXModmFsdWUpLnJlZHVjZSgobmV3VmFsLCBwcm9wKSA9PiB7XG4gICAgY29uc3QgcHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHZhbHVlLCBwcm9wKTtcbiAgICBpZiAocHJvcERlc2MuZ2V0KSB7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3VmFsLCBwcm9wLCBwcm9wRGVzYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1ZhbFtwcm9wXSA9IGNsb25lKHZhbHVlW3Byb3BdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3VmFsO1xuICB9LCBjKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUhpZGRlblByb3AoZmllbGQ6IGFueSwgcHJvcDogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IGFueSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZmllbGQsIHByb3AsIHsgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG4gIGZpZWxkW3Byb3BdID0gZGVmYXVsdFZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JhcFByb3BlcnR5PFQgPSBhbnk+KFxuICBvOiBhbnksXG4gIHByb3A6IHN0cmluZyxcbiAgc2V0Rm46IChjaGFuZ2U6IHtjdXJyZW50VmFsdWU6IFQsIHByZXZpb3VzVmFsdWU/OiBULCBmaXJzdENoYW5nZTogYm9vbGVhbn0pID0+IHZvaWQsXG4pIHtcbiAgaWYgKCFvLl9vYnNlcnZlcnMpIHtcbiAgICBkZWZpbmVIaWRkZW5Qcm9wKG8sICdfb2JzZXJ2ZXJzJywge30pO1xuICB9XG5cbiAgaWYgKCFvLl9vYnNlcnZlcnNbcHJvcF0pIHtcbiAgICBvLl9vYnNlcnZlcnNbcHJvcF0gPSBbXTtcbiAgfVxuXG4gIGxldCBmbnM6IHR5cGVvZiBzZXRGbltdID0gby5fb2JzZXJ2ZXJzW3Byb3BdO1xuICBpZiAoZm5zLmluZGV4T2Yoc2V0Rm4pID09PSAtMSkge1xuICAgIGZucy5wdXNoKHNldEZuKTtcbiAgICBzZXRGbih7IGN1cnJlbnRWYWx1ZTogb1twcm9wXSwgZmlyc3RDaGFuZ2U6IHRydWUgfSk7XG4gICAgaWYgKGZucy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGRlZmluZUhpZGRlblByb3AobywgYF9fXyQke3Byb3B9YCwgb1twcm9wXSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgcHJvcCwge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGdldDogKCkgPT4gb1tgX19fJCR7cHJvcH1gXSxcbiAgICAgICAgc2V0OiBjdXJyZW50VmFsdWUgPT4ge1xuICAgICAgICAgIGlmIChjdXJyZW50VmFsdWUgIT09IG9bYF9fXyQke3Byb3B9YF0pIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBvW2BfX18kJHtwcm9wfWBdO1xuICAgICAgICAgICAgb1tgX19fJCR7cHJvcH1gXSA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIGZucy5mb3JFYWNoKGNoYW5nZUZuID0+IGNoYW5nZUZuKHsgcHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlLCBmaXJzdENoYW5nZTogZmFsc2UgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAoKSA9PiBmbnMuc3BsaWNlKGZucy5pbmRleE9mKHNldEZuKSwgMSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VGb3JtVXBkYXRlVmFsaWRpdHlDYWxscyhmb3JtOiBhbnksIGFjdGlvbjogRnVuY3Rpb24pIHtcbiAgY29uc3QgdXBkYXRlVmFsaWRpdHkgPSBmb3JtLl91cGRhdGVUcmVlVmFsaWRpdHkuYmluZChmb3JtKTtcblxuICBsZXQgdXBkYXRlVmFsaWRpdHlBcmdzID0geyBjYWxsZWQ6IGZhbHNlLCBlbWl0RXZlbnQ6IGZhbHNlIH07XG4gIGZvcm0uX3VwZGF0ZVRyZWVWYWxpZGl0eSA9ICh7IGVtaXRFdmVudCB9ID0geyBlbWl0RXZlbnQ6IHRydWUgfSkgPT4gdXBkYXRlVmFsaWRpdHlBcmdzID0geyBjYWxsZWQ6IHRydWUsIGVtaXRFdmVudDogZW1pdEV2ZW50IHx8IHVwZGF0ZVZhbGlkaXR5QXJncy5lbWl0RXZlbnQgfTtcbiAgYWN0aW9uKCk7XG5cbiAgdXBkYXRlVmFsaWRpdHlBcmdzLmNhbGxlZCAmJiB1cGRhdGVWYWxpZGl0eSh7IGVtaXRFdmVudDogdXBkYXRlVmFsaWRpdHlBcmdzLmVtaXRFdmVudCB9KTtcbiAgZm9ybS5fdXBkYXRlVHJlZVZhbGlkaXR5ID0gdXBkYXRlVmFsaWRpdHk7XG59XG4iXX0=
|
|
352
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4LWZvcm1seS9jb3JlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQUU1QyxNQUFNLFVBQVUsVUFBVSxDQUFDLE1BQWMsRUFBRSxLQUF3QixFQUFFLEtBQW9CO0lBQ3ZGLElBQUksS0FBSyxDQUFDLEVBQUU7UUFBRSxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7O1FBQzFCLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSTtJQUNyQixJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxRQUFRO1FBQUUsSUFBSSxHQUFHLFVBQVUsQ0FBQztJQUMvQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNwRCxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsS0FBNkI7SUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7UUFDZCxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQseUdBQXlHO0lBQ3pHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxHQUFHLEVBQUU7O1lBQ25ELElBQUksR0FBYSxFQUFFO1FBQ3ZCLElBQUksT0FBTyxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRTs7Z0JBQzNCLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENB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LEVBQTdELENBQTZELEVBQUMsQ0FBQztxQkFDeEY7Z0JBQ0gsQ0FBQyxDQUFBO2FBQ0YsQ0FBQyxDQUFDO1NBQ0o7S0FDRjtJQUVEOzs7SUFBTyxjQUFNLE9BQUEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFqQyxDQUFpQyxFQUFDO0FBQ2pELENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxJQUFTLEVBQUUsTUFBZ0I7O1FBQ2pFLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzs7UUFFdEQsa0JBQWtCLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUU7SUFDNUQsSUFBSSxDQUFDLG1CQUFtQjs7OztJQUFHLFVBQUMsRUFBbUM7WUFBakMsZ0VBQVM7UUFBNkIsT0FBQSxrQkFBa0IsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsSUFBSSxrQkFBa0IsQ0FBQyxTQUFTLEVBQUU7SUFBM0YsQ0FBMkYsQ0FBQSxDQUFDO0lBQ2hLLE1BQU0sRUFBRSxDQUFDO0lBRVQsa0JBQWtCLENBQUMsTUFBTSxJQUFJLGNBQWMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3pGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxjQUFjLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnLi9jb3JlJztcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWdDYWNoZSB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtbHkuZmllbGQuY29uZmlnJztcbmltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZElkKGZvcm1JZDogc3RyaW5nLCBmaWVsZDogRm9ybWx5RmllbGRDb25maWcsIGluZGV4OiBzdHJpbmd8bnVtYmVyKSB7XG4gIGlmIChmaWVsZC5pZCkgcmV0dXJuIGZpZWxkLmlkO1xuICBsZXQgdHlwZSA9IGZpZWxkLnR5cGU7XG4gIGlmICghdHlwZSAmJiBmaWVsZC50ZW1wbGF0ZSkgdHlwZSA9ICd0ZW1wbGF0ZSc7XG4gIHJldHVybiBbZm9ybUlkLCB0eXBlLCBmaWVsZC5rZXksIGluZGV4XS5qb2luKCdfJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRLZXlQYXRoKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZ0NhY2hlKTogc3RyaW5nW10ge1xuICBpZiAoIWZpZWxkLmtleSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qIFdlIHN0b3JlIHRoZSBrZXlQYXRoIGluIHRoZSBmaWVsZCBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBmcmVxdWVudGx5LiAqL1xuICBpZiAoIWZpZWxkLl9rZXlQYXRoIHx8IGZpZWxkLl9rZXlQYXRoLmtleSAhPT0gZmllbGQua2V5KSB7XG4gICAgbGV0IHBhdGg6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHR5cGVvZiBmaWVsZC5rZXkgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBrZXkgPSBmaWVsZC5rZXkuaW5kZXhPZignWycpID09PSAtMVxuICAgICAgICA/IGZpZWxkLmtleVxuICAgICAgICA6IGZpZWxkLmtleS5yZXBsYWNlKC9cXFsoXFx3KylcXF0vZywgJy4kMScpO1xuICAgICAgcGF0aCA9IGtleS5pbmRleE9mKCcuJykgIT09IC0xID8ga2V5LnNwbGl0KCcuJykgOiBba2V5XTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQua2V5KSkge1xuICAgICAgcGF0aCA9IGZpZWxkLmtleS5zbGljZSgwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGF0aCA9IFtgJHtmaWVsZC5rZXl9YF07XG4gICAgfVxuXG4gICAgZmllbGQuX2tleVBhdGggPSB7IGtleTogZmllbGQua2V5LCBwYXRoIH07XG4gIH1cblxuICByZXR1cm4gZmllbGQuX2tleVBhdGgucGF0aC5zbGljZSgwKTtcbn1cblxuZXhwb3J0IGNvbnN0IEZPUk1MWV9WQUxJREFUT1JTID0gWydyZXF1aXJlZCcsICdwYXR0ZXJuJywgJ21pbkxlbmd0aCcsICdtYXhMZW5ndGgnLCAnbWluJywgJ21heCddO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzaWduRmllbGRWYWx1ZShmaWVsZDogRm9ybWx5RmllbGRDb25maWdDYWNoZSwgdmFsdWU6IGFueSkge1xuICBsZXQgcGF0aHMgPSBnZXRLZXlQYXRoKGZpZWxkKTtcbiAgaWYgKHBhdGhzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCByb290ID0gZmllbGQ7XG4gIHdoaWxlIChyb290LnBhcmVudCkge1xuICAgIHJvb3QgPSByb290LnBhcmVudDtcbiAgICBwYXRocyA9IFsuLi5nZXRLZXlQYXRoKHJvb3QpLCAuLi5wYXRoc107XG4gIH1cblxuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiBmaWVsZC5yZXNldE9uSGlkZSkge1xuICAgIGNvbnN0IGsgPSBwYXRocy5wb3AoKTtcbiAgICBjb25zdCBtID0gcGF0aHMucmVkdWNlKChtb2RlbCwgcGF0aCkgPT4gbW9kZWxbcGF0aF0gfHwge30sIHJvb3QubW9kZWwpO1xuICAgIGRlbGV0ZSBtW2tdO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGFzc2lnbk1vZGVsVmFsdWUocm9vdC5tb2RlbCwgcGF0aHMsIHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2lnbk1vZGVsVmFsdWUobW9kZWw6IGFueSwgcGF0aHM6IHN0cmluZ1tdLCB2YWx1ZTogYW55KSB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgKHBhdGhzLmxlbmd0aCAtIDEpOyBpKyspIHtcbiAgICBjb25zdCBwYXRoID0gcGF0aHNbaV07XG4gICAgaWYgKCFtb2RlbFtwYXRoXSB8fCAhaXNPYmplY3QobW9kZWxbcGF0aF0pKSB7XG4gICAgICBtb2RlbFtwYXRoXSA9IC9eXFxkKyQvLnRlc3QocGF0aHNbaSArIDFdKSA/IFtdIDoge307XG4gICAgfVxuXG4gICAgbW9kZWwgPSBtb2RlbFtwYXRoXTtcbiAgfVxuXG4gIG1vZGVsW3BhdGhzW3BhdGhzLmxlbmd0aCAtIDFdXSA9IGNsb25lKHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkVmFsdWUoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKTogYW55IHtcbiAgbGV0IG1vZGVsID0gZmllbGQucGFyZW50Lm1vZGVsO1xuICBmb3IgKGNvbnN0IHBhdGggb2YgZ2V0S2V5UGF0aChmaWVsZCkpIHtcbiAgICBpZiAoIW1vZGVsKSB7XG4gICAgICByZXR1cm4gbW9kZWw7XG4gICAgfVxuICAgIG1vZGVsID0gbW9kZWxbcGF0aF07XG4gIH1cblxuICByZXR1cm4gbW9kZWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXZlcnNlRGVlcE1lcmdlKGRlc3Q6IGFueSwgLi4uYXJnczogYW55W10pIHtcbiAgYXJncy5mb3JFYWNoKHNyYyA9PiB7XG4gICAgZm9yIChsZXQgc3JjQXJnIGluIHNyYykge1xuICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKGRlc3Rbc3JjQXJnXSkgfHwgaXNCbGFua1N0cmluZyhkZXN0W3NyY0FyZ10pKSB7XG4gICAgICAgIGRlc3Rbc3JjQXJnXSA9IGNsb25lKHNyY1tzcmNBcmddKTtcbiAgICAgIH0gZWxzZSBpZiAob2JqQW5kU2FtZVR5cGUoZGVzdFtzcmNBcmddLCBzcmNbc3JjQXJnXSkpIHtcbiAgICAgICAgcmV2ZXJzZURlZXBNZXJnZShkZXN0W3NyY0FyZ10sIHNyY1tzcmNBcmddKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICByZXR1cm4gZGVzdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1VuZGVmaW5lZCh2YWx1ZTogYW55KSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCbGFua1N0cmluZyh2YWx1ZTogYW55KSB7XG4gIHJldHVybiB2YWx1ZSA9PT0gJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpIHtcbiAgcmV0dXJuIHR5cGVvZih2YWx1ZSkgPT09ICdmdW5jdGlvbic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvYmpBbmRTYW1lVHlwZShvYmoxOiBhbnksIG9iajI6IGFueSkge1xuICByZXR1cm4gaXNPYmplY3Qob2JqMSkgJiYgaXNPYmplY3Qob2JqMilcbiAgICAmJiBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqMSkgPT09IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmoyKVxuICAgICYmICEoQXJyYXkuaXNBcnJheShvYmoxKSB8fCBBcnJheS5pc0FycmF5KG9iajIpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHg6IGFueSkge1xuICByZXR1cm4geCAhPSBudWxsICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0Jztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZShvYmo6IGFueSk6IG9iaiBpcyBQcm9taXNlPGFueT4ge1xuICByZXR1cm4gISFvYmogJiYgdHlwZW9mIG9iai50aGVuID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xvbmUodmFsdWU6IGFueSk6IGFueSB7XG4gIGlmIChcbiAgICAhaXNPYmplY3QodmFsdWUpXG4gICAgfHwgaXNPYnNlcnZhYmxlKHZhbHVlKVxuICAgIHx8ICh2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKVxuICAgIHx8IC8qIGluc3RhbmNlb2YgU2FmZUh0bWxJbXBsICovIHZhbHVlLmNoYW5naW5nVGhpc0JyZWFrc0FwcGxpY2F0aW9uU2VjdXJpdHlcbiAgICB8fCBbJ1JlZ0V4cCcsICdGaWxlTGlzdCcsICdGaWxlJywgJ0Jsb2InXS5pbmRleE9mKHZhbHVlLmNvbnN0cnVjdG9yLm5hbWUpICE9PSAtMVxuICApIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICByZXR1cm4gbmV3IFNldCh2YWx1ZSk7XG4gIH1cblxuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBNYXApIHtcbiAgICByZXR1cm4gbmV3IE1hcCh2YWx1ZSk7XG4gIH1cblxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9ibG9iL21hc3Rlci9tb21lbnQuanMjTDI1MlxuICBpZiAodmFsdWUuX2lzQU1vbWVudE9iamVjdCAmJiBpc0Z1bmN0aW9uKHZhbHVlLmNsb25lKSkge1xuICAgIHJldHVybiB2YWx1ZS5jbG9uZSgpO1xuICB9XG5cbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQWJzdHJhY3RDb250cm9sKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHZhbHVlLmdldFRpbWUoKSk7XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUuc2xpY2UoMCkubWFwKHYgPT4gY2xvbmUodikpO1xuICB9XG5cbiAgLy8gYmVzdCB3YXkgdG8gY2xvbmUgYSBqcyBvYmplY3QgbWF5YmVcbiAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvNDE0NzQ5ODYvaG93LXRvLWNsb25lLWEtamF2YXNjcmlwdC1lczYtY2xhc3MtaW5zdGFuY2VcbiAgY29uc3QgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpO1xuICBsZXQgYyA9IE9iamVjdC5jcmVhdGUocHJvdG8pO1xuICBjID0gT2JqZWN0LnNldFByb3RvdHlwZU9mKGMsIHByb3RvKTtcbiAgLy8gbmVlZCB0byBtYWtlIGEgZGVlcCBjb3B5IHNvIHdlIGRvbnQgdXNlIE9iamVjdC5hc3NpZ25cbiAgLy8gYWxzbyBPYmplY3QuYXNzaWduIHdvbnQgY29weSBwcm9wZXJ0eSBkZXNjcmlwdG9yIGV4YWN0bHlcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHZhbHVlKS5yZWR1Y2UoKG5ld1ZhbCwgcHJvcCkgPT4ge1xuICAgIGNvbnN0IHByb3BEZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih2YWx1ZSwgcHJvcCk7XG4gICAgaWYgKHByb3BEZXNjLmdldCkge1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld1ZhbCwgcHJvcCwgcHJvcERlc2MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdWYWxbcHJvcF0gPSBjbG9uZSh2YWx1ZVtwcm9wXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ld1ZhbDtcbiAgfSwgYyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVIaWRkZW5Qcm9wKGZpZWxkOiBhbnksIHByb3A6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBhbnkpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGZpZWxkLCBwcm9wLCB7IGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0pO1xuICBmaWVsZFtwcm9wXSA9IGRlZmF1bHRWYWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBQcm9wZXJ0eTxUID0gYW55PihcbiAgbzogYW55LFxuICBwcm9wOiBzdHJpbmcsXG4gIHNldEZuOiAoY2hhbmdlOiB7Y3VycmVudFZhbHVlOiBULCBwcmV2aW91c1ZhbHVlPzogVCwgZmlyc3RDaGFuZ2U6IGJvb2xlYW59KSA9PiB2b2lkLFxuKSB7XG4gIGlmICghby5fb2JzZXJ2ZXJzKSB7XG4gICAgZGVmaW5lSGlkZGVuUHJvcChvLCAnX29ic2VydmVycycsIHt9KTtcbiAgfVxuXG4gIGlmICghby5fb2JzZXJ2ZXJzW3Byb3BdKSB7XG4gICAgby5fb2JzZXJ2ZXJzW3Byb3BdID0gW107XG4gIH1cblxuICBsZXQgZm5zOiB0eXBlb2Ygc2V0Rm5bXSA9IG8uX29ic2VydmVyc1twcm9wXTtcbiAgaWYgKGZucy5pbmRleE9mKHNldEZuKSA9PT0gLTEpIHtcbiAgICBmbnMucHVzaChzZXRGbik7XG4gICAgc2V0Rm4oeyBjdXJyZW50VmFsdWU6IG9bcHJvcF0sIGZpcnN0Q2hhbmdlOiB0cnVlIH0pO1xuICAgIGlmIChmbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICBkZWZpbmVIaWRkZW5Qcm9wKG8sIGBfX18kJHtwcm9wfWAsIG9bcHJvcF0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIHByb3AsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6ICgpID0+IG9bYF9fXyQke3Byb3B9YF0sXG4gICAgICAgIHNldDogY3VycmVudFZhbHVlID0+IHtcbiAgICAgICAgICBpZiAoY3VycmVudFZhbHVlICE9PSBvW2BfX18kJHtwcm9wfWBdKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gb1tgX19fJCR7cHJvcH1gXTtcbiAgICAgICAgICAgIG9bYF9fXyQke3Byb3B9YF0gPSBjdXJyZW50VmFsdWU7XG4gICAgICAgICAgICBmbnMuZm9yRWFjaChjaGFuZ2VGbiA9PiBjaGFuZ2VGbih7IHByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSwgZmlyc3RDaGFuZ2U6IGZhbHNlIH0pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gKCkgPT4gZm5zLnNwbGljZShmbnMuaW5kZXhPZihzZXRGbiksIDEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlRm9ybVVwZGF0ZVZhbGlkaXR5Q2FsbHMoZm9ybTogYW55LCBhY3Rpb246IEZ1bmN0aW9uKSB7XG4gIGNvbnN0IHVwZGF0ZVZhbGlkaXR5ID0gZm9ybS5fdXBkYXRlVHJlZVZhbGlkaXR5LmJpbmQoZm9ybSk7XG5cbiAgbGV0IHVwZGF0ZVZhbGlkaXR5QXJncyA9IHsgY2FsbGVkOiBmYWxzZSwgZW1pdEV2ZW50OiBmYWxzZSB9O1xuICBmb3JtLl91cGRhdGVUcmVlVmFsaWRpdHkgPSAoeyBlbWl0RXZlbnQgfSA9IHsgZW1pdEV2ZW50OiB0cnVlIH0pID0+IHVwZGF0ZVZhbGlkaXR5QXJncyA9IHsgY2FsbGVkOiB0cnVlLCBlbWl0RXZlbnQ6IGVtaXRFdmVudCB8fCB1cGRhdGVWYWxpZGl0eUFyZ3MuZW1pdEV2ZW50IH07XG4gIGFjdGlvbigpO1xuXG4gIHVwZGF0ZVZhbGlkaXR5QXJncy5jYWxsZWQgJiYgdXBkYXRlVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IHVwZGF0ZVZhbGlkaXR5QXJncy5lbWl0RXZlbnQgfSk7XG4gIGZvcm0uX3VwZGF0ZVRyZWVWYWxpZGl0eSA9IHVwZGF0ZVZhbGlkaXR5O1xufVxuIl19
|
package/esm5/ngx-formly-core.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* Generated bundle index. Do not edit.
|
|
7
7
|
*/
|
|
8
|
-
export { FormlyForm, FormlyField, FormlyAttributes, FORMLY_CONFIG, FormlyConfig, FormlyFormBuilder, FieldType, Field, FieldArrayType, FieldWrapper, FormlyModule, ɵdefineHiddenProp, ɵreverseDeepMerge,
|
|
8
|
+
export { FormlyForm, FormlyField, FormlyAttributes, FORMLY_CONFIG, FormlyConfig, FormlyFormBuilder, FieldType, Field, FieldArrayType, FieldWrapper, FormlyModule, ɵdefineHiddenProp, ɵreverseDeepMerge, ɵgetFieldValue, ɵclone, ɵwrapProperty } from './public_api';
|
|
9
9
|
export { defaultFormlyConfig as ɵa } from './lib/core.module';
|
|
10
10
|
export { CoreExtension as ɵe } from './lib/extensions/core/core';
|
|
11
11
|
export { FieldExpressionExtension as ɵh } from './lib/extensions/field-expression/field-expression';
|
|
@@ -14,4 +14,4 @@ export { FieldValidationExtension as ɵf } from './lib/extensions/field-validati
|
|
|
14
14
|
export { FormlyTemplateType as ɵd } from './lib/templates/field-template.type';
|
|
15
15
|
export { FormlyGroup as ɵb } from './lib/templates/formly.group';
|
|
16
16
|
export { FormlyValidationMessage as ɵc } from './lib/templates/formly.validation-message';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWZvcm1seS1jb3JlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neC1mb3JtbHkvY29yZS8iLCJzb3VyY2VzIjpbIm5neC1mb3JtbHktY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEscVBBQWMsY0FBYyxDQUFDO0FBRTdCLE9BQU8sRUFBQyxtQkFBbUIsSUFBSSxFQUFFLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsYUFBYSxJQUFJLEVBQUUsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBQyx3QkFBd0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUNsRyxPQUFPLEVBQUMsa0JBQWtCLElBQUksRUFBRSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHdCQUF3QixJQUFJLEVBQUUsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxrQkFBa0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsV0FBVyxJQUFJLEVBQUUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBQyx1QkFBdUIsSUFBSSxFQUFFLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcblxuZXhwb3J0IHtkZWZhdWx0Rm9ybWx5Q29uZmlnIGFzIMm1YX0gZnJvbSAnLi9saWIvY29yZS5tb2R1bGUnO1xuZXhwb3J0IHtDb3JlRXh0ZW5zaW9uIGFzIMm1ZX0gZnJvbSAnLi9saWIvZXh0ZW5zaW9ucy9jb3JlL2NvcmUnO1xuZXhwb3J0IHtGaWVsZEV4cHJlc3Npb25FeHRlbnNpb24gYXMgybVofSBmcm9tICcuL2xpYi9leHRlbnNpb25zL2ZpZWxkLWV4cHJlc3Npb24vZmllbGQtZXhwcmVzc2lvbic7XG5leHBvcnQge0ZpZWxkRm9ybUV4dGVuc2lvbiBhcyDJtWd9IGZyb20gJy4vbGliL2V4dGVuc2lvbnMvZmllbGQtZm9ybS9maWVsZC1mb3JtJztcbmV4cG9ydCB7RmllbGRWYWxpZGF0aW9uRXh0ZW5zaW9uIGFzIMm1Zn0gZnJvbSAnLi9saWIvZXh0ZW5zaW9ucy9maWVsZC12YWxpZGF0aW9uL2ZpZWxkLXZhbGlkYXRpb24nO1xuZXhwb3J0IHtGb3JtbHlUZW1wbGF0ZVR5cGUgYXMgybVkfSBmcm9tICcuL2xpYi90ZW1wbGF0ZXMvZmllbGQtdGVtcGxhdGUudHlwZSc7XG5leHBvcnQge0Zvcm1seUdyb3VwIGFzIMm1Yn0gZnJvbSAnLi9saWIvdGVtcGxhdGVzL2Zvcm1seS5ncm91cCc7XG5leHBvcnQge0Zvcm1seVZhbGlkYXRpb25NZXNzYWdlIGFzIMm1Y30gZnJvbSAnLi9saWIvdGVtcGxhdGVzL2Zvcm1seS52YWxpZGF0aW9uLW1lc3NhZ2UnOyJdfQ==
|
package/esm5/public_api.js
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
/*
|
|
6
6
|
* Public API Surface of core
|
|
7
7
|
*/
|
|
8
|
-
export { FormlyForm, FormlyField, FormlyAttributes, FORMLY_CONFIG, FormlyConfig, FormlyFormBuilder, FieldType, Field, FieldArrayType, FieldWrapper, FormlyModule, ɵdefineHiddenProp, ɵreverseDeepMerge,
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
export { FormlyForm, FormlyField, FormlyAttributes, FORMLY_CONFIG, FormlyConfig, FormlyFormBuilder, FieldType, Field, FieldArrayType, FieldWrapper, FormlyModule, ɵdefineHiddenProp, ɵreverseDeepMerge, ɵgetFieldValue, ɵclone, ɵwrapProperty } from './lib/core';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3gtZm9ybWx5L2NvcmUvIiwic291cmNlcyI6WyJwdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxxUEFBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvcmVcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlJztcbiJdfQ==
|