mmhglobal-dynamicform 2.0.0-beta.8 → 2.0.0-beta.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +312 -0
- package/esm2020/lib/components/buttonfieldbase.component.mjs +20 -13
- package/esm2020/lib/components/containerfieldbase.component.mjs +5 -5
- package/esm2020/lib/components/datalistingfieldbase.component.mjs +27 -13
- package/esm2020/lib/components/fieldbase.component.mjs +8 -5
- package/esm2020/lib/components/inputfieldbase.component.mjs +144 -15
- package/esm2020/lib/constants/constant.mjs +4 -0
- package/esm2020/lib/directives/elementcontainer.directive.mjs +3 -3
- package/esm2020/lib/directives/fieldelement.directive.mjs +3 -3
- package/esm2020/lib/directives/scrollbar.theme.directive.mjs +3 -3
- package/esm2020/lib/embed-components/input-field-addons/input-field-addons.component.mjs +34 -15
- package/esm2020/lib/embed-components/page-loader/page-loader.component.mjs +14 -0
- package/esm2020/lib/embed-components/processing-record-loader/processing-record-loader.component.mjs +14 -0
- package/esm2020/lib/input-error-message/input-error-message.component.mjs +20 -9
- package/esm2020/lib/kcard/kcard.component.mjs +5 -5
- package/esm2020/lib/mmhglobal-dynamicform.module.mjs +65 -12
- package/esm2020/lib/pipe/htmlSanitize.pipe.mjs +3 -3
- package/esm2020/lib/services/component-error-handler.service.mjs +68 -31
- package/esm2020/lib/services/main.service.mjs +406 -214
- package/esm2020/lib/services/signalr.service.mjs +126 -0
- package/esm2020/lib/services/zcomponent.debug.service.mjs +11 -5
- package/esm2020/lib/services/zcomponent.service.mjs +72 -20
- package/esm2020/lib/uiactionbutton/uiactionbutton.component.mjs +34 -74
- package/esm2020/lib/uiappmenucontent/uiappmenucontent.component.mjs +13 -6
- package/esm2020/lib/uibulletin/uibulletin.component.mjs +91 -0
- package/esm2020/lib/uicontainer/uicontainer.component.mjs +10 -9
- package/esm2020/lib/uicontent/uicontent.component.mjs +20 -13
- package/esm2020/lib/uiheader/uiheader.component.mjs +14 -11
- package/esm2020/lib/uimenubutton/uimenubutton.component.mjs +4 -4
- package/esm2020/lib/uimenucontent/uimenucontent.component.mjs +3 -3
- package/esm2020/lib/uipage/uipage.component.mjs +8 -5
- package/esm2020/lib/uivalidationmessage/uivalidationmessage.component.mjs +3 -3
- package/esm2020/lib/zbullet/zbullet.component.mjs +3 -3
- package/esm2020/lib/zbuttons/zbuttons.component.mjs +20 -33
- package/esm2020/lib/zcard/zcard.component.mjs +12 -5
- package/esm2020/lib/zchart/zchart.component.mjs +94 -77
- package/esm2020/lib/zcheckbox/zcheckbox.component.mjs +18 -7
- package/esm2020/lib/zchip/zchip.component.mjs +3 -3
- package/esm2020/lib/zcodeeditor/zcodeeditor.component.mjs +3 -3
- package/esm2020/lib/zcodeeditor/zcodeeditor.pipe.mjs +3 -3
- package/esm2020/lib/zdaterange/zdaterange.component.mjs +3 -3
- package/esm2020/lib/zdatetime/dateIonicFormatParser.pipe.mjs +40 -0
- package/esm2020/lib/zdatetime/dateIonicMinMaxDate.pipe.mjs +22 -0
- package/esm2020/lib/zdatetime/dateKendoFormatParser.pipe.mjs +40 -0
- package/esm2020/lib/zdatetime/dateParser.pipe.mjs +16 -10
- package/esm2020/lib/zdatetime/zdatetime.component.mjs +78 -187
- package/esm2020/lib/zdiv/zdiv.component.mjs +5 -8
- package/esm2020/lib/zdiv/zdiv.pipe.mjs +3 -3
- package/esm2020/lib/zform/zform.component.mjs +40 -38
- package/esm2020/lib/zformcontrol/zformcontrol.component.mjs +3 -3
- package/esm2020/lib/zgauge/zgauge.component.mjs +13 -7
- package/esm2020/lib/zgrid/container/zgrid-container.component.mjs +99 -0
- package/esm2020/lib/zgrid/date-range-cell-filter.component.mjs +22 -11
- package/esm2020/lib/zgrid/zgrid.binding.directive.mjs +65 -25
- package/esm2020/lib/zgrid/zgrid.component.mjs +440 -335
- package/esm2020/lib/zgrid/zgrid.popup.anchor-target.directive.mjs +3 -3
- package/esm2020/lib/zimg/zimg.component.mjs +3 -3
- package/esm2020/lib/zinput-container/zinput-container.component.mjs +39 -24
- package/esm2020/lib/zinput-container/zinput-container.pipe.mjs +22 -11
- package/esm2020/lib/zkcard/zkcard.component.mjs +3 -3
- package/esm2020/lib/zlabel/zlabel.component.mjs +5 -5
- package/esm2020/lib/zmfb/zmfb.component.mjs +4 -8
- package/esm2020/lib/zmodal/zmodal-mobile.component.mjs +3 -3
- package/esm2020/lib/zmodal/zmodal.component.mjs +3 -3
- package/esm2020/lib/znumeric/znumeric.component.mjs +33 -23
- package/esm2020/lib/znumeric/znumeric.component.pipe.mjs +19 -0
- package/esm2020/lib/zpostselectinput/zpostselectinput.component.mjs +17 -6
- package/esm2020/lib/zprogressbar/zprogressbar.component.mjs +3 -3
- package/esm2020/lib/zquerybuilder/zquerybuilder.component.mjs +11 -5
- package/esm2020/lib/zreport/zreport.component.mjs +3 -3
- package/esm2020/lib/zscheduler/zscheduler.component.mjs +3 -3
- package/esm2020/lib/zscheduler/zscheduler.toolbar.component.mjs +4 -4
- package/esm2020/lib/zselectmultiple/zselectmultiple.component.mjs +73 -34
- package/esm2020/lib/zselectmultiple/zselectmultiple.directive.mjs +3 -3
- package/esm2020/lib/zselectmultiple/zselectmultiple.pipe.mjs +29 -0
- package/esm2020/lib/ztab/ztab.component.mjs +57 -15
- package/esm2020/lib/ztab/ztab.pipe.mjs +3 -3
- package/esm2020/lib/ztext/ztext.component.mjs +18 -7
- package/esm2020/lib/ztextarea/ztextarea.component.mjs +18 -7
- package/esm2020/lib/ztexteditor/ztexteditor.component.mjs +46 -42
- package/esm2020/lib/ztree/ztree.component.mjs +92 -27
- package/esm2020/lib/ztreelist/ztreelist.component.mjs +34 -12
- package/esm2020/lib/ztrendcard/ztrendcard.component.mjs +3 -3
- package/esm2020/lib/zudf/zudf.component.mjs +754 -119
- package/esm2020/lib/zunknown/zunknown.component.mjs +3 -3
- package/esm2020/lib/zupload/zupload.component.mjs +3 -3
- package/esm2020/lib/zworkflowbuttons/zworkflowbuttons.component.mjs +70 -20
- package/esm2020/public-api.mjs +10 -1
- package/fesm2015/mmhglobal-dynamicform.mjs +4180 -2260
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +4178 -2259
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/components/buttonfieldbase.component.d.ts +1 -0
- package/lib/components/datalistingfieldbase.component.d.ts +5 -1
- package/lib/components/fieldbase.component.d.ts +1 -0
- package/lib/components/inputfieldbase.component.d.ts +7 -2
- package/lib/constants/constant.d.ts +3 -0
- package/lib/embed-components/input-field-addons/input-field-addons.component.d.ts +6 -4
- package/lib/embed-components/page-loader/page-loader.component.d.ts +8 -0
- package/lib/embed-components/processing-record-loader/processing-record-loader.component.d.ts +8 -0
- package/lib/input-error-message/input-error-message.component.d.ts +3 -2
- package/lib/mmhglobal-dynamicform.module.d.ts +93 -82
- package/lib/services/component-error-handler.service.d.ts +8 -3
- package/lib/services/main.service.d.ts +34 -9
- package/lib/services/signalr.service.d.ts +40 -0
- package/lib/services/zcomponent.service.d.ts +5 -1
- package/lib/uiactionbutton/uiactionbutton.component.d.ts +8 -14
- package/lib/uibulletin/uibulletin.component.d.ts +37 -0
- package/lib/uicontent/uicontent.component.d.ts +3 -2
- package/lib/uiheader/uiheader.component.d.ts +1 -0
- package/lib/zbuttons/zbuttons.component.d.ts +2 -3
- package/lib/zcard/zcard.component.d.ts +1 -0
- package/lib/zchart/zchart.component.d.ts +21 -14
- package/lib/zcheckbox/zcheckbox.component.d.ts +3 -0
- package/lib/zdatetime/dateIonicFormatParser.pipe.d.ts +10 -0
- package/lib/zdatetime/dateIonicMinMaxDate.pipe.d.ts +7 -0
- package/lib/zdatetime/dateKendoFormatParser.pipe.d.ts +10 -0
- package/lib/zdatetime/dateParser.pipe.d.ts +5 -1
- package/lib/zdatetime/zdatetime.component.d.ts +15 -16
- package/lib/zform/zform.component.d.ts +3 -2
- package/lib/zgrid/container/zgrid-container.component.d.ts +28 -0
- package/lib/zgrid/date-range-cell-filter.component.d.ts +5 -1
- package/lib/zgrid/zgrid.binding.directive.d.ts +3 -0
- package/lib/zgrid/zgrid.component.d.ts +45 -23
- package/lib/zinput-container/zinput-container.component.d.ts +13 -7
- package/lib/zinput-container/zinput-container.pipe.d.ts +5 -1
- package/lib/zmfb/zmfb.component.d.ts +0 -1
- package/lib/znumeric/znumeric.component.d.ts +8 -1
- package/lib/znumeric/znumeric.component.pipe.d.ts +10 -0
- package/lib/zpostselectinput/zpostselectinput.component.d.ts +3 -0
- package/lib/zquerybuilder/zquerybuilder.component.d.ts +1 -0
- package/lib/zselectmultiple/zselectmultiple.component.d.ts +8 -5
- package/lib/zselectmultiple/zselectmultiple.pipe.d.ts +11 -0
- package/lib/ztab/ztab.component.d.ts +7 -2
- package/lib/ztext/ztext.component.d.ts +3 -0
- package/lib/ztextarea/ztextarea.component.d.ts +3 -0
- package/lib/ztexteditor/ztexteditor.component.d.ts +14 -22
- package/lib/ztree/ztree.component.d.ts +15 -4
- package/lib/ztreelist/ztreelist.component.d.ts +7 -2
- package/lib/zudf/zudf.component.d.ts +183 -15
- package/lib/zworkflowbuttons/zworkflowbuttons.component.d.ts +6 -2
- package/package.json +1 -1
- package/public-api.d.ts +9 -0
package/README.md
CHANGED
|
@@ -3,7 +3,319 @@
|
|
|
3
3
|
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.2.13.
|
|
4
4
|
|
|
5
5
|
## Changelog
|
|
6
|
+
`2.81beta`<br/>
|
|
7
|
+
[ztree] - Enhanced component property to get value from group.<br/>
|
|
8
|
+
[zudf] - added hide button for multivalue group. <br/>
|
|
9
|
+
|
|
10
|
+
`2.80beta`<br/>
|
|
11
|
+
[texteditor] - Fix JS errors due to kendo lib. #2083<br/>
|
|
12
|
+
[inputfields] - Implement focus() methods on input fields<br/>
|
|
13
|
+
[mainservice] - minor bug fix on patchUpdatedzModel() after create/update model<br/>
|
|
14
|
+
|
|
15
|
+
`2.79beta`<br/>
|
|
16
|
+
[ztexteditor] - Fix bug where image upload not working if there are multiple editor on the same page.<br/>
|
|
17
|
+
[mainservice] - enhance and fix route issue.<br/>
|
|
18
|
+
[zudf] - minor enhancement and bug fix.
|
|
19
|
+
|
|
20
|
+
`2.78beta`<br/>
|
|
21
|
+
[zchart] - Enhanced component with extra events handling.<br/>
|
|
22
|
+
|
|
23
|
+
`2.77beta`<br/>
|
|
24
|
+
[debugger] - handle extra watch list item.<br/>
|
|
25
|
+
[zudf] - add zudf zmodel to the console watch list dropdown.<br/>
|
|
26
|
+
[zudf] - added clearZModel function and also trigger clearZModel when render field element.<br/>
|
|
27
|
+
[zudf] - reset validator for component after added data to grid for multivaluegroup.<br/>
|
|
28
|
+
[inputfieldbase] - zudf field handle nested cascading dropdown and also auto select for required field.
|
|
29
|
+
|
|
30
|
+
`2.76beta`<br/>
|
|
31
|
+
[zudf] - remove underscore for zudf scope prefix.
|
|
32
|
+
|
|
33
|
+
`2.75beta`<br/>
|
|
34
|
+
[zudf] - minor enhancement and fixes.
|
|
35
|
+
|
|
36
|
+
`2.74beta`<br/>
|
|
37
|
+
[zudf] - minor fix.
|
|
38
|
+
|
|
39
|
+
`2.73beta`<br/>
|
|
40
|
+
[zgrid] - fix removeHandler not updating grid.<br/>
|
|
41
|
+
[zudf] - enhancement + cleanup the code.<br/>
|
|
42
|
+
[zworkflowbutton] - added form checking for GOTO button. require to add in attribute in field element to active. attribute to add: SkipCheckFormDirty, UseDefaultValidate.
|
|
43
|
+
|
|
44
|
+
`2.72beta`<br/>
|
|
45
|
+
[zudf] - component enhancement for userlist dropdown feature.<br/>
|
|
46
|
+
[inputfieldbase] - tidy the code for handlign zudf.
|
|
47
|
+
|
|
48
|
+
`2.71beta`<br/>
|
|
49
|
+
[ztreelist] - Allow set default expand/collapse programtically.<br/>
|
|
50
|
+
[zudf] - enhancement for component.<br/>
|
|
51
|
+
[zselectmultiple] - added setSelectOption function.<br/>
|
|
52
|
+
[inputfieldbase] - enhanced handling for zudf field on change.
|
|
53
|
+
|
|
54
|
+
`2.70beta`<br/>
|
|
55
|
+
[ztreelist] - Minor enhancement on styling, fix typo.
|
|
56
|
+
|
|
57
|
+
`2.69beta`<br/>
|
|
58
|
+
[ztreelist] - Allow selected nodes expand/collapse by default.<br/>
|
|
59
|
+
[ztreelist] - Support html format in cell content.
|
|
60
|
+
|
|
61
|
+
`2.68beta`<br/>
|
|
62
|
+
[zudf] - enhancement for component.
|
|
63
|
+
|
|
64
|
+
`2.67beta`<br/>
|
|
65
|
+
[zudf] - enhancement for component.
|
|
66
|
+
|
|
67
|
+
`2.66beta`<br/>
|
|
68
|
+
[zudf] - enhance setFormFieldzModel method to include handling of container fields. <br/>
|
|
69
|
+
|
|
70
|
+
`2.65beta`<br/>
|
|
71
|
+
[zudf error handler] - fix error handling. <br/>
|
|
72
|
+
[inputfieldbase] - rename variable.<br/>
|
|
73
|
+
[zudf] - added getValidatedFormZModel function.
|
|
74
|
+
|
|
75
|
+
`2.64beta`<br/>
|
|
76
|
+
[zgrid] - change gridCustomResetCommand icon. <br/>
|
|
77
|
+
[zudf] - enhance ui display.<br/>
|
|
78
|
+
[zudf] - fix field not removed from preview create new form.<br/>
|
|
79
|
+
[inputfieldbase zudf] - add more param for triggerValidation when trigger to pass back.
|
|
80
|
+
|
|
81
|
+
`2.63beta`<br/>
|
|
82
|
+
[zudf] - enhancement for ChildFields feature which will be auto populate value related base on configuration. <br/>
|
|
83
|
+
[inputfieldbase zudf] - enhancement to support event triggering by async when onchange.
|
|
84
|
+
|
|
85
|
+
`2.62beta`<br/>
|
|
86
|
+
[zbuttons] - Allow binding group.xxx to button label and use setLabelText() to update at runtime.<br/>
|
|
87
|
+
[zbuttons] - Fix buttons click-event in mobile mode.<br/>
|
|
88
|
+
[uiactionbutton] - Revamp component to use component base class. <br/>
|
|
89
|
+
[zudf] - enhancement for grouping feature. <br/>
|
|
90
|
+
[zgrid] - support EnableCustomAddCommand and EnableCustomResetCommand EnableCustomRemoveCommand button and standard event.
|
|
91
|
+
|
|
92
|
+
`2.61beta`<br/>
|
|
93
|
+
[zudf] - enhancement for zudf to support function setModelValue.<br/>
|
|
94
|
+
|
|
95
|
+
`2.60beta`<br/>
|
|
96
|
+
[zudf] - enhancement for zudf.<br/>
|
|
97
|
+
|
|
98
|
+
`2.59beta`<br/>
|
|
99
|
+
[zudf] - restructure whole component to cater for container type.
|
|
100
|
+
|
|
101
|
+
`2.58beta`<br/>
|
|
102
|
+
[ztree] - Fix ztree filter and add/remove not working bug.
|
|
103
|
+
|
|
104
|
+
`2.57beta`<br/>
|
|
105
|
+
[zdatetime] - changed datetime popup style to classic.<br/>
|
|
106
|
+
[ztab] - save selected tab to session and restore back when restoreselectedtab.
|
|
107
|
+
|
|
108
|
+
`2.56beta`<br/>
|
|
109
|
+
[ztexteditor] add custom image upload function. (ToolBarUploadImageMethod: 'default' | 'explorer')<br/>
|
|
110
|
+
[ztree] Enhancement for node selection. Refer to #1977 for detail.<br/>
|
|
111
|
+
[zselect] Fix bug on lazy loading functions not triggered upon searching.
|
|
112
|
+
|
|
113
|
+
`2.55beta`<br/>
|
|
114
|
+
[zudf] - enhancement for zudf, now will have basic validation; zudf group scope zmodel auto update.
|
|
115
|
+
|
|
116
|
+
`2.54beta`<br/>
|
|
117
|
+
[zdatetime] - fix datetime convert wrongly in different region/locale issue.
|
|
118
|
+
|
|
119
|
+
`2.53beta`<br/>
|
|
120
|
+
[ztexteditor] - fix copy/paste and duplicate newline bug.<br/>
|
|
121
|
+
|
|
122
|
+
`2.52beta`<br/>
|
|
123
|
+
[zudf] - component enhancement.<br/>
|
|
124
|
+
[main service] - fix if deletemodel fail, not to navigate back.<br/>
|
|
125
|
+
|
|
126
|
+
`2.51beta`<br/>
|
|
127
|
+
[zudf] - enhancement to allow set zmodel to zudf.<br/>
|
|
128
|
+
|
|
129
|
+
`2.50beta`<br/>
|
|
130
|
+
[zgrid] - Fix bug for inline edit where form data not includes usable-but-not-visible column.<br/>
|
|
131
|
+
|
|
132
|
+
`2.49beta`<br/>
|
|
133
|
+
[zuicontainer] - Fix bottom y-scrollbar got cut off issue.<br/>
|
|
134
|
+
|
|
135
|
+
`2.48beta`<br/>
|
|
136
|
+
[zdate] - Added feature to get/set datetime by ignoring user's browser timezone (IsIgnoreTimeZone).<br/>
|
|
137
|
+
|
|
138
|
+
`2.47beta`<br/>
|
|
139
|
+
[zguage] - rollback some code used in v1 for crm.<br/>
|
|
140
|
+
[zcard] - added setData used in v1.<br/>
|
|
141
|
+
[zgrid] - added handling SkipLoadResourceURLData. if true, will not load resourceURL data when grid loaded.
|
|
142
|
+
|
|
143
|
+
`2.46beta`<br/>
|
|
144
|
+
re-publish
|
|
145
|
+
|
|
146
|
+
`2.45beta`<br/>
|
|
147
|
+
[zdate] - fix date picker time not updated if switch to another time zone.<br/>
|
|
148
|
+
[zgrid] - fix popover not showing bug.<br/>
|
|
149
|
+
[zworkflowbutton] - update for customheader.
|
|
150
|
+
|
|
151
|
+
`2.44beta`<br/>
|
|
152
|
+
[zinput] - fix style alignemnt bug on non-edit-mode.<br/>
|
|
153
|
+
|
|
154
|
+
`2.43beta`<br/>
|
|
155
|
+
[zinput] - fix zinput container pipe bug.<br/>
|
|
156
|
+
|
|
157
|
+
`2.42beta`<br/>
|
|
158
|
+
[ztree] - update handleFilter.<br/>
|
|
159
|
+
[ztree] - added clearFilter.<br/>
|
|
160
|
+
[mainservice] - fix page keep loading if formHeader not set by the project.<br/>
|
|
161
|
+
[uipage] - set page action default as new if currentparam did not indicate is new or edit.
|
|
162
|
+
[zgrid] - fix grid inline issue: not working on setColumns function.<br/>
|
|
163
|
+
[zinput-container] - build function to set AddOns.<br/>
|
|
164
|
+
[ztexteditor] - Added texteditor to zinput container<br/>
|
|
165
|
+
[buttons] - Added DisableTrigger property to enable/disable record processing spinner<br/>
|
|
166
|
+
[zselectmultiple] - Default turn off combobox virtualization to fix bug on fixed drop-down-item's height<br/>
|
|
167
|
+
[addon] - Fix icon onclick event, enhance button list style<br/>
|
|
168
|
+
[ztree] - Added Class property for custom class styling<br/>
|
|
169
|
+
|
|
170
|
+
`2.41beta`<br/>
|
|
171
|
+
[zgrid] - added event AfterDataBinded.<br/>
|
|
172
|
+
[zgrid] - added attribute handling for FilterWithoutBracket. by default valuexpression column, will have round bracket prefix for the value filtering.<br/>
|
|
173
|
+
|
|
174
|
+
`2.40beta`<br/>
|
|
175
|
+
[zdatetime] - fix bug: Unable to delete datetime value.<br/>
|
|
176
|
+
[ztree] - enhance to allow pre-set original value setting in the group.orignalvalue.<br/>
|
|
177
|
+
|
|
178
|
+
`2.39beta`<br/>
|
|
179
|
+
[zgrid] - fix bug on inline edit where initial data is empty, and later on set data using local data source.<br/>
|
|
180
|
+
|
|
181
|
+
`2.38beta`<br/>
|
|
182
|
+
[ztexteditor] - fix toolbar format error.<br/>
|
|
183
|
+
|
|
184
|
+
`2.37beta`<br/>
|
|
185
|
+
[zcard] - enhance styling and animation.<br/>
|
|
186
|
+
enhance component style to support latest kendo component version (update on k-state class).<br/>
|
|
187
|
+
[zlabel] - fix bug: Visible group binding value not working if initial value is false.<br/>
|
|
188
|
+
[button] - enhance styling and allow icon-only.<br/>
|
|
189
|
+
[div] Support setting input component layout at container level.<br/>
|
|
190
|
+
|
|
191
|
+
`2.36beta`<br/>
|
|
192
|
+
[buttons] - minor styling.<br/>
|
|
193
|
+
[mainservice] - handle skipUpdateUsingFormValue, skipCreateUsingFormValue if true when Create/Update Model, skip using form value and use zmodel instead.<br/>
|
|
194
|
+
|
|
195
|
+
`2.35beta`<br/>
|
|
196
|
+
[mainservice] - handle disableSuccessUpdateMsg, disableSuccessCreateMsg, disableSuccessDeleteMsg if true when Create/Update/Delete Model.<br/>
|
|
197
|
+
[znumeric] - will mark control as touched for validation if setMinValue or setMaxValue.<br/>
|
|
198
|
+
|
|
199
|
+
`2.34beta`<br/>
|
|
200
|
+
[mainservice] - mark form as dirty upon clone new.<br/>
|
|
201
|
+
[datetime] - added min and max date range feature.<br/>
|
|
202
|
+
[datetime] - fix bug: Cancel button fail to reset value.<br/>
|
|
203
|
+
[input-field-addons] - Allow binding value to group.<br/>
|
|
204
|
+
[zdate] - Added step value feature.<br/>
|
|
205
|
+
[znumeric] - Added setMinValue and setMaxValue method.<br/>
|
|
206
|
+
|
|
207
|
+
`2.33beta`<br/>
|
|
208
|
+
[input-field-addons] - Translate tooltip and addons for input components.<br/>
|
|
209
|
+
[mainservice] - default isCloneNew to false when create/update model.<br/>
|
|
210
|
+
|
|
211
|
+
`2.32beta`<br/>
|
|
212
|
+
[mainservice] - newmodel for formfield to reset form and clear zmodel.<br/>
|
|
213
|
+
[uicontent] - remove currentRouteParam when clicked.
|
|
214
|
+
|
|
215
|
+
`2.31beta`<br/>
|
|
216
|
+
[mainservice] - show alert when update model for form which is not dirty.<br/>
|
|
217
|
+
[zgrid] - Fix tooltip contains irrelevant characters.<br/>
|
|
218
|
+
Added spinner when processing record after clicking button.<br/>
|
|
219
|
+
[zform] - fix afterFormInit not triggered.
|
|
220
|
+
|
|
221
|
+
`2.30beta`<br/>
|
|
222
|
+
[zinput-container] - Enhance alignment for input field.<br/>
|
|
223
|
+
[ztab] - Fix disabled tab not hidden bug (after upgraded kendo lib).<br/>
|
|
224
|
+
[mainservice] - fix clonenew scope issue.
|
|
225
|
+
|
|
226
|
+
`2.29beta`<br/>
|
|
227
|
+
[zinput-container] - Enable input field's label to bind to group's value<br/>
|
|
228
|
+
[kcard] - Fix Edit Mode not working on 2nd visit.<br/>
|
|
229
|
+
[zselectmultiple] - fix selectmultipletree to use Value instead of items for child property name.<br/>
|
|
230
|
+
[workflowbutton] - changed load buttont o public. on button click, pass button info over to the function.<br/>
|
|
231
|
+
[mainservice] - clonenew to reload workflow button if pressed. Added afterCloneNewModel event.
|
|
232
|
+
|
|
233
|
+
`2.28beta`<br/>
|
|
234
|
+
[mainservice] - updatemodel to set not dirty after update success.
|
|
235
|
+
|
|
236
|
+
`2.27beta`<br/>
|
|
237
|
+
[mainservice] - minor fix on routing.<br/>
|
|
238
|
+
[zdate] - fix onchange event not updating form's value for inline grid edit.<br/>
|
|
239
|
+
[zgrid] - Enhanced grid loading when setData for inline edit fields.<br/>
|
|
240
|
+
[ztab] - Added translation for Tab Items.<br/>
|
|
241
|
+
|
|
242
|
+
`2.26beta`<br/>
|
|
243
|
+
[zgrid] - fixed inline edit with record Id = 0.<br/>
|
|
244
|
+
|
|
245
|
+
`2.25beta`<br/>
|
|
246
|
+
[workflowbutton] - enable button translation.<br/>
|
|
247
|
+
[mainservice] - fix backnavigation minor bug.<br/>
|
|
248
|
+
[zudf] - fix zudf for formbuilder.<br/>
|
|
249
|
+
[module] - include notificationservice.
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
`2.24beta`<br/>
|
|
253
|
+
[datetime picker] - bug fix, default 12hr format.<br/>
|
|
254
|
+
[zudf] - minor update on appendformcontrol.
|
|
255
|
+
|
|
256
|
+
`2.23beta`<br/>
|
|
257
|
+
[mainservice] - clear clonenewmodel cache when backnavigation.<br/>
|
|
258
|
+
[mainservice] - clonenew to set form value first before pass to model.<br/>
|
|
259
|
+
[zgrid] - minor fix for zgrid refresh when navigated.<br/>
|
|
260
|
+
|
|
261
|
+
`2.22beta`<br/>
|
|
262
|
+
[mainservice] - added handling isCloseAfterUpdate and handling isCloseAfterCreate feature.<br/>
|
|
263
|
+
|
|
264
|
+
`2.21beta`<br/>
|
|
265
|
+
[zdatetime] - Enhanced datetime formatting.<br/>
|
|
266
|
+
Updated library target build to ES2021.<br/>
|
|
267
|
+
[zgrid] - Fix export button for zgrid.<br/>
|
|
268
|
+
|
|
269
|
+
`2.20beta`<br/>
|
|
270
|
+
[zgrid] - Clear inline form data upon grid data refresh.<br/>
|
|
271
|
+
[zgrid] - Fix setData not working on datetime input field.<br/>
|
|
272
|
+
[zgrid] - Added auto refresh when backNavigation is triggered.<br/>
|
|
273
|
+
[mainservice] - Fix CloneNew logic.<br/>
|
|
274
|
+
[mainservice] - Added isCloseAfterSuccess handling.
|
|
275
|
+
|
|
276
|
+
`2.19beta`<br/>
|
|
277
|
+
re-compile lib for release. fix grid not showing data.<br/>
|
|
278
|
+
update routeParam value passed from home and menu page.
|
|
279
|
+
|
|
280
|
+
`2.18beta`<br/>
|
|
281
|
+
[zgrid] - Enhanced zgrid component styling with drawer. (ComponentStyleType: style1 = normal, style2 = Drawer, style3 = DEC)<br/>
|
|
282
|
+
[zgrid] - minor fix on date filtering column if using local data source<br/>
|
|
283
|
+
[ztreelist] - Fix bug where treelist is not shown if no records.<br/>
|
|
284
|
+
[zinput-container] - include component type = ztime<br/>
|
|
285
|
+
[znumeric] - to handle max decimal place.<br/>
|
|
286
|
+
[znumbeic] - fix wrong error message.
|
|
287
|
+
|
|
288
|
+
`2.17beta`<br/>
|
|
289
|
+
[querybuilder] - enhance for filtering the value option.
|
|
290
|
+
|
|
291
|
+
`2.16beta`<br/>
|
|
292
|
+
[backnavigation] - fix close button for previousRouteParam.
|
|
293
|
+
|
|
294
|
+
`2.15beta`<br/>
|
|
295
|
+
[zgrid] - Added condition check for setData.<br/>
|
|
296
|
+
[backnavigation] - Added null checking for previousRouteParam.
|
|
6
297
|
|
|
298
|
+
`2.14beta`<br/>
|
|
299
|
+
[zgrid] - Enhanced zGrid cell wrap styling. Default is nowrap.<br/>
|
|
300
|
+
[zgrid] - Fix isUseLocalData to base on DataSource instead of ResourceUrl.
|
|
301
|
+
|
|
302
|
+
`2.13beta`<br/>
|
|
303
|
+
[zgrid] - Fixed zGrid filtering, pagination and sorting issue, if the grid is bind to local data. <br/>
|
|
304
|
+
[zgrid] - Updated local data binding appraoch to use kendo grid directive. <br/>
|
|
305
|
+
[backnavigation] - enhance and fix back navigation route param.
|
|
306
|
+
|
|
307
|
+
`1.3.16`<br/>
|
|
308
|
+
[zbulletin] - enhance uibulletin to trigger first time base on setting from environment bulletinUrl.<br/>
|
|
309
|
+
|
|
310
|
+
`1.3.15`<br/>
|
|
311
|
+
[zbulletin] - added uibulletin for header notification.<br/>
|
|
312
|
+
[signalr] - added service for signalR.<br/>
|
|
313
|
+
[form] - added afterFormInit event to be called after component loaded.<br/>
|
|
314
|
+
[main service] - added backnavigate to replaceurl true.<br/>
|
|
315
|
+
|
|
316
|
+
`1.3.14`<br/>
|
|
317
|
+
[ztexteditor] - full text editor type will now have more tools. existing texteditor should default to basic type.
|
|
318
|
+
|
|
7
319
|
`1.3.13`<br/>
|
|
8
320
|
[telerik report] - change search report default as false.
|
|
9
321
|
[telerik report] - comment out viewer auto resize. seem causing error in angular 13.
|
|
@@ -24,21 +24,22 @@ export class ButtonFieldBase extends FieldBase {
|
|
|
24
24
|
return v;
|
|
25
25
|
}
|
|
26
26
|
getButtonLabel(button) {
|
|
27
|
+
let labelResult = button.Label || '';
|
|
28
|
+
let labelExpr = labelResult.match(/^{{.*}}$/gi);
|
|
29
|
+
if (labelExpr) {
|
|
30
|
+
labelExpr = labelExpr[0].slice(2, -2);
|
|
31
|
+
labelResult = ZComponentHelper.getGroupValue(labelExpr, this.group);
|
|
32
|
+
}
|
|
27
33
|
if (button.Attributes) {
|
|
28
34
|
const attributes = JSON.parse(button.Attributes);
|
|
29
35
|
if (attributes.Label) {
|
|
30
|
-
|
|
36
|
+
labelResult = attributes.Label;
|
|
31
37
|
}
|
|
32
38
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
labelExpr = labelExpr[0].slice(2, -2);
|
|
36
|
-
const label = ZComponentHelper.getGroupValue(labelExpr, this.group);
|
|
37
|
-
return label;
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
return button.Label;
|
|
39
|
+
if (labelResult.startsWith('group.')) {
|
|
40
|
+
labelResult = ZComponentHelper.getGroupValue(labelResult, this.group);
|
|
41
41
|
}
|
|
42
|
+
return labelResult;
|
|
42
43
|
}
|
|
43
44
|
buttonClick(button) {
|
|
44
45
|
this.group.subject.next({
|
|
@@ -50,13 +51,19 @@ export class ButtonFieldBase extends FieldBase {
|
|
|
50
51
|
translateButtonsLabel(items) {
|
|
51
52
|
return this.compService.translateButtonComponent(items, this.group);
|
|
52
53
|
}
|
|
54
|
+
setLabelText(newText, name) {
|
|
55
|
+
const btn = this.items.find(x => x.name === name);
|
|
56
|
+
if (btn) {
|
|
57
|
+
btn.text = newText;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
53
60
|
}
|
|
54
|
-
ButtonFieldBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
55
|
-
ButtonFieldBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
61
|
+
ButtonFieldBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ButtonFieldBase, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
62
|
+
ButtonFieldBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ButtonFieldBase, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true });
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ButtonFieldBase, decorators: [{
|
|
57
64
|
type: Component,
|
|
58
65
|
args: [{
|
|
59
66
|
template: ``,
|
|
60
67
|
}]
|
|
61
68
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uZmllbGRiYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uZmllbGRiYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQXlCLE1BQU0saUJBQWlCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFRbEQsd0NBQXdDO0FBQ3hDLE1BQU0sT0FBTyxlQUFnQixTQUFRLFNBQVM7SUFNNUMsWUFBWSxXQUE4QjtRQUN4QyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFOckIsYUFBUSxHQUFlLEVBQUUsQ0FBQztRQUMxQixjQUFTLEdBQWUsRUFBRSxDQUFDO1FBQzNCLFVBQUssR0FBZSxFQUFFLENBQUM7UUFDdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztJQUlsQixDQUFDO0lBRU0sYUFBYTtRQUNsQixPQUFPLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sWUFBWSxDQUFDLFNBQVM7UUFDM0IsSUFBSSxTQUFTLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUFXO1FBQy9CLElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBRXJDLElBQUksU0FBUyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEQsSUFBSSxTQUFTLEVBQUU7WUFDYixTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckU7UUFFRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUU7WUFDckIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDakQsSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFO2dCQUNwQixXQUFXLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQzthQUNoQztTQUNGO1FBRUQsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3BDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2RTtRQUVELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFTSxXQUFXLENBQUMsTUFBVztRQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDdEIsSUFBSSxFQUFFLGFBQWE7WUFDbkIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxVQUFVO1lBQ3pCLElBQUksRUFBRSxJQUFJO1NBQ2MsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxLQUFpQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sWUFBWSxDQUFDLE9BQWUsRUFBRSxJQUFhO1FBQ2hELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNsRCxJQUFJLEdBQUcsRUFBRTtZQUNQLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQzs7NkdBOURVLGVBQWU7aUdBQWYsZUFBZSwyRUFKaEIsRUFBRTs0RkFJRCxlQUFlO2tCQUwzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO2lCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBaQ29tcG9uZW50SGVscGVyLCBaQ29tcG9uZW50T3V0cHV0RXZlbnQgfSBmcm9tIFwibW1oZ2xvYmFsLXpjb3JlXCI7XHJcbmltcG9ydCB7IEZpZWxkQmFzZSB9IGZyb20gXCIuL2ZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6IGBgLFxyXG59KVxyXG5cclxuLy8gRm9yOiB6YnV0dG9ucywgem1mYiwgendvcmtmbG93YnV0dG9uc1xyXG5leHBvcnQgY2xhc3MgQnV0dG9uRmllbGRCYXNlIGV4dGVuZHMgRmllbGRCYXNlIHtcclxuICBsZWZ0QnRuczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIHJpZ2h0QnRuczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIGl0ZW1zOiBBcnJheTxhbnk+ID0gW107XHJcbiAgRmlyc3RaYnRuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbXBTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSkge1xyXG4gICAgc3VwZXIoY29tcFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRDb21wb25lbnQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBzdXBlci5pbml0Q29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNCdG5WaXNpYmxlKGZpZWxkRXhwcikge1xyXG4gICAgaWYgKGZpZWxkRXhwciAhPT0gZmFsc2UgJiYgIWZpZWxkRXhwcikge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGNvbnN0IHYgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGRFeHByKTtcclxuICAgIHJldHVybiB2O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEJ1dHRvbkxhYmVsKGJ1dHRvbjogYW55KSB7XHJcbiAgICBsZXQgbGFiZWxSZXN1bHQgPSBidXR0b24uTGFiZWwgfHwgJyc7XHJcblxyXG4gICAgbGV0IGxhYmVsRXhwciA9IGxhYmVsUmVzdWx0Lm1hdGNoKC9ee3suKn19JC9naSk7XHJcbiAgICBpZiAobGFiZWxFeHByKSB7XHJcbiAgICAgIGxhYmVsRXhwciA9IGxhYmVsRXhwclswXS5zbGljZSgyLCAtMik7XHJcbiAgICAgIGxhYmVsUmVzdWx0ID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cFZhbHVlKGxhYmVsRXhwciwgdGhpcy5ncm91cCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJ1dHRvbi5BdHRyaWJ1dGVzKSB7XHJcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBKU09OLnBhcnNlKGJ1dHRvbi5BdHRyaWJ1dGVzKTtcclxuICAgICAgaWYgKGF0dHJpYnV0ZXMuTGFiZWwpIHtcclxuICAgICAgICBsYWJlbFJlc3VsdCA9IGF0dHJpYnV0ZXMuTGFiZWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAobGFiZWxSZXN1bHQuc3RhcnRzV2l0aCgnZ3JvdXAuJykpIHtcclxuICAgICAgbGFiZWxSZXN1bHQgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwVmFsdWUobGFiZWxSZXN1bHQsIHRoaXMuZ3JvdXApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBsYWJlbFJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBidXR0b25DbGljayhidXR0b246IGFueSkge1xyXG4gICAgdGhpcy5ncm91cC5zdWJqZWN0Lm5leHQoe1xyXG4gICAgICB0eXBlOiBcImJ1dHRvbkNsaWNrXCIsXHJcbiAgICAgIHRhcmdldDogYnV0dG9uLkNsaWNrRXZlbnQsXHJcbiAgICAgIGRhdGE6IG51bGxcclxuICAgIH0gYXMgWkNvbXBvbmVudE91dHB1dEV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2xhdGVCdXR0b25zTGFiZWwoaXRlbXM6IEFycmF5PGFueT4pOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcFNlcnZpY2UudHJhbnNsYXRlQnV0dG9uQ29tcG9uZW50KGl0ZW1zLCB0aGlzLmdyb3VwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRMYWJlbFRleHQobmV3VGV4dDogc3RyaW5nLCBuYW1lPzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBidG4gPSB0aGlzLml0ZW1zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IG5hbWUpO1xyXG4gICAgaWYgKGJ0bikge1xyXG4gICAgICBidG4udGV4dCA9IG5ld1RleHQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -22,7 +22,7 @@ export class ContainerFieldBase extends FieldBase {
|
|
|
22
22
|
return super.initComponent();
|
|
23
23
|
}
|
|
24
24
|
translateToolBarItems() {
|
|
25
|
-
return this.compService.translateToolBarItems(this.toolbarItemList);
|
|
25
|
+
return this.compService.translateToolBarItems(this.toolbarItemList, this.group);
|
|
26
26
|
}
|
|
27
27
|
getToolBarItemLabelName(name) {
|
|
28
28
|
return this.toolbarItemList.find(t => t.name === name)?.text || name;
|
|
@@ -31,12 +31,12 @@ export class ContainerFieldBase extends FieldBase {
|
|
|
31
31
|
return `${data.DivClass} ${data.Class}`;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
ContainerFieldBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
35
|
-
ContainerFieldBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
34
|
+
ContainerFieldBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ContainerFieldBase, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
ContainerFieldBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ContainerFieldBase, selector: "ng-component", usesInheritance: true, ngImport: i0, template: ``, isInline: true });
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ContainerFieldBase, decorators: [{
|
|
37
37
|
type: Component,
|
|
38
38
|
args: [{
|
|
39
39
|
template: ``,
|
|
40
40
|
}]
|
|
41
41
|
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyZmllbGRiYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL2NvbXBvbmVudHMvY29udGFpbmVyZmllbGRiYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQVUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQVFsRCxnQ0FBZ0M7QUFDaEMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFNBQVM7SUFPL0MsWUFBWSxXQUE4QjtRQUN4QyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFQZCxvQkFBZSxHQUFHO1lBQ3ZCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQzlCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQzlCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1NBQ25DLENBQUM7SUFJRixDQUFDO0lBRUQsNkJBQTZCO0lBQ3RCLGtCQUFrQixDQUFDLEtBQWE7UUFDckMsT0FBTyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTSxhQUFhO1FBQ2xCLE9BQU8sS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxJQUFZO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUM7SUFDdkUsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFTLEVBQUUsSUFBWTtRQUNyQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUMsQ0FBQzs7Z0hBOUJVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLDJFQUpuQixFQUFFOzRGQUlELGtCQUFrQjtrQkFMOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgWkZpZWxkLCBaQ29tcG9uZW50SGVscGVyIH0gZnJvbSBcIm1taGdsb2JhbC16Y29yZVwiO1xyXG5pbXBvcnQgeyBGaWVsZEJhc2UgfSBmcm9tIFwiLi9maWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBgYCxcclxufSlcclxuXHJcbi8vIEZvcjogemNhcmQsIHpkaXYsIHp0YWIsIGtjYXJkXHJcbmV4cG9ydCBjbGFzcyBDb250YWluZXJGaWVsZEJhc2UgZXh0ZW5kcyBGaWVsZEJhc2Uge1xyXG4gIHB1YmxpYyB0b29sYmFySXRlbUxpc3QgPSBbXHJcbiAgICB7IG5hbWU6IFwiRWRpdFwiLCB0ZXh0OiBcIkVkaXRcIiB9LFxyXG4gICAgeyBuYW1lOiBcIlNhdmVcIiwgdGV4dDogXCJTYXZlXCIgfSxcclxuICAgIHsgbmFtZTogXCJDYW5jZWxcIiwgdGV4dDogXCJDYW5jZWxcIiB9LFxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbXBTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSkge1xyXG4gICAgc3VwZXIoY29tcFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgLy8gZ2V0IGZyb20genRhYiwgemNhcmQsIHpkaXZcclxuICBwdWJsaWMgQ29tcG9uZW50SXNWaXNpYmxlKGZpZWxkOiBaRmllbGQpOiBhbnkge1xyXG4gICAgcmV0dXJuIFpDb21wb25lbnRIZWxwZXIuQ29tcG9uZW50SXNWaXNpYmxlKGZpZWxkLCB0aGlzLmdyb3VwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0Q29tcG9uZW50KCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gc3VwZXIuaW5pdENvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYW5zbGF0ZVRvb2xCYXJJdGVtcygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcFNlcnZpY2UudHJhbnNsYXRlVG9vbEJhckl0ZW1zKHRoaXMudG9vbGJhckl0ZW1MaXN0LCB0aGlzLmdyb3VwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUb29sQmFySXRlbUxhYmVsTmFtZShuYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnRvb2xiYXJJdGVtTGlzdC5maW5kKHQgPT4gdC5uYW1lID09PSBuYW1lKT8udGV4dCB8fCBuYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENsYXNzKGZvcm06IGFueSwgZGF0YTogWkZpZWxkKSB7XHJcbiAgICByZXR1cm4gYCR7ZGF0YS5EaXZDbGFzc30gJHtkYXRhLkNsYXNzfWA7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/********** Angular **********/
|
|
2
|
-
import { Component, ViewChild } from "@angular/core";
|
|
2
|
+
import { Component, EventEmitter, Output, ViewChild } from "@angular/core";
|
|
3
3
|
import { FieldBase } from "./fieldbase.component";
|
|
4
4
|
import { ZComponentHelper } from "mmhglobal-zcore";
|
|
5
|
+
import { isObservable, map, of } from "rxjs";
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "../services/zcomponent.service";
|
|
7
8
|
// For: zgrid, ztree, ztreelist
|
|
8
9
|
export class DataListingFieldBase extends FieldBase {
|
|
9
10
|
constructor(compService) {
|
|
10
11
|
super(compService);
|
|
12
|
+
this.showFormPage = new EventEmitter();
|
|
11
13
|
this.popoverData = [];
|
|
12
14
|
this.toolbarItemList = [
|
|
13
15
|
{ name: "Search", text: "Search" },
|
|
@@ -21,13 +23,13 @@ export class DataListingFieldBase extends FieldBase {
|
|
|
21
23
|
return super.initComponent();
|
|
22
24
|
}
|
|
23
25
|
getGridColumnStyle() {
|
|
24
|
-
return this.componentProperties.style.style3 ? this.compService.convertStyleStringToObject(this.componentProperties.style.style3) : {
|
|
26
|
+
return this.componentProperties.style.style3 ? this.compService.convertStyleStringToObject(this.componentProperties.style.style3) : {};
|
|
25
27
|
}
|
|
26
28
|
getGridHeaderStyle() {
|
|
27
|
-
return this.componentProperties.style.style4 ? this.compService.convertStyleStringToObject(this.componentProperties.style.style4) : {
|
|
29
|
+
return this.componentProperties.style.style4 ? this.compService.convertStyleStringToObject(this.componentProperties.style.style4) : {};
|
|
28
30
|
}
|
|
29
31
|
getGridFooterStyle() {
|
|
30
|
-
return this.componentProperties.style.style9 ? this.compService.convertStyleStringToObject(this.componentProperties.style.style9) : {
|
|
32
|
+
return this.componentProperties.style.style9 ? this.compService.convertStyleStringToObject(this.componentProperties.style.style9) : {};
|
|
31
33
|
}
|
|
32
34
|
getCellStyle(columnField, dataItem) {
|
|
33
35
|
const style = columnField[`Style10`];
|
|
@@ -42,7 +44,7 @@ export class DataListingFieldBase extends FieldBase {
|
|
|
42
44
|
return style;
|
|
43
45
|
}
|
|
44
46
|
translateToolBarItems() {
|
|
45
|
-
return this.compService.translateToolBarItems(this.toolbarItemList);
|
|
47
|
+
return this.compService.translateToolBarItems(this.toolbarItemList, this.group);
|
|
46
48
|
}
|
|
47
49
|
getToolBarItemLabelName(name) {
|
|
48
50
|
return this.toolbarItemList.find(t => t.name === name)?.text || name;
|
|
@@ -91,9 +93,11 @@ export class DataListingFieldBase extends FieldBase {
|
|
|
91
93
|
getPopOverContentByCol(columns, data) {
|
|
92
94
|
const popOverContent = [];
|
|
93
95
|
for (const col of columns) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
96
|
+
this.getPopOverContent(col, data).subscribe(content => {
|
|
97
|
+
popOverContent.push({
|
|
98
|
+
columnName: col.field,
|
|
99
|
+
content: content
|
|
100
|
+
});
|
|
97
101
|
});
|
|
98
102
|
}
|
|
99
103
|
return popOverContent;
|
|
@@ -113,7 +117,15 @@ export class DataListingFieldBase extends FieldBase {
|
|
|
113
117
|
if (typeof func === 'function') {
|
|
114
118
|
const callFunc = func.bind(this.group.ctrlScope);
|
|
115
119
|
result = callFunc(columnField, dataItem);
|
|
120
|
+
if (isObservable(result)) {
|
|
121
|
+
return result.pipe(map(data => this.parsePopoverObject(data)));
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
return of(this.parsePopoverObject(result));
|
|
125
|
+
}
|
|
116
126
|
}
|
|
127
|
+
}
|
|
128
|
+
parsePopoverObject(result) {
|
|
117
129
|
if (typeof result === "object") {
|
|
118
130
|
return JSON.stringify(result);
|
|
119
131
|
}
|
|
@@ -124,15 +136,17 @@ export class DataListingFieldBase extends FieldBase {
|
|
|
124
136
|
}
|
|
125
137
|
}
|
|
126
138
|
}
|
|
127
|
-
DataListingFieldBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.
|
|
128
|
-
DataListingFieldBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.
|
|
129
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.
|
|
139
|
+
DataListingFieldBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DataListingFieldBase, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
140
|
+
DataListingFieldBase.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: DataListingFieldBase, selector: "ng-component", outputs: { showFormPage: "showFormPage" }, viewQueries: [{ propertyName: "popovercontainer", first: true, predicate: ["popovercontainer"], descendants: true }], usesInheritance: true, ngImport: i0, template: ``, isInline: true });
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: DataListingFieldBase, decorators: [{
|
|
130
142
|
type: Component,
|
|
131
143
|
args: [{
|
|
132
144
|
template: ``,
|
|
133
145
|
}]
|
|
134
|
-
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; }, propDecorators: {
|
|
146
|
+
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; }, propDecorators: { showFormPage: [{
|
|
147
|
+
type: Output
|
|
148
|
+
}], popovercontainer: [{
|
|
135
149
|
type: ViewChild,
|
|
136
150
|
args: ["popovercontainer", { static: false }]
|
|
137
151
|
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWxpc3RpbmdmaWVsZGJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvY29tcG9uZW50cy9kYXRhbGlzdGluZ2ZpZWxkYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUTNELCtCQUErQjtBQUMvQixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsU0FBUztJQVdqRCxZQUFZLFdBQThCO1FBQ3hDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQVZYLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLG9CQUFlLEdBQUc7WUFDdkIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDbEMsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUU7WUFDaEQsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ3RELEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3BDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtTQUNyRCxDQUFDO0lBSUYsQ0FBQztJQUVNLGFBQWE7UUFDbEIsT0FBTyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxD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QUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksT0FBTyxJQUFJLEtBQUssVUFBVSxFQUFFO1lBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNqRCxNQUFNLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztTQUMxQztRQUVELElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQzlCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMvQjthQUNJO1lBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUNuQjtnQkFDRSxJQUFJLEVBQUUsTUFBTSxJQUFJLEVBQUU7YUFDbkIsQ0FDRixDQUFDO1NBQ0g7SUFDSCxDQUFDOztrSEE5SVUsb0JBQW9CO3NHQUFwQixvQkFBb0IsaU1BSnJCLEVBQUU7NEZBSUQsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO2lCQUNiO3dHQUkyRCxnQkFBZ0I7c0JBQXpFLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKiogQW5ndWxhciAqKioqKioqKioqL1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZpZWxkQmFzZSB9IGZyb20gXCIuL2ZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRIZWxwZXIsIFpGaWVsZCB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuaW1wb3J0IHsgUG9wb3ZlckNvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci10b29sdGlwXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6IGBgLFxyXG59KVxyXG5cclxuLy8gRm9yOiB6Z3JpZCwgenRyZWUsIHp0cmVlbGlzdFxyXG5leHBvcnQgY2xhc3MgRGF0YUxpc3RpbmdGaWVsZEJhc2UgZXh0ZW5kcyBGaWVsZEJhc2Uge1xyXG4gIEBWaWV3Q2hpbGQoXCJwb3BvdmVyY29udGFpbmVyXCIsIHsgc3RhdGljOiBmYWxzZSB9KSBwcml2YXRlIHBvcG92ZXJjb250YWluZXI6IFBvcG92ZXJDb250YWluZXJEaXJlY3RpdmU7XHJcbiAgcHJvdGVjdGVkIHBvcG92ZXJEYXRhID0gW107XHJcbiAgcHVibGljIHRvb2xiYXJJdGVtTGlzdCA9IFtcclxuICAgIHsgbmFtZTogXCJTZWFyY2hcIiwgdGV4dDogXCJTZWFyY2hcIiB9LFxyXG4gICAgeyBuYW1lOiBcIlNhdmUgU2V0dGluZ3NcIiwgdGV4dDogXCJTYXZlIFNldHRpbmdzXCIgfSxcclxuICAgIHsgbmFtZTogXCJSZXN0b3JlIFNldHRpbmdzXCIsIHRleHQ6IFwiUmVzdG9yZSBTZXR0aW5nc1wiIH0sXHJcbiAgICB7IG5hbWU6IFwiQWRkIE5ld1wiLCB0ZXh0OiBcIkFkZCBOZXdcIiB9LFxyXG4gICAgeyBuYW1lOiBcIkFkdmFuY2VkIFNlYXJjaFwiLCB0ZXh0OiBcIkFkdmFuY2VkIFNlYXJjaFwiIH0sXHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IoY29tcFNlcnZpY2U6IFpDb21wb25lbnRTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihjb21wU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5pdENvbXBvbmVudCgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHN1cGVyLmluaXRDb21wb25lbnQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRHcmlkQ29sdW1uU3R5bGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMyA/IHRoaXMuY29tcFNlcnZpY2UuY29udmVydFN0eWxlU3RyaW5nVG9PYmplY3QodGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlMykgOiB7ICd3aGl0ZS1zcGFjZSc6ICdpbml0aWFsJyB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0R3JpZEhlYWRlclN0eWxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTQgPyB0aGlzLmNvbXBTZXJ2aWNlLmNvbnZlcnRTdHlsZVN0cmluZ1RvT2JqZWN0KHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTQpIDogeyAnd2hpdGUtc3BhY2UnOiAnaW5pdGlhbCcgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEdyaWRGb290ZXJTdHlsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU5ID8gdGhpcy5jb21wU2VydmljZS5jb252ZXJ0U3R5bGVTdHJpbmdUb09iamVjdCh0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU5KSA6IHsgJ3doaXRlLXNwYWNlJzogJ2luaXRpYWwnIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDZWxsU3R5bGUoY29sdW1uRmllbGQ6IFpGaWVsZCwgZGF0YUl0ZW06IGFueSk6IGFueSB7XHJcbiAgICBjb25zdCBzdHlsZSA9IGNvbHVtbkZpZWxkW2BTdHlsZTEwYF07XHJcbiAgICBjb25zdCBmdW5jID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHN0eWxlKTtcclxuICAgIGlmICh0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjb25zdCBjYWxsRnVuYyA9IGZ1bmMuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgIHJldHVybiBjYWxsRnVuYyhkYXRhSXRlbSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgZnVuYyA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgcmV0dXJuIGZ1bmM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3R5bGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNsYXRlVG9vbEJhckl0ZW1zKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wU2VydmljZS50cmFuc2xhdGVUb29sQmFySXRlbXModGhpcy50b29sYmFySXRlbUxpc3QpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRvb2xCYXJJdGVtTGFiZWxOYW1lKG5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMudG9vbGJhckl0ZW1MaXN0LmZpbmQodCA9PiB0Lm5hbWUgPT09IG5hbWUpPy50ZXh0IHx8IG5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNsYXRlQ29sdW1uSGVhZGVyKGNvbHVtbnM6IGFueVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBTZXJ2aWNlLnRyYW5zbGF0ZUdyaWRDb2x1bW5IZWFkZXIoY29sdW1ucywgdGhpcy5ncm91cCk7XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gUG9wb3ZlclxyXG4gIHB1YmxpYyBzZXR1cFBvcG92ZXJGZWF0dXJlKGNvbHVtbnM6IEFycmF5PGFueT4sIGdyaWREYXRhOiBBcnJheTxhbnk+KSB7XHJcbiAgICBjb25zdCBwb3BvdmVyQ29scyA9IGNvbHVtbnMuZmlsdGVyKGMgPT4gYy5Qb3BPdmVyQ29udGVudCk7XHJcbiAgICBpZiAocG9wb3ZlckNvbHMubGVuZ3RoID4gMCAmJiBncmlkRGF0YS5sZW5ndGggPiAwKSB7XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IGRhdGEgb2YgZ3JpZERhdGEpIHtcclxuICAgICAgICB0aGlzLnBvcG92ZXJEYXRhLnB1c2goXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGlkOiBkYXRhLklkLFxyXG4gICAgICAgICAgICBwb3BvdmVyQ29udGVudDogdGhpcy5nZXRQb3BPdmVyQ29udGVudEJ5Q29sKHBvcG92ZXJDb2xzLCBkYXRhKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93UG9wT3Zlcihjb2x1bW5GaWVsZDogWkZpZWxkLCBldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoIWNvbHVtbkZpZWxkLlBvcE92ZXJDb250ZW50IHx8ICF0aGlzLnBvcG92ZXJjb250YWluZXIpIHtcclxuICAgICAgdGhpcy5wb3BvdmVyY29udGFpbmVyLmhpZGUoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGVsZW1lbnQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICB0aGlzLnBvcG92ZXJjb250YWluZXIuaGlkZSgpO1xyXG4gICAgaWYgKGVsZW1lbnQubm9kZU5hbWUgPT09ICdESVYnIHx8IGVsZW1lbnQubm9kZU5hbWUgPT09ICdTUEFOJykge1xyXG4gICAgICB0aGlzLnBvcG92ZXJjb250YWluZXIuc2hvdyhlbGVtZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVBvcE92ZXIoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50ICYmIGV2ZW50LnRvRWxlbWVudCAmJiBldmVudC50b0VsZW1lbnQubm9kZU5hbWUgPT0gXCJESVZcIiAmJiAoZXZlbnQudG9FbGVtZW50LnBhcmVudEVsZW1lbnQubm9kZU5hbWUgPT0gXCJURFwiIHx8IChldmVudC50b0VsZW1lbnQucGFyZW50RWxlbWVudC5ub2RlTmFtZSA9PSBcIkRJVlwiICYmIGV2ZW50LnRvRWxlbWVudC5wYXJlbnRFbGVtZW50LmNsYXNzTmFtZS5pbmNsdWRlcyhcImstcG9wb3Zlci1ib2R5XCIpKSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wb3BvdmVyY29udGFpbmVyLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDb250ZXh0RGF0YShhbmNob3I6IEhUTUxFbGVtZW50KSB7XHJcbiAgICBpZiAoYW5jaG9yLmF0dHJpYnV0ZXNbXCJkYXRhLWlkXCJdICYmIGFuY2hvci5hdHRyaWJ1dGVzW1wiZGF0YS1pZFwiXS52YWx1ZSAmJiBhbmNob3IuYXR0cmlidXRlc1tcImNvbHVtbi1uYW1lXCJdICYmIGFuY2hvci5hdHRyaWJ1dGVzW1wiY29sdW1uLW5hbWVcIl0udmFsdWUpIHtcclxuICAgICAgY29uc3QgcmVjb3JkSWQgPSBhbmNob3IuYXR0cmlidXRlc1tcImRhdGEtaWRcIl0udmFsdWU7XHJcbiAgICAgIGNvbnN0IGNvbHVtbk5hbWUgPSBhbmNob3IuYXR0cmlidXRlc1tcImNvbHVtbi1uYW1lXCJdLnZhbHVlO1xyXG4gICAgICBjb25zdCBwb3BvdmVyQWxsQ29sRGF0YSA9IHRoaXMucG9wb3ZlckRhdGEuZmluZChkID0+IGQuaWQgPT0gcmVjb3JkSWQpO1xyXG4gICAgICBjb25zdCBwb3BvdmVyQ29sRGF0YSA9IHBvcG92ZXJBbGxDb2xEYXRhLnBvcG92ZXJDb250ZW50LmZpbmQoZCA9PiBkLmNvbHVtbk5hbWUgPT0gY29sdW1uTmFtZSk7XHJcbiAgICAgIHJldHVybiBKU09OLnBhcnNlKHBvcG92ZXJDb2xEYXRhLmNvbnRlbnQpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBvcE92ZXJDb250ZW50QnlDb2woY29sdW1uczogQXJyYXk8YW55PiwgZGF0YTogYW55KTogQXJyYXk8YW55PiB7XHJcbiAgICBjb25zdCBwb3BPdmVyQ29udGVudCA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBjb2wgb2YgY29sdW1ucykge1xyXG4gICAgICBwb3BPdmVyQ29udGVudC5wdXNoKHtcclxuICAgICAgICBjb2x1bW5OYW1lOiBjb2wuZmllbGQsXHJcbiAgICAgICAgY29udGVudDogdGhpcy5nZXRQb3BPdmVyQ29udGVudChjb2wsIGRhdGEpXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwb3BPdmVyQ29udGVudDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UG9wT3ZlckNvbnRlbnQoY29sdW1uRmllbGQ6IFpGaWVsZCwgZGF0YUl0ZW06IGFueSkge1xyXG4gICAgY29uc3QgY29udGVudCA9IGNvbHVtbkZpZWxkLlBvcE92ZXJDb250ZW50O1xyXG4gICAgaWYgKCFjb250ZW50KSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgLy8gcmV0dXJuIHtcclxuICAgIC8vICAgQm9keTogYDxiPjI8L2I+IG1vcmUgZ29hbHMgYW5kIDxiPjU8L2I+IG1vcmUgY29tcGV0ZW5jaWVzIHRvIGdyYWRlLiA8YnIvPlxyXG4gICAgLy8gICBHb2FsIDE6IDxiIHN0eWxlPSdjb2xvcjp2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7Jz4xPC9iPiA8YnIvPmAsXHJcbiAgICAvLyAgIEJvZHlDbGFzczonYXBwcmFpc2FsLXBvcG92ZXInXHJcbiAgICAvLyB9O1xyXG4gICAgY29uc3QgZnVuYyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBjb250ZW50KTtcclxuXHJcbiAgICBsZXQgcmVzdWx0ID0gZnVuYztcclxuICAgIGlmICh0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjb25zdCBjYWxsRnVuYyA9IGZ1bmMuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgIHJlc3VsdCA9IGNhbGxGdW5jKGNvbHVtbkZpZWxkLCBkYXRhSXRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiByZXN1bHQgPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHJlc3VsdCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIEJvZHk6IHJlc3VsdCB8fCAnJyxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vI2VuZHJlZ2lvblxyXG59XHJcbiJdfQ==
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWxpc3RpbmdmaWVsZGJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvY29tcG9uZW50cy9kYXRhbGlzdGluZ2ZpZWxkYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWxELE9BQU8sRUFBRSxnQkFBZ0IsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBTXpELCtCQUErQjtBQUMvQixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsU0FBUztJQVlqRCxZQUFZLFdBQThCO1FBQ3hDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQVpYLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUzQyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNwQixvQkFBZSxHQUFHO1lBQ3ZCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ2xDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQ2hELEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUN0RCxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUNwQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7U0FDckQsQ0FBQztJQUlGLENBQUM7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LGdCQUFnQjtzQkFBekUsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZpZWxkQmFzZSB9IGZyb20gXCIuL2ZpZWxkYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgWkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRIZWxwZXIsIFpGaWVsZCB9IGZyb20gXCJtbWhnbG9iYWwtemNvcmVcIjtcclxuaW1wb3J0IHsgUG9wb3ZlckNvbnRhaW5lckRpcmVjdGl2ZSB9IGZyb20gXCJAcHJvZ3Jlc3Mva2VuZG8tYW5ndWxhci10b29sdGlwXCI7XHJcbmltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgbWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZTogYGAsXHJcbn0pXHJcblxyXG4vLyBGb3I6IHpncmlkLCB6dHJlZSwgenRyZWVsaXN0XHJcbmV4cG9ydCBjbGFzcyBEYXRhTGlzdGluZ0ZpZWxkQmFzZSBleHRlbmRzIEZpZWxkQmFzZSB7XHJcbiAgQE91dHB1dCgpIHNob3dGb3JtUGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAVmlld0NoaWxkKFwicG9wb3ZlcmNvbnRhaW5lclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJpdmF0ZSBwb3BvdmVyY29udGFpbmVyOiBQb3BvdmVyQ29udGFpbmVyRGlyZWN0aXZlO1xyXG4gIHByb3RlY3RlZCBwb3BvdmVyRGF0YSA9IFtdO1xyXG4gIHB1YmxpYyB0b29sYmFySXRlbUxpc3QgPSBbXHJcbiAgICB7IG5hbWU6IFwiU2VhcmNoXCIsIHRleHQ6IFwiU2VhcmNoXCIgfSxcclxuICAgIHsgbmFtZTogXCJTYXZlIFNldHRpbmdzXCIsIHRleHQ6IFwiU2F2ZSBTZXR0aW5nc1wiIH0sXHJcbiAgICB7IG5hbWU6IFwiUmVzdG9yZSBTZXR0aW5nc1wiLCB0ZXh0OiBcIlJlc3RvcmUgU2V0dGluZ3NcIiB9LFxyXG4gICAgeyBuYW1lOiBcIkFkZCBOZXdcIiwgdGV4dDogXCJBZGQgTmV3XCIgfSxcclxuICAgIHsgbmFtZTogXCJBZHZhbmNlZCBTZWFyY2hcIiwgdGV4dDogXCJBZHZhbmNlZCBTZWFyY2hcIiB9LFxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbXBTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSkge1xyXG4gICAgc3VwZXIoY29tcFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRDb21wb25lbnQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBzdXBlci5pbml0Q29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0R3JpZENvbHVtblN0eWxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTMgPyB0aGlzLmNvbXBTZXJ2aWNlLmNvbnZlcnRTdHlsZVN0cmluZ1RvT2JqZWN0KHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTMpIDoge31cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRHcmlkSGVhZGVyU3R5bGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNCA/IHRoaXMuY29tcFNlcnZpY2UuY29udmVydFN0eWxlU3RyaW5nVG9PYmplY3QodGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNCkgOiB7fVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEdyaWRGb290ZXJTdHlsZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU5ID8gdGhpcy5jb21wU2VydmljZS5jb252ZXJ0U3R5bGVTdHJpbmdUb09iamVjdCh0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGU5KSA6IHt9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q2VsbFN0eWxlKGNvbHVtbkZpZWxkOiBaRmllbGQsIGRhdGFJdGVtOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3Qgc3R5bGUgPSBjb2x1bW5GaWVsZFtgU3R5bGUxMGBdO1xyXG4gICAgY29uc3QgZnVuYyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBzdHlsZSk7XHJcbiAgICBpZiAodHlwZW9mIGZ1bmMgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSBmdW5jLmJpbmQodGhpcy5ncm91cC5jdHJsU2NvcGUpO1xyXG4gICAgICByZXR1cm4gY2FsbEZ1bmMoZGF0YUl0ZW0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHlwZW9mIGZ1bmMgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHJldHVybiBmdW5jO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0eWxlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYW5zbGF0ZVRvb2xCYXJJdGVtcygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tcFNlcnZpY2UudHJhbnNsYXRlVG9vbEJhckl0ZW1zKHRoaXMudG9vbGJhckl0ZW1MaXN0LCB0aGlzLmdyb3VwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRUb29sQmFySXRlbUxhYmVsTmFtZShuYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnRvb2xiYXJJdGVtTGlzdC5maW5kKHQgPT4gdC5uYW1lID09PSBuYW1lKT8udGV4dCB8fCBuYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYW5zbGF0ZUNvbHVtbkhlYWRlcihjb2x1bW5zOiBhbnlbXSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wU2VydmljZS50cmFuc2xhdGVHcmlkQ29sdW1uSGVhZGVyKGNvbHVtbnMsIHRoaXMuZ3JvdXApO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFBvcG92ZXJcclxuICBwdWJsaWMgc2V0dXBQb3BvdmVyRmVhdHVyZShjb2x1bW5zOiBBcnJheTxhbnk+LCBncmlkRGF0YTogQXJyYXk8YW55Pikge1xyXG4gICAgY29uc3QgcG9wb3ZlckNvbHMgPSBjb2x1bW5zLmZpbHRlcihjID0+IGMuUG9wT3ZlckNvbnRlbnQpO1xyXG4gICAgaWYgKHBvcG92ZXJDb2xzLmxlbmd0aCA+IDAgJiYgZ3JpZERhdGEubGVuZ3RoID4gMCkge1xyXG5cclxuICAgICAgZm9yIChjb25zdCBkYXRhIG9mIGdyaWREYXRhKSB7XHJcbiAgICAgICAgdGhpcy5wb3BvdmVyRGF0YS5wdXNoKFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBpZDogZGF0YS5JZCxcclxuICAgICAgICAgICAgcG9wb3ZlckNvbnRlbnQ6IHRoaXMuZ2V0UG9wT3ZlckNvbnRlbnRCeUNvbChwb3BvdmVyQ29scywgZGF0YSlcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1BvcE92ZXIoY29sdW1uRmllbGQ6IFpGaWVsZCwgZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKCFjb2x1bW5GaWVsZC5Qb3BPdmVyQ29udGVudCB8fCAhdGhpcy5wb3BvdmVyY29udGFpbmVyKSB7XHJcbiAgICAgIHRoaXMucG9wb3ZlcmNvbnRhaW5lci5oaWRlKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgdGhpcy5wb3BvdmVyY29udGFpbmVyLmhpZGUoKTtcclxuICAgIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnRElWJyB8fCBlbGVtZW50Lm5vZGVOYW1lID09PSAnU1BBTicpIHtcclxuICAgICAgdGhpcy5wb3BvdmVyY29udGFpbmVyLnNob3coZWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VQb3BPdmVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChldmVudCAmJiBldmVudC50b0VsZW1lbnQgJiYgZXZlbnQudG9FbGVtZW50Lm5vZGVOYW1lID09IFwiRElWXCIgJiYgKGV2ZW50LnRvRWxlbWVudC5wYXJlbnRFbGVtZW50Lm5vZGVOYW1lID09IFwiVERcIiB8fCAoZXZlbnQudG9FbGVtZW50LnBhcmVudEVsZW1lbnQubm9kZU5hbWUgPT0gXCJESVZcIiAmJiBldmVudC50b0VsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc05hbWUuaW5jbHVkZXMoXCJrLXBvcG92ZXItYm9keVwiKSkpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMucG9wb3ZlcmNvbnRhaW5lci5oaWRlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q29udGV4dERhdGEoYW5jaG9yOiBIVE1MRWxlbWVudCkge1xyXG4gICAgaWYgKGFuY2hvci5hdHRyaWJ1dGVzW1wiZGF0YS1pZFwiXSAmJiBhbmNob3IuYXR0cmlidXRlc1tcImRhdGEtaWRcIl0udmFsdWUgJiYgYW5jaG9yLmF0dHJpYnV0ZXNbXCJjb2x1bW4tbmFtZVwiXSAmJiBhbmNob3IuYXR0cmlidXRlc1tcImNvbHVtbi1uYW1lXCJdLnZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IHJlY29yZElkID0gYW5jaG9yLmF0dHJpYnV0ZXNbXCJkYXRhLWlkXCJdLnZhbHVlO1xyXG4gICAgICBjb25zdCBjb2x1bW5OYW1lID0gYW5jaG9yLmF0dHJpYnV0ZXNbXCJjb2x1bW4tbmFtZVwiXS52YWx1ZTtcclxuICAgICAgY29uc3QgcG9wb3ZlckFsbENvbERhdGEgPSB0aGlzLnBvcG92ZXJEYXRhLmZpbmQoZCA9PiBkLmlkID09IHJlY29yZElkKTtcclxuICAgICAgY29uc3QgcG9wb3ZlckNvbERhdGEgPSBwb3BvdmVyQWxsQ29sRGF0YS5wb3BvdmVyQ29udGVudC5maW5kKGQgPT4gZC5jb2x1bW5OYW1lID09IGNvbHVtbk5hbWUpO1xyXG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShwb3BvdmVyQ29sRGF0YS5jb250ZW50KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQb3BPdmVyQ29udGVudEJ5Q29sKGNvbHVtbnM6IEFycmF5PGFueT4sIGRhdGE6IGFueSk6IEFycmF5PGFueT4ge1xyXG4gICAgY29uc3QgcG9wT3ZlckNvbnRlbnQgPSBbXTtcclxuICAgIGZvciAoY29uc3QgY29sIG9mIGNvbHVtbnMpIHtcclxuICAgICAgdGhpcy5nZXRQb3BPdmVyQ29udGVudChjb2wsIGRhdGEpLnN1YnNjcmliZShjb250ZW50ID0+IHtcclxuICAgICAgICBwb3BPdmVyQ29udGVudC5wdXNoKHtcclxuICAgICAgICAgIGNvbHVtbk5hbWU6IGNvbC5maWVsZCxcclxuICAgICAgICAgIGNvbnRlbnQ6IGNvbnRlbnRcclxuICAgICAgICB9KTtcclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcG9wT3ZlckNvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFBvcE92ZXJDb250ZW50KGNvbHVtbkZpZWxkOiBaRmllbGQsIGRhdGFJdGVtOiBhbnkpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgY29udGVudCA9IGNvbHVtbkZpZWxkLlBvcE92ZXJDb250ZW50O1xyXG4gICAgaWYgKCFjb250ZW50KSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgLy8gcmV0dXJuIHtcclxuICAgIC8vICAgQm9keTogYDxiPjI8L2I+IG1vcmUgZ29hbHMgYW5kIDxiPjU8L2I+IG1vcmUgY29tcGV0ZW5jaWVzIHRvIGdyYWRlLiA8YnIvPlxyXG4gICAgLy8gICBHb2FsIDE6IDxiIHN0eWxlPSdjb2xvcjp2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7Jz4xPC9iPiA8YnIvPmAsXHJcbiAgICAvLyAgIEJvZHlDbGFzczonYXBwcmFpc2FsLXBvcG92ZXInXHJcbiAgICAvLyB9O1xyXG4gICAgY29uc3QgZnVuYyA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCBjb250ZW50KTtcclxuXHJcbiAgICBsZXQgcmVzdWx0ID0gZnVuYztcclxuICAgIGlmICh0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjb25zdCBjYWxsRnVuYyA9IGZ1bmMuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgIHJlc3VsdCA9IGNhbGxGdW5jKGNvbHVtbkZpZWxkLCBkYXRhSXRlbSk7XHJcblxyXG4gICAgICBpZiAoaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcclxuICAgICAgICByZXR1cm4gcmVzdWx0LnBpcGUobWFwKGRhdGEgPT4gdGhpcy5wYXJzZVBvcG92ZXJPYmplY3QoZGF0YSkpKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gb2YodGhpcy5wYXJzZVBvcG92ZXJPYmplY3QocmVzdWx0KSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VQb3BvdmVyT2JqZWN0KHJlc3VsdCk6IHN0cmluZyB7XHJcbiAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocmVzdWx0KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgQm9keTogcmVzdWx0IHx8ICcnLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8jZW5kcmVnaW9uXHJcbn1cclxuIl19
|