@alauda-fe/crd-form 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/esm2022/alauda-fe-crd-form.mjs +5 -0
  2. package/esm2022/lib/abstract/base-array.mjs +117 -0
  3. package/esm2022/lib/crd-form/component.mjs +334 -0
  4. package/esm2022/lib/crd-form/helper.mjs +32 -0
  5. package/esm2022/lib/crd-form.module.mjs +117 -0
  6. package/esm2022/lib/field-controls/expressions/expression-core.mjs +2 -0
  7. package/esm2022/lib/field-controls/expressions/props-expression.mjs +58 -0
  8. package/esm2022/lib/field-controls/form-item.component.mjs +121 -0
  9. package/esm2022/lib/field-controls/index.mjs +8 -0
  10. package/esm2022/lib/field-controls/module.mjs +141 -0
  11. package/esm2022/lib/field-controls/operand-advanced-field-group.component.mjs +80 -0
  12. package/esm2022/lib/field-controls/operand-array-field-group.component.mjs +112 -0
  13. package/esm2022/lib/field-controls/operand-field-group.component.mjs +98 -0
  14. package/esm2022/lib/field-controls/operand-field.component.mjs +870 -0
  15. package/esm2022/lib/field-controls/widgets/array-table/component.mjs +109 -0
  16. package/esm2022/lib/field-controls/widgets/basic-auth-secret/component.mjs +116 -0
  17. package/esm2022/lib/field-controls/widgets/basic-auth-secret/create/component.mjs +211 -0
  18. package/esm2022/lib/field-controls/widgets/basic-auth-secret/type.mjs +2 -0
  19. package/esm2022/lib/field-controls/widgets/index.mjs +8 -0
  20. package/esm2022/lib/field-controls/widgets/k8s-resource-prefix/component.mjs +169 -0
  21. package/esm2022/lib/field-controls/widgets/k8s-resource-prefix/util.mjs +40 -0
  22. package/esm2022/lib/field-controls/widgets/link/component.mjs +68 -0
  23. package/esm2022/lib/field-controls/widgets/resource-requirements/resource-requirements.component.mjs +524 -0
  24. package/esm2022/lib/field-controls/widgets/utils.mjs +73 -0
  25. package/esm2022/lib/field-controls/widgets/yaml-editor/yaml-editor.component.mjs +94 -0
  26. package/esm2022/lib/field-widgets/htpasswd/component.mjs +35 -0
  27. package/esm2022/lib/field-widgets/htpasswd/form.mjs +171 -0
  28. package/esm2022/lib/field-widgets/htpasswd/index.mjs +4 -0
  29. package/esm2022/lib/field-widgets/htpasswd/module.mjs +54 -0
  30. package/esm2022/lib/field-widgets/index.mjs +2 -0
  31. package/esm2022/lib/remote-widgets/constants.mjs +4 -0
  32. package/esm2022/lib/remote-widgets/index.mjs +4 -0
  33. package/esm2022/lib/remote-widgets/remote-widget.service.mjs +42 -0
  34. package/esm2022/lib/remote-widgets/token.mjs +7 -0
  35. package/esm2022/lib/spec-descriptors/capability/capability.component.mjs +139 -0
  36. package/esm2022/lib/spec-descriptors/capability-list/capability-list.component.mjs +189 -0
  37. package/esm2022/lib/spec-descriptors/index.mjs +4 -0
  38. package/esm2022/lib/spec-descriptors/util.mjs +13 -0
  39. package/esm2022/lib/types/index.mjs +73 -0
  40. package/esm2022/lib/utils/capability.mjs +295 -0
  41. package/esm2022/lib/utils/constant.mjs +22 -0
  42. package/esm2022/lib/utils/directives.mjs +19 -0
  43. package/esm2022/lib/utils/helper.mjs +201 -0
  44. package/esm2022/lib/utils/index.mjs +7 -0
  45. package/esm2022/lib/utils/service-model.mjs +12 -0
  46. package/esm2022/lib/utils/util.mjs +310 -0
  47. package/esm2022/public-api.mjs +13 -0
  48. package/index.d.ts +5 -0
  49. package/lib/abstract/base-array.d.ts +31 -0
  50. package/lib/crd-form/component.d.ts +61 -0
  51. package/lib/crd-form/helper.d.ts +7 -0
  52. package/lib/crd-form.module.d.ts +16 -0
  53. package/lib/field-controls/expressions/expression-core.d.ts +6 -0
  54. package/lib/field-controls/expressions/props-expression.d.ts +36 -0
  55. package/lib/field-controls/form-item.component.d.ts +11 -0
  56. package/lib/field-controls/index.d.ts +7 -0
  57. package/lib/field-controls/module.d.ts +23 -0
  58. package/lib/field-controls/operand-advanced-field-group.component.d.ts +16 -0
  59. package/lib/field-controls/operand-array-field-group.component.d.ts +8 -0
  60. package/lib/field-controls/operand-field-group.component.d.ts +24 -0
  61. package/lib/field-controls/operand-field.component.d.ts +110 -0
  62. package/lib/field-controls/widgets/array-table/component.d.ts +8 -0
  63. package/lib/field-controls/widgets/basic-auth-secret/component.d.ts +26 -0
  64. package/lib/field-controls/widgets/basic-auth-secret/create/component.d.ts +45 -0
  65. package/lib/field-controls/widgets/basic-auth-secret/type.d.ts +11 -0
  66. package/lib/field-controls/widgets/index.d.ts +7 -0
  67. package/lib/field-controls/widgets/k8s-resource-prefix/component.d.ts +35 -0
  68. package/lib/field-controls/widgets/k8s-resource-prefix/util.d.ts +3 -0
  69. package/lib/field-controls/widgets/link/component.d.ts +20 -0
  70. package/lib/field-controls/widgets/resource-requirements/resource-requirements.component.d.ts +88 -0
  71. package/lib/field-controls/widgets/utils.d.ts +17 -0
  72. package/lib/field-controls/widgets/yaml-editor/yaml-editor.component.d.ts +36 -0
  73. package/lib/field-widgets/htpasswd/component.d.ts +9 -0
  74. package/lib/field-widgets/htpasswd/form.d.ts +32 -0
  75. package/lib/field-widgets/htpasswd/index.d.ts +3 -0
  76. package/lib/field-widgets/htpasswd/module.d.ts +13 -0
  77. package/lib/field-widgets/index.d.ts +1 -0
  78. package/lib/remote-widgets/constants.d.ts +3 -0
  79. package/lib/remote-widgets/index.d.ts +3 -0
  80. package/lib/remote-widgets/remote-widget.service.d.ts +28 -0
  81. package/lib/remote-widgets/token.d.ts +3 -0
  82. package/lib/spec-descriptors/capability/capability.component.d.ts +20 -0
  83. package/lib/spec-descriptors/capability-list/capability-list.component.d.ts +34 -0
  84. package/lib/spec-descriptors/index.d.ts +3 -0
  85. package/lib/spec-descriptors/util.d.ts +4 -0
  86. package/lib/types/index.d.ts +122 -0
  87. package/lib/utils/capability.d.ts +54 -0
  88. package/lib/utils/constant.d.ts +12 -0
  89. package/lib/utils/directives.d.ts +9 -0
  90. package/lib/utils/helper.d.ts +61 -0
  91. package/lib/utils/index.d.ts +6 -0
  92. package/lib/utils/service-model.d.ts +44 -0
  93. package/lib/utils/util.d.ts +48 -0
  94. package/package.json +30 -0
  95. package/public-api.d.ts +9 -0
@@ -0,0 +1,112 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { get } from 'lodash-es';
3
+ import { BaseOperandFiledArrayComponent } from '../abstract/base-array';
4
+ import { isEmptyArray } from '../utils';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@alauda/ui";
8
+ import * as i3 from "@alauda-fe/common";
9
+ import * as i4 from "./operand-field.component";
10
+ function OperandArrayFieldGroupComponent_aui_icon_3_Template(rf, ctx) { if (rf & 1) {
11
+ i0.ɵɵelement(0, "aui-icon", 8);
12
+ } }
13
+ function OperandArrayFieldGroupComponent_aui_icon_4_Template(rf, ctx) { if (rf & 1) {
14
+ i0.ɵɵelement(0, "aui-icon", 8);
15
+ } }
16
+ function OperandArrayFieldGroupComponent_div_11_div_1_Template(rf, ctx) { if (rf & 1) {
17
+ const _r1 = i0.ɵɵgetCurrentView();
18
+ i0.ɵɵelementStart(0, "div", 12)(1, "button", 13);
19
+ i0.ɵɵlistener("click", function OperandArrayFieldGroupComponent_div_11_div_1_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r1); const i_r2 = i0.ɵɵnextContext().index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.removeItem(i_r2)); });
20
+ i0.ɵɵelement(2, "aui-icon", 14);
21
+ i0.ɵɵelementStart(3, "span");
22
+ i0.ɵɵtext(4);
23
+ i0.ɵɵpipe(5, "translate");
24
+ i0.ɵɵelementEnd()()();
25
+ } if (rf & 2) {
26
+ i0.ɵɵadvance(4);
27
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 1, "remove"));
28
+ } }
29
+ function OperandArrayFieldGroupComponent_div_11_div_2_Template(rf, ctx) { if (rf & 1) {
30
+ const _r4 = i0.ɵɵgetCurrentView();
31
+ i0.ɵɵelementStart(0, "div")(1, "acl-operand-field", 15);
32
+ i0.ɵɵlistener("valueChange", function OperandArrayFieldGroupComponent_div_11_div_2_Template_acl_operand_field_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.fieldValueChange($event)); });
33
+ i0.ɵɵelementEnd()();
34
+ } if (rf & 2) {
35
+ const field_r5 = ctx.$implicit;
36
+ const ctx_r2 = i0.ɵɵnextContext(2);
37
+ i0.ɵɵadvance();
38
+ i0.ɵɵproperty("field", field_r5)("formDataState", ctx_r2.formDataState)("formErrors", ctx_r2.formErrors)("readonly", ctx_r2.readonly);
39
+ } }
40
+ function OperandArrayFieldGroupComponent_div_11_Template(rf, ctx) { if (rf & 1) {
41
+ i0.ɵɵelementStart(0, "div", 9);
42
+ i0.ɵɵtemplate(1, OperandArrayFieldGroupComponent_div_11_div_1_Template, 6, 3, "div", 10)(2, OperandArrayFieldGroupComponent_div_11_div_2_Template, 2, 4, "div", 11);
43
+ i0.ɵɵelementEnd();
44
+ } if (rf & 2) {
45
+ const list_r6 = ctx.$implicit;
46
+ const ctx_r2 = i0.ɵɵnextContext();
47
+ i0.ɵɵadvance();
48
+ i0.ɵɵproperty("ngIf", !ctx_r2.readonly);
49
+ i0.ɵɵadvance();
50
+ i0.ɵɵproperty("ngForOf", list_r6);
51
+ } }
52
+ function OperandArrayFieldGroupComponent_div_12_Template(rf, ctx) { if (rf & 1) {
53
+ const _r7 = i0.ɵɵgetCurrentView();
54
+ i0.ɵɵelementStart(0, "div", 16)(1, "button", 13);
55
+ i0.ɵɵlistener("click", function OperandArrayFieldGroupComponent_div_12_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.addItem()); });
56
+ i0.ɵɵelement(2, "aui-icon", 17);
57
+ i0.ɵɵelementStart(3, "span");
58
+ i0.ɵɵtext(4);
59
+ i0.ɵɵpipe(5, "translate");
60
+ i0.ɵɵpipe(6, "pure");
61
+ i0.ɵɵpipe(7, "translate");
62
+ i0.ɵɵelementEnd()()();
63
+ } if (rf & 2) {
64
+ const ctx_r2 = i0.ɵɵnextContext();
65
+ i0.ɵɵadvance(4);
66
+ i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(5, 2, "add"), " ", i0.ɵɵpipeBind1(7, 7, i0.ɵɵpipeBind2(6, 4, ctx_r2.arrayFieldGroup, ctx_r2.getFieldDisplayName)), "");
67
+ } }
68
+ export class OperandArrayFieldGroupComponent extends BaseOperandFiledArrayComponent {
69
+ ngOnInit() {
70
+ // 如果 arrayFieldGroup 配置了 urn:alm:descriptor:com.tectonic.ui:emptyArray 并且没有 value 值,则不保留首项
71
+ if (!get(this.arrayFieldGroup.value, 'length') &&
72
+ isEmptyArray(this.arrayFieldGroup)) {
73
+ this.removeItem(0);
74
+ }
75
+ }
76
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵOperandArrayFieldGroupComponent_BaseFactory; return function OperandArrayFieldGroupComponent_Factory(t) { return (ɵOperandArrayFieldGroupComponent_BaseFactory || (ɵOperandArrayFieldGroupComponent_BaseFactory = i0.ɵɵgetInheritedFactory(OperandArrayFieldGroupComponent)))(t || OperandArrayFieldGroupComponent); }; })(); }
77
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OperandArrayFieldGroupComponent, selectors: [["acl-operand-array-field-group"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 13, vars: 13, consts: [[1, "field-group"], [1, "header"], [1, "title", 3, "click"], ["size", "20px,20px", "icon", "caret_down_s", 4, "ngIf"], [1, "description"], [1, "content", 3, "hidden"], ["class", "array-item", 4, "ngFor", "ngForOf"], ["class", "array-item__add", 4, "ngIf"], ["size", "20px,20px", "icon", "caret_down_s"], [1, "array-item"], ["class", "array-item__remove", 4, "ngIf"], [4, "ngFor", "ngForOf"], [1, "array-item__remove"], ["aui-button", "text", "size", "small", 3, "click"], ["icon", "minus_circle"], [3, "valueChange", "field", "formDataState", "formErrors", "readonly"], [1, "array-item__add"], ["icon", "plus_circle"]], template: function OperandArrayFieldGroupComponent_Template(rf, ctx) { if (rf & 1) {
78
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
79
+ i0.ɵɵlistener("click", function OperandArrayFieldGroupComponent_Template_div_click_2_listener() { return ctx.expanded = !ctx.expanded; });
80
+ i0.ɵɵtemplate(3, OperandArrayFieldGroupComponent_aui_icon_3_Template, 1, 0, "aui-icon", 3)(4, OperandArrayFieldGroupComponent_aui_icon_4_Template, 1, 0, "aui-icon", 3);
81
+ i0.ɵɵelementStart(5, "span");
82
+ i0.ɵɵtext(6);
83
+ i0.ɵɵpipe(7, "pure");
84
+ i0.ɵɵpipe(8, "translate");
85
+ i0.ɵɵelementEnd()();
86
+ i0.ɵɵelement(9, "div", 4);
87
+ i0.ɵɵelementEnd();
88
+ i0.ɵɵelementStart(10, "div", 5);
89
+ i0.ɵɵtemplate(11, OperandArrayFieldGroupComponent_div_11_Template, 3, 2, "div", 6)(12, OperandArrayFieldGroupComponent_div_12_Template, 8, 9, "div", 7);
90
+ i0.ɵɵelementEnd()();
91
+ } if (rf & 2) {
92
+ i0.ɵɵclassProp("expanded", ctx.expanded);
93
+ i0.ɵɵadvance(3);
94
+ i0.ɵɵproperty("ngIf", !ctx.expanded);
95
+ i0.ɵɵadvance();
96
+ i0.ɵɵproperty("ngIf", ctx.expanded);
97
+ i0.ɵɵadvance(2);
98
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(8, 11, i0.ɵɵpipeBind2(7, 8, ctx.arrayFieldGroup, ctx.getFieldDisplayName)));
99
+ i0.ɵɵadvance(4);
100
+ i0.ɵɵproperty("hidden", !ctx.expanded);
101
+ i0.ɵɵadvance();
102
+ i0.ɵɵproperty("ngForOf", ctx.arrayFieldGroup.fieldLists);
103
+ i0.ɵɵadvance();
104
+ i0.ɵɵproperty("ngIf", !ctx.readonly);
105
+ } }, dependencies: [i1.NgForOf, i1.NgIf, i2.IconComponent, i2.ButtonComponent, i3.E2eAttributeBindingDirective, i4.OperandFieldComponent, i3.TranslatePipe, i3.PurePipe], styles: [".field-group[_ngcontent-%COMP%]{border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-10));position:relative;margin-bottom:16px;border-radius:2px}.field-group[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{padding:0 20px;font-size:14px;font-weight:500;display:flex;align-items:center;height:60px;line-height:20px;color:rgb(var(--aui-color-n-1));cursor:pointer}.field-group[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{margin-right:20px;font-size:20px}.field-group[_ngcontent-%COMP%] .description[_ngcontent-%COMP%]{display:block;padding-left:22px;font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.field-group[_ngcontent-%COMP%]:not(.expanded) aui-icon[icon=caret_down_s][_ngcontent-%COMP%]{transform:rotate(-90deg)}.field-group.expanded[_ngcontent-%COMP%] > .header[_ngcontent-%COMP%] > .title[_ngcontent-%COMP%]{border-bottom:1px solid rgb(var(--aui-color-n-8))}.field-group.expanded[_ngcontent-%COMP%] > .header[_ngcontent-%COMP%] > .description[_ngcontent-%COMP%]{display:block;margin-top:4px}.field-group[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{padding:8px 12px}.field-group[_ngcontent-%COMP%] .content.no-title[_ngcontent-%COMP%]{padding-top:0}.field-group[_ngcontent-%COMP%] .array-item__remove[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;margin-bottom:4px}.field-group[_ngcontent-%COMP%] .array-item__add[_ngcontent-%COMP%], .field-group[_ngcontent-%COMP%] .array-item__remove[_ngcontent-%COMP%]{text-align:center}.field-group[_ngcontent-%COMP%] .array-item__add[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%], .field-group[_ngcontent-%COMP%] .array-item__remove[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{margin-right:4px}"], changeDetection: 0 }); }
106
+ }
107
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OperandArrayFieldGroupComponent, [{
108
+ type: Component,
109
+ args: [{ selector: 'acl-operand-array-field-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class.expanded]=\"expanded\"\n class=\"field-group\"\n>\n <div class=\"header\">\n <div\n class=\"title\"\n (click)=\"expanded = !expanded\"\n >\n <aui-icon\n size=\"20px,20px\"\n *ngIf=\"!expanded\"\n icon=\"caret_down_s\"\n ></aui-icon>\n <aui-icon\n size=\"20px,20px\"\n *ngIf=\"expanded\"\n icon=\"caret_down_s\"\n ></aui-icon>\n <span>{{ arrayFieldGroup | pure: getFieldDisplayName | translate }}</span>\n </div>\n <div class=\"description\"></div>\n </div>\n <div\n class=\"content\"\n [hidden]=\"!expanded\"\n >\n <div\n class=\"array-item\"\n *ngFor=\"let list of arrayFieldGroup.fieldLists; index as i\"\n >\n <div\n class=\"array-item__remove\"\n *ngIf=\"!readonly\"\n >\n <button\n aui-button=\"text\"\n size=\"small\"\n (click)=\"removeItem(i)\"\n >\n <aui-icon icon=\"minus_circle\"></aui-icon>\n <span>{{ 'remove' | translate }}</span>\n </button>\n </div>\n <div *ngFor=\"let field of list\">\n <acl-operand-field\n [field]=\"field\"\n [formDataState]=\"formDataState\"\n [formErrors]=\"formErrors\"\n [readonly]=\"readonly\"\n (valueChange)=\"fieldValueChange($event)\"\n >\n </acl-operand-field>\n </div>\n </div>\n <div\n class=\"array-item__add\"\n *ngIf=\"!readonly\"\n >\n <button\n aui-button=\"text\"\n size=\"small\"\n (click)=\"addItem()\"\n >\n <aui-icon icon=\"plus_circle\"></aui-icon>\n <span\n >{{ 'add' | translate }}\n {{ arrayFieldGroup | pure: getFieldDisplayName | translate }}</span\n >\n </button>\n </div>\n </div>\n</div>\n", styles: [".field-group{border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-10));position:relative;margin-bottom:16px;border-radius:2px}.field-group .title{padding:0 20px;font-size:14px;font-weight:500;display:flex;align-items:center;height:60px;line-height:20px;color:rgb(var(--aui-color-n-1));cursor:pointer}.field-group .title aui-icon{margin-right:20px;font-size:20px}.field-group .description{display:block;padding-left:22px;font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.field-group:not(.expanded) aui-icon[icon=caret_down_s]{transform:rotate(-90deg)}.field-group.expanded>.header>.title{border-bottom:1px solid rgb(var(--aui-color-n-8))}.field-group.expanded>.header>.description{display:block;margin-top:4px}.field-group .content{padding:8px 12px}.field-group .content.no-title{padding-top:0}.field-group .array-item__remove{display:flex;justify-content:flex-end;margin-bottom:4px}.field-group .array-item__add,.field-group .array-item__remove{text-align:center}.field-group .array-item__add aui-icon,.field-group .array-item__remove aui-icon{margin-right:4px}\n"] }]
110
+ }], null, null); })();
111
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(OperandArrayFieldGroupComponent, { className: "OperandArrayFieldGroupComponent", filePath: "lib/field-controls/operand-array-field-group.component.ts", lineNumber: 13 }); })();
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmFuZC1hcnJheS1maWVsZC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyZC1mb3JtL3NyYy9saWIvZmllbGQtY29udHJvbHMvb3BlcmFuZC1hcnJheS1maWVsZC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyZC1mb3JtL3NyYy9saWIvZmllbGQtY29udHJvbHMvb3BlcmFuZC1hcnJheS1maWVsZC1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFaEMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7OztJQ0tsQyw4QkFJWTs7O0lBQ1osOEJBSVk7Ozs7SUFpQlYsQUFKRiwrQkFHQyxpQkFLRTtJQURDLHlPQUFTLHVCQUFhLEtBQUM7SUFFdkIsK0JBQXlDO0lBQ3pDLDRCQUFNO0lBQUEsWUFBMEI7O0lBRXBDLEFBREUsQUFEa0MsaUJBQU8sRUFDaEMsRUFDTDs7SUFGSSxlQUEwQjtJQUExQixvREFBMEI7Ozs7SUFJbEMsQUFERiwyQkFBZ0MsNEJBTzdCO0lBREMsZ09BQWUsK0JBQXdCLEtBQUM7SUFHNUMsQUFERSxpQkFBb0IsRUFDaEI7Ozs7SUFQRixjQUFlO0lBR2YsQUFEQSxBQURBLEFBREEsZ0NBQWUsdUNBQ2dCLGlDQUNOLDZCQUNKOzs7SUF0QjNCLDhCQUdDO0lBY0MsQUFiQSx3RkFHQywyRUFVK0I7SUFVbEMsaUJBQU07Ozs7SUFyQkQsY0FBZTtJQUFmLHVDQUFlO0lBV0ssY0FBTztJQUFQLGlDQUFPOzs7O0lBZTlCLEFBSkYsK0JBR0MsaUJBS0U7SUFEQyw0TEFBUyxnQkFBUyxLQUFDO0lBRW5CLCtCQUF3QztJQUN4Qyw0QkFDRztJQUFBLFlBQzREOzs7O0lBR25FLEFBREUsQUFGaUUsaUJBQzlELEVBQ00sRUFDTDs7O0lBSkMsZUFDNEQ7SUFENUQsK0pBQzREOztBRHZEdkUsTUFBTSxPQUFPLCtCQUNYLFNBQVEsOEJBQThCO0lBR3RDLFFBQVE7UUFDTiwyRkFBMkY7UUFDM0YsSUFDRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7WUFDMUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFDbEMsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7Z1NBWlUsK0JBQStCLFNBQS9CLCtCQUErQjtvRUFBL0IsK0JBQStCO1lDUHhDLEFBREYsQUFKRiw4QkFHQyxhQUNxQixhQUlqQjtZQURDLHlJQUE4QjtZQU85QixBQUxBLDBGQUlDLDZFQUtBO1lBQ0QsNEJBQU07WUFBQSxZQUE2RDs7O1lBQ3JFLEFBRHFFLGlCQUFPLEVBQ3RFO1lBQ04seUJBQStCO1lBQ2pDLGlCQUFNO1lBQ04sK0JBR0M7WUE2QkMsQUE1QkEsa0ZBR0MscUVBNEJBO1lBY0wsQUFERSxpQkFBTSxFQUNGOztZQXZFSix3Q0FBMkI7WUFVcEIsZUFBZTtZQUFmLG9DQUFlO1lBS2YsY0FBYztZQUFkLG1DQUFjO1lBR1gsZUFBNkQ7WUFBN0QsK0dBQTZEO1lBTXJFLGVBQW9CO1lBQXBCLHNDQUFvQjtZQUlELGNBQStCO1lBQS9CLHdEQUErQjtZQTRCL0MsY0FBZTtZQUFmLG9DQUFlOzs7aUZEN0NULCtCQUErQjtjQU4zQyxTQUFTOzJCQUNFLCtCQUErQixtQkFHeEIsdUJBQXVCLENBQUMsTUFBTTs7a0ZBRXBDLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuaW1wb3J0IHsgQmFzZU9wZXJhbmRGaWxlZEFycmF5Q29tcG9uZW50IH0gZnJvbSAnLi4vYWJzdHJhY3QvYmFzZS1hcnJheSc7XG5pbXBvcnQgeyBpc0VtcHR5QXJyYXkgfSBmcm9tICcuLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjbC1vcGVyYW5kLWFycmF5LWZpZWxkLWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICdvcGVyYW5kLWFycmF5LWZpZWxkLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ29wZXJhbmQtZmllbGQtZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE9wZXJhbmRBcnJheUZpZWxkR3JvdXBDb21wb25lbnRcbiAgZXh0ZW5kcyBCYXNlT3BlcmFuZEZpbGVkQXJyYXlDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgbmdPbkluaXQoKSB7XG4gICAgLy8g5aaC5p6cIGFycmF5RmllbGRHcm91cCDphY3nva7kuoYgdXJuOmFsbTpkZXNjcmlwdG9yOmNvbS50ZWN0b25pYy51aTplbXB0eUFycmF5IOW5tuS4lOayoeaciSB2YWx1ZSDlgLzvvIzliJnkuI3kv53nlZnpppbpoblcbiAgICBpZiAoXG4gICAgICAhZ2V0KHRoaXMuYXJyYXlGaWVsZEdyb3VwLnZhbHVlLCAnbGVuZ3RoJykgJiZcbiAgICAgIGlzRW1wdHlBcnJheSh0aGlzLmFycmF5RmllbGRHcm91cClcbiAgICApIHtcbiAgICAgIHRoaXMucmVtb3ZlSXRlbSgwKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgW2NsYXNzLmV4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgY2xhc3M9XCJmaWVsZC1ncm91cFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInRpdGxlXCJcbiAgICAgIChjbGljayk9XCJleHBhbmRlZCA9ICFleHBhbmRlZFwiXG4gICAgPlxuICAgICAgPGF1aS1pY29uXG4gICAgICAgIHNpemU9XCIyMHB4LDIwcHhcIlxuICAgICAgICAqbmdJZj1cIiFleHBhbmRlZFwiXG4gICAgICAgIGljb249XCJjYXJldF9kb3duX3NcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgc2l6ZT1cIjIwcHgsMjBweFwiXG4gICAgICAgICpuZ0lmPVwiZXhwYW5kZWRcIlxuICAgICAgICBpY29uPVwiY2FyZXRfZG93bl9zXCJcbiAgICAgID48L2F1aS1pY29uPlxuICAgICAgPHNwYW4+e3sgYXJyYXlGaWVsZEdyb3VwIHwgcHVyZTogZ2V0RmllbGREaXNwbGF5TmFtZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj48L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNvbnRlbnRcIlxuICAgIFtoaWRkZW5dPVwiIWV4cGFuZGVkXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYXJyYXktaXRlbVwiXG4gICAgICAqbmdGb3I9XCJsZXQgbGlzdCBvZiBhcnJheUZpZWxkR3JvdXAuZmllbGRMaXN0czsgaW5kZXggYXMgaVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImFycmF5LWl0ZW1fX3JlbW92ZVwiXG4gICAgICAgICpuZ0lmPVwiIXJlYWRvbmx5XCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGF1aS1idXR0b249XCJ0ZXh0XCJcbiAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJdGVtKGkpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhdWktaWNvbiBpY29uPVwibWludXNfY2lyY2xlXCI+PC9hdWktaWNvbj5cbiAgICAgICAgICA8c3Bhbj57eyAncmVtb3ZlJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpZWxkIG9mIGxpc3RcIj5cbiAgICAgICAgPGFjbC1vcGVyYW5kLWZpZWxkXG4gICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICBbZm9ybURhdGFTdGF0ZV09XCJmb3JtRGF0YVN0YXRlXCJcbiAgICAgICAgICBbZm9ybUVycm9yc109XCJmb3JtRXJyb3JzXCJcbiAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJmaWVsZFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgIDwvYWNsLW9wZXJhbmQtZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImFycmF5LWl0ZW1fX2FkZFwiXG4gICAgICAqbmdJZj1cIiFyZWFkb25seVwiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBhdWktYnV0dG9uPVwidGV4dFwiXG4gICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgIChjbGljayk9XCJhZGRJdGVtKClcIlxuICAgICAgPlxuICAgICAgICA8YXVpLWljb24gaWNvbj1cInBsdXNfY2lyY2xlXCI+PC9hdWktaWNvbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICA+e3sgJ2FkZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICB7eyBhcnJheUZpZWxkR3JvdXAgfCBwdXJlOiBnZXRGaWVsZERpc3BsYXlOYW1lIHwgdHJhbnNsYXRlIH19PC9zcGFuXG4gICAgICAgID5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,98 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, QueryList, } from '@angular/core';
2
+ import { getFieldDisplayName, isFolded, } from '../utils';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@alauda/ui";
6
+ import * as i3 from "@alauda-fe/common";
7
+ import * as i4 from "./operand-field.component";
8
+ function OperandFieldGroupComponent_aui_icon_3_Template(rf, ctx) { if (rf & 1) {
9
+ i0.ɵɵelement(0, "aui-icon", 6);
10
+ } }
11
+ function OperandFieldGroupComponent_aui_icon_4_Template(rf, ctx) { if (rf & 1) {
12
+ i0.ɵɵelement(0, "aui-icon", 6);
13
+ } }
14
+ function OperandFieldGroupComponent_ng_container_10_Template(rf, ctx) { if (rf & 1) {
15
+ const _r1 = i0.ɵɵgetCurrentView();
16
+ i0.ɵɵelementContainerStart(0);
17
+ i0.ɵɵelementStart(1, "acl-operand-field", 7);
18
+ i0.ɵɵpipe(2, "pure");
19
+ i0.ɵɵlistener("valueChange", function OperandFieldGroupComponent_ng_container_10_Template_acl_operand_field_valueChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.fieldValueChange($event)); });
20
+ i0.ɵɵelementEnd();
21
+ i0.ɵɵelementContainerEnd();
22
+ } if (rf & 2) {
23
+ const field_r3 = ctx.$implicit;
24
+ const ctx_r1 = i0.ɵɵnextContext();
25
+ i0.ɵɵadvance();
26
+ i0.ɵɵproperty("field", field_r3)("fields", ctx_r1.fields)("readonly", ctx_r1.readonly)("formDataState", ctx_r1.formDataState)("formErrors", ctx_r1.formErrors)("customDescription", i0.ɵɵpipeBind3(2, 6, ctx_r1.customDescriptions, ctx_r1.getCustomDescription, field_r3));
27
+ } }
28
+ export class OperandFieldGroupComponent {
29
+ constructor() {
30
+ this.readonly = false;
31
+ this.valueChange = new EventEmitter();
32
+ }
33
+ get expanded() {
34
+ return this._expanded ?? !isFolded(this.fieldGroup);
35
+ }
36
+ set expanded(expanded) {
37
+ this._expanded = expanded;
38
+ }
39
+ fieldValueChange(e) {
40
+ this.valueChange.emit(e);
41
+ }
42
+ getGroupName(field) {
43
+ // field.groupDisplay,field.groupName is setBy devops cicd
44
+ return field.groupDisplay || field.groupName || getFieldDisplayName(field);
45
+ }
46
+ getCustomDescription(customDescriptions, field) {
47
+ if (!customDescriptions) {
48
+ return null;
49
+ }
50
+ return customDescriptions.find(des => `spec.${des.aclCrdFormCustomDescription}` === field.path);
51
+ }
52
+ static { this.ɵfac = function OperandFieldGroupComponent_Factory(t) { return new (t || OperandFieldGroupComponent)(); }; }
53
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: OperandFieldGroupComponent, selectors: [["acl-operand-field-group"]], inputs: { fields: "fields", fieldGroup: "fieldGroup", formDataState: "formDataState", formErrors: "formErrors", customDescriptions: "customDescriptions", readonly: "readonly" }, outputs: { valueChange: "valueChange" }, decls: 11, vars: 12, consts: [[1, "field-group"], [1, "header"], [1, "title", 3, "click"], ["icon", "caret_down_s", 4, "ngIf"], [1, "content", 3, "hidden"], [4, "ngFor", "ngForOf"], ["icon", "caret_down_s"], [3, "valueChange", "field", "fields", "readonly", "formDataState", "formErrors", "customDescription"]], template: function OperandFieldGroupComponent_Template(rf, ctx) { if (rf & 1) {
54
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
55
+ i0.ɵɵlistener("click", function OperandFieldGroupComponent_Template_div_click_2_listener() { return ctx.expanded = !ctx.expanded; });
56
+ i0.ɵɵtemplate(3, OperandFieldGroupComponent_aui_icon_3_Template, 1, 0, "aui-icon", 3)(4, OperandFieldGroupComponent_aui_icon_4_Template, 1, 0, "aui-icon", 3);
57
+ i0.ɵɵelementStart(5, "span");
58
+ i0.ɵɵtext(6);
59
+ i0.ɵɵpipe(7, "pure");
60
+ i0.ɵɵpipe(8, "translate");
61
+ i0.ɵɵelementEnd()()();
62
+ i0.ɵɵelementStart(9, "div", 4);
63
+ i0.ɵɵtemplate(10, OperandFieldGroupComponent_ng_container_10_Template, 3, 10, "ng-container", 5);
64
+ i0.ɵɵelementEnd()();
65
+ } if (rf & 2) {
66
+ i0.ɵɵclassProp("expanded", ctx.expanded);
67
+ i0.ɵɵadvance(3);
68
+ i0.ɵɵproperty("ngIf", !ctx.expanded);
69
+ i0.ɵɵadvance();
70
+ i0.ɵɵproperty("ngIf", ctx.expanded);
71
+ i0.ɵɵadvance(2);
72
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(8, 10, i0.ɵɵpipeBind2(7, 7, ctx.fieldGroup, ctx.getGroupName)));
73
+ i0.ɵɵadvance(3);
74
+ i0.ɵɵproperty("hidden", !ctx.expanded);
75
+ i0.ɵɵadvance();
76
+ i0.ɵɵproperty("ngForOf", ctx.fieldGroup.fieldList);
77
+ } }, dependencies: [i1.NgForOf, i1.NgIf, i2.IconComponent, i3.E2eAttributeBindingDirective, i4.OperandFieldComponent, i3.TranslatePipe, i3.PurePipe], styles: [".field-group[_ngcontent-%COMP%]{border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-10));position:relative;margin-bottom:16px;border-radius:2px}.field-group[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{padding:0 20px;font-size:14px;font-weight:500;display:flex;align-items:center;height:60px;line-height:20px;color:rgb(var(--aui-color-n-1));cursor:pointer}.field-group[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{margin-right:20px;font-size:20px}.field-group[_ngcontent-%COMP%] .description[_ngcontent-%COMP%]{display:block;padding-left:22px;font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.field-group[_ngcontent-%COMP%]:not(.expanded) aui-icon[icon=caret_down_s][_ngcontent-%COMP%]{transform:rotate(-90deg)}.field-group.expanded[_ngcontent-%COMP%] > .header[_ngcontent-%COMP%] > .title[_ngcontent-%COMP%]{border-bottom:1px solid rgb(var(--aui-color-n-8))}.field-group.expanded[_ngcontent-%COMP%] > .header[_ngcontent-%COMP%] > .description[_ngcontent-%COMP%]{display:block;margin-top:4px}.field-group[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{padding:8px 12px}.field-group[_ngcontent-%COMP%] .content.no-title[_ngcontent-%COMP%]{padding-top:0}.field-group[_ngcontent-%COMP%] .array-item__remove[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;margin-bottom:4px}.field-group[_ngcontent-%COMP%] .array-item__add[_ngcontent-%COMP%], .field-group[_ngcontent-%COMP%] .array-item__remove[_ngcontent-%COMP%]{text-align:center}.field-group[_ngcontent-%COMP%] .array-item__add[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%], .field-group[_ngcontent-%COMP%] .array-item__remove[_ngcontent-%COMP%] aui-icon[_ngcontent-%COMP%]{margin-right:4px}"], changeDetection: 0 }); }
78
+ }
79
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OperandFieldGroupComponent, [{
80
+ type: Component,
81
+ args: [{ selector: 'acl-operand-field-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"field-group\"\n [class.expanded]=\"expanded\"\n>\n <div class=\"header\">\n <div\n class=\"title\"\n (click)=\"expanded = !expanded\"\n >\n <aui-icon\n *ngIf=\"!expanded\"\n icon=\"caret_down_s\"\n ></aui-icon>\n <aui-icon\n *ngIf=\"expanded\"\n icon=\"caret_down_s\"\n ></aui-icon>\n <span>{{ fieldGroup | pure: getGroupName | translate }}</span>\n </div>\n </div>\n <div\n class=\"content\"\n [hidden]=\"!expanded\"\n >\n <ng-container *ngFor=\"let field of fieldGroup.fieldList\">\n <acl-operand-field\n [field]=\"$any(field)\"\n [fields]=\"fields\"\n [readonly]=\"readonly\"\n [formDataState]=\"formDataState\"\n [formErrors]=\"formErrors\"\n (valueChange)=\"fieldValueChange($event)\"\n [customDescription]=\"\n customDescriptions | pure: getCustomDescription:field\n \"\n >\n </acl-operand-field>\n </ng-container>\n </div>\n</div>\n", styles: [".field-group{border:1px solid rgb(var(--aui-color-n-7));background-color:rgb(var(--aui-color-n-10));position:relative;margin-bottom:16px;border-radius:2px}.field-group .title{padding:0 20px;font-size:14px;font-weight:500;display:flex;align-items:center;height:60px;line-height:20px;color:rgb(var(--aui-color-n-1));cursor:pointer}.field-group .title aui-icon{margin-right:20px;font-size:20px}.field-group .description{display:block;padding-left:22px;font-size:12px;line-height:16px;color:rgb(var(--aui-color-n-4))}.field-group:not(.expanded) aui-icon[icon=caret_down_s]{transform:rotate(-90deg)}.field-group.expanded>.header>.title{border-bottom:1px solid rgb(var(--aui-color-n-8))}.field-group.expanded>.header>.description{display:block;margin-top:4px}.field-group .content{padding:8px 12px}.field-group .content.no-title{padding-top:0}.field-group .array-item__remove{display:flex;justify-content:flex-end;margin-bottom:4px}.field-group .array-item__add,.field-group .array-item__remove{text-align:center}.field-group .array-item__add aui-icon,.field-group .array-item__remove aui-icon{margin-right:4px}\n"] }]
82
+ }], null, { fields: [{
83
+ type: Input
84
+ }], fieldGroup: [{
85
+ type: Input
86
+ }], formDataState: [{
87
+ type: Input
88
+ }], formErrors: [{
89
+ type: Input
90
+ }], customDescriptions: [{
91
+ type: Input
92
+ }], readonly: [{
93
+ type: Input
94
+ }], valueChange: [{
95
+ type: Output
96
+ }] }); })();
97
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(OperandFieldGroupComponent, { className: "OperandFieldGroupComponent", filePath: "lib/field-controls/operand-field-group.component.ts", lineNumber: 29 }); })();
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmFuZC1maWVsZC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyZC1mb3JtL3NyYy9saWIvZmllbGQtY29udHJvbHMvb3BlcmFuZC1maWVsZC1ncm91cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NyZC1mb3JtL3NyYy9saWIvZmllbGQtY29udHJvbHMvb3BlcmFuZC1maWVsZC1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFTdkIsT0FBTyxFQUVMLG1CQUFtQixFQUNuQixRQUFRLEdBQ1QsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7SUNYWiw4QkFHWTs7O0lBQ1osOEJBR1k7Ozs7SUFRZCw2QkFBeUQ7SUFDdkQsNENBVUM7O0lBSkMsNk5BQWUsK0JBQXdCLEtBQUM7SUFLMUMsaUJBQW9COzs7OztJQVZsQixjQUFxQjtJQU1yQixBQUZBLEFBREEsQUFEQSxBQURBLEFBREEsZ0NBQXFCLHlCQUNKLDZCQUNJLHVDQUNVLGlDQUNOLDZHQUl4Qjs7QUROVCxNQUFNLE9BQU8sMEJBQTBCO0lBTnZDO1FBWVcsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNoQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUF5QixDQUFDO0tBZ0NuRTtJQTVCQyxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFpQjtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM1QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsQ0FBd0I7UUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUF3QjtRQUNuQywyREFBMkQ7UUFDM0QsT0FBTyxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELG9CQUFvQixDQUNsQixrQkFBZ0UsRUFDaEUsS0FBbUI7UUFFbkIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQzVCLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxHQUFHLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUNoRSxDQUFDO0lBQ0osQ0FBQzsyRkF0Q1UsMEJBQTBCO29FQUExQiwwQkFBMEI7WUN2Qm5DLEFBREYsQUFKRiw4QkFHQyxhQUNxQixhQUlqQjtZQURDLG9JQUE4QjtZQU05QixBQUpBLHFGQUdDLHdFQUlBO1lBQ0QsNEJBQU07WUFBQSxZQUFpRDs7O1lBRTNELEFBREUsQUFEeUQsaUJBQU8sRUFDMUQsRUFDRjtZQUNOLDhCQUdDO1lBQ0MsZ0dBQXlEO1lBZTdELEFBREUsaUJBQU0sRUFDRjs7WUFyQ0osd0NBQTJCO1lBUXBCLGVBQWU7WUFBZixvQ0FBZTtZQUlmLGNBQWM7WUFBZCxtQ0FBYztZQUdYLGVBQWlEO1lBQWpELG1HQUFpRDtZQUt6RCxlQUFvQjtZQUFwQixzQ0FBb0I7WUFFWSxjQUF1QjtZQUF2QixrREFBdUI7OztpRkRJOUMsMEJBQTBCO2NBTnRDLFNBQVM7MkJBQ0UseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNO2dCQUd0QyxNQUFNO2tCQUFkLEtBQUs7WUFDRyxVQUFVO2tCQUFsQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLFVBQVU7a0JBQWxCLEtBQUs7WUFDRyxrQkFBa0I7a0JBQTFCLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0ksV0FBVztrQkFBcEIsTUFBTTs7a0ZBUEksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBGaWVsZFZhbHVlQ2hhbmdlRXZlbnQsXG4gIEZvcm1EYXRhU3RhdGUsXG4gIEZvcm1FcnJvcnMsXG4gIE9wZXJhbmRGaWVsZCxcbiAgT3BlcmFuZEZpZWxkR3JvdXAsXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7XG4gIENyZEZvcm1DdXN0b21EZXNjcmlwdGlvbkRpcmVjdGl2ZSxcbiAgZ2V0RmllbGREaXNwbGF5TmFtZSxcbiAgaXNGb2xkZWQsXG59IGZyb20gJy4uL3V0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYWNsLW9wZXJhbmQtZmllbGQtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJ29wZXJhbmQtZmllbGQtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnb3BlcmFuZC1maWVsZC1ncm91cC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgT3BlcmFuZEZpZWxkR3JvdXBDb21wb25lbnQge1xuICBASW5wdXQoKSBmaWVsZHM6IE9wZXJhbmRGaWVsZFtdO1xuICBASW5wdXQoKSBmaWVsZEdyb3VwOiBPcGVyYW5kRmllbGRHcm91cDtcbiAgQElucHV0KCkgZm9ybURhdGFTdGF0ZTogRm9ybURhdGFTdGF0ZTtcbiAgQElucHV0KCkgZm9ybUVycm9yczogRm9ybUVycm9ycztcbiAgQElucHV0KCkgY3VzdG9tRGVzY3JpcHRpb25zOiBRdWVyeUxpc3Q8Q3JkRm9ybUN1c3RvbURlc2NyaXB0aW9uRGlyZWN0aXZlPjtcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWVsZFZhbHVlQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSBfZXhwYW5kZWQ6IGJvb2xlYW47XG5cbiAgZ2V0IGV4cGFuZGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9leHBhbmRlZCA/PyAhaXNGb2xkZWQodGhpcy5maWVsZEdyb3VwKTtcbiAgfVxuXG4gIHNldCBleHBhbmRlZChleHBhbmRlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX2V4cGFuZGVkID0gZXhwYW5kZWQ7XG4gIH1cblxuICBmaWVsZFZhbHVlQ2hhbmdlKGU6IEZpZWxkVmFsdWVDaGFuZ2VFdmVudCkge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChlKTtcbiAgfVxuXG4gIGdldEdyb3VwTmFtZShmaWVsZDogT3BlcmFuZEZpZWxkR3JvdXApIHtcbiAgICAvLyBmaWVsZC5ncm91cERpc3BsYXksZmllbGQuZ3JvdXBOYW1lICBpcyBzZXRCeSBkZXZvcHMgY2ljZFxuICAgIHJldHVybiBmaWVsZC5ncm91cERpc3BsYXkgfHwgZmllbGQuZ3JvdXBOYW1lIHx8IGdldEZpZWxkRGlzcGxheU5hbWUoZmllbGQpO1xuICB9XG5cbiAgZ2V0Q3VzdG9tRGVzY3JpcHRpb24oXG4gICAgY3VzdG9tRGVzY3JpcHRpb25zOiBRdWVyeUxpc3Q8Q3JkRm9ybUN1c3RvbURlc2NyaXB0aW9uRGlyZWN0aXZlPixcbiAgICBmaWVsZDogT3BlcmFuZEZpZWxkLFxuICApIHtcbiAgICBpZiAoIWN1c3RvbURlc2NyaXB0aW9ucykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBjdXN0b21EZXNjcmlwdGlvbnMuZmluZChcbiAgICAgIGRlcyA9PiBgc3BlYy4ke2Rlcy5hY2xDcmRGb3JtQ3VzdG9tRGVzY3JpcHRpb259YCA9PT0gZmllbGQucGF0aCxcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmllbGQtZ3JvdXBcIlxuICBbY2xhc3MuZXhwYW5kZWRdPVwiZXhwYW5kZWRcIlxuPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ0aXRsZVwiXG4gICAgICAoY2xpY2spPVwiZXhwYW5kZWQgPSAhZXhwYW5kZWRcIlxuICAgID5cbiAgICAgIDxhdWktaWNvblxuICAgICAgICAqbmdJZj1cIiFleHBhbmRlZFwiXG4gICAgICAgIGljb249XCJjYXJldF9kb3duX3NcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8YXVpLWljb25cbiAgICAgICAgKm5nSWY9XCJleHBhbmRlZFwiXG4gICAgICAgIGljb249XCJjYXJldF9kb3duX3NcIlxuICAgICAgPjwvYXVpLWljb24+XG4gICAgICA8c3Bhbj57eyBmaWVsZEdyb3VwIHwgcHVyZTogZ2V0R3JvdXBOYW1lIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY29udGVudFwiXG4gICAgW2hpZGRlbl09XCIhZXhwYW5kZWRcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmllbGRHcm91cC5maWVsZExpc3RcIj5cbiAgICAgIDxhY2wtb3BlcmFuZC1maWVsZFxuICAgICAgICBbZmllbGRdPVwiJGFueShmaWVsZClcIlxuICAgICAgICBbZmllbGRzXT1cImZpZWxkc1wiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFtmb3JtRGF0YVN0YXRlXT1cImZvcm1EYXRhU3RhdGVcIlxuICAgICAgICBbZm9ybUVycm9yc109XCJmb3JtRXJyb3JzXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImZpZWxkVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtjdXN0b21EZXNjcmlwdGlvbl09XCJcbiAgICAgICAgICBjdXN0b21EZXNjcmlwdGlvbnMgfCBwdXJlOiBnZXRDdXN0b21EZXNjcmlwdGlvbjpmaWVsZFxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgPC9hY2wtb3BlcmFuZC1maWVsZD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==