mmhglobal-dynamicform 2.0.0-beta.9 → 2.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 (143) hide show
  1. package/README.md +323 -0
  2. package/esm2020/lib/components/buttonfieldbase.component.mjs +20 -13
  3. package/esm2020/lib/components/containerfieldbase.component.mjs +5 -5
  4. package/esm2020/lib/components/datalistingfieldbase.component.mjs +27 -13
  5. package/esm2020/lib/components/fieldbase.component.mjs +8 -5
  6. package/esm2020/lib/components/inputfieldbase.component.mjs +144 -15
  7. package/esm2020/lib/constants/constant.mjs +4 -0
  8. package/esm2020/lib/directives/elementcontainer.directive.mjs +3 -3
  9. package/esm2020/lib/directives/fieldelement.directive.mjs +3 -3
  10. package/esm2020/lib/directives/scrollbar.theme.directive.mjs +3 -3
  11. package/esm2020/lib/embed-components/input-field-addons/input-field-addons.component.mjs +34 -15
  12. package/esm2020/lib/embed-components/page-loader/page-loader.component.mjs +14 -0
  13. package/esm2020/lib/embed-components/processing-record-loader/processing-record-loader.component.mjs +14 -0
  14. package/esm2020/lib/input-error-message/input-error-message.component.mjs +20 -9
  15. package/esm2020/lib/kcard/kcard.component.mjs +5 -5
  16. package/esm2020/lib/mmhglobal-dynamicform.module.mjs +65 -12
  17. package/esm2020/lib/pipe/htmlSanitize.pipe.mjs +3 -3
  18. package/esm2020/lib/services/component-error-handler.service.mjs +68 -31
  19. package/esm2020/lib/services/main.service.mjs +399 -199
  20. package/esm2020/lib/services/signalr.service.mjs +126 -0
  21. package/esm2020/lib/services/zcomponent.debug.service.mjs +11 -5
  22. package/esm2020/lib/services/zcomponent.service.mjs +72 -20
  23. package/esm2020/lib/uiactionbutton/uiactionbutton.component.mjs +34 -74
  24. package/esm2020/lib/uiappmenucontent/uiappmenucontent.component.mjs +13 -6
  25. package/esm2020/lib/uibulletin/uibulletin.component.mjs +91 -0
  26. package/esm2020/lib/uicontainer/uicontainer.component.mjs +10 -9
  27. package/esm2020/lib/uicontent/uicontent.component.mjs +20 -13
  28. package/esm2020/lib/uiheader/uiheader.component.mjs +14 -11
  29. package/esm2020/lib/uimenubutton/uimenubutton.component.mjs +4 -4
  30. package/esm2020/lib/uimenucontent/uimenucontent.component.mjs +3 -3
  31. package/esm2020/lib/uipage/uipage.component.mjs +8 -5
  32. package/esm2020/lib/uivalidationmessage/uivalidationmessage.component.mjs +3 -3
  33. package/esm2020/lib/zbullet/zbullet.component.mjs +3 -3
  34. package/esm2020/lib/zbuttons/zbuttons.component.mjs +19 -33
  35. package/esm2020/lib/zcard/zcard.component.mjs +12 -5
  36. package/esm2020/lib/zchart/zchart.component.mjs +94 -77
  37. package/esm2020/lib/zcheckbox/zcheckbox.component.mjs +18 -7
  38. package/esm2020/lib/zchip/zchip.component.mjs +3 -3
  39. package/esm2020/lib/zcodeeditor/zcodeeditor.component.mjs +3 -3
  40. package/esm2020/lib/zcodeeditor/zcodeeditor.pipe.mjs +3 -3
  41. package/esm2020/lib/zdaterange/zdaterange.component.mjs +3 -3
  42. package/esm2020/lib/zdatetime/dateIonicFormatParser.pipe.mjs +40 -0
  43. package/esm2020/lib/zdatetime/dateIonicMinMaxDate.pipe.mjs +22 -0
  44. package/esm2020/lib/zdatetime/dateKendoFormatParser.pipe.mjs +40 -0
  45. package/esm2020/lib/zdatetime/dateParser.pipe.mjs +16 -10
  46. package/esm2020/lib/zdatetime/zdatetime.component.mjs +78 -187
  47. package/esm2020/lib/zdiv/zdiv.component.mjs +5 -8
  48. package/esm2020/lib/zdiv/zdiv.pipe.mjs +3 -3
  49. package/esm2020/lib/zform/zform.component.mjs +40 -38
  50. package/esm2020/lib/zformcontrol/zformcontrol.component.mjs +3 -3
  51. package/esm2020/lib/zgauge/zgauge.component.mjs +13 -7
  52. package/esm2020/lib/zgrid/container/zgrid-container.component.mjs +99 -0
  53. package/esm2020/lib/zgrid/date-range-cell-filter.component.mjs +22 -11
  54. package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +65 -25
  55. package/esm2020/lib/zgrid/zgrid.component.mjs +434 -336
  56. package/esm2020/lib/zgrid/zgrid.popup.anchor-target.directive.mjs +3 -3
  57. package/esm2020/lib/zimg/zimg.component.mjs +3 -3
  58. package/esm2020/lib/zinput-container/zinput-container.component.mjs +39 -24
  59. package/esm2020/lib/zinput-container/zinput-container.pipe.mjs +22 -11
  60. package/esm2020/lib/zkcard/zkcard.component.mjs +3 -3
  61. package/esm2020/lib/zlabel/zlabel.component.mjs +5 -5
  62. package/esm2020/lib/zmfb/zmfb.component.mjs +4 -8
  63. package/esm2020/lib/zmodal/zmodal-mobile.component.mjs +3 -3
  64. package/esm2020/lib/zmodal/zmodal.component.mjs +3 -3
  65. package/esm2020/lib/znumeric/znumeric.component.mjs +33 -23
  66. package/esm2020/lib/znumeric/znumeric.component.pipe.mjs +19 -0
  67. package/esm2020/lib/zpostselectinput/zpostselectinput.component.mjs +17 -6
  68. package/esm2020/lib/zprogressbar/zprogressbar.component.mjs +3 -3
  69. package/esm2020/lib/zquerybuilder/zquerybuilder.component.mjs +11 -5
  70. package/esm2020/lib/zreport/zreport.component.mjs +3 -3
  71. package/esm2020/lib/zscheduler/zscheduler.component.mjs +3 -3
  72. package/esm2020/lib/zscheduler/zscheduler.toolbar.component.mjs +4 -4
  73. package/esm2020/lib/zselectmultiple/zselectmultiple.component.mjs +73 -34
  74. package/esm2020/lib/zselectmultiple/zselectmultiple.directive.mjs +3 -3
  75. package/esm2020/lib/zselectmultiple/zselectmultiple.pipe.mjs +29 -0
  76. package/esm2020/lib/ztab/ztab.component.mjs +57 -15
  77. package/esm2020/lib/ztab/ztab.pipe.mjs +3 -3
  78. package/esm2020/lib/ztext/ztext.component.mjs +18 -7
  79. package/esm2020/lib/ztextarea/ztextarea.component.mjs +18 -7
  80. package/esm2020/lib/ztexteditor/ztexteditor.component.mjs +46 -42
  81. package/esm2020/lib/ztree/ztree.component.mjs +95 -32
  82. package/esm2020/lib/ztreelist/ztreelist.component.mjs +34 -12
  83. package/esm2020/lib/ztrendcard/ztrendcard.component.mjs +3 -3
  84. package/esm2020/lib/zudf/zudf.component.mjs +758 -119
  85. package/esm2020/lib/zunknown/zunknown.component.mjs +3 -3
  86. package/esm2020/lib/zupload/zupload.component.mjs +3 -3
  87. package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +70 -20
  88. package/esm2020/public-api.mjs +10 -1
  89. package/fesm2015/mmhglobal-dynamicform.mjs +4054 -2132
  90. package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
  91. package/fesm2020/mmhglobal-dynamicform.mjs +4056 -2135
  92. package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
  93. package/lib/components/buttonfieldbase.component.d.ts +1 -0
  94. package/lib/components/datalistingfieldbase.component.d.ts +5 -1
  95. package/lib/components/fieldbase.component.d.ts +1 -0
  96. package/lib/components/inputfieldbase.component.d.ts +7 -2
  97. package/lib/constants/constant.d.ts +3 -0
  98. package/lib/embed-components/input-field-addons/input-field-addons.component.d.ts +6 -4
  99. package/lib/embed-components/page-loader/page-loader.component.d.ts +8 -0
  100. package/lib/embed-components/processing-record-loader/processing-record-loader.component.d.ts +8 -0
  101. package/lib/input-error-message/input-error-message.component.d.ts +3 -2
  102. package/lib/mmhglobal-dynamicform.module.d.ts +93 -82
  103. package/lib/services/component-error-handler.service.d.ts +8 -3
  104. package/lib/services/main.service.d.ts +33 -9
  105. package/lib/services/signalr.service.d.ts +40 -0
  106. package/lib/services/zcomponent.service.d.ts +5 -1
  107. package/lib/uiactionbutton/uiactionbutton.component.d.ts +8 -14
  108. package/lib/uibulletin/uibulletin.component.d.ts +37 -0
  109. package/lib/uicontent/uicontent.component.d.ts +3 -2
  110. package/lib/uiheader/uiheader.component.d.ts +1 -0
  111. package/lib/zbuttons/zbuttons.component.d.ts +2 -3
  112. package/lib/zcard/zcard.component.d.ts +1 -0
  113. package/lib/zchart/zchart.component.d.ts +21 -14
  114. package/lib/zcheckbox/zcheckbox.component.d.ts +3 -0
  115. package/lib/zdatetime/dateIonicFormatParser.pipe.d.ts +10 -0
  116. package/lib/zdatetime/dateIonicMinMaxDate.pipe.d.ts +7 -0
  117. package/lib/zdatetime/dateKendoFormatParser.pipe.d.ts +10 -0
  118. package/lib/zdatetime/dateParser.pipe.d.ts +5 -1
  119. package/lib/zdatetime/zdatetime.component.d.ts +15 -16
  120. package/lib/zform/zform.component.d.ts +3 -2
  121. package/lib/zgrid/container/zgrid-container.component.d.ts +28 -0
  122. package/lib/zgrid/date-range-cell-filter.component.d.ts +5 -1
  123. package/lib/zgrid/zgrid.binding.directive.d.ts +3 -0
  124. package/lib/zgrid/zgrid.component.d.ts +43 -23
  125. package/lib/zinput-container/zinput-container.component.d.ts +13 -7
  126. package/lib/zinput-container/zinput-container.pipe.d.ts +5 -1
  127. package/lib/zmfb/zmfb.component.d.ts +0 -1
  128. package/lib/znumeric/znumeric.component.d.ts +8 -1
  129. package/lib/znumeric/znumeric.component.pipe.d.ts +10 -0
  130. package/lib/zpostselectinput/zpostselectinput.component.d.ts +3 -0
  131. package/lib/zquerybuilder/zquerybuilder.component.d.ts +1 -0
  132. package/lib/zselectmultiple/zselectmultiple.component.d.ts +8 -5
  133. package/lib/zselectmultiple/zselectmultiple.pipe.d.ts +11 -0
  134. package/lib/ztab/ztab.component.d.ts +7 -2
  135. package/lib/ztext/ztext.component.d.ts +3 -0
  136. package/lib/ztextarea/ztextarea.component.d.ts +3 -0
  137. package/lib/ztexteditor/ztexteditor.component.d.ts +14 -22
  138. package/lib/ztree/ztree.component.d.ts +14 -5
  139. package/lib/ztreelist/ztreelist.component.d.ts +7 -2
  140. package/lib/zudf/zudf.component.d.ts +183 -15
  141. package/lib/zworkflowbuttons/zworkflowbuttons.component.d.ts +6 -2
  142. package/package.json +1 -1
  143. package/public-api.d.ts +9 -0
@@ -36,6 +36,9 @@ export class FieldBase {
36
36
  this.data.ComponentStyleType = this.data.ComponentStyleType || "style1";
37
37
  return forkJoin([this.compService.translateComponentField(this.data, this.group), this.compService.translateComponentProperties(this.componentProperties, this.group)]);
38
38
  }
39
+ setupInnerField() {
40
+ ZComponentHelper.registerComponent(this);
41
+ }
39
42
  isMobileScreen() {
40
43
  const v = ZComponentHelper.isMobileScreen();
41
44
  return v;
@@ -66,12 +69,12 @@ export class FieldBase {
66
69
  return iconName;
67
70
  }
68
71
  toggleEditMode() {
69
- this.data.EditMode.value = !this.data.EditMode.value;
72
+ this.data[`_EditMode`].value = !this.data[`_EditMode`].value;
70
73
  }
71
74
  }
72
- FieldBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FieldBase, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
73
- FieldBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FieldBase, selector: "ng-component", inputs: { data: "data", group: "group", form: "form", containerField: "containerField", componentProperties: "componentProperties" }, ngImport: i0, template: ``, isInline: true });
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FieldBase, decorators: [{
75
+ FieldBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FieldBase, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
76
+ FieldBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: FieldBase, selector: "ng-component", inputs: { data: "data", group: "group", form: "form", containerField: "containerField", componentProperties: "componentProperties" }, ngImport: i0, template: ``, isInline: true });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FieldBase, decorators: [{
75
78
  type: Component,
76
79
  args: [{
77
80
  template: ``,
@@ -87,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
87
90
  }], componentProperties: [{
88
91
  type: Input
89
92
  }] } });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRiYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL2NvbXBvbmVudHMvZmllbGRiYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFPNUMsZ0RBQWdEO0FBQ2hELE1BQU0sT0FBTyxTQUFTO0lBUXBCLFlBQW1CLFdBQThCO1FBQTlCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQUQxQyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBMkNqQixjQUFTLEdBQUcsQ0FBQyxNQUFlLEVBQUUsRUFBRTtZQUNyQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RCxJQUFJLEVBQUUsRUFBRTtnQkFDTixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3JDO1lBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUNoRCxDQUFDLENBQUE7UUFFTSxlQUFVLEdBQUcsQ0FBQyxNQUFlLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUM1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QUFDLENBQUM7U0FDdkQ7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDdkQsQ0FBQzs7dUdBOUVVLFNBQVM7MkZBQVQsU0FBUywwTEFKVixFQUFFOzRGQUlELFNBQVM7a0JBTHJCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7d0dBSVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudFByb3BlcnRpZXMsIFpGaWVsZCwgWkdyb3VwIH0gZnJvbSBcIm1taGdsb2JhbC16Y29yZVwiO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6IGBgLFxyXG59KVxyXG5cclxuLy8gRm9yOiBhcHAtZXJyb3IsIHpnYXVnZSwgenByb2dyZXNzYmFyLCB6cmVwb3J0XHJcbmV4cG9ydCBjbGFzcyBGaWVsZEJhc2Uge1xyXG4gIEBJbnB1dCgpIGRhdGE6IFpGaWVsZDtcclxuICBASW5wdXQoKSBncm91cDogWkdyb3VwO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBjb250YWluZXJGaWVsZDogWkZpZWxkO1xyXG4gIEBJbnB1dCgpIGNvbXBvbmVudFByb3BlcnRpZXM6IFpDb21wb25lbnRQcm9wZXJ0aWVzO1xyXG5cclxuICBwdWJsaWMgaXNMb2FkaW5nID0gdHJ1ZTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29tcFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlKSB7IH1cclxuXHJcbiAgcHVibGljIGluaXRDb21wb25lbnQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcyA9IHRoaXMuY29tcG9uZW50UHJvcGVydGllcyB8fCBuZXcgWkNvbXBvbmVudFByb3BlcnRpZXMoKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50UHJvcGVydGllcyh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcbiAgICB0aGlzLmNvbXBTZXJ2aWNlLnNldENvbXBvbmVudEFkZGl0aW9uYWxQcm9wZXJ0aWVzKHRoaXMpO1xyXG4gICAgdGhpcy5jb21wU2VydmljZS5zZXRDb21wU3R5bGVzQnlJbmRleCh0aGlzKTtcclxuICAgIHRoaXMuZGF0YS5Db21wb25lbnRTdHlsZVR5cGUgPSB0aGlzLmRhdGEuQ29tcG9uZW50U3R5bGVUeXBlIHx8IFwic3R5bGUxXCI7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4oW3RoaXMuY29tcFNlcnZpY2UudHJhbnNsYXRlQ29tcG9uZW50RmllbGQodGhpcy5kYXRhLCB0aGlzLmdyb3VwKSwgdGhpcy5jb21wU2VydmljZS50cmFuc2xhdGVDb21wb25lbnRQcm9wZXJ0aWVzKHRoaXMuY29tcG9uZW50UHJvcGVydGllcywgdGhpcy5ncm91cCldKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc01vYmlsZVNjcmVlbigpIHtcclxuICAgIGNvbnN0IHYgPSBaQ29tcG9uZW50SGVscGVyLmlzTW9iaWxlU2NyZWVuKCk7XHJcbiAgICByZXR1cm4gdjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDbGFzcyhmb3JtOiBGb3JtR3JvdXAsIGRhdGE6IFpGaWVsZCkge1xyXG4gICAgcmV0dXJuIGAke1pDb21wb25lbnRIZWxwZXIuZ2V0SW9uX0ludmFsaWRDbGFzcyhmb3JtLCBkYXRhKX0gJHtkYXRhLkRpdkNsYXNzfSAke2RhdGEuQ2xhc3N9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRJb25fSW52YWxpZENsYXNzKGZvcm06IEZvcm1Hcm91cCwgZGF0YTogWkZpZWxkKSB7XHJcbiAgICByZXR1cm4gWkNvbXBvbmVudEhlbHBlci5nZXRJb25fSW52YWxpZENsYXNzKGZvcm0sIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFN0eWxlKHN0eWxlOiBzdHJpbmcsIGluZDogc3RyaW5nID0gXCJcIikge1xyXG4gICAgdGhpcy5jb21wU2VydmljZS5zZXRTdHlsZUJ5SW5kZXgodGhpcywgaW5kLCBzdHlsZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0SWNvbihpY29uOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pY29uID0gaWNvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRMYWJlbFRleHQobGFiZWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmxhYmVsID0gbGFiZWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q29udGFpbmVyU3R5bGUoc3R5bGU6IHN0cmluZywgaW5kOiBzdHJpbmcgPSBcIlwiKSB7XHJcbiAgICB0aGlzLmNvbXBTZXJ2aWNlLnNldENvbnRhaW5lclN0eWxlQnlJbmRleCh0aGlzLCBpbmQsIHN0eWxlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRFbmFibGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICBjb25zdCBmYyA9IHRoaXMuZ3JvdXA/LmZvcm0/LmNvbnRyb2xzW3RoaXMuZGF0YS5WYWx1ZV07XHJcbiAgICBpZiAoZmMpIHtcclxuICAgICAgc3RhdHVzID8gZmMuZW5hYmxlKCkgOiBmYy5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9ICFzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRSZXF1aXJlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQgPSBzdGF0dXM7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLmNoYW5nZVZhbGlkYXRvcihzdGF0dXMsIHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5WYWx1ZSwgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGb250QXdlc29tZShpY29uTmFtZTogYW55KSB7XHJcbiAgICBjb25zdCBpY29uTmFtZVZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKGljb25OYW1lLCB0aGlzLmdyb3VwKTtcclxuICAgIGlmIChpY29uTmFtZVZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBaQ29tcG9uZW50SGVscGVyLmdldEZvbnRBd2Vzb21lKGljb25OYW1lVmFsdWUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGljb25OYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZUVkaXRNb2RlKCkge1xyXG4gICAgdGhpcy5kYXRhLkVkaXRNb2RlLnZhbHVlID0gIXRoaXMuZGF0YS5FZGl0TW9kZS52YWx1ZTtcclxuICB9XHJcbn1cclxuIl19
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRiYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL2NvbXBvbmVudHMvZmllbGRiYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RixPQUFPLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFPNUMsZ0RBQWdEO0FBQ2hELE1BQU0sT0FBTyxTQUFTO0lBUXBCLFlBQW1CLFdBQThCO1FBQTlCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQUQxQyxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBK0NqQixjQUFTLEdBQUcsQ0FBQyxNQUFlLEVBQUUsRUFBRTtZQUNyQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RCxJQUFJLEVBQUUsRUFBRTtnQkFDTixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3JDO1lBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUNoRCxDQUFDLENBQUE7UUFFTSxlQUFVLEdBQUcsQ0FBQyxNQUFlLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUM1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LENBQUM7UUFDM0UsSUFBSSxhQUFhLEVBQUU7WUFDakIsT0FBTyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDdkQ7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQy9ELENBQUM7O3VHQWxGVSxTQUFTOzJGQUFULFNBQVMsMExBSlYsRUFBRTs0RkFJRCxTQUFTO2tCQUxyQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO2lCQUNiO3dHQUlVLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRQcm9wZXJ0aWVzLCBaRmllbGQsIFpHcm91cCB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBgYCxcclxufSlcclxuXHJcbi8vIEZvcjogYXBwLWVycm9yLCB6Z2F1Z2UsIHpwcm9ncmVzc2JhciwgenJlcG9ydFxyXG5leHBvcnQgY2xhc3MgRmllbGRCYXNlIHtcclxuICBASW5wdXQoKSBkYXRhOiBaRmllbGQ7XHJcbiAgQElucHV0KCkgZ3JvdXA6IFpHcm91cDtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgY29udGFpbmVyRmllbGQ6IFpGaWVsZDtcclxuICBASW5wdXQoKSBjb21wb25lbnRQcm9wZXJ0aWVzOiBaQ29tcG9uZW50UHJvcGVydGllcztcclxuXHJcbiAgcHVibGljIGlzTG9hZGluZyA9IHRydWU7XHJcbiAgY29uc3RydWN0b3IocHVibGljIGNvbXBTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSkgeyB9XHJcblxyXG4gIHB1YmxpYyBpbml0Q29tcG9uZW50KCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMgPSB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMgfHwgbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudFByb3BlcnRpZXModGhpcyk7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnJlZ2lzdGVyQ29tcG9uZW50KHRoaXMpO1xyXG4gICAgdGhpcy5jb21wU2VydmljZS5zZXRDb21wb25lbnRBZGRpdGlvbmFsUHJvcGVydGllcyh0aGlzKTtcclxuICAgIHRoaXMuY29tcFNlcnZpY2Uuc2V0Q29tcFN0eWxlc0J5SW5kZXgodGhpcyk7XHJcbiAgICB0aGlzLmRhdGEuQ29tcG9uZW50U3R5bGVUeXBlID0gdGhpcy5kYXRhLkNvbXBvbmVudFN0eWxlVHlwZSB8fCBcInN0eWxlMVwiO1xyXG4gICAgcmV0dXJuIGZvcmtKb2luKFt0aGlzLmNvbXBTZXJ2aWNlLnRyYW5zbGF0ZUNvbXBvbmVudEZpZWxkKHRoaXMuZGF0YSwgdGhpcy5ncm91cCksIHRoaXMuY29tcFNlcnZpY2UudHJhbnNsYXRlQ29tcG9uZW50UHJvcGVydGllcyh0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMsIHRoaXMuZ3JvdXApXSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0dXBJbm5lckZpZWxkKCkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5yZWdpc3RlckNvbXBvbmVudCh0aGlzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpc01vYmlsZVNjcmVlbigpIHtcclxuICAgIGNvbnN0IHYgPSBaQ29tcG9uZW50SGVscGVyLmlzTW9iaWxlU2NyZWVuKCk7XHJcbiAgICByZXR1cm4gdjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDbGFzcyhmb3JtOiBGb3JtR3JvdXAsIGRhdGE6IFpGaWVsZCkge1xyXG4gICAgcmV0dXJuIGAke1pDb21wb25lbnRIZWxwZXIuZ2V0SW9uX0ludmFsaWRDbGFzcyhmb3JtLCBkYXRhKX0gJHtkYXRhLkRpdkNsYXNzfSAke2RhdGEuQ2xhc3N9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRJb25fSW52YWxpZENsYXNzKGZvcm06IEZvcm1Hcm91cCwgZGF0YTogWkZpZWxkKSB7XHJcbiAgICByZXR1cm4gWkNvbXBvbmVudEhlbHBlci5nZXRJb25fSW52YWxpZENsYXNzKGZvcm0sIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFN0eWxlKHN0eWxlOiBzdHJpbmcsIGluZDogc3RyaW5nID0gXCJcIikge1xyXG4gICAgdGhpcy5jb21wU2VydmljZS5zZXRTdHlsZUJ5SW5kZXgodGhpcywgaW5kLCBzdHlsZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0SWNvbihpY29uOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pY29uID0gaWNvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRMYWJlbFRleHQobGFiZWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmxhYmVsID0gbGFiZWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q29udGFpbmVyU3R5bGUoc3R5bGU6IHN0cmluZywgaW5kOiBzdHJpbmcgPSBcIlwiKSB7XHJcbiAgICB0aGlzLmNvbXBTZXJ2aWNlLnNldENvbnRhaW5lclN0eWxlQnlJbmRleCh0aGlzLCBpbmQsIHN0eWxlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRFbmFibGUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICBjb25zdCBmYyA9IHRoaXMuZ3JvdXA/LmZvcm0/LmNvbnRyb2xzW3RoaXMuZGF0YS5WYWx1ZV07XHJcbiAgICBpZiAoZmMpIHtcclxuICAgICAgc3RhdHVzID8gZmMuZW5hYmxlKCkgOiBmYy5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZWFkT25seSA9ICFzdGF0dXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0VmlzaWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUgPSBzdGF0dXM7XHJcbiAgICB0aGlzLmRhdGEuVmlzaWJsZSA9IHN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRSZXF1aXJlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzUmVxdWlyZWQgPSBzdGF0dXM7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLmNoYW5nZVZhbGlkYXRvcihzdGF0dXMsIHRoaXMuZ3JvdXAsIHRoaXMuZGF0YS5WYWx1ZSwgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGb250QXdlc29tZShpY29uTmFtZTogYW55KSB7XHJcbiAgICBjb25zdCBpY29uTmFtZVZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKGljb25OYW1lLCB0aGlzLmdyb3VwKTtcclxuICAgIGlmIChpY29uTmFtZVZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBaQ29tcG9uZW50SGVscGVyLmdldEZvbnRBd2Vzb21lKGljb25OYW1lVmFsdWUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGljb25OYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZUVkaXRNb2RlKCkge1xyXG4gICAgdGhpcy5kYXRhW2BfRWRpdE1vZGVgXS52YWx1ZSA9ICF0aGlzLmRhdGFbYF9FZGl0TW9kZWBdLnZhbHVlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,15 +1,14 @@
1
- import { Component } from "@angular/core";
1
+ import { Component, EventEmitter, Output } from "@angular/core";
2
2
  import { ZComponentHelper } from "mmhglobal-zcore";
3
3
  import { FieldBase } from "./fieldbase.component";
4
+ import { interval, of, switchMap, takeWhile, tap } from "rxjs";
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "../services/zcomponent.service";
6
7
  // For: zcheckbox, zchip, zdatetime, zimg, zinput-container, zlabel, znumeric, zpostselectinput, zselectmultiple, ztext, ztextarea, zupload
7
8
  export class InputFieldBase extends FieldBase {
8
9
  constructor(compService) {
9
10
  super(compService);
10
- }
11
- setupInnerField() {
12
- ZComponentHelper.registerComponent(this);
11
+ this.triggerContainerEvent = new EventEmitter();
13
12
  }
14
13
  onClick(event, fieldValue) {
15
14
  this.triggerEvent("inputfield-onClick", this.data.OnClick, event, fieldValue || event['OnClick']);
@@ -19,17 +18,19 @@ export class InputFieldBase extends FieldBase {
19
18
  this.triggerEvent("inputfield-onChangeCC", this.data.CCOnChange, event, fieldValue);
20
19
  }
21
20
  onChange(event, fieldValue) {
22
- ZComponentHelper.setComponentModelValue(this.data, this.getFieldValue(event, fieldValue), this.group);
23
- this.triggerEvent("inputfield-onChange", this.data.OnChange, event, fieldValue);
21
+ if (this.data.SubType && this.data.SubType === 'zudf') {
22
+ this.handleZudfChange(event, fieldValue);
23
+ }
24
+ else {
25
+ ZComponentHelper.setComponentModelValue(this.data, this.getFieldValue(event, fieldValue), this.group);
26
+ this.triggerEvent("inputfield-onChange", this.data.OnChange, event, fieldValue);
27
+ }
24
28
  }
25
29
  onItemClick(event, fieldValue) {
26
30
  this.triggerEvent("inputfield-onItemClick", this.data.OnItemClick, event, fieldValue);
27
31
  }
28
32
  onIconClick(clickActionExpr) {
29
- const clickActionValue = ZComponentHelper.getGroupEvalValue.call(this, clickActionExpr);
30
- if (clickActionValue) {
31
- this.triggerEvent("inputfield-onIconClick", clickActionValue, null, this.group.zModel[this.data.Value]);
32
- }
33
+ this.triggerEvent("inputfield-onIconClick", clickActionExpr, null, this.group.zModel[this.data.Value]);
33
34
  }
34
35
  getReadOnlyValue() {
35
36
  const readOnlyValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.ReadOnly);
@@ -50,6 +51,9 @@ export class InputFieldBase extends FieldBase {
50
51
  setValue(value) {
51
52
  ZComponentHelper.setComponentModelValue(this.data, value, this.group);
52
53
  }
54
+ setAddOnValue(addOns) {
55
+ this.triggerContainerEvent.emit({ type: 'setAddOnValue', data: addOns });
56
+ }
53
57
  triggerEvent(type, target, event, fieldValue) {
54
58
  if (target) {
55
59
  this.group.subject.next({
@@ -66,13 +70,138 @@ export class InputFieldBase extends FieldBase {
66
70
  }
67
71
  return fieldValue;
68
72
  }
73
+ handleZudfChange(event, fieldValue) {
74
+ const zudfFieldValue = this.getFieldValue(event, fieldValue);
75
+ const zudfScope = ZComponentHelper.getZudfScope(this.group, this.data.Value);
76
+ if (!zudfScope) {
77
+ console.log('zudf scope is null for field onchange.');
78
+ }
79
+ zudfScope.zModel[this.data.Value] = zudfFieldValue;
80
+ of({}).pipe(tap(res => {
81
+ if (zudfScope.linkedComponent) {
82
+ this.cascadingHandling(zudfScope, this.data.Value, fieldValue);
83
+ }
84
+ }), tap(res => {
85
+ if (this.data['AutoPopulateChildFieldValue']) {
86
+ // ZUDF. Auto Populate child field value
87
+ const childFields = this.data['ChildFields'];
88
+ if (childFields) {
89
+ let selectedDataOption = null;
90
+ if (fieldValue) {
91
+ // get the selected data full info
92
+ const dataOption = this.group.zData[this.data['ZDataOptionName']];
93
+ if (dataOption) {
94
+ dataOption.forEach(option => {
95
+ if (option.Id === fieldValue) {
96
+ selectedDataOption = Object.assign({}, option);
97
+ return;
98
+ }
99
+ });
100
+ }
101
+ }
102
+ // set to all related zMode of the dropdown
103
+ let fg = zudfScope.form;
104
+ childFields.forEach(childField => {
105
+ // remove symbol.
106
+ let childFieldName = encodeURI(childField.replace(/[^a-z0-9]/gi, ""));
107
+ const fieldModelName = this.data.Name + childFieldName;
108
+ const zModels = zudfScope.zModel;
109
+ const childComponent = ZComponentHelper.getComponent(this.group, 'text_' + fieldModelName);
110
+ if (childComponent['data']['ReadOnly'] && !fieldValue) {
111
+ // clear child field if only readonly is true.
112
+ zModels[fieldModelName] = !fieldValue ? null : selectedDataOption ? selectedDataOption[childFieldName] : null;
113
+ }
114
+ else {
115
+ if (selectedDataOption) {
116
+ zModels[fieldModelName] = selectedDataOption[childFieldName];
117
+ }
118
+ }
119
+ fg.patchValue(zModels);
120
+ });
121
+ }
122
+ }
123
+ }), switchMap(res => {
124
+ const eventName = 'triggerValidation';
125
+ if (this.group) {
126
+ if (this.group[eventName]) {
127
+ return this.group[eventName](this.group, event, fieldValue);
128
+ }
129
+ }
130
+ return of({});
131
+ })).subscribe(res => {
132
+ this.triggerEvent("inputfield-onChange", this.data.OnChange, event, fieldValue);
133
+ });
134
+ }
135
+ cascadingHandling(zudfScope, fieldName, fieldValue) {
136
+ const linkedComponentScope = zudfScope.linkedComponent;
137
+ // #1 check is the onchange component linked to other component.
138
+ // #2 if linked to other component(lets call it child component),
139
+ // base on the linkedComponentScope value, find the child component.
140
+ // #3 keep the original SelectOptions in the component.
141
+ // #4 clear the child zmodel and filter the child component options.
142
+ // #5 auto select default zmodel if only have 1 option and is required.
143
+ // #6 handle child nested linked component.
144
+ linkedComponentScope.forEach(item => {
145
+ const dataValueSegments = fieldName.split('_');
146
+ const linkedComponentSegments = item.linkedComponent.split('_');
147
+ let isLinkedComponent = false;
148
+ // check is it linkedcomponent
149
+ if (linkedComponentSegments.length > 1 && dataValueSegments.length > 3) {
150
+ const lastTwoSegments = dataValueSegments.slice(-2).join('_');
151
+ if (linkedComponentSegments.join('_') === lastTwoSegments) {
152
+ isLinkedComponent = true;
153
+ }
154
+ }
155
+ else if (linkedComponentSegments.length === 1) {
156
+ const lastSegment = dataValueSegments[dataValueSegments.length - 1];
157
+ if (linkedComponentSegments[0] === lastSegment) {
158
+ isLinkedComponent = true;
159
+ }
160
+ }
161
+ if (isLinkedComponent) {
162
+ const childComponent = ZComponentHelper.getComponentByValue(this.group, item.value);
163
+ const originalSelectOptions = childComponent.data['originalSelectOptions'] ?? Object.assign([], childComponent.data.SelectOptions);
164
+ const filteredSelectionOptions = originalSelectOptions.filter(option => option.parentExpression == fieldValue);
165
+ //childComponent.clearData(); //unable to use clearData. not handled for zudf type
166
+ // manuall patch the component formcontrol value
167
+ const zudfForm = zudfScope.form;
168
+ const componentFormControl = zudfForm.controls[item.value];
169
+ zudfScope.zModel[item.value] = null;
170
+ componentFormControl.patchValue(zudfScope.zModel[item.value]);
171
+ childComponent.data['originalSelectOptions'] = originalSelectOptions;
172
+ childComponent.setSelectOption(filteredSelectionOptions);
173
+ // set dropdown selected value if only 1 option.
174
+ const childComponentType = childComponent.data.Type;
175
+ if (filteredSelectionOptions.length === 1 && childComponent.data.IsRequired && (childComponentType === 'zuiselectmultiple' || childComponentType === 'zselectmultiple')) {
176
+ zudfScope.zModel[item.value] = filteredSelectionOptions[0][childComponent.itemValueField];
177
+ componentFormControl.patchValue(zudfScope.zModel[item.value]);
178
+ }
179
+ // loop children incase of nested child.
180
+ const childComponentValueSegments = childComponent.data.Value.split('_');
181
+ this.cascadingHandling(zudfScope, childComponentValueSegments[childComponentValueSegments.length - 1], zudfScope.zModel[item.value]);
182
+ }
183
+ });
184
+ }
185
+ focusOnDefault(focusFunction) {
186
+ if (this.data.IsFocus) {
187
+ let counter = 0;
188
+ let isFocused = false;
189
+ interval(500).pipe(takeWhile(x => counter < 5 && !isFocused), tap(() => {
190
+ isFocused = focusFunction();
191
+ counter++;
192
+ })).subscribe();
193
+ }
194
+ }
69
195
  }
70
- InputFieldBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InputFieldBase, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
71
- InputFieldBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: InputFieldBase, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true });
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InputFieldBase, decorators: [{
196
+ InputFieldBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: InputFieldBase, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
197
+ InputFieldBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: InputFieldBase, selector: "ng-component", outputs: { triggerContainerEvent: "triggerContainerEvent" }, usesInheritance: true, ngImport: i0, template: ``, isInline: true });
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: InputFieldBase, decorators: [{
73
199
  type: Component,
74
200
  args: [{
75
201
  template: ``,
76
202
  }]
77
- }], ctorParameters: function () { return [{ type: i1.ZComponentService }]; } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRmaWVsZGJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQXlCLE1BQU0saUJBQWlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFPbEQsMklBQTJJO0FBQzNJLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQUMzQyxZQUFZLFdBQThCO1FBQ3hDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRU0sZUFBZTtRQUNwQixnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQVUsRUFBRSxVQUFnQjtRQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLElBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFVLEVBQUUsVUFBZ0I7UUFDNUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEcsSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7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QUFJLFNBQVMsRUFBRTtZQUNqRCxPQUFPLEtBQUssRUFBRSxLQUFLLElBQUksS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUE7U0FDNUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOzs0R0F6RVUsY0FBYztnR0FBZCxjQUFjLDJFQUpmLEVBQUU7NEZBSUQsY0FBYztrQkFMMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRPdXRwdXRFdmVudCB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuaW1wb3J0IHsgRmllbGRCYXNlIH0gZnJvbSBcIi4vZmllbGRiYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBgYCxcclxufSlcclxuXHJcbi8vIEZvcjogemNoZWNrYm94LCB6Y2hpcCwgemRhdGV0aW1lLCB6aW1nLCB6aW5wdXQtY29udGFpbmVyLCB6bGFiZWwsIHpudW1lcmljLCB6cG9zdHNlbGVjdGlucHV0LCB6c2VsZWN0bXVsdGlwbGUsIHp0ZXh0LCB6dGV4dGFyZWEsIHp1cGxvYWRcclxuZXhwb3J0IGNsYXNzIElucHV0RmllbGRCYXNlIGV4dGVuZHMgRmllbGRCYXNlIHtcclxuICBjb25zdHJ1Y3Rvcihjb21wU2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGNvbXBTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXR1cElubmVyRmllbGQoKSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnJlZ2lzdGVyQ29tcG9uZW50KHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IGFueSwgZmllbGRWYWx1ZT86IGFueSkge1xyXG4gICAgdGhpcy50cmlnZ2VyRXZlbnQoXCJpbnB1dGZpZWxkLW9uQ2xpY2tcIiwgdGhpcy5kYXRhLk9uQ2xpY2ssIGV2ZW50LCBmaWVsZFZhbHVlIHx8IGV2ZW50WydPbkNsaWNrJ10pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2hhbmdlQ0MoZXZlbnQ6IGFueSwgZmllbGRWYWx1ZT86IGFueSkge1xyXG4gICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRNb2RlbFZhbHVlKHRoaXMuZGF0YSwgdGhpcy5nZXRGaWVsZFZhbHVlKGV2ZW50LCBmaWVsZFZhbHVlKSwgdGhpcy5ncm91cCk7XHJcbiAgICB0aGlzLnRyaWdnZXJFdmVudChcImlucHV0ZmllbGQtb25DaGFuZ2VDQ1wiLCB0aGlzLmRhdGEuQ0NPbkNoYW5nZSwgZXZlbnQsIGZpZWxkVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2hhbmdlKGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50TW9kZWxWYWx1ZSh0aGlzLmRhdGEsIHRoaXMuZ2V0RmllbGRWYWx1ZShldmVudCwgZmllbGRWYWx1ZSksIHRoaXMuZ3JvdXApO1xyXG4gICAgdGhpcy50cmlnZ2VyRXZlbnQoXCJpbnB1dGZpZWxkLW9uQ2hhbmdlXCIsIHRoaXMuZGF0YS5PbkNoYW5nZSwgZXZlbnQsIGZpZWxkVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uSXRlbUNsaWNrKGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIHRoaXMudHJpZ2dlckV2ZW50KFwiaW5wdXRmaWVsZC1vbkl0ZW1DbGlja1wiLCB0aGlzLmRhdGEuT25JdGVtQ2xpY2ssIGV2ZW50LCBmaWVsZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkljb25DbGljayhjbGlja0FjdGlvbkV4cHI6IHN0cmluZykge1xyXG4gICAgY29uc3QgY2xpY2tBY3Rpb25WYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBjbGlja0FjdGlvbkV4cHIpO1xyXG4gICAgaWYgKGNsaWNrQWN0aW9uVmFsdWUpIHtcclxuICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoXCJpbnB1dGZpZWxkLW9uSWNvbkNsaWNrXCIsIGNsaWNrQWN0aW9uVmFsdWUsIG51bGwsIHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFJlYWRPbmx5VmFsdWUoKSB7XHJcbiAgICBjb25zdCByZWFkT25seVZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5SZWFkT25seSk7XHJcbiAgICBpZiAodHlwZW9mIHJlYWRPbmx5VmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSByZWFkT25seVZhbHVlLmJpbmQodGhpcy5ncm91cC5jdHJsU2NvcGUpO1xyXG4gICAgICByZXR1cm4gY2FsbEZ1bmModGhpcy5ncm91cCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVhZE9ubHlWYWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRJc1JlcXVpcmVkVmFsdWUoKSB7XHJcbiAgICBjb25zdCBJc1JlcXVpcmVkVmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLklzUmVxdWlyZWQpO1xyXG4gICAgaWYgKHR5cGVvZiBJc1JlcXVpcmVkVmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSBJc1JlcXVpcmVkVmFsdWUuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgIHJldHVybiBjYWxsRnVuYyh0aGlzLmdyb3VwKTtcclxuXHJcbiAgICB9XHJcbiAgICByZXR1cm4gSXNSZXF1aXJlZFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50TW9kZWxWYWx1ZSh0aGlzLmRhdGEsIHZhbHVlLCB0aGlzLmdyb3VwKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0cmlnZ2VyRXZlbnQodHlwZTogc3RyaW5nLCB0YXJnZXQ6IGFueSwgZXZlbnQ6IGFueSwgZmllbGRWYWx1ZT86IGFueSkge1xyXG4gICAgaWYgKHRhcmdldCkge1xyXG4gICAgICB0aGlzLmdyb3VwLnN1YmplY3QubmV4dCh7XHJcbiAgICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgICB0YXJnZXQ6IHRhcmdldCxcclxuICAgICAgICBldmVudCxcclxuICAgICAgICBkYXRhOiB7IHZhbHVlOiB0aGlzLmdldEZpZWxkVmFsdWUoZXZlbnQsIGZpZWxkVmFsdWUpLCBmaWVsZDogdGhpcy5kYXRhLCBjb21wOiB0aGlzIH1cclxuICAgICAgfSBhcyBaQ29tcG9uZW50T3V0cHV0RXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWVsZFZhbHVlKGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIGlmIChmaWVsZFZhbHVlID09IG51bGwgfHwgZmllbGRWYWx1ZSA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIGV2ZW50Py52YWx1ZSB8fCBldmVudD8udGFyZ2V0Py52YWx1ZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpZWxkVmFsdWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
203
+ }], ctorParameters: function () { return [{ type: i1.ZComponentService }]; }, propDecorators: { triggerContainerEvent: [{
204
+ type: Output,
205
+ args: ['triggerContainerEvent']
206
+ }] } });
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRmaWVsZGJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQU8vRCwySUFBMkk7QUFDM0ksTUFBTSxPQUFPLGNBQWUsU0FBUSxTQUFTO0lBRTNDLFlBQVksV0FBOEI7UUFDeEMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRlksMEJBQXFCLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFHL0YsQ0FBQztJQUVNLE9BQU8sQ0FBQyxLQUFVLEVBQUUsVUFBZ0I7UUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBVSxFQUFFLFVBQWdCO1FBQzVDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxZQUFZ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d0dBSWtDLHFCQUFxQjtzQkFBckQsTUFBTTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudE91dHB1dEV2ZW50IH0gZnJvbSBcIm1taGdsb2JhbC16Y29yZVwiO1xyXG5pbXBvcnQgeyBGaWVsZEJhc2UgfSBmcm9tIFwiLi9maWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBpbnRlcnZhbCwgb2YsIHN3aXRjaE1hcCwgdGFrZVdoaWxlLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogYGAsXHJcbn0pXHJcblxyXG4vLyBGb3I6IHpjaGVja2JveCwgemNoaXAsIHpkYXRldGltZSwgemltZywgemlucHV0LWNvbnRhaW5lciwgemxhYmVsLCB6bnVtZXJpYywgenBvc3RzZWxlY3RpbnB1dCwgenNlbGVjdG11bHRpcGxlLCB6dGV4dCwgenRleHRhcmVhLCB6dXBsb2FkXHJcbmV4cG9ydCBjbGFzcyBJbnB1dEZpZWxkQmFzZSBleHRlbmRzIEZpZWxkQmFzZSB7XHJcbiAgQE91dHB1dCgndHJpZ2dlckNvbnRhaW5lckV2ZW50JykgdHJpZ2dlckNvbnRhaW5lckV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjb25zdHJ1Y3Rvcihjb21wU2VydmljZTogWkNvbXBvbmVudFNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGNvbXBTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIHRoaXMudHJpZ2dlckV2ZW50KFwiaW5wdXRmaWVsZC1vbkNsaWNrXCIsIHRoaXMuZGF0YS5PbkNsaWNrLCBldmVudCwgZmllbGRWYWx1ZSB8fCBldmVudFsnT25DbGljayddKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZUNDKGV2ZW50OiBhbnksIGZpZWxkVmFsdWU/OiBhbnkpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50TW9kZWxWYWx1ZSh0aGlzLmRhdGEsIHRoaXMuZ2V0RmllbGRWYWx1ZShldmVudCwgZmllbGRWYWx1ZSksIHRoaXMuZ3JvdXApO1xyXG4gICAgdGhpcy50cmlnZ2VyRXZlbnQoXCJpbnB1dGZpZWxkLW9uQ2hhbmdlQ0NcIiwgdGhpcy5kYXRhLkNDT25DaGFuZ2UsIGV2ZW50LCBmaWVsZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoYW5nZShldmVudDogYW55LCBmaWVsZFZhbHVlPzogYW55KSB7XHJcbiAgICBpZiAodGhpcy5kYXRhLlN1YlR5cGUgJiYgdGhpcy5kYXRhLlN1YlR5cGUgPT09ICd6dWRmJykge1xyXG4gICAgICB0aGlzLmhhbmRsZVp1ZGZDaGFuZ2UoZXZlbnQsIGZpZWxkVmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgWkNvbXBvbmVudEhlbHBlci5zZXRDb21wb25lbnRNb2RlbFZhbHVlKHRoaXMuZGF0YSwgdGhpcy5nZXRGaWVsZFZhbHVlKGV2ZW50LCBmaWVsZFZhbHVlKSwgdGhpcy5ncm91cCk7XHJcbiAgICAgIHRoaXMudHJpZ2dlckV2ZW50KFwiaW5wdXRmaWVsZC1vbkNoYW5nZVwiLCB0aGlzLmRhdGEuT25DaGFuZ2UsIGV2ZW50LCBmaWVsZFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkl0ZW1DbGljayhldmVudDogYW55LCBmaWVsZFZhbHVlPzogYW55KSB7XHJcbiAgICB0aGlzLnRyaWdnZXJFdmVudChcImlucHV0ZmllbGQtb25JdGVtQ2xpY2tcIiwgdGhpcy5kYXRhLk9uSXRlbUNsaWNrLCBldmVudCwgZmllbGRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25JY29uQ2xpY2soY2xpY2tBY3Rpb25FeHByOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudHJpZ2dlckV2ZW50KFwiaW5wdXRmaWVsZC1vbkljb25DbGlja1wiLCBjbGlja0FjdGlvbkV4cHIsIG51bGwsIHRoaXMuZ3JvdXAuek1vZGVsW3RoaXMuZGF0YS5WYWx1ZV0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFJlYWRPbmx5VmFsdWUoKSB7XHJcbiAgICBjb25zdCByZWFkT25seVZhbHVlID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5SZWFkT25seSk7XHJcbiAgICBpZiAodHlwZW9mIHJlYWRPbmx5VmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSByZWFkT25seVZhbHVlLmJpbmQodGhpcy5ncm91cC5jdHJsU2NvcGUpO1xyXG4gICAgICByZXR1cm4gY2FsbEZ1bmModGhpcy5ncm91cCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVhZE9ubHlWYWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRJc1JlcXVpcmVkVmFsdWUoKSB7XHJcbiAgICBjb25zdCBJc1JlcXVpcmVkVmFsdWUgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLklzUmVxdWlyZWQpO1xyXG4gICAgaWYgKHR5cGVvZiBJc1JlcXVpcmVkVmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSBJc1JlcXVpcmVkVmFsdWUuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgIHJldHVybiBjYWxsRnVuYyh0aGlzLmdyb3VwKTtcclxuXHJcbiAgICB9XHJcbiAgICByZXR1cm4gSXNSZXF1aXJlZFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50TW9kZWxWYWx1ZSh0aGlzLmRhdGEsIHZhbHVlLCB0aGlzLmdyb3VwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRBZGRPblZhbHVlKGFkZE9ucz86IGFueSkge1xyXG4gICAgdGhpcy50cmlnZ2VyQ29udGFpbmVyRXZlbnQuZW1pdCh7IHR5cGU6ICdzZXRBZGRPblZhbHVlJywgZGF0YTogYWRkT25zIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHRyaWdnZXJFdmVudCh0eXBlOiBzdHJpbmcsIHRhcmdldDogYW55LCBldmVudDogYW55LCBmaWVsZFZhbHVlPzogYW55KSB7XHJcbiAgICBpZiAodGFyZ2V0KSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAuc3ViamVjdC5uZXh0KHtcclxuICAgICAgICB0eXBlOiB0eXBlLFxyXG4gICAgICAgIHRhcmdldDogdGFyZ2V0LFxyXG4gICAgICAgIGV2ZW50LFxyXG4gICAgICAgIGRhdGE6IHsgdmFsdWU6IHRoaXMuZ2V0RmllbGRWYWx1ZShldmVudCwgZmllbGRWYWx1ZSksIGZpZWxkOiB0aGlzLmRhdGEsIGNvbXA6IHRoaXMgfVxyXG4gICAgICB9IGFzIFpDb21wb25lbnRPdXRwdXRFdmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZpZWxkVmFsdWUoZXZlbnQ6IGFueSwgZmllbGRWYWx1ZT86IGFueSkge1xyXG4gICAgaWYgKGZpZWxkVmFsdWUgPT0gbnVsbCB8fCBmaWVsZFZhbHVlID09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gZXZlbnQ/LnZhbHVlIHx8IGV2ZW50Py50YXJnZXQ/LnZhbHVlXHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmllbGRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlWnVkZkNoYW5nZShldmVudDogYW55LCBmaWVsZFZhbHVlPzogYW55KSB7XHJcbiAgICBjb25zdCB6dWRmRmllbGRWYWx1ZSA9IHRoaXMuZ2V0RmllbGRWYWx1ZShldmVudCwgZmllbGRWYWx1ZSk7XHJcbiAgICBjb25zdCB6dWRmU2NvcGUgPSBaQ29tcG9uZW50SGVscGVyLmdldFp1ZGZTY29wZSh0aGlzLmdyb3VwLCB0aGlzLmRhdGEuVmFsdWUpO1xyXG5cclxuICAgIGlmICghenVkZlNjb3BlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCd6dWRmIHNjb3BlIGlzIG51bGwgZm9yIGZpZWxkIG9uY2hhbmdlLicpO1xyXG4gICAgfVxyXG5cclxuICAgIHp1ZGZTY29wZS56TW9kZWxbdGhpcy5kYXRhLlZhbHVlXSA9IHp1ZGZGaWVsZFZhbHVlO1xyXG4gICAgb2Yoe30pLnBpcGUoXHJcbiAgICAgIHRhcChyZXMgPT4ge1xyXG4gICAgICAgIGlmICh6dWRmU2NvcGUubGlua2VkQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICB0aGlzLmNhc2NhZGluZ0hhbmRsaW5nKHp1ZGZTY29wZSwgdGhpcy5kYXRhLlZhbHVlLCBmaWVsZFZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0YXAocmVzID0+IHtcclxuICAgICAgICBpZiAodGhpcy5kYXRhWydBdXRvUG9wdWxhdGVDaGlsZEZpZWxkVmFsdWUnXSkge1xyXG4gICAgICAgICAgLy8gWlVERi4gQXV0byBQb3B1bGF0ZSBjaGlsZCBmaWVsZCB2YWx1ZVxyXG4gICAgICAgICAgY29uc3QgY2hpbGRGaWVsZHMgPSB0aGlzLmRhdGFbJ0NoaWxkRmllbGRzJ107XHJcbiAgICAgICAgICBpZiAoY2hpbGRGaWVsZHMpIHtcclxuICAgICAgICAgICAgbGV0IHNlbGVjdGVkRGF0YU9wdGlvbiA9IG51bGw7XHJcbiAgICAgICAgICAgIGlmIChmaWVsZFZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgLy8gZ2V0IHRoZSBzZWxlY3RlZCBkYXRhIGZ1bGwgaW5mb1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFPcHRpb24gPSB0aGlzLmdyb3VwLnpEYXRhW3RoaXMuZGF0YVsnWkRhdGFPcHRpb25OYW1lJ11dO1xyXG5cclxuICAgICAgICAgICAgICBpZiAoZGF0YU9wdGlvbikge1xyXG4gICAgICAgICAgICAgICAgZGF0YU9wdGlvbi5mb3JFYWNoKG9wdGlvbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChvcHRpb24uSWQgPT09IGZpZWxkVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZERhdGFPcHRpb24gPSBPYmplY3QuYXNzaWduKHt9LCBvcHRpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBzZXQgdG8gYWxsIHJlbGF0ZWQgek1vZGUgb2YgdGhlIGRyb3Bkb3duXHJcbiAgICAgICAgICAgIGxldCBmZzogRm9ybUdyb3VwID0genVkZlNjb3BlLmZvcm0gYXMgRm9ybUdyb3VwO1xyXG4gICAgICAgICAgICBjaGlsZEZpZWxkcy5mb3JFYWNoKGNoaWxkRmllbGQgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIHJlbW92ZSBzeW1ib2wuXHJcbiAgICAgICAgICAgICAgbGV0IGNoaWxkRmllbGROYW1lID0gZW5jb2RlVVJJKGNoaWxkRmllbGQucmVwbGFjZSgvW15hLXowLTldL2dpLCBcIlwiKSk7XHJcbiAgICAgICAgICAgICAgY29uc3QgZmllbGRNb2RlbE5hbWUgPSB0aGlzLmRhdGEuTmFtZSArIGNoaWxkRmllbGROYW1lO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHpNb2RlbHMgPSB6dWRmU2NvcGUuek1vZGVsO1xyXG5cclxuICAgICAgICAgICAgICBjb25zdCBjaGlsZENvbXBvbmVudCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0Q29tcG9uZW50KHRoaXMuZ3JvdXAsICd0ZXh0XycgKyBmaWVsZE1vZGVsTmFtZSk7XHJcbiAgICAgICAgICAgICAgaWYgKGNoaWxkQ29tcG9uZW50WydkYXRhJ11bJ1JlYWRPbmx5J10gJiYgIWZpZWxkVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIC8vIGNsZWFyIGNoaWxkIGZpZWxkIGlmIG9ubHkgcmVhZG9ubHkgaXMgdHJ1ZS5cclxuICAgICAgICAgICAgICAgIHpNb2RlbHNbZmllbGRNb2RlbE5hbWVdID0gIWZpZWxkVmFsdWUgPyBudWxsIDogc2VsZWN0ZWREYXRhT3B0aW9uID8gc2VsZWN0ZWREYXRhT3B0aW9uW2NoaWxkRmllbGROYW1lXSA6IG51bGw7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkRGF0YU9wdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICB6TW9kZWxzW2ZpZWxkTW9kZWxOYW1lXSA9IHNlbGVjdGVkRGF0YU9wdGlvbltjaGlsZEZpZWxkTmFtZV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGZnLnBhdGNoVmFsdWUoek1vZGVscyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHN3aXRjaE1hcChyZXMgPT4ge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9ICd0cmlnZ2VyVmFsaWRhdGlvbic7XHJcbiAgICAgICAgaWYgKHRoaXMuZ3JvdXApIHtcclxuICAgICAgICAgIGlmICh0aGlzLmdyb3VwW2V2ZW50TmFtZV0pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ3JvdXBbZXZlbnROYW1lXSh0aGlzLmdyb3VwLCBldmVudCwgZmllbGRWYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICAgIH0pXHJcbiAgICApLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnRyaWdnZXJFdmVudChcImlucHV0ZmllbGQtb25DaGFuZ2VcIiwgdGhpcy5kYXRhLk9uQ2hhbmdlLCBldmVudCwgZmllbGRWYWx1ZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FzY2FkaW5nSGFuZGxpbmcoenVkZlNjb3BlOiBhbnksIGZpZWxkTmFtZTogYW55LCBmaWVsZFZhbHVlPzogYW55KSB7XHJcbiAgICBjb25zdCBsaW5rZWRDb21wb25lbnRTY29wZSA9IHp1ZGZTY29wZS5saW5rZWRDb21wb25lbnQ7XHJcbiAgICAvLyAjMSBjaGVjayBpcyB0aGUgb25jaGFuZ2UgY29tcG9uZW50IGxpbmtlZCB0byBvdGhlciBjb21wb25lbnQuXHJcbiAgICAvLyAjMiBpZiBsaW5rZWQgdG8gb3RoZXIgY29tcG9uZW50KGxldHMgY2FsbCBpdCBjaGlsZCBjb21wb25lbnQpLFxyXG4gICAgLy8gICAgYmFzZSBvbiB0aGUgbGlua2VkQ29tcG9uZW50U2NvcGUgdmFsdWUsIGZpbmQgdGhlIGNoaWxkIGNvbXBvbmVudC5cclxuICAgIC8vICMzIGtlZXAgdGhlIG9yaWdpbmFsIFNlbGVjdE9wdGlvbnMgaW4gdGhlIGNvbXBvbmVudC5cclxuICAgIC8vICM0IGNsZWFyIHRoZSBjaGlsZCB6bW9kZWwgYW5kIGZpbHRlciB0aGUgY2hpbGQgY29tcG9uZW50IG9wdGlvbnMuXHJcbiAgICAvLyAjNSBhdXRvIHNlbGVjdCBkZWZhdWx0IHptb2RlbCBpZiBvbmx5IGhhdmUgMSBvcHRpb24gYW5kIGlzIHJlcXVpcmVkLlxyXG4gICAgLy8gIzYgaGFuZGxlIGNoaWxkIG5lc3RlZCBsaW5rZWQgY29tcG9uZW50LlxyXG4gICAgbGlua2VkQ29tcG9uZW50U2NvcGUuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgY29uc3QgZGF0YVZhbHVlU2VnbWVudHMgPSBmaWVsZE5hbWUuc3BsaXQoJ18nKTtcclxuICAgICAgY29uc3QgbGlua2VkQ29tcG9uZW50U2VnbWVudHMgPSBpdGVtLmxpbmtlZENvbXBvbmVudC5zcGxpdCgnXycpO1xyXG4gICAgICBsZXQgaXNMaW5rZWRDb21wb25lbnQgPSBmYWxzZTtcclxuXHJcbiAgICAgIC8vIGNoZWNrIGlzIGl0IGxpbmtlZGNvbXBvbmVudFxyXG4gICAgICBpZiAobGlua2VkQ29tcG9uZW50U2VnbWVudHMubGVuZ3RoID4gMSAmJiBkYXRhVmFsdWVTZWdtZW50cy5sZW5ndGggPiAzKSB7XHJcbiAgICAgICAgY29uc3QgbGFzdFR3b1NlZ21lbnRzID0gZGF0YVZhbHVlU2VnbWVudHMuc2xpY2UoLTIpLmpvaW4oJ18nKTtcclxuICAgICAgICBpZiAobGlua2VkQ29tcG9uZW50U2VnbWVudHMuam9pbignXycpID09PSBsYXN0VHdvU2VnbWVudHMpIHtcclxuICAgICAgICAgIGlzTGlua2VkQ29tcG9uZW50ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAobGlua2VkQ29tcG9uZW50U2VnbWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgY29uc3QgbGFzdFNlZ21lbnQgPSBkYXRhVmFsdWVTZWdtZW50c1tkYXRhVmFsdWVTZWdtZW50cy5sZW5ndGggLSAxXTtcclxuICAgICAgICBpZiAobGlua2VkQ29tcG9uZW50U2VnbWVudHNbMF0gPT09IGxhc3RTZWdtZW50KSB7XHJcbiAgICAgICAgICBpc0xpbmtlZENvbXBvbmVudCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoaXNMaW5rZWRDb21wb25lbnQpIHtcclxuICAgICAgICBjb25zdCBjaGlsZENvbXBvbmVudCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0Q29tcG9uZW50QnlWYWx1ZSh0aGlzLmdyb3VwLCBpdGVtLnZhbHVlKTtcclxuICAgICAgICBjb25zdCBvcmlnaW5hbFNlbGVjdE9wdGlvbnMgPSBjaGlsZENvbXBvbmVudC5kYXRhWydvcmlnaW5hbFNlbGVjdE9wdGlvbnMnXSA/PyBPYmplY3QuYXNzaWduKFtdLCBjaGlsZENvbXBvbmVudC5kYXRhLlNlbGVjdE9wdGlvbnMpO1xyXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkU2VsZWN0aW9uT3B0aW9ucyA9IG9yaWdpbmFsU2VsZWN0T3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi5wYXJlbnRFeHByZXNzaW9uID09IGZpZWxkVmFsdWUpO1xyXG5cclxuICAgICAgICAvL2NoaWxkQ29tcG9uZW50LmNsZWFyRGF0YSgpOyAvL3VuYWJsZSB0byB1c2UgY2xlYXJEYXRhLiBub3QgaGFuZGxlZCBmb3IgenVkZiB0eXBlXHJcbiAgICAgICAgLy8gbWFudWFsbCBwYXRjaCB0aGUgY29tcG9uZW50IGZvcm1jb250cm9sIHZhbHVlXHJcbiAgICAgICAgY29uc3QgenVkZkZvcm0gPSB6dWRmU2NvcGUuZm9ybSBhcyBGb3JtR3JvdXA7XHJcbiAgICAgICAgY29uc3QgY29tcG9uZW50Rm9ybUNvbnRyb2wgPSB6dWRmRm9ybS5jb250cm9sc1tpdGVtLnZhbHVlXSBhcyBGb3JtQ29udHJvbDtcclxuICAgICAgICB6dWRmU2NvcGUuek1vZGVsW2l0ZW0udmFsdWVdID0gbnVsbDtcclxuICAgICAgICBjb21wb25lbnRGb3JtQ29udHJvbC5wYXRjaFZhbHVlKHp1ZGZTY29wZS56TW9kZWxbaXRlbS52YWx1ZV0pO1xyXG5cclxuICAgICAgICBjaGlsZENvbXBvbmVudC5kYXRhWydvcmlnaW5hbFNlbGVjdE9wdGlvbnMnXSA9IG9yaWdpbmFsU2VsZWN0T3B0aW9ucztcclxuICAgICAgICBjaGlsZENvbXBvbmVudC5zZXRTZWxlY3RPcHRpb24oZmlsdGVyZWRTZWxlY3Rpb25PcHRpb25zKTtcclxuXHJcbiAgICAgICAgLy8gc2V0IGRyb3Bkb3duIHNlbGVjdGVkIHZhbHVlIGlmIG9ubHkgMSBvcHRpb24uXHJcbiAgICAgICAgY29uc3QgY2hpbGRDb21wb25lbnRUeXBlID0gY2hpbGRDb21wb25lbnQuZGF0YS5UeXBlO1xyXG4gICAgICAgIGlmIChmaWx0ZXJlZFNlbGVjdGlvbk9wdGlvbnMubGVuZ3RoID09PSAxICYmIGNoaWxkQ29tcG9uZW50LmRhdGEuSXNSZXF1aXJlZCAmJiAoY2hpbGRDb21wb25lbnRUeXBlID09PSAnenVpc2VsZWN0bXVsdGlwbGUnIHx8IGNoaWxkQ29tcG9uZW50VHlwZSA9PT0gJ3pzZWxlY3RtdWx0aXBsZScpKSB7XHJcbiAgICAgICAgICB6dWRmU2NvcGUuek1vZGVsW2l0ZW0udmFsdWVdID0gZmlsdGVyZWRTZWxlY3Rpb25PcHRpb25zWzBdW2NoaWxkQ29tcG9uZW50Lml0ZW1WYWx1ZUZpZWxkXTtcclxuICAgICAgICAgIGNvbXBvbmVudEZvcm1Db250cm9sLnBhdGNoVmFsdWUoenVkZlNjb3BlLnpNb2RlbFtpdGVtLnZhbHVlXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBsb29wIGNoaWxkcmVuIGluY2FzZSBvZiBuZXN0ZWQgY2hpbGQuXHJcbiAgICAgICAgY29uc3QgY2hpbGRDb21wb25lbnRWYWx1ZVNlZ21lbnRzID0gY2hpbGRDb21wb25lbnQuZGF0YS5WYWx1ZS5zcGxpdCgnXycpO1xyXG4gICAgICAgIHRoaXMuY2FzY2FkaW5nSGFuZGxpbmcoenVkZlNjb3BlLCBjaGlsZENvbXBvbmVudFZhbHVlU2VnbWVudHNbY2hpbGRDb21wb25lbnRWYWx1ZVNlZ21lbnRzLmxlbmd0aCAtIDFdLCB6dWRmU2NvcGUuek1vZGVsW2l0ZW0udmFsdWVdKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBmb2N1c09uRGVmYXVsdChmb2N1c0Z1bmN0aW9uOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRhdGEuSXNGb2N1cykge1xyXG4gICAgICBsZXQgY291bnRlciA9IDA7XHJcbiAgICAgIGxldCBpc0ZvY3VzZWQgPSBmYWxzZTtcclxuICAgICAgaW50ZXJ2YWwoNTAwKS5waXBlKFxyXG4gICAgICAgIHRha2VXaGlsZSh4ID0+IGNvdW50ZXIgPCA1ICYmICFpc0ZvY3VzZWQpLFxyXG4gICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICBpc0ZvY3VzZWQgPSBmb2N1c0Z1bmN0aW9uKCk7XHJcbiAgICAgICAgICBjb3VudGVyKys7XHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,4 @@
1
+ export class ComponentConstant {
2
+ }
3
+ ComponentConstant.GridColDateFilterSuffix = "_GridFilter";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi9jb25zdGFudHMvY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsTUFBTSxPQUFRLGlCQUFpQjs7QUFDZix5Q0FBdUIsR0FBRyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0ICBjbGFzcyBDb21wb25lbnRDb25zdGFudCB7XHJcbiAgcHVibGljIHN0YXRpYyBHcmlkQ29sRGF0ZUZpbHRlclN1ZmZpeCA9IFwiX0dyaWRGaWx0ZXJcIjtcclxufVxyXG4iXX0=
@@ -5,9 +5,9 @@ export class ElementContainerDirective {
5
5
  this.viewContainerRef = viewContainerRef;
6
6
  }
7
7
  }
8
- ElementContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ElementContainerDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
9
- ElementContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: ElementContainerDirective, selector: "[elementcontainer]", ngImport: i0 });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ElementContainerDirective, decorators: [{
8
+ ElementContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ElementContainerDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
9
+ ElementContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: ElementContainerDirective, selector: "[elementcontainer]", ngImport: i0 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ElementContainerDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[elementcontainer]'
@@ -5,9 +5,9 @@ export class FieldElementDirective {
5
5
  this.viewContainerRef = viewContainerRef;
6
6
  }
7
7
  }
8
- FieldElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FieldElementDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
9
- FieldElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: FieldElementDirective, selector: "[fieldelement]", ngImport: i0 });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FieldElementDirective, decorators: [{
8
+ FieldElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FieldElementDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
9
+ FieldElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: FieldElementDirective, selector: "[fieldelement]", ngImport: i0 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: FieldElementDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[fieldelement]'
@@ -34,9 +34,9 @@ export class ScrollbarThemeDirective {
34
34
  // }
35
35
  }
36
36
  }
37
- ScrollbarThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ScrollbarThemeDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
38
- ScrollbarThemeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: ScrollbarThemeDirective, selector: "[appScrollbarTheme]", ngImport: i0 });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ScrollbarThemeDirective, decorators: [{
37
+ ScrollbarThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ScrollbarThemeDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
38
+ ScrollbarThemeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: ScrollbarThemeDirective, selector: "[appScrollbarTheme]", ngImport: i0 });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ScrollbarThemeDirective, decorators: [{
40
40
  type: Directive,
41
41
  args: [{
42
42
  selector: '[appScrollbarTheme]'
@@ -3,25 +3,31 @@ import { ZComponentHelper } from 'mmhglobal-zcore';
3
3
  import { InputFieldBase } from "../../components/inputfieldbase.component";
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../../services/zcomponent.service";
6
- import * as i2 from "@fortawesome/angular-fontawesome";
7
- import * as i3 from "@ionic/angular";
8
- import * as i4 from "@angular/common";
9
- import * as i5 from "@progress/kendo-angular-tooltip";
6
+ import * as i2 from "mmhglobal-zcore";
7
+ import * as i3 from "@fortawesome/angular-fontawesome";
8
+ import * as i4 from "@ionic/angular";
9
+ import * as i5 from "@angular/common";
10
+ import * as i6 from "@progress/kendo-angular-tooltip";
11
+ import * as i7 from "@angular/flex-layout/extended";
10
12
  export class InputFieldAddOnsComponent extends InputFieldBase {
11
- constructor(compService) { super(compService); }
12
- // public iconList: ClickableIcons[];
13
- // public buttonList;
13
+ constructor(compService, translationService) {
14
+ super(compService);
15
+ this.translationService = translationService;
16
+ }
14
17
  ngOnInit() {
15
- this.position = this.position || 'top';
16
- this.addOn = this.data && this.data.InputFieldAddOns ? this.data.InputFieldAddOns.find(i => i.Position === this.position) : null;
18
+ }
19
+ ngOnChanges(changes) {
17
20
  if (this.addOn) {
21
+ this.position = this.position || 'top';
18
22
  this.setupIconList();
19
23
  this.setupButtonList();
24
+ this.setupTextList();
20
25
  }
21
26
  }
22
27
  setupIconList() {
23
28
  // this.addOn.IconList = [{ Icon: "user", Click: null, Style: "color:blue;", ToolTipText: "text" }]; // For Testing
24
29
  if (this.addOn.IconList) {
30
+ this.addOn.IconList = this.addOn.IconList.filter(x => x);
25
31
  this.addOn.IconList.forEach((i) => {
26
32
  if (i.ToolTipText === undefined) {
27
33
  i.ToolTipText = "";
@@ -29,22 +35,31 @@ export class InputFieldAddOnsComponent extends InputFieldBase {
29
35
  else if (i.ToolTipText.indexOf("group.") !== -1) {
30
36
  i.ToolTipText = ZComponentHelper.getGroupEvalValue.call(this, i.ToolTipText);
31
37
  }
38
+ this.translationService.$translateText(i.ToolTipText, { elementName: this.group.fieldName, group: this.group }).subscribe();
32
39
  // Default position top. right | bottom | top | left
33
40
  i.Position = i.Position || "top";
34
41
  });
42
+ this.translationService.$translateItemList(this.addOn.IconList, "ToolTipText", { elementName: this.group.fieldName, group: this.group }).subscribe();
35
43
  }
36
44
  }
37
45
  setupButtonList() {
38
46
  // this.addOn.ButtonList = [{ Text: 'test', Icon: 'user', Style: '', Click: null }]; // For Testing
39
47
  if (this.addOn.ButtonList) {
48
+ this.addOn.ButtonList = this.addOn.ButtonList.filter(x => x);
40
49
  this.addOn.ButtonList.forEach(button => {
50
+ const isUseCustomClass = button.Color ? false : true;
51
+ button['color'] = isUseCustomClass ? '' : (button.Color || 'primary');
52
+ button['fill'] = isUseCustomClass ? '' : (button.Fill || 'solid');
53
+ button['class'] = isUseCustomClass ? `${button.Class} useCustomClass` : button.Class;
41
54
  button.Visible = ZComponentHelper.isNullUndefinedEmpty(button.Visible) ? 'true' : button.Visible;
42
55
  });
56
+ this.translationService.$translateItemList(this.addOn.ButtonList, "Text", { elementName: this.group.fieldName, group: this.group }).subscribe();
43
57
  }
44
58
  }
45
59
  setupTextList() {
46
60
  // this.addOn.TextList = [{ Text: 'test', Style: '', TooltipText: 'test' }]; // For Testing
47
61
  if (this.addOn.TextList) {
62
+ this.addOn.TextList = this.addOn.TextList.filter(x => x);
48
63
  this.addOn.TextList.forEach((i) => {
49
64
  if (i.ToolTipText === undefined) {
50
65
  i.ToolTipText = "";
@@ -55,15 +70,19 @@ export class InputFieldAddOnsComponent extends InputFieldBase {
55
70
  // Default position top. right | bottom | top | left
56
71
  i.Position = i.Position || "top";
57
72
  });
73
+ this.translationService.$translateItemList(this.addOn.TextList, "Text", { elementName: this.group.fieldName, group: this.group }).subscribe();
74
+ this.translationService.$translateItemList(this.addOn.TextList, "ToolTipText", { elementName: this.group.fieldName, group: this.group }).subscribe();
58
75
  }
59
76
  }
60
77
  }
61
- InputFieldAddOnsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InputFieldAddOnsComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
62
- InputFieldAddOnsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: InputFieldAddOnsComponent, selector: "app-input-field-addons", inputs: { position: "position" }, usesInheritance: true, ngImport: i0, template: "<div [class]=\"'addons-container ' + position\" *ngIf=\"this.addOn\">\r\n <div class=\"addons-icon\" *ngIf=\"addOn.IconList\">\r\n <div *ngFor=\"let item of addOn.IconList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span *ngIf=\"!!item \" (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n <fa-icon [icon]=\"item.Icon\">\r\n </fa-icon>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-text\" *ngIf=\"addOn.TextList\">\r\n <div *ngFor=\"let item of addOn.TextList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span *ngIf=\"!!item \" (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n {{item.Text}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-buttons\" *ngIf=\"addOn.ButtonList\">\r\n <ion-button *ngFor=\"let button of addOn.ButtonList; let i = button\" [fill]=\"button.fill || 'outline'\"\r\n [color]=\"button.color || 'dark'\" [size]=\"button.size || 'small'\" strong=\"false\"\r\n (click)=\"onIconClick(button.Click)\" [hidden]=\"!button.Visible\" [disabled]=\"group.isTriggered || button.Disabled\"\r\n [style]=\"button.Style\">\r\n <fa-icon *ngIf=\"button.Icon\" [icon]=\"getFontAwesome(button.Icon)\"\r\n [style.padding-right]=\"button.Text ? '5px' : '0px'\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">{{ button.Text }}</span>\r\n </ion-button>\r\n </div>\r\n</div>\r\n", styles: [".addons-container{display:flex}.addons-container .addons-icon{display:flex;flex-direction:row}.addons-container .addons-icon fa-icon{padding:4px 6px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-buttons>ion-button{margin:0 0 0 5px;height:20px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-text{padding-left:6px;padding-top:3px;font-size:calc(var(--content-font-size) - 2px)}.addons-container.top .addons-buttons>ion-button{top:-3px;position:relative}.addons-container.left .addons-buttons>ion-button{margin:0 5px 0 0}\n"], components: [{ type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "showAfter", "callout", "closable", "offset", "tooltipTemplate", "showOn", "titleTemplate", "tooltipWidth", "tooltipHeight", "tooltipClass", "collision", "closeTitle"], exportAs: ["kendoTooltip"] }] });
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InputFieldAddOnsComponent, decorators: [{
78
+ InputFieldAddOnsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: InputFieldAddOnsComponent, deps: [{ token: i1.ZComponentService }, { token: i2.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
79
+ InputFieldAddOnsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: InputFieldAddOnsComponent, selector: "app-input-field-addons", inputs: { position: "position", addOn: "addOn" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div [class]=\"'addons-container ' + position\" *ngIf=\"addOn\">\r\n <div class=\"addons-icon\" *ngIf=\"addOn.IconList\">\r\n <div *ngFor=\"let item of addOn.IconList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n <fa-icon [icon]=\"item.Icon\">\r\n </fa-icon>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-text\" *ngIf=\"addOn.TextList\">\r\n <div *ngFor=\"let item of addOn.TextList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n {{item.Text}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-buttons\" *ngIf=\"addOn.ButtonList\">\r\n <ion-button *ngFor=\"let button of addOn.ButtonList; let i = button\" [fill]=\"button.fill\" [ngClass]=\"button.class\"\r\n [color]=\"button.color\" [size]=\"button.Size || 'small'\" strong=\"false\" (click)=\"onIconClick(button.Click)\"\r\n [hidden]=\"!button.Visible\" [disabled]=\"group.isTriggered || button.Disabled\" [style]=\"button.Style\">\r\n <fa-icon *ngIf=\"button.Icon\" [icon]=\"getFontAwesome(button.Icon)\"\r\n [style.padding-right]=\"button.Text ? '5px' : '0px'\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">{{ button.Text }}</span>\r\n </ion-button>\r\n </div>\r\n</div>\r\n", styles: [".addons-container{display:flex}.addons-container .addons-icon{display:flex;flex-direction:row}.addons-container .addons-icon fa-icon{padding:4px 6px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-buttons>ion-button{margin:0 0 0 5px;height:20px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-text{padding-left:6px;padding-top:3px;font-size:calc(var(--content-font-size) - 2px)}.addons-container.top .addons-buttons>ion-button{top:-3px;position:relative}.addons-container.left .addons-buttons>ion-button{margin:0 5px 0 0}.addons-buttons ion-button{font-size:var(--button-font-size);margin-left:10px;--border-radius: var(--button-border-radius);--box-shadow: 1px 2px 4px 0px rgba(0, 0, 0, .25)}.addons-buttons ion-button.useCustomClass{--background-hover-opacity: 1;--border-width: 2px;--border-style: solid;--background: #fff;--background-hover: rgba(var(--ion-color-primary-rgb), .05);--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}.addons-buttons ion-button.primary-light{--background: rgba(var(--ion-color-primary-rgb), .05);--background-hover: #fff;--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}.addons-buttons ion-button.primary{--background: var(--ion-color-primary);--background-hover: var(--ion-color-primary-tint);--color: var(--ion-color-primary-contrast);--border-color: var(--ion-color-primary-shade)}.addons-buttons ion-button.success{--background: var(--ion-color-success);--background-hover: var(--ion-color-success-tint);--color: var(--ion-color-success-contrast);--border-color: var(--ion-color-success-shade)}.addons-buttons ion-button.danger{--background: var(--ion-color-danger);--background-hover: var(--ion-color-danger-tint2);--color: var(--ion-color-danger-contrast);--border-color: var(--ion-color-danger-shade)}.addons-buttons ion-button.warning{--background: var(--ion-color-warning);--background-hover: var(--ion-color-warning-tint);--color: #000;--border-color: var(--ion-color-warning-shade)}.addons-buttons ion-button.no-shadow{--box-shadow: none}\n"], components: [{ type: i3.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i4.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "titleTemplate", "showOn", "showAfter", "callout", "closable", "offset", "tooltipWidth", "tooltipHeight", "tooltipClass", "collision", "closeTitle", "tooltipTemplate"], exportAs: ["kendoTooltip"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: InputFieldAddOnsComponent, decorators: [{
64
81
  type: Component,
65
- args: [{ selector: "app-input-field-addons", template: "<div [class]=\"'addons-container ' + position\" *ngIf=\"this.addOn\">\r\n <div class=\"addons-icon\" *ngIf=\"addOn.IconList\">\r\n <div *ngFor=\"let item of addOn.IconList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span *ngIf=\"!!item \" (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n <fa-icon [icon]=\"item.Icon\">\r\n </fa-icon>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-text\" *ngIf=\"addOn.TextList\">\r\n <div *ngFor=\"let item of addOn.TextList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span *ngIf=\"!!item \" (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n {{item.Text}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-buttons\" *ngIf=\"addOn.ButtonList\">\r\n <ion-button *ngFor=\"let button of addOn.ButtonList; let i = button\" [fill]=\"button.fill || 'outline'\"\r\n [color]=\"button.color || 'dark'\" [size]=\"button.size || 'small'\" strong=\"false\"\r\n (click)=\"onIconClick(button.Click)\" [hidden]=\"!button.Visible\" [disabled]=\"group.isTriggered || button.Disabled\"\r\n [style]=\"button.Style\">\r\n <fa-icon *ngIf=\"button.Icon\" [icon]=\"getFontAwesome(button.Icon)\"\r\n [style.padding-right]=\"button.Text ? '5px' : '0px'\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">{{ button.Text }}</span>\r\n </ion-button>\r\n </div>\r\n</div>\r\n", styles: [".addons-container{display:flex}.addons-container .addons-icon{display:flex;flex-direction:row}.addons-container .addons-icon fa-icon{padding:4px 6px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-buttons>ion-button{margin:0 0 0 5px;height:20px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-text{padding-left:6px;padding-top:3px;font-size:calc(var(--content-font-size) - 2px)}.addons-container.top .addons-buttons>ion-button{top:-3px;position:relative}.addons-container.left .addons-buttons>ion-button{margin:0 5px 0 0}\n"] }]
66
- }], ctorParameters: function () { return [{ type: i1.ZComponentService }]; }, propDecorators: { position: [{
82
+ args: [{ selector: "app-input-field-addons", template: "<div [class]=\"'addons-container ' + position\" *ngIf=\"addOn\">\r\n <div class=\"addons-icon\" *ngIf=\"addOn.IconList\">\r\n <div *ngFor=\"let item of addOn.IconList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n <fa-icon [icon]=\"item.Icon\">\r\n </fa-icon>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-text\" *ngIf=\"addOn.TextList\">\r\n <div *ngFor=\"let item of addOn.TextList\">\r\n <div kendoTooltip class=\"icon-button\" showOn=\"hover\" [tooltipWidth]=\"item.Width\" [position]=\"item.Position\">\r\n <span (click)=\"onIconClick(item.Click)\" [title]=\"item.ToolTipText\" [style]=\"item.Style\">\r\n {{item.Text}}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"addons-buttons\" *ngIf=\"addOn.ButtonList\">\r\n <ion-button *ngFor=\"let button of addOn.ButtonList; let i = button\" [fill]=\"button.fill\" [ngClass]=\"button.class\"\r\n [color]=\"button.color\" [size]=\"button.Size || 'small'\" strong=\"false\" (click)=\"onIconClick(button.Click)\"\r\n [hidden]=\"!button.Visible\" [disabled]=\"group.isTriggered || button.Disabled\" [style]=\"button.Style\">\r\n <fa-icon *ngIf=\"button.Icon\" [icon]=\"getFontAwesome(button.Icon)\"\r\n [style.padding-right]=\"button.Text ? '5px' : '0px'\"></fa-icon>\r\n <span class=\"ion-text-capitalize\">{{ button.Text }}</span>\r\n </ion-button>\r\n </div>\r\n</div>\r\n", styles: [".addons-container{display:flex}.addons-container .addons-icon{display:flex;flex-direction:row}.addons-container .addons-icon fa-icon{padding:4px 6px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-buttons>ion-button{margin:0 0 0 5px;height:20px;font-size:calc(var(--content-font-size) - 2px)}.addons-container .addons-text{padding-left:6px;padding-top:3px;font-size:calc(var(--content-font-size) - 2px)}.addons-container.top .addons-buttons>ion-button{top:-3px;position:relative}.addons-container.left .addons-buttons>ion-button{margin:0 5px 0 0}.addons-buttons ion-button{font-size:var(--button-font-size);margin-left:10px;--border-radius: var(--button-border-radius);--box-shadow: 1px 2px 4px 0px rgba(0, 0, 0, .25)}.addons-buttons ion-button.useCustomClass{--background-hover-opacity: 1;--border-width: 2px;--border-style: solid;--background: #fff;--background-hover: rgba(var(--ion-color-primary-rgb), .05);--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}.addons-buttons ion-button.primary-light{--background: rgba(var(--ion-color-primary-rgb), .05);--background-hover: #fff;--color: var(--ion-color-primary);--border-color: var(--ion-color-primary)}.addons-buttons ion-button.primary{--background: var(--ion-color-primary);--background-hover: var(--ion-color-primary-tint);--color: var(--ion-color-primary-contrast);--border-color: var(--ion-color-primary-shade)}.addons-buttons ion-button.success{--background: var(--ion-color-success);--background-hover: var(--ion-color-success-tint);--color: var(--ion-color-success-contrast);--border-color: var(--ion-color-success-shade)}.addons-buttons ion-button.danger{--background: var(--ion-color-danger);--background-hover: var(--ion-color-danger-tint2);--color: var(--ion-color-danger-contrast);--border-color: var(--ion-color-danger-shade)}.addons-buttons ion-button.warning{--background: var(--ion-color-warning);--background-hover: var(--ion-color-warning-tint);--color: #000;--border-color: var(--ion-color-warning-shade)}.addons-buttons ion-button.no-shadow{--box-shadow: none}\n"] }]
83
+ }], ctorParameters: function () { return [{ type: i1.ZComponentService }, { type: i2.TranslationService }]; }, propDecorators: { position: [{
84
+ type: Input
85
+ }], addOn: [{
67
86
  type: Input
68
87
  }] } });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmllbGQtYWRkb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL2VtYmVkLWNvbXBvbmVudHMvaW5wdXQtZmllbGQtYWRkb25zL2lucHV0LWZpZWxkLWFkZG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi9lbWJlZC1jb21wb25lbnRzL2lucHV0LWZpZWxkLWFkZG9ucy9pbnB1dC1maWVsZC1hZGRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFnRCxnQkFBZ0IsRUFBeUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN4SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7QUFRM0UsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGNBQWM7SUFFM0QsWUFBWSxXQUE4QixJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFHbEUscUNBQXFDO0lBQ3JDLHFCQUFxQjtJQUVyQixRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2pJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRU8sYUFBYTtRQUNuQixtSEFBbUg7UUFFbkgsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRTtvQkFDL0IsQ0FBQyxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7aUJBQ3BCO3FCQUFNLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ2pELENBQUMsQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQzlFO2dCQUVELG9EQUFvRDtnQkFDcEQsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVPLGVBQWU7UUFDckIsb0dBQW9HO1FBRXBHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ25HLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU8sYUFBYTtRQUNuQiw0RkFBNEY7UUFFNUYsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRTtvQkFDL0IsQ0FBQyxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7aUJBQ3BCO3FCQUFNLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ2pELENBQUMsQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQzlFO2dCQUVELG9EQUFvRDtnQkFDcEQsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7dUhBM0RVLHlCQUF5QjsyR0FBekIseUJBQXlCLHVIQ1Z0Qyx3ckRBaUNBOzRGRHZCYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCO3dHQUt6QixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ2xpY2thYmxlSWNvbnMsIElucHV0RmllbGRBZGRPbnMsIFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpDb21wb25lbnRPdXRwdXRFdmVudCB9IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcbmltcG9ydCB7IElucHV0RmllbGRCYXNlIH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvaW5wdXRmaWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLWlucHV0LWZpZWxkLWFkZG9uc1wiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5wdXQtZmllbGQtYWRkb25zLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2lucHV0LWZpZWxkLWFkZG9ucy5jb21wb25lbnQuc2Nzc1wiXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRGaWVsZEFkZE9uc0NvbXBvbmVudCBleHRlbmRzIElucHV0RmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBASW5wdXQoKSBwb3NpdGlvbjogJ3RvcCcgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ2JvdHRvbSc7IC8vIGRlZmF1bHQgdG9wXHJcbiAgY29uc3RydWN0b3IoY29tcFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlKSB7IHN1cGVyKGNvbXBTZXJ2aWNlKSB9XHJcblxyXG4gIHB1YmxpYyBhZGRPbjogSW5wdXRGaWVsZEFkZE9ucztcclxuICAvLyBwdWJsaWMgaWNvbkxpc3Q6IENsaWNrYWJsZUljb25zW107XHJcbiAgLy8gcHVibGljIGJ1dHRvbkxpc3Q7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5wb3NpdGlvbiA9IHRoaXMucG9zaXRpb24gfHwgJ3RvcCc7XHJcbiAgICB0aGlzLmFkZE9uID0gdGhpcy5kYXRhICYmIHRoaXMuZGF0YS5JbnB1dEZpZWxkQWRkT25zID8gdGhpcy5kYXRhLklucHV0RmllbGRBZGRPbnMuZmluZChpID0+IGkuUG9zaXRpb24gPT09IHRoaXMucG9zaXRpb24pIDogbnVsbDtcclxuICAgIGlmICh0aGlzLmFkZE9uKSB7XHJcbiAgICAgIHRoaXMuc2V0dXBJY29uTGlzdCgpO1xyXG4gICAgICB0aGlzLnNldHVwQnV0dG9uTGlzdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cEljb25MaXN0KCkge1xyXG4gICAgLy8gdGhpcy5hZGRPbi5JY29uTGlzdCA9IFt7IEljb246IFwidXNlclwiLCBDbGljazogbnVsbCwgU3R5bGU6IFwiY29sb3I6Ymx1ZTtcIiwgVG9vbFRpcFRleHQ6IFwidGV4dFwiIH1dOyAvLyBGb3IgVGVzdGluZ1xyXG5cclxuICAgIGlmICh0aGlzLmFkZE9uLkljb25MaXN0KSB7XHJcbiAgICAgIHRoaXMuYWRkT24uSWNvbkxpc3QuZm9yRWFjaCgoaTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGkuVG9vbFRpcFRleHQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgaS5Ub29sVGlwVGV4dCA9IFwiXCI7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpLlRvb2xUaXBUZXh0LmluZGV4T2YoXCJncm91cC5cIikgIT09IC0xKSB7XHJcbiAgICAgICAgICBpLlRvb2xUaXBUZXh0ID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGkuVG9vbFRpcFRleHQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRGVmYXVsdCBwb3NpdGlvbiB0b3AuIHJpZ2h0IHwgYm90dG9tIHwgdG9wIHwgbGVmdFxyXG4gICAgICAgIGkuUG9zaXRpb24gPSBpLlBvc2l0aW9uIHx8IFwidG9wXCI7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXR1cEJ1dHRvbkxpc3QoKSB7XHJcbiAgICAvLyB0aGlzLmFkZE9uLkJ1dHRvbkxpc3QgPSBbeyBUZXh0OiAndGVzdCcsIEljb246ICd1c2VyJywgU3R5bGU6ICcnLCBDbGljazogbnVsbCB9XTsgIC8vIEZvciBUZXN0aW5nXHJcblxyXG4gICAgaWYgKHRoaXMuYWRkT24uQnV0dG9uTGlzdCkge1xyXG4gICAgICB0aGlzLmFkZE9uLkJ1dHRvbkxpc3QuZm9yRWFjaChidXR0b24gPT4ge1xyXG4gICAgICAgIGJ1dHRvbi5WaXNpYmxlID0gWkNvbXBvbmVudEhlbHBlci5pc051bGxVbmRlZmluZWRFbXB0eShidXR0b24uVmlzaWJsZSkgPyAndHJ1ZScgOiBidXR0b24uVmlzaWJsZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwVGV4dExpc3QoKSB7XHJcbiAgICAvLyB0aGlzLmFkZE9uLlRleHRMaXN0ID0gW3sgVGV4dDogJ3Rlc3QnLCBTdHlsZTogJycsIFRvb2x0aXBUZXh0OiAndGVzdCcgfV07ICAvLyBGb3IgVGVzdGluZ1xyXG5cclxuICAgIGlmICh0aGlzLmFkZE9uLlRleHRMaXN0KSB7XHJcbiAgICAgIHRoaXMuYWRkT24uVGV4dExpc3QuZm9yRWFjaCgoaTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGkuVG9vbFRpcFRleHQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgaS5Ub29sVGlwVGV4dCA9IFwiXCI7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpLlRvb2xUaXBUZXh0LmluZGV4T2YoXCJncm91cC5cIikgIT09IC0xKSB7XHJcbiAgICAgICAgICBpLlRvb2xUaXBUZXh0ID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGkuVG9vbFRpcFRleHQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRGVmYXVsdCBwb3NpdGlvbiB0b3AuIHJpZ2h0IHwgYm90dG9tIHwgdG9wIHwgbGVmdFxyXG4gICAgICAgIGkuUG9zaXRpb24gPSBpLlBvc2l0aW9uIHx8IFwidG9wXCI7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtjbGFzc109XCInYWRkb25zLWNvbnRhaW5lciAnICsgcG9zaXRpb25cIiAqbmdJZj1cInRoaXMuYWRkT25cIj5cclxuICA8ZGl2IGNsYXNzPVwiYWRkb25zLWljb25cIiAqbmdJZj1cImFkZE9uLkljb25MaXN0XCI+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFkZE9uLkljb25MaXN0XCI+XHJcbiAgICAgIDxkaXYga2VuZG9Ub29sdGlwIGNsYXNzPVwiaWNvbi1idXR0b25cIiBzaG93T249XCJob3ZlclwiIFt0b29sdGlwV2lkdGhdPVwiaXRlbS5XaWR0aFwiIFtwb3NpdGlvbl09XCJpdGVtLlBvc2l0aW9uXCI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhIWl0ZW0gXCIgKGNsaWNrKT1cIm9uSWNvbkNsaWNrKGl0ZW0uQ2xpY2spXCIgW3RpdGxlXT1cIml0ZW0uVG9vbFRpcFRleHRcIiBbc3R5bGVdPVwiaXRlbS5TdHlsZVwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiaXRlbS5JY29uXCI+XHJcbiAgICAgICAgICA8L2ZhLWljb24+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiYWRkb25zLXRleHRcIiAqbmdJZj1cImFkZE9uLlRleHRMaXN0XCI+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFkZE9uLlRleHRMaXN0XCI+XHJcbiAgICAgIDxkaXYga2VuZG9Ub29sdGlwIGNsYXNzPVwiaWNvbi1idXR0b25cIiBzaG93T249XCJob3ZlclwiIFt0b29sdGlwV2lkdGhdPVwiaXRlbS5XaWR0aFwiIFtwb3NpdGlvbl09XCJpdGVtLlBvc2l0aW9uXCI+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhIWl0ZW0gXCIgKGNsaWNrKT1cIm9uSWNvbkNsaWNrKGl0ZW0uQ2xpY2spXCIgW3RpdGxlXT1cIml0ZW0uVG9vbFRpcFRleHRcIiBbc3R5bGVdPVwiaXRlbS5TdHlsZVwiPlxyXG4gICAgICAgICAge3tpdGVtLlRleHR9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImFkZG9ucy1idXR0b25zXCIgKm5nSWY9XCJhZGRPbi5CdXR0b25MaXN0XCI+XHJcbiAgICA8aW9uLWJ1dHRvbiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGFkZE9uLkJ1dHRvbkxpc3Q7IGxldCBpID0gYnV0dG9uXCIgW2ZpbGxdPVwiYnV0dG9uLmZpbGwgfHwgJ291dGxpbmUnXCJcclxuICAgICAgW2NvbG9yXT1cImJ1dHRvbi5jb2xvciB8fCAnZGFyaydcIiBbc2l6ZV09XCJidXR0b24uc2l6ZSB8fCAnc21hbGwnXCIgc3Ryb25nPVwiZmFsc2VcIlxyXG4gICAgICAoY2xpY2spPVwib25JY29uQ2xpY2soYnV0dG9uLkNsaWNrKVwiIFtoaWRkZW5dPVwiIWJ1dHRvbi5WaXNpYmxlXCIgW2Rpc2FibGVkXT1cImdyb3VwLmlzVHJpZ2dlcmVkIHx8IGJ1dHRvbi5EaXNhYmxlZFwiXHJcbiAgICAgIFtzdHlsZV09XCJidXR0b24uU3R5bGVcIj5cclxuICAgICAgPGZhLWljb24gKm5nSWY9XCJidXR0b24uSWNvblwiIFtpY29uXT1cImdldEZvbnRBd2Vzb21lKGJ1dHRvbi5JY29uKVwiXHJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmctcmlnaHRdPVwiYnV0dG9uLlRleHQgPyAnNXB4JyA6ICcwcHgnXCI+PC9mYS1pY29uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImlvbi10ZXh0LWNhcGl0YWxpemVcIj57eyBidXR0b24uVGV4dCB9fTwvc3Bhbj5cclxuICAgIDwvaW9uLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmllbGQtYWRkb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL2VtYmVkLWNvbXBvbmVudHMvaW5wdXQtZmllbGQtYWRkb25zL2lucHV0LWZpZWxkLWFkZG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi9lbWJlZC1jb21wb25lbnRzL2lucHV0LWZpZWxkLWFkZG9ucy9pbnB1dC1maWVsZC1hZGRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBb0QsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7Ozs7OztBQVEzRSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsY0FBYztJQUczRCxZQUFZLFdBQThCLEVBQVUsa0JBQXNDO1FBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQTVELHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFBdUIsQ0FBQztJQUVsSCxRQUFRO0lBQ1IsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVPLGFBQWE7UUFDbkIsbUhBQW1IO1FBRW5ILElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUU7b0JBQy9CLENBQUMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO2lCQUNwQjtxQkFBTSxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUNqRCxDQUFDLENBQUMsV0FBVyxHQUFHLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2lCQUM5RTtnQkFFRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUU1SCxvREFBb0Q7Z0JBQ3BELENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUN0SjtJQUNILENBQUM7SUFFTyxlQUFlO1FBQ3JCLG9HQUFvRztRQUVwRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDckMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDckQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsQ0FBQztnQkFDdEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQztnQkFDbEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO2dCQUVyRixNQUFNLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ25HLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDako7SUFDSCxDQUFDO0lBRU8sYUFBYTtRQUNuQiw0RkFBNEY7UUFFNUYsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLENBQUMsV0FBVyxLQUFLLFNBQVMsRUFBRTtvQkFDL0IsQ0FBQyxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7aUJBQ3BCO3FCQUFNLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ2pELENBQUMsQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQzlFO2dCQUVELG9EQUFvRDtnQkFDcEQsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztZQUNuQyxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3RKO0lBQ0gsQ0FBQzs7dUhBNUVVLHlCQUF5QjsyR0FBekIseUJBQXlCLDRKQ1Z0Qywwb0RBZ0NBOzRGRHRCYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usd0JBQXdCO3lJQUt6QixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IElucHV0RmllbGRBZGRPbnMsIFRyYW5zbGF0aW9uU2VydmljZSwgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlciB9IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcbmltcG9ydCB7IElucHV0RmllbGRCYXNlIH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvaW5wdXRmaWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLWlucHV0LWZpZWxkLWFkZG9uc1wiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5wdXQtZmllbGQtYWRkb25zLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2lucHV0LWZpZWxkLWFkZG9ucy5jb21wb25lbnQuc2Nzc1wiXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRGaWVsZEFkZE9uc0NvbXBvbmVudCBleHRlbmRzIElucHV0RmllbGRCYXNlIGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBASW5wdXQoKSBwb3NpdGlvbjogJ3RvcCcgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ2JvdHRvbSc7IC8vIGRlZmF1bHQgdG9wXHJcbiAgQElucHV0KCkgYWRkT246IElucHV0RmllbGRBZGRPbnM7XHJcbiAgY29uc3RydWN0b3IoY29tcFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlLCBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlKSB7IHN1cGVyKGNvbXBTZXJ2aWNlKSB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKHRoaXMuYWRkT24pIHtcclxuICAgICAgdGhpcy5wb3NpdGlvbiA9IHRoaXMucG9zaXRpb24gfHwgJ3RvcCc7XHJcbiAgICAgIHRoaXMuc2V0dXBJY29uTGlzdCgpO1xyXG4gICAgICB0aGlzLnNldHVwQnV0dG9uTGlzdCgpO1xyXG4gICAgICB0aGlzLnNldHVwVGV4dExpc3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBJY29uTGlzdCgpIHtcclxuICAgIC8vIHRoaXMuYWRkT24uSWNvbkxpc3QgPSBbeyBJY29uOiBcInVzZXJcIiwgQ2xpY2s6IG51bGwsIFN0eWxlOiBcImNvbG9yOmJsdWU7XCIsIFRvb2xUaXBUZXh0OiBcInRleHRcIiB9XTsgLy8gRm9yIFRlc3RpbmdcclxuXHJcbiAgICBpZiAodGhpcy5hZGRPbi5JY29uTGlzdCkge1xyXG4gICAgICB0aGlzLmFkZE9uLkljb25MaXN0ID0gdGhpcy5hZGRPbi5JY29uTGlzdC5maWx0ZXIoeCA9PiB4KTtcclxuICAgICAgdGhpcy5hZGRPbi5JY29uTGlzdC5mb3JFYWNoKChpOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaS5Ub29sVGlwVGV4dCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBpLlRvb2xUaXBUZXh0ID0gXCJcIjtcclxuICAgICAgICB9IGVsc2UgaWYgKGkuVG9vbFRpcFRleHQuaW5kZXhPZihcImdyb3VwLlwiKSAhPT0gLTEpIHtcclxuICAgICAgICAgIGkuVG9vbFRpcFRleHQgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgaS5Ub29sVGlwVGV4dCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS4kdHJhbnNsYXRlVGV4dChpLlRvb2xUaXBUZXh0LCB7IGVsZW1lbnROYW1lOiB0aGlzLmdyb3VwLmZpZWxkTmFtZSwgZ3JvdXA6IHRoaXMuZ3JvdXAgfSkuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICAgIC8vIERlZmF1bHQgcG9zaXRpb24gdG9wLiByaWdodCB8IGJvdHRvbSB8IHRvcCB8IGxlZnRcclxuICAgICAgICBpLlBvc2l0aW9uID0gaS5Qb3NpdGlvbiB8fCBcInRvcFwiO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLiR0cmFuc2xhdGVJdGVtTGlzdCh0aGlzLmFkZE9uLkljb25MaXN0LCBcIlRvb2xUaXBUZXh0XCIsIHsgZWxlbWVudE5hbWU6IHRoaXMuZ3JvdXAuZmllbGROYW1lLCBncm91cDogdGhpcy5ncm91cCB9KS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBCdXR0b25MaXN0KCkge1xyXG4gICAgLy8gdGhpcy5hZGRPbi5CdXR0b25MaXN0ID0gW3sgVGV4dDogJ3Rlc3QnLCBJY29uOiAndXNlcicsIFN0eWxlOiAnJywgQ2xpY2s6IG51bGwgfV07ICAvLyBGb3IgVGVzdGluZ1xyXG5cclxuICAgIGlmICh0aGlzLmFkZE9uLkJ1dHRvbkxpc3QpIHtcclxuICAgICAgdGhpcy5hZGRPbi5CdXR0b25MaXN0ID0gdGhpcy5hZGRPbi5CdXR0b25MaXN0LmZpbHRlcih4ID0+IHgpO1xyXG4gICAgICB0aGlzLmFkZE9uLkJ1dHRvbkxpc3QuZm9yRWFjaChidXR0b24gPT4ge1xyXG4gICAgICAgIGNvbnN0IGlzVXNlQ3VzdG9tQ2xhc3MgPSBidXR0b24uQ29sb3IgPyBmYWxzZSA6IHRydWU7XHJcbiAgICAgICAgYnV0dG9uWydjb2xvciddID0gaXNVc2VDdXN0b21DbGFzcyA/ICcnIDogKGJ1dHRvbi5Db2xvciB8fCAncHJpbWFyeScpO1xyXG4gICAgICAgIGJ1dHRvblsnZmlsbCddID0gaXNVc2VDdXN0b21DbGFzcyA/ICcnIDogKGJ1dHRvbi5GaWxsIHx8ICdzb2xpZCcpO1xyXG4gICAgICAgIGJ1dHRvblsnY2xhc3MnXSA9IGlzVXNlQ3VzdG9tQ2xhc3MgPyBgJHtidXR0b24uQ2xhc3N9IHVzZUN1c3RvbUNsYXNzYCA6IGJ1dHRvbi5DbGFzcztcclxuXHJcbiAgICAgICAgYnV0dG9uLlZpc2libGUgPSBaQ29tcG9uZW50SGVscGVyLmlzTnVsbFVuZGVmaW5lZEVtcHR5KGJ1dHRvbi5WaXNpYmxlKSA/ICd0cnVlJyA6IGJ1dHRvbi5WaXNpYmxlO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLiR0cmFuc2xhdGVJdGVtTGlzdCh0aGlzLmFkZE9uLkJ1dHRvbkxpc3QsIFwiVGV4dFwiLCB7IGVsZW1lbnROYW1lOiB0aGlzLmdyb3VwLmZpZWxkTmFtZSwgZ3JvdXA6IHRoaXMuZ3JvdXAgfSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwVGV4dExpc3QoKSB7XHJcbiAgICAvLyB0aGlzLmFkZE9uLlRleHRMaXN0ID0gW3sgVGV4dDogJ3Rlc3QnLCBTdHlsZTogJycsIFRvb2x0aXBUZXh0OiAndGVzdCcgfV07ICAvLyBGb3IgVGVzdGluZ1xyXG5cclxuICAgIGlmICh0aGlzLmFkZE9uLlRleHRMaXN0KSB7XHJcbiAgICAgIHRoaXMuYWRkT24uVGV4dExpc3QgPSB0aGlzLmFkZE9uLlRleHRMaXN0LmZpbHRlcih4ID0+IHgpO1xyXG4gICAgICB0aGlzLmFkZE9uLlRleHRMaXN0LmZvckVhY2goKGk6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChpLlRvb2xUaXBUZXh0ID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGkuVG9vbFRpcFRleHQgPSBcIlwiO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaS5Ub29sVGlwVGV4dC5pbmRleE9mKFwiZ3JvdXAuXCIpICE9PSAtMSkge1xyXG4gICAgICAgICAgaS5Ub29sVGlwVGV4dCA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBpLlRvb2xUaXBUZXh0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIERlZmF1bHQgcG9zaXRpb24gdG9wLiByaWdodCB8IGJvdHRvbSB8IHRvcCB8IGxlZnRcclxuICAgICAgICBpLlBvc2l0aW9uID0gaS5Qb3NpdGlvbiB8fCBcInRvcFwiO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLiR0cmFuc2xhdGVJdGVtTGlzdCh0aGlzLmFkZE9uLlRleHRMaXN0LCBcIlRleHRcIiwgeyBlbGVtZW50TmFtZTogdGhpcy5ncm91cC5maWVsZE5hbWUsIGdyb3VwOiB0aGlzLmdyb3VwIH0pLnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS4kdHJhbnNsYXRlSXRlbUxpc3QodGhpcy5hZGRPbi5UZXh0TGlzdCwgXCJUb29sVGlwVGV4dFwiLCB7IGVsZW1lbnROYW1lOiB0aGlzLmdyb3VwLmZpZWxkTmFtZSwgZ3JvdXA6IHRoaXMuZ3JvdXAgfSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW2NsYXNzXT1cIidhZGRvbnMtY29udGFpbmVyICcgKyBwb3NpdGlvblwiICpuZ0lmPVwiYWRkT25cIj5cclxuICA8ZGl2IGNsYXNzPVwiYWRkb25zLWljb25cIiAqbmdJZj1cImFkZE9uLkljb25MaXN0XCI+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFkZE9uLkljb25MaXN0XCI+XHJcbiAgICAgIDxkaXYga2VuZG9Ub29sdGlwIGNsYXNzPVwiaWNvbi1idXR0b25cIiBzaG93T249XCJob3ZlclwiIFt0b29sdGlwV2lkdGhdPVwiaXRlbS5XaWR0aFwiIFtwb3NpdGlvbl09XCJpdGVtLlBvc2l0aW9uXCI+XHJcbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cIm9uSWNvbkNsaWNrKGl0ZW0uQ2xpY2spXCIgW3RpdGxlXT1cIml0ZW0uVG9vbFRpcFRleHRcIiBbc3R5bGVdPVwiaXRlbS5TdHlsZVwiPlxyXG4gICAgICAgICAgPGZhLWljb24gW2ljb25dPVwiaXRlbS5JY29uXCI+XHJcbiAgICAgICAgICA8L2ZhLWljb24+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiYWRkb25zLXRleHRcIiAqbmdJZj1cImFkZE9uLlRleHRMaXN0XCI+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGFkZE9uLlRleHRMaXN0XCI+XHJcbiAgICAgIDxkaXYga2VuZG9Ub29sdGlwIGNsYXNzPVwiaWNvbi1idXR0b25cIiBzaG93T249XCJob3ZlclwiIFt0b29sdGlwV2lkdGhdPVwiaXRlbS5XaWR0aFwiIFtwb3NpdGlvbl09XCJpdGVtLlBvc2l0aW9uXCI+XHJcbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cIm9uSWNvbkNsaWNrKGl0ZW0uQ2xpY2spXCIgW3RpdGxlXT1cIml0ZW0uVG9vbFRpcFRleHRcIiBbc3R5bGVdPVwiaXRlbS5TdHlsZVwiPlxyXG4gICAgICAgICAge3tpdGVtLlRleHR9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImFkZG9ucy1idXR0b25zXCIgKm5nSWY9XCJhZGRPbi5CdXR0b25MaXN0XCI+XHJcbiAgICA8aW9uLWJ1dHRvbiAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGFkZE9uLkJ1dHRvbkxpc3Q7IGxldCBpID0gYnV0dG9uXCIgW2ZpbGxdPVwiYnV0dG9uLmZpbGxcIiBbbmdDbGFzc109XCJidXR0b24uY2xhc3NcIlxyXG4gICAgICBbY29sb3JdPVwiYnV0dG9uLmNvbG9yXCIgW3NpemVdPVwiYnV0dG9uLlNpemUgfHwgJ3NtYWxsJ1wiIHN0cm9uZz1cImZhbHNlXCIgKGNsaWNrKT1cIm9uSWNvbkNsaWNrKGJ1dHRvbi5DbGljaylcIlxyXG4gICAgICBbaGlkZGVuXT1cIiFidXR0b24uVmlzaWJsZVwiIFtkaXNhYmxlZF09XCJncm91cC5pc1RyaWdnZXJlZCB8fCBidXR0b24uRGlzYWJsZWRcIiBbc3R5bGVdPVwiYnV0dG9uLlN0eWxlXCI+XHJcbiAgICAgIDxmYS1pY29uICpuZ0lmPVwiYnV0dG9uLkljb25cIiBbaWNvbl09XCJnZXRGb250QXdlc29tZShidXR0b24uSWNvbilcIlxyXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nLXJpZ2h0XT1cImJ1dHRvbi5UZXh0ID8gJzVweCcgOiAnMHB4J1wiPjwvZmEtaWNvbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJpb24tdGV4dC1jYXBpdGFsaXplXCI+e3sgYnV0dG9uLlRleHQgfX08L3NwYW4+XHJcbiAgICA8L2lvbi1idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { Component } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class PageLoaderComponent {
4
+ constructor() { }
5
+ ngOnInit() {
6
+ }
7
+ }
8
+ PageLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PageLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ PageLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: PageLoaderComponent, selector: "app-page-loader", ngImport: i0, template: "<div class=\"loader\"></div>\r\n", styles: [".loader{animation:rotate 1s infinite;height:50px;width:50px;margin:auto;margin-top:10vh}.loader:before,.loader:after{border-radius:50%;content:\"\";display:block;height:20px;width:20px}.loader:before{animation:ball1 1s infinite;background-color:#38c22e;box-shadow:30px 0 #f37932;margin-bottom:10px}.loader:after{animation:ball2 1s infinite;background-color:#f26a1b;box-shadow:30px 0 #3db93d}@keyframes rotate{0%{-webkit-transform:rotate(0deg) scale(.8);-moz-transform:rotate(0deg) scale(.8)}50%{-webkit-transform:rotate(360deg) scale(1.2);-moz-transform:rotate(360deg) scale(1.2)}to{-webkit-transform:rotate(720deg) scale(.8);-moz-transform:rotate(720deg) scale(.8)}}@keyframes ball1{0%{box-shadow:30px 0 #f37932}50%{box-shadow:0 0 #f37932;margin-bottom:0;-webkit-transform:translate(15px,15px);-moz-transform:translate(15px,15px)}to{box-shadow:30px 0 #f37932;margin-bottom:10px}}@keyframes ball2{0%{box-shadow:30px 0 #3db93d}50%{box-shadow:0 0 #3db93d;margin-top:-20px;-webkit-transform:translate(15px,15px);-moz-transform:translate(15px,15px)}to{box-shadow:30px 0 #3db93d;margin-top:0}}\n"] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: PageLoaderComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: "app-page-loader", template: "<div class=\"loader\"></div>\r\n", styles: [".loader{animation:rotate 1s infinite;height:50px;width:50px;margin:auto;margin-top:10vh}.loader:before,.loader:after{border-radius:50%;content:\"\";display:block;height:20px;width:20px}.loader:before{animation:ball1 1s infinite;background-color:#38c22e;box-shadow:30px 0 #f37932;margin-bottom:10px}.loader:after{animation:ball2 1s infinite;background-color:#f26a1b;box-shadow:30px 0 #3db93d}@keyframes rotate{0%{-webkit-transform:rotate(0deg) scale(.8);-moz-transform:rotate(0deg) scale(.8)}50%{-webkit-transform:rotate(360deg) scale(1.2);-moz-transform:rotate(360deg) scale(1.2)}to{-webkit-transform:rotate(720deg) scale(.8);-moz-transform:rotate(720deg) scale(.8)}}@keyframes ball1{0%{box-shadow:30px 0 #f37932}50%{box-shadow:0 0 #f37932;margin-bottom:0;-webkit-transform:translate(15px,15px);-moz-transform:translate(15px,15px)}to{box-shadow:30px 0 #f37932;margin-bottom:10px}}@keyframes ball2{0%{box-shadow:30px 0 #3db93d}50%{box-shadow:0 0 #3db93d;margin-top:-20px;-webkit-transform:translate(15px,15px);-moz-transform:translate(15px,15px)}to{box-shadow:30px 0 #3db93d;margin-top:0}}\n"] }]
13
+ }], ctorParameters: function () { return []; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1sb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvZW1iZWQtY29tcG9uZW50cy9wYWdlLWxvYWRlci9wYWdlLWxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi9lbWJlZC1jb21wb25lbnRzL3BhZ2UtbG9hZGVyL3BhZ2UtbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBT2xELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7O2lIQUpVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLHVEQ1BoQyxrQ0FDQTs0RkRNYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXBhZ2UtbG9hZGVyXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9wYWdlLWxvYWRlci5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9wYWdlLWxvYWRlci5jb21wb25lbnQuc2Nzc1wiXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnZUxvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsb2FkZXJcIj48L2Rpdj5cclxuIl19