@alauda-fe/crd-form 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,14 +1,14 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { LabelPosition } from '@alauda/ui';
3
3
  import { ObservableInput, } from '@alauda-fe/common';
4
- import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, QueryList, ViewChild, } from '@angular/core';
4
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
5
5
  import { NgForm } from '@angular/forms';
6
6
  import { List, Map as $Map, fromJS } from 'immutable';
7
7
  import { flattenDeep, fromPairs, isEmpty, uniq } from 'lodash-es';
8
8
  import { Observable } from 'rxjs';
9
9
  import { RemoteWidgetsService } from '../remote-widgets';
10
10
  import { SpecCapability, } from '../types';
11
- import { CrdFormCustomDescriptionDirective, parseArrayPath, SCHEMA_PATH, createCapabilityField, normalizePath, pathToArray, getCustomDescription, getOperandPath, getPathFromTagPath, getFieldsByPath, fieldShouldReveal, getDefaultValue, } from '../utils';
11
+ import { parseArrayPath, SCHEMA_PATH, createCapabilityField, normalizePath, pathToArray, getOperandPath, getPathFromTagPath, getFieldsByPath, fieldShouldReveal, getDefaultValue, } from '../utils';
12
12
  import { differPathsTag, getAllOtherTagPath, matchValueAgainstOneOf, } from './helper';
13
13
  import * as i0 from "@angular/core";
14
14
  import * as i1 from "../remote-widgets";
@@ -17,8 +17,7 @@ function CrdFormComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {
17
17
  const _r1 = i0.ɵɵgetCurrentView();
18
18
  i0.ɵɵelementContainerStart(0);
19
19
  i0.ɵɵelementStart(1, "acl-operand-field", 4);
20
- i0.ɵɵpipe(2, "pure");
21
- i0.ɵɵpipe(3, "async");
20
+ i0.ɵɵpipe(2, "async");
22
21
  i0.ɵɵlistener("valueChange", function CrdFormComponent_ng_container_2_Template_acl_operand_field_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.fieldValueChange($event)); });
23
22
  i0.ɵɵelementEnd();
24
23
  i0.ɵɵelementContainerEnd();
@@ -26,7 +25,7 @@ function CrdFormComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {
26
25
  const field_r3 = ctx.$implicit;
27
26
  const ctx_r1 = i0.ɵɵnextContext();
28
27
  i0.ɵɵadvance();
29
- i0.ɵɵproperty("fields", ctx_r1.fields)("field", field_r3)("formDataState", ctx_r1.formDataState)("readonly", ctx_r1.readonly)("customDescription", i0.ɵɵpipeBind3(2, 6, ctx_r1.customDescriptions, ctx_r1.getCustomDescription, field_r3))("remoteModuleDefinition", i0.ɵɵpipeBind1(3, 10, ctx_r1.remoteModuleDefinition$));
28
+ i0.ɵɵproperty("fields", ctx_r1.fields)("field", field_r3)("formDataState", ctx_r1.formDataState)("readonly", ctx_r1.readonly)("remoteModuleDefinition", i0.ɵɵpipeBind1(2, 5, ctx_r1.remoteModuleDefinition$));
30
29
  } }
31
30
  function CrdFormComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {
32
31
  const _r4 = i0.ɵɵgetCurrentView();
@@ -39,7 +38,7 @@ function CrdFormComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {
39
38
  const group_r5 = ctx.$implicit;
40
39
  const ctx_r1 = i0.ɵɵnextContext();
41
40
  i0.ɵɵadvance();
42
- i0.ɵɵproperty("fields", ctx_r1.fields)("fieldGroup", group_r5)("formDataState", ctx_r1.formDataState)("formErrors", ctx_r1.formErrors)("readonly", ctx_r1.readonly)("customDescriptions", ctx_r1.customDescriptions);
41
+ i0.ɵɵproperty("fields", ctx_r1.fields)("fieldGroup", group_r5)("formDataState", ctx_r1.formDataState)("formErrors", ctx_r1.formErrors)("readonly", ctx_r1.readonly);
43
42
  } }
44
43
  function CrdFormComponent_ng_container_4_Template(rf, ctx) { if (rf & 1) {
45
44
  const _r6 = i0.ɵɵgetCurrentView();
@@ -80,7 +79,6 @@ export class CrdFormComponent {
80
79
  // 该 controlMap 以及所有 field 里的 control 实例,都是为了数据追踪与错误同步(control.error -> crdForm error),本身不影响提交,由 crd-form 的 error 去阻塞提交。
81
80
  this.controlMap = new Map();
82
81
  this.remoteModuleDefinition$ = this.rws.remoteModule$;
83
- this.getCustomDescription = getCustomDescription;
84
82
  // 被隐藏起来的表单的路径集合
85
83
  this.dirtyPathsSet = new Set();
86
84
  }
@@ -94,7 +92,7 @@ export class CrdFormComponent {
94
92
  }
95
93
  setUpForm() {
96
94
  this.formDataState = fromJS(this.data || {});
97
- const { normalFields, fieldGroups, arrayFieldGroups, advancedFields, descriptorFields, openApiFields, basicFields, } = createCapabilityField(this.descriptors || [], this.openApiSchema || {}, this.data, this.openApiSchemaPath);
95
+ const { normalFields, fieldGroups, arrayFieldGroups, advancedFields, descriptorFields, openApiFields, basicFields, treeFields, } = createCapabilityField(this.descriptors || [], this.openApiSchema || {}, this.data, this.openApiSchemaPath);
98
96
  this.fields = basicFields.filter(fieldShouldReveal);
99
97
  if (this.debug) {
100
98
  /* eslint-disable no-console */
@@ -105,6 +103,7 @@ export class CrdFormComponent {
105
103
  console.info('fieldGroups:', fieldGroups);
106
104
  console.info('arrayFieldGroups:', arrayFieldGroups);
107
105
  console.info('advancedFields:', advancedFields);
106
+ console.info('treeFields:', treeFields);
108
107
  /* eslint-enable no-console */
109
108
  }
110
109
  this.normalFields = normalFields;
@@ -256,19 +255,14 @@ export class CrdFormComponent {
256
255
  this.form.onSubmit(null);
257
256
  }
258
257
  static { this.ɵfac = function CrdFormComponent_Factory(t) { return new (t || CrdFormComponent)(i0.ɵɵdirectiveInject(i1.RemoteWidgetsService)); }; }
259
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CrdFormComponent, selectors: [["acl-crd-form"]], contentQueries: function CrdFormComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
260
- i0.ɵɵcontentQuery(dirIndex, CrdFormCustomDescriptionDirective, 4);
261
- } if (rf & 2) {
262
- let _t;
263
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customDescriptions = _t);
264
- } }, viewQuery: function CrdFormComponent_Query(rf, ctx) { if (rf & 1) {
258
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CrdFormComponent, selectors: [["acl-crd-form"]], viewQuery: function CrdFormComponent_Query(rf, ctx) { if (rf & 1) {
265
259
  i0.ɵɵviewQuery(_c0, 7);
266
260
  } if (rf & 2) {
267
261
  let _t;
268
262
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.form = _t.first);
269
- } }, inputs: { openApiSchema: "openApiSchema", descriptors: "descriptors", data: "data", debug: "debug", openApiSchemaPath: "openApiSchemaPath", readonly: "readonly", labelWidth: "labelWidth", labelPosition: "labelPosition", cluster: "cluster", namespace: "namespace", formContext: "formContext", keepEmptyPath: "keepEmptyPath", effectControlDefaultValue: "effectControlDefaultValue", uiContext: "uiContext", widgets: "widgets" }, outputs: { formStateChange: "formStateChange", formSchemaChange: "formSchemaChange" }, features: [i0.ɵɵNgOnChangesFeature], decls: 6, vars: 7, consts: [["form", "ngForm"], ["auiForm", "", 3, "aclScrollToFirstInvalid", "auiFormLabelPosition", "auiFormLabelWidth"], [4, "ngFor", "ngForOf"], [4, "ngIf"], [3, "valueChange", "fields", "field", "formDataState", "readonly", "customDescription", "remoteModuleDefinition"], [3, "valueChange", "fields", "fieldGroup", "formDataState", "formErrors", "readonly", "customDescriptions"], [3, "valueChange", "itemRemove", "arrayFieldGroup", "formDataState", "readonly"], [3, "valueChange", "fields", "fieldList", "formDataState", "readonly"]], template: function CrdFormComponent_Template(rf, ctx) { if (rf & 1) {
263
+ } }, inputs: { openApiSchema: "openApiSchema", descriptors: "descriptors", data: "data", debug: "debug", openApiSchemaPath: "openApiSchemaPath", readonly: "readonly", labelWidth: "labelWidth", labelPosition: "labelPosition", cluster: "cluster", namespace: "namespace", formContext: "formContext", keepEmptyPath: "keepEmptyPath", effectControlDefaultValue: "effectControlDefaultValue", uiContext: "uiContext", widgets: "widgets" }, outputs: { formStateChange: "formStateChange", formSchemaChange: "formSchemaChange" }, features: [i0.ɵɵNgOnChangesFeature], decls: 6, vars: 7, consts: [["form", "ngForm"], ["auiForm", "", 3, "aclScrollToFirstInvalid", "auiFormLabelPosition", "auiFormLabelWidth"], [4, "ngFor", "ngForOf"], [4, "ngIf"], [3, "valueChange", "fields", "field", "formDataState", "readonly", "remoteModuleDefinition"], [3, "valueChange", "fields", "fieldGroup", "formDataState", "formErrors", "readonly"], [3, "valueChange", "itemRemove", "arrayFieldGroup", "formDataState", "readonly"], [3, "valueChange", "fields", "fieldList", "formDataState", "readonly"]], template: function CrdFormComponent_Template(rf, ctx) { if (rf & 1) {
270
264
  i0.ɵɵelementStart(0, "form", 1, 0);
271
- i0.ɵɵtemplate(2, CrdFormComponent_ng_container_2_Template, 4, 12, "ng-container", 2)(3, CrdFormComponent_ng_container_3_Template, 2, 6, "ng-container", 2)(4, CrdFormComponent_ng_container_4_Template, 2, 3, "ng-container", 2)(5, CrdFormComponent_ng_container_5_Template, 2, 4, "ng-container", 3);
265
+ i0.ɵɵtemplate(2, CrdFormComponent_ng_container_2_Template, 3, 7, "ng-container", 2)(3, CrdFormComponent_ng_container_3_Template, 2, 5, "ng-container", 2)(4, CrdFormComponent_ng_container_4_Template, 2, 3, "ng-container", 2)(5, CrdFormComponent_ng_container_5_Template, 2, 4, "ng-container", 3);
272
266
  i0.ɵɵelementEnd();
273
267
  } if (rf & 2) {
274
268
  i0.ɵɵproperty("aclScrollToFirstInvalid", !!ctx.formErrors)("auiFormLabelPosition", ctx.labelPosition)("auiFormLabelWidth", ctx.labelWidth);
@@ -288,7 +282,7 @@ __decorate([
288
282
  ], CrdFormComponent.prototype, "formContext$", void 0);
289
283
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CrdFormComponent, [{
290
284
  type: Component,
291
- args: [{ selector: 'acl-crd-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\n auiForm\n [aclScrollToFirstInvalid]=\"!!formErrors\"\n #form=\"ngForm\"\n [auiFormLabelPosition]=\"labelPosition\"\n [auiFormLabelWidth]=\"labelWidth\"\n>\n <!-- normal fields -->\n <ng-container *ngFor=\"let field of normalFields\">\n <acl-operand-field\n [fields]=\"fields\"\n [field]=\"field\"\n [formDataState]=\"formDataState\"\n [readonly]=\"readonly\"\n [customDescription]=\"\n customDescriptions | pure: getCustomDescription:field\n \"\n (valueChange)=\"fieldValueChange($event)\"\n [remoteModuleDefinition]=\"remoteModuleDefinition$ | async\"\n >\n </acl-operand-field>\n </ng-container>\n\n <!-- field groups \u517C\u5BB9\uFF0C\u9700\u8981\u4FDD\u7559-->\n <ng-container *ngFor=\"let group of fieldGroups\">\n <acl-operand-field-group\n [fields]=\"fields\"\n [fieldGroup]=\"group\"\n [formDataState]=\"formDataState\"\n [formErrors]=\"formErrors\"\n [readonly]=\"readonly\"\n (valueChange)=\"fieldValueChange($event)\"\n [customDescriptions]=\"customDescriptions\"\n >\n </acl-operand-field-group>\n </ng-container>\n\n <!-- array field groups \u517C\u5BB9\uFF0C\u9700\u8981\u4FDD\u7559 -->\n <ng-container *ngFor=\"let group of arrayFieldGroups\">\n <acl-operand-array-field-group\n [arrayFieldGroup]=\"group\"\n [formDataState]=\"formDataState\"\n [readonly]=\"readonly\"\n (valueChange)=\"fieldValueChange($event)\"\n (itemRemove)=\"deleteFormData($event)\"\n >\n </acl-operand-array-field-group>\n </ng-container>\n\n <!-- advanced fields -->\n <ng-container *ngIf=\"advancedFields?.length\">\n <acl-operand-advanced-field-group\n [fields]=\"fields\"\n [fieldList]=\"advancedFields\"\n [formDataState]=\"formDataState\"\n [readonly]=\"readonly\"\n (valueChange)=\"fieldValueChange($event)\"\n ></acl-operand-advanced-field-group>\n </ng-container>\n</form>\n", styles: [":host{width:100%}\n"] }]
285
+ args: [{ selector: 'acl-crd-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\n auiForm\n [aclScrollToFirstInvalid]=\"!!formErrors\"\n #form=\"ngForm\"\n [auiFormLabelPosition]=\"labelPosition\"\n [auiFormLabelWidth]=\"labelWidth\"\n>\n <!-- normal fields -->\n <ng-container *ngFor=\"let field of normalFields\">\n <acl-operand-field\n [fields]=\"fields\"\n [field]=\"field\"\n [formDataState]=\"formDataState\"\n [readonly]=\"readonly\"\n (valueChange)=\"fieldValueChange($event)\"\n [remoteModuleDefinition]=\"remoteModuleDefinition$ | async\"\n >\n </acl-operand-field>\n </ng-container>\n\n <!-- field groups \u517C\u5BB9\uFF0C\u9700\u8981\u4FDD\u7559-->\n <ng-container *ngFor=\"let group of fieldGroups\">\n <acl-operand-field-group\n [fields]=\"fields\"\n [fieldGroup]=\"group\"\n [formDataState]=\"formDataState\"\n [formErrors]=\"formErrors\"\n [readonly]=\"readonly\"\n (valueChange)=\"fieldValueChange($event)\"\n >\n </acl-operand-field-group>\n </ng-container>\n\n <!-- array field groups \u517C\u5BB9\uFF0C\u9700\u8981\u4FDD\u7559 -->\n <ng-container *ngFor=\"let group of arrayFieldGroups\">\n <acl-operand-array-field-group\n [arrayFieldGroup]=\"group\"\n [formDataState]=\"formDataState\"\n [readonly]=\"readonly\"\n (valueChange)=\"fieldValueChange($event)\"\n (itemRemove)=\"deleteFormData($event)\"\n >\n </acl-operand-array-field-group>\n </ng-container>\n\n <!-- advanced fields -->\n <ng-container *ngIf=\"advancedFields?.length\">\n <acl-operand-advanced-field-group\n [fields]=\"fields\"\n [fieldList]=\"advancedFields\"\n [formDataState]=\"formDataState\"\n [readonly]=\"readonly\"\n (valueChange)=\"fieldValueChange($event)\"\n ></acl-operand-advanced-field-group>\n </ng-container>\n</form>\n", styles: [":host{width:100%}\n"] }]
292
286
  }], () => [{ type: i1.RemoteWidgetsService }], { openApiSchema: [{
293
287
  type: Input
294
288
  }], descriptors: [{
@@ -324,11 +318,8 @@ __decorate([
324
318
  }], form: [{
325
319
  type: ViewChild,
326
320
  args: ['form', { static: true }]
327
- }], customDescriptions: [{
328
- type: ContentChildren,
329
- args: [CrdFormCustomDescriptionDirective]
330
321
  }], widgets: [{
331
322
  type: Input
332
323
  }] }); })();
333
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CrdFormComponent, { className: "CrdFormComponent", filePath: "lib/crd-form/component.ts", lineNumber: 64 }); })();
334
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmQtZm9ybS9zcmMvbGliL2NyZC1mb3JtL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3JkLWZvcm0vc3JjL2xpYi9jcmQtZm9ybS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFFTCxlQUFlLEdBRWhCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFFVCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RCxPQUFPLEVBU0wsY0FBYyxHQUNmLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFDTCxpQ0FBaUMsRUFDakMsY0FBYyxFQUNkLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsYUFBYSxFQUNiLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLGVBQWUsR0FDaEIsTUFBTSxVQUFVLENBQUM7QUFFbEIs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QXpCLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csVUFBVTtrQkFBbEIsS0FBSztZQUNHLGFBQWE7a0JBQXJCLEtBQUs7WUFFRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxTQUFTO2tCQUFqQixLQUFLO1lBRUcsV0FBVztrQkFBbkIsS0FBSztZQUNhLFlBQVksTUFFdEIsYUFBYTtrQkFBckIsS0FBSztZQUVHLHlCQUF5QjtrQkFBakMsS0FBSztZQUVHLFNBQVM7a0JBQWpCLEtBQUs7WUFFSSxlQUFlO2tCQUF4QixNQUFNO1lBRUcsZ0JBQWdCO2tCQUF6QixNQUFNO1lBR1AsSUFBSTtrQkFESCxTQUFTO21CQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFJbkMsa0JBQWtCO2tCQURqQixlQUFlO21CQUFDLGlDQUFpQztZQUlsRCxPQUFPO2tCQUROLEtBQUs7O2tGQWhDSyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQge1xuICBEaWN0aW9uYXJ5LFxuICBPYnNlcnZhYmxlSW5wdXQsXG4gIE9wZW5BUElWM1NjaGVtYU9iamVjdCxcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMaXN0LCBNYXAgYXMgJE1hcCwgZnJvbUpTIH0gZnJvbSAnaW1tdXRhYmxlJztcbmltcG9ydCB7IGZsYXR0ZW5EZWVwLCBmcm9tUGFpcnMsIGlzRW1wdHksIHVuaXEgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBSZW1vdGVXaWRnZXRzU2VydmljZSB9IGZyb20gJy4uL3JlbW90ZS13aWRnZXRzJztcbmltcG9ydCB7XG4gIERlc2NyaXB0b3IsXG4gIEZpZWxkVmFsdWVDaGFuZ2VFdmVudCxcbiAgRm9ybURhdGFTdGF0ZSxcbiAgRm9ybUVycm9ycyxcbiAgRm9ybVN0YXRlLFxuICBPcGVyYW5kQXJyYXlGaWVsZEdyb3VwLFxuICBPcGVyYW5kRmllbGQsXG4gIE9wZXJhbmRGaWVsZEdyb3VwLFxuICBTcGVjQ2FwYWJpbGl0eSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgQ3JkRm9ybUN1c3RvbURlc2NyaXB0aW9uRGlyZWN0aXZlLFxuICBwYXJzZUFycmF5UGF0aCxcbiAgU0NIRU1BX1BBVEgsXG4gIGNyZWF0ZUNhcGFiaWxpdHlGaWVsZCxcbiAgbm9ybWFsaXplUGF0aCxcbiAgcGF0aFRvQXJyYXksXG4gIGdldEN1c3RvbURlc2NyaXB0aW9uLFxuICBnZXRPcGVyYW5kUGF0aCxcbiAgZ2V0UGF0aEZyb21UYWdQYXRoLFxuICBnZXRGaWVsZHNCeVBhdGgsXG4gIGZpZWxkU2hvdWxkUmV2ZWFsLFxuICBnZXREZWZhdWx0VmFsdWUsXG59IGZyb20gJy4uL3V0aWxzJztcblxuaW1wb3J0IHtcbiAgZGlmZmVyUGF0aHNUYWcsXG4gIGdldEFsbE90aGVyVGFnUGF0aCxcbiAgbWF0Y2hWYWx1ZUFnYWluc3RPbmVPZixcbn0gZnJvbSAnLi9oZWxwZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtY3JkLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnc3R5bGVzLnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENyZEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBvcGVuQXBpU2NoZW1hOiBPcGVuQVBJVjNTY2hlbWFPYmplY3Q7XG4gIEBJbnB1dCgpIGRlc2NyaXB0b3JzOiBEZXNjcmlwdG9yW107XG4gIEBJbnB1dCgpIGRhdGE6IHVua25vd247XG4gIEBJbnB1dCgpIGRlYnVnID0gZmFsc2U7XG4gIEBJbnB1dCgpIG9wZW5BcGlTY2hlbWFQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSA9IFNDSEVNQV9QQVRIO1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBsYWJlbFdpZHRoOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsUG9zaXRpb246IExhYmVsUG9zaXRpb24gPSBMYWJlbFBvc2l0aW9uLlJpZ2h0O1xuXG4gIEBJbnB1dCgpIGNsdXN0ZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWVzcGFjZT86IHN0cmluZztcblxuICBASW5wdXQoKSBmb3JtQ29udGV4dDogYW55O1xuICBAT2JzZXJ2YWJsZUlucHV0KCkgZm9ybUNvbnRleHQkOiBPYnNlcnZhYmxlPGFueT47XG5cbiAgQElucHV0KCkga2VlcEVtcHR5UGF0aDogYm9vbGVhbjtcblxuICBASW5wdXQoKSBlZmZlY3RDb250cm9sRGVmYXVsdFZhbHVlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHVpQ29udGV4dD86IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgQE91dHB1dCgpIGZvcm1TdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybVN0YXRlPigpO1xuXG4gIEBPdXRwdXQoKSBmb3JtU2NoZW1hQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQFZpZXdDaGlsZCgnZm9ybScsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGZvcm06IE5nRm9ybTtcblxuICBAQ29udGVudENoaWxkcmVuKENyZEZvcm1DdXN0b21EZXNjcmlwdGlvbkRpcmVjdGl2ZSlcbiAgY3VzdG9tRGVzY3JpcHRpb25zOiBRdWVyeUxpc3Q8Q3JkRm9ybUN1c3RvbURlc2NyaXB0aW9uRGlyZWN0aXZlPjtcblxuICBASW5wdXQoKVxuICB3aWRnZXRzOiBBcnJheTx7XG4gICAgZGVzY3JpcHRvcjogc3RyaW5nO1xuICAgIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxhbnk+O1xuICB9PjtcblxuICBmb3JtRGF0YVN0YXRlOiBGb3JtRGF0YVN0YXRlO1xuICBmb3JtRXJyb3JzOiBGb3JtRXJyb3JzID0ge307XG5cbiAgZmllbGRzOiBPcGVyYW5kRmllbGRbXTtcbiAgbm9ybWFsRmllbGRzOiBPcGVyYW5kRmllbGRbXTtcbiAgZmllbGRHcm91cHM6IE9wZXJhbmRGaWVsZEdyb3VwW107XG4gIGFycmF5RmllbGRHcm91cHM6IE9wZXJhbmRBcnJheUZpZWxkR3JvdXBbXTtcbiAgYWR2YW5jZWRGaWVsZHM6IE9wZXJhbmRGaWVsZFtdO1xuICBwcml2YXRlIF9sYXN0VXBkYXRlRmllbGQ6IE9wZXJhbmRGaWVsZDtcblxuICAvLyDkuIDkuKrlhajlsYDnmoQgY29udHJvbE1hcO+8jOaWueS+v+aOp+WItiBmaWVsZCDkuLvliqjmoKHpqozjgIJcbiAgLy8g6K+lIGNvbnRyb2xNYXAg5Lul5Y+K5omA5pyJIGZpZWxkIOmHjOeahCBjb250cm9sIOWunuS+i++8jOmDveaYr+S4uuS6huaVsOaNrui/vei4quS4jumUmeivr+WQjOatpe+8iGNvbnRyb2wuZXJyb3IgLT4gY3JkRm9ybSBlcnJvcu+8ie+8jOacrOi6q+S4jeW9seWTjeaPkOS6pO+8jOeUsSBjcmQtZm9ybSDnmoQgZXJyb3Ig5Y676Zi75aGe5o+Q5Lqk44CCXG4gIGNvbnRyb2xNYXAgPSBuZXcgTWFwPHN0cmluZywgQWJzdHJhY3RDb250cm9sPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcndzOiBSZW1vdGVXaWRnZXRzU2VydmljZSkge31cblxuICByZW1vdGVNb2R1bGVEZWZpbml0aW9uJCA9IHRoaXMucndzLnJlbW90ZU1vZHVsZSQ7XG5cbiAgbmdPbkNoYW5nZXMoeyBvcGVuQXBpU2NoZW1hLCBkZXNjcmlwdG9ycywgZGF0YSB9OiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKG9wZW5BcGlTY2hlbWE/LmN1cnJlbnRWYWx1ZSB8fCBkZXNjcmlwdG9ycz8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLnNldFVwRm9ybSgpO1xuICAgIH0gZWxzZSBpZiAoZGF0YT8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLmZvcm1EYXRhU3RhdGUgPSBmcm9tSlMoZGF0YS5jdXJyZW50VmFsdWUpIGFzIEZvcm1EYXRhU3RhdGU7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q3VzdG9tRGVzY3JpcHRpb24gPSBnZXRDdXN0b21EZXNjcmlwdGlvbjtcblxuICBwcml2YXRlIHNldFVwRm9ybSgpIHtcbiAgICB0aGlzLmZvcm1EYXRhU3RhdGUgPSBmcm9tSlModGhpcy5kYXRhIHx8IHt9KSBhcyBGb3JtRGF0YVN0YXRlO1xuXG4gICAgY29uc3Qge1xuICAgICAgbm9ybWFsRmllbGRzLFxuICAgICAgZmllbGRHcm91cHMsXG4gICAgICBhcnJheUZpZWxkR3JvdXBzLFxuICAgICAgYWR2YW5jZWRGaWVsZHMsXG4gICAgICBkZXNjcmlwdG9yRmllbGRzLFxuICAgICAgb3BlbkFwaUZpZWxkcyxcbiAgICAgIGJhc2ljRmllbGRzLFxuICAgIH0gPSBjcmVhdGVDYXBhYmlsaXR5RmllbGQoXG4gICAgICB0aGlzLmRlc2NyaXB0b3JzIHx8IFtdLFxuICAgICAgdGhpcy5vcGVuQXBpU2NoZW1hIHx8ICh7fSBhcyBPcGVuQVBJVjNTY2hlbWFPYmplY3QpLFxuICAgICAgdGhpcy5kYXRhLFxuICAgICAgdGhpcy5vcGVuQXBpU2NoZW1hUGF0aCxcbiAgICApO1xuXG4gICAgdGhpcy5maWVsZHMgPSBiYXNpY0ZpZWxkcy5maWx0ZXIoZmllbGRTaG91bGRSZXZlYWwpO1xuICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAvKiBlc2xpbnQtZGlzYWJsZSAgbm8tY29uc29sZSAqL1xuICAgICAgY29uc29sZS5pbmZvKCdvcGVuQXBpRmllbGRzOicsIG9wZW5BcGlGaWVsZHMpO1xuICAgICAgY29uc29sZS5pbmZvKCdkZXNjcmlwdG9yRmllbGRzOicsIGRlc2NyaXB0b3JGaWVsZHMpO1xuICAgICAgY29uc29sZS5pbmZvKCdiYXNpY0ZpZWxkczonLCBiYXNpY0ZpZWxkcyk7XG5cbiAgICAgIGNvbnNvbGUuaW5mbygnbm9ybWFsRmllbGRzJywgbm9ybWFsRmllbGRzKTtcblxuICAgICAgY29uc29sZS5pbmZvKCdmaWVsZEdyb3VwczonLCBmaWVsZEdyb3Vwcyk7XG4gICAgICBjb25zb2xlLmluZm8oJ2FycmF5RmllbGRHcm91cHM6JywgYXJyYXlGaWVsZEdyb3Vwcyk7XG4gICAgICBjb25zb2xlLmluZm8oJ2FkdmFuY2VkRmllbGRzOicsIGFkdmFuY2VkRmllbGRzKTtcbiAgICAgIC8qIGVzbGludC1lbmFibGUgbm8tY29uc29sZSAqL1xuICAgIH1cblxuICAgIHRoaXMubm9ybWFsRmllbGRzID0gbm9ybWFsRmllbGRzO1xuICAgIHRoaXMuZmllbGRHcm91cHMgPSBmaWVsZEdyb3VwcztcbiAgICB0aGlzLmFycmF5RmllbGRHcm91cHMgPSBhcnJheUZpZWxkR3JvdXBzO1xuICAgIHRoaXMuYWR2YW5jZWRGaWVsZHMgPSBhZHZhbmNlZEZpZWxkcztcblxuICAgIHRoaXMuZm9ybVNjaGVtYUNoYW5nZS5lbWl0KHtcbiAgICAgIG9wZW5BcGlGaWVsZHMsXG4gICAgICBkZXNjcmlwdG9yRmllbGRzLFxuICAgIH0pO1xuICB9XG5cbiAgLy8g6KKr6ZqQ6JeP6LW35p2l55qE6KGo5Y2V55qE6Lev5b6E6ZuG5ZCIXG4gIGRpcnR5UGF0aHNTZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICBmaWVsZFZhbHVlQ2hhbmdlKGV2ZW50OiBGaWVsZFZhbHVlQ2hhbmdlRXZlbnQpIHtcbiAgICBsZXQgb25jZURpcnR5UGF0aHNTZXQgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuICAgIC8vIFRPRE86IOW+hXJldmlld+ehruiupOWQjuenu+mZpOivpeW8gOWFs1xuICAgIGlmICgodGhpcy5mb3JtQ29udGV4dD8uZ2F0ZXMgYXMgc3RyaW5nW10pPy5pbmNsdWRlcygnb25jZURpcnR5UGF0aHNTZXQnKSkge1xuICAgICAgY29uc3Qgb3BlcmFuZFBhdGggPSBnZXRPcGVyYW5kUGF0aChldmVudC5maWVsZCk7XG4gICAgICAvLyDlpoLmnpzooajljZXooqvpmpDol4/kuJTov5nmrKFjaGFuZ2XmmK/lm6DkuLrnm7TmjqXmlLnlj5jkuobljIXlkKvor6Xot6/lvoTnmoTniLbot6/lvoTnmoTlgLzvvIjkvovlpoLnvJbovpF5YW1s77yJXG4gICAgICAvLyDpgqPlsLHpmLvmraLmraTlrZDot6/lvoTlgLznmoRjaGFuZ2XpgLvovpFcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5kaXJ0eVBhdGhzU2V0LmhhcyhvcGVyYW5kUGF0aCkgJiZcbiAgICAgICAgdGhpcy5fbGFzdFVwZGF0ZUZpZWxkPy5wYXRoICYmXG4gICAgICAgIG9wZXJhbmRQYXRoLnN0YXJ0c1dpdGgoYCR7dGhpcy5fbGFzdFVwZGF0ZUZpZWxkLnBhdGh9LmApXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBvbmNlRGlydHlQYXRoc1NldCA9IHRoaXMuZGlydHlQYXRoc1NldDtcbiAgICB9XG5cbiAgICBjb25zdCBldmVudERhdGEgPSBldmVudC5kYXRhO1xuICAgIGlmIChcbiAgICAgIGV2ZW50LmZpZWxkLmNhcGFiaWxpdGllcy5zb21lKGMgPT4gYy5zdGFydHNXaXRoKFNwZWNDYXBhYmlsaXR5Lm9uZU9mKSlcbiAgICApIHtcbiAgICAgIGNvbnN0IHsgZGlydHlQYXRocywgdmFsaWRQYXRocyB9ID0gdGhpcy5yZXNvbHZlRXhwaXJlZFBhdGgoXG4gICAgICAgIGV2ZW50LmZpZWxkLFxuICAgICAgICBldmVudERhdGEsXG4gICAgICApO1xuXG4gICAgICBkaXJ0eVBhdGhzLmZvckVhY2gocGF0aCA9PiB7XG4gICAgICAgIHRoaXMuZGlydHlQYXRoc1NldC5hZGQobm9ybWFsaXplUGF0aChwYXRoKSk7XG4gICAgICAgIG9uY2VEaXJ0eVBhdGhzU2V0LmFkZChub3JtYWxpemVQYXRoKHBhdGgpKTtcbiAgICAgIH0pO1xuXG4gICAgICB2YWxpZFBhdGhzLmZvckVhY2gocGF0aCA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsaWRQYXRoVmFsdWUocGF0aCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgYWxsT3RoZXJQYXRocyA9IGdldEFsbE90aGVyVGFnUGF0aChcbiAgICAgIHRoaXMuZmllbGRzLFxuICAgICAgQXJyYXkuZnJvbShvbmNlRGlydHlQYXRoc1NldCksXG4gICAgKTtcbiAgICBjb25zdCByZW1vdmVkUGF0aHMgPSB1bmlxKFxuICAgICAgLy8g5ZCM5LiAIHBhdGgg5Y+v6IO95pyJ5aSa5LiqIHRhZ++8jOWBh+iuvuafkOS4qiB0YWdnZWQgcGF0aCDmnInmlYjvvIzliJnlhbblr7nlupQgcGF0aCDmlbDmja7kuI3lupTor6XliKDpmaRcbiAgICAgIGRpZmZlclBhdGhzVGFnKEFycmF5LmZyb20ob25jZURpcnR5UGF0aHNTZXQpLCBhbGxPdGhlclBhdGhzKS5tYXAocGF0aCA9PlxuICAgICAgICBnZXRQYXRoRnJvbVRhZ1BhdGgocGF0aCksXG4gICAgICApLFxuICAgICkuZmlsdGVyKFxuICAgICAgLy8g5Y+q5riF56m65Y+25a2Q57uT54K577yM5Lul6YCC6YWNIHlhbWwg5oOF5Ya1XG4gICAgICBwYXRoID0+XG4gICAgICAgICF0aGlzLmZpZWxkcy5zb21lKGZpZWxkID0+IHtcbiAgICAgICAgICBjb25zdCBpc1BhcmVudFBhdGggPSBmaWVsZC5wYXRoLnN0YXJ0c1dpdGgoYCR7cGF0aH0uYCk7XG4gICAgICAgICAgaWYgKGlzUGFyZW50UGF0aCkge1xuICAgICAgICAgICAgLy8g6K+lIGZpZWxkIOS6puS4uiBkaXJ0ee+8jOS4jeS7peS4uuS+neaNrlxuICAgICAgICAgICAgcmV0dXJuICFvbmNlRGlydHlQYXRoc1NldC5oYXMoZmllbGQucGF0aCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSksXG4gICAgKTtcbiAgICBpZiAoZXZlbnREYXRhID09IG51bGwgJiYgIXRoaXMua2VlcEVtcHR5UGF0aCkge1xuICAgICAgaWYgKCFvbmNlRGlydHlQYXRoc1NldC5oYXMoZ2V0T3BlcmFuZFBhdGgoZXZlbnQuZmllbGQpKSkge1xuICAgICAgICB0aGlzLmRlbGV0ZUZvcm1EYXRhKGV2ZW50LmZpZWxkLnBhdGgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZUZvcm1EYXRhKGV2ZW50LmZpZWxkLCBldmVudERhdGEpO1xuICAgIH1cblxuICAgIHJlbW92ZWRQYXRocy5mb3JFYWNoKHBhdGggPT4ge1xuICAgICAgdGhpcy5kZWxldGVGb3JtRGF0YShwYXRoKTtcbiAgICB9KTtcbiAgICB0aGlzLnJlZnJlc2hWYWxpZGF0aW9uKCk7XG4gICAgdGhpcy5mb3JtU3RhdGVDaGFuZ2UuZW1pdCh7XG4gICAgICBkYXRhOiB0aGlzLmZvcm1EYXRhU3RhdGUudG9KUygpLFxuICAgICAgZXJyb3JzOiB0aGlzLmZvcm1FcnJvcnMsXG4gICAgfSk7XG4gIH1cblxuICBkZWxldGVGb3JtRGF0YShwYXRoOiBzdHJpbmcpIHtcbiAgICB0aGlzLmZvcm1EYXRhU3RhdGUgPSB0aGlzLmZvcm1EYXRhU3RhdGUuZGVsZXRlSW4ocGF0aFRvQXJyYXkocGF0aCkpO1xuICAgIHRoaXMuY29udHJvbE1hcC5nZXQocGF0aCk/LnNldFZhbHVlKG51bGwpO1xuXG4gICAgdGhpcy5mb3JtU3RhdGVDaGFuZ2UuZW1pdCh7XG4gICAgICBkYXRhOiB0aGlzLmZvcm1EYXRhU3RhdGUudG9KUygpLFxuICAgICAgZXJyb3JzOiB0aGlzLmZvcm1FcnJvcnMsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVZhbGlkUGF0aFZhbHVlKHBhdGg6IHN0cmluZykge1xuICAgIC8vIOWmguaenOacieaViOi3r+W+hOaYr+S4iuS4gOasoeeahOaXoOaViOi3r+W+hO+8jOWImeaEj+WRs+edgOivpei3r+W+hOeahOWAvOWcqOS4iuasoeiiq+mHjee9ruS6hu+8jOaJgOS7peW9k+ivpei3r+W+hOWPiOmcgOimgeaYvuekuue7meeUqOaIt+aXtuW6lOivpeS9v+eUqOm7mOiupOWAvFxuICAgIGNvbnN0IHVzZURlZmF1bHQgPSB0aGlzLmRpcnR5UGF0aHNTZXQuaGFzKG5vcm1hbGl6ZVBhdGgocGF0aCkpO1xuICAgIHRoaXMuZGlydHlQYXRoc1NldC5kZWxldGUobm9ybWFsaXplUGF0aChwYXRoKSk7XG4gICAgLy8g5aaC5p6c5a+55LiA57uE6KGo5Y2V6YO95pyJ5L6d6LWW77yM6YKj6Lev5b6E5Y+v6IO95piv6L+Z57uE6KGo5Y2V55qE54i26Lev5b6E77yM5omA5Lul6ZyA6KaB5oqK5omA5pyJ5a2Q5a2Z6YO95om+5Ye65p2lXG4gICAgY29uc3QgZmllbGRzID0gZ2V0RmllbGRzQnlQYXRoKHBhdGgsIFtcbiAgICAgIC4uLnRoaXMubm9ybWFsRmllbGRzLFxuICAgICAgLi4uZmxhdHRlbkRlZXAodGhpcy5maWVsZEdyb3Vwcy5tYXAoZ3JvdXAgPT4gZ3JvdXAuZmllbGRMaXN0KSksXG4gICAgICAuLi5mbGF0dGVuRGVlcChcbiAgICAgICAgdGhpcy5hcnJheUZpZWxkR3JvdXBzLm1hcChhcnJheUdyb3VwID0+IGFycmF5R3JvdXAuZmllbGRMaXN0cyksXG4gICAgICApLFxuICAgICAgLi4udGhpcy5hZHZhbmNlZEZpZWxkcyxcbiAgICBdKTtcbiAgICBmaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAvLyDnkIborrrkuIogb25lb2Yg5Y+q5b2x5ZON6KeG5Zu+77yM5L2G5a6e6ZmF6L+Y5Lya5b2x5ZONIGZvcm1EYXRhU3RhdGXvvIzmiYDku6XpnIDopoHlkIzmraXmm7TmlrAgZm9ybURhdGFTdGF0ZVxuICAgICAgbGV0IHZhbHVlID0gdGhpcy5jb250cm9sTWFwLmdldChnZXRPcGVyYW5kUGF0aChmaWVsZCkpLnZhbHVlO1xuICAgICAgaWYgKCF2YWx1ZSAmJiB1c2VEZWZhdWx0KSB7XG4gICAgICAgIHZhbHVlID0gZ2V0RGVmYXVsdFZhbHVlKGZpZWxkKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlRm9ybURhdGEoZmllbGQsIHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRm9ybURhdGEoZmllbGQ6IE9wZXJhbmRGaWVsZCwgZGF0YTogdW5rbm93bikge1xuICAgIGlmICghZmllbGQpIHJldHVybjtcbiAgICBjb25zdCB7IG1hdGNoLCBpbmRleCwgcGF0aEJlZm9yZUluZGV4LCBwYXRoQWZ0ZXJJbmRleCB9ID0gcGFyc2VBcnJheVBhdGgoXG4gICAgICBmaWVsZC5wYXRoLFxuICAgICk7XG4gICAgaWYgKG1hdGNoICYmIGluZGV4ID09PSAwKSB7XG4gICAgICB0aGlzLmZvcm1EYXRhU3RhdGUgPSB0aGlzLmluaXRpYWxpemVGb3JtRGF0YUFycmF5UHJvcGVydHkoXG4gICAgICAgIHRoaXMuZm9ybURhdGFTdGF0ZSxcbiAgICAgICAgcGF0aEJlZm9yZUluZGV4LFxuICAgICAgICBwYXRoQWZ0ZXJJbmRleCxcbiAgICAgICAgZGF0YSxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuZm9ybURhdGFTdGF0ZSA9IHRoaXMuZm9ybURhdGFTdGF0ZS5zZXRJbihcbiAgICAgIHBhdGhUb0FycmF5KGZpZWxkLnBhdGgpLFxuICAgICAgZGF0YSxcbiAgICApO1xuICAgIHRoaXMuX2xhc3RVcGRhdGVGaWVsZCA9IGZpZWxkO1xuICB9XG5cbiAgcmVmcmVzaFZhbGlkYXRpb24oKSB7XG4gICAgY29uc3QgZXJyb3JzID0gQXJyYXkuZnJvbSh0aGlzLmNvbnRyb2xNYXApLnJlZHVjZShcbiAgICAgIChhY2MsIFtwYXRoV2l0aFRhZywgY29udHJvbF0pID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZGlydHlQYXRoc1NldC5oYXMocGF0aFdpdGhUYWcpKSB7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXRoID0gZ2V0UGF0aEZyb21UYWdQYXRoKHBhdGhXaXRoVGFnKTtcbiAgICAgICAgYWNjW3BhdGhdID0gaXNFbXB0eShjb250cm9sLmVycm9ycykgPyBudWxsIDogY29udHJvbC5lcnJvcnM7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LFxuICAgICAge30gYXMgRGljdGlvbmFyeTxGb3JtRXJyb3JzPixcbiAgICApO1xuICAgIGNvbnN0IHJlc3VsdCA9IGZyb21QYWlycyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKGVycm9ycyA/PyB7fSkuZmlsdGVyKChbX2ssIHZdKSA9PiAhIXYpLFxuICAgICk7XG5cbiAgICB0aGlzLmZvcm1FcnJvcnMgPSBpc0VtcHR5KHJlc3VsdCkgPyBudWxsIDogcmVzdWx0O1xuICB9XG5cbiAgLy8g5b2T5p+Q5LiqIGZpZWxkIOWPkeeUn+aVsOaNruWPmOWMlu+8jOi/lOWbnuWFtuebuOWFsyBvbmVPZiBwYXRoIOaYr+WQpuW6lOivpeenu+mZpFxuICAvLyDku4XlvZPlvZPliY0gZmllbGQg5LitIG9uZU9mIOadoeS7tuS4juW9k+WJjeaVsOaNruS4jeWMuemFje+8jFxuICBwcml2YXRlIHJlc29sdmVFeHBpcmVkUGF0aChmaWVsZDogT3BlcmFuZEZpZWxkLCBjdXJyZW50VmFsdWU6IGFueSkge1xuICAgIGNvbnN0IHsgZGlydHlQYXRocywgdmFsaWRQYXRocyB9ID0gbWF0Y2hWYWx1ZUFnYWluc3RPbmVPZihcbiAgICAgIGZpZWxkLFxuICAgICAgY3VycmVudFZhbHVlLFxuICAgICk7XG4gICAgY29uc3Qgb3RoZXJGaWVsZFN0YXR1cyA9IHRoaXMuZmllbGRzXG4gICAgICAuZmlsdGVyKGkgPT4gZ2V0T3BlcmFuZFBhdGgoaSkgIT09IGdldE9wZXJhbmRQYXRoKGZpZWxkKSlcbiAgICAgIC5tYXAoZmllbGQgPT4gKHtcbiAgICAgICAgcGF0aDogZ2V0T3BlcmFuZFBhdGgoZmllbGQpLFxuICAgICAgICByZXN1bHQ6IG1hdGNoVmFsdWVBZ2FpbnN0T25lT2YoXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgdGhpcy5jb250cm9sTWFwLmdldChnZXRPcGVyYW5kUGF0aChmaWVsZCkpPy52YWx1ZSxcbiAgICAgICAgKSxcbiAgICAgIH0pKTtcblxuICAgIGNvbnN0IG5ld0RpcnR5UGF0aHMgPSB2YWxpZFBhdGhzLmZpbHRlcihwYXRoID0+IHtcbiAgICAgIC8vIOW9k+WJjSB2YWxpZCBwYXRoIOWcqOWFtuS7liBmaWVsZCDkuK3kuLogZGlydHnvvIzoi6Xor6UgZmllbGQg5pys6Lqr5Lmf5Li6IGRpcnR5IOWImeW/veeVpeivpeW9seWTje+8jOS7jeeEtuWIpOWumuS4uiB2YWxpZO+8jOWQpuWIme+8iOivpSBmaWVsZCDmnInmlYjvvInorqTlrprkuLogZGlydHlcbiAgICAgIGNvbnN0IGZpZWxkQ2FuZGlkYXRlcyA9IG90aGVyRmllbGRTdGF0dXMuZmlsdGVyKHN0YXR1cyA9PlxuICAgICAgICBzdGF0dXMucmVzdWx0LmRpcnR5UGF0aHMuaW5jbHVkZXMocGF0aCksXG4gICAgICApO1xuICAgICAgcmV0dXJuIGZpZWxkQ2FuZGlkYXRlcy5zb21lKFxuICAgICAgICAoeyBwYXRoIH0pID0+XG4gICAgICAgICAgIW90aGVyRmllbGRTdGF0dXMuc29tZShzdGF0dXMgPT5cbiAgICAgICAgICAgIHN0YXR1cy5yZXN1bHQuZGlydHlQYXRocy5pbmNsdWRlcyhwYXRoKSxcbiAgICAgICAgICApLFxuICAgICAgKTtcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgZGlydHlQYXRoczogWy4uLmRpcnR5UGF0aHMsIC4uLm5ld0RpcnR5UGF0aHNdLFxuICAgICAgdmFsaWRQYXRoczogdmFsaWRQYXRocy5maWx0ZXIocGF0aCA9PiAhbmV3RGlydHlQYXRocy5pbmNsdWRlcyhwYXRoKSksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUZvcm1EYXRhQXJyYXlQcm9wZXJ0eShcbiAgICBzdGF0ZTogRm9ybURhdGFTdGF0ZSxcbiAgICBwYXRoQmVmb3JlSW5kZXg6IHN0cmluZyxcbiAgICBwYXRoQWZ0ZXJJbmRleDogc3RyaW5nLFxuICAgIHZhbHVlOiBhbnksXG4gICkge1xuICAgIGlmIChzdGF0ZS5nZXRJbihbLi4ucGF0aFRvQXJyYXkocGF0aEJlZm9yZUluZGV4KSwgMF0pKSB7XG4gICAgICByZXR1cm4gc3RhdGU7XG4gICAgfVxuICAgIGNvbnN0IGl0ZW0gPSAkTWFwKHt9KS5zZXRJbihwYXRoVG9BcnJheShwYXRoQWZ0ZXJJbmRleCksIHZhbHVlKTtcbiAgICBjb25zdCBsaXN0ID0gTGlzdChbaXRlbV0pO1xuICAgIHJldHVybiBzdGF0ZS5zZXRJbihwYXRoVG9BcnJheShwYXRoQmVmb3JlSW5kZXgpLCBsaXN0KTtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLnJlZnJlc2hWYWxpZGF0aW9uKCk7XG4gICAgdGhpcy5mb3JtLm9uU3VibWl0KG51bGwpO1xuICB9XG59XG4iLCI8Zm9ybVxuICBhdWlGb3JtXG4gIFthY2xTY3JvbGxUb0ZpcnN0SW52YWxpZF09XCIhIWZvcm1FcnJvcnNcIlxuICAjZm9ybT1cIm5nRm9ybVwiXG4gIFthdWlGb3JtTGFiZWxQb3NpdGlvbl09XCJsYWJlbFBvc2l0aW9uXCJcbiAgW2F1aUZvcm1MYWJlbFdpZHRoXT1cImxhYmVsV2lkdGhcIlxuPlxuICA8IS0tIG5vcm1hbCBmaWVsZHMgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIG5vcm1hbEZpZWxkc1wiPlxuICAgIDxhY2wtb3BlcmFuZC1maWVsZFxuICAgICAgW2ZpZWxkc109XCJmaWVsZHNcIlxuICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgIFtmb3JtRGF0YVN0YXRlXT1cImZvcm1EYXRhU3RhdGVcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFtjdXN0b21EZXNjcmlwdGlvbl09XCJcbiAgICAgICAgY3VzdG9tRGVzY3JpcHRpb25zIHwgcHVyZTogZ2V0Q3VzdG9tRGVzY3JpcHRpb246ZmllbGRcbiAgICAgIFwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwiZmllbGRWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtyZW1vdGVNb2R1bGVEZWZpbml0aW9uXT1cInJlbW90ZU1vZHVsZURlZmluaXRpb24kIHwgYXN5bmNcIlxuICAgID5cbiAgICA8L2FjbC1vcGVyYW5kLWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIGZpZWxkIGdyb3VwcyDlhbzlrrnvvIzpnIDopoHkv53nlZktLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgZmllbGRHcm91cHNcIj5cbiAgICA8YWNsLW9wZXJhbmQtZmllbGQtZ3JvdXBcbiAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgICAgIFtmaWVsZEdyb3VwXT1cImdyb3VwXCJcbiAgICAgIFtmb3JtRGF0YVN0YXRlXT1cImZvcm1EYXRhU3RhdGVcIlxuICAgICAgW2Zvcm1FcnJvcnNdPVwiZm9ybUVycm9yc1wiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cImZpZWxkVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBbY3VzdG9tRGVzY3JpcHRpb25zXT1cImN1c3RvbURlc2NyaXB0aW9uc1wiXG4gICAgPlxuICAgIDwvYWNsLW9wZXJhbmQtZmllbGQtZ3JvdXA+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gYXJyYXkgZmllbGQgZ3JvdXBzIOWFvOWuue+8jOmcgOimgeS/neeVmSAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgYXJyYXlGaWVsZEdyb3Vwc1wiPlxuICAgIDxhY2wtb3BlcmFuZC1hcnJheS1maWVsZC1ncm91cFxuICAgICAgW2FycmF5RmllbGRHcm91cF09XCJncm91cFwiXG4gICAgICBbZm9ybURhdGFTdGF0ZV09XCJmb3JtRGF0YVN0YXRlXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwiZmllbGRWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChpdGVtUmVtb3ZlKT1cImRlbGV0ZUZvcm1EYXRhKCRldmVudClcIlxuICAgID5cbiAgICA8L2FjbC1vcGVyYW5kLWFycmF5LWZpZWxkLWdyb3VwPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIGFkdmFuY2VkIGZpZWxkcyAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFkdmFuY2VkRmllbGRzPy5sZW5ndGhcIj5cbiAgICA8YWNsLW9wZXJhbmQtYWR2YW5jZWQtZmllbGQtZ3JvdXBcbiAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgICAgIFtmaWVsZExpc3RdPVwiYWR2YW5jZWRGaWVsZHNcIlxuICAgICAgW2Zvcm1EYXRhU3RhdGVdPVwiZm9ybURhdGFTdGF0ZVwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cImZpZWxkVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvYWNsLW9wZXJhbmQtYWR2YW5jZWQtZmllbGQtZ3JvdXA+XG4gIDwvbmctY29udGFpbmVyPlxuPC9mb3JtPlxuIl19
324
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CrdFormComponent, { className: "CrdFormComponent", filePath: "lib/crd-form/component.ts", lineNumber: 60 }); })();
325
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmQtZm9ybS9zcmMvbGliL2NyZC1mb3JtL2NvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3JkLWZvcm0vc3JjL2xpYi9jcmQtZm9ybS90ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFFTCxlQUFlLEdBRWhCLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekQsT0FBTyxFQVNMLGNBQWMsR0FDZixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsYUFBYSxFQUNiLFdBQVcsRUFDWCxjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsZUFBZSxHQUNoQixNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQ0wsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixzQkFBc0IsR0FDdkIs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YTtrQkFBckIsS0FBSztZQUVHLE9BQU87a0JBQWYsS0FBSztZQUNHLFNBQVM7a0JBQWpCLEtBQUs7WUFFRyxXQUFXO2tCQUFuQixLQUFLO1lBQ2EsWUFBWSxNQUV0QixhQUFhO2tCQUFyQixLQUFLO1lBRUcseUJBQXlCO2tCQUFqQyxLQUFLO1lBRUcsU0FBUztrQkFBakIsS0FBSztZQUVJLGVBQWU7a0JBQXhCLE1BQU07WUFFRyxnQkFBZ0I7a0JBQXpCLE1BQU07WUFHUCxJQUFJO2tCQURILFNBQVM7bUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUluQyxPQUFPO2tCQUROLEtBQUs7O2tGQTdCSyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYWJlbFBvc2l0aW9uIH0gZnJvbSAnQGFsYXVkYS91aSc7XG5pbXBvcnQge1xuICBEaWN0aW9uYXJ5LFxuICBPYnNlcnZhYmxlSW5wdXQsXG4gIE9wZW5BUElWM1NjaGVtYU9iamVjdCxcbn0gZnJvbSAnQGFsYXVkYS1mZS9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExpc3QsIE1hcCBhcyAkTWFwLCBmcm9tSlMgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IHsgZmxhdHRlbkRlZXAsIGZyb21QYWlycywgaXNFbXB0eSwgdW5pcSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFJlbW90ZVdpZGdldHNTZXJ2aWNlIH0gZnJvbSAnLi4vcmVtb3RlLXdpZGdldHMnO1xuaW1wb3J0IHtcbiAgRGVzY3JpcHRvcixcbiAgRmllbGRWYWx1ZUNoYW5nZUV2ZW50LFxuICBGb3JtRGF0YVN0YXRlLFxuICBGb3JtRXJyb3JzLFxuICBGb3JtU3RhdGUsXG4gIE9wZXJhbmRBcnJheUZpZWxkR3JvdXAsXG4gIE9wZXJhbmRGaWVsZCxcbiAgT3BlcmFuZEZpZWxkR3JvdXAsXG4gIFNwZWNDYXBhYmlsaXR5LFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge1xuICBwYXJzZUFycmF5UGF0aCxcbiAgU0NIRU1BX1BBVEgsXG4gIGNyZWF0ZUNhcGFiaWxpdHlGaWVsZCxcbiAgbm9ybWFsaXplUGF0aCxcbiAgcGF0aFRvQXJyYXksXG4gIGdldE9wZXJhbmRQYXRoLFxuICBnZXRQYXRoRnJvbVRhZ1BhdGgsXG4gIGdldEZpZWxkc0J5UGF0aCxcbiAgZmllbGRTaG91bGRSZXZlYWwsXG4gIGdldERlZmF1bHRWYWx1ZSxcbn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQge1xuICBkaWZmZXJQYXRoc1RhZyxcbiAgZ2V0QWxsT3RoZXJUYWdQYXRoLFxuICBtYXRjaFZhbHVlQWdhaW5zdE9uZU9mLFxufSBmcm9tICcuL2hlbHBlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1jcmQtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAndGVtcGxhdGUuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzdHlsZXMuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ3JkRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG9wZW5BcGlTY2hlbWE6IE9wZW5BUElWM1NjaGVtYU9iamVjdDtcbiAgQElucHV0KCkgZGVzY3JpcHRvcnM6IERlc2NyaXB0b3JbXTtcbiAgQElucHV0KCkgZGF0YTogdW5rbm93bjtcbiAgQElucHV0KCkgZGVidWcgPSBmYWxzZTtcbiAgQElucHV0KCkgb3BlbkFwaVNjaGVtYVBhdGg6IHN0cmluZyB8IHN0cmluZ1tdID0gU0NIRU1BX1BBVEg7XG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxhYmVsV2lkdGg6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWxQb3NpdGlvbjogTGFiZWxQb3NpdGlvbiA9IExhYmVsUG9zaXRpb24uUmlnaHQ7XG5cbiAgQElucHV0KCkgY2x1c3Rlcj86IHN0cmluZztcbiAgQElucHV0KCkgbmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIGZvcm1Db250ZXh0OiBhbnk7XG4gIEBPYnNlcnZhYmxlSW5wdXQoKSBmb3JtQ29udGV4dCQ6IE9ic2VydmFibGU8YW55PjtcblxuICBASW5wdXQoKSBrZWVwRW1wdHlQYXRoOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGVmZmVjdENvbnRyb2xEZWZhdWx0VmFsdWU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgdWlDb250ZXh0PzogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICBAT3V0cHV0KCkgZm9ybVN0YXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtU3RhdGU+KCk7XG5cbiAgQE91dHB1dCgpIGZvcm1TY2hlbWFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBAVmlld0NoaWxkKCdmb3JtJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgZm9ybTogTmdGb3JtO1xuXG4gIEBJbnB1dCgpXG4gIHdpZGdldHM6IEFycmF5PHtcbiAgICBkZXNjcmlwdG9yOiBzdHJpbmc7XG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPGFueT47XG4gIH0+O1xuXG4gIGZvcm1EYXRhU3RhdGU6IEZvcm1EYXRhU3RhdGU7XG4gIGZvcm1FcnJvcnM6IEZvcm1FcnJvcnMgPSB7fTtcblxuICBmaWVsZHM6IE9wZXJhbmRGaWVsZFtdO1xuICBub3JtYWxGaWVsZHM6IE9wZXJhbmRGaWVsZFtdO1xuICBmaWVsZEdyb3VwczogT3BlcmFuZEZpZWxkR3JvdXBbXTtcbiAgYXJyYXlGaWVsZEdyb3VwczogT3BlcmFuZEFycmF5RmllbGRHcm91cFtdO1xuICBhZHZhbmNlZEZpZWxkczogT3BlcmFuZEZpZWxkW107XG4gIHByaXZhdGUgX2xhc3RVcGRhdGVGaWVsZDogT3BlcmFuZEZpZWxkO1xuXG4gIC8vIOS4gOS4quWFqOWxgOeahCBjb250cm9sTWFw77yM5pa55L6/5o6n5Yi2IGZpZWxkIOS4u+WKqOagoemqjOOAglxuICAvLyDor6UgY29udHJvbE1hcCDku6Xlj4rmiYDmnIkgZmllbGQg6YeM55qEIGNvbnRyb2wg5a6e5L6L77yM6YO95piv5Li65LqG5pWw5o2u6L+96Liq5LiO6ZSZ6K+v5ZCM5q2l77yIY29udHJvbC5lcnJvciAtPiBjcmRGb3JtIGVycm9y77yJ77yM5pys6Lqr5LiN5b2x5ZON5o+Q5Lqk77yM55SxIGNyZC1mb3JtIOeahCBlcnJvciDljrvpmLvloZ7mj5DkuqTjgIJcbiAgY29udHJvbE1hcCA9IG5ldyBNYXA8c3RyaW5nLCBBYnN0cmFjdENvbnRyb2w+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByd3M6IFJlbW90ZVdpZGdldHNTZXJ2aWNlKSB7fVxuXG4gIHJlbW90ZU1vZHVsZURlZmluaXRpb24kID0gdGhpcy5yd3MucmVtb3RlTW9kdWxlJDtcblxuICBuZ09uQ2hhbmdlcyh7IG9wZW5BcGlTY2hlbWEsIGRlc2NyaXB0b3JzLCBkYXRhIH06IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAob3BlbkFwaVNjaGVtYT8uY3VycmVudFZhbHVlIHx8IGRlc2NyaXB0b3JzPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuc2V0VXBGb3JtKCk7XG4gICAgfSBlbHNlIGlmIChkYXRhPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuZm9ybURhdGFTdGF0ZSA9IGZyb21KUyhkYXRhLmN1cnJlbnRWYWx1ZSkgYXMgRm9ybURhdGFTdGF0ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFVwRm9ybSgpIHtcbiAgICB0aGlzLmZvcm1EYXRhU3RhdGUgPSBmcm9tSlModGhpcy5kYXRhIHx8IHt9KSBhcyBGb3JtRGF0YVN0YXRlO1xuXG4gICAgY29uc3Qge1xuICAgICAgbm9ybWFsRmllbGRzLFxuICAgICAgZmllbGRHcm91cHMsXG4gICAgICBhcnJheUZpZWxkR3JvdXBzLFxuICAgICAgYWR2YW5jZWRGaWVsZHMsXG4gICAgICBkZXNjcmlwdG9yRmllbGRzLFxuICAgICAgb3BlbkFwaUZpZWxkcyxcbiAgICAgIGJhc2ljRmllbGRzLFxuICAgICAgdHJlZUZpZWxkcyxcbiAgICB9ID0gY3JlYXRlQ2FwYWJpbGl0eUZpZWxkKFxuICAgICAgdGhpcy5kZXNjcmlwdG9ycyB8fCBbXSxcbiAgICAgIHRoaXMub3BlbkFwaVNjaGVtYSB8fCAoe30gYXMgT3BlbkFQSVYzU2NoZW1hT2JqZWN0KSxcbiAgICAgIHRoaXMuZGF0YSxcbiAgICAgIHRoaXMub3BlbkFwaVNjaGVtYVBhdGgsXG4gICAgKTtcblxuICAgIHRoaXMuZmllbGRzID0gYmFzaWNGaWVsZHMuZmlsdGVyKGZpZWxkU2hvdWxkUmV2ZWFsKTtcbiAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgIG5vLWNvbnNvbGUgKi9cbiAgICAgIGNvbnNvbGUuaW5mbygnb3BlbkFwaUZpZWxkczonLCBvcGVuQXBpRmllbGRzKTtcbiAgICAgIGNvbnNvbGUuaW5mbygnZGVzY3JpcHRvckZpZWxkczonLCBkZXNjcmlwdG9yRmllbGRzKTtcbiAgICAgIGNvbnNvbGUuaW5mbygnYmFzaWNGaWVsZHM6JywgYmFzaWNGaWVsZHMpO1xuXG4gICAgICBjb25zb2xlLmluZm8oJ25vcm1hbEZpZWxkcycsIG5vcm1hbEZpZWxkcyk7XG5cbiAgICAgIGNvbnNvbGUuaW5mbygnZmllbGRHcm91cHM6JywgZmllbGRHcm91cHMpO1xuICAgICAgY29uc29sZS5pbmZvKCdhcnJheUZpZWxkR3JvdXBzOicsIGFycmF5RmllbGRHcm91cHMpO1xuICAgICAgY29uc29sZS5pbmZvKCdhZHZhbmNlZEZpZWxkczonLCBhZHZhbmNlZEZpZWxkcyk7XG4gICAgICBjb25zb2xlLmluZm8oJ3RyZWVGaWVsZHM6JywgdHJlZUZpZWxkcyk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLWNvbnNvbGUgKi9cbiAgICB9XG5cbiAgICB0aGlzLm5vcm1hbEZpZWxkcyA9IG5vcm1hbEZpZWxkcztcbiAgICB0aGlzLmZpZWxkR3JvdXBzID0gZmllbGRHcm91cHM7XG4gICAgdGhpcy5hcnJheUZpZWxkR3JvdXBzID0gYXJyYXlGaWVsZEdyb3VwcztcbiAgICB0aGlzLmFkdmFuY2VkRmllbGRzID0gYWR2YW5jZWRGaWVsZHM7XG5cbiAgICB0aGlzLmZvcm1TY2hlbWFDaGFuZ2UuZW1pdCh7XG4gICAgICBvcGVuQXBpRmllbGRzLFxuICAgICAgZGVzY3JpcHRvckZpZWxkcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIOiiq+makOiXj+i1t+adpeeahOihqOWNleeahOi3r+W+hOmbhuWQiFxuICBkaXJ0eVBhdGhzU2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgZmllbGRWYWx1ZUNoYW5nZShldmVudDogRmllbGRWYWx1ZUNoYW5nZUV2ZW50KSB7XG4gICAgbGV0IG9uY2VEaXJ0eVBhdGhzU2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICAvLyBUT0RPOiDlvoVyZXZpZXfnoa7orqTlkI7np7vpmaTor6XlvIDlhbNcbiAgICBpZiAoKHRoaXMuZm9ybUNvbnRleHQ/LmdhdGVzIGFzIHN0cmluZ1tdKT8uaW5jbHVkZXMoJ29uY2VEaXJ0eVBhdGhzU2V0JykpIHtcbiAgICAgIGNvbnN0IG9wZXJhbmRQYXRoID0gZ2V0T3BlcmFuZFBhdGgoZXZlbnQuZmllbGQpO1xuICAgICAgLy8g5aaC5p6c6KGo5Y2V6KKr6ZqQ6JeP5LiU6L+Z5qyhY2hhbmdl5piv5Zug5Li655u05o6l5pS55Y+Y5LqG5YyF5ZCr6K+l6Lev5b6E55qE54i26Lev5b6E55qE5YC877yI5L6L5aaC57yW6L6ReWFtbO+8iVxuICAgICAgLy8g6YKj5bCx6Zi75q2i5q2k5a2Q6Lev5b6E5YC855qEY2hhbmdl6YC76L6RXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuZGlydHlQYXRoc1NldC5oYXMob3BlcmFuZFBhdGgpICYmXG4gICAgICAgIHRoaXMuX2xhc3RVcGRhdGVGaWVsZD8ucGF0aCAmJlxuICAgICAgICBvcGVyYW5kUGF0aC5zdGFydHNXaXRoKGAke3RoaXMuX2xhc3RVcGRhdGVGaWVsZC5wYXRofS5gKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgb25jZURpcnR5UGF0aHNTZXQgPSB0aGlzLmRpcnR5UGF0aHNTZXQ7XG4gICAgfVxuXG4gICAgY29uc3QgZXZlbnREYXRhID0gZXZlbnQuZGF0YTtcbiAgICBpZiAoXG4gICAgICBldmVudC5maWVsZC5jYXBhYmlsaXRpZXMuc29tZShjID0+IGMuc3RhcnRzV2l0aChTcGVjQ2FwYWJpbGl0eS5vbmVPZikpXG4gICAgKSB7XG4gICAgICBjb25zdCB7IGRpcnR5UGF0aHMsIHZhbGlkUGF0aHMgfSA9IHRoaXMucmVzb2x2ZUV4cGlyZWRQYXRoKFxuICAgICAgICBldmVudC5maWVsZCxcbiAgICAgICAgZXZlbnREYXRhLFxuICAgICAgKTtcblxuICAgICAgZGlydHlQYXRocy5mb3JFYWNoKHBhdGggPT4ge1xuICAgICAgICB0aGlzLmRpcnR5UGF0aHNTZXQuYWRkKG5vcm1hbGl6ZVBhdGgocGF0aCkpO1xuICAgICAgICBvbmNlRGlydHlQYXRoc1NldC5hZGQobm9ybWFsaXplUGF0aChwYXRoKSk7XG4gICAgICB9KTtcblxuICAgICAgdmFsaWRQYXRocy5mb3JFYWNoKHBhdGggPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkUGF0aFZhbHVlKHBhdGgpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGFsbE90aGVyUGF0aHMgPSBnZXRBbGxPdGhlclRhZ1BhdGgoXG4gICAgICB0aGlzLmZpZWxkcyxcbiAgICAgIEFycmF5LmZyb20ob25jZURpcnR5UGF0aHNTZXQpLFxuICAgICk7XG4gICAgY29uc3QgcmVtb3ZlZFBhdGhzID0gdW5pcShcbiAgICAgIC8vIOWQjOS4gCBwYXRoIOWPr+iDveacieWkmuS4qiB0YWfvvIzlgYforr7mn5DkuKogdGFnZ2VkIHBhdGgg5pyJ5pWI77yM5YiZ5YW25a+55bqUIHBhdGgg5pWw5o2u5LiN5bqU6K+l5Yig6ZmkXG4gICAgICBkaWZmZXJQYXRoc1RhZyhBcnJheS5mcm9tKG9uY2VEaXJ0eVBhdGhzU2V0KSwgYWxsT3RoZXJQYXRocykubWFwKHBhdGggPT5cbiAgICAgICAgZ2V0UGF0aEZyb21UYWdQYXRoKHBhdGgpLFxuICAgICAgKSxcbiAgICApLmZpbHRlcihcbiAgICAgIC8vIOWPqua4heepuuWPtuWtkOe7k+eCue+8jOS7pemAgumFjSB5YW1sIOaDheWGtVxuICAgICAgcGF0aCA9PlxuICAgICAgICAhdGhpcy5maWVsZHMuc29tZShmaWVsZCA9PiB7XG4gICAgICAgICAgY29uc3QgaXNQYXJlbnRQYXRoID0gZmllbGQucGF0aC5zdGFydHNXaXRoKGAke3BhdGh9LmApO1xuICAgICAgICAgIGlmIChpc1BhcmVudFBhdGgpIHtcbiAgICAgICAgICAgIC8vIOivpSBmaWVsZCDkuqbkuLogZGlydHnvvIzkuI3ku6XkuLrkvp3mja5cbiAgICAgICAgICAgIHJldHVybiAhb25jZURpcnR5UGF0aHNTZXQuaGFzKGZpZWxkLnBhdGgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pLFxuICAgICk7XG4gICAgaWYgKGV2ZW50RGF0YSA9PSBudWxsICYmICF0aGlzLmtlZXBFbXB0eVBhdGgpIHtcbiAgICAgIGlmICghb25jZURpcnR5UGF0aHNTZXQuaGFzKGdldE9wZXJhbmRQYXRoKGV2ZW50LmZpZWxkKSkpIHtcbiAgICAgICAgdGhpcy5kZWxldGVGb3JtRGF0YShldmVudC5maWVsZC5wYXRoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVGb3JtRGF0YShldmVudC5maWVsZCwgZXZlbnREYXRhKTtcbiAgICB9XG5cbiAgICByZW1vdmVkUGF0aHMuZm9yRWFjaChwYXRoID0+IHtcbiAgICAgIHRoaXMuZGVsZXRlRm9ybURhdGEocGF0aCk7XG4gICAgfSk7XG4gICAgdGhpcy5yZWZyZXNoVmFsaWRhdGlvbigpO1xuICAgIHRoaXMuZm9ybVN0YXRlQ2hhbmdlLmVtaXQoe1xuICAgICAgZGF0YTogdGhpcy5mb3JtRGF0YVN0YXRlLnRvSlMoKSxcbiAgICAgIGVycm9yczogdGhpcy5mb3JtRXJyb3JzLFxuICAgIH0pO1xuICB9XG5cbiAgZGVsZXRlRm9ybURhdGEocGF0aDogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtRGF0YVN0YXRlID0gdGhpcy5mb3JtRGF0YVN0YXRlLmRlbGV0ZUluKHBhdGhUb0FycmF5KHBhdGgpKTtcbiAgICB0aGlzLmNvbnRyb2xNYXAuZ2V0KHBhdGgpPy5zZXRWYWx1ZShudWxsKTtcblxuICAgIHRoaXMuZm9ybVN0YXRlQ2hhbmdlLmVtaXQoe1xuICAgICAgZGF0YTogdGhpcy5mb3JtRGF0YVN0YXRlLnRvSlMoKSxcbiAgICAgIGVycm9yczogdGhpcy5mb3JtRXJyb3JzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVWYWxpZFBhdGhWYWx1ZShwYXRoOiBzdHJpbmcpIHtcbiAgICAvLyDlpoLmnpzmnInmlYjot6/lvoTmmK/kuIrkuIDmrKHnmoTml6DmlYjot6/lvoTvvIzliJnmhI/lkbPnnYDor6Xot6/lvoTnmoTlgLzlnKjkuIrmrKHooqvph43nva7kuobvvIzmiYDku6XlvZPor6Xot6/lvoTlj4jpnIDopoHmmL7npLrnu5nnlKjmiLfml7blupTor6Xkvb/nlKjpu5jorqTlgLxcbiAgICBjb25zdCB1c2VEZWZhdWx0ID0gdGhpcy5kaXJ0eVBhdGhzU2V0Lmhhcyhub3JtYWxpemVQYXRoKHBhdGgpKTtcbiAgICB0aGlzLmRpcnR5UGF0aHNTZXQuZGVsZXRlKG5vcm1hbGl6ZVBhdGgocGF0aCkpO1xuICAgIC8vIOWmguaenOWvueS4gOe7hOihqOWNlemDveacieS+nei1lu+8jOmCo+i3r+W+hOWPr+iDveaYr+i/mee7hOihqOWNleeahOeItui3r+W+hO+8jOaJgOS7pemcgOimgeaKiuaJgOacieWtkOWtmemDveaJvuWHuuadpVxuICAgIGNvbnN0IGZpZWxkcyA9IGdldEZpZWxkc0J5UGF0aChwYXRoLCBbXG4gICAgICAuLi50aGlzLm5vcm1hbEZpZWxkcyxcbiAgICAgIC4uLmZsYXR0ZW5EZWVwKHRoaXMuZmllbGRHcm91cHMubWFwKGdyb3VwID0+IGdyb3VwLmZpZWxkTGlzdCkpLFxuICAgICAgLi4uZmxhdHRlbkRlZXAoXG4gICAgICAgIHRoaXMuYXJyYXlGaWVsZEdyb3Vwcy5tYXAoYXJyYXlHcm91cCA9PiBhcnJheUdyb3VwLmZpZWxkTGlzdHMpLFxuICAgICAgKSxcbiAgICAgIC4uLnRoaXMuYWR2YW5jZWRGaWVsZHMsXG4gICAgXSk7XG4gICAgZmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgLy8g55CG6K665LiKIG9uZW9mIOWPquW9seWTjeinhuWbvu+8jOS9huWunumZhei/mOS8muW9seWTjSBmb3JtRGF0YVN0YXRl77yM5omA5Lul6ZyA6KaB5ZCM5q2l5pu05pawIGZvcm1EYXRhU3RhdGVcbiAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY29udHJvbE1hcC5nZXQoZ2V0T3BlcmFuZFBhdGgoZmllbGQpKS52YWx1ZTtcbiAgICAgIGlmICghdmFsdWUgJiYgdXNlRGVmYXVsdCkge1xuICAgICAgICB2YWx1ZSA9IGdldERlZmF1bHRWYWx1ZShmaWVsZCk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZUZvcm1EYXRhKGZpZWxkLCB2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUZvcm1EYXRhKGZpZWxkOiBPcGVyYW5kRmllbGQsIGRhdGE6IHVua25vd24pIHtcbiAgICBpZiAoIWZpZWxkKSByZXR1cm47XG4gICAgY29uc3QgeyBtYXRjaCwgaW5kZXgsIHBhdGhCZWZvcmVJbmRleCwgcGF0aEFmdGVySW5kZXggfSA9IHBhcnNlQXJyYXlQYXRoKFxuICAgICAgZmllbGQucGF0aCxcbiAgICApO1xuICAgIGlmIChtYXRjaCAmJiBpbmRleCA9PT0gMCkge1xuICAgICAgdGhpcy5mb3JtRGF0YVN0YXRlID0gdGhpcy5pbml0aWFsaXplRm9ybURhdGFBcnJheVByb3BlcnR5KFxuICAgICAgICB0aGlzLmZvcm1EYXRhU3RhdGUsXG4gICAgICAgIHBhdGhCZWZvcmVJbmRleCxcbiAgICAgICAgcGF0aEFmdGVySW5kZXgsXG4gICAgICAgIGRhdGEsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmZvcm1EYXRhU3RhdGUgPSB0aGlzLmZvcm1EYXRhU3RhdGUuc2V0SW4oXG4gICAgICBwYXRoVG9BcnJheShmaWVsZC5wYXRoKSxcbiAgICAgIGRhdGEsXG4gICAgKTtcbiAgICB0aGlzLl9sYXN0VXBkYXRlRmllbGQgPSBmaWVsZDtcbiAgfVxuXG4gIHJlZnJlc2hWYWxpZGF0aW9uKCkge1xuICAgIGNvbnN0IGVycm9ycyA9IEFycmF5LmZyb20odGhpcy5jb250cm9sTWFwKS5yZWR1Y2UoXG4gICAgICAoYWNjLCBbcGF0aFdpdGhUYWcsIGNvbnRyb2xdKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmRpcnR5UGF0aHNTZXQuaGFzKHBhdGhXaXRoVGFnKSkge1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGF0aCA9IGdldFBhdGhGcm9tVGFnUGF0aChwYXRoV2l0aFRhZyk7XG4gICAgICAgIGFjY1twYXRoXSA9IGlzRW1wdHkoY29udHJvbC5lcnJvcnMpID8gbnVsbCA6IGNvbnRyb2wuZXJyb3JzO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIHt9IGFzIERpY3Rpb25hcnk8Rm9ybUVycm9ycz4sXG4gICAgKTtcbiAgICBjb25zdCByZXN1bHQgPSBmcm9tUGFpcnMoXG4gICAgICBPYmplY3QuZW50cmllcyhlcnJvcnMgPz8ge30pLmZpbHRlcigoW19rLCB2XSkgPT4gISF2KSxcbiAgICApO1xuXG4gICAgdGhpcy5mb3JtRXJyb3JzID0gaXNFbXB0eShyZXN1bHQpID8gbnVsbCA6IHJlc3VsdDtcbiAgfVxuXG4gIC8vIOW9k+afkOS4qiBmaWVsZCDlj5HnlJ/mlbDmja7lj5jljJbvvIzov5Tlm57lhbbnm7jlhbMgb25lT2YgcGF0aCDmmK/lkKblupTor6Xnp7vpmaRcbiAgLy8g5LuF5b2T5b2T5YmNIGZpZWxkIOS4rSBvbmVPZiDmnaHku7bkuI7lvZPliY3mlbDmja7kuI3ljLnphY3vvIxcbiAgcHJpdmF0ZSByZXNvbHZlRXhwaXJlZFBhdGgoZmllbGQ6IE9wZXJhbmRGaWVsZCwgY3VycmVudFZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCB7IGRpcnR5UGF0aHMsIHZhbGlkUGF0aHMgfSA9IG1hdGNoVmFsdWVBZ2FpbnN0T25lT2YoXG4gICAgICBmaWVsZCxcbiAgICAgIGN1cnJlbnRWYWx1ZSxcbiAgICApO1xuICAgIGNvbnN0IG90aGVyRmllbGRTdGF0dXMgPSB0aGlzLmZpZWxkc1xuICAgICAgLmZpbHRlcihpID0+IGdldE9wZXJhbmRQYXRoKGkpICE9PSBnZXRPcGVyYW5kUGF0aChmaWVsZCkpXG4gICAgICAubWFwKGZpZWxkID0+ICh7XG4gICAgICAgIHBhdGg6IGdldE9wZXJhbmRQYXRoKGZpZWxkKSxcbiAgICAgICAgcmVzdWx0OiBtYXRjaFZhbHVlQWdhaW5zdE9uZU9mKFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIHRoaXMuY29udHJvbE1hcC5nZXQoZ2V0T3BlcmFuZFBhdGgoZmllbGQpKT8udmFsdWUsXG4gICAgICAgICksXG4gICAgICB9KSk7XG5cbiAgICBjb25zdCBuZXdEaXJ0eVBhdGhzID0gdmFsaWRQYXRocy5maWx0ZXIocGF0aCA9PiB7XG4gICAgICAvLyDlvZPliY0gdmFsaWQgcGF0aCDlnKjlhbbku5YgZmllbGQg5Lit5Li6IGRpcnR577yM6Iul6K+lIGZpZWxkIOacrOi6q+S5n+S4uiBkaXJ0eSDliJnlv73nlaXor6XlvbHlk43vvIzku43nhLbliKTlrprkuLogdmFsaWTvvIzlkKbliJnvvIjor6UgZmllbGQg5pyJ5pWI77yJ6K6k5a6a5Li6IGRpcnR5XG4gICAgICBjb25zdCBmaWVsZENhbmRpZGF0ZXMgPSBvdGhlckZpZWxkU3RhdHVzLmZpbHRlcihzdGF0dXMgPT5cbiAgICAgICAgc3RhdHVzLnJlc3VsdC5kaXJ0eVBhdGhzLmluY2x1ZGVzKHBhdGgpLFxuICAgICAgKTtcbiAgICAgIHJldHVybiBmaWVsZENhbmRpZGF0ZXMuc29tZShcbiAgICAgICAgKHsgcGF0aCB9KSA9PlxuICAgICAgICAgICFvdGhlckZpZWxkU3RhdHVzLnNvbWUoc3RhdHVzID0+XG4gICAgICAgICAgICBzdGF0dXMucmVzdWx0LmRpcnR5UGF0aHMuaW5jbHVkZXMocGF0aCksXG4gICAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpcnR5UGF0aHM6IFsuLi5kaXJ0eVBhdGhzLCAuLi5uZXdEaXJ0eVBhdGhzXSxcbiAgICAgIHZhbGlkUGF0aHM6IHZhbGlkUGF0aHMuZmlsdGVyKHBhdGggPT4gIW5ld0RpcnR5UGF0aHMuaW5jbHVkZXMocGF0aCkpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVGb3JtRGF0YUFycmF5UHJvcGVydHkoXG4gICAgc3RhdGU6IEZvcm1EYXRhU3RhdGUsXG4gICAgcGF0aEJlZm9yZUluZGV4OiBzdHJpbmcsXG4gICAgcGF0aEFmdGVySW5kZXg6IHN0cmluZyxcbiAgICB2YWx1ZTogYW55LFxuICApIHtcbiAgICBpZiAoc3RhdGUuZ2V0SW4oWy4uLnBhdGhUb0FycmF5KHBhdGhCZWZvcmVJbmRleCksIDBdKSkge1xuICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgICBjb25zdCBpdGVtID0gJE1hcCh7fSkuc2V0SW4ocGF0aFRvQXJyYXkocGF0aEFmdGVySW5kZXgpLCB2YWx1ZSk7XG4gICAgY29uc3QgbGlzdCA9IExpc3QoW2l0ZW1dKTtcbiAgICByZXR1cm4gc3RhdGUuc2V0SW4ocGF0aFRvQXJyYXkocGF0aEJlZm9yZUluZGV4KSwgbGlzdCk7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgdGhpcy5yZWZyZXNoVmFsaWRhdGlvbigpO1xuICAgIHRoaXMuZm9ybS5vblN1Ym1pdChudWxsKTtcbiAgfVxufVxuIiwiPGZvcm1cbiAgYXVpRm9ybVxuICBbYWNsU2Nyb2xsVG9GaXJzdEludmFsaWRdPVwiISFmb3JtRXJyb3JzXCJcbiAgI2Zvcm09XCJuZ0Zvcm1cIlxuICBbYXVpRm9ybUxhYmVsUG9zaXRpb25dPVwibGFiZWxQb3NpdGlvblwiXG4gIFthdWlGb3JtTGFiZWxXaWR0aF09XCJsYWJlbFdpZHRoXCJcbj5cbiAgPCEtLSBub3JtYWwgZmllbGRzIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBub3JtYWxGaWVsZHNcIj5cbiAgICA8YWNsLW9wZXJhbmQtZmllbGRcbiAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgICAgIFtmaWVsZF09XCJmaWVsZFwiXG4gICAgICBbZm9ybURhdGFTdGF0ZV09XCJmb3JtRGF0YVN0YXRlXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwiZmllbGRWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIFtyZW1vdGVNb2R1bGVEZWZpbml0aW9uXT1cInJlbW90ZU1vZHVsZURlZmluaXRpb24kIHwgYXN5bmNcIlxuICAgID5cbiAgICA8L2FjbC1vcGVyYW5kLWZpZWxkPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIGZpZWxkIGdyb3VwcyDlhbzlrrnvvIzpnIDopoHkv53nlZktLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgZmllbGRHcm91cHNcIj5cbiAgICA8YWNsLW9wZXJhbmQtZmllbGQtZ3JvdXBcbiAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgICAgIFtmaWVsZEdyb3VwXT1cImdyb3VwXCJcbiAgICAgIFtmb3JtRGF0YVN0YXRlXT1cImZvcm1EYXRhU3RhdGVcIlxuICAgICAgW2Zvcm1FcnJvcnNdPVwiZm9ybUVycm9yc1wiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cImZpZWxkVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvYWNsLW9wZXJhbmQtZmllbGQtZ3JvdXA+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDwhLS0gYXJyYXkgZmllbGQgZ3JvdXBzIOWFvOWuue+8jOmcgOimgeS/neeVmSAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgYXJyYXlGaWVsZEdyb3Vwc1wiPlxuICAgIDxhY2wtb3BlcmFuZC1hcnJheS1maWVsZC1ncm91cFxuICAgICAgW2FycmF5RmllbGRHcm91cF09XCJncm91cFwiXG4gICAgICBbZm9ybURhdGFTdGF0ZV09XCJmb3JtRGF0YVN0YXRlXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwiZmllbGRWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChpdGVtUmVtb3ZlKT1cImRlbGV0ZUZvcm1EYXRhKCRldmVudClcIlxuICAgID5cbiAgICA8L2FjbC1vcGVyYW5kLWFycmF5LWZpZWxkLWdyb3VwPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tIGFkdmFuY2VkIGZpZWxkcyAtLT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFkdmFuY2VkRmllbGRzPy5sZW5ndGhcIj5cbiAgICA8YWNsLW9wZXJhbmQtYWR2YW5jZWQtZmllbGQtZ3JvdXBcbiAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgICAgIFtmaWVsZExpc3RdPVwiYWR2YW5jZWRGaWVsZHNcIlxuICAgICAgW2Zvcm1EYXRhU3RhdGVdPVwiZm9ybURhdGFTdGF0ZVwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cImZpZWxkVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvYWNsLW9wZXJhbmQtYWR2YW5jZWQtZmllbGQtZ3JvdXA+XG4gIDwvbmctY29udGFpbmVyPlxuPC9mb3JtPlxuIl19
@@ -7,7 +7,6 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7
7
  import { CrdFormComponent } from './crd-form/component';
8
8
  import { FieldControlsModule } from './field-controls';
9
9
  import { SpecCapabilityComponent, SpecCapabilityListComponent, } from './spec-descriptors';
10
- import { CrdFormCustomDescriptionDirective } from './utils';
11
10
  import * as i0 from "@angular/core";
12
11
  import * as i1 from "@alauda/ui";
13
12
  import * as i2 from "@angular/forms";
@@ -23,7 +22,6 @@ const COMPONENTS = [
23
22
  SpecCapabilityComponent,
24
23
  SpecCapabilityListComponent,
25
24
  ];
26
- const DIRECTIVES = [CrdFormCustomDescriptionDirective];
27
25
  export class CrdFormModule {
28
26
  static { this.ɵfac = function CrdFormModule_Factory(t) { return new (t || CrdFormModule)(); }; }
29
27
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CrdFormModule }); }
@@ -81,13 +79,13 @@ export class CrdFormModule {
81
79
  TagModule,
82
80
  ...MODULES,
83
81
  ],
84
- exports: [...COMPONENTS, ...DIRECTIVES, ...MODULES],
85
- declarations: [...COMPONENTS, ...DIRECTIVES],
82
+ exports: [...COMPONENTS, ...MODULES],
83
+ declarations: [...COMPONENTS],
86
84
  }]
87
85
  }], null, null); })();
88
86
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CrdFormModule, { declarations: [CrdFormComponent,
89
87
  SpecCapabilityComponent,
90
- SpecCapabilityListComponent, CrdFormCustomDescriptionDirective], imports: [
88
+ SpecCapabilityListComponent], imports: [
91
89
  // aui modules
92
90
  TooltipModule,
93
91
  ButtonModule,
@@ -112,6 +110,6 @@ export class CrdFormModule {
112
110
  WidgetModule,
113
111
  TagModule, FieldControlsModule], exports: [CrdFormComponent,
114
112
  SpecCapabilityComponent,
115
- SpecCapabilityListComponent, CrdFormCustomDescriptionDirective, FieldControlsModule] }); })();
116
- i0.ɵɵsetComponentScope(CrdFormComponent, [i1.FormDirective, i2.ɵNgNoValidate, i2.NgControlStatusGroup, i2.NgForm, i3.NgForOf, i3.NgIf, i4.ScrollToFirstInvalidDirective, i5.OperandAdvancedFieldGroupComponent, i6.OperandArrayFieldGroupComponent, i7.OperandFieldGroupComponent, i8.OperandFieldComponent], [i3.AsyncPipe, i4.PurePipe]);
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JkLWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jcmQtZm9ybS9zcmMvbGliL2NyZC1mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFDZCxjQUFjLEVBQ2QsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsV0FBVyxFQUNYLFlBQVksRUFDWixZQUFZLEVBQ1osU0FBUyxFQUNULGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixZQUFZLEdBQ2IsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QiwyQkFBMkIsR0FDNUIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7Ozs7Ozs7QUFFNUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBRXRDLE1BQU0sVUFBVSxHQUFHO0lBQ2pCLGdCQUFnQjtJQUNoQix1QkFBdUI7SUFDdkIsMkJBQTJCO0NBQzVCLENBQUM7QUFFRixNQUFNLFVBQVUsR0FBRyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7QUFnQ3ZELE1BQU0sT0FBTyxhQUFhOzhFQUFiLGFBQWE7bUVBQWIsYUFBYTs7WUE1QnRCLGNBQWM7WUFDZCxhQUFhO1lBQ2IsWUFBWTtZQUNaLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsY0FBYztZQUNkLFVBQVU7WUFDVixVQUFVO1lBQ1YsV0FBVztZQUNYLFdBQVc7WUFDWCxZQUFZO1lBQ1osWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsa0JBQWtCO1lBQ2xCLFVBQVU7WUFDVixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLFlBQVk7WUFDWixTQUFTLEVBQ04sT0FBTyxFQW5DRyxtQkFBbUI7O2lGQXdDdkIsYUFBYTtjQTlCekIsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxjQUFjO29CQUNkLGFBQWE7b0JBQ2IsWUFBWTtvQkFDWixjQUFjO29CQUNkLGdCQUFnQjtvQkFDaEIsY0FBYztvQkFDZCxVQUFVO29CQUNWLFVBQVU7b0JBQ1YsV0FBVztvQkFDWCxXQUFXO29CQUNYLFlBQVk7b0JBQ1osWUFBWTtvQkFDWixnQkFBZ0I7b0JBQ2hCLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixZQUFZO29CQUNaLG9CQUFvQjtvQkFDcEIsa0JBQWtCO29CQUNsQixVQUFVO29CQUNWLGdCQUFnQjtvQkFDaEIsZUFBZTtvQkFDZixZQUFZO29CQUNaLFNBQVM7b0JBQ1QsR0FBRyxPQUFPO2lCQUNYO2dCQUNELE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO2dCQUNuRCxZQUFZLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLFVBQVUsQ0FBQzthQUM3Qzs7d0ZBQ1ksYUFBYSxtQkFyQ3hCLGdCQUFnQjtRQUNoQix1QkFBdUI7UUFDdkIsMkJBQTJCLEVBR1QsaUNBQWlDO1FBSWpELGNBQWM7UUFDZCxhQUFhO1FBQ2IsWUFBWTtRQUNaLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIsY0FBYztRQUNkLFVBQVU7UUFDVixVQUFVO1FBQ1YsV0FBVztRQUNYLFdBQVc7UUFDWCxZQUFZO1FBQ1osWUFBWTtRQUNaLGdCQUFnQjtRQUNoQixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsa0JBQWtCO1FBQ2xCLFVBQVU7UUFDVixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLFlBQVk7UUFDWixTQUFTLEVBbENJLG1CQUFtQixhQUdsQyxnQkFBZ0I7UUFDaEIsdUJBQXVCO1FBQ3ZCLDJCQUEyQixFQUdULGlDQUFpQyxFQVJwQyxtQkFBbUI7dUJBR2xDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVFZGl0b3JNb2R1bGUgfSBmcm9tICdAYWxhdWRhL2NvZGUtZWRpdG9yJztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgQ2hlY2tib3hNb2R1bGUsXG4gIERyb3Bkb3duTW9kdWxlLFxuICBGb3JtTW9kdWxlLFxuICBJY29uTW9kdWxlLFxuICBJbnB1dE1vZHVsZSxcbiAgUmFkaW9Nb2R1bGUsXG4gIFNlbGVjdE1vZHVsZSxcbiAgU3dpdGNoTW9kdWxlLFxuICBUYWdNb2R1bGUsXG4gIFRvb2x0aXBNb2R1bGUsXG59IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQXJyYXlGb3JtVGFibGVNb2R1bGUsXG4gIEVycm9yc01hcHBlck1vZHVsZSxcbiAgVHJhbnNsYXRlTW9kdWxlLFxuICBDb3JlTW9kdWxlLFxuICBWYWxpZGF0b3JzTW9kdWxlLFxuICBXaWRnZXRNb2R1bGUsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IENyZEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2NyZC1mb3JtL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZENvbnRyb2xzTW9kdWxlIH0gZnJvbSAnLi9maWVsZC1jb250cm9scyc7XG5pbXBvcnQge1xuICBTcGVjQ2FwYWJpbGl0eUNvbXBvbmVudCxcbiAgU3BlY0NhcGFiaWxpdHlMaXN0Q29tcG9uZW50LFxufSBmcm9tICcuL3NwZWMtZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHsgQ3JkRm9ybUN1c3RvbURlc2NyaXB0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IE1PRFVMRVMgPSBbRmllbGRDb250cm9sc01vZHVsZV07XG5cbmNvbnN0IENPTVBPTkVOVFMgPSBbXG4gIENyZEZvcm1Db21wb25lbnQsXG4gIFNwZWNDYXBhYmlsaXR5Q29tcG9uZW50LFxuICBTcGVjQ2FwYWJpbGl0eUxpc3RDb21wb25lbnQsXG5dO1xuXG5jb25zdCBESVJFQ1RJVkVTID0gW0NyZEZvcm1DdXN0b21EZXNjcmlwdGlvbkRpcmVjdGl2ZV07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICAvLyBhdWkgbW9kdWxlc1xuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIENoZWNrYm94TW9kdWxlLFxuICAgIENvZGVFZGl0b3JNb2R1bGUsXG4gICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgRm9ybU1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIFJhZGlvTW9kdWxlLFxuICAgIFNlbGVjdE1vZHVsZSxcbiAgICBTd2l0Y2hNb2R1bGUsXG4gICAgQ29kZUVkaXRvck1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBcnJheUZvcm1UYWJsZU1vZHVsZSxcbiAgICBFcnJvcnNNYXBwZXJNb2R1bGUsXG4gICAgQ29yZU1vZHVsZSxcbiAgICBWYWxpZGF0b3JzTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBXaWRnZXRNb2R1bGUsXG4gICAgVGFnTW9kdWxlLFxuICAgIC4uLk1PRFVMRVMsXG4gIF0sXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRTLCAuLi5ESVJFQ1RJVkVTLCAuLi5NT0RVTEVTXSxcbiAgZGVjbGFyYXRpb25zOiBbLi4uQ09NUE9ORU5UUywgLi4uRElSRUNUSVZFU10sXG59KVxuZXhwb3J0IGNsYXNzIENyZEZvcm1Nb2R1bGUge31cbiJdfQ==
113
+ SpecCapabilityListComponent, FieldControlsModule] }); })();
114
+ i0.ɵɵsetComponentScope(CrdFormComponent, [i1.FormDirective, i2.ɵNgNoValidate, i2.NgControlStatusGroup, i2.NgForm, i3.NgForOf, i3.NgIf, i4.ScrollToFirstInvalidDirective, i5.OperandAdvancedFieldGroupComponent, i6.OperandArrayFieldGroupComponent, i7.OperandFieldGroupComponent, i8.OperandFieldComponent], [i3.AsyncPipe]);
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JkLWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jcmQtZm9ybS9zcmMvbGliL2NyZC1mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFDZCxjQUFjLEVBQ2QsVUFBVSxFQUNWLFVBQVUsRUFDVixXQUFXLEVBQ1gsV0FBVyxFQUNYLFlBQVksRUFDWixZQUFZLEVBQ1osU0FBUyxFQUNULGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixZQUFZLEdBQ2IsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QiwyQkFBMkIsR0FDNUIsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7OztBQUU1QixNQUFNLE9BQU8sR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFFdEMsTUFBTSxVQUFVLEdBQUc7SUFDakIsZ0JBQWdCO0lBQ2hCLHVCQUF1QjtJQUN2QiwyQkFBMkI7Q0FDNUIsQ0FBQztBQWdDRixNQUFNLE9BQU8sYUFBYTs4RUFBYixhQUFhO21FQUFiLGFBQWE7O1lBNUJ0QixjQUFjO1lBQ2QsYUFBYTtZQUNiLFlBQVk7WUFDWixjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCxVQUFVO1lBQ1YsVUFBVTtZQUNWLFdBQVc7WUFDWCxXQUFXO1lBQ1gsWUFBWTtZQUNaLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsV0FBVztZQUNYLG1CQUFtQjtZQUNuQixZQUFZO1lBQ1osb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixVQUFVO1lBQ1YsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixZQUFZO1lBQ1osU0FBUyxFQUNOLE9BQU8sRUFqQ0csbUJBQW1COztpRkFzQ3ZCLGFBQWE7Y0E5QnpCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsY0FBYztvQkFDZCxhQUFhO29CQUNiLFlBQVk7b0JBQ1osY0FBYztvQkFDZCxnQkFBZ0I7b0JBQ2hCLGNBQWM7b0JBQ2QsVUFBVTtvQkFDVixVQUFVO29CQUNWLFdBQVc7b0JBQ1gsV0FBVztvQkFDWCxZQUFZO29CQUNaLFlBQVk7b0JBQ1osZ0JBQWdCO29CQUNoQixXQUFXO29CQUNYLG1CQUFtQjtvQkFDbkIsWUFBWTtvQkFDWixvQkFBb0I7b0JBQ3BCLGtCQUFrQjtvQkFDbEIsVUFBVTtvQkFDVixnQkFBZ0I7b0JBQ2hCLGVBQWU7b0JBQ2YsWUFBWTtvQkFDWixTQUFTO29CQUNULEdBQUcsT0FBTztpQkFDWDtnQkFDRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQztnQkFDcEMsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7YUFDOUI7O3dGQUNZLGFBQWEsbUJBbkN4QixnQkFBZ0I7UUFDaEIsdUJBQXVCO1FBQ3ZCLDJCQUEyQjtRQUt6QixjQUFjO1FBQ2QsYUFBYTtRQUNiLFlBQVk7UUFDWixjQUFjO1FBQ2QsZ0JBQWdCO1FBQ2hCLGNBQWM7UUFDZCxVQUFVO1FBQ1YsVUFBVTtRQUNWLFdBQVc7UUFDWCxXQUFXO1FBQ1gsWUFBWTtRQUNaLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixZQUFZO1FBQ1osb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQixVQUFVO1FBQ1YsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixZQUFZO1FBQ1osU0FBUyxFQWhDSSxtQkFBbUIsYUFHbEMsZ0JBQWdCO1FBQ2hCLHVCQUF1QjtRQUN2QiwyQkFBMkIsRUFMWixtQkFBbUI7dUJBR2xDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvZGVFZGl0b3JNb2R1bGUgfSBmcm9tICdAYWxhdWRhL2NvZGUtZWRpdG9yJztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgQ2hlY2tib3hNb2R1bGUsXG4gIERyb3Bkb3duTW9kdWxlLFxuICBGb3JtTW9kdWxlLFxuICBJY29uTW9kdWxlLFxuICBJbnB1dE1vZHVsZSxcbiAgUmFkaW9Nb2R1bGUsXG4gIFNlbGVjdE1vZHVsZSxcbiAgU3dpdGNoTW9kdWxlLFxuICBUYWdNb2R1bGUsXG4gIFRvb2x0aXBNb2R1bGUsXG59IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHtcbiAgQXJyYXlGb3JtVGFibGVNb2R1bGUsXG4gIEVycm9yc01hcHBlck1vZHVsZSxcbiAgVHJhbnNsYXRlTW9kdWxlLFxuICBDb3JlTW9kdWxlLFxuICBWYWxpZGF0b3JzTW9kdWxlLFxuICBXaWRnZXRNb2R1bGUsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IENyZEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2NyZC1mb3JtL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWVsZENvbnRyb2xzTW9kdWxlIH0gZnJvbSAnLi9maWVsZC1jb250cm9scyc7XG5pbXBvcnQge1xuICBTcGVjQ2FwYWJpbGl0eUNvbXBvbmVudCxcbiAgU3BlY0NhcGFiaWxpdHlMaXN0Q29tcG9uZW50LFxufSBmcm9tICcuL3NwZWMtZGVzY3JpcHRvcnMnO1xuXG5jb25zdCBNT0RVTEVTID0gW0ZpZWxkQ29udHJvbHNNb2R1bGVdO1xuXG5jb25zdCBDT01QT05FTlRTID0gW1xuICBDcmRGb3JtQ29tcG9uZW50LFxuICBTcGVjQ2FwYWJpbGl0eUNvbXBvbmVudCxcbiAgU3BlY0NhcGFiaWxpdHlMaXN0Q29tcG9uZW50LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIC8vIGF1aSBtb2R1bGVzXG4gICAgVG9vbHRpcE1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgQ2hlY2tib3hNb2R1bGUsXG4gICAgQ29kZUVkaXRvck1vZHVsZSxcbiAgICBEcm9wZG93bk1vZHVsZSxcbiAgICBGb3JtTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgUmFkaW9Nb2R1bGUsXG4gICAgU2VsZWN0TW9kdWxlLFxuICAgIFN3aXRjaE1vZHVsZSxcbiAgICBDb2RlRWRpdG9yTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFycmF5Rm9ybVRhYmxlTW9kdWxlLFxuICAgIEVycm9yc01hcHBlck1vZHVsZSxcbiAgICBDb3JlTW9kdWxlLFxuICAgIFZhbGlkYXRvcnNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFdpZGdldE1vZHVsZSxcbiAgICBUYWdNb2R1bGUsXG4gICAgLi4uTU9EVUxFUyxcbiAgXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVFMsIC4uLk1PRFVMRVNdLFxuICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRTXSxcbn0pXG5leHBvcnQgY2xhc3MgQ3JkRm9ybU1vZHVsZSB7fVxuIl19
@@ -1,4 +1,5 @@
1
1
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
2
+ import { getFieldDescription, getFieldDocLink, getFieldDocOption, getFieldTooltip, isFieldDescriptionAsLink, } from '../utils';
2
3
  import { OperandFieldComponent } from './operand-field.component';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "./operand-field.component";
@@ -6,9 +7,9 @@ import * as i2 from "@angular/common";
6
7
  import * as i3 from "@alauda/ui";
7
8
  import * as i4 from "@alauda-fe/common";
8
9
  const _c0 = ["*"];
9
- const _c1 = a0 => ({ $implicit: a0 });
10
+ const _c1 = (a0, a1) => ({ product: a0, path: a1, type: "page" });
10
11
  function FormItemComponent_label_1_Template(rf, ctx) { if (rf & 1) {
11
- i0.ɵɵelementStart(0, "label", 7);
12
+ i0.ɵɵelementStart(0, "label", 6);
12
13
  i0.ɵɵtext(1);
13
14
  i0.ɵɵpipe(2, "translate");
14
15
  i0.ɵɵelementEnd();
@@ -18,85 +19,139 @@ function FormItemComponent_label_1_Template(rf, ctx) { if (rf & 1) {
18
19
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, label_r1));
19
20
  } }
20
21
  function FormItemComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {
21
- i0.ɵɵelementContainer(0, 8);
22
+ i0.ɵɵelementContainer(0, 7);
22
23
  } if (rf & 2) {
23
24
  const ctx_r1 = i0.ɵɵnextContext();
24
25
  i0.ɵɵproperty("required", ctx_r1.fieldComponent.isRequired);
25
26
  } }
26
27
  function FormItemComponent_div_5_acl_errors_mapper_1_Template(rf, ctx) { if (rf & 1) {
27
- i0.ɵɵelement(0, "acl-errors-mapper", 12);
28
+ i0.ɵɵelement(0, "acl-errors-mapper", 13);
28
29
  } if (rf & 2) {
29
30
  const ctx_r1 = i0.ɵɵnextContext(2);
30
31
  i0.ɵɵproperty("errors", ctx_r1.fieldComponent.control.errors);
31
32
  } }
32
- function FormItemComponent_div_5_ng_container_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
33
- i0.ɵɵelementContainer(0);
33
+ function FormItemComponent_div_5_ng_container_3_Template(rf, ctx) { if (rf & 1) {
34
+ i0.ɵɵelementContainerStart(0);
35
+ i0.ɵɵtext(1);
36
+ i0.ɵɵpipe(2, "pure");
37
+ i0.ɵɵpipe(3, "translate");
38
+ i0.ɵɵelementContainerEnd();
39
+ } if (rf & 2) {
40
+ const ctx_r1 = i0.ɵɵnextContext(2);
41
+ i0.ɵɵadvance();
42
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 4, i0.ɵɵpipeBind2(2, 1, ctx_r1.fieldComponent.field, ctx_r1.getFieldDescription)), " ");
34
43
  } }
35
- function FormItemComponent_div_5_ng_container_2_Template(rf, ctx) { if (rf & 1) {
44
+ function FormItemComponent_div_5_a_5_ng_container_1_Template(rf, ctx) { if (rf & 1) {
36
45
  i0.ɵɵelementContainerStart(0);
37
- i0.ɵɵtemplate(1, FormItemComponent_div_5_ng_container_2_ng_container_1_Template, 1, 0, "ng-container", 13);
46
+ i0.ɵɵtext(1);
47
+ i0.ɵɵpipe(2, "pure");
48
+ i0.ɵɵpipe(3, "translate");
38
49
  i0.ɵɵelementContainerEnd();
39
50
  } if (rf & 2) {
51
+ const ctx_r1 = i0.ɵɵnextContext(3);
52
+ i0.ɵɵadvance();
53
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 4, i0.ɵɵpipeBind2(2, 1, ctx_r1.fieldComponent.field, ctx_r1.getFieldDescription)), " ");
54
+ } }
55
+ function FormItemComponent_div_5_a_5_Template(rf, ctx) { if (rf & 1) {
56
+ i0.ɵɵelementStart(0, "a", 14);
57
+ i0.ɵɵtemplate(1, FormItemComponent_div_5_a_5_ng_container_1_Template, 4, 6, "ng-container", 10);
58
+ i0.ɵɵpipe(2, "pure");
59
+ i0.ɵɵelement(3, "aui-icon", 15);
60
+ i0.ɵɵelementEnd();
61
+ } if (rf & 2) {
62
+ const option_r3 = ctx.ngIf;
40
63
  const ctx_r1 = i0.ɵɵnextContext(2);
64
+ i0.ɵɵproperty("aclDocs", i0.ɵɵpureFunction2(5, _c1, option_r3.product, option_r3.path));
41
65
  i0.ɵɵadvance();
42
- i0.ɵɵproperty("ngTemplateOutlet", ctx_r1.fieldComponent.customDescription.templateRef)("ngTemplateOutletContext", i0.ɵɵpureFunction1(2, _c1, ctx_r1.fieldComponent.field));
66
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind2(2, 2, ctx_r1.fieldComponent.field, ctx_r1.isFieldDescriptionAsLink));
43
67
  } }
44
- function FormItemComponent_div_5_ng_template_3_Template(rf, ctx) { if (rf & 1) {
45
- i0.ɵɵtext(0);
46
- i0.ɵɵpipe(1, "pure");
47
- i0.ɵɵpipe(2, "translate");
68
+ function FormItemComponent_div_5_a_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {
69
+ i0.ɵɵelementContainerStart(0);
70
+ i0.ɵɵtext(1);
71
+ i0.ɵɵpipe(2, "pure");
72
+ i0.ɵɵpipe(3, "translate");
73
+ i0.ɵɵelementContainerEnd();
48
74
  } if (rf & 2) {
75
+ const ctx_r1 = i0.ɵɵnextContext(3);
76
+ i0.ɵɵadvance();
77
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 4, i0.ɵɵpipeBind2(2, 1, ctx_r1.fieldComponent.field, ctx_r1.getFieldDescription)), " ");
78
+ } }
79
+ function FormItemComponent_div_5_a_7_Template(rf, ctx) { if (rf & 1) {
80
+ i0.ɵɵelementStart(0, "a", 16);
81
+ i0.ɵɵtemplate(1, FormItemComponent_div_5_a_7_ng_container_1_Template, 4, 6, "ng-container", 10);
82
+ i0.ɵɵpipe(2, "pure");
83
+ i0.ɵɵelement(3, "aui-icon", 15);
84
+ i0.ɵɵelementEnd();
85
+ } if (rf & 2) {
86
+ const link_r4 = ctx.ngIf;
49
87
  const ctx_r1 = i0.ɵɵnextContext(2);
50
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 4, i0.ɵɵpipeBind2(1, 1, ctx_r1.fieldComponent.field, ctx_r1.fieldComponent.getFieldDescription)), " ");
88
+ i0.ɵɵattribute("href", link_r4, i0.ɵɵsanitizeUrl);
89
+ i0.ɵɵadvance();
90
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind2(2, 2, ctx_r1.fieldComponent.field, ctx_r1.isFieldDescriptionAsLink));
51
91
  } }
52
92
  function FormItemComponent_div_5_Template(rf, ctx) { if (rf & 1) {
53
- i0.ɵɵelementStart(0, "div", 9);
54
- i0.ɵɵtemplate(1, FormItemComponent_div_5_acl_errors_mapper_1_Template, 1, 1, "acl-errors-mapper", 10)(2, FormItemComponent_div_5_ng_container_2_Template, 2, 4, "ng-container", 11)(3, FormItemComponent_div_5_ng_template_3_Template, 3, 6, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
55
- i0.ɵɵelementEnd();
93
+ i0.ɵɵelementStart(0, "div", 8);
94
+ i0.ɵɵtemplate(1, FormItemComponent_div_5_acl_errors_mapper_1_Template, 1, 1, "acl-errors-mapper", 9);
95
+ i0.ɵɵelementStart(2, "div");
96
+ i0.ɵɵtemplate(3, FormItemComponent_div_5_ng_container_3_Template, 4, 6, "ng-container", 10);
97
+ i0.ɵɵpipe(4, "pure");
98
+ i0.ɵɵtemplate(5, FormItemComponent_div_5_a_5_Template, 4, 8, "a", 11);
99
+ i0.ɵɵpipe(6, "pure");
100
+ i0.ɵɵtemplate(7, FormItemComponent_div_5_a_7_Template, 4, 5, "a", 12);
101
+ i0.ɵɵpipe(8, "pure");
102
+ i0.ɵɵelementEnd()();
56
103
  } if (rf & 2) {
57
- const defaultDescription_r3 = i0.ɵɵreference(4);
58
104
  const ctx_r1 = i0.ɵɵnextContext();
59
105
  i0.ɵɵadvance();
60
106
  i0.ɵɵproperty("ngIf", (ctx_r1.fieldComponent.crdForm.form.submitted || ctx_r1.fieldComponent.control.dirty) && ctx_r1.fieldComponent.control.invalid && !ctx_r1.fieldComponent.isCustomErrorsMapper);
61
- i0.ɵɵadvance();
62
- i0.ɵɵproperty("ngIf", ctx_r1.fieldComponent.customDescription)("ngIfElse", defaultDescription_r3);
107
+ i0.ɵɵadvance(2);
108
+ i0.ɵɵproperty("ngIf", !i0.ɵɵpipeBind2(4, 4, ctx_r1.fieldComponent.field, ctx_r1.isFieldDescriptionAsLink));
109
+ i0.ɵɵadvance(2);
110
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind2(6, 7, ctx_r1.fieldComponent.field, ctx_r1.getFieldDocOption));
111
+ i0.ɵɵadvance(2);
112
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind2(8, 10, ctx_r1.fieldComponent.field, ctx_r1.getFieldDocLink));
63
113
  } }
64
114
  function FormItemComponent_div_6_ng_template_2_Template(rf, ctx) { if (rf & 1) {
65
- i0.ɵɵelementStart(0, "span", 16);
115
+ i0.ɵɵelementStart(0, "span", 19);
66
116
  i0.ɵɵtext(1);
67
117
  i0.ɵɵpipe(2, "translate");
68
118
  i0.ɵɵelementEnd();
69
119
  } if (rf & 2) {
70
- const tooltip_r4 = i0.ɵɵnextContext().ngIf;
120
+ const tooltip_r5 = i0.ɵɵnextContext().ngIf;
71
121
  i0.ɵɵadvance();
72
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, tooltip_r4), "");
122
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, tooltip_r5), "");
73
123
  } }
74
124
  function FormItemComponent_div_6_Template(rf, ctx) { if (rf & 1) {
75
- i0.ɵɵelementStart(0, "div", 14);
76
- i0.ɵɵelement(1, "aui-icon", 15);
77
- i0.ɵɵtemplate(2, FormItemComponent_div_6_ng_template_2_Template, 3, 3, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
125
+ i0.ɵɵelementStart(0, "div", 17);
126
+ i0.ɵɵelement(1, "aui-icon", 18);
127
+ i0.ɵɵtemplate(2, FormItemComponent_div_6_ng_template_2_Template, 3, 3, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
78
128
  i0.ɵɵelementEnd();
79
129
  } if (rf & 2) {
80
- const tooltipTmp_r5 = i0.ɵɵreference(3);
130
+ const tooltipTmp_r6 = i0.ɵɵreference(3);
81
131
  i0.ɵɵadvance();
82
- i0.ɵɵproperty("auiTooltip", tooltipTmp_r5);
132
+ i0.ɵɵproperty("auiTooltip", tooltipTmp_r6);
83
133
  } }
84
134
  export class FormItemComponent {
85
135
  constructor(fieldComponent, cdr) {
86
136
  this.fieldComponent = fieldComponent;
87
137
  this.cdr = cdr;
138
+ this.getFieldTooltip = getFieldTooltip;
139
+ this.getFieldDescription = getFieldDescription;
140
+ this.getFieldDocLink = getFieldDocLink;
141
+ this.getFieldDocOption = getFieldDocOption;
142
+ this.isFieldDescriptionAsLink = isFieldDescriptionAsLink;
88
143
  // FIXME: 部分页面需要调用 markForCheck 才行, 需要确认为啥使用了 ChangeDetectionStrategy.Default 数据变更之后视图依旧不同步更新
89
144
  this.fieldComponent.crdForm.form.ngSubmit.subscribe(() => this.cdr.markForCheck());
90
145
  }
91
146
  static { this.ɵfac = function FormItemComponent_Factory(t) { return new (t || FormItemComponent)(i0.ɵɵdirectiveInject(i1.OperandFieldComponent), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
92
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FormItemComponent, selectors: [["acl-crd-form-item"]], inputs: { plain: "plain" }, ngContentSelectors: _c0, decls: 8, vars: 13, consts: [["defaultDescription", ""], ["tooltipTmp", ""], ["width", "large", 3, "emptyAddon", "plain"], ["auiFormItemLabel", "", 4, "ngIf"], ["auiFormItemControl", "", 3, "required", 4, "ngIf"], ["auiFormItemHint", "", 4, "ngIf"], ["auiFormItemAddon", "", 4, "ngIf"], ["auiFormItemLabel", ""], ["auiFormItemControl", "", 3, "required"], ["auiFormItemHint", ""], [3, "errors", 4, "ngIf"], [4, "ngIf", "ngIfElse"], [3, "errors"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["auiFormItemAddon", ""], ["icon", "question_circle", 3, "auiTooltip"], [2, "white-space", "pre-line"]], template: function FormItemComponent_Template(rf, ctx) { if (rf & 1) {
147
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FormItemComponent, selectors: [["acl-crd-form-item"]], inputs: { plain: "plain" }, ngContentSelectors: _c0, decls: 8, vars: 12, consts: [["tooltipTmp", ""], ["width", "large", 3, "emptyAddon", "plain"], ["auiFormItemLabel", "", 4, "ngIf"], ["auiFormItemControl", "", 3, "required", 4, "ngIf"], ["auiFormItemHint", "", 4, "ngIf"], ["auiFormItemAddon", "", 4, "ngIf"], ["auiFormItemLabel", ""], ["auiFormItemControl", "", 3, "required"], ["auiFormItemHint", ""], [3, "errors", 4, "ngIf"], [4, "ngIf"], [3, "aclDocs", 4, "ngIf"], ["target", "_blank", 4, "ngIf"], [3, "errors"], [3, "aclDocs"], ["icon", "jump"], ["target", "_blank"], ["auiFormItemAddon", ""], ["icon", "question_circle", 3, "auiTooltip"], [2, "white-space", "pre-line"]], template: function FormItemComponent_Template(rf, ctx) { if (rf & 1) {
93
148
  i0.ɵɵprojectionDef();
94
- i0.ɵɵelementStart(0, "aui-form-item", 2);
95
- i0.ɵɵtemplate(1, FormItemComponent_label_1_Template, 3, 3, "label", 3);
149
+ i0.ɵɵelementStart(0, "aui-form-item", 1);
150
+ i0.ɵɵtemplate(1, FormItemComponent_label_1_Template, 3, 3, "label", 2);
96
151
  i0.ɵɵpipe(2, "pure");
97
- i0.ɵɵtemplate(3, FormItemComponent_ng_container_3_Template, 1, 1, "ng-container", 4);
152
+ i0.ɵɵtemplate(3, FormItemComponent_ng_container_3_Template, 1, 1, "ng-container", 3);
98
153
  i0.ɵɵprojection(4);
99
- i0.ɵɵtemplate(5, FormItemComponent_div_5_Template, 5, 3, "div", 5)(6, FormItemComponent_div_6_Template, 4, 1, "div", 6);
154
+ i0.ɵɵtemplate(5, FormItemComponent_div_5_Template, 9, 13, "div", 4)(6, FormItemComponent_div_6_Template, 4, 1, "div", 5);
100
155
  i0.ɵɵpipe(7, "pure");
101
156
  i0.ɵɵelementEnd();
102
157
  } if (rf & 2) {
@@ -108,14 +163,14 @@ export class FormItemComponent {
108
163
  i0.ɵɵadvance(2);
109
164
  i0.ɵɵproperty("ngIf", !ctx.fieldComponent.isDisabled);
110
165
  i0.ɵɵadvance();
111
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind3(7, 9, ctx.fieldComponent.field.capabilities, ctx.fieldComponent.getDisplayByCapability, ctx.fieldComponent.SpecCapability.tooltip));
112
- } }, dependencies: [i2.NgIf, i2.NgTemplateOutlet, i3.FormItemComponent, i3.FormItemAddonDirective, i3.FormItemHintDirective, i3.FormItemLabelDirective, i3.FormItemControlDirective, i3.IconComponent, i3.TooltipDirective, i4.ErrorsMapperComponent, i4.E2eAttributeBindingDirective, i4.TranslatePipe, i4.PurePipe], styles: ["[_nghost-%COMP%] label{word-break:break-word}aui-form-item[_ngcontent-%COMP%] .aui-form-item__content--large aui-switch.aui-form-item__control{flex:unset}"] }); }
166
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind2(7, 9, ctx.fieldComponent.field, ctx.getFieldTooltip));
167
+ } }, dependencies: [i2.NgIf, i3.FormItemComponent, i3.FormItemAddonDirective, i3.FormItemHintDirective, i3.FormItemLabelDirective, i3.FormItemControlDirective, i3.IconComponent, i3.TooltipDirective, i4.ErrorsMapperComponent, i4.E2eAttributeBindingDirective, i4.DocsDirective, i4.TranslatePipe, i4.PurePipe], styles: ["[_nghost-%COMP%] label{word-break:break-word}aui-form-item[_ngcontent-%COMP%] .aui-form-item__content--large aui-switch.aui-form-item__control{flex:unset}"] }); }
113
168
  }
114
169
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormItemComponent, [{
115
170
  type: Component,
116
- args: [{ selector: 'acl-crd-form-item', changeDetection: ChangeDetectionStrategy.Default, template: "<aui-form-item\n [emptyAddon]=\"false\"\n [plain]=\"plain\"\n width=\"large\"\n>\n <label\n *ngIf=\"\n fieldComponent.field | pure: fieldComponent.getFieldDisplayName as label\n \"\n auiFormItemLabel\n >{{ label | translate }}</label\n >\n\n <!-- for a required mark in aui-form-item label -->\n <ng-container\n *ngIf=\"!fieldComponent.isDisabled\"\n auiFormItemControl\n [required]=\"fieldComponent.isRequired\"\n ></ng-container>\n\n <ng-content></ng-content>\n\n <div\n *ngIf=\"!fieldComponent.isDisabled\"\n auiFormItemHint\n >\n <acl-errors-mapper\n *ngIf=\"\n (fieldComponent.crdForm.form.submitted ||\n fieldComponent.control.dirty) &&\n fieldComponent.control.invalid &&\n !fieldComponent.isCustomErrorsMapper\n \"\n [errors]=\"fieldComponent.control.errors\"\n >\n </acl-errors-mapper>\n\n <ng-container\n *ngIf=\"fieldComponent.customDescription; else defaultDescription\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n fieldComponent.customDescription.templateRef;\n context: { $implicit: fieldComponent.field }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultDescription>\n {{\n fieldComponent.field\n | pure: fieldComponent.getFieldDescription\n | translate\n }}\n </ng-template>\n </div>\n <div\n auiFormItemAddon\n *ngIf=\"\n fieldComponent.field.capabilities\n | pure\n : fieldComponent.getDisplayByCapability\n : fieldComponent.SpecCapability.tooltip as tooltip\n \"\n >\n <aui-icon\n icon=\"question_circle\"\n [auiTooltip]=\"tooltipTmp\"\n ></aui-icon>\n <ng-template #tooltipTmp>\n <span style=\"white-space: pre-line\"> {{ tooltip | translate }}</span>\n </ng-template>\n </div>\n</aui-form-item>\n", styles: [":host::ng-deep label{word-break:break-word}aui-form-item ::ng-deep .aui-form-item__content--large aui-switch.aui-form-item__control{flex:unset}\n"] }]
171
+ args: [{ selector: 'acl-crd-form-item', changeDetection: ChangeDetectionStrategy.Default, template: "<aui-form-item\n [emptyAddon]=\"false\"\n [plain]=\"plain\"\n width=\"large\"\n>\n <label\n *ngIf=\"\n fieldComponent.field | pure: fieldComponent.getFieldDisplayName as label\n \"\n auiFormItemLabel\n >{{ label | translate }}</label\n >\n\n <!-- for a required mark in aui-form-item label -->\n <ng-container\n *ngIf=\"!fieldComponent.isDisabled\"\n auiFormItemControl\n [required]=\"fieldComponent.isRequired\"\n ></ng-container>\n\n <ng-content></ng-content>\n\n <div\n *ngIf=\"!fieldComponent.isDisabled\"\n auiFormItemHint\n >\n <acl-errors-mapper\n *ngIf=\"\n (fieldComponent.crdForm.form.submitted ||\n fieldComponent.control.dirty) &&\n fieldComponent.control.invalid &&\n !fieldComponent.isCustomErrorsMapper\n \"\n [errors]=\"fieldComponent.control.errors\"\n >\n </acl-errors-mapper>\n\n <div>\n <ng-container\n *ngIf=\"!(fieldComponent.field | pure: isFieldDescriptionAsLink)\"\n >\n {{ fieldComponent.field | pure: getFieldDescription | translate }}\n </ng-container>\n\n <a\n *ngIf=\"fieldComponent.field | pure: getFieldDocOption as option\"\n [aclDocs]=\"{\n product: option.product,\n path: option.path,\n type: 'page',\n }\"\n >\n <ng-container\n *ngIf=\"fieldComponent.field | pure: isFieldDescriptionAsLink\"\n >\n {{ fieldComponent.field | pure: getFieldDescription | translate }}\n </ng-container>\n <aui-icon icon=\"jump\"></aui-icon>\n </a>\n\n <a\n *ngIf=\"fieldComponent.field | pure: getFieldDocLink as link\"\n [attr.href]=\"link\"\n target=\"_blank\"\n >\n <ng-container\n *ngIf=\"fieldComponent.field | pure: isFieldDescriptionAsLink\"\n >\n {{ fieldComponent.field | pure: getFieldDescription | translate }}\n </ng-container>\n <aui-icon icon=\"jump\"></aui-icon>\n </a>\n </div>\n </div>\n <div\n auiFormItemAddon\n *ngIf=\"fieldComponent.field | pure: getFieldTooltip as tooltip\"\n >\n <aui-icon\n icon=\"question_circle\"\n [auiTooltip]=\"tooltipTmp\"\n ></aui-icon>\n <ng-template #tooltipTmp>\n <span style=\"white-space: pre-line\"> {{ tooltip | translate }}</span>\n </ng-template>\n </div>\n</aui-form-item>\n", styles: [":host::ng-deep label{word-break:break-word}aui-form-item ::ng-deep .aui-form-item__content--large aui-switch.aui-form-item__control{flex:unset}\n"] }]
117
172
  }], () => [{ type: i1.OperandFieldComponent }, { type: i0.ChangeDetectorRef }], { plain: [{
118
173
  type: Input
119
174
  }] }); })();
120
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormItemComponent, { className: "FormItemComponent", filePath: "lib/field-controls/form-item.component.ts", lineNumber: 17 }); })();
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3JkLWZvcm0vc3JjL2xpYi9maWVsZC1jb250cm9scy9mb3JtLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmQtZm9ybS9zcmMvbGliL2ZpZWxkLWNvbnRyb2xzL2Zvcm0taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7SUNGaEUsZ0NBS0c7SUFBQSxZQUF1Qjs7SUFBQSxpQkFDekI7OztJQURFLGNBQXVCO0lBQXZCLG9EQUF1Qjs7O0lBSTFCLDJCQUlnQjs7O0lBRGQsMkRBQXNDOzs7SUFTdEMsd0NBU29COzs7SUFGbEIsNkRBQXdDOzs7SUFPeEMsd0JBS2dCOzs7SUFSbEIsNkJBRUM7SUFDQywwR0FLQzs7OztJQUpFLGNBRVk7SUFBQSxBQUZaLHNGQUVZLG9GQUVyQjs7O0lBR00sWUFLRjs7Ozs7SUFMRSxtSkFLRjs7O0lBL0JGLDhCQUdDO0lBc0JDLEFBVkEsQUFYQSxxR0FRQyw4RUFLQSw0R0FRZ0M7SUFPbkMsaUJBQU07Ozs7SUEzQkQsY0FNUDtJQU5PLG9NQU1QO0lBS08sY0FBd0M7SUFBQSxBQUF4Qyw4REFBd0MsbUNBQXVCOzs7SUErQmhFLGdDQUFvQztJQUFDLFlBQXlCOztJQUFBLGlCQUFPOzs7SUFBaEMsY0FBeUI7SUFBekIsZ0VBQXlCOzs7SUFkbEUsK0JBUUM7SUFDQywrQkFHWTtJQUNaLHlIQUF5QjtJQUczQixpQkFBTTs7O0lBTEYsY0FBeUI7SUFBekIsMENBQXlCOztBRGxEL0IsTUFBTSxPQUFPLGlCQUFpQjtJQUk1QixZQUNrQixjQUFxQyxFQUNwQyxHQUFzQjtRQUR2QixtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDcEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFFdkMsNkZBQTZGO1FBQzdGLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUN4QixDQUFDO0lBQ0osQ0FBQztrRkFaVSxpQkFBaUI7b0VBQWpCLGlCQUFpQjs7WUNoQjlCLHdDQUlDO1lBQ0Msc0VBS0c7O1lBSUgsb0ZBSUM7WUFFRCxrQkFBeUI7WUFtQ3pCLEFBakNBLGtFQUdDLHFEQXNDQTs7WUFTSCxpQkFBZ0I7O1lBdEVkLEFBREEsa0NBQW9CLG9CQUNMO1lBSVosY0FDd0U7WUFEeEUsNkdBQ3dFO1lBUXhFLGVBQWdDO1lBQWhDLHFEQUFnQztZQVFoQyxlQUFnQztZQUFoQyxxREFBZ0M7WUFrQ2hDLGNBSW9EO1lBSnBELHdLQUlvRDs7O2lGRDdDNUMsaUJBQWlCO2NBUDdCLFNBQVM7MkJBQ0UsbUJBQW1CLG1CQUlaLHVCQUF1QixDQUFDLE9BQU87c0ZBSWhELEtBQUs7a0JBREosS0FBSzs7a0ZBREssaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT3BlcmFuZEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9vcGVyYW5kLWZpZWxkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1jcmQtZm9ybS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICdmb3JtLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZm9ybS1pdGVtLnN0eWxlcy5zY3NzJ10sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvcHJlZmVyLW9uLXB1c2gtY29tcG9uZW50LWNoYW5nZS1kZXRlY3Rpb24gLS0gZm9ybSBzdGF0dXMgY2hhbmdlXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUl0ZW1Db21wb25lbnQge1xuICBASW5wdXQoKVxuICBwbGFpbjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmllbGRDb21wb25lbnQ6IE9wZXJhbmRGaWVsZENvbXBvbmVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIC8vIEZJWE1FOiDpg6jliIbpobXpnaLpnIDopoHosIPnlKggbWFya0ZvckNoZWNrIOaJjeihjO+8jCDpnIDopoHnoa7orqTkuLrllaXkvb/nlKjkuoYgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCDmlbDmja7lj5jmm7TkuYvlkI7op4blm77kvp3ml6fkuI3lkIzmraXmm7TmlrBcbiAgICB0aGlzLmZpZWxkQ29tcG9uZW50LmNyZEZvcm0uZm9ybS5uZ1N1Ym1pdC5zdWJzY3JpYmUoKCkgPT5cbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpLFxuICAgICk7XG4gIH1cbn1cbiIsIjxhdWktZm9ybS1pdGVtXG4gIFtlbXB0eUFkZG9uXT1cImZhbHNlXCJcbiAgW3BsYWluXT1cInBsYWluXCJcbiAgd2lkdGg9XCJsYXJnZVwiXG4+XG4gIDxsYWJlbFxuICAgICpuZ0lmPVwiXG4gICAgICBmaWVsZENvbXBvbmVudC5maWVsZCB8IHB1cmU6IGZpZWxkQ29tcG9uZW50LmdldEZpZWxkRGlzcGxheU5hbWUgYXMgbGFiZWxcbiAgICBcIlxuICAgIGF1aUZvcm1JdGVtTGFiZWxcbiAgICA+e3sgbGFiZWwgfCB0cmFuc2xhdGUgfX08L2xhYmVsXG4gID5cblxuICA8IS0tIGZvciBhIHJlcXVpcmVkIG1hcmsgaW4gYXVpLWZvcm0taXRlbSBsYWJlbCAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiIWZpZWxkQ29tcG9uZW50LmlzRGlzYWJsZWRcIlxuICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgIFtyZXF1aXJlZF09XCJmaWVsZENvbXBvbmVudC5pc1JlcXVpcmVkXCJcbiAgPjwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICA8ZGl2XG4gICAgKm5nSWY9XCIhZmllbGRDb21wb25lbnQuaXNEaXNhYmxlZFwiXG4gICAgYXVpRm9ybUl0ZW1IaW50XG4gID5cbiAgICA8YWNsLWVycm9ycy1tYXBwZXJcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgIChmaWVsZENvbXBvbmVudC5jcmRGb3JtLmZvcm0uc3VibWl0dGVkIHx8XG4gICAgICAgICAgZmllbGRDb21wb25lbnQuY29udHJvbC5kaXJ0eSkgJiZcbiAgICAgICAgZmllbGRDb21wb25lbnQuY29udHJvbC5pbnZhbGlkICYmXG4gICAgICAgICFmaWVsZENvbXBvbmVudC5pc0N1c3RvbUVycm9yc01hcHBlclxuICAgICAgXCJcbiAgICAgIFtlcnJvcnNdPVwiZmllbGRDb21wb25lbnQuY29udHJvbC5lcnJvcnNcIlxuICAgID5cbiAgICA8L2FjbC1lcnJvcnMtbWFwcGVyPlxuXG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCJmaWVsZENvbXBvbmVudC5jdXN0b21EZXNjcmlwdGlvbjsgZWxzZSBkZWZhdWx0RGVzY3JpcHRpb25cIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICBmaWVsZENvbXBvbmVudC5jdXN0b21EZXNjcmlwdGlvbi50ZW1wbGF0ZVJlZjtcbiAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogZmllbGRDb21wb25lbnQuZmllbGQgfVxuICAgICAgICBcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdERlc2NyaXB0aW9uPlxuICAgICAge3tcbiAgICAgICAgZmllbGRDb21wb25lbnQuZmllbGRcbiAgICAgICAgICB8IHB1cmU6IGZpZWxkQ29tcG9uZW50LmdldEZpZWxkRGVzY3JpcHRpb25cbiAgICAgICAgICB8IHRyYW5zbGF0ZVxuICAgICAgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGF1aUZvcm1JdGVtQWRkb25cbiAgICAqbmdJZj1cIlxuICAgICAgZmllbGRDb21wb25lbnQuZmllbGQuY2FwYWJpbGl0aWVzXG4gICAgICAgIHwgcHVyZVxuICAgICAgICAgIDogZmllbGRDb21wb25lbnQuZ2V0RGlzcGxheUJ5Q2FwYWJpbGl0eVxuICAgICAgICAgIDogZmllbGRDb21wb25lbnQuU3BlY0NhcGFiaWxpdHkudG9vbHRpcCBhcyB0b29sdGlwXG4gICAgXCJcbiAgPlxuICAgIDxhdWktaWNvblxuICAgICAgaWNvbj1cInF1ZXN0aW9uX2NpcmNsZVwiXG4gICAgICBbYXVpVG9vbHRpcF09XCJ0b29sdGlwVG1wXCJcbiAgICA+PC9hdWktaWNvbj5cbiAgICA8bmctdGVtcGxhdGUgI3Rvb2x0aXBUbXA+XG4gICAgICA8c3BhbiBzdHlsZT1cIndoaXRlLXNwYWNlOiBwcmUtbGluZVwiPiB7eyB0b29sdGlwIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9hdWktZm9ybS1pdGVtPlxuIl19
175
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FormItemComponent, { className: "FormItemComponent", filePath: "lib/field-controls/form-item.component.ts", lineNumber: 25 }); })();
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3JkLWZvcm0vc3JjL2xpYi9maWVsZC1jb250cm9scy9mb3JtLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcmQtZm9ybS9zcmMvbGliL2ZpZWxkLWNvbnRyb2xzL2Zvcm0taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixlQUFlLEVBQ2Ysd0JBQXdCLEdBQ3pCLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7SUNWaEUsZ0NBS0c7SUFBQSxZQUF1Qjs7SUFBQSxpQkFDekI7OztJQURFLGNBQXVCO0lBQXZCLG9EQUF1Qjs7O0lBSTFCLDJCQUlnQjs7O0lBRGQsMkRBQXNDOzs7SUFTdEMsd0NBU29COzs7SUFGbEIsNkRBQXdDOzs7SUFLeEMsNkJBRUM7SUFDQyxZQUNGOzs7Ozs7SUFERSxjQUNGO0lBREUsb0lBQ0Y7OztJQVVFLDZCQUVDO0lBQ0MsWUFDRjs7Ozs7O0lBREUsY0FDRjtJQURFLG9JQUNGOzs7SUFaRiw2QkFPQztJQUNDLCtGQUVDOztJQUdELCtCQUFpQztJQUNuQyxpQkFBSTs7OztJQVpGLHVGQUlFO0lBR0MsY0FBMkQ7SUFBM0QseUdBQTJEOzs7SUFZOUQsNkJBRUM7SUFDQyxZQUNGOzs7Ozs7SUFERSxjQUNGO0lBREUsb0lBQ0Y7OztJQVRGLDZCQUlDO0lBQ0MsK0ZBRUM7O0lBR0QsK0JBQWlDO0lBQ25DLGlCQUFJOzs7OztJQUxDLGNBQTJEO0lBQTNELHlHQUEyRDs7O0lBNUNwRSw4QkFHQztJQUNDLG9HQVFDO0lBR0QsMkJBQUs7SUFDSCwyRkFFQzs7SUFJRCxxRUFPQzs7SUFTRCxxRUFJQzs7SUFTTCxBQURFLGlCQUFNLEVBQ0Y7OztJQTlDRCxjQU1QO0lBTk8sb01BTVA7SUFNUyxlQUE4RDtJQUE5RCwwR0FBOEQ7SUFNOUQsZUFBcUQ7SUFBckQsa0dBQXFEO0lBZ0JyRCxlQUFtRDtJQUFuRCxpR0FBbUQ7OztJQXNCdEQsZ0NBQW9DO0lBQUMsWUFBeUI7O0lBQUEsaUJBQU87OztJQUFoQyxjQUF5QjtJQUF6QixnRUFBeUI7OztJQVRsRSwrQkFHQztJQUNDLCtCQUdZO0lBQ1oseUhBQXlCO0lBRzNCLGlCQUFNOzs7SUFMRixjQUF5QjtJQUF6QiwwQ0FBeUI7O0FEeEQvQixNQUFNLE9BQU8saUJBQWlCO0lBVTVCLFlBQ2tCLGNBQXFDLEVBQ3BDLEdBQXNCO1FBRHZCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNwQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVJ6QyxvQkFBZSxHQUFHLGVBQWUsQ0FBQztRQUNsQyx3QkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztRQUMxQyxvQkFBZSxHQUFHLGVBQWUsQ0FBQztRQUNsQyxzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUN0Qyw2QkFBd0IsR0FBRyx3QkFBd0IsQ0FBQztRQU1sRCw2RkFBNkY7UUFDN0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQ3ZELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQ3hCLENBQUM7SUFDSixDQUFDO2tGQWxCVSxpQkFBaUI7b0VBQWpCLGlCQUFpQjs7WUN4QjlCLHdDQUlDO1lBQ0Msc0VBS0c7O1lBSUgsb0ZBSUM7WUFFRCxrQkFBeUI7WUFzRHpCLEFBcERBLG1FQUdDLHFEQW9EQTs7WUFTSCxpQkFBZ0I7O1lBcEZkLEFBREEsa0NBQW9CLG9CQUNMO1lBSVosY0FDd0U7WUFEeEUsNkdBQ3dFO1lBUXhFLGVBQWdDO1lBQWhDLHFEQUFnQztZQVFoQyxlQUFnQztZQUFoQyxxREFBZ0M7WUFxRGhDLGNBQW1EO1lBQW5ELDBGQUFtRDs7O2lGRHBEM0MsaUJBQWlCO2NBUDdCLFNBQVM7MkJBQ0UsbUJBQW1CLG1CQUlaLHVCQUF1QixDQUFDLE9BQU87c0ZBSWhELEtBQUs7a0JBREosS0FBSzs7a0ZBREssaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgZ2V0RmllbGREZXNjcmlwdGlvbixcbiAgZ2V0RmllbGREb2NMaW5rLFxuICBnZXRGaWVsZERvY09wdGlvbixcbiAgZ2V0RmllbGRUb29sdGlwLFxuICBpc0ZpZWxkRGVzY3JpcHRpb25Bc0xpbmssXG59IGZyb20gJy4uL3V0aWxzJztcblxuaW1wb3J0IHsgT3BlcmFuZEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9vcGVyYW5kLWZpZWxkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1jcmQtZm9ybS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICdmb3JtLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZm9ybS1pdGVtLnN0eWxlcy5zY3NzJ10sXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvcHJlZmVyLW9uLXB1c2gtY29tcG9uZW50LWNoYW5nZS1kZXRlY3Rpb24gLS0gZm9ybSBzdGF0dXMgY2hhbmdlXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUl0ZW1Db21wb25lbnQge1xuICBASW5wdXQoKVxuICBwbGFpbjogYm9vbGVhbjtcblxuICBnZXRGaWVsZFRvb2x0aXAgPSBnZXRGaWVsZFRvb2x0aXA7XG4gIGdldEZpZWxkRGVzY3JpcHRpb24gPSBnZXRGaWVsZERlc2NyaXB0aW9uO1xuICBnZXRGaWVsZERvY0xpbmsgPSBnZXRGaWVsZERvY0xpbms7XG4gIGdldEZpZWxkRG9jT3B0aW9uID0gZ2V0RmllbGREb2NPcHRpb247XG4gIGlzRmllbGREZXNjcmlwdGlvbkFzTGluayA9IGlzRmllbGREZXNjcmlwdGlvbkFzTGluaztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmllbGRDb21wb25lbnQ6IE9wZXJhbmRGaWVsZENvbXBvbmVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge1xuICAgIC8vIEZJWE1FOiDpg6jliIbpobXpnaLpnIDopoHosIPnlKggbWFya0ZvckNoZWNrIOaJjeihjO+8jCDpnIDopoHnoa7orqTkuLrllaXkvb/nlKjkuoYgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCDmlbDmja7lj5jmm7TkuYvlkI7op4blm77kvp3ml6fkuI3lkIzmraXmm7TmlrBcbiAgICB0aGlzLmZpZWxkQ29tcG9uZW50LmNyZEZvcm0uZm9ybS5uZ1N1Ym1pdC5zdWJzY3JpYmUoKCkgPT5cbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpLFxuICAgICk7XG4gIH1cbn1cbiIsIjxhdWktZm9ybS1pdGVtXG4gIFtlbXB0eUFkZG9uXT1cImZhbHNlXCJcbiAgW3BsYWluXT1cInBsYWluXCJcbiAgd2lkdGg9XCJsYXJnZVwiXG4+XG4gIDxsYWJlbFxuICAgICpuZ0lmPVwiXG4gICAgICBmaWVsZENvbXBvbmVudC5maWVsZCB8IHB1cmU6IGZpZWxkQ29tcG9uZW50LmdldEZpZWxkRGlzcGxheU5hbWUgYXMgbGFiZWxcbiAgICBcIlxuICAgIGF1aUZvcm1JdGVtTGFiZWxcbiAgICA+e3sgbGFiZWwgfCB0cmFuc2xhdGUgfX08L2xhYmVsXG4gID5cblxuICA8IS0tIGZvciBhIHJlcXVpcmVkIG1hcmsgaW4gYXVpLWZvcm0taXRlbSBsYWJlbCAtLT5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiIWZpZWxkQ29tcG9uZW50LmlzRGlzYWJsZWRcIlxuICAgIGF1aUZvcm1JdGVtQ29udHJvbFxuICAgIFtyZXF1aXJlZF09XCJmaWVsZENvbXBvbmVudC5pc1JlcXVpcmVkXCJcbiAgPjwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICA8ZGl2XG4gICAgKm5nSWY9XCIhZmllbGRDb21wb25lbnQuaXNEaXNhYmxlZFwiXG4gICAgYXVpRm9ybUl0ZW1IaW50XG4gID5cbiAgICA8YWNsLWVycm9ycy1tYXBwZXJcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgIChmaWVsZENvbXBvbmVudC5jcmRGb3JtLmZvcm0uc3VibWl0dGVkIHx8XG4gICAgICAgICAgZmllbGRDb21wb25lbnQuY29udHJvbC5kaXJ0eSkgJiZcbiAgICAgICAgZmllbGRDb21wb25lbnQuY29udHJvbC5pbnZhbGlkICYmXG4gICAgICAgICFmaWVsZENvbXBvbmVudC5pc0N1c3RvbUVycm9yc01hcHBlclxuICAgICAgXCJcbiAgICAgIFtlcnJvcnNdPVwiZmllbGRDb21wb25lbnQuY29udHJvbC5lcnJvcnNcIlxuICAgID5cbiAgICA8L2FjbC1lcnJvcnMtbWFwcGVyPlxuXG4gICAgPGRpdj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCIhKGZpZWxkQ29tcG9uZW50LmZpZWxkIHwgcHVyZTogaXNGaWVsZERlc2NyaXB0aW9uQXNMaW5rKVwiXG4gICAgICA+XG4gICAgICAgIHt7IGZpZWxkQ29tcG9uZW50LmZpZWxkIHwgcHVyZTogZ2V0RmllbGREZXNjcmlwdGlvbiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxhXG4gICAgICAgICpuZ0lmPVwiZmllbGRDb21wb25lbnQuZmllbGQgfCBwdXJlOiBnZXRGaWVsZERvY09wdGlvbiBhcyBvcHRpb25cIlxuICAgICAgICBbYWNsRG9jc109XCJ7XG4gICAgICAgICAgcHJvZHVjdDogb3B0aW9uLnByb2R1Y3QsXG4gICAgICAgICAgcGF0aDogb3B0aW9uLnBhdGgsXG4gICAgICAgICAgdHlwZTogJ3BhZ2UnLFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0lmPVwiZmllbGRDb21wb25lbnQuZmllbGQgfCBwdXJlOiBpc0ZpZWxkRGVzY3JpcHRpb25Bc0xpbmtcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZmllbGRDb21wb25lbnQuZmllbGQgfCBwdXJlOiBnZXRGaWVsZERlc2NyaXB0aW9uIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8YXVpLWljb24gaWNvbj1cImp1bXBcIj48L2F1aS1pY29uPlxuICAgICAgPC9hPlxuXG4gICAgICA8YVxuICAgICAgICAqbmdJZj1cImZpZWxkQ29tcG9uZW50LmZpZWxkIHwgcHVyZTogZ2V0RmllbGREb2NMaW5rIGFzIGxpbmtcIlxuICAgICAgICBbYXR0ci5ocmVmXT1cImxpbmtcIlxuICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJmaWVsZENvbXBvbmVudC5maWVsZCB8IHB1cmU6IGlzRmllbGREZXNjcmlwdGlvbkFzTGlua1wiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmaWVsZENvbXBvbmVudC5maWVsZCB8IHB1cmU6IGdldEZpZWxkRGVzY3JpcHRpb24gfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxhdWktaWNvbiBpY29uPVwianVtcFwiPjwvYXVpLWljb24+XG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgYXVpRm9ybUl0ZW1BZGRvblxuICAgICpuZ0lmPVwiZmllbGRDb21wb25lbnQuZmllbGQgfCBwdXJlOiBnZXRGaWVsZFRvb2x0aXAgYXMgdG9vbHRpcFwiXG4gID5cbiAgICA8YXVpLWljb25cbiAgICAgIGljb249XCJxdWVzdGlvbl9jaXJjbGVcIlxuICAgICAgW2F1aVRvb2x0aXBdPVwidG9vbHRpcFRtcFwiXG4gICAgPjwvYXVpLWljb24+XG4gICAgPG5nLXRlbXBsYXRlICN0b29sdGlwVG1wPlxuICAgICAgPHNwYW4gc3R5bGU9XCJ3aGl0ZS1zcGFjZTogcHJlLWxpbmVcIj4ge3sgdG9vbHRpcCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvYXVpLWZvcm0taXRlbT5cbiJdfQ==