mmhglobal-dynamicform 1.2.3 → 1.3.2

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 (198) hide show
  1. package/README.md +14 -2
  2. package/esm2020/lib/directives/fieldelement.directive.mjs +16 -0
  3. package/esm2020/lib/directives/scrollbar.theme.directive.mjs +43 -0
  4. package/esm2020/lib/mmhglobal-dynamicform.module.mjs +464 -0
  5. package/esm2020/lib/services/main.service.mjs +752 -0
  6. package/esm2020/lib/services/zcomponent.debug.service.mjs +621 -0
  7. package/esm2020/lib/services/zcomponent.service.mjs +81 -0
  8. package/esm2020/lib/uiactionbutton/uiactionbutton.component.mjs +265 -0
  9. package/esm2020/lib/uiappmenucontent/uiappmenucontent.component.mjs +67 -0
  10. package/esm2020/lib/uicontent/uicontent.component.mjs +41 -0
  11. package/esm2020/lib/uiheader/uiheader.component.mjs +66 -0
  12. package/esm2020/lib/uimenubutton/uimenubutton.component.mjs +35 -0
  13. package/esm2020/lib/uimenucontent/uimenucontent.component.mjs +37 -0
  14. package/{esm2015/lib/uipage/uipage.component.js → esm2020/lib/uipage/uipage.component.mjs} +12 -13
  15. package/esm2020/lib/uivalidationmessage/uivalidationmessage.component.mjs +41 -0
  16. package/esm2020/lib/zbullet/zbullet.component.mjs +74 -0
  17. package/esm2020/lib/zbuttons/zbuttons.component.mjs +171 -0
  18. package/esm2020/lib/zcard/zcard.component.mjs +72 -0
  19. package/esm2020/lib/zchart/zchart.component.mjs +201 -0
  20. package/esm2020/lib/zcheckbox/zcheckbox.component.mjs +166 -0
  21. package/esm2020/lib/zchip/zchip.component.mjs +121 -0
  22. package/esm2020/lib/zcodeeditor/zcodeeditor.component.mjs +169 -0
  23. package/esm2020/lib/zcodeeditor/zcodeeditor.pipe.mjs +60 -0
  24. package/esm2020/lib/zdaterange/zdaterange.component.mjs +70 -0
  25. package/esm2020/lib/zdatetime/dateParser.pipe.mjs +30 -0
  26. package/esm2020/lib/zdatetime/zdatetime.component.mjs +285 -0
  27. package/esm2020/lib/zdiv/zdiv.component.mjs +50 -0
  28. package/esm2020/lib/zdiv/zdiv.pipe.mjs +31 -0
  29. package/esm2020/lib/zform/zform.component.mjs +147 -0
  30. package/esm2020/lib/zformcontrol/zformcontrol.component.mjs +49 -0
  31. package/esm2020/lib/zgauge/zgauge.component.mjs +148 -0
  32. package/esm2020/lib/zgrid/date-range-cell-filter.component.mjs +135 -0
  33. package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +490 -0
  34. package/esm2020/lib/zgrid/zgrid.component.mjs +847 -0
  35. package/esm2020/lib/zgrid/zgrid.popup.anchor-target.directive.mjs +17 -0
  36. package/esm2020/lib/zimg/zimg.component.mjs +121 -0
  37. package/esm2020/lib/zkcard/zkcard.component.mjs +367 -0
  38. package/esm2020/lib/zlabel/zlabel.component.mjs +62 -0
  39. package/esm2020/lib/zmfb/zmfb.component.mjs +215 -0
  40. package/esm2020/lib/zmodal/zmodal-mobile.component.mjs +120 -0
  41. package/esm2020/lib/zmodal/zmodal.component.mjs +125 -0
  42. package/esm2020/lib/znumeric/znumeric.component.mjs +119 -0
  43. package/esm2020/lib/zpostselectinput/zpostselectinput.component.mjs +352 -0
  44. package/esm2020/lib/zquerybuilder/zquerybuilder.component.mjs +204 -0
  45. package/esm2020/lib/zreport/zreport.component.mjs +105 -0
  46. package/esm2020/lib/zreport/zreport.config.mjs +117 -0
  47. package/esm2020/lib/zscheduler/zscheduler.component.mjs +267 -0
  48. package/{esm2015/lib/zscheduler/zscheduler.toolbar.component.js → esm2020/lib/zscheduler/zscheduler.toolbar.component.mjs} +55 -19
  49. package/esm2020/lib/zselectmultiple/zselectmultiple.component.mjs +577 -0
  50. package/esm2020/lib/zselectmultiple/zselectmultiple.directive.mjs +35 -0
  51. package/esm2020/lib/ztab/ztab.component.mjs +187 -0
  52. package/esm2020/lib/ztab/ztab.pipe.mjs +26 -0
  53. package/esm2020/lib/ztext/ztext.component.mjs +297 -0
  54. package/esm2020/lib/ztextarea/ztextarea.component.mjs +109 -0
  55. package/esm2020/lib/ztexteditor/ztexteditor.component.mjs +57 -0
  56. package/esm2020/lib/ztree/ztree.component.mjs +380 -0
  57. package/esm2020/lib/ztreelist/ztreelist.component.mjs +544 -0
  58. package/esm2020/lib/ztrendcard/ztrendcard.component.mjs +92 -0
  59. package/esm2020/lib/zudf/zudf.component.mjs +205 -0
  60. package/esm2020/lib/zunknown/zunknown.component.mjs +20 -0
  61. package/esm2020/lib/zupload/zupload.component.mjs +359 -0
  62. package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +216 -0
  63. package/esm2020/mmhglobal-dynamicform.mjs +5 -0
  64. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  65. package/fesm2015/mmhglobal-dynamicform.mjs +10790 -0
  66. package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -0
  67. package/fesm2020/mmhglobal-dynamicform.mjs +10779 -0
  68. package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -0
  69. package/lib/directives/fieldelement.directive.d.ts +3 -0
  70. package/lib/directives/scrollbar.theme.directive.d.ts +3 -0
  71. package/lib/mmhglobal-dynamicform.module.d.ts +92 -0
  72. package/lib/services/main.service.d.ts +3 -0
  73. package/lib/services/zcomponent.debug.service.d.ts +8 -5
  74. package/lib/services/zcomponent.service.d.ts +7 -2
  75. package/lib/uiactionbutton/uiactionbutton.component.d.ts +3 -0
  76. package/lib/uiappmenucontent/uiappmenucontent.component.d.ts +3 -0
  77. package/lib/uicontent/uicontent.component.d.ts +3 -0
  78. package/lib/uiheader/uiheader.component.d.ts +3 -0
  79. package/lib/uimenubutton/uimenubutton.component.d.ts +3 -0
  80. package/lib/uimenucontent/uimenucontent.component.d.ts +3 -0
  81. package/lib/uipage/uipage.component.d.ts +3 -0
  82. package/lib/uivalidationmessage/uivalidationmessage.component.d.ts +3 -0
  83. package/lib/zbullet/zbullet.component.d.ts +3 -0
  84. package/lib/zbuttons/zbuttons.component.d.ts +3 -0
  85. package/lib/zcard/zcard.component.d.ts +3 -0
  86. package/lib/zchart/zchart.component.d.ts +3 -0
  87. package/lib/zcheckbox/zcheckbox.component.d.ts +3 -0
  88. package/lib/zchip/zchip.component.d.ts +3 -0
  89. package/lib/zcodeeditor/zcodeeditor.component.d.ts +3 -0
  90. package/lib/zcodeeditor/zcodeeditor.pipe.d.ts +3 -0
  91. package/lib/zdaterange/zdaterange.component.d.ts +3 -0
  92. package/lib/zdatetime/dateParser.pipe.d.ts +3 -0
  93. package/lib/zdatetime/zdatetime.component.d.ts +3 -0
  94. package/lib/zdiv/zdiv.component.d.ts +3 -0
  95. package/lib/zdiv/zdiv.pipe.d.ts +3 -0
  96. package/lib/zform/zform.component.d.ts +3 -0
  97. package/lib/zformcontrol/zformcontrol.component.d.ts +3 -0
  98. package/lib/zgauge/zgauge.component.d.ts +3 -0
  99. package/lib/zgrid/date-range-cell-filter.component.d.ts +3 -0
  100. package/lib/zgrid/zgrid.binding.directive.d.ts +3 -0
  101. package/lib/zgrid/zgrid.component.d.ts +4 -1
  102. package/lib/zgrid/zgrid.popup.anchor-target.directive.d.ts +3 -0
  103. package/lib/zimg/zimg.component.d.ts +3 -0
  104. package/lib/zkcard/zkcard.component.d.ts +3 -0
  105. package/lib/zlabel/zlabel.component.d.ts +3 -0
  106. package/lib/zmfb/zmfb.component.d.ts +3 -0
  107. package/lib/zmodal/zmodal-mobile.component.d.ts +3 -0
  108. package/lib/zmodal/zmodal.component.d.ts +3 -0
  109. package/lib/znumeric/znumeric.component.d.ts +3 -0
  110. package/lib/zpostselectinput/zpostselectinput.component.d.ts +3 -0
  111. package/lib/zquerybuilder/zquerybuilder.component.d.ts +3 -0
  112. package/lib/zreport/zreport.component.d.ts +3 -0
  113. package/lib/zreport/zreport.config.d.ts +3 -0
  114. package/lib/zscheduler/zscheduler.component.d.ts +3 -0
  115. package/lib/zscheduler/zscheduler.toolbar.component.d.ts +3 -0
  116. package/lib/zselectmultiple/zselectmultiple.component.d.ts +3 -0
  117. package/lib/zselectmultiple/zselectmultiple.directive.d.ts +3 -0
  118. package/lib/ztab/ztab.component.d.ts +3 -0
  119. package/lib/ztab/ztab.pipe.d.ts +3 -0
  120. package/lib/ztext/ztext.component.d.ts +3 -0
  121. package/lib/ztextarea/ztextarea.component.d.ts +3 -0
  122. package/lib/ztexteditor/ztexteditor.component.d.ts +3 -0
  123. package/lib/ztree/ztree.component.d.ts +3 -0
  124. package/lib/ztreelist/ztreelist.component.d.ts +3 -0
  125. package/lib/ztrendcard/ztrendcard.component.d.ts +3 -0
  126. package/lib/zudf/zudf.component.d.ts +3 -0
  127. package/lib/zunknown/zunknown.component.d.ts +3 -0
  128. package/lib/zupload/zupload.component.d.ts +3 -0
  129. package/lib/zworkflowbuttons/zworkflowbuttons.component.d.ts +3 -0
  130. package/mmhglobal-dynamicform.d.ts +1 -2
  131. package/package.json +20 -11
  132. package/bundles/mmhglobal-dynamicform.umd.js +0 -11360
  133. package/bundles/mmhglobal-dynamicform.umd.js.map +0 -1
  134. package/bundles/mmhglobal-dynamicform.umd.min.js +0 -16
  135. package/bundles/mmhglobal-dynamicform.umd.min.js.map +0 -1
  136. package/esm2015/lib/directives/fieldelement.directive.js +0 -15
  137. package/esm2015/lib/directives/scrollbar.theme.directive.js +0 -42
  138. package/esm2015/lib/mmhglobal-dynamicform.module.js +0 -314
  139. package/esm2015/lib/services/main.service.js +0 -766
  140. package/esm2015/lib/services/zcomponent.debug.service.js +0 -626
  141. package/esm2015/lib/services/zcomponent.service.js +0 -167
  142. package/esm2015/lib/uiactionbutton/uiactionbutton.component.js +0 -271
  143. package/esm2015/lib/uiappmenucontent/uiappmenucontent.component.js +0 -69
  144. package/esm2015/lib/uicontent/uicontent.component.js +0 -41
  145. package/esm2015/lib/uiheader/uiheader.component.js +0 -65
  146. package/esm2015/lib/uimenubutton/uimenubutton.component.js +0 -40
  147. package/esm2015/lib/uimenucontent/uimenucontent.component.js +0 -34
  148. package/esm2015/lib/uivalidationmessage/uivalidationmessage.component.js +0 -39
  149. package/esm2015/lib/zbullet/zbullet.component.js +0 -71
  150. package/esm2015/lib/zbuttons/zbuttons.component.js +0 -168
  151. package/esm2015/lib/zcard/zcard.component.js +0 -68
  152. package/esm2015/lib/zchart/zchart.component.js +0 -199
  153. package/esm2015/lib/zcheckbox/zcheckbox.component.js +0 -158
  154. package/esm2015/lib/zchip/zchip.component.js +0 -117
  155. package/esm2015/lib/zcodeeditor/zcodeeditor.component.js +0 -163
  156. package/esm2015/lib/zcodeeditor/zcodeeditor.pipe.js +0 -56
  157. package/esm2015/lib/zdaterange/zdaterange.component.js +0 -63
  158. package/esm2015/lib/zdatetime/dateParser.pipe.js +0 -26
  159. package/esm2015/lib/zdatetime/zdatetime.component.js +0 -279
  160. package/esm2015/lib/zdiv/zdiv.component.js +0 -48
  161. package/esm2015/lib/zdiv/zdiv.pipe.js +0 -27
  162. package/esm2015/lib/zform/zform.component.js +0 -148
  163. package/esm2015/lib/zformcontrol/zformcontrol.component.js +0 -49
  164. package/esm2015/lib/zgauge/zgauge.component.js +0 -146
  165. package/esm2015/lib/zgrid/date-range-cell-filter.component.js +0 -102
  166. package/esm2015/lib/zgrid/zgrid.binding.directive.js +0 -493
  167. package/esm2015/lib/zgrid/zgrid.component.js +0 -834
  168. package/esm2015/lib/zgrid/zgrid.popup.anchor-target.directive.js +0 -16
  169. package/esm2015/lib/zimg/zimg.component.js +0 -123
  170. package/esm2015/lib/zkcard/zkcard.component.js +0 -372
  171. package/esm2015/lib/zlabel/zlabel.component.js +0 -59
  172. package/esm2015/lib/zmfb/zmfb.component.js +0 -215
  173. package/esm2015/lib/zmodal/zmodal-mobile.component.js +0 -119
  174. package/esm2015/lib/zmodal/zmodal.component.js +0 -130
  175. package/esm2015/lib/znumeric/znumeric.component.js +0 -114
  176. package/esm2015/lib/zpostselectinput/zpostselectinput.component.js +0 -345
  177. package/esm2015/lib/zquerybuilder/zquerybuilder.component.js +0 -196
  178. package/esm2015/lib/zreport/zreport.component.js +0 -104
  179. package/esm2015/lib/zreport/zreport.config.js +0 -115
  180. package/esm2015/lib/zscheduler/zscheduler.component.js +0 -268
  181. package/esm2015/lib/zselectmultiple/zselectmultiple.component.js +0 -565
  182. package/esm2015/lib/zselectmultiple/zselectmultiple.directive.js +0 -28
  183. package/esm2015/lib/ztab/ztab.component.js +0 -180
  184. package/esm2015/lib/ztab/ztab.pipe.js +0 -22
  185. package/esm2015/lib/ztext/ztext.component.js +0 -286
  186. package/esm2015/lib/ztextarea/ztextarea.component.js +0 -104
  187. package/esm2015/lib/ztexteditor/ztexteditor.component.js +0 -52
  188. package/esm2015/lib/ztree/ztree.component.js +0 -374
  189. package/esm2015/lib/ztreelist/ztreelist.component.js +0 -539
  190. package/esm2015/lib/ztrendcard/ztrendcard.component.js +0 -89
  191. package/esm2015/lib/zudf/zudf.component.js +0 -206
  192. package/esm2015/lib/zunknown/zunknown.component.js +0 -20
  193. package/esm2015/lib/zupload/zupload.component.js +0 -358
  194. package/esm2015/lib/zworkflowbuttons/zworkflowbuttons.component.js +0 -215
  195. package/esm2015/mmhglobal-dynamicform.js +0 -7
  196. package/fesm2015/mmhglobal-dynamicform.js +0 -10729
  197. package/fesm2015/mmhglobal-dynamicform.js.map +0 -1
  198. package/mmhglobal-dynamicform.metadata.json +0 -1
@@ -0,0 +1,135 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import { BaseFilterCellComponent } from "@progress/kendo-angular-grid";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@progress/kendo-angular-grid";
5
+ import * as i2 from "@progress/kendo-angular-dateinputs";
6
+ import * as i3 from "@angular/common";
7
+ export class DateRangeFilterCellComponent extends BaseFilterCellComponent {
8
+ constructor(filterService) {
9
+ super(filterService);
10
+ }
11
+ get start() {
12
+ const first = this.findByOperator("gte");
13
+ return (first || {}).value;
14
+ }
15
+ get end() {
16
+ const end = this.findByOperator("lte");
17
+ return (end || {}).value;
18
+ }
19
+ get hasFilter() {
20
+ return this.filtersByField(this.field).length > 0;
21
+ }
22
+ clearFilter() {
23
+ this.filterService.filter(this.removeFilter(this.field));
24
+ }
25
+ filterRange(start, end) {
26
+ this.filter = this.removeFilter(this.field);
27
+ const filters = [];
28
+ if (start) {
29
+ filters.push({
30
+ field: this.field,
31
+ operator: "gte",
32
+ value: start
33
+ });
34
+ }
35
+ if (end) {
36
+ filters.push({
37
+ field: this.field,
38
+ operator: "lte",
39
+ value: end
40
+ });
41
+ }
42
+ const root = this.filter || {
43
+ logic: "and",
44
+ filters: []
45
+ };
46
+ if (filters.length) {
47
+ root.filters.push(...filters);
48
+ }
49
+ this.filterService.filter(root);
50
+ }
51
+ findByOperator(op) {
52
+ return this.filtersByField(this.field)
53
+ .filter(({ operator }) => operator === op)[0];
54
+ }
55
+ }
56
+ DateRangeFilterCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: DateRangeFilterCellComponent, deps: [{ token: i1.FilterService }], target: i0.ɵɵFactoryTarget.Component });
57
+ DateRangeFilterCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.4", type: DateRangeFilterCellComponent, selector: "date-range-filter-cell", inputs: { filter: "filter", field: "field" }, usesInheritance: true, ngImport: i0, template: `
58
+ <kendo-daterange >
59
+ <kendo-dateinput
60
+ class="range-filter"
61
+ kendoDateRangeStartInput
62
+ [format]="'dd-MM-yyyy'"
63
+ placeholder="dd-MM-yyyy"
64
+ [value]="start"
65
+ (valueChange)="filterRange($event, end)"
66
+ style="width:84px">
67
+ </kendo-dateinput>
68
+ -
69
+ <kendo-dateinput
70
+ class="range-filter"
71
+ kendoDateRangeEndInput
72
+ [format]="'dd-MM-yyyy'"
73
+ placeholder="dd-MM-yyyy"
74
+ [value]="end"
75
+ (valueChange)="filterRange(start, $event)"
76
+ style="width:85px">
77
+ </kendo-dateinput>
78
+ </kendo-daterange>
79
+ <button
80
+ *ngIf="hasFilter"
81
+ class="k-button k-button-icon"
82
+ title="Clear"
83
+ (click)="clearFilter()">
84
+ <span class="k-icon k-i-filter-clear" style="width:15px"></span>
85
+ </button>
86
+ `, isInline: true, styles: ["kendo-daterange>kendo-dateinput.range-filter{display:inline-block}.k-button{margin-left:4px}\n"], components: [{ type: i2.DateRangeComponent, selector: "kendo-daterange" }, { type: i2.DateInputComponent, selector: "kendo-dateinput", inputs: ["focusableId", "disabled", "readonly", "title", "tabindex", "role", "ariaReadOnly", "format", "placeholder", "steps", "rangeValidation", "autoCorrect", "incompleteDateValidation", "twoDigitYearMax", "spinners", "isPopupOpen", "hasPopup", "tabIndex", "value", "size", "rounded", "fillMode", "formatPlaceholder", "max", "min"], outputs: ["valueChange", "valueUpdate", "focus", "blur"], exportAs: ["kendo-dateinput"] }], directives: [{ type: i2.DateRangeStartInputDirective, selector: "[kendoDateRangeStartInput]", inputs: ["navigateCalendarOnFocus", "autoCorrectOn"] }, { type: i2.DateRangeEndInputDirective, selector: "[kendoDateRangeEndInput]", inputs: ["navigateCalendarOnFocus", "autoCorrectOn"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.4", ngImport: i0, type: DateRangeFilterCellComponent, decorators: [{
88
+ type: Component,
89
+ args: [{
90
+ selector: 'date-range-filter-cell',
91
+ styles: [`
92
+ kendo-daterange > kendo-dateinput.range-filter {
93
+ display: inline-block;
94
+ }
95
+ .k-button {
96
+ margin-left: 4px;
97
+ }
98
+ `],
99
+ template: `
100
+ <kendo-daterange >
101
+ <kendo-dateinput
102
+ class="range-filter"
103
+ kendoDateRangeStartInput
104
+ [format]="'dd-MM-yyyy'"
105
+ placeholder="dd-MM-yyyy"
106
+ [value]="start"
107
+ (valueChange)="filterRange($event, end)"
108
+ style="width:84px">
109
+ </kendo-dateinput>
110
+ -
111
+ <kendo-dateinput
112
+ class="range-filter"
113
+ kendoDateRangeEndInput
114
+ [format]="'dd-MM-yyyy'"
115
+ placeholder="dd-MM-yyyy"
116
+ [value]="end"
117
+ (valueChange)="filterRange(start, $event)"
118
+ style="width:85px">
119
+ </kendo-dateinput>
120
+ </kendo-daterange>
121
+ <button
122
+ *ngIf="hasFilter"
123
+ class="k-button k-button-icon"
124
+ title="Clear"
125
+ (click)="clearFilter()">
126
+ <span class="k-icon k-i-filter-clear" style="width:15px"></span>
127
+ </button>
128
+ `
129
+ }]
130
+ }], ctorParameters: function () { return [{ type: i1.FilterService }]; }, propDecorators: { filter: [{
131
+ type: Input
132
+ }], field: [{
133
+ type: Input
134
+ }] } });
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1jZWxsLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tbWhnbG9iYWwtZHluYW1pY2Zvcm0vc3JjL2xpYi96Z3JpZC9kYXRlLXJhbmdlLWNlbGwtZmlsdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsdUJBQXVCLEVBQWlCLE1BQU0sOEJBQThCLENBQUM7Ozs7O0FBNEN0RixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsdUJBQXVCO0lBT3ZFLFlBQVksYUFBNEI7UUFDdEMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpDLE9BQU8sQ0FBQyxLQUFLLElBQXNCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBVyxHQUFHO1FBQ1osTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxPQUFPLENBQUMsR0FBRyxJQUFzQixFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFXLEVBQUUsR0FBUztRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUVuQixJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixRQUFRLEVBQUUsS0FBSztnQkFDZixLQUFLLEVBQUUsS0FBSzthQUNiLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxHQUFHLEVBQUU7WUFDUCxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsS0FBSyxFQUFFLEdBQUc7YUFDWCxDQUFDLENBQUM7U0FDSjtRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUk7WUFDMUIsS0FBSyxFQUFFLEtBQUs7WUFDWixPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFFRixJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztTQUMvQjtRQUVELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTyxjQUFjLENBQUMsRUFBVTtRQUMvQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUNuQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQzs7eUhBcEVVLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLG1JQS9CN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBNkJQOzJGQUVRLDRCQUE0QjtrQkF6Q3hDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsTUFBTSxFQUFFLENBQUM7Ozs7Ozs7S0FPTixDQUFFO29CQUNMLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E2QlA7aUJBQ0o7b0dBR1EsTUFBTTtzQkFEWixLQUFLO2dCQUlDLEtBQUs7c0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCYXNlRmlsdGVyQ2VsbENvbXBvbmVudCwgRmlsdGVyU2VydmljZSB9IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci1ncmlkXCI7XHJcbmltcG9ydCB7IEZpbHRlckRlc2NyaXB0b3IsIENvbXBvc2l0ZUZpbHRlckRlc2NyaXB0b3IgfSBmcm9tIFwiQHByb2dyZXNzL2tlbmRvLWRhdGEtcXVlcnkvZGlzdC9lcy9tYWluXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RhdGUtcmFuZ2UtZmlsdGVyLWNlbGwnLFxyXG4gIHN0eWxlczogW2BcclxuICAgICAgICBrZW5kby1kYXRlcmFuZ2UgPiBrZW5kby1kYXRlaW5wdXQucmFuZ2UtZmlsdGVyIHtcclxuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuay1idXR0b24ge1xyXG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNHB4O1xyXG4gICAgICAgIH1cclxuICAgIGAgXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxrZW5kby1kYXRlcmFuZ2UgPlxyXG4gICAgICAgICAgIDxrZW5kby1kYXRlaW5wdXRcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwicmFuZ2UtZmlsdGVyXCJcclxuICAgICAgICAgICAgICAgIGtlbmRvRGF0ZVJhbmdlU3RhcnRJbnB1dFxyXG4gICAgICAgICAgICAgICAgW2Zvcm1hdF09XCInZGQtTU0teXl5eSdcIlxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJkZC1NTS15eXl5XCJcclxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdGFydFwiXHJcbiAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiZmlsdGVyUmFuZ2UoJGV2ZW50LCBlbmQpXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6ODRweFwiPlxyXG4gICAgICAgICAgICA8L2tlbmRvLWRhdGVpbnB1dD5cclxuICAgICAgICAgICAgLVxyXG4gICAgICAgICAgICA8a2VuZG8tZGF0ZWlucHV0XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJhbmdlLWZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBrZW5kb0RhdGVSYW5nZUVuZElucHV0XHJcbiAgICAgICAgICAgICAgICBbZm9ybWF0XT1cIidkZC1NTS15eXl5J1wiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cImRkLU1NLXl5eXlcIlxyXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImVuZFwiXHJcbiAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiZmlsdGVyUmFuZ2Uoc3RhcnQsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDo4NXB4XCI+XHJcbiAgICAgICAgICAgIDwva2VuZG8tZGF0ZWlucHV0PlxyXG4gICAgICAgIDwva2VuZG8tZGF0ZXJhbmdlPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJoYXNGaWx0ZXJcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImstYnV0dG9uIGstYnV0dG9uLWljb25cIlxyXG4gICAgICAgICAgICB0aXRsZT1cIkNsZWFyXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyRmlsdGVyKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJrLWljb24gay1pLWZpbHRlci1jbGVhclwiIHN0eWxlPVwid2lkdGg6MTVweFwiPjwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIGBcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVSYW5nZUZpbHRlckNlbGxDb21wb25lbnQgZXh0ZW5kcyBCYXNlRmlsdGVyQ2VsbENvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZmlsdGVyOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGZpZWxkOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGZpbHRlclNlcnZpY2U6IEZpbHRlclNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGZpbHRlclNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzdGFydCgpOiBEYXRlIHtcclxuICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5maW5kQnlPcGVyYXRvcihcImd0ZVwiKTtcclxuXHJcbiAgICByZXR1cm4gKGZpcnN0IHx8IDxGaWx0ZXJEZXNjcmlwdG9yPnt9KS52YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZW5kKCk6IERhdGUge1xyXG4gICAgY29uc3QgZW5kID0gdGhpcy5maW5kQnlPcGVyYXRvcihcImx0ZVwiKTtcclxuICAgIHJldHVybiAoZW5kIHx8IDxGaWx0ZXJEZXNjcmlwdG9yPnt9KS52YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaGFzRmlsdGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyc0J5RmllbGQodGhpcy5maWVsZCkubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckZpbHRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXIoXHJcbiAgICAgIHRoaXMucmVtb3ZlRmlsdGVyKHRoaXMuZmllbGQpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbHRlclJhbmdlKHN0YXJ0OiBEYXRlLCBlbmQ6IERhdGUpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsdGVyID0gdGhpcy5yZW1vdmVGaWx0ZXIodGhpcy5maWVsZCk7XHJcblxyXG4gICAgY29uc3QgZmlsdGVycyA9IFtdO1xyXG5cclxuICAgIGlmIChzdGFydCkge1xyXG4gICAgICBmaWx0ZXJzLnB1c2goe1xyXG4gICAgICAgIGZpZWxkOiB0aGlzLmZpZWxkLFxyXG4gICAgICAgIG9wZXJhdG9yOiBcImd0ZVwiLFxyXG4gICAgICAgIHZhbHVlOiBzdGFydFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZW5kKSB7XHJcbiAgICAgIGZpbHRlcnMucHVzaCh7XHJcbiAgICAgICAgZmllbGQ6IHRoaXMuZmllbGQsXHJcbiAgICAgICAgb3BlcmF0b3I6IFwibHRlXCIsXHJcbiAgICAgICAgdmFsdWU6IGVuZFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByb290ID0gdGhpcy5maWx0ZXIgfHwge1xyXG4gICAgICBsb2dpYzogXCJhbmRcIixcclxuICAgICAgZmlsdGVyczogW11cclxuICAgIH07XHJcblxyXG4gICAgaWYgKGZpbHRlcnMubGVuZ3RoKSB7XHJcbiAgICAgIHJvb3QuZmlsdGVycy5wdXNoKC4uLmZpbHRlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXIocm9vdCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRCeU9wZXJhdG9yKG9wOiBzdHJpbmcpOiBGaWx0ZXJEZXNjcmlwdG9yIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlcnNCeUZpZWxkKHRoaXMuZmllbGQpXHJcbiAgICAgIC5maWx0ZXIoKHsgb3BlcmF0b3IgfSkgPT4gb3BlcmF0b3IgPT09IG9wKVswXTtcclxuICB9XHJcbn1cclxuIl19