@wavemaker/app-ng-runtime 12.0.0-next.141134 → 12.0.0-next.141138

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 (202) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +407 -460
  2. app-ng-runtime/build-task/esm2022/containers/accordion/accordion-pane/accordion-pane.build.mjs +2 -2
  3. app-ng-runtime/build-task/esm2022/containers/accordion/accordion.build.mjs +3 -3
  4. app-ng-runtime/build-task/esm2022/containers/wizard/wizard.build.mjs +2 -2
  5. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +2 -10
  6. app-ng-runtime/build-task/esm2022/input/chips/chips.build.mjs +2 -2
  7. app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +2 -2
  8. app-ng-runtime/build-task/esm2022/public_api.mjs +1 -3
  9. app-ng-runtime/build-task/fesm2022/index.mjs +408 -463
  10. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  11. app-ng-runtime/build-task/public_api.d.ts +0 -2
  12. app-ng-runtime/components/base/bundles/index.umd.js +16 -79
  13. app-ng-runtime/components/base/components.module.d.ts +11 -12
  14. app-ng-runtime/components/base/esm2022/components.module.mjs +1 -5
  15. app-ng-runtime/components/base/esm2022/public_api.mjs +1 -2
  16. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +17 -42
  17. app-ng-runtime/components/base/esm2022/widgets/framework/property-change-handler.mjs +2 -2
  18. app-ng-runtime/components/base/fesm2022/index.mjs +18 -80
  19. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  20. app-ng-runtime/components/base/public_api.d.ts +0 -1
  21. app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
  22. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +5 -11
  23. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +2 -0
  24. app-ng-runtime/components/basic/default/bundles/index.umd.js +18 -7
  25. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +13 -5
  26. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +7 -4
  27. app-ng-runtime/components/basic/default/fesm2022/index.mjs +18 -7
  28. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  29. app-ng-runtime/components/basic/default/video/video.component.d.ts +1 -0
  30. app-ng-runtime/components/basic/progress/bundles/index.umd.js +7 -3
  31. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +8 -4
  32. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +7 -3
  33. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  34. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +1 -0
  35. app-ng-runtime/components/basic/search/bundles/index.umd.js +31 -38
  36. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +31 -35
  37. app-ng-runtime/components/basic/search/esm2022/search.props.mjs +2 -5
  38. app-ng-runtime/components/basic/search/fesm2022/index.mjs +31 -38
  39. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  40. app-ng-runtime/components/basic/search/search.component.d.ts +3 -5
  41. app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +1 -0
  42. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +15 -9
  43. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +13 -10
  44. app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +4 -1
  45. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +15 -9
  46. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  47. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +6 -14
  48. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +7 -14
  49. app-ng-runtime/components/containers/tabs/esm2022/tabs.props.mjs +2 -3
  50. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +6 -14
  51. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  52. app-ng-runtime/components/containers/tabs/tabs.component.d.ts +0 -1
  53. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +6 -6
  54. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +7 -7
  55. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +6 -6
  56. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  57. app-ng-runtime/components/data/form/bundles/index.umd.js +11 -23
  58. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +12 -24
  59. app-ng-runtime/components/data/form/fesm2022/index.mjs +11 -23
  60. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  61. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +0 -1
  62. app-ng-runtime/components/data/list/bundles/index.umd.js +12 -12
  63. app-ng-runtime/components/data/list/esm2022/list.component.mjs +13 -13
  64. app-ng-runtime/components/data/list/fesm2022/index.mjs +12 -12
  65. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  66. app-ng-runtime/components/data/table/bundles/index.umd.js +1 -1
  67. app-ng-runtime/components/data/table/esm2022/table-row/table-row.props.mjs +2 -2
  68. app-ng-runtime/components/data/table/fesm2022/index.mjs +1 -1
  69. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  70. app-ng-runtime/components/dialogs/default/base-dialog.d.ts +0 -2
  71. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +6 -17
  72. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +1 -1
  73. app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +2 -14
  74. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +7 -6
  75. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +7 -18
  76. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  77. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +3 -21
  78. app-ng-runtime/components/dialogs/design-dialog/dialog.component.d.ts +2 -3
  79. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +4 -22
  80. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +3 -21
  81. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  82. app-ng-runtime/components/input/chips/bundles/index.umd.js +6 -3
  83. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +7 -4
  84. app-ng-runtime/components/input/chips/fesm2022/index.mjs +6 -3
  85. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  86. app-ng-runtime/components/input/default/base-form-custom.component.d.ts +1 -2
  87. app-ng-runtime/components/input/default/bundles/index.umd.js +62 -107
  88. app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +0 -1
  89. app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +2 -2
  90. app-ng-runtime/components/input/default/esm2022/base-form-custom.component.mjs +1 -6
  91. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +5 -10
  92. app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +5 -5
  93. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +5 -10
  94. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +38 -64
  95. app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +1 -2
  96. app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +1 -4
  97. app-ng-runtime/components/input/default/fesm2022/index.mjs +62 -107
  98. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  99. app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +0 -1
  100. app-ng-runtime/components/input/default/switch/switch.component.d.ts +0 -2
  101. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +2 -1
  102. app-ng-runtime/components/input/epoch/bundles/index.umd.js +18 -14
  103. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +10 -6
  104. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +4 -4
  105. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +4 -4
  106. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +15 -11
  107. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  108. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +80 -64
  109. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +80 -65
  110. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +3 -2
  111. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +81 -65
  112. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  113. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +7 -2
  114. app-ng-runtime/components/input/rating/bundles/index.umd.js +35 -26
  115. app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +37 -26
  116. app-ng-runtime/components/input/rating/esm2022/rating.props.mjs +1 -3
  117. app-ng-runtime/components/input/rating/fesm2022/index.mjs +36 -27
  118. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  119. app-ng-runtime/components/input/rating/rating.component.d.ts +1 -3
  120. app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +6 -6
  121. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +7 -7
  122. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +6 -6
  123. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  124. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +2 -6
  125. app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +5 -9
  126. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +4 -8
  127. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  128. app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +2 -2
  129. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -6
  130. app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +5 -9
  131. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +4 -8
  132. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  133. app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +2 -2
  134. app-ng-runtime/core/bundles/index.umd.js +0 -23
  135. app-ng-runtime/core/enums/enums.d.ts +0 -1
  136. app-ng-runtime/core/esm2022/enums/enums.mjs +1 -2
  137. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  138. app-ng-runtime/core/esm2022/types/types.mjs +1 -4
  139. app-ng-runtime/core/esm2022/utils/build-utils.mjs +1 -6
  140. app-ng-runtime/core/esm2022/utils/utils.mjs +1 -10
  141. app-ng-runtime/core/fesm2022/index.mjs +1 -21
  142. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  143. app-ng-runtime/core/public_api.d.ts +1 -1
  144. app-ng-runtime/core/types/types.d.ts +1 -5
  145. app-ng-runtime/core/utils/utils.d.ts +0 -2
  146. app-ng-runtime/locales/moment-timezone/moment-timezone-with-data.js +37 -37
  147. app-ng-runtime/package.json +1 -1
  148. app-ng-runtime/runtime/base/bundles/index.umd.js +4 -304
  149. app-ng-runtime/runtime/base/esm2022/public_api.mjs +1 -2
  150. app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +1 -6
  151. app-ng-runtime/runtime/base/esm2022/types/types.mjs +1 -4
  152. app-ng-runtime/runtime/base/fesm2022/index.mjs +3 -302
  153. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  154. app-ng-runtime/runtime/base/public_api.d.ts +0 -1
  155. app-ng-runtime/runtime/base/runtime-base.module.d.ts +8 -9
  156. app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
  157. app-ng-runtime/runtime/base/types/types.d.ts +1 -5
  158. app-ng-runtime/runtime/dynamic/bundles/index.umd.js +13 -49
  159. app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +3 -8
  160. app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +7 -23
  161. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +11 -50
  162. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  163. app-ng-runtime/scripts/datatable/datatable.js +23 -30
  164. app-ng-runtime/transpiler/bundles/index.umd.js +0 -5
  165. app-ng-runtime/transpiler/esm2022/build.mjs +1 -4
  166. app-ng-runtime/transpiler/esm2022/imports.mjs +1 -3
  167. app-ng-runtime/transpiler/fesm2022/index.mjs +0 -5
  168. app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
  169. app-ng-runtime/variables/bundles/index.umd.js +34 -16
  170. app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +35 -17
  171. app-ng-runtime/variables/fesm2022/index.mjs +34 -16
  172. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
  173. app-ng-runtime/variables/manager/variable/web-socket-variable.manager.d.ts +0 -4
  174. app-ng-runtime/build-task/advanced/custom-widget-container/custom-widget-container.build.d.ts +0 -2
  175. app-ng-runtime/build-task/advanced/custom-widget-wrapper/custom-widget-wrapper.build.d.ts +0 -2
  176. app-ng-runtime/build-task/esm2022/advanced/custom-widget-container/custom-widget-container.build.mjs +0 -15
  177. app-ng-runtime/build-task/esm2022/advanced/custom-widget-wrapper/custom-widget-wrapper.build.mjs +0 -26
  178. app-ng-runtime/components/advanced/custom/.npmignore +0 -2
  179. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +0 -272
  180. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +0 -26
  181. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +0 -2
  182. app-ng-runtime/components/advanced/custom/custom-widget-prop.d.ts +0 -1
  183. app-ng-runtime/components/advanced/custom/custom-widget.directive.d.ts +0 -19
  184. app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +0 -10
  185. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +0 -145
  186. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +0 -12
  187. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-prop.mjs +0 -8
  188. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +0 -68
  189. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +0 -32
  190. app-ng-runtime/components/advanced/custom/esm2022/index.mjs +0 -5
  191. app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +0 -4
  192. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +0 -258
  193. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +0 -1
  194. app-ng-runtime/components/advanced/custom/index.d.ts +0 -5
  195. app-ng-runtime/components/advanced/custom/package.json +0 -23
  196. app-ng-runtime/components/advanced/custom/public_api.d.ts +0 -3
  197. app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +0 -39
  198. app-ng-runtime/components/base/widgets/common/base/custom-widget-container.directive.d.ts +0 -14
  199. app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +0 -75
  200. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +0 -303
  201. app-ng-runtime/runtime/dynamic/app/services/customwidget-config-provider.service.d.ts +0 -8
  202. app-ng-runtime/runtime/dynamic/esm2022/app/services/customwidget-config-provider.service.mjs +0 -22
@@ -56,21 +56,21 @@
56
56
  const _c0$c = ["wmButton", ""];
57
57
  const _c1$b = [[["", 8, "caret"]]];
58
58
  const _c2$8 = [".caret"];
59
- const _c3$4 = (a0, a1, a2) => ({ width: a0, height: a1, margin: a2 });
60
- const _c4$3 = (a0, a1, a2, a3) => ({ width: a0, height: a1, margin: a2, fontSize: a3 });
59
+ const _c3$3 = (a0, a1, a2) => ({ width: a0, height: a1, margin: a2 });
60
+ const _c4$2 = (a0, a1, a2, a3) => ({ width: a0, height: a1, margin: a2, fontSize: a3 });
61
61
  function ButtonComponent_img_0_Template(rf, ctx) { if (rf & 1) {
62
62
  i0__namespace.ɵɵelement(0, "img", 5);
63
63
  i0__namespace.ɵɵpipe(1, "image");
64
64
  } if (rf & 2) {
65
65
  const ctx_r0 = i0__namespace.ɵɵnextContext();
66
- i0__namespace.ɵɵproperty("src", i0__namespace.ɵɵpipeBind1(1, 2, ctx_r0.iconurl), i0__namespace.ɵɵsanitizeUrl)("ngStyle", i0__namespace.ɵɵpureFunction3(4, _c3$4, ctx_r0.iconwidth, ctx_r0.iconheight, ctx_r0.iconmargin));
66
+ i0__namespace.ɵɵproperty("src", i0__namespace.ɵɵpipeBind1(1, 2, ctx_r0.iconurl), i0__namespace.ɵɵsanitizeUrl)("ngStyle", i0__namespace.ɵɵpureFunction3(4, _c3$3, ctx_r0.iconwidth, ctx_r0.iconheight, ctx_r0.iconmargin));
67
67
  } }
68
68
  function ButtonComponent_i_1_Template(rf, ctx) { if (rf & 1) {
69
69
  i0__namespace.ɵɵelement(0, "i", 6);
70
70
  } if (rf & 2) {
71
71
  const ctx_r0 = i0__namespace.ɵɵnextContext();
72
72
  i0__namespace.ɵɵclassMapInterpolate1("app-icon ", ctx_r0.iconclass, "");
73
- i0__namespace.ɵɵproperty("ngStyle", i0__namespace.ɵɵpureFunction4(4, _c4$3, ctx_r0.iconwidth, ctx_r0.iconheight, ctx_r0.iconmargin, ctx_r0.iconwidth));
73
+ i0__namespace.ɵɵproperty("ngStyle", i0__namespace.ɵɵpureFunction4(4, _c4$2, ctx_r0.iconwidth, ctx_r0.iconheight, ctx_r0.iconmargin, ctx_r0.iconwidth));
74
74
  } }
75
75
  function ButtonComponent_span_2_Template(rf, ctx) { if (rf & 1) {
76
76
  i0__namespace.ɵɵelementStart(0, "span", 7);
@@ -332,8 +332,6 @@
332
332
  return;
333
333
  }
334
334
  if (this._formControl) {
335
- if (this._formControl.valueAccessor["widgetSubType"].startsWith('wm-custom-'))
336
- return;
337
335
  this.datavalue = value;
338
336
  this.onPropertyChange('datavalue', value);
339
337
  this.updatePrevDatavalue(value);
@@ -345,9 +343,6 @@
345
343
  */
346
344
  (value !== this.datavalue) && this._onChange(this.datavalue);
347
345
  }
348
- get formControl() {
349
- return this._formControl;
350
- }
351
346
  invokeOnChange(value, $event, valid) {
352
347
  // let the angular know about the change
353
348
  this._onChange(value);
@@ -407,7 +402,7 @@
407
402
  const _c0$b = ["checkbox"];
408
403
  const _c1$a = ["wmCheckbox", ""];
409
404
  const _c2$7 = (a0, a1, a2) => ({ "unchecked": a0, "disabled": a1, "required": a2 });
410
- const _c3$3 = () => ({ standalone: true });
405
+ const _c3$2 = () => ({ standalone: true });
411
406
  const DEFAULT_CLS$4 = 'app-checkbox checkbox';
412
407
  const WIDGET_CONFIG$c = {
413
408
  widgetType: 'wm-checkbox',
@@ -530,7 +525,7 @@
530
525
  i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction3(13, _c2$7, !ctx.proxyModel, ctx.disabled || ctx.readonly, ctx.required && ctx._caption));
531
526
  i0__namespace.ɵɵadvance();
532
527
  i0__namespace.ɵɵtwoWayProperty("ngModel", ctx.proxyModel);
533
- i0__namespace.ɵɵproperty("ngModelOptions", i0__namespace.ɵɵpureFunction0(17, _c3$3))("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled || ctx.readonly)("tabindex", ctx.tabindex);
528
+ i0__namespace.ɵɵproperty("ngModelOptions", i0__namespace.ɵɵpureFunction0(17, _c3$2))("readonly", ctx.readonly)("required", ctx.required)("disabled", ctx.disabled || ctx.readonly)("tabindex", ctx.tabindex);
534
529
  i0__namespace.ɵɵattribute("name", ctx.name)("aria-label", ctx.arialabel)("accesskey", ctx.shortcutkey);
535
530
  i0__namespace.ɵɵadvance(2);
536
531
  i0__namespace.ɵɵproperty("innerHtml", ctx._caption, i0__namespace.ɵɵsanitizeHtml);
@@ -598,8 +593,8 @@
598
593
  // invoke on datavalue change.
599
594
  this.invokeOnChange(val, undefined, true);
600
595
  }
601
- constructor(inj, config, explicitContext, groupby, initPromise) {
602
- super(inj, config, explicitContext, initPromise);
596
+ constructor(inj, config, explicitContext, groupby) {
597
+ super(inj, config, explicitContext);
603
598
  this.groupby = groupby;
604
599
  this.datasetItems = [];
605
600
  this.acceptsArray = false; // set to true if proxyModel on widget accepts array type.
@@ -851,7 +846,7 @@
851
846
  this.cancelLocaleChangeSubscription();
852
847
  }
853
848
  }
854
- static { this.ɵfac = function DatasetAwareFormComponent_Factory(t) { return new (t || DatasetAwareFormComponent)(i0__namespace.ɵɵinject(i0__namespace.Injector), i0__namespace.ɵɵinject(i2.WidgetConfig), i0__namespace.ɵɵinject('EXPLICIT_CONTEXT', 8), i0__namespace.ɵɵinjectAttribute('groupby'), i0__namespace.ɵɵinject(Promise)); }; }
849
+ static { this.ɵfac = function DatasetAwareFormComponent_Factory(t) { return new (t || DatasetAwareFormComponent)(i0__namespace.ɵɵinject(i0__namespace.Injector), i0__namespace.ɵɵinject(i2.WidgetConfig), i0__namespace.ɵɵinject('EXPLICIT_CONTEXT', 8), i0__namespace.ɵɵinjectAttribute('groupby')); }; }
855
850
  static { this.ɵprov = /*@__PURE__*/ i0__namespace.ɵɵdefineInjectable({ token: DatasetAwareFormComponent, factory: DatasetAwareFormComponent.ɵfac }); }
856
851
  }
857
852
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(DatasetAwareFormComponent, [{
@@ -867,7 +862,7 @@
867
862
  }] }, { type: undefined, decorators: [{
868
863
  type: i0.Attribute,
869
864
  args: ['groupby']
870
- }] }, { type: Promise }], null); })();
865
+ }] }], null); })();
871
866
 
872
867
  const checkboxsetProps = new Map([
873
868
  ['class', i2.PROP_STRING],
@@ -905,8 +900,8 @@
905
900
  const _c0$a = ["wmCheckboxset", ""];
906
901
  const _c1$9 = (a0, a1) => ["checkbox", "app-checkbox", a0, a1];
907
902
  const _c2$6 = a0 => ({ "disabled": a0 });
908
- const _c3$2 = a0 => ({ "collapsible-content": a0 });
909
- const _c4$2 = (a0, a1) => ["checkbox", "app-checkbox", "group-list-item", a0, a1];
903
+ const _c3$1 = a0 => ({ "collapsible-content": a0 });
904
+ const _c4$1 = (a0, a1) => ["checkbox", "app-checkbox", "group-list-item", a0, a1];
910
905
  function CheckboxsetComponent_ng_template_0_li_0_label_1_Template(rf, ctx) { if (rf & 1) {
911
906
  i0__namespace.ɵɵelementStart(0, "label", 8);
912
907
  i0__namespace.ɵɵelement(1, "input", 9)(2, "span", 10);
@@ -1014,7 +1009,7 @@
1014
1009
  const item_r9 = ctx.$implicit;
1015
1010
  const ctx_r2 = i0__namespace.ɵɵnextContext(3);
1016
1011
  i0__namespace.ɵɵclassProp("active", item_r9.selected);
1017
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction2(7, _c4$2, ctx_r2.itemclass, ctx_r2.itemsPerRowClass))("wmItemTemplate", ctx_r2.content)("userComponentParams", item_r9);
1012
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction2(7, _c4$1, ctx_r2.itemclass, ctx_r2.itemsPerRowClass))("wmItemTemplate", ctx_r2.content)("userComponentParams", item_r9);
1018
1013
  i0__namespace.ɵɵadvance();
1019
1014
  i0__namespace.ɵɵproperty("ngIf", !ctx_r2.content);
1020
1015
  i0__namespace.ɵɵadvance();
@@ -1038,7 +1033,7 @@
1038
1033
  i0__namespace.ɵɵadvance();
1039
1034
  i0__namespace.ɵɵattribute("aria-labelledby", "group_" + ctx_r2.widgetId + "_" + groupindex_r12);
1040
1035
  i0__namespace.ɵɵadvance();
1041
- i0__namespace.ɵɵproperty("id", "group_" + ctx_r2.widgetId + "_" + groupindex_r12)("title", groupObj_r7.key)("ngClass", i0__namespace.ɵɵpureFunction1(9, _c3$2, ctx_r2.collapsible));
1036
+ i0__namespace.ɵɵproperty("id", "group_" + ctx_r2.widgetId + "_" + groupindex_r12)("title", groupObj_r7.key)("ngClass", i0__namespace.ɵɵpureFunction1(9, _c3$1, ctx_r2.collapsible));
1042
1037
  i0__namespace.ɵɵadvance();
1043
1038
  i0__namespace.ɵɵattribute("aria-label", "Group " + groupObj_r7.key);
1044
1039
  i0__namespace.ɵɵadvance();
@@ -1066,14 +1061,6 @@
1066
1061
  i2.styler(this.nativeElement, this);
1067
1062
  this.multiple = true;
1068
1063
  }
1069
- triggerInvokeOnChange(keys, $event) {
1070
- this.modelByKey = keys;
1071
- if (this.viewParent.containerWidget)
1072
- this.viewParent.containerWidget.updateDataValue(this.datavalue);
1073
- this.invokeOnTouched();
1074
- // invoke on datavalue change.
1075
- this.invokeOnChange(this.datavalue, $event || {}, true);
1076
- }
1077
1064
  onCheckboxLabelClick($event, key) {
1078
1065
  if (!$($event.target).is('input')) {
1079
1066
  return;
@@ -1085,7 +1072,10 @@
1085
1072
  // @ts-ignore
1086
1073
  keys.push($el.value);
1087
1074
  });
1088
- this.triggerInvokeOnChange(keys, $event);
1075
+ this.modelByKey = keys;
1076
+ this.invokeOnTouched();
1077
+ // invoke on datavalue change.
1078
+ this.invokeOnChange(this.datavalue, $event || {}, true);
1089
1079
  }
1090
1080
  // change and blur events are added from the template
1091
1081
  handleEvent(node, eventName, callback, locals) {
@@ -1289,9 +1279,6 @@
1289
1279
  /* WMS-18269 | Update Angular about the required attr value change */
1290
1280
  this._onChange(this.datavalue);
1291
1281
  }
1292
- if (key === 'updateon') {
1293
- this.ngModelOptions.updateOn = nv === 'default' ? 'change' : ov;
1294
- }
1295
1282
  if (key === 'class') {
1296
1283
  if (this.inputEl.nativeElement) {
1297
1284
  i1$1.switchClass(this.inputEl.nativeElement, nv, ov);
@@ -1937,8 +1924,8 @@
1937
1924
  const _c0$8 = ["wmRadioset", ""];
1938
1925
  const _c1$7 = (a0, a1) => ["radio", "app-radio", a0, a1];
1939
1926
  const _c2$5 = a0 => ({ "disabled": a0 });
1940
- const _c3$1 = a0 => ({ "collapsible-content": a0 });
1941
- const _c4$1 = (a0, a1) => ["radio", "app-radio", "group-list-item", a0, a1];
1927
+ const _c3 = a0 => ({ "collapsible-content": a0 });
1928
+ const _c4 = (a0, a1) => ["radio", "app-radio", "group-list-item", a0, a1];
1942
1929
  function RadiosetComponent_ng_template_0_li_0_label_1_Template(rf, ctx) { if (rf & 1) {
1943
1930
  i0__namespace.ɵɵelementStart(0, "label", 7);
1944
1931
  i0__namespace.ɵɵelement(1, "input", 8)(2, "span", 9);
@@ -2046,7 +2033,7 @@
2046
2033
  const item_r9 = ctx.$implicit;
2047
2034
  const ctx_r2 = i0__namespace.ɵɵnextContext(3);
2048
2035
  i0__namespace.ɵɵclassProp("active", item_r9.selected);
2049
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction2(7, _c4$1, ctx_r2.itemclass, ctx_r2.itemsPerRowClass))("wmItemTemplate", ctx_r2.content)("userComponentParams", item_r9);
2036
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction2(7, _c4, ctx_r2.itemclass, ctx_r2.itemsPerRowClass))("wmItemTemplate", ctx_r2.content)("userComponentParams", item_r9);
2050
2037
  i0__namespace.ɵɵadvance();
2051
2038
  i0__namespace.ɵɵproperty("ngIf", !ctx_r2.content);
2052
2039
  i0__namespace.ɵɵadvance();
@@ -2070,7 +2057,7 @@
2070
2057
  i0__namespace.ɵɵadvance();
2071
2058
  i0__namespace.ɵɵattribute("aria-labelledby", "group_" + ctx_r2.widgetId + "_" + groupindex_r12);
2072
2059
  i0__namespace.ɵɵadvance();
2073
- i0__namespace.ɵɵproperty("id", "group_" + ctx_r2.widgetId + "_" + groupindex_r12)("title", groupObj_r7.key)("ngClass", i0__namespace.ɵɵpureFunction1(9, _c3$1, ctx_r2.collapsible));
2060
+ i0__namespace.ɵɵproperty("id", "group_" + ctx_r2.widgetId + "_" + groupindex_r12)("title", groupObj_r7.key)("ngClass", i0__namespace.ɵɵpureFunction1(9, _c3, ctx_r2.collapsible));
2074
2061
  i0__namespace.ɵɵadvance();
2075
2062
  i0__namespace.ɵɵattribute("aria-label", "Group " + groupObj_r7.key);
2076
2063
  i0__namespace.ɵɵadvance();
@@ -2098,14 +2085,6 @@
2098
2085
  i2.styler(this.nativeElement, this);
2099
2086
  this.multiple = false;
2100
2087
  }
2101
- triggerInvokeOnChange(key, $event) {
2102
- this.modelByKey = key;
2103
- if (this.viewParent.containerWidget)
2104
- this.viewParent.containerWidget.updateDataValue(this.datavalue);
2105
- this.invokeOnTouched();
2106
- // invoke on datavalue change.
2107
- this.invokeOnChange(this.datavalue, $event || {}, true);
2108
- }
2109
2088
  /**
2110
2089
  * On click of the option, update the datavalue
2111
2090
  */
@@ -2113,7 +2092,10 @@
2113
2092
  if (!$($event.target).is('input')) {
2114
2093
  return;
2115
2094
  }
2116
- this.triggerInvokeOnChange(key, $event);
2095
+ this.modelByKey = key;
2096
+ this.invokeOnTouched();
2097
+ // invoke on datavalue change.
2098
+ this.invokeOnChange(this.datavalue, $event || {}, true);
2117
2099
  }
2118
2100
  // change and blur events are added from the template
2119
2101
  handleEvent(node, eventName, callback, locals) {
@@ -2444,7 +2426,6 @@
2444
2426
  ['hint', i2.PROP_STRING],
2445
2427
  ['arialabel', i2.PROP_STRING],
2446
2428
  ['iconclass', i2.PROP_STRING],
2447
- ['checkediconclass', { value: 'wm-sl-l sl-check', ...i2.PROP_STRING }],
2448
2429
  ['name', i2.PROP_STRING],
2449
2430
  ['orderby', i2.PROP_STRING],
2450
2431
  ['required', i2.PROP_BOOLEAN],
@@ -2458,55 +2439,37 @@
2458
2439
  };
2459
2440
 
2460
2441
  const _c0$6 = ["wmSwitch", ""];
2461
- const _c1$5 = a0 => ({ "multi-select": a0 });
2462
- const _c2$3 = (a0, a1) => ({ "selected": a0, "disabled": a1 });
2463
- const _c3 = a0 => ["app-icon", a0];
2464
- const _c4 = a0 => [a0];
2442
+ const _c1$5 = (a0, a1) => ({ "selected": a0, "disabled": a1 });
2443
+ const _c2$3 = a0 => ["app-icon", a0];
2465
2444
  function SwitchComponent_a_1_i_1_Template(rf, ctx) { if (rf & 1) {
2466
- i0__namespace.ɵɵelement(0, "i", 7);
2445
+ i0__namespace.ɵɵelement(0, "i", 8);
2467
2446
  } if (rf & 2) {
2468
2447
  const opt_r3 = i0__namespace.ɵɵnextContext().$implicit;
2469
2448
  const ctx_r4 = i0__namespace.ɵɵnextContext();
2470
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(1, _c3, opt_r3.dataObject[ctx_r4.iconclass] || opt_r3["icon"]));
2471
- } }
2472
- function SwitchComponent_a_1_i_2_Template(rf, ctx) { if (rf & 1) {
2473
- i0__namespace.ɵɵelement(0, "i", 7);
2474
- } if (rf & 2) {
2475
- const ctx_r4 = i0__namespace.ɵɵnextContext(2);
2476
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(1, _c4, ctx_r4.checkediconclass));
2449
+ i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(1, _c2$3, opt_r3.dataObject[ctx_r4.iconclass] || opt_r3["icon"]));
2477
2450
  } }
2478
2451
  function SwitchComponent_a_1_Template(rf, ctx) { if (rf & 1) {
2479
2452
  const _r1 = i0__namespace.ɵɵgetCurrentView();
2480
- i0__namespace.ɵɵelementStart(0, "a", 4);
2453
+ i0__namespace.ɵɵelementStart(0, "a", 5);
2481
2454
  i0__namespace.ɵɵlistener("click", function SwitchComponent_a_1_Template_a_click_0_listener($event) { const ctx_r1 = i0__namespace.ɵɵrestoreView(_r1); const opt_r3 = ctx_r1.$implicit; const $index_r4 = ctx_r1.index; const ctx_r4 = i0__namespace.ɵɵnextContext(); return i0__namespace.ɵɵresetView(ctx_r4.selectOpt($event, $index_r4, opt_r3)); });
2482
- i0__namespace.ɵɵtemplate(1, SwitchComponent_a_1_i_1_Template, 1, 3, "i", 5)(2, SwitchComponent_a_1_i_2_Template, 1, 3, "i", 5);
2483
- i0__namespace.ɵɵelement(3, "span", 6);
2455
+ i0__namespace.ɵɵtemplate(1, SwitchComponent_a_1_i_1_Template, 1, 3, "i", 6);
2456
+ i0__namespace.ɵɵelement(2, "span", 7);
2484
2457
  i0__namespace.ɵɵelementEnd();
2485
2458
  } if (rf & 2) {
2486
2459
  const opt_r3 = ctx.$implicit;
2487
2460
  const ctx_r4 = i0__namespace.ɵɵnextContext();
2488
- i0__namespace.ɵɵproperty("name", "wm-switch-" + opt_r3.key)("ngClass", i0__namespace.ɵɵpureFunction2(6, _c2$3, opt_r3.selected, ctx_r4.disabled));
2461
+ i0__namespace.ɵɵproperty("name", "wm-switch-" + opt_r3.key)("ngClass", i0__namespace.ɵɵpureFunction2(5, _c1$5, opt_r3.selected, ctx_r4.disabled));
2489
2462
  i0__namespace.ɵɵattribute("aria-pressed", opt_r3.selected ? true : false);
2490
2463
  i0__namespace.ɵɵadvance();
2491
- i0__namespace.ɵɵproperty("ngIf", opt_r3.dataObject && opt_r3.dataObject[ctx_r4.iconclass] && !opt_r3.selected);
2492
- i0__namespace.ɵɵadvance();
2493
- i0__namespace.ɵɵproperty("ngIf", opt_r3.selected);
2464
+ i0__namespace.ɵɵproperty("ngIf", opt_r3.dataObject && opt_r3.dataObject[ctx_r4.iconclass]);
2494
2465
  i0__namespace.ɵɵadvance();
2495
2466
  i0__namespace.ɵɵproperty("textContent", opt_r3[ctx_r4.displayfield] || opt_r3.label);
2496
2467
  } }
2497
- function SwitchComponent_span_2_Template(rf, ctx) { if (rf & 1) {
2498
- i0__namespace.ɵɵelementStart(0, "span", 8);
2499
- i0__namespace.ɵɵelement(1, "i", 9);
2500
- i0__namespace.ɵɵelementStart(2, "span", 10);
2501
- i0__namespace.ɵɵtext(3);
2502
- i0__namespace.ɵɵelementEnd()();
2468
+ function SwitchComponent_i_3_Template(rf, ctx) { if (rf & 1) {
2469
+ i0__namespace.ɵɵelement(0, "i");
2503
2470
  } if (rf & 2) {
2504
2471
  const ctx_r4 = i0__namespace.ɵɵnextContext();
2505
- i0__namespace.ɵɵproperty("title", ctx_r4.selectedItem ? ctx_r4.selectedItem.label : ctx_r4.modelByKey);
2506
- i0__namespace.ɵɵadvance();
2507
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(3, _c4, ctx_r4.checkediconclass));
2508
- i0__namespace.ɵɵadvance(2);
2509
- i0__namespace.ɵɵtextInterpolate(ctx_r4.selectedItem ? ctx_r4.selectedItem.label : ctx_r4.modelByKey);
2472
+ i0__namespace.ɵɵclassMapInterpolate1("app-icon ", ctx_r4.selectedItem && ctx_r4.selectedItem.dataObject && ctx_r4.selectedItem.dataObject[ctx_r4.iconclass], "");
2510
2473
  } }
2511
2474
  const DEFAULT_CLS = 'app-switch';
2512
2475
  const WIDGET_CONFIG$6 = { widgetType: 'wm-switch', hostClass: DEFAULT_CLS };
@@ -2515,8 +2478,6 @@
2515
2478
  constructor(inj, explicitContext) {
2516
2479
  super(inj, WIDGET_CONFIG$6, explicitContext);
2517
2480
  this.options = [];
2518
- this.multiple = this.getAttr("multiple") === "true";
2519
- this.checkediconclass = this.getAttr("checkediconclass") || 'wm-sl-l sl-check';
2520
2481
  this._debounceSetSelectedValue = i1$1.debounce((val) => {
2521
2482
  this.setSelectedValue();
2522
2483
  this.updateHighlighter(val);
@@ -2556,7 +2517,7 @@
2556
2517
  // set the css for switch overlay element.
2557
2518
  // set the selected index from the datasetItems and highlight the datavalue on switch.
2558
2519
  updateSwitchOptions() {
2559
- if (this.datasetItems.length && !this.multiple) {
2520
+ if (this.datasetItems.length) {
2560
2521
  this.btnwidth = (100 / this.datasetItems.length);
2561
2522
  i1$1.setCSS(this.nativeElement.querySelector('.app-switch-overlay'), 'width', this.btnwidth + '%');
2562
2523
  }
@@ -2594,30 +2555,18 @@
2594
2555
  if (this.disabled) {
2595
2556
  return;
2596
2557
  }
2597
- if (this.multiple) {
2598
- const keys = [];
2599
- this.datasetItems[$index].selected = !this.datasetItems[$index].selected;
2600
- lodashEs.forEach(this.datasetItems, (item) => {
2601
- if (item.selected)
2602
- keys.push(item.key);
2603
- });
2604
- this.modelByKey = keys;
2605
- this.selectedItem = lodashEs.find(this.datasetItems, { selected: true });
2606
- }
2607
- else {
2608
- this.modelByKey = option.key;
2609
- if (!this.multiple && this.selectedItem && $index === lodashEs.findIndex(this.datasetItems, { key: this.selectedItem.key })) {
2610
- if (this.datasetItems.length === 2) {
2611
- $index = $index === 1 ? 0 : 1;
2612
- }
2613
- else {
2614
- return;
2615
- }
2558
+ this.modelByKey = option.key;
2559
+ this.invokeOnTouched();
2560
+ if (this.selectedItem && $index === lodashEs.findIndex(this.datasetItems, { key: this.selectedItem.key })) {
2561
+ if (this.datasetItems.length === 2) {
2562
+ $index = $index === 1 ? 0 : 1;
2563
+ }
2564
+ else {
2565
+ return;
2616
2566
  }
2617
- this.selectedItem = this.datasetItems[$index];
2618
- this.updateHighlighter();
2619
2567
  }
2620
- this.invokeOnTouched();
2568
+ this.selectedItem = this.datasetItems[$index];
2569
+ this.updateHighlighter();
2621
2570
  // invoke on datavalue change.
2622
2571
  this.invokeOnChange(this.datavalue, $event || {}, true);
2623
2572
  i1$1.$appDigest();
@@ -2634,18 +2583,24 @@
2634
2583
  static { this.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: SwitchComponent, selectors: [["", "wmSwitch", ""]], exportAs: ["wmSwitch"], features: [i0__namespace.ɵɵProvidersFeature([
2635
2584
  i2.provideAs(SwitchComponent, i2$1.NG_VALUE_ACCESSOR, true),
2636
2585
  i2.provideAsWidgetRef(SwitchComponent)
2637
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$6, decls: 4, vars: 9, consts: [["role", "group", 1, "btn-group", "btn-group-justified", 3, "ngClass"], ["focus-target", "", "href", "javascript:void(0);", "class", "btn btn-default", "role", "button", 3, "name", "ngClass", "click", 4, "ngFor", "ngForOf"], ["aria-hidden", "true", "class", "btn btn-primary app-switch-overlay switch-handle", 3, "title", 4, "ngIf"], ["aria-hidden", "true", 1, "model-holder", "ng-hide", 3, "name", "disabled", "value", "required"], ["focus-target", "", "href", "javascript:void(0);", "role", "button", 1, "btn", "btn-default", 3, "click", "name", "ngClass"], ["aria-hidden", "true", 3, "ngClass", 4, "ngIf"], [1, "caption", 3, "textContent"], ["aria-hidden", "true", 3, "ngClass"], ["aria-hidden", "true", 1, "btn", "btn-primary", "app-switch-overlay", "switch-handle", 3, "title"], [3, "ngClass"], [1, "caption"]], template: function SwitchComponent_Template(rf, ctx) { if (rf & 1) {
2586
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$6, decls: 6, vars: 8, consts: [[1, "btn-group", "btn-group-justified"], ["focus-target", "", "href", "javascript:void(0);", "class", "btn btn-default", "role", "button", 3, "name", "ngClass", "click", 4, "ngFor", "ngForOf"], ["aria-hidden", "true", 1, "btn", "btn-primary", "app-switch-overlay", "switch-handle", 3, "title"], [3, "class", 4, "ngIf"], ["aria-hidden", "true", 1, "model-holder", "ng-hide", 3, "name", "disabled", "value", "required"], ["focus-target", "", "href", "javascript:void(0);", "role", "button", 1, "btn", "btn-default", 3, "click", "name", "ngClass"], ["aria-hidden", "true", 3, "ngClass", 4, "ngIf"], [1, "caption", 3, "textContent"], ["aria-hidden", "true", 3, "ngClass"]], template: function SwitchComponent_Template(rf, ctx) { if (rf & 1) {
2638
2587
  i0__namespace.ɵɵelementStart(0, "div", 0);
2639
- i0__namespace.ɵɵtemplate(1, SwitchComponent_a_1_Template, 4, 9, "a", 1);
2588
+ i0__namespace.ɵɵtemplate(1, SwitchComponent_a_1_Template, 3, 8, "a", 1);
2589
+ i0__namespace.ɵɵelementEnd();
2590
+ i0__namespace.ɵɵelementStart(2, "span", 2);
2591
+ i0__namespace.ɵɵtemplate(3, SwitchComponent_i_3_Template, 1, 3, "i", 3);
2592
+ i0__namespace.ɵɵtext(4);
2640
2593
  i0__namespace.ɵɵelementEnd();
2641
- i0__namespace.ɵɵtemplate(2, SwitchComponent_span_2_Template, 4, 5, "span", 2);
2642
- i0__namespace.ɵɵelement(3, "input", 3);
2594
+ i0__namespace.ɵɵelement(5, "input", 4);
2643
2595
  } if (rf & 2) {
2644
- i0__namespace.ɵɵproperty("ngClass", i0__namespace.ɵɵpureFunction1(7, _c1$5, ctx.multiple));
2645
2596
  i0__namespace.ɵɵadvance();
2646
2597
  i0__namespace.ɵɵproperty("ngForOf", ctx.datasetItems);
2647
2598
  i0__namespace.ɵɵadvance();
2648
- i0__namespace.ɵɵproperty("ngIf", !ctx.multiple);
2599
+ i0__namespace.ɵɵproperty("title", ctx.selectedItem ? ctx.selectedItem.label : ctx.modelByKey);
2600
+ i0__namespace.ɵɵadvance();
2601
+ i0__namespace.ɵɵproperty("ngIf", ctx.iconclass);
2602
+ i0__namespace.ɵɵadvance();
2603
+ i0__namespace.ɵɵtextInterpolate1(" ", ctx.selectedItem ? ctx.selectedItem.label : ctx.modelByKey, "\n");
2649
2604
  i0__namespace.ɵɵadvance();
2650
2605
  i0__namespace.ɵɵproperty("name", ctx.name)("disabled", ctx.disabled)("value", ctx.modelByKey)("required", ctx.required);
2651
2606
  } }, dependencies: [i1__namespace.NgClass, i1__namespace.NgForOf, i1__namespace.NgIf, i2__namespace.TextContentDirective], encapsulation: 2 }); }
@@ -2655,7 +2610,7 @@
2655
2610
  args: [{ selector: '[wmSwitch]', providers: [
2656
2611
  i2.provideAs(SwitchComponent, i2$1.NG_VALUE_ACCESSOR, true),
2657
2612
  i2.provideAsWidgetRef(SwitchComponent)
2658
- ], exportAs: 'wmSwitch', template: "<div role=\"group\" class=\"btn-group btn-group-justified\" [ngClass]=\"{'multi-select': multiple}\">\n <a *ngFor=\"let opt of datasetItems; let $index = index;\"\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n <i *ngIf=\"opt.dataObject && opt.dataObject[iconclass] && !opt.selected\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <i *ngIf=\"opt.selected\" aria-hidden=\"true\" [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span [title]=\"selectedItem ? selectedItem.label : modelByKey\" aria-hidden=\"true\"\n class=\"btn btn-primary app-switch-overlay switch-handle\" *ngIf=\"!multiple\">\n <i [ngClass]=\"[checkediconclass]\"></i>\n <span class=\"caption\">{{selectedItem ? selectedItem.label : modelByKey}}</span>\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n" }]
2613
+ ], exportAs: 'wmSwitch', template: "<div class=\"btn-group btn-group-justified\">\n <a *ngFor=\"let opt of datasetItems; let $index = index;\"\n focus-target\n href=\"javascript:void(0);\"\n class=\"btn btn-default\"\n [name]=\"'wm-switch-' + opt.key\"\n role=\"button\"\n [ngClass]=\"{'selected': opt.selected, 'disabled': disabled}\"\n [attr.aria-pressed]=\"opt.selected ? true : false\"\n (click)=\"selectOpt($event, $index, opt)\"\n >\n <i *ngIf=\"opt.dataObject && opt.dataObject[iconclass]\" aria-hidden=\"true\" [ngClass]=\"['app-icon', opt.dataObject[iconclass] || opt['icon']]\"></i>\n <span class=\"caption\" [textContent]=\"opt[displayfield] || opt.label\"></span>\n </a>\n</div>\n<span aria-hidden=\"true\" [title]=\"selectedItem ? selectedItem.label : modelByKey\"\n class=\"btn btn-primary app-switch-overlay switch-handle\">\n <i *ngIf=\"iconclass\"\n class=\"app-icon {{(selectedItem && selectedItem.dataObject) && selectedItem.dataObject[iconclass]}}\"></i>\n {{selectedItem ? selectedItem.label : modelByKey}}\n</span>\n<input [name]=\"name\" class=\"model-holder ng-hide\" [disabled]=\"disabled\" [value]=\"modelByKey\" [required]=\"required\" aria-hidden=\"true\">\n" }]
2659
2614
  }], () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
2660
2615
  type: i0.Inject,
2661
2616
  args: ['EXPLICIT_CONTEXT']
@@ -11,7 +11,6 @@ export declare class CheckboxsetComponent extends DatasetAwareFormComponent {
11
11
  itemsperrow: string;
12
12
  private itemsPerRowClass;
13
13
  constructor(inj: Injector, explicitContext: any);
14
- triggerInvokeOnChange(keys: any, $event: any): void;
15
14
  onCheckboxLabelClick($event: any, key: any): void;
16
15
  protected handleEvent(node: HTMLElement, eventName: string, callback: Function, locals: any): void;
17
16
  onKeyDown($event: any): void;
@@ -44,7 +44,7 @@ export declare abstract class DatasetAwareFormComponent extends BaseFormCustomCo
44
44
  set modelByKey(val: any);
45
45
  get datavalue(): any;
46
46
  set datavalue(val: any);
47
- protected constructor(inj: Injector, config: IWidgetConfig, explicitContext: any, groupby?: string, initPromise?: Promise<any>);
47
+ protected constructor(inj: Injector, config: IWidgetConfig, explicitContext: any, groupby?: string);
48
48
  /**
49
49
  * This function sets the _datavalue value from the model and sets the selected flag when item is found.
50
50
  * Here model is the value obtained from ngModel.
@@ -71,6 +71,6 @@ export declare abstract class DatasetAwareFormComponent extends BaseFormCustomCo
71
71
  onPropertyChange(key: string, nv: any, ov?: any): void;
72
72
  ngOnInit(): void;
73
73
  ngOnDestroy(): void;
74
- static ɵfac: i0.ɵɵFactoryDeclaration<DatasetAwareFormComponent, [null, null, { optional: true; }, { attribute: "groupby"; }, null]>;
74
+ static ɵfac: i0.ɵɵFactoryDeclaration<DatasetAwareFormComponent, [null, null, { optional: true; }, { attribute: "groupby"; }]>;
75
75
  static ɵprov: i0.ɵɵInjectableDeclaration<DatasetAwareFormComponent>;
76
76
  }
@@ -45,8 +45,6 @@ export class BaseFormCustomComponent extends BaseFormComponent {
45
45
  return;
46
46
  }
47
47
  if (this._formControl) {
48
- if (this._formControl.valueAccessor["widgetSubType"].startsWith('wm-custom-'))
49
- return;
50
48
  this.datavalue = value;
51
49
  this.onPropertyChange('datavalue', value);
52
50
  this.updatePrevDatavalue(value);
@@ -58,9 +56,6 @@ export class BaseFormCustomComponent extends BaseFormComponent {
58
56
  */
59
57
  (value !== this.datavalue) && this._onChange(this.datavalue);
60
58
  }
61
- get formControl() {
62
- return this._formControl;
63
- }
64
59
  invokeOnChange(value, $event, valid) {
65
60
  // let the angular know about the change
66
61
  this._onChange(value);
@@ -91,4 +86,4 @@ export class BaseFormCustomComponent extends BaseFormComponent {
91
86
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseFormCustomComponent, [{
92
87
  type: Injectable
93
88
  }], null, null); })();
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLWN1c3RvbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvZGVmYXVsdC9zcmMvYmFzZS1mb3JtLWN1c3RvbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixlQUFlLEVBQTJDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEgsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFMUQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsWUFBWSxDQUFDLEdBQUc7SUFDckIsUUFBTyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzdFLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztBQUNMLENBQUM7QUFDRCxTQUFTLG9CQUFvQixDQUFDLFFBQWlCO0lBQzNDLE9BQU8sQ0FBQyxPQUF3QixFQUFFLEVBQUUsQ0FDaEMsUUFBUTtRQUNKLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbkIsQ0FBQztBQUdELE1BQU0sT0FBZ0IsdUJBQXdCLFNBQVEsaUJBQWlCO0lBRHZFOztRQUljLGNBQVMsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDNUIsZUFBVSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztLQWtFdEM7SUFoRUcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBRTtRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBRTtRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQUs7UUFDbkIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUVwQixJQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3hFLE9BQU87WUFFWCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0Q7Ozs7V0FJRztRQUNILENBQUMsS0FBSyxLQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQUssRUFBRSxNQUFvQixFQUFFLEtBQWU7UUFDOUQsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNULEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2YsNEZBQTRGO1lBQzVGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFjO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNMLENBQUM7SUFFTSxhQUFhLENBQUMsTUFBYTtRQUM5QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsZUFBZTtJQUNmLFFBQVEsQ0FBQyxPQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqRixDQUFDO2dRQXJFaUIsdUJBQXVCLFNBQXZCLHVCQUF1Qjt1RUFBdkIsdUJBQXVCLFdBQXZCLHVCQUF1Qjs7aUZBQXZCLHVCQUF1QjtjQUQ1QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sTmFtZSwgVmFsaWRhdG9yLCBWYWxpZGF0b3JGbiwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLWZvcm0uY29tcG9uZW50JztcblxuLypcbiAqIFdNUy0xODI2OVxuICogY3VzdG9tICdyZXF1aXJlZCcgdmFsaWRhdG9yIGZvciBjb21wb25lbnRzLFxuICogYXMgdGhlIGJvdW5kIHZhbHVlcyBhcmUgcmVzb2x2ZWQgYXQgcnVudGltZVxuICogQ2FsbGVkIG9uICdyZXF1aXJlZCcgcHJvcGVydHkgY2hhbmdlXG4gKlxuICogTm90ZTogQ29tcG9uZW50IG5lZWRzIE5HX1ZBTElEQVRPUiBwcm92aWRlciBmb3IgdGhpcyB0byB3b3JrXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRWYWx1ZSh2YWwpOiBCb29sZWFuIHtcbiAgICBzd2l0Y2godHlwZW9mIHZhbCkge1xuICAgICAgICBjYXNlICdvYmplY3QnOiByZXR1cm4gKCEhdmFsICYmICghIXZhbC5sZW5ndGggfHwgISFPYmplY3Qua2V5cyh2YWwpLmxlbmd0aCkpO1xuICAgICAgICBjYXNlICdudW1iZXInOiByZXR1cm4gKCEhdmFsIHx8IHZhbCA9PT0gMCk7XG4gICAgICAgICAgICBkZWZhdWx0OiByZXR1cm4gISh2YWwgPT09IHVuZGVmaW5lZCB8fCB2YWwgPT09IG51bGwgfHwgdmFsID09PSAnJyk7XG4gICAgfVxufVxuZnVuY3Rpb24gdmFsaWRhdGVSZXF1aXJlZEJpbmQocmVxdWlyZWQ6IGJvb2xlYW4pOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+XG4gICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICA/IChpc1ZhbGlkVmFsdWUoY29udHJvbC52YWx1ZSlcbiAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICA6IHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgICAgICAgIDogbnVsbDtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtQ3VzdG9tQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBWYWxpZGF0b3Ige1xuXG4gICAgcHJpdmF0ZSBfZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sTmFtZTtcbiAgICBwcm90ZWN0ZWQgX29uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgICBwcml2YXRlIF9vblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuX2Zvcm1Db250cm9sID0gdGhpcy5pbmouZ2V0KEZvcm1Db250cm9sTmFtZSwgbnVsbCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm4pIHtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm4pIHtcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fZm9ybUNvbnRyb2wpIHtcblxuICAgICAgICAgICAgaWYodGhpcy5fZm9ybUNvbnRyb2wudmFsdWVBY2Nlc3NvcltcIndpZGdldFN1YlR5cGVcIl0uc3RhcnRzV2l0aCgnd20tY3VzdG9tLScpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICAgICAgdGhpcy5kYXRhdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMub25Qcm9wZXJ0eUNoYW5nZSgnZGF0YXZhbHVlJywgdmFsdWUpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQcmV2RGF0YXZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICAvKlxuICAgICAgICAgKiBXTVM6MTgyNDZcbiAgICAgICAgICogQ2FsbCBvbkNoYW5nZSBvbiBkZWZhdWx0IHZhbHVlLCBzbyB0aGF0IHRoZSBDb21wb25lbnQgTW9kZWwgaXMgdXBkYXRlZFxuICAgICAgICAgKiBEbyBvbmx5IFdoZW4gdGhlIE1vZGVsIFZhbHVlIGlzIGRpZmZlcmVudCBmcm9tIGRhdGF2YWx1ZVxuICAgICAgICAgKi9cbiAgICAgICAgKHZhbHVlIT09dGhpcy5kYXRhdmFsdWUpICYmIHRoaXMuX29uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZvcm1Db250cm9sKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybUNvbnRyb2w7XG4gICAgfVxuXG4gICAgcHVibGljIGludm9rZU9uQ2hhbmdlKHZhbHVlLCAkZXZlbnQ/OiBFdmVudCB8IGFueSwgdmFsaWQ/OiBib29sZWFuKSB7XG4gICAgICAgIC8vIGxldCB0aGUgYW5ndWxhciBrbm93IGFib3V0IHRoZSBjaGFuZ2VcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UodmFsdWUpO1xuICAgICAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAgICAgICBzdXBlci5pbnZva2VPbkNoYW5nZSh2YWx1ZSwgJGV2ZW50KTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWxpZCkge1xuICAgICAgICAgICAgLy8gRml4IGZvciBbV01TLTI0ODY5XTogdXBkYXRpbmcgUHJldkRhdGF2YWx1ZSB3aGVuIHRoZXJlIGlzIGEgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHdpZGdldC5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlUHJldkRhdGF2YWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaW52b2tlT25Ub3VjaGVkKCRldmVudD86IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuXG4gICAgICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnYmx1cicsIHskZXZlbnR9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpbnZva2VPbkZvY3VzKCRldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdmb2N1cycsIHskZXZlbnR9KTtcbiAgICB9XG4gICAgLyogV01TLTE4MjY5ICovXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTp7W2tleTogc3RyaW5nXTphbnl9IHtcbiAgICAgICAgcmV0dXJuIHRoaXNbJ3Nob3cnXSA/IHZhbGlkYXRlUmVxdWlyZWRCaW5kKHRoaXNbJ3JlcXVpcmVkJ10pKGNvbnRyb2wpIDogbnVsbDtcbiAgICB9XG59XG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mb3JtLWN1c3RvbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvZGVmYXVsdC9zcmMvYmFzZS1mb3JtLWN1c3RvbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixlQUFlLEVBQTJDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEgsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFMUQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsWUFBWSxDQUFDLEdBQUc7SUFDckIsUUFBTyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzdFLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztBQUNMLENBQUM7QUFDRCxTQUFTLG9CQUFvQixDQUFDLFFBQWlCO0lBQzNDLE9BQU8sQ0FBQyxPQUF3QixFQUFFLEVBQUUsQ0FDaEMsUUFBUTtRQUNKLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbkIsQ0FBQztBQUdELE1BQU0sT0FBZ0IsdUJBQXdCLFNBQVEsaUJBQWlCO0lBRHZFOztRQUljLGNBQVMsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDNUIsZUFBVSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztLQTBEdEM7SUF4REcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBRTtRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBRTtRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQUs7UUFDbkIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0Q7Ozs7V0FJRztRQUNILENBQUMsS0FBSyxLQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQUssRUFBRSxNQUFvQixFQUFFLEtBQWU7UUFDOUQsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNULEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLENBQUM7YUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2YsNEZBQTRGO1lBQzVGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGVBQWUsQ0FBQyxNQUFjO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxFQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNMLENBQUM7SUFFTSxhQUFhLENBQUMsTUFBYTtRQUM5QixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsZUFBZTtJQUNmLFFBQVEsQ0FBQyxPQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqRixDQUFDO2dRQTdEaUIsdUJBQXVCLFNBQXZCLHVCQUF1Qjt1RUFBdkIsdUJBQXVCLFdBQXZCLHVCQUF1Qjs7aUZBQXZCLHVCQUF1QjtjQUQ1QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sTmFtZSwgVmFsaWRhdG9yLCBWYWxpZGF0b3JGbiwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJhc2VGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLWZvcm0uY29tcG9uZW50JztcblxuLypcbiAqIFdNUy0xODI2OVxuICogY3VzdG9tICdyZXF1aXJlZCcgdmFsaWRhdG9yIGZvciBjb21wb25lbnRzLFxuICogYXMgdGhlIGJvdW5kIHZhbHVlcyBhcmUgcmVzb2x2ZWQgYXQgcnVudGltZVxuICogQ2FsbGVkIG9uICdyZXF1aXJlZCcgcHJvcGVydHkgY2hhbmdlXG4gKlxuICogTm90ZTogQ29tcG9uZW50IG5lZWRzIE5HX1ZBTElEQVRPUiBwcm92aWRlciBmb3IgdGhpcyB0byB3b3JrXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRWYWx1ZSh2YWwpOiBCb29sZWFuIHtcbiAgICBzd2l0Y2godHlwZW9mIHZhbCkge1xuICAgICAgICBjYXNlICdvYmplY3QnOiByZXR1cm4gKCEhdmFsICYmICghIXZhbC5sZW5ndGggfHwgISFPYmplY3Qua2V5cyh2YWwpLmxlbmd0aCkpO1xuICAgICAgICBjYXNlICdudW1iZXInOiByZXR1cm4gKCEhdmFsIHx8IHZhbCA9PT0gMCk7XG4gICAgICAgICAgICBkZWZhdWx0OiByZXR1cm4gISh2YWwgPT09IHVuZGVmaW5lZCB8fCB2YWwgPT09IG51bGwgfHwgdmFsID09PSAnJyk7XG4gICAgfVxufVxuZnVuY3Rpb24gdmFsaWRhdGVSZXF1aXJlZEJpbmQocmVxdWlyZWQ6IGJvb2xlYW4pOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+XG4gICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICA/IChpc1ZhbGlkVmFsdWUoY29udHJvbC52YWx1ZSlcbiAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICA6IHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgICAgICAgICAgIDogbnVsbDtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtQ3VzdG9tQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBWYWxpZGF0b3Ige1xuXG4gICAgcHJpdmF0ZSBfZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sTmFtZTtcbiAgICBwcm90ZWN0ZWQgX29uQ2hhbmdlOiBhbnkgPSAoKSA9PiB7fTtcbiAgICBwcml2YXRlIF9vblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuX2Zvcm1Db250cm9sID0gdGhpcy5pbmouZ2V0KEZvcm1Db250cm9sTmFtZSwgbnVsbCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm4pIHtcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm4pIHtcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YXZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLm9uUHJvcGVydHlDaGFuZ2UoJ2RhdGF2YWx1ZScsIHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUHJldkRhdGF2YWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgLypcbiAgICAgICAgICogV01TOjE4MjQ2XG4gICAgICAgICAqIENhbGwgb25DaGFuZ2Ugb24gZGVmYXVsdCB2YWx1ZSwgc28gdGhhdCB0aGUgQ29tcG9uZW50IE1vZGVsIGlzIHVwZGF0ZWRcbiAgICAgICAgICogRG8gb25seSBXaGVuIHRoZSBNb2RlbCBWYWx1ZSBpcyBkaWZmZXJlbnQgZnJvbSBkYXRhdmFsdWVcbiAgICAgICAgICovXG4gICAgICAgICh2YWx1ZSE9PXRoaXMuZGF0YXZhbHVlKSAmJiB0aGlzLl9vbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGludm9rZU9uQ2hhbmdlKHZhbHVlLCAkZXZlbnQ/OiBFdmVudCB8IGFueSwgdmFsaWQ/OiBib29sZWFuKSB7XG4gICAgICAgIC8vIGxldCB0aGUgYW5ndWxhciBrbm93IGFib3V0IHRoZSBjaGFuZ2VcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UodmFsdWUpO1xuICAgICAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAgICAgICBzdXBlci5pbnZva2VPbkNoYW5nZSh2YWx1ZSwgJGV2ZW50KTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWxpZCkge1xuICAgICAgICAgICAgLy8gRml4IGZvciBbV01TLTI0ODY5XTogdXBkYXRpbmcgUHJldkRhdGF2YWx1ZSB3aGVuIHRoZXJlIGlzIGEgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHdpZGdldC5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlUHJldkRhdGF2YWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaW52b2tlT25Ub3VjaGVkKCRldmVudD86IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuXG4gICAgICAgIGlmICgkZXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnYmx1cicsIHskZXZlbnR9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpbnZva2VPbkZvY3VzKCRldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdmb2N1cycsIHskZXZlbnR9KTtcbiAgICB9XG4gICAgLyogV01TLTE4MjY5ICovXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTp7W2tleTogc3RyaW5nXTphbnl9IHtcbiAgICAgICAgcmV0dXJuIHRoaXNbJ3Nob3cnXSA/IHZhbGlkYXRlUmVxdWlyZWRCaW5kKHRoaXNbJ3JlcXVpcmVkJ10pKGNvbnRyb2wpIDogbnVsbDtcbiAgICB9XG59XG4iXX0=
@@ -172,14 +172,6 @@ export class CheckboxsetComponent extends DatasetAwareFormComponent {
172
172
  styler(this.nativeElement, this);
173
173
  this.multiple = true;
174
174
  }
175
- triggerInvokeOnChange(keys, $event) {
176
- this.modelByKey = keys;
177
- if (this.viewParent.containerWidget)
178
- this.viewParent.containerWidget.updateDataValue(this.datavalue);
179
- this.invokeOnTouched();
180
- // invoke on datavalue change.
181
- this.invokeOnChange(this.datavalue, $event || {}, true);
182
- }
183
175
  onCheckboxLabelClick($event, key) {
184
176
  if (!$($event.target).is('input')) {
185
177
  return;
@@ -191,7 +183,10 @@ export class CheckboxsetComponent extends DatasetAwareFormComponent {
191
183
  // @ts-ignore
192
184
  keys.push($el.value);
193
185
  });
194
- this.triggerInvokeOnChange(keys, $event);
186
+ this.modelByKey = keys;
187
+ this.invokeOnTouched();
188
+ // invoke on datavalue change.
189
+ this.invokeOnChange(this.datavalue, $event || {}, true);
195
190
  }
196
191
  // change and blur events are added from the template
197
192
  handleEvent(node, eventName, callback, locals) {
@@ -264,4 +259,4 @@ export class CheckboxsetComponent extends DatasetAwareFormComponent {
264
259
  args: ['keydown.enter', ['$event', '"ENTER"']]
265
260
  }] }); })();
266
261
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CheckboxsetComponent, { className: "CheckboxsetComponent", filePath: "checkboxset/checkboxset.component.ts", lineNumber: 27 }); })();
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3hzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL2NoZWNrYm94c2V0L2NoZWNrYm94c2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9jaGVja2JveHNldC9jaGVja2JveHNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFvQixZQUFZLEVBQWMsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxFQUFvRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hLLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7OztJQ0RwQyxnQ0FBeUg7SUFLckgsQUFKQSwyQkFHMkUsZUFDbkI7SUFDNUQsaUJBQVE7Ozs7OztJQU40RixBQUE5Qyx5RkFBNkMsd0JBQXFCO0lBQzdHLGNBQWtDO0lBR08sQUFBdEIsQUFBbkIsQUFEQSxBQUZtQyxBQUFuQyx1REFBa0MsNkJBQXNCLGdEQUV2QixzQkFDZiw2QkFBc0IsNkJBQTBCOztJQUNuRCxjQUEwQjtJQUExQiwyQ0FBMEI7OztJQUdwRCxp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LEVBQUUsSUFBSSxDQUFDO2dCQUN4RCxTQUFTLENBQUMsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQztnQkFDcEQsa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7YUFDM0M7WUN2QkwscUZBQWdFO1lBd0JoRSwyQkFBcUU7WUFJckUsQUFIQSxxRUFBMkQseUdBR3pCOzs7WUE1QkgsQUFBbEIsbUNBQWlCLHFDQUFpQztZQXdCeEQsY0FBaUM7WUFBakMsdURBQWlDO1lBQ2xDLGNBQTBCO1lBQTFCLG1EQUEwQjs7O2lGRENuQixvQkFBb0I7Y0FYaEMsU0FBUzsyQkFDSSxpQkFBaUIsWUFDakIsZUFBZSxhQUVkO29CQUNQLFNBQVMsdUJBQXVCLGlCQUFpQixFQUFFLElBQUksQ0FBQztvQkFDeEQsU0FBUyx1QkFBdUIsYUFBYSxFQUFFLElBQUksQ0FBQztvQkFDcEQsa0JBQWtCLHNCQUFzQjtpQkFDM0M7O3NCQWdCMkIsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVE7cUJBcURoRSxTQUFTO2tCQURSLFlBQVk7bUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQzs7a0ZBakUzQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0F0dHJpYnV0ZSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBOR19WQUxJREFUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge0FwcERlZmF1bHRzLCBub29wLCBzZXRMaXN0Q2xhc3MsIHN3aXRjaENsYXNzfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBjb252ZXJ0RGF0YVRvT2JqZWN0LCBJV2lkZ2V0Q29uZmlnLCBncm91cERhdGEsIGhhbmRsZUhlYWRlckNsaWNrLCBwcm92aWRlQXMsIHByb3ZpZGVBc1dpZGdldFJlZiwgc3R5bGVyLCB0b2dnbGVBbGxIZWFkZXJzIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBEYXRhc2V0QXdhcmVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YXNldC1hd2FyZS1mb3JtLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuLi9jaGVja2JveHNldC9jaGVja2JveHNldC5wcm9wcyc7XG5pbXBvcnQge2ZvckVhY2gsIGluY2x1ZGVzfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmRlY2xhcmUgY29uc3QgJDtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWNoZWNrYm94c2V0IGxpc3QtZ3JvdXAgaW5saW5lJztcbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7d2lkZ2V0VHlwZTogJ3dtLWNoZWNrYm94c2V0JywgaG9zdENsYXNzOiBERUZBVUxUX0NMU307XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtQ2hlY2tib3hzZXRdJyxcbiAgICBleHBvcnRBczogJ3dtQ2hlY2tib3hzZXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnY2hlY2tib3hzZXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXMoQ2hlY2tib3hzZXRDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzKENoZWNrYm94c2V0Q29tcG9uZW50LCBOR19WQUxJREFUT1JTLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKENoZWNrYm94c2V0Q29tcG9uZW50KVxuICAgIF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBDaGVja2JveHNldENvbXBvbmVudCBleHRlbmRzIERhdGFzZXRBd2FyZUZvcm1Db21wb25lbnQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgbGF5b3V0ID0gJyc7XG4gICAgcHVibGljIGNvbGxhcHNpYmxlOiBib29sZWFuO1xuXG4gICAgcHJvdGVjdGVkIG1hdGNoOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIGRhdGVmb3JtYXQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgaXRlbXNwZXJyb3c6IHN0cmluZztcbiAgICBwcml2YXRlIGl0ZW1zUGVyUm93Q2xhc3M6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMpO1xuICAgICAgICB0aGlzLm11bHRpcGxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cmlnZ2VySW52b2tlT25DaGFuZ2Uoa2V5cywgJGV2ZW50KSB7XG4gICAgICAgIHRoaXMubW9kZWxCeUtleSA9IGtleXM7XG5cbiAgICAgICAgaWYodGhpcy52aWV3UGFyZW50LmNvbnRhaW5lcldpZGdldClcbiAgICAgICAgICAgIHRoaXMudmlld1BhcmVudC5jb250YWluZXJXaWRnZXQudXBkYXRlRGF0YVZhbHVlKHRoaXMuZGF0YXZhbHVlKTtcblxuICAgICAgICB0aGlzLmludm9rZU9uVG91Y2hlZCgpO1xuICAgICAgICAvLyBpbnZva2Ugb24gZGF0YXZhbHVlIGNoYW5nZS5cbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSwgJGV2ZW50IHx8IHt9LCB0cnVlKTtcbiAgICB9XG5cbiAgICBvbkNoZWNrYm94TGFiZWxDbGljaygkZXZlbnQsIGtleSkge1xuICAgICAgICBpZiAoISQoJGV2ZW50LnRhcmdldCkuaXMoJ2lucHV0JykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvbnN0cnVjdCB0aGUgX21vZGVsIGZyb20gdGhlIGNoZWNrZWQgZWxlbWVudHMuXG4gICAgICAgIGNvbnN0IGlucHV0RWxlbWVudHMgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQ6Y2hlY2tlZCcpO1xuICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgIGZvckVhY2goaW5wdXRFbGVtZW50cywgKCRlbCkgPT4ge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAga2V5cy5wdXNoKCRlbC52YWx1ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudHJpZ2dlckludm9rZU9uQ2hhbmdlKGtleXMsICRldmVudCk7XG4gICAgfVxuXG4gICAgLy8gY2hhbmdlIGFuZCBibHVyIGV2ZW50cyBhcmUgYWRkZWQgZnJvbSB0aGUgdGVtcGxhdGVcbiAgICBwcm90ZWN0ZWQgaGFuZGxlRXZlbnQobm9kZTogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24sIGxvY2FsczogYW55KSB7XG4gICAgICAgIGlmIChldmVudE5hbWUgPT09ICdjbGljaycpIHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICBldmVudE5hbWUsXG4gICAgICAgICAgICAgICAgZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghJChlLnRhcmdldCkuaXMoJ2lucHV0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsb2NhbHMuJGV2ZW50ID0gZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICghaW5jbHVkZXMoWydjaGFuZ2UnXSwgZXZlbnROYW1lKSkge1xuICAgICAgICAgICAgc3VwZXIuaGFuZGxlRXZlbnQobm9kZSwgZXZlbnROYW1lLCBjYWxsYmFjaywgbG9jYWxzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCcsICdcIkVOVEVSXCInXSlcbiAgICBvbktleURvd24oJGV2ZW50KSB7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAkZXZlbnQudGFyZ2V0LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdj8pIHtcblxuICAgICAgICBpZiAoa2V5ID09PSAndGFiaW5kZXgnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ3JlcXVpcmVkJykge1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5kYXRhdmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdpdGVtc3BlcnJvdycpIHtcbiAgICAgICAgICAgIHNldExpc3RDbGFzcyh0aGlzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFncm91cGJ5XCIgW25nSWZFbHNlXT1cImdyb3VwZWRMaXN0VGVtcGxhdGVcIj5cbiAgICA8bGkgW25nQ2xhc3NdPVwiWydjaGVja2JveCcsICdhcHAtY2hlY2tib3gnLCBpdGVtY2xhc3MsIGl0ZW1zUGVyUm93Q2xhc3NdXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YXNldEl0ZW1zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgW3dtSXRlbVRlbXBsYXRlXT1cImNvbnRlbnRcIiBbdXNlckNvbXBvbmVudFBhcmFtc109XCJpdGVtXCIgcGFydGlhbENvbnRhaW5lclxuICAgICAgICAoY2xpY2spPVwib25DaGVja2JveExhYmVsQ2xpY2soJGV2ZW50LCBpdGVtLmtleSlcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gICAgICAgIDwhLS0gRGVmYXVsdCBpdGVtIHRlbXBsYXRlIC0tPlxuICAgICAgICA8bGFiZWwgKm5nSWY9XCIhY29udGVudFwiIGNsYXNzPVwiYXBwLWNoZWNrYm94c2V0LWxhYmVsXCIgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ZGlzYWJsZWQgfHwgcmVhZG9ubHl9XCIgW3RpdGxlXT1cIml0ZW0ubGFiZWxcIj5cbiAgICAgICAgICAgIDxpbnB1dCBbbmFtZV09XCInY2hlY2tib3hzZXRfJyArIHdpZGdldElkXCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5rZXlcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCIvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uXCIgW3RleHRDb250ZW50XT1cIml0ZW0ubGFiZWxcIj48L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwhLS0gQ3VzdG9tIHBhcnRpYWwgdGVtcGxhdGUgLS0+XG4gICAgICAgIDxsYWJlbCAqbmdJZj1cImNvbnRlbnRcIiBjbGFzcz1cImFwcC1jaGVja2JveHNldC1sYWJlbFwiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmRpc2FibGVkIHx8IHJlYWRvbmx5fVwiID5cbiAgICAgICAgICAgIDxpbnB1dCBbbmFtZV09XCInY2hlY2tib3hzZXRfJyArIHdpZGdldElkXCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5rZXlcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCIvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uIGN1c3RvbVRlbXBsYXRlXCIgcGFydGlhbC1jb250YWluZXItdGFyZ2V0Pjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2xpPlxuPC9uZy10ZW1wbGF0ZT5cbjxpbnB1dCBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBoaWRkZW4gY2xhc3M9XCJtb2RlbC1ob2xkZXJcIj5cbjxkaXYgKm5nSWY9XCJyZWFkb25seSB8fCBkaXNhYmxlZFwiIGNsYXNzPVwicmVhZG9ubHktd3JhcHBlclwiPjwvZGl2PlxuXG48IS0tIFRoaXMgdGVtcGxhdGUgd2lsbCBiZSBkaXNwbGF5ZWQgd2hlbiBncm91cGJ5IGlzIHNwZWNpZmllZC4gLS0+XG48bmctdGVtcGxhdGUgI2dyb3VwZWRMaXN0VGVtcGxhdGU+XG4gICAgPGxpICpuZ0Zvcj1cImxldCBncm91cE9iaiBvZiBncm91cGVkRGF0YTsgbGV0IGdyb3VwaW5kZXggPSBpbmRleDtcIiBjbGFzcz1cImFwcC1saXN0LWl0ZW0tZ3JvdXBcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gICAgICAgIDx1bCBjbGFzcz1cIml0ZW0tZ3JvdXBcIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ2dyb3VwXycgKyB3aWRnZXRJZCArICdfJyArIGdyb3VwaW5kZXhcIj5cbiAgICAgICAgICAgIDxsaSBbaWRdPVwiJ2dyb3VwXycgKyB3aWRnZXRJZCArICdfJyArIGdyb3VwaW5kZXhcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImxpc3QtZ3JvdXAtaGVhZGVyXCIgKGNsaWNrKT1cImhhbmRsZUhlYWRlckNsaWNrKCRldmVudClcIiBbdGl0bGVdPVwiZ3JvdXBPYmoua2V5XCIgW25nQ2xhc3NdPVwieydjb2xsYXBzaWJsZS1jb250ZW50JzogY29sbGFwc2libGV9XCI+XG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwiZ3JvdXAtdGl0bGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidHcm91cCAnK2dyb3VwT2JqLmtleVwiPnt7Z3JvdXBPYmoua2V5fX1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1hY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXBwLWljb24gd2kgYWN0aW9uIHdpLWNoZXZyb24tdXBcIiAqbmdJZj1cImNvbGxhcHNpYmxlXCIgdGl0bGU9XCJ7e2FwcExvY2FsZS5MQUJFTF9DT0xMQVBTRX19L3t7YXBwTG9jYWxlLkxBQkVMX0VYUEFORH19XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93Y291bnRcIiBjbGFzcz1cImxhYmVsIGxhYmVsLWRlZmF1bHRcIiBbdGV4dENvbnRlbnRdPVwiZ3JvdXBPYmouZGF0YS5sZW5ndGhcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwT2JqLmRhdGE7IGxldCBpID0gaW5kZXg7XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ2NoZWNrYm94JywgJ2FwcC1jaGVja2JveCcsICdncm91cC1saXN0LWl0ZW0nLCBpdGVtY2xhc3MsIGl0ZW1zUGVyUm93Q2xhc3NdXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFt3bUl0ZW1UZW1wbGF0ZV09XCJjb250ZW50XCIgW3VzZXJDb21wb25lbnRQYXJhbXNdPVwiaXRlbVwiIHBhcnRpYWxDb250YWluZXJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DaGVja2JveExhYmVsQ2xpY2soJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICAgICAgICAgIDwhLS0gRGVmYXVsdCBpdGVtIHRlbXBsYXRlIC0tPlxuICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cIiFjb250ZW50XCIgY2xhc3M9XCJhcHAtY2hlY2tib3hzZXQtbGFiZWxcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIiBbdGl0bGVdPVwiaXRlbS5sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW25hbWVdPVwiJ2NoZWNrYm94c2V0XycgKyB3aWRnZXRJZFwiIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCIgW2F0dHIuZGF0YS1hdHRyLWluZGV4XT1cImlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0ua2V5XCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uXCIgW3RleHRDb250ZW50XT1cIml0ZW0ubGFiZWxcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8IS0tIEN1c3RvbSBwYXJ0aWFsIHRlbXBsYXRlIC0tPlxuICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cImNvbnRlbnRcIiBjbGFzcz1cImFwcC1jaGVja2JveHNldC1sYWJlbFwiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmRpc2FibGVkIHx8IHJlYWRvbmx5fVwiID5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuYW1lXT1cIidjaGVja2JveHNldF8nICsgd2lkZ2V0SWRcIiB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvblwiIHBhcnRpYWwtY29udGFpbmVyLXRhcmdldD48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3hzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL2NoZWNrYm94c2V0L2NoZWNrYm94c2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9jaGVja2JveHNldC9jaGVja2JveHNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFvQixZQUFZLEVBQWMsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxFQUFvRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hLLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7OztJQ0RwQyxnQ0FBeUg7SUFLckgsQUFKQSwyQkFHMkUsZUFDbkI7SUFDNUQsaUJBQVE7Ozs7OztJQU40RixBQUE5Qyx5RkFBNkMsd0JBQXFCO0lBQzdHLGNBQWtDO0lBR08sQUFBdEIsQUFBbkIsQUFEQSxBQUZtQyxBQUFuQyx1REFBa0MsNkJBQXNCLGdEQUV2QixzQkFDZiw2QkFBc0IsNkJBQTBCOztJQUNuRCxjQUEwQjtJQUExQiwyQ0FBMEI7OztJQUdwRCxp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QUFpQztZQUNsQyxjQUEwQjtZQUExQixtREFBMEI7OztpRkRDbkIsb0JBQW9CO2NBWGhDLFNBQVM7MkJBQ0ksaUJBQWlCLFlBQ2pCLGVBQWUsYUFFZDtvQkFDUCxTQUFTLHVCQUF1QixpQkFBaUIsRUFBRSxJQUFJLENBQUM7b0JBQ3hELFNBQVMsdUJBQXVCLGFBQWEsRUFBRSxJQUFJLENBQUM7b0JBQ3BELGtCQUFrQixzQkFBc0I7aUJBQzNDOztzQkFnQjJCLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFRO3FCQThDaEUsU0FBUztrQkFEUixZQUFZO21CQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUM7O2tGQTFEM0Msb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBdHRyaWJ1dGUsIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgTkdfVkFMSURBVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtBcHBEZWZhdWx0cywgbm9vcCwgc2V0TGlzdENsYXNzLCBzd2l0Y2hDbGFzc30gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgY29udmVydERhdGFUb09iamVjdCwgSVdpZGdldENvbmZpZywgZ3JvdXBEYXRhLCBoYW5kbGVIZWFkZXJDbGljaywgcHJvdmlkZUFzLCBwcm92aWRlQXNXaWRnZXRSZWYsIHN0eWxlciwgdG9nZ2xlQWxsSGVhZGVycyB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGFzZXQtYXdhcmUtZm9ybS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi4vY2hlY2tib3hzZXQvY2hlY2tib3hzZXQucHJvcHMnO1xuaW1wb3J0IHtmb3JFYWNoLCBpbmNsdWRlc30gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ2FwcC1jaGVja2JveHNldCBsaXN0LWdyb3VwIGlubGluZSc7XG5jb25zdCBXSURHRVRfQ09ORklHOiBJV2lkZ2V0Q29uZmlnID0ge3dpZGdldFR5cGU6ICd3bS1jaGVja2JveHNldCcsIGhvc3RDbGFzczogREVGQVVMVF9DTFN9O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t3bUNoZWNrYm94c2V0XScsXG4gICAgZXhwb3J0QXM6ICd3bUNoZWNrYm94c2V0JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2NoZWNrYm94c2V0LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKENoZWNrYm94c2V0Q29tcG9uZW50LCBOR19WQUxVRV9BQ0NFU1NPUiwgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBcyhDaGVja2JveHNldENvbXBvbmVudCwgTkdfVkFMSURBVE9SUywgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihDaGVja2JveHNldENvbXBvbmVudClcbiAgICBdXG59KVxuXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hzZXRDb21wb25lbnQgZXh0ZW5kcyBEYXRhc2V0QXdhcmVGb3JtQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgcHVibGljIGxheW91dCA9ICcnO1xuICAgIHB1YmxpYyBjb2xsYXBzaWJsZTogYm9vbGVhbjtcblxuICAgIHByb3RlY3RlZCBtYXRjaDogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBkYXRlZm9ybWF0OiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIGl0ZW1zcGVycm93OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBpdGVtc1BlclJvd0NsYXNzOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzKTtcbiAgICAgICAgdGhpcy5tdWx0aXBsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgb25DaGVja2JveExhYmVsQ2xpY2soJGV2ZW50LCBrZXkpIHtcbiAgICAgICAgaWYgKCEkKCRldmVudC50YXJnZXQpLmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjb25zdHJ1Y3QgdGhlIF9tb2RlbCBmcm9tIHRoZSBjaGVja2VkIGVsZW1lbnRzLlxuICAgICAgICBjb25zdCBpbnB1dEVsZW1lbnRzID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0OmNoZWNrZWQnKTtcbiAgICAgICAgY29uc3Qga2V5cyA9IFtdO1xuICAgICAgICBmb3JFYWNoKGlucHV0RWxlbWVudHMsICgkZWwpID0+IHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGtleXMucHVzaCgkZWwudmFsdWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm1vZGVsQnlLZXkgPSBrZXlzO1xuXG4gICAgICAgIHRoaXMuaW52b2tlT25Ub3VjaGVkKCk7XG4gICAgICAgIC8vIGludm9rZSBvbiBkYXRhdmFsdWUgY2hhbmdlLlxuICAgICAgICB0aGlzLmludm9rZU9uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlLCAkZXZlbnQgfHwge30sIHRydWUpO1xuICAgIH1cblxuICAgIC8vIGNoYW5nZSBhbmQgYmx1ciBldmVudHMgYXJlIGFkZGVkIGZyb20gdGhlIHRlbXBsYXRlXG4gICAgcHJvdGVjdGVkIGhhbmRsZUV2ZW50KG5vZGU6IEhUTUxFbGVtZW50LCBldmVudE5hbWU6IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uLCBsb2NhbHM6IGFueSkge1xuICAgICAgICBpZiAoZXZlbnROYW1lID09PSAnY2xpY2snKSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgZXZlbnROYW1lLFxuICAgICAgICAgICAgICAgIGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZS50YXJnZXQpLmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbG9jYWxzLiRldmVudCA9IGU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWluY2x1ZGVzKFsnY2hhbmdlJ10sIGV2ZW50TmFtZSkpIHtcbiAgICAgICAgICAgIHN1cGVyLmhhbmRsZUV2ZW50KG5vZGUsIGV2ZW50TmFtZSwgY2FsbGJhY2ssIGxvY2Fscyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnLCAnXCJFTlRFUlwiJ10pXG4gICAgb25LZXlEb3duKCRldmVudCkge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgJGV2ZW50LnRhcmdldC5jbGljaygpO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3Y/KSB7XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdyZXF1aXJlZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnaXRlbXNwZXJyb3cnKSB7XG4gICAgICAgICAgICBzZXRMaXN0Q2xhc3ModGhpcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhZ3JvdXBieVwiIFtuZ0lmRWxzZV09XCJncm91cGVkTGlzdFRlbXBsYXRlXCI+XG4gICAgPGxpIFtuZ0NsYXNzXT1cIlsnY2hlY2tib3gnLCAnYXBwLWNoZWNrYm94JywgaXRlbWNsYXNzLCBpdGVtc1BlclJvd0NsYXNzXVwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFzZXRJdGVtczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFt3bUl0ZW1UZW1wbGF0ZV09XCJjb250ZW50XCIgW3VzZXJDb21wb25lbnRQYXJhbXNdPVwiaXRlbVwiIHBhcnRpYWxDb250YWluZXJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2hlY2tib3hMYWJlbENsaWNrKCRldmVudCwgaXRlbS5rZXkpXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICA8IS0tIERlZmF1bHQgaXRlbSB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwiIWNvbnRlbnRcIiBjbGFzcz1cImFwcC1jaGVja2JveHNldC1sYWJlbFwiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmRpc2FibGVkIHx8IHJlYWRvbmx5fVwiIFt0aXRsZV09XCJpdGVtLmxhYmVsXCI+XG4gICAgICAgICAgICA8aW5wdXQgW25hbWVdPVwiJ2NoZWNrYm94c2V0XycgKyB3aWRnZXRJZFwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBbYXR0ci5kYXRhLWF0dHItaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0ua2V5XCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvblwiIFt0ZXh0Q29udGVudF09XCJpdGVtLmxhYmVsXCI+PC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8IS0tIEN1c3RvbSBwYXJ0aWFsIHRlbXBsYXRlIC0tPlxuICAgICAgICA8bGFiZWwgKm5nSWY9XCJjb250ZW50XCIgY2xhc3M9XCJhcHAtY2hlY2tib3hzZXQtbGFiZWxcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIiA+XG4gICAgICAgICAgICA8aW5wdXQgW25hbWVdPVwiJ2NoZWNrYm94c2V0XycgKyB3aWRnZXRJZFwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBbYXR0ci5kYXRhLWF0dHItaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0ua2V5XCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvbiBjdXN0b21UZW1wbGF0ZVwiIHBhcnRpYWwtY29udGFpbmVyLXRhcmdldD48L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG48aW5wdXQgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCIgaGlkZGVuIGNsYXNzPVwibW9kZWwtaG9sZGVyXCI+XG48ZGl2ICpuZ0lmPVwicmVhZG9ubHkgfHwgZGlzYWJsZWRcIiBjbGFzcz1cInJlYWRvbmx5LXdyYXBwZXJcIj48L2Rpdj5cblxuPCEtLSBUaGlzIHRlbXBsYXRlIHdpbGwgYmUgZGlzcGxheWVkIHdoZW4gZ3JvdXBieSBpcyBzcGVjaWZpZWQuIC0tPlxuPG5nLXRlbXBsYXRlICNncm91cGVkTGlzdFRlbXBsYXRlPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgZ3JvdXBPYmogb2YgZ3JvdXBlZERhdGE7IGxldCBncm91cGluZGV4ID0gaW5kZXg7XCIgY2xhc3M9XCJhcHAtbGlzdC1pdGVtLWdyb3VwXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJpdGVtLWdyb3VwXCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIidncm91cF8nICsgd2lkZ2V0SWQgKyAnXycgKyBncm91cGluZGV4XCI+XG4gICAgICAgICAgICA8bGkgW2lkXT1cIidncm91cF8nICsgd2lkZ2V0SWQgKyAnXycgKyBncm91cGluZGV4XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJsaXN0LWdyb3VwLWhlYWRlclwiIChjbGljayk9XCJoYW5kbGVIZWFkZXJDbGljaygkZXZlbnQpXCIgW3RpdGxlXT1cImdyb3VwT2JqLmtleVwiIFtuZ0NsYXNzXT1cInsnY29sbGFwc2libGUtY29udGVudCc6IGNvbGxhcHNpYmxlfVwiPlxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cImdyb3VwLXRpdGxlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInR3JvdXAgJytncm91cE9iai5rZXlcIj57e2dyb3VwT2JqLmtleX19XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImFwcC1pY29uIHdpIGFjdGlvbiB3aS1jaGV2cm9uLXVwXCIgKm5nSWY9XCJjb2xsYXBzaWJsZVwiIHRpdGxlPVwie3thcHBMb2NhbGUuTEFCRUxfQ09MTEFQU0V9fS97e2FwcExvY2FsZS5MQUJFTF9FWFBBTkR9fVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2hvd2NvdW50XCIgY2xhc3M9XCJsYWJlbCBsYWJlbC1kZWZhdWx0XCIgW3RleHRDb250ZW50XT1cImdyb3VwT2JqLmRhdGEubGVuZ3RoXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cE9iai5kYXRhOyBsZXQgaSA9IGluZGV4O1wiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiWydjaGVja2JveCcsICdhcHAtY2hlY2tib3gnLCAnZ3JvdXAtbGlzdC1pdGVtJywgaXRlbWNsYXNzLCBpdGVtc1BlclJvd0NsYXNzXVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICBbd21JdGVtVGVtcGxhdGVdPVwiY29udGVudFwiIFt1c2VyQ29tcG9uZW50UGFyYW1zXT1cIml0ZW1cIiBwYXJ0aWFsQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hlY2tib3hMYWJlbENsaWNrKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgICAgICAgICA8IS0tIERlZmF1bHQgaXRlbSB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCIhY29udGVudFwiIGNsYXNzPVwiYXBwLWNoZWNrYm94c2V0LWxhYmVsXCIgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ZGlzYWJsZWQgfHwgcmVhZG9ubHl9XCIgW3RpdGxlXT1cIml0ZW0ubGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuYW1lXT1cIidjaGVja2JveHNldF8nICsgd2lkZ2V0SWRcIiB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvblwiIFt0ZXh0Q29udGVudF09XCJpdGVtLmxhYmVsXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPCEtLSBDdXN0b20gcGFydGlhbCB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJjb250ZW50XCIgY2xhc3M9XCJhcHAtY2hlY2tib3hzZXQtbGFiZWxcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIiA+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbbmFtZV09XCInY2hlY2tib3hzZXRfJyArIHdpZGdldElkXCIgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBbYXR0ci5kYXRhLWF0dHItaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5rZXlcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCIvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHRpb25cIiBwYXJ0aWFsLWNvbnRhaW5lci10YXJnZXQ+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPlxuIl19