@wavemaker/app-ng-runtime 12.0.0-next.45031 → 12.0.0-next.45501

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +405 -451
  2. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +2 -3
  3. app-ng-runtime/build-task/esm2022/public_api.mjs +1 -3
  4. app-ng-runtime/build-task/fesm2022/index.mjs +406 -454
  5. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  6. app-ng-runtime/build-task/public_api.d.ts +0 -2
  7. app-ng-runtime/components/base/bundles/index.umd.js +14 -62
  8. app-ng-runtime/components/base/components.module.d.ts +11 -12
  9. app-ng-runtime/components/base/esm2022/components.module.mjs +1 -5
  10. app-ng-runtime/components/base/esm2022/public_api.mjs +1 -2
  11. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +15 -25
  12. app-ng-runtime/components/base/fesm2022/index.mjs +15 -62
  13. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  14. app-ng-runtime/components/base/public_api.d.ts +0 -1
  15. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +5 -10
  16. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +17 -0
  17. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +18 -1
  18. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +17 -0
  19. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  20. app-ng-runtime/components/containers/wizard/wizard.component.d.ts +1 -0
  21. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +1 -3
  22. app-ng-runtime/components/data/form/fesm2022/index.mjs +0 -2
  23. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  24. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +11 -0
  25. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +12 -1
  26. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +11 -0
  27. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  28. app-ng-runtime/components/input/default/bundles/index.umd.js +63 -39
  29. app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +0 -1
  30. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +5 -8
  31. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +5 -8
  32. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +57 -29
  33. app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +1 -4
  34. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +2 -2
  35. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +4 -1
  36. app-ng-runtime/components/input/default/fesm2022/index.mjs +63 -39
  37. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  38. app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +0 -1
  39. app-ng-runtime/components/input/default/select/select.component.d.ts +2 -4
  40. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +3 -2
  41. app-ng-runtime/components/input/epoch/bundles/index.umd.js +3 -0
  42. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +4 -1
  43. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +3 -0
  44. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  45. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +31 -5
  46. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +34 -8
  47. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +32 -6
  48. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  49. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +6 -2
  50. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +2 -2
  51. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +2 -2
  52. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
  53. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +2 -2
  54. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  55. app-ng-runtime/core/bundles/index.umd.js +6 -16
  56. app-ng-runtime/core/enums/enums.d.ts +1 -2
  57. app-ng-runtime/core/esm2022/enums/enums.mjs +1 -2
  58. app-ng-runtime/core/esm2022/types/types.mjs +1 -4
  59. app-ng-runtime/core/esm2022/utils/build-utils.mjs +1 -6
  60. app-ng-runtime/core/esm2022/utils/utils.mjs +4 -3
  61. app-ng-runtime/core/fesm2022/index.mjs +4 -12
  62. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  63. app-ng-runtime/core/types/types.d.ts +1 -5
  64. app-ng-runtime/core/utils/utils.d.ts +1 -0
  65. app-ng-runtime/mobile/core/bundles/index.umd.js +18 -2
  66. app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +19 -3
  67. app-ng-runtime/mobile/core/fesm2022/index.mjs +18 -2
  68. app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
  69. app-ng-runtime/package.json +1 -1
  70. app-ng-runtime/runtime/base/bundles/index.umd.js +5 -288
  71. app-ng-runtime/runtime/base/esm2022/public_api.mjs +1 -2
  72. app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +1 -6
  73. app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
  74. app-ng-runtime/runtime/base/esm2022/types/types.mjs +1 -2
  75. app-ng-runtime/runtime/base/fesm2022/index.mjs +4 -287
  76. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  77. app-ng-runtime/runtime/base/public_api.d.ts +0 -1
  78. app-ng-runtime/runtime/base/runtime-base.module.d.ts +8 -9
  79. app-ng-runtime/runtime/base/types/types.d.ts +1 -2
  80. app-ng-runtime/runtime/dynamic/bundles/index.umd.js +9 -27
  81. app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +2 -5
  82. app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +7 -23
  83. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +7 -26
  84. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  85. app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  86. app-ng-runtime/scripts/datatable/datatable.js +6 -3
  87. app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -3
  88. app-ng-runtime/transpiler/bundles/index.umd.js +0 -5
  89. app-ng-runtime/transpiler/esm2022/build.mjs +1 -4
  90. app-ng-runtime/transpiler/esm2022/imports.mjs +1 -3
  91. app-ng-runtime/transpiler/fesm2022/index.mjs +0 -5
  92. app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
  93. app-ng-runtime/build-task/advanced/custom-widget-container/custom-widget-container.build.d.ts +0 -2
  94. app-ng-runtime/build-task/advanced/custom-widget-wrapper/custom-widget-wrapper.build.d.ts +0 -2
  95. app-ng-runtime/build-task/esm2022/advanced/custom-widget-container/custom-widget-container.build.mjs +0 -15
  96. app-ng-runtime/build-task/esm2022/advanced/custom-widget-wrapper/custom-widget-wrapper.build.mjs +0 -26
  97. app-ng-runtime/components/advanced/custom/.npmignore +0 -2
  98. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +0 -232
  99. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +0 -19
  100. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +0 -2
  101. app-ng-runtime/components/advanced/custom/custom-widget-prop.d.ts +0 -1
  102. app-ng-runtime/components/advanced/custom/custom-widget.directive.d.ts +0 -19
  103. app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +0 -10
  104. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +0 -102
  105. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +0 -12
  106. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-prop.mjs +0 -8
  107. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +0 -68
  108. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +0 -32
  109. app-ng-runtime/components/advanced/custom/esm2022/index.mjs +0 -5
  110. app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +0 -4
  111. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +0 -215
  112. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +0 -1
  113. app-ng-runtime/components/advanced/custom/index.d.ts +0 -5
  114. app-ng-runtime/components/advanced/custom/package.json +0 -23
  115. app-ng-runtime/components/advanced/custom/public_api.d.ts +0 -3
  116. app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +0 -39
  117. app-ng-runtime/components/base/widgets/common/base/custom-widget-container.directive.d.ts +0 -14
  118. app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +0 -72
  119. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +0 -288
@@ -167,12 +167,6 @@ export class CheckboxsetComponent extends DatasetAwareFormComponent {
167
167
  styler(this.nativeElement, this);
168
168
  this.multiple = true;
169
169
  }
170
- triggerInvokeOnChange(keys, $event) {
171
- this.modelByKey = keys;
172
- this.invokeOnTouched();
173
- // invoke on datavalue change.
174
- this.invokeOnChange(this.datavalue, $event || {}, true);
175
- }
176
170
  onCheckboxLabelClick($event, key) {
177
171
  if (!$($event.target).is('input')) {
178
172
  return;
@@ -184,7 +178,10 @@ export class CheckboxsetComponent extends DatasetAwareFormComponent {
184
178
  // @ts-ignore
185
179
  keys.push($el.value);
186
180
  });
187
- this.triggerInvokeOnChange(keys, $event);
181
+ this.modelByKey = keys;
182
+ this.invokeOnTouched();
183
+ // invoke on datavalue change.
184
+ this.invokeOnChange(this.datavalue, $event || {}, true);
188
185
  }
189
186
  // change and blur events are added from the template
190
187
  handleEvent(node, eventName, callback, locals) {
@@ -257,4 +254,4 @@ export class CheckboxsetComponent extends DatasetAwareFormComponent {
257
254
  args: ['keydown.enter', ['$event', '"ENTER"']]
258
255
  }] }); })();
259
256
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CheckboxsetComponent, { className: "CheckboxsetComponent", filePath: "checkboxset/checkboxset.component.ts", lineNumber: 27 }); })();
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3hzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL2NoZWNrYm94c2V0L2NoZWNrYm94c2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9jaGVja2JveHNldC9jaGVja2JveHNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFvQixZQUFZLEVBQWMsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxFQUFvRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hLLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7OztJQ0RwQyxnQ0FBeUg7SUFLckgsQUFKQSwyQkFHMkUsZUFDbkI7SUFDNUQsaUJBQVE7Ozs7OztJQU40RixBQUE5Qyx5RkFBNkMsd0JBQXFCO0lBQzdHLGNBQWtDO0lBR08sQUFBdEIsQUFBbkIsQUFEQSxBQURBLEFBREEsdURBQWtDLDZCQUNiLGdEQUNZLHNCQUNmLDZCQUFzQiw2QkFBMEI7O0lBQ25ELGNBQTBCO0lBQTFCLDJDQUEwQjs7O0lBR3BELGlDQUFv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WUE1QkgsQUFBbEIsbUNBQWlCLHFDQUFpQztZQXdCeEQsY0FBaUM7WUFBakMsdURBQWlDO1lBQ2xDLGNBQTBCO1lBQTFCLG1EQUEwQjs7O2lGRENuQixvQkFBb0I7Y0FYaEMsU0FBUzsyQkFDSSxpQkFBaUIsWUFDakIsZUFBZSxhQUVkO29CQUNQLFNBQVMsdUJBQXVCLGlCQUFpQixFQUFFLElBQUksQ0FBQztvQkFDeEQsU0FBUyx1QkFBdUIsYUFBYSxFQUFFLElBQUksQ0FBQztvQkFDcEQsa0JBQWtCLHNCQUFzQjtpQkFDM0M7O3NCQWdCMkIsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVE7cUJBa0RoRSxTQUFTO2tCQURSLFlBQVk7bUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQzs7a0ZBOUQzQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0F0dHJpYnV0ZSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBOR19WQUxJREFUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge0FwcERlZmF1bHRzLCBub29wLCBzZXRMaXN0Q2xhc3MsIHN3aXRjaENsYXNzfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBjb252ZXJ0RGF0YVRvT2JqZWN0LCBJV2lkZ2V0Q29uZmlnLCBncm91cERhdGEsIGhhbmRsZUhlYWRlckNsaWNrLCBwcm92aWRlQXMsIHByb3ZpZGVBc1dpZGdldFJlZiwgc3R5bGVyLCB0b2dnbGVBbGxIZWFkZXJzIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBEYXRhc2V0QXdhcmVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YXNldC1hd2FyZS1mb3JtLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuLi9jaGVja2JveHNldC9jaGVja2JveHNldC5wcm9wcyc7XG5pbXBvcnQge2ZvckVhY2gsIGluY2x1ZGVzfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmRlY2xhcmUgY29uc3QgJDtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWNoZWNrYm94c2V0IGxpc3QtZ3JvdXAgaW5saW5lJztcbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7d2lkZ2V0VHlwZTogJ3dtLWNoZWNrYm94c2V0JywgaG9zdENsYXNzOiBERUZBVUxUX0NMU307XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtQ2hlY2tib3hzZXRdJyxcbiAgICBleHBvcnRBczogJ3dtQ2hlY2tib3hzZXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnY2hlY2tib3hzZXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXMoQ2hlY2tib3hzZXRDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzKENoZWNrYm94c2V0Q29tcG9uZW50LCBOR19WQUxJREFUT1JTLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKENoZWNrYm94c2V0Q29tcG9uZW50KVxuICAgIF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBDaGVja2JveHNldENvbXBvbmVudCBleHRlbmRzIERhdGFzZXRBd2FyZUZvcm1Db21wb25lbnQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgbGF5b3V0ID0gJyc7XG4gICAgcHVibGljIGNvbGxhcHNpYmxlOiBib29sZWFuO1xuXG4gICAgcHJvdGVjdGVkIG1hdGNoOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIGRhdGVmb3JtYXQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgaXRlbXNwZXJyb3c6IHN0cmluZztcbiAgICBwcml2YXRlIGl0ZW1zUGVyUm93Q2xhc3M6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMpO1xuICAgICAgICB0aGlzLm11bHRpcGxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cmlnZ2VySW52b2tlT25DaGFuZ2Uoa2V5cywgJGV2ZW50KSB7XG4gICAgICAgIHRoaXMubW9kZWxCeUtleSA9IGtleXM7XG5cbiAgICAgICAgdGhpcy5pbnZva2VPblRvdWNoZWQoKTtcbiAgICAgICAgLy8gaW52b2tlIG9uIGRhdGF2YWx1ZSBjaGFuZ2UuXG4gICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UodGhpcy5kYXRhdmFsdWUsICRldmVudCB8fCB7fSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgb25DaGVja2JveExhYmVsQ2xpY2soJGV2ZW50LCBrZXkpIHtcbiAgICAgICAgaWYgKCEkKCRldmVudC50YXJnZXQpLmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjb25zdHJ1Y3QgdGhlIF9tb2RlbCBmcm9tIHRoZSBjaGVja2VkIGVsZW1lbnRzLlxuICAgICAgICBjb25zdCBpbnB1dEVsZW1lbnRzID0gdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0OmNoZWNrZWQnKTtcbiAgICAgICAgY29uc3Qga2V5cyA9IFtdO1xuICAgICAgICBmb3JFYWNoKGlucHV0RWxlbWVudHMsICgkZWwpID0+IHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGtleXMucHVzaCgkZWwudmFsdWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnRyaWdnZXJJbnZva2VPbkNoYW5nZShrZXlzLCAkZXZlbnQpO1xuICAgIH1cblxuICAgIC8vIGNoYW5nZSBhbmQgYmx1ciBldmVudHMgYXJlIGFkZGVkIGZyb20gdGhlIHRlbXBsYXRlXG4gICAgcHJvdGVjdGVkIGhhbmRsZUV2ZW50KG5vZGU6IEhUTUxFbGVtZW50LCBldmVudE5hbWU6IHN0cmluZywgY2FsbGJhY2s6IEZ1bmN0aW9uLCBsb2NhbHM6IGFueSkge1xuICAgICAgICBpZiAoZXZlbnROYW1lID09PSAnY2xpY2snKSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgZXZlbnROYW1lLFxuICAgICAgICAgICAgICAgIGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZS50YXJnZXQpLmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbG9jYWxzLiRldmVudCA9IGU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWluY2x1ZGVzKFsnY2hhbmdlJ10sIGV2ZW50TmFtZSkpIHtcbiAgICAgICAgICAgIHN1cGVyLmhhbmRsZUV2ZW50KG5vZGUsIGV2ZW50TmFtZSwgY2FsbGJhY2ssIGxvY2Fscyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnLCAnXCJFTlRFUlwiJ10pXG4gICAgb25LZXlEb3duKCRldmVudCkge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgJGV2ZW50LnRhcmdldC5jbGljaygpO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3Y/KSB7XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdyZXF1aXJlZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnaXRlbXNwZXJyb3cnKSB7XG4gICAgICAgICAgICBzZXRMaXN0Q2xhc3ModGhpcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBbbmdJZl09XCIhZ3JvdXBieVwiIFtuZ0lmRWxzZV09XCJncm91cGVkTGlzdFRlbXBsYXRlXCI+XG4gICAgPGxpIFtuZ0NsYXNzXT1cIlsnY2hlY2tib3gnLCAnYXBwLWNoZWNrYm94JywgaXRlbWNsYXNzLCBpdGVtc1BlclJvd0NsYXNzXVwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFzZXRJdGVtczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFt3bUl0ZW1UZW1wbGF0ZV09XCJjb250ZW50XCIgW3VzZXJDb21wb25lbnRQYXJhbXNdPVwiaXRlbVwiIHBhcnRpYWxDb250YWluZXJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2hlY2tib3hMYWJlbENsaWNrKCRldmVudCwgaXRlbS5rZXkpXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICA8IS0tIERlZmF1bHQgaXRlbSB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwiIWNvbnRlbnRcIiBjbGFzcz1cImFwcC1jaGVja2JveHNldC1sYWJlbFwiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmRpc2FibGVkIHx8IHJlYWRvbmx5fVwiIFt0aXRsZV09XCJpdGVtLmxhYmVsXCI+XG4gICAgICAgICAgICA8aW5wdXQgW25hbWVdPVwiJ2NoZWNrYm94c2V0XycgKyB3aWRnZXRJZFwiIHR5cGU9XCJjaGVja2JveFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5rZXlcIlxuICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFthdHRyLmFyaWEtY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBbYXR0ci5kYXRhLWF0dHItaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0ua2V5XCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvblwiIFt0ZXh0Q29udGVudF09XCJpdGVtLmxhYmVsXCI+PC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8IS0tIEN1c3RvbSBwYXJ0aWFsIHRlbXBsYXRlIC0tPlxuICAgICAgICA8bGFiZWwgKm5nSWY9XCJjb250ZW50XCIgY2xhc3M9XCJhcHAtY2hlY2tib3hzZXQtbGFiZWxcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIiA+XG4gICAgICAgICAgICA8aW5wdXQgW25hbWVdPVwiJ2NoZWNrYm94c2V0XycgKyB3aWRnZXRJZFwiIHR5cGU9XCJjaGVja2JveFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5rZXlcIlxuICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFthdHRyLmFyaWEtY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBbYXR0ci5kYXRhLWF0dHItaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0ua2V5XCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvbiBjdXN0b21UZW1wbGF0ZVwiIHBhcnRpYWwtY29udGFpbmVyLXRhcmdldD48L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG48aW5wdXQgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCIgaGlkZGVuIGNsYXNzPVwibW9kZWwtaG9sZGVyXCI+XG48ZGl2ICpuZ0lmPVwicmVhZG9ubHkgfHwgZGlzYWJsZWRcIiBjbGFzcz1cInJlYWRvbmx5LXdyYXBwZXJcIj48L2Rpdj5cblxuPCEtLSBUaGlzIHRlbXBsYXRlIHdpbGwgYmUgZGlzcGxheWVkIHdoZW4gZ3JvdXBieSBpcyBzcGVjaWZpZWQuIC0tPlxuPG5nLXRlbXBsYXRlICNncm91cGVkTGlzdFRlbXBsYXRlPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgZ3JvdXBPYmogb2YgZ3JvdXBlZERhdGFcIiBjbGFzcz1cImFwcC1saXN0LWl0ZW0tZ3JvdXBcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gICAgICAgIDx1bCBjbGFzcz1cIml0ZW0tZ3JvdXBcIj5cbiAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaGVhZGVyXCIgKGNsaWNrKT1cImhhbmRsZUhlYWRlckNsaWNrKCRldmVudClcIiBbdGl0bGVdPVwiZ3JvdXBPYmoua2V5XCIgW25nQ2xhc3NdPVwieydjb2xsYXBzaWJsZS1jb250ZW50JzogY29sbGFwc2libGV9XCI+XG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwiZ3JvdXAtdGl0bGVcIj57e2dyb3VwT2JqLmtleX19XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImFwcC1pY29uIHdpIGFjdGlvbiB3aS1jaGV2cm9uLXVwXCIgKm5nSWY9XCJjb2xsYXBzaWJsZVwiIHRpdGxlPVwie3thcHBMb2NhbGUuTEFCRUxfQ09MTEFQU0V9fS97e2FwcExvY2FsZS5MQUJFTF9FWFBBTkR9fVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2hvd2NvdW50XCIgY2xhc3M9XCJsYWJlbCBsYWJlbC1kZWZhdWx0XCIgW3RleHRDb250ZW50XT1cImdyb3VwT2JqLmRhdGEubGVuZ3RoXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2g0PlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cE9iai5kYXRhOyBsZXQgaSA9IGluZGV4O1wiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiWydjaGVja2JveCcsICdhcHAtY2hlY2tib3gnLCAnZ3JvdXAtbGlzdC1pdGVtJywgaXRlbWNsYXNzLCBpdGVtc1BlclJvd0NsYXNzXVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICBbd21JdGVtVGVtcGxhdGVdPVwiY29udGVudFwiIFt1c2VyQ29tcG9uZW50UGFyYW1zXT1cIml0ZW1cIiBwYXJ0aWFsQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hlY2tib3hMYWJlbENsaWNrKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgICAgICAgICA8IS0tIERlZmF1bHQgaXRlbSB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCIhY29udGVudFwiIGNsYXNzPVwiYXBwLWNoZWNrYm94c2V0LWxhYmVsXCIgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ZGlzYWJsZWQgfHwgcmVhZG9ubHl9XCIgW3RpdGxlXT1cIml0ZW0ubGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuYW1lXT1cIidjaGVja2JveHNldF8nICsgd2lkZ2V0SWRcIiB0eXBlPVwiY2hlY2tib3hcIiBhcmlhLWxhYmVsPVwiY2hlY2tib3ggZ3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvblwiIFt0ZXh0Q29udGVudF09XCJpdGVtLmxhYmVsXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPCEtLSBDdXN0b20gcGFydGlhbCB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJjb250ZW50XCIgY2xhc3M9XCJhcHAtY2hlY2tib3hzZXQtbGFiZWxcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIiA+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbbmFtZV09XCInY2hlY2tib3hzZXRfJyArIHdpZGdldElkXCIgdHlwZT1cImNoZWNrYm94XCIgYXJpYS1sYWJlbD1cImNoZWNrYm94IGdyb3VwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBbYXR0ci5kYXRhLWF0dHItaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5rZXlcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCIvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHRpb25cIiBwYXJ0aWFsLWNvbnRhaW5lci10YXJnZXQ+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgIDwvbGk+XG48L25nLXRlbXBsYXRlPlxuIl19
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3hzZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL2NoZWNrYm94c2V0L2NoZWNrYm94c2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9jaGVja2JveHNldC9jaGVja2JveHNldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVksU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFvQixZQUFZLEVBQWMsTUFBTSxVQUFVLENBQUM7QUFDdEUsT0FBTyxFQUFvRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ2hLLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7OztJQ0RwQyxnQ0FBeUg7SUFLckgsQUFKQSwyQkFHMkUsZUFDbkI7SUFDNUQsaUJBQVE7Ozs7OztJQU40RixBQUE5Qyx5RkFBNkMsd0JBQXFCO0lBQzdHLGNBQWtDO0lBR08sQUFBdEIsQUFBbkIsQUFEQSxBQURBLEFBREEsdURBQWtDLDZCQUNiLGdEQUNZLHNCQUNmLDZCQUFzQiw2QkFBMEI7O0lBQ25ELGNBQTBCO0lBQTFCLDJDQUEwQjs7O0lBR3BELGlDQUFv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aEMsU0FBUzsyQkFDSSxpQkFBaUIsWUFDakIsZUFBZSxhQUVkO29CQUNQLFNBQVMsdUJBQXVCLGlCQUFpQixFQUFFLElBQUksQ0FBQztvQkFDeEQsU0FBUyx1QkFBdUIsYUFBYSxFQUFFLElBQUksQ0FBQztvQkFDcEQsa0JBQWtCLHNCQUFzQjtpQkFDM0M7O3NCQWdCMkIsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVE7cUJBOENoRSxTQUFTO2tCQURSLFlBQVk7bUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQzs7a0ZBMUQzQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0F0dHJpYnV0ZSwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SLCBOR19WQUxJREFUT1JTIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge0FwcERlZmF1bHRzLCBub29wLCBzZXRMaXN0Q2xhc3MsIHN3aXRjaENsYXNzfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBjb252ZXJ0RGF0YVRvT2JqZWN0LCBJV2lkZ2V0Q29uZmlnLCBncm91cERhdGEsIGhhbmRsZUhlYWRlckNsaWNrLCBwcm92aWRlQXMsIHByb3ZpZGVBc1dpZGdldFJlZiwgc3R5bGVyLCB0b2dnbGVBbGxIZWFkZXJzIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBEYXRhc2V0QXdhcmVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0YXNldC1hd2FyZS1mb3JtLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuLi9jaGVja2JveHNldC9jaGVja2JveHNldC5wcm9wcyc7XG5pbXBvcnQge2ZvckVhY2gsIGluY2x1ZGVzfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmRlY2xhcmUgY29uc3QgJDtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWNoZWNrYm94c2V0IGxpc3QtZ3JvdXAgaW5saW5lJztcbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7d2lkZ2V0VHlwZTogJ3dtLWNoZWNrYm94c2V0JywgaG9zdENsYXNzOiBERUZBVUxUX0NMU307XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtQ2hlY2tib3hzZXRdJyxcbiAgICBleHBvcnRBczogJ3dtQ2hlY2tib3hzZXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnY2hlY2tib3hzZXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXMoQ2hlY2tib3hzZXRDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzKENoZWNrYm94c2V0Q29tcG9uZW50LCBOR19WQUxJREFUT1JTLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKENoZWNrYm94c2V0Q29tcG9uZW50KVxuICAgIF1cbn0pXG5cbmV4cG9ydCBjbGFzcyBDaGVja2JveHNldENvbXBvbmVudCBleHRlbmRzIERhdGFzZXRBd2FyZUZvcm1Db21wb25lbnQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgbGF5b3V0ID0gJyc7XG4gICAgcHVibGljIGNvbGxhcHNpYmxlOiBib29sZWFuO1xuXG4gICAgcHJvdGVjdGVkIG1hdGNoOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIGRhdGVmb3JtYXQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgaXRlbXNwZXJyb3c6IHN0cmluZztcbiAgICBwcml2YXRlIGl0ZW1zUGVyUm93Q2xhc3M6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMpO1xuICAgICAgICB0aGlzLm11bHRpcGxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBvbkNoZWNrYm94TGFiZWxDbGljaygkZXZlbnQsIGtleSkge1xuICAgICAgICBpZiAoISQoJGV2ZW50LnRhcmdldCkuaXMoJ2lucHV0JykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNvbnN0cnVjdCB0aGUgX21vZGVsIGZyb20gdGhlIGNoZWNrZWQgZWxlbWVudHMuXG4gICAgICAgIGNvbnN0IGlucHV0RWxlbWVudHMgPSB0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQ6Y2hlY2tlZCcpO1xuICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgIGZvckVhY2goaW5wdXRFbGVtZW50cywgKCRlbCkgPT4ge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAga2V5cy5wdXNoKCRlbC52YWx1ZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubW9kZWxCeUtleSA9IGtleXM7XG5cbiAgICAgICAgdGhpcy5pbnZva2VPblRvdWNoZWQoKTtcbiAgICAgICAgLy8gaW52b2tlIG9uIGRhdGF2YWx1ZSBjaGFuZ2UuXG4gICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UodGhpcy5kYXRhdmFsdWUsICRldmVudCB8fCB7fSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gY2hhbmdlIGFuZCBibHVyIGV2ZW50cyBhcmUgYWRkZWQgZnJvbSB0aGUgdGVtcGxhdGVcbiAgICBwcm90ZWN0ZWQgaGFuZGxlRXZlbnQobm9kZTogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24sIGxvY2FsczogYW55KSB7XG4gICAgICAgIGlmIChldmVudE5hbWUgPT09ICdjbGljaycpIHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICBldmVudE5hbWUsXG4gICAgICAgICAgICAgICAgZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghJChlLnRhcmdldCkuaXMoJ2lucHV0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsb2NhbHMuJGV2ZW50ID0gZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIGlmICghaW5jbHVkZXMoWydjaGFuZ2UnXSwgZXZlbnROYW1lKSkge1xuICAgICAgICAgICAgc3VwZXIuaGFuZGxlRXZlbnQobm9kZSwgZXZlbnROYW1lLCBjYWxsYmFjaywgbG9jYWxzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCcsICdcIkVOVEVSXCInXSlcbiAgICBvbktleURvd24oJGV2ZW50KSB7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAkZXZlbnQudGFyZ2V0LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdj8pIHtcblxuICAgICAgICBpZiAoa2V5ID09PSAndGFiaW5kZXgnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ3JlcXVpcmVkJykge1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5kYXRhdmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdpdGVtc3BlcnJvdycpIHtcbiAgICAgICAgICAgIHNldExpc3RDbGFzcyh0aGlzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFncm91cGJ5XCIgW25nSWZFbHNlXT1cImdyb3VwZWRMaXN0VGVtcGxhdGVcIj5cbiAgICA8bGkgW25nQ2xhc3NdPVwiWydjaGVja2JveCcsICdhcHAtY2hlY2tib3gnLCBpdGVtY2xhc3MsIGl0ZW1zUGVyUm93Q2xhc3NdXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YXNldEl0ZW1zOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgW3dtSXRlbVRlbXBsYXRlXT1cImNvbnRlbnRcIiBbdXNlckNvbXBvbmVudFBhcmFtc109XCJpdGVtXCIgcGFydGlhbENvbnRhaW5lclxuICAgICAgICAoY2xpY2spPVwib25DaGVja2JveExhYmVsQ2xpY2soJGV2ZW50LCBpdGVtLmtleSlcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gICAgICAgIDwhLS0gRGVmYXVsdCBpdGVtIHRlbXBsYXRlIC0tPlxuICAgICAgICA8bGFiZWwgKm5nSWY9XCIhY29udGVudFwiIGNsYXNzPVwiYXBwLWNoZWNrYm94c2V0LWxhYmVsXCIgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ZGlzYWJsZWQgfHwgcmVhZG9ubHl9XCIgW3RpdGxlXT1cIml0ZW0ubGFiZWxcIj5cbiAgICAgICAgICAgIDxpbnB1dCBbbmFtZV09XCInY2hlY2tib3hzZXRfJyArIHdpZGdldElkXCIgdHlwZT1cImNoZWNrYm94XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmtleVwiXG4gICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW2F0dHIuYXJpYS1jaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5rZXlcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCIvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uXCIgW3RleHRDb250ZW50XT1cIml0ZW0ubGFiZWxcIj48L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwhLS0gQ3VzdG9tIHBhcnRpYWwgdGVtcGxhdGUgLS0+XG4gICAgICAgIDxsYWJlbCAqbmdJZj1cImNvbnRlbnRcIiBjbGFzcz1cImFwcC1jaGVja2JveHNldC1sYWJlbFwiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmRpc2FibGVkIHx8IHJlYWRvbmx5fVwiID5cbiAgICAgICAgICAgIDxpbnB1dCBbbmFtZV09XCInY2hlY2tib3hzZXRfJyArIHdpZGdldElkXCIgdHlwZT1cImNoZWNrYm94XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmtleVwiXG4gICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW2F0dHIuYXJpYS1jaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5rZXlcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCIvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uIGN1c3RvbVRlbXBsYXRlXCIgcGFydGlhbC1jb250YWluZXItdGFyZ2V0Pjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2xpPlxuPC9uZy10ZW1wbGF0ZT5cbjxpbnB1dCBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBoaWRkZW4gY2xhc3M9XCJtb2RlbC1ob2xkZXJcIj5cbjxkaXYgKm5nSWY9XCJyZWFkb25seSB8fCBkaXNhYmxlZFwiIGNsYXNzPVwicmVhZG9ubHktd3JhcHBlclwiPjwvZGl2PlxuXG48IS0tIFRoaXMgdGVtcGxhdGUgd2lsbCBiZSBkaXNwbGF5ZWQgd2hlbiBncm91cGJ5IGlzIHNwZWNpZmllZC4gLS0+XG48bmctdGVtcGxhdGUgI2dyb3VwZWRMaXN0VGVtcGxhdGU+XG4gICAgPGxpICpuZ0Zvcj1cImxldCBncm91cE9iaiBvZiBncm91cGVkRGF0YVwiIGNsYXNzPVwiYXBwLWxpc3QtaXRlbS1ncm91cFwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj5cbiAgICAgICAgPHVsIGNsYXNzPVwiaXRlbS1ncm91cFwiPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1ncm91cC1oZWFkZXJcIiAoY2xpY2spPVwiaGFuZGxlSGVhZGVyQ2xpY2soJGV2ZW50KVwiIFt0aXRsZV09XCJncm91cE9iai5rZXlcIiBbbmdDbGFzc109XCJ7J2NvbGxhcHNpYmxlLWNvbnRlbnQnOiBjb2xsYXBzaWJsZX1cIj5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJncm91cC10aXRsZVwiPnt7Z3JvdXBPYmoua2V5fX1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1hY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXBwLWljb24gd2kgYWN0aW9uIHdpLWNoZXZyb24tdXBcIiAqbmdJZj1cImNvbGxhcHNpYmxlXCIgdGl0bGU9XCJ7e2FwcExvY2FsZS5MQUJFTF9DT0xMQVBTRX19L3t7YXBwTG9jYWxlLkxBQkVMX0VYUEFORH19XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93Y291bnRcIiBjbGFzcz1cImxhYmVsIGxhYmVsLWRlZmF1bHRcIiBbdGV4dENvbnRlbnRdPVwiZ3JvdXBPYmouZGF0YS5sZW5ndGhcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwT2JqLmRhdGE7IGxldCBpID0gaW5kZXg7XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ2NoZWNrYm94JywgJ2FwcC1jaGVja2JveCcsICdncm91cC1saXN0LWl0ZW0nLCBpdGVtY2xhc3MsIGl0ZW1zUGVyUm93Q2xhc3NdXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFt3bUl0ZW1UZW1wbGF0ZV09XCJjb250ZW50XCIgW3VzZXJDb21wb25lbnRQYXJhbXNdPVwiaXRlbVwiIHBhcnRpYWxDb250YWluZXJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DaGVja2JveExhYmVsQ2xpY2soJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICAgICAgICAgIDwhLS0gRGVmYXVsdCBpdGVtIHRlbXBsYXRlIC0tPlxuICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cIiFjb250ZW50XCIgY2xhc3M9XCJhcHAtY2hlY2tib3hzZXQtbGFiZWxcIiBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIiBbdGl0bGVdPVwiaXRlbS5sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW25hbWVdPVwiJ2NoZWNrYm94c2V0XycgKyB3aWRnZXRJZFwiIHR5cGU9XCJjaGVja2JveFwiIGFyaWEtbGFiZWw9XCJjaGVja2JveCBncm91cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCIgW2F0dHIuZGF0YS1hdHRyLWluZGV4XT1cImlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0ua2V5XCIgW3RhYmluZGV4XT1cInRhYmluZGV4XCIgW2NoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uXCIgW3RleHRDb250ZW50XT1cIml0ZW0ubGFiZWxcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8IS0tIEN1c3RvbSBwYXJ0aWFsIHRlbXBsYXRlIC0tPlxuICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cImNvbnRlbnRcIiBjbGFzcz1cImFwcC1jaGVja2JveHNldC1sYWJlbFwiIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmRpc2FibGVkIHx8IHJlYWRvbmx5fVwiID5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuYW1lXT1cIidjaGVja2JveHNldF8nICsgd2lkZ2V0SWRcIiB0eXBlPVwiY2hlY2tib3hcIiBhcmlhLWxhYmVsPVwiY2hlY2tib3ggZ3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvblwiIHBhcnRpYWwtY29udGFpbmVyLXRhcmdldD48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -167,12 +167,6 @@ export class RadiosetComponent extends DatasetAwareFormComponent {
167
167
  styler(this.nativeElement, this);
168
168
  this.multiple = false;
169
169
  }
170
- triggerInvokeOnChange(key, $event) {
171
- this.modelByKey = key;
172
- this.invokeOnTouched();
173
- // invoke on datavalue change.
174
- this.invokeOnChange(this.datavalue, $event || {}, true);
175
- }
176
170
  /**
177
171
  * On click of the option, update the datavalue
178
172
  */
@@ -180,7 +174,10 @@ export class RadiosetComponent extends DatasetAwareFormComponent {
180
174
  if (!$($event.target).is('input')) {
181
175
  return;
182
176
  }
183
- this.triggerInvokeOnChange(key, $event);
177
+ this.modelByKey = key;
178
+ this.invokeOnTouched();
179
+ // invoke on datavalue change.
180
+ this.invokeOnChange(this.datavalue, $event || {}, true);
184
181
  }
185
182
  // change and blur events are added from the template
186
183
  handleEvent(node, eventName, callback, locals) {
@@ -240,4 +237,4 @@ export class RadiosetComponent extends DatasetAwareFormComponent {
240
237
  type: Optional
241
238
  }] }], null); })();
242
239
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RadiosetComponent, { className: "RadiosetComponent", filePath: "radioset/radioset.component.ts", lineNumber: 26 }); })();
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9zZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL3JhZGlvc2V0L3JhZGlvc2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9yYWRpb3NldC9yYWRpb3NldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7Ozs7SUNENUIsZ0NBQ3FEO0lBSWpELEFBSEEsMkJBRXFDLGNBQ21CO0lBQzVELGlCQUFROzs7Ozs7SUFMRCx5RkFBNkM7SUFDekMsY0FBK0I7SUFDNEMsQUFBdEIsQUFBbEMsQUFBbkIsQUFEQSxvREFBK0Isc0JBQ2IsZ0RBQWtDLDZCQUFzQiw2QkFBMEI7O0lBRXJGLGNBQTBCO0lBQTFCLDJDQUEwQjs7O0lBR3BELGdDQUNxRDtJQUlqRCxBQUhBLDJCQUVxQyxlQUNnQztJQUN6RSxpQkFBUTs7Ozs7O0lBTEQsd0ZBQTZDO0lBQ3pD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QUFDO1lBQ0osS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7a0ZBN0RRLGlCQUFpQiwwREFRUyxrQkFBa0I7b0VBUjVDLGlCQUFpQixrR0FOZjtnQkFDUCxTQUFTLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO2dCQUNyRCxTQUFTLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQztnQkFDakQsa0JBQWtCLENBQUMsaUJBQWlCLENBQUM7YUFDeEM7WUN2Qkwsa0ZBQWdFO1lBeUJoRSwyQkFBcUU7WUFJckUsQUFIQSxrRUFBZ0Ysc0dBRzlDOzs7WUE3QkgsQUFBbEIsbUNBQWlCLHFDQUFpQztZQXlCeEQsY0FBaUM7WUFBakMsdURBQWlDO1lBQ2xDLGNBQTBCO1lBQTFCLG1EQUEwQjs7O2lGRERuQixpQkFBaUI7Y0FWN0IsU0FBUzsyQkFDSSxjQUFjLFlBQ2QsWUFBWSxhQUVYO29CQUNQLFNBQVMsb0JBQW9CLGlCQUFpQixFQUFFLElBQUksQ0FBQztvQkFDckQsU0FBUyxvQkFBb0IsYUFBYSxFQUFFLElBQUksQ0FBQztvQkFDakQsa0JBQWtCLG1CQUFtQjtpQkFDeEM7O3NCQVUyQixNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTs7a0ZBUnZELGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgTkdfVkFMSURBVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtzZXRMaXN0Q2xhc3N9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgcHJvdmlkZUFzV2lkZ2V0UmVmLCBzdHlsZXIsIHByb3ZpZGVBcyB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGFzZXQtYXdhcmUtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vcmFkaW9zZXQucHJvcHMnO1xuaW1wb3J0IHsgaW5jbHVkZXN9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuZGVjbGFyZSBjb25zdCAkO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdhcHAtcmFkaW9zZXQgbGlzdC1ncm91cCBpbmxpbmUnO1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tcmFkaW9zZXQnLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTfTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbd21SYWRpb3NldF0nLFxuICAgIGV4cG9ydEFzOiAnd21SYWRpb3NldCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvc2V0LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzKFJhZGlvc2V0Q29tcG9uZW50LCBOR19WQUxVRV9BQ0NFU1NPUiwgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBcyhSYWRpb3NldENvbXBvbmVudCwgTkdfVkFMSURBVE9SUywgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihSYWRpb3NldENvbXBvbmVudClcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFJhZGlvc2V0Q29tcG9uZW50IGV4dGVuZHMgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHB1YmxpYyBsYXlvdXQgPSAnJztcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIGl0ZW1zcGVycm93OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBpdGVtc1BlclJvd0NsYXNzOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzKTtcbiAgICAgICAgdGhpcy5tdWx0aXBsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHRyaWdnZXJJbnZva2VPbkNoYW5nZShrZXksICRldmVudCkge1xuICAgICAgICB0aGlzLm1vZGVsQnlLZXkgPSBrZXk7XG5cbiAgICAgICAgdGhpcy5pbnZva2VPblRvdWNoZWQoKTtcbiAgICAgICAgLy8gaW52b2tlIG9uIGRhdGF2YWx1ZSBjaGFuZ2UuXG4gICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UodGhpcy5kYXRhdmFsdWUsICRldmVudCB8fCB7fSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gY2xpY2sgb2YgdGhlIG9wdGlvbiwgdXBkYXRlIHRoZSBkYXRhdmFsdWVcbiAgICAgKi9cbiAgICBvblJhZGlvTGFiZWxDbGljaygkZXZlbnQsIGtleSkge1xuICAgICAgICBpZiAoISQoJGV2ZW50LnRhcmdldCkuaXMoJ2lucHV0JykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudHJpZ2dlckludm9rZU9uQ2hhbmdlKGtleSwgJGV2ZW50KTtcbiAgICB9XG5cbiAgICAvLyBjaGFuZ2UgYW5kIGJsdXIgZXZlbnRzIGFyZSBhZGRlZCBmcm9tIHRoZSB0ZW1wbGF0ZVxuICAgIHByb3RlY3RlZCBoYW5kbGVFdmVudChub2RlOiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiBGdW5jdGlvbiwgbG9jYWxzOiBhbnkpIHtcbiAgICAgICAgaWYgKGV2ZW50TmFtZSA9PT0gJ2NsaWNrJykge1xuICAgICAgICAgICAgdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgIGV2ZW50TmFtZSxcbiAgICAgICAgICAgICAgICBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGUudGFyZ2V0KS5pcygnaW5wdXQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxvY2Fscy4kZXZlbnQgPSBlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKCFpbmNsdWRlcyhbJ2NoYW5nZSddLCBldmVudE5hbWUpKSB7XG4gICAgICAgICAgICBzdXBlci5oYW5kbGVFdmVudChub2RlLCBldmVudE5hbWUsIGNhbGxiYWNrLCBsb2NhbHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdj8pIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdpdGVtc3BlcnJvdycpIHtcbiAgICAgICAgICAgIHNldExpc3RDbGFzcyh0aGlzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFncm91cGJ5XCIgW25nSWZFbHNlXT1cImdyb3VwZWRMaXN0VGVtcGxhdGVcIj5cbiAgICA8bGkgW25nQ2xhc3NdPVwiWydyYWRpbycsICdhcHAtcmFkaW8nLCBpdGVtY2xhc3MsIGl0ZW1zUGVyUm93Q2xhc3NdXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YXNldEl0ZW1zO2xldCBpID0gaW5kZXhcIlxuICAgICAgICBbd21JdGVtVGVtcGxhdGVdPVwiY29udGVudFwiIFt1c2VyQ29tcG9uZW50UGFyYW1zXT1cIml0ZW1cIiBwYXJ0aWFsQ29udGFpbmVyXG4gICAgICAgIChjbGljayk9XCJvblJhZGlvTGFiZWxDbGljaygkZXZlbnQsIGl0ZW0ua2V5KVwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj5cbiAgICAgICAgPCEtLSBEZWZhdWx0IGl0ZW0gdGVtcGxhdGUgLS0+XG4gICAgICAgIDxsYWJlbCAqbmdJZj1cIiFjb250ZW50XCIgY2xhc3M9XCJhcHAtcmFkaW9zZXQtbGFiZWxcIlxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ZGlzYWJsZWQgfHwgcmVhZG9ubHl9XCI+XG4gICAgICAgICAgICA8aW5wdXQgW25hbWVdPVwiJ3JhZGlvc2V0XycgKyB3aWRnZXRJZFwiIHR5cGU9XCJyYWRpb1wiIFthdHRyLmFyaWEtY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCIgW2F0dHIuZGF0YS1hdHRyLWluZGV4XT1cImlcIlxuICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5rZXlcIi8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiaXRlbS5sYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPCEtLSBDdXN0b20gcGFydGlhbCB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwiY29udGVudFwiIGNsYXNzPVwiYXBwLXJhZGlvc2V0LWxhYmVsXCJcbiAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmRpc2FibGVkIHx8IHJlYWRvbmx5fVwiPlxuICAgICAgICAgICAgPGlucHV0IFtuYW1lXT1cIidyYWRpb3NldF8nICsgd2lkZ2V0SWRcIiB0eXBlPVwicmFkaW9cIiBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5rZXlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0ua2V5XCIvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uIGN1c3RvbVRlbXBsYXRlXCIgcGFydGlhbC1jb250YWluZXItdGFyZ2V0Pjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2xpPlxuPC9uZy10ZW1wbGF0ZT5cblxuPGlucHV0IFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIGhpZGRlbiBjbGFzcz1cIm1vZGVsLWhvbGRlclwiPlxuPGRpdiAqbmdJZj1cInJlYWRvbmx5IHx8IGRpc2FibGVkXCIgYXJpYS1yZWFkb25seT1cInRydWVcIiBjbGFzcz1cInJlYWRvbmx5LXdyYXBwZXJcIj48L2Rpdj5cblxuPCEtLSBUaGlzIHRlbXBsYXRlIHdpbGwgYmUgZGlzcGxheWVkIHdoZW4gZ3JvdXBieSBpcyBzcGVjaWZpZWQuIC0tPlxuPG5nLXRlbXBsYXRlICNncm91cGVkTGlzdFRlbXBsYXRlPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgZ3JvdXBPYmogb2YgZ3JvdXBlZERhdGFcIiBjbGFzcz1cImFwcC1saXN0LWl0ZW0tZ3JvdXBcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwiaXRlbS1ncm91cFwiPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1ncm91cC1oZWFkZXJcIiAoY2xpY2spPVwiaGFuZGxlSGVhZGVyQ2xpY2soJGV2ZW50KVwiIFt0aXRsZV09XCJncm91cE9iai5rZXlcIiBbbmdDbGFzc109XCJ7J2NvbGxhcHNpYmxlLWNvbnRlbnQnOiBjb2xsYXBzaWJsZX1cIj5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJncm91cC10aXRsZVwiPnt7Z3JvdXBPYmoua2V5fX1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1hY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXBwLWljb24gd2kgYWN0aW9uIHdpLWNoZXZyb24tdXBcIiAqbmdJZj1cImNvbGxhcHNpYmxlXCIgdGl0bGU9XCJ7e2FwcExvY2FsZS5MQUJFTF9DT0xMQVBTRX19L3t7YXBwTG9jYWxlLkxBQkVMX0VYUEFORH19XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93Y291bnRcIiBjbGFzcz1cImxhYmVsIGxhYmVsLWRlZmF1bHRcIiBbdGV4dENvbnRlbnRdPVwiZ3JvdXBPYmouZGF0YS5sZW5ndGhcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwT2JqLmRhdGE7IGxldCBpID0gaW5kZXg7XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ3JhZGlvJywgJ2FwcC1yYWRpbycsICdncm91cC1saXN0LWl0ZW0nLCBpdGVtY2xhc3MsIGl0ZW1zUGVyUm93Q2xhc3NdXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFt3bUl0ZW1UZW1wbGF0ZV09XCJjb250ZW50XCIgW3VzZXJDb21wb25lbnRQYXJhbXNdPVwiaXRlbVwiIHBhcnRpYWxDb250YWluZXJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25SYWRpb0xhYmVsQ2xpY2soJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICAgICAgICAgIDwhLS0gRGVmYXVsdCBpdGVtIHRlbXBsYXRlIC0tPlxuICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cIiFjb250ZW50XCIgY2xhc3M9XCJhcHAtcmFkaW9zZXQtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuYW1lXT1cIidyYWRpb3NldF8nICsgd2lkZ2V0SWRcIiB0eXBlPVwicmFkaW9cIiBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvblwiIFt0ZXh0Q29udGVudF09XCJpdGVtLmxhYmVsXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPCEtLSBDdXN0b20gcGFydGlhbCB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJjb250ZW50XCIgY2xhc3M9XCJhcHAtcmFkaW9zZXQtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuYW1lXT1cIidyYWRpb3NldF8nICsgd2lkZ2V0SWRcIiB0eXBlPVwicmFkaW9cIiBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvbiBjdXN0b21UZW1wbGF0ZVwiIHBhcnRpYWwtY29udGFpbmVyLXRhcmdldD48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9zZXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2RlZmF1bHQvc3JjL3JhZGlvc2V0L3JhZGlvc2V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9yYWRpb3NldC9yYWRpb3NldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7Ozs7SUNEM0IsZ0NBQ3FEO0lBSWpELEFBSEEsMkJBRXFDLGNBQ21CO0lBQzVELGlCQUFROzs7Ozs7SUFMRCx5RkFBNkM7SUFDekMsY0FBK0I7SUFDNEMsQUFBdEIsQUFBbEMsQUFBbkIsQUFEQSxvREFBK0Isc0JBQ2IsZ0RBQWtDLDZCQUFzQiw2QkFBMEI7O0lBRXJGLGNBQTBCO0lBQTFCLDJDQUEwQjs7O0lBR3BELGdDQUNxRDtJQUlqRCxBQUhBLDJCQUVxQyxlQUNnQztJQUN6RSxpQkFBUTs7Ozs7O0lBTEQsd0ZBQTZDO0lBQ3pD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QUFpQiwwREFRUyxrQkFBa0I7b0VBUjVDLGlCQUFpQixrR0FOZjtnQkFDUCxTQUFTLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO2dCQUNyRCxTQUFTLENBQUMsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQztnQkFDakQsa0JBQWtCLENBQUMsaUJBQWlCLENBQUM7YUFDeEM7WUN2Qkwsa0ZBQWdFO1lBeUJoRSwyQkFBcUU7WUFJckUsQUFIQSxrRUFBZ0Ysc0dBRzlDOzs7WUE3QkgsQUFBbEIsbUNBQWlCLHFDQUFpQztZQXlCeEQsY0FBaUM7WUFBakMsdURBQWlDO1lBQ2xDLGNBQTBCO1lBQTFCLG1EQUEwQjs7O2lGRERuQixpQkFBaUI7Y0FWN0IsU0FBUzsyQkFDSSxjQUFjLFlBQ2QsWUFBWSxhQUVYO29CQUNQLFNBQVMsb0JBQW9CLGlCQUFpQixFQUFFLElBQUksQ0FBQztvQkFDckQsU0FBUyxvQkFBb0IsYUFBYSxFQUFFLElBQUksQ0FBQztvQkFDakQsa0JBQWtCLG1CQUFtQjtpQkFDeEM7O3NCQVUyQixNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTs7a0ZBUnZELGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgTkdfVkFMSURBVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtzZXRMaXN0Q2xhc3N9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgcHJvdmlkZUFzV2lkZ2V0UmVmLCBzdHlsZXIsIHByb3ZpZGVBcyB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGFzZXQtYXdhcmUtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vcmFkaW9zZXQucHJvcHMnO1xuaW1wb3J0IHtpbmNsdWRlc30gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ2FwcC1yYWRpb3NldCBsaXN0LWdyb3VwIGlubGluZSc7XG5jb25zdCBXSURHRVRfQ09ORklHID0ge3dpZGdldFR5cGU6ICd3bS1yYWRpb3NldCcsIGhvc3RDbGFzczogREVGQVVMVF9DTFN9O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t3bVJhZGlvc2V0XScsXG4gICAgZXhwb3J0QXM6ICd3bVJhZGlvc2V0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmFkaW9zZXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXMoUmFkaW9zZXRDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzKFJhZGlvc2V0Q29tcG9uZW50LCBOR19WQUxJREFUT1JTLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKFJhZGlvc2V0Q29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9zZXRDb21wb25lbnQgZXh0ZW5kcyBEYXRhc2V0QXdhcmVGb3JtQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgcHVibGljIGxheW91dCA9ICcnO1xuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgaXRlbXNwZXJyb3c6IHN0cmluZztcbiAgICBwcml2YXRlIGl0ZW1zUGVyUm93Q2xhc3M6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMpO1xuICAgICAgICB0aGlzLm11bHRpcGxlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT24gY2xpY2sgb2YgdGhlIG9wdGlvbiwgdXBkYXRlIHRoZSBkYXRhdmFsdWVcbiAgICAgKi9cbiAgICBvblJhZGlvTGFiZWxDbGljaygkZXZlbnQsIGtleSkge1xuICAgICAgICBpZiAoISQoJGV2ZW50LnRhcmdldCkuaXMoJ2lucHV0JykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubW9kZWxCeUtleSA9IGtleTtcblxuICAgICAgICB0aGlzLmludm9rZU9uVG91Y2hlZCgpO1xuICAgICAgICAvLyBpbnZva2Ugb24gZGF0YXZhbHVlIGNoYW5nZS5cbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSwgJGV2ZW50IHx8IHt9LCB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBjaGFuZ2UgYW5kIGJsdXIgZXZlbnRzIGFyZSBhZGRlZCBmcm9tIHRoZSB0ZW1wbGF0ZVxuICAgIHByb3RlY3RlZCBoYW5kbGVFdmVudChub2RlOiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiBGdW5jdGlvbiwgbG9jYWxzOiBhbnkpIHtcbiAgICAgICAgaWYgKGV2ZW50TmFtZSA9PT0gJ2NsaWNrJykge1xuICAgICAgICAgICAgdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgICAgIGV2ZW50TmFtZSxcbiAgICAgICAgICAgICAgICBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGUudGFyZ2V0KS5pcygnaW5wdXQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGxvY2Fscy4kZXZlbnQgPSBlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKCFpbmNsdWRlcyhbJ2NoYW5nZSddLCBldmVudE5hbWUpKSB7XG4gICAgICAgICAgICBzdXBlci5oYW5kbGVFdmVudChub2RlLCBldmVudE5hbWUsIGNhbGxiYWNrLCBsb2NhbHMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdj8pIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdpdGVtc3BlcnJvdycpIHtcbiAgICAgICAgICAgIHNldExpc3RDbGFzcyh0aGlzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFncm91cGJ5XCIgW25nSWZFbHNlXT1cImdyb3VwZWRMaXN0VGVtcGxhdGVcIj5cbiAgICA8bGkgW25nQ2xhc3NdPVwiWydyYWRpbycsICdhcHAtcmFkaW8nLCBpdGVtY2xhc3MsIGl0ZW1zUGVyUm93Q2xhc3NdXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YXNldEl0ZW1zO2xldCBpID0gaW5kZXhcIlxuICAgICAgICBbd21JdGVtVGVtcGxhdGVdPVwiY29udGVudFwiIFt1c2VyQ29tcG9uZW50UGFyYW1zXT1cIml0ZW1cIiBwYXJ0aWFsQ29udGFpbmVyXG4gICAgICAgIChjbGljayk9XCJvblJhZGlvTGFiZWxDbGljaygkZXZlbnQsIGl0ZW0ua2V5KVwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj5cbiAgICAgICAgPCEtLSBEZWZhdWx0IGl0ZW0gdGVtcGxhdGUgLS0+XG4gICAgICAgIDxsYWJlbCAqbmdJZj1cIiFjb250ZW50XCIgY2xhc3M9XCJhcHAtcmFkaW9zZXQtbGFiZWxcIlxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydkaXNhYmxlZCc6ZGlzYWJsZWQgfHwgcmVhZG9ubHl9XCI+XG4gICAgICAgICAgICA8aW5wdXQgW25hbWVdPVwiJ3JhZGlvc2V0XycgKyB3aWRnZXRJZFwiIHR5cGU9XCJyYWRpb1wiIFthdHRyLmFyaWEtY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCIgW2F0dHIuZGF0YS1hdHRyLWluZGV4XT1cImlcIlxuICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5rZXlcIi8+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiaXRlbS5sYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPCEtLSBDdXN0b20gcGFydGlhbCB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgPGxhYmVsICpuZ0lmPVwiY29udGVudFwiIGNsYXNzPVwiYXBwLXJhZGlvc2V0LWxhYmVsXCJcbiAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOmRpc2FibGVkIHx8IHJlYWRvbmx5fVwiPlxuICAgICAgICAgICAgPGlucHV0IFtuYW1lXT1cIidyYWRpb3NldF8nICsgd2lkZ2V0SWRcIiB0eXBlPVwicmFkaW9cIiBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5rZXlcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIiBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIiBbY2hlY2tlZF09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0ua2V5XCIvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uIGN1c3RvbVRlbXBsYXRlXCIgcGFydGlhbC1jb250YWluZXItdGFyZ2V0Pjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2xpPlxuPC9uZy10ZW1wbGF0ZT5cblxuPGlucHV0IFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIGhpZGRlbiBjbGFzcz1cIm1vZGVsLWhvbGRlclwiPlxuPGRpdiAqbmdJZj1cInJlYWRvbmx5IHx8IGRpc2FibGVkXCIgYXJpYS1yZWFkb25seT1cInRydWVcIiBjbGFzcz1cInJlYWRvbmx5LXdyYXBwZXJcIj48L2Rpdj5cblxuPCEtLSBUaGlzIHRlbXBsYXRlIHdpbGwgYmUgZGlzcGxheWVkIHdoZW4gZ3JvdXBieSBpcyBzcGVjaWZpZWQuIC0tPlxuPG5nLXRlbXBsYXRlICNncm91cGVkTGlzdFRlbXBsYXRlPlxuICAgIDxsaSAqbmdGb3I9XCJsZXQgZ3JvdXBPYmogb2YgZ3JvdXBlZERhdGFcIiBjbGFzcz1cImFwcC1saXN0LWl0ZW0tZ3JvdXBcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwiaXRlbS1ncm91cFwiPlxuICAgICAgICAgICAgPGxpIGNsYXNzPVwibGlzdC1ncm91cC1oZWFkZXJcIiAoY2xpY2spPVwiaGFuZGxlSGVhZGVyQ2xpY2soJGV2ZW50KVwiIFt0aXRsZV09XCJncm91cE9iai5rZXlcIiBbbmdDbGFzc109XCJ7J2NvbGxhcHNpYmxlLWNvbnRlbnQnOiBjb2xsYXBzaWJsZX1cIj5cbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJncm91cC10aXRsZVwiPnt7Z3JvdXBPYmoua2V5fX1cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1hY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXBwLWljb24gd2kgYWN0aW9uIHdpLWNoZXZyb24tdXBcIiAqbmdJZj1cImNvbGxhcHNpYmxlXCIgdGl0bGU9XCJ7e2FwcExvY2FsZS5MQUJFTF9DT0xMQVBTRX19L3t7YXBwTG9jYWxlLkxBQkVMX0VYUEFORH19XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93Y291bnRcIiBjbGFzcz1cImxhYmVsIGxhYmVsLWRlZmF1bHRcIiBbdGV4dENvbnRlbnRdPVwiZ3JvdXBPYmouZGF0YS5sZW5ndGhcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwT2JqLmRhdGE7IGxldCBpID0gaW5kZXg7XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJbJ3JhZGlvJywgJ2FwcC1yYWRpbycsICdncm91cC1saXN0LWl0ZW0nLCBpdGVtY2xhc3MsIGl0ZW1zUGVyUm93Q2xhc3NdXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIml0ZW0uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFt3bUl0ZW1UZW1wbGF0ZV09XCJjb250ZW50XCIgW3VzZXJDb21wb25lbnRQYXJhbXNdPVwiaXRlbVwiIHBhcnRpYWxDb250YWluZXJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25SYWRpb0xhYmVsQ2xpY2soJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICAgICAgICAgIDwhLS0gRGVmYXVsdCBpdGVtIHRlbXBsYXRlIC0tPlxuICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cIiFjb250ZW50XCIgY2xhc3M9XCJhcHAtcmFkaW9zZXQtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuYW1lXT1cIidyYWRpb3NldF8nICsgd2lkZ2V0SWRcIiB0eXBlPVwicmFkaW9cIiBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvblwiIFt0ZXh0Q29udGVudF09XCJpdGVtLmxhYmVsXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPCEtLSBDdXN0b20gcGFydGlhbCB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJjb250ZW50XCIgY2xhc3M9XCJhcHAtcmFkaW9zZXQtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2Rpc2FibGVkJzpkaXNhYmxlZCB8fCByZWFkb25seX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtuYW1lXT1cIidyYWRpb3NldF8nICsgd2lkZ2V0SWRcIiB0eXBlPVwicmFkaW9cIiBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiaXRlbS5zZWxlY3RlZFwiIFthdHRyLmRhdGEtYXR0ci1pbmRleF09XCJpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiIFtjaGVja2VkXT1cIml0ZW0uc2VsZWN0ZWRcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FwdGlvbiBjdXN0b21UZW1wbGF0ZVwiIHBhcnRpYWwtY29udGFpbmVyLXRhcmdldD48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgPC9saT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,15 +1,13 @@
1
1
  import { Component, ElementRef, Inject, Injector, Optional, ViewChild } from '@angular/core';
2
2
  import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { App, DataSource, removeAttr, setAttr } from '@wm/core';
3
+ import { DataSource, removeAttr, setAttr } from '@wm/core';
4
4
  import { provideAs, provideAsWidgetRef, styler } from '@wm/components/base';
5
5
  import { DatasetAwareFormComponent } from '../dataset-aware-form.component';
6
6
  import { registerProps } from './select.props';
7
- import { includes } from "lodash-es";
8
7
  import * as i0 from "@angular/core";
9
- import * as i1 from "@wm/core";
10
- import * as i2 from "@angular/common";
11
- import * as i3 from "@angular/forms";
12
- import * as i4 from "@wm/components/base";
8
+ import * as i1 from "@angular/common";
9
+ import * as i2 from "@angular/forms";
10
+ import * as i3 from "@wm/components/base";
13
11
  const _c0 = ["select"];
14
12
  const _c1 = a0 => ["app-select form-control", a0];
15
13
  const _c2 = () => ({ standalone: true });
@@ -61,10 +59,36 @@ export class SelectComponent extends DatasetAwareFormComponent {
61
59
  this.datavalue = ds.execute(DataSource.Operation.GET_DEFAULT_LOCALE);
62
60
  }
63
61
  }
64
- constructor(inj, app, explicitContext) {
62
+ constructor(inj, explicitContext) {
65
63
  super(inj, WIDGET_CONFIG, explicitContext);
66
- this.app = app;
67
64
  this.acceptsArray = true;
65
+ /*
66
+ * When the dataset for a select element is updated and no longer includes the previously selected value:
67
+ * The select element becomes empty, and the ngModel value is updated to reflect this change.
68
+ * However, the change event is not triggered, preventing the form control from recognizing the update and applying necessary validations.
69
+ * As this widget implements ControlValueAccessor, manually updating the ngModel (or modelByKey) is necessary to ensure correct form behavior.
70
+ * */
71
+ const datasetSubscription = this.dataset$.subscribe(() => {
72
+ if (this.datavalue) {
73
+ const selectedItem = this.datasetItems.find(item => item.selected);
74
+ if (!selectedItem) {
75
+ setTimeout(() => {
76
+ if (!this.placeholder) {
77
+ this.selectEl.nativeElement.value = '';
78
+ }
79
+ this.modelByKey = undefined;
80
+ }, 100);
81
+ }
82
+ }
83
+ else {
84
+ setTimeout(() => {
85
+ if (!this.placeholder) {
86
+ this.selectEl.nativeElement.value = '';
87
+ }
88
+ }, 100);
89
+ }
90
+ });
91
+ this.registerDestroyListener(() => datasetSubscription.unsubscribe());
68
92
  }
69
93
  ngAfterViewInit() {
70
94
  super.ngAfterViewInit();
@@ -72,7 +96,7 @@ export class SelectComponent extends DatasetAwareFormComponent {
72
96
  }
73
97
  // Change event is registered from the template, Prevent the framework from registering one more event
74
98
  handleEvent(node, eventName, eventCallback, locals) {
75
- if (!includes(['blur', 'change'], eventName)) {
99
+ if (!['blur', 'change'].includes(eventName)) {
76
100
  super.handleEvent(this.selectEl.nativeElement, eventName, eventCallback, locals);
77
101
  }
78
102
  }
@@ -123,36 +147,40 @@ export class SelectComponent extends DatasetAwareFormComponent {
123
147
  */
124
148
  checkForFloatingLabel($event) {
125
149
  const captionEl = $(this.selectEl.nativeElement).closest('.app-composite-widget.caption-floating');
150
+ if (!this.placeholder) {
151
+ this.removePlaceholderOption();
152
+ }
126
153
  if (captionEl.length > 0) {
127
- if ($event.type === 'focus' && (!this.datavalue || (this.datavalue && $(this.selectEl).find('select option:selected').text() === '' && this.placeholder))) {
128
- if (!(this.datavalue || this.placeholder)) {
129
- this.removePlaceholderOption();
130
- }
131
- else {
132
- $(this.selectEl.nativeElement).find('option:first').text(this.placeholder);
154
+ const placeholderOption = this.selectEl.nativeElement.querySelector('#placeholderOption');
155
+ if ($event.type === 'mousedown' && (!this.datavalue || (this.datavalue && $(this.selectEl).find('select option:selected').text() === '' && this.placeholder))) {
156
+ if (this.placeholder) {
157
+ placeholderOption.textContent = this.placeholder;
133
158
  }
134
159
  }
135
160
  else if (!this.datavalue) {
136
- $(this.selectEl.nativeElement).find('option:selected').text('');
161
+ if (this.placeholder) {
162
+ placeholderOption.textContent = '';
163
+ }
137
164
  captionEl.removeClass('float-active');
138
165
  }
139
166
  }
140
- else if (!(this.datavalue || this.placeholder)) {
141
- this.removePlaceholderOption();
142
- }
143
167
  }
144
168
  /*
145
169
  * Removing the placeholder option if no placeholder is provided.
146
- * In html we are hiding the placeholder option using css but in apple devices and safari option is showing.
170
+ * In html we are hiding the placeholder option using css but in Apple devices and safari option is showing.
171
+ * Styles are not allowed on option tag in ios safari
172
+ * After removing the option, if no datavalue is present and native select element sets value to the first option by default, so we are setting it to empty
147
173
  * */
148
174
  removePlaceholderOption() {
149
175
  const hiddenEle = $(this.selectEl.nativeElement).find('#placeholderOption');
150
176
  if (hiddenEle.length) {
151
177
  hiddenEle.remove();
152
- this.selectEl.nativeElement.value = '';
178
+ if (!this.datavalue) {
179
+ this.selectEl.nativeElement.value = '';
180
+ }
153
181
  }
154
182
  }
155
- static { this.ɵfac = function SelectComponent_Factory(t) { return new (t || SelectComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.App), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
183
+ static { this.ɵfac = function SelectComponent_Factory(t) { return new (t || SelectComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
156
184
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SelectComponent, selectors: [["wm-select"]], viewQuery: function SelectComponent_Query(rf, ctx) { if (rf & 1) {
157
185
  i0.ɵɵviewQuery(_c0, 7, ElementRef);
158
186
  } if (rf & 2) {
@@ -162,11 +190,11 @@ export class SelectComponent extends DatasetAwareFormComponent {
162
190
  provideAs(SelectComponent, NG_VALUE_ACCESSOR, true),
163
191
  provideAs(SelectComponent, NG_VALIDATORS, true),
164
192
  provideAsWidgetRef(SelectComponent)
165
- ]), i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 18, consts: [["select", ""], ["role", "listbox", "aria-haspopup", "true", "aria-expanded", "false", "focus-target", "", 3, "ngModelChange", "change", "focus", "blur", "ngClass", "disabled", "required", "tabindex", "ngModel", "ngModelOptions", "multiple", "autofocus"], ["selected", "", "value", "undefined", "id", "placeholderOption", 3, "textContent", "hidden"], [4, "ngIf"], [3, "label", 4, "ngFor", "ngForOf"], [3, "label"], ["role", "option", 3, "value", "selected", "textContent", 4, "ngFor", "ngForOf"], ["role", "option", 3, "value", "selected", "textContent"]], template: function SelectComponent_Template(rf, ctx) { if (rf & 1) {
193
+ ]), i0.ɵɵInheritDefinitionFeature], decls: 5, vars: 18, consts: [["select", ""], ["role", "listbox", "aria-haspopup", "true", "aria-expanded", "false", "focus-target", "", 3, "ngModelChange", "change", "mousedown", "blur", "ngClass", "disabled", "required", "tabindex", "ngModel", "ngModelOptions", "multiple", "autofocus"], ["selected", "", "value", "undefined", "id", "placeholderOption", 3, "textContent", "hidden"], [4, "ngIf"], [3, "label", 4, "ngFor", "ngForOf"], [3, "label"], ["role", "option", 3, "value", "selected", "textContent", 4, "ngFor", "ngForOf"], ["role", "option", 3, "value", "selected", "textContent"]], template: function SelectComponent_Template(rf, ctx) { if (rf & 1) {
166
194
  const _r1 = i0.ɵɵgetCurrentView();
167
195
  i0.ɵɵelementStart(0, "select", 1, 0);
168
196
  i0.ɵɵtwoWayListener("ngModelChange", function SelectComponent_Template_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r1); i0.ɵɵtwoWayBindingSet(ctx.modelByKey, $event) || (ctx.modelByKey = $event); return i0.ɵɵresetView($event); });
169
- i0.ɵɵlistener("change", function SelectComponent_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSelectValueChange($event)); })("focus", function SelectComponent_Template_select_focus_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.checkForFloatingLabel($event)); })("blur", function SelectComponent_Template_select_blur_0_listener($event) { i0.ɵɵrestoreView(_r1); ctx.invokeOnTouched($event); return i0.ɵɵresetView(ctx.checkForFloatingLabel($event)); });
197
+ i0.ɵɵlistener("change", function SelectComponent_Template_select_change_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onSelectValueChange($event)); })("mousedown", function SelectComponent_Template_select_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.checkForFloatingLabel($event)); })("blur", function SelectComponent_Template_select_blur_0_listener($event) { i0.ɵɵrestoreView(_r1); ctx.invokeOnTouched($event); return i0.ɵɵresetView(ctx.checkForFloatingLabel($event)); });
170
198
  i0.ɵɵelement(2, "option", 2);
171
199
  i0.ɵɵtemplate(3, SelectComponent_ng_container_3_Template, 2, 1, "ng-container", 3)(4, SelectComponent_ng_container_4_Template, 2, 1, "ng-container", 3);
172
200
  i0.ɵɵelementEnd();
@@ -181,7 +209,7 @@ export class SelectComponent extends DatasetAwareFormComponent {
181
209
  i0.ɵɵproperty("ngIf", ctx.groupby);
182
210
  i0.ɵɵadvance();
183
211
  i0.ɵɵproperty("ngIf", !ctx.groupby);
184
- } }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i3.NgSelectOption, i3.ɵNgSelectMultipleOption, i3.SelectMultipleControlValueAccessor, i3.NgControlStatus, i3.RequiredValidator, i3.NgModel, i4.TextContentDirective], encapsulation: 2 }); }
212
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.SelectMultipleControlValueAccessor, i2.NgControlStatus, i2.RequiredValidator, i2.NgModel, i3.TextContentDirective], encapsulation: 2 }); }
185
213
  }
186
214
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SelectComponent, [{
187
215
  type: Component,
@@ -189,8 +217,8 @@ export class SelectComponent extends DatasetAwareFormComponent {
189
217
  provideAs(SelectComponent, NG_VALUE_ACCESSOR, true),
190
218
  provideAs(SelectComponent, NG_VALIDATORS, true),
191
219
  provideAsWidgetRef(SelectComponent)
192
- ], template: "<select role=\"listbox\" aria-haspopup=\"true\" aria-expanded=\"false\" #select\n focus-target\n [ngClass]=\"['app-select form-control', class]\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"modelByKey\"\n [ngModelOptions]=\"{standalone: true}\"\n [multiple]=\"multiple\"\n (change)=\"onSelectValueChange($event)\"\n (focus)=\"checkForFloatingLabel($event)\"\n (blur)=\"invokeOnTouched($event); checkForFloatingLabel($event)\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-multiselectable]=\"multiple\"\n [autofocus]=\"autofocus\">\n\n <option selected\n value=\"undefined\"\n [textContent]=\"placeholder\"\n id=\"placeholderOption\"\n [hidden]=\"!placeholder\"></option>\n\n <ng-container *ngIf=\"groupby\">\n <optgroup *ngFor=\"let groupObj of groupedData\"\n [label]=\"groupObj.key\">\n <option *ngFor=\"let item of groupObj.data;\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </optgroup>\n </ng-container>\n\n <ng-container *ngIf=\"!groupby\">\n <option *ngFor=\"let item of datasetItems\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </ng-container>\n</select>\n" }]
193
- }], () => [{ type: i0.Injector }, { type: i1.App }, { type: undefined, decorators: [{
220
+ ], template: "<!--Updated focus with mousedown event. IOS devices not allow update of option value after opening dropdown-->\n<select role=\"listbox\" aria-haspopup=\"true\" aria-expanded=\"false\" #select\n focus-target\n [ngClass]=\"['app-select form-control', class]\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [(ngModel)]=\"modelByKey\"\n [ngModelOptions]=\"{standalone: true}\"\n [multiple]=\"multiple\"\n (change)=\"onSelectValueChange($event)\"\n (mousedown)=\"checkForFloatingLabel($event)\"\n (blur)=\"invokeOnTouched($event); checkForFloatingLabel($event)\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"hint\"\n [attr.aria-multiselectable]=\"multiple\"\n [autofocus]=\"autofocus\">\n\n <option selected\n value=\"undefined\"\n [textContent]=\"placeholder\"\n id=\"placeholderOption\"\n [hidden]=\"!placeholder\"></option>\n\n <ng-container *ngIf=\"groupby\">\n <optgroup *ngFor=\"let groupObj of groupedData\"\n [label]=\"groupObj.key\">\n <option *ngFor=\"let item of groupObj.data;\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </optgroup>\n </ng-container>\n\n <ng-container *ngIf=\"!groupby\">\n <option *ngFor=\"let item of datasetItems\"\n [value]=\"item.key\"\n [selected]=\"item.selected\"\n [textContent]=\"item.label\"\n role=\"option\"></option>\n </ng-container>\n</select>\n" }]
221
+ }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
194
222
  type: Inject,
195
223
  args: ['EXPLICIT_CONTEXT']
196
224
  }, {
@@ -199,5 +227,5 @@ export class SelectComponent extends DatasetAwareFormComponent {
199
227
  type: ViewChild,
200
228
  args: ['select', { static: true, read: ElementRef }]
201
229
  }] }); })();
202
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectComponent, { className: "SelectComponent", filePath: "select/select.component.ts", lineNumber: 22 }); })();
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBQyxHQUFHLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDOUQsT0FBTyxFQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7OztJQ2tCdkIsNEJBSTJCOzs7SUFEdkIsQUFEQSxBQURBLG1DQUFrQiw4QkFDUSw4QkFDQTs7O0lBTGxDLG1DQUMyQjtJQUN2QixnR0FJa0I7SUFDdEIsaUJBQVc7OztJQU5QLHVDQUFzQjtJQUNHLGNBQWlCO0lBQWpCLDBDQUFpQjs7O0lBSGxELDZCQUE4QjtJQUMxQix5RkFDMkI7Ozs7SUFESSxjQUFjO0lBQWQsNENBQWM7OztJQVc3Qyw0QkFJMkI7OztJ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O29CQUNuRCxTQUFTLGtCQUFrQixhQUFhLEVBQUUsSUFBSSxDQUFDO29CQUMvQyxrQkFBa0IsaUJBQWlCO2lCQUN0Qzs7c0JBeUJxQyxNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTtxQkFSakIsUUFBUTtrQkFBaEUsU0FBUzttQkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7O2tGQWY5QyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5qZWN0b3IsIE9wdGlvbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge0FwcCwgRGF0YVNvdXJjZSwgcmVtb3ZlQXR0ciwgc2V0QXR0cn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtwcm92aWRlQXMsIHByb3ZpZGVBc1dpZGdldFJlZiwgc3R5bGVyfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7RGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudH0gZnJvbSAnLi4vZGF0YXNldC1hd2FyZS1mb3JtLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9zZWxlY3QucHJvcHMnO1xuaW1wb3J0IHtpbmNsdWRlc30gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5jb25zdCBXSURHRVRfQ09ORklHID0ge3dpZGdldFR5cGU6ICd3bS1zZWxlY3QnLCBob3N0Q2xhc3M6ICdhcHAtc2VsZWN0LXdyYXBwZXInfTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd3bS1zZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXMoU2VsZWN0Q29tcG9uZW50LCBOR19WQUxVRV9BQ0NFU1NPUiwgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBcyhTZWxlY3RDb21wb25lbnQsIE5HX1ZBTElEQVRPUlMsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoU2VsZWN0Q29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgRGF0YXNldEF3YXJlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW47XG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgcHVibGljIG5hdnNlYXJjaGJhcjogYW55O1xuICAgIHB1YmxpYyBjbGFzczogYW55O1xuICAgIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIHRhYmluZGV4OiBhbnk7XG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgYXV0b2ZvY3VzOiBib29sZWFuO1xuICAgIHB1YmxpYyBoaW50OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBhcHA6IEFwcDtcblxuICAgIEBWaWV3Q2hpbGQoJ3NlbGVjdCcsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pIHNlbGVjdEVsOiBFbGVtZW50UmVmO1xuXG4gICAgc2V0IGRhdGFzb3VyY2UoZHMpIHtcbiAgICAgICAgaWYgKGRzICYmIGRzLmV4ZWN1dGUgJiYgZHMuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5JU19CT1VORF9UT19MT0NBTEUpKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGF2YWx1ZSA9IGRzLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX0RFRkFVTFRfTE9DQUxFKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIGFwcDogQXBwLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgICAgICB0aGlzLmFwcCA9IGFwcDtcbiAgICAgICAgdGhpcy5hY2NlcHRzQXJyYXkgPSB0cnVlO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHN0eWxlcih0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQsIHRoaXMpO1xuICAgIH1cblxuICAgIC8vIENoYW5nZSBldmVudCBpcyByZWdpc3RlcmVkIGZyb20gdGhlIHRlbXBsYXRlLCBQcmV2ZW50IHRoZSBmcmFtZXdvcmsgZnJvbSByZWdpc3RlcmluZyBvbmUgbW9yZSBldmVudFxuICAgIHByb3RlY3RlZCBoYW5kbGVFdmVudChub2RlOiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIGV2ZW50Q2FsbGJhY2s6IEZ1bmN0aW9uLCBsb2NhbHM6IGFueSkge1xuICAgICAgICBpZiAoIWluY2x1ZGVzKFsnYmx1cicsICdjaGFuZ2UnXSwgZXZlbnROYW1lKSkge1xuICAgICAgICAgICAgc3VwZXIuaGFuZGxlRXZlbnQodGhpcy5zZWxlY3RFbC5uYXRpdmVFbGVtZW50LCBldmVudE5hbWUsIGV2ZW50Q2FsbGJhY2ssIGxvY2Fscyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblNlbGVjdFZhbHVlQ2hhbmdlKCRldmVudCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgICAgaWYgKHRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGF0YXZhbHVlID0gKHRoaXMgYXMgYW55KS5wcmV2RGF0YXZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW52b2tlT25Ub3VjaGVkKCk7XG4gICAgICAgIC8vIGludm9rZSBvbiBkYXRhdmFsdWUgY2hhbmdlLlxuICAgICAgICB0aGlzLmludm9rZU9uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlLCAkZXZlbnQgfHwge30sIHRydWUpO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG4gICAgICAgIGlmIChrZXkgPT09ICdyZXF1aXJlZCcpICB7XG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ2NsYXNzJyB8fCAga2V5ID09PSAndGFiaW5kZXgnKSB7XG4gICAgICAgICAgICBpZihrZXkgPT09ICdjbGFzcycpIHtcbiAgICAgICAgICAgICAgICAvLyBBZnRlciBORzE1IHVwZ3JhZGUgbmctaW52YWxpZCBjbGFzcyBpcyBhZGRlZCBldmVuIHRoZSBmaWVsZCBpcyB2YWxpZCwgc28gd2UgYXJlIHJlbW92aW5nIHRoZSBuZy1pbnZhbGlkIG1hbnVhbGx5XG4gICAgICAgICAgICAgICAgY29uc3QgaXNOZ1VudG91Y2hlZFZhbGlkID0gdGhpcy5zZWxlY3RFbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnbmctdW50b3VjaGVkJykgJiYgdGhpcy5zZWxlY3RFbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnbmctdmFsaWQnKVxuICAgICAgICAgICAgICAgIGlmKGlzTmdVbnRvdWNoZWRWYWxpZCAmJiBudi5pbmNsdWRlcygnbmctdW50b3VjaGVkJykgJiYgbnYuaW5jbHVkZXMoJ25nLWludmFsaWQnKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5zZWxlY3RFbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnbmctdW50b3VjaGVkJykgJiYgdGhpcy5zZWxlY3RFbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnbmctdmFsaWQnKSAmJiB0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCduZy1pbnZhbGlkJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnbmctaW52YWxpZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAncmVhZG9ubHknKSB7XG4gICAgICAgICAgICAgKG52ID09PSB0cnVlKSA/IHNldEF0dHIodGhpcy5zZWxlY3RFbC5uYXRpdmVFbGVtZW50LCAncmVhZG9ubHknLCAncmVhZG9ubHknKSA6IHJlbW92ZUF0dHIodGhpcy5zZWxlY3RFbC5uYXRpdmVFbGVtZW50LCAncmVhZG9ubHknKSA7XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hlbiBjYXB0aW9uIGZsb2F0aW5nIGlzIGVuYWJsZWQgYW5kIHBsYWNlaG9sZGVyIGlzIGdpdmVuLCBkbyBub3Qgc2hvdyBwbGFjZWhvbGRlciB1bnRpbCB1c2VyIGZvY3VzZXMgb24gdGhlIGZpZWxkXG4gICAgICogV2hlbiBmb2N1c2VkIGFkZCB0aGUgcGxhY2Vob2xkZXIgdG8gdGhlIG9wdGlvbiB3aGljaCBpcyBzZWxlY3RlZFxuICAgICAqIE9uIGJsdXIsIHJlbW92ZSB0aGUgcGxhY2Vob2xkZXIgYW5kIGRvIG5vdCBhbmltYXRlIHRoZSBsYWJlbFxuICAgICAqIEBwYXJhbSAkZXZlbnQgZXZlbnQgcmVjZWl2ZWQgd2lsbCBiZSBlaXRoZXIgYSBibHVyIG9yIGZvY3VzIGV2ZW50XG4gICAgICovXG4gICAgY2hlY2tGb3JGbG9hdGluZ0xhYmVsKCRldmVudCkge1xuICAgICAgICBjb25zdCBjYXB0aW9uRWwgPSAkKHRoaXMuc2VsZWN0RWwubmF0aXZlRWxlbWVudCkuY2xvc2VzdCgnLmFwcC1jb21wb3NpdGUtd2lkZ2V0LmNhcHRpb24tZmxvYXRpbmcnKTtcbiAgICAgICAgaWYgKGNhcHRpb25FbC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAoJGV2ZW50LnR5cGUgPT09ICdmb2N1cycgJiYgKCF0aGlzLmRhdGF2YWx1ZSB8fCAodGhpcy5kYXRhdmFsdWUgJiYgJCh0aGlzLnNlbGVjdEVsKS5maW5kKCdzZWxlY3Qgb3B0aW9uOnNlbGVjdGVkJykudGV4dCgpID09PSAnJyAmJiB0aGlzLnBsYWNlaG9sZGVyKSkpIHtcbiAgICAgICAgICAgICAgICBpZighKHRoaXMuZGF0YXZhbHVlIHx8IHRoaXMucGxhY2Vob2xkZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlUGxhY2Vob2xkZXJPcHRpb24oKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMuc2VsZWN0RWwubmF0aXZlRWxlbWVudCkuZmluZCgnb3B0aW9uOmZpcnN0JykudGV4dCh0aGlzLnBsYWNlaG9sZGVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmRhdGF2YWx1ZSkge1xuICAgICAgICAgICAgICAgICQodGhpcy5zZWxlY3RFbC5uYXRpdmVFbGVtZW50KS5maW5kKCdvcHRpb246c2VsZWN0ZWQnKS50ZXh0KCcnKTtcbiAgICAgICAgICAgICAgICBjYXB0aW9uRWwucmVtb3ZlQ2xhc3MoJ2Zsb2F0LWFjdGl2ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYoISh0aGlzLmRhdGF2YWx1ZSB8fCB0aGlzLnBsYWNlaG9sZGVyKSkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVQbGFjZWhvbGRlck9wdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLypcbiAgICAqIFJlbW92aW5nIHRoZSBwbGFjZWhvbGRlciBvcHRpb24gaWYgbm8gcGxhY2Vob2xkZXIgaXMgcHJvdmlkZWQuXG4gICAgKiBJbiBodG1sIHdlIGFyZSBoaWRpbmcgdGhlIHBsYWNlaG9sZGVyIG9wdGlvbiB1c2luZyBjc3MgYnV0IGluIGFwcGxlIGRldmljZXMgYW5kIHNhZmFyaSBvcHRpb24gaXMgc2hvd2luZy5cbiAgICAqICovXG4gICAgcHJpdmF0ZSByZW1vdmVQbGFjZWhvbGRlck9wdGlvbigpIHtcbiAgICAgICAgY29uc3QgaGlkZGVuRWxlID0gJCh0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQpLmZpbmQoJyNwbGFjZWhvbGRlck9wdGlvbicpO1xuICAgICAgICBpZiAoaGlkZGVuRWxlLmxlbmd0aCkge1xuICAgICAgICAgICAgaGlkZGVuRWxlLnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8c2VsZWN0IHJvbGU9XCJsaXN0Ym94XCIgYXJpYS1oYXNwb3B1cD1cInRydWVcIiBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIiAjc2VsZWN0XG4gICAgICAgIGZvY3VzLXRhcmdldFxuICAgICAgICBbbmdDbGFzc109XCJbJ2FwcC1zZWxlY3QgZm9ybS1jb250cm9sJywgY2xhc3NdXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbEJ5S2V5XCJcbiAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiXG4gICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgIChjaGFuZ2UpPVwib25TZWxlY3RWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cImNoZWNrRm9yRmxvYXRpbmdMYWJlbCgkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwiaW52b2tlT25Ub3VjaGVkKCRldmVudCk7IGNoZWNrRm9yRmxvYXRpbmdMYWJlbCgkZXZlbnQpXCJcbiAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJoaW50XCJcbiAgICAgICAgW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdPVwibXVsdGlwbGVcIlxuICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiPlxuXG4gICAgICAgIDxvcHRpb24gc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICB2YWx1ZT1cInVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBpZD1cInBsYWNlaG9sZGVyT3B0aW9uXCJcbiAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIiFwbGFjZWhvbGRlclwiPjwvb3B0aW9uPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3VwYnlcIj5cbiAgICAgICAgPG9wdGdyb3VwICpuZ0Zvcj1cImxldCBncm91cE9iaiBvZiBncm91cGVkRGF0YVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiZ3JvdXBPYmoua2V5XCI+XG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwT2JqLmRhdGE7XCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5rZXlcIlxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgcm9sZT1cIm9wdGlvblwiPjwvb3B0aW9uPlxuICAgICAgICA8L29wdGdyb3VwPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFncm91cGJ5XCI+XG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YXNldEl0ZW1zXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRdPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICByb2xlPVwib3B0aW9uXCI+PC9vcHRpb24+XG4gICAgPC9uZy1jb250YWluZXI+XG48L3NlbGVjdD5cbiJdfQ==
230
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectComponent, { className: "SelectComponent", filePath: "select/select.component.ts", lineNumber: 21 }); })();
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUN6RCxPQUFPLEVBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzFFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0lDb0JqQyw0QkFJMkI7OztJQUR2QixBQURBLEFBREEsbUNBQWtCLDhCQUNRLDhCQUNBOzs7SUFMbEMsbUNBQzJCO0lBQ3ZCLGdHQUlrQjtJQUN0QixpQkFBVzs7O0lBTlAsdUNBQXNCO0lBQ0csY0FBaUI7SUFBakIsMENBQWlCOzs7SUFIbEQsNkJBQThCO0lBQzFCLHlGQUMyQjs7OztJQURJLGNBQWM7SUFBZCw0Q0FBYzs7O0lBVzdDLDRCQUkyQjs7O0lBRHZCLEFBREEsQUFEQSxtQ0FBa0IsOEJBQ1EsOEJBQ0E7OztJQUpsQyw2QkFBK0I7SUFD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O29FQXRCNUMsZUFBZTttQ0FjbUIsVUFBVTs7Ozs4Q0FwQjFDO2dCQUNQLFNBQVMsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO2dCQUNuRCxTQUFTLENBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUM7Z0JBQy9DLGtCQUFrQixDQUFDLGVBQWUsQ0FBQzthQUN0Qzs7WUNqQkwsb0NBZWdDO1lBVHhCLHFQQUF3QjtZQUt4QixBQURBLEFBREEsMElBQVUsK0JBQTJCLEtBQUMsbUlBQ3pCLGlDQUE2QixLQUFDLG1HQUNuQywyQkFBdUIsd0JBQUUsaUNBQTZCLEtBQUM7WUFNL0QsNEJBSXlDO1lBYTdDLEFBWEEsa0ZBQThCLHFFQVdDO1lBT25DLGlCQUFTOztZQXBDRCxBQURBLEFBREEsQUFEQSxnRUFBOEMsMEJBQ3pCLDBCQUNBLDBCQUNBO1lBQ3JCLDhDQUF3QjtZQVN4QixBQVBBLEFBREEsNERBQXFDLDBCQUNoQiw0QkFPRTs7WUFJZixlQUEyQjtZQUUzQixBQUZBLDZDQUEyQiw0QkFFSjtZQUVwQixjQUFhO1lBQWIsa0NBQWE7WUFXYixjQUFjO1lBQWQsbUNBQWM7OztpRkRmcEIsZUFBZTtjQVQzQixTQUFTOzJCQUNJLFdBQVcsYUFFVjtvQkFDUCxTQUFTLGtCQUFrQixpQkFBaUIsRUFBRSxJQUFJLENBQUM7b0JBQ25ELFNBQVMsa0JBQWtCLGFBQWEsRUFBRSxJQUFJLENBQUM7b0JBQy9DLGtCQUFrQixpQkFBaUI7aUJBQ3RDOztzQkF3QjJCLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFRO3FCQVJQLFFBQVE7a0JBQWhFLFNBQVM7bUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFOztrRkFkOUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtEYXRhU291cmNlLCByZW1vdmVBdHRyLCBzZXRBdHRyfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQge3Byb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBzdHlsZXJ9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHtEYXRhc2V0QXdhcmVGb3JtQ29tcG9uZW50fSBmcm9tICcuLi9kYXRhc2V0LWF3YXJlLWZvcm0uY29tcG9uZW50JztcblxuaW1wb3J0IHtyZWdpc3RlclByb3BzfSBmcm9tICcuL3NlbGVjdC5wcm9wcyc7XG5cbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7d2lkZ2V0VHlwZTogJ3dtLXNlbGVjdCcsIGhvc3RDbGFzczogJ2FwcC1zZWxlY3Qtd3JhcHBlcid9O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3dtLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBcyhTZWxlY3RDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzKFNlbGVjdENvbXBvbmVudCwgTkdfVkFMSURBVE9SUywgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihTZWxlY3RDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBEYXRhc2V0QXdhcmVGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHB1YmxpYyByZWFkb25seTogYm9vbGVhbjtcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBwdWJsaWMgbmF2c2VhcmNoYmFyOiBhbnk7XG4gICAgcHVibGljIGNsYXNzOiBhbnk7XG4gICAgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgdGFiaW5kZXg6IGFueTtcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyBhdXRvZm9jdXM6IGJvb2xlYW47XG4gICAgcHVibGljIGhpbnQ6IHN0cmluZztcblxuICAgIEBWaWV3Q2hpbGQoJ3NlbGVjdCcsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pIHNlbGVjdEVsOiBFbGVtZW50UmVmO1xuXG4gICAgc2V0IGRhdGFzb3VyY2UoZHMpIHtcbiAgICAgICAgaWYgKGRzICYmIGRzLmV4ZWN1dGUgJiYgZHMuZXhlY3V0ZShEYXRhU291cmNlLk9wZXJhdGlvbi5JU19CT1VORF9UT19MT0NBTEUpKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGF2YWx1ZSA9IGRzLmV4ZWN1dGUoRGF0YVNvdXJjZS5PcGVyYXRpb24uR0VUX0RFRkFVTFRfTE9DQUxFKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGluajogSW5qZWN0b3IsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHRoaXMuYWNjZXB0c0FycmF5ID0gdHJ1ZTtcblxuICAgICAgICAvKlxuICAgICAgICAqIFdoZW4gdGhlIGRhdGFzZXQgZm9yIGEgc2VsZWN0IGVsZW1lbnQgaXMgdXBkYXRlZCBhbmQgbm8gbG9uZ2VyIGluY2x1ZGVzIHRoZSBwcmV2aW91c2x5IHNlbGVjdGVkIHZhbHVlOlxuICAgICAgICAqIFRoZSBzZWxlY3QgZWxlbWVudCBiZWNvbWVzIGVtcHR5LCBhbmQgdGhlIG5nTW9kZWwgdmFsdWUgaXMgdXBkYXRlZCB0byByZWZsZWN0IHRoaXMgY2hhbmdlLlxuICAgICAgICAqIEhvd2V2ZXIsIHRoZSBjaGFuZ2UgZXZlbnQgaXMgbm90IHRyaWdnZXJlZCwgcHJldmVudGluZyB0aGUgZm9ybSBjb250cm9sIGZyb20gcmVjb2duaXppbmcgdGhlIHVwZGF0ZSBhbmQgYXBwbHlpbmcgbmVjZXNzYXJ5IHZhbGlkYXRpb25zLlxuICAgICAgICAqIEFzIHRoaXMgd2lkZ2V0IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIG1hbnVhbGx5IHVwZGF0aW5nIHRoZSBuZ01vZGVsIChvciBtb2RlbEJ5S2V5KSBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIGNvcnJlY3QgZm9ybSBiZWhhdmlvci5cbiAgICAgICAgKiAqL1xuICAgICAgICBjb25zdCBkYXRhc2V0U3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhc2V0JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0YXZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdGhpcy5kYXRhc2V0SXRlbXMuZmluZChpdGVtID0+IGl0ZW0uc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgIGlmICghc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYoIXRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWxCeUtleSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZighdGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBkYXRhc2V0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHN0eWxlcih0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQsIHRoaXMpO1xuICAgIH1cblxuICAgIC8vIENoYW5nZSBldmVudCBpcyByZWdpc3RlcmVkIGZyb20gdGhlIHRlbXBsYXRlLCBQcmV2ZW50IHRoZSBmcmFtZXdvcmsgZnJvbSByZWdpc3RlcmluZyBvbmUgbW9yZSBldmVudFxuICAgIHByb3RlY3RlZCBoYW5kbGVFdmVudChub2RlOiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIGV2ZW50Q2FsbGJhY2s6IEZ1bmN0aW9uLCBsb2NhbHM6IGFueSkge1xuICAgICAgICBpZiAoIVsnYmx1cicsICdjaGFuZ2UnXS5pbmNsdWRlcyhldmVudE5hbWUpKSB7XG4gICAgICAgICAgICBzdXBlci5oYW5kbGVFdmVudCh0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQsIGV2ZW50TmFtZSwgZXZlbnRDYWxsYmFjaywgbG9jYWxzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU2VsZWN0VmFsdWVDaGFuZ2UoJGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5kYXRhdmFsdWUgPSAodGhpcyBhcyBhbnkpLnByZXZEYXRhdmFsdWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbnZva2VPblRvdWNoZWQoKTtcbiAgICAgICAgLy8gaW52b2tlIG9uIGRhdGF2YWx1ZSBjaGFuZ2UuXG4gICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UodGhpcy5kYXRhdmFsdWUsICRldmVudCB8fCB7fSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y/OiBhbnkpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ3JlcXVpcmVkJykgIHtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnY2xhc3MnIHx8ICBrZXkgPT09ICd0YWJpbmRleCcpIHtcbiAgICAgICAgICAgIGlmKGtleSA9PT0gJ2NsYXNzJykge1xuICAgICAgICAgICAgICAgIC8vIEFmdGVyIE5HMTUgdXBncmFkZSBuZy1pbnZhbGlkIGNsYXNzIGlzIGFkZGVkIGV2ZW4gdGhlIGZpZWxkIGlzIHZhbGlkLCBzbyB3ZSBhcmUgcmVtb3ZpbmcgdGhlIG5nLWludmFsaWQgbWFudWFsbHlcbiAgICAgICAgICAgICAgICBjb25zdCBpc05nVW50b3VjaGVkVmFsaWQgPSB0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCduZy11bnRvdWNoZWQnKSAmJiB0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCduZy12YWxpZCcpXG4gICAgICAgICAgICAgICAgaWYoaXNOZ1VudG91Y2hlZFZhbGlkICYmIG52LmluY2x1ZGVzKCduZy11bnRvdWNoZWQnKSAmJiBudi5pbmNsdWRlcygnbmctaW52YWxpZCcpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZih0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCduZy11bnRvdWNoZWQnKSAmJiB0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCduZy12YWxpZCcpICYmIHRoaXMuc2VsZWN0RWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ25nLWludmFsaWQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0RWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCduZy1pbnZhbGlkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdyZWFkb25seScpIHtcbiAgICAgICAgICAgICAobnYgPT09IHRydWUpID8gc2V0QXR0cih0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQsICdyZWFkb25seScsICdyZWFkb25seScpIDogcmVtb3ZlQXR0cih0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQsICdyZWFkb25seScpIDtcbiAgICAgICAgfVxuICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIGNhcHRpb24gZmxvYXRpbmcgaXMgZW5hYmxlZCBhbmQgcGxhY2Vob2xkZXIgaXMgZ2l2ZW4sIGRvIG5vdCBzaG93IHBsYWNlaG9sZGVyIHVudGlsIHVzZXIgZm9jdXNlcyBvbiB0aGUgZmllbGRcbiAgICAgKiBXaGVuIGZvY3VzZWQgYWRkIHRoZSBwbGFjZWhvbGRlciB0byB0aGUgb3B0aW9uIHdoaWNoIGlzIHNlbGVjdGVkXG4gICAgICogT24gYmx1ciwgcmVtb3ZlIHRoZSBwbGFjZWhvbGRlciBhbmQgZG8gbm90IGFuaW1hdGUgdGhlIGxhYmVsXG4gICAgICogQHBhcmFtICRldmVudCBldmVudCByZWNlaXZlZCB3aWxsIGJlIGVpdGhlciBhIGJsdXIgb3IgZm9jdXMgZXZlbnRcbiAgICAgKi9cbiAgICBjaGVja0ZvckZsb2F0aW5nTGFiZWwoJGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IGNhcHRpb25FbCA9ICQodGhpcy5zZWxlY3RFbC5uYXRpdmVFbGVtZW50KS5jbG9zZXN0KCcuYXBwLWNvbXBvc2l0ZS13aWRnZXQuY2FwdGlvbi1mbG9hdGluZycpO1xuICAgICAgICBpZighdGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVQbGFjZWhvbGRlck9wdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjYXB0aW9uRWwubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgcGxhY2Vob2xkZXJPcHRpb24gPSB0aGlzLnNlbGVjdEVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignI3BsYWNlaG9sZGVyT3B0aW9uJyk7XG4gICAgICAgICAgICBpZiAoJGV2ZW50LnR5cGUgPT09ICdtb3VzZWRvd24nICYmICghdGhpcy5kYXRhdmFsdWUgfHwgKHRoaXMuZGF0YXZhbHVlICYmICQodGhpcy5zZWxlY3RFbCkuZmluZCgnc2VsZWN0IG9wdGlvbjpzZWxlY3RlZCcpLnRleHQoKSA9PT0gJycgJiYgdGhpcy5wbGFjZWhvbGRlcikpKSB7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlck9wdGlvbi50ZXh0Q29udGVudCA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICghdGhpcy5kYXRhdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZih0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyT3B0aW9uLnRleHRDb250ZW50ID0gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhcHRpb25FbC5yZW1vdmVDbGFzcygnZmxvYXQtYWN0aXZlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKlxuICAgICogUmVtb3ZpbmcgdGhlIHBsYWNlaG9sZGVyIG9wdGlvbiBpZiBubyBwbGFjZWhvbGRlciBpcyBwcm92aWRlZC5cbiAgICAqIEluIGh0bWwgd2UgYXJlIGhpZGluZyB0aGUgcGxhY2Vob2xkZXIgb3B0aW9uIHVzaW5nIGNzcyBidXQgaW4gQXBwbGUgZGV2aWNlcyBhbmQgc2FmYXJpIG9wdGlvbiBpcyBzaG93aW5nLlxuICAgICogU3R5bGVzIGFyZSBub3QgYWxsb3dlZCBvbiBvcHRpb24gdGFnIGluIGlvcyBzYWZhcmlcbiAgICAqIEFmdGVyIHJlbW92aW5nIHRoZSBvcHRpb24sIGlmIG5vIGRhdGF2YWx1ZSBpcyBwcmVzZW50IGFuZCBuYXRpdmUgc2VsZWN0IGVsZW1lbnQgc2V0cyB2YWx1ZSB0byB0aGUgZmlyc3Qgb3B0aW9uIGJ5IGRlZmF1bHQsIHNvIHdlIGFyZSBzZXR0aW5nIGl0IHRvIGVtcHR5XG4gICAgKiAqL1xuICAgIHByaXZhdGUgcmVtb3ZlUGxhY2Vob2xkZXJPcHRpb24oKSB7XG4gICAgICAgIGNvbnN0IGhpZGRlbkVsZSA9ICQodGhpcy5zZWxlY3RFbC5uYXRpdmVFbGVtZW50KS5maW5kKCcjcGxhY2Vob2xkZXJPcHRpb24nKTtcbiAgICAgICAgaWYgKGhpZGRlbkVsZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGhpZGRlbkVsZS5yZW1vdmUoKTtcbiAgICAgICAgICAgIGlmKCF0aGlzLmRhdGF2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0RWwubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiPCEtLVVwZGF0ZWQgZm9jdXMgd2l0aCBtb3VzZWRvd24gZXZlbnQuIElPUyBkZXZpY2VzIG5vdCBhbGxvdyB1cGRhdGUgb2Ygb3B0aW9uIHZhbHVlIGFmdGVyIG9wZW5pbmcgZHJvcGRvd24tLT5cbjxzZWxlY3Qgcm9sZT1cImxpc3Rib3hcIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiICNzZWxlY3RcbiAgICAgICAgZm9jdXMtdGFyZ2V0XG4gICAgICAgIFtuZ0NsYXNzXT1cIlsnYXBwLXNlbGVjdCBmb3JtLWNvbnRyb2wnLCBjbGFzc11cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsQnlLZXlcIlxuICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCJcbiAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgKGNoYW5nZSk9XCJvblNlbGVjdFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAobW91c2Vkb3duKT1cImNoZWNrRm9yRmxvYXRpbmdMYWJlbCgkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwiaW52b2tlT25Ub3VjaGVkKCRldmVudCk7IGNoZWNrRm9yRmxvYXRpbmdMYWJlbCgkZXZlbnQpXCJcbiAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJoaW50XCJcbiAgICAgICAgW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdPVwibXVsdGlwbGVcIlxuICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiPlxuXG4gICAgICAgIDxvcHRpb24gc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICB2YWx1ZT1cInVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICBpZD1cInBsYWNlaG9sZGVyT3B0aW9uXCJcbiAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIiFwbGFjZWhvbGRlclwiPjwvb3B0aW9uPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3VwYnlcIj5cbiAgICAgICAgPG9wdGdyb3VwICpuZ0Zvcj1cImxldCBncm91cE9iaiBvZiBncm91cGVkRGF0YVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiZ3JvdXBPYmoua2V5XCI+XG4gICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGdyb3VwT2JqLmRhdGE7XCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5rZXlcIlxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgcm9sZT1cIm9wdGlvblwiPjwvb3B0aW9uPlxuICAgICAgICA8L29wdGdyb3VwPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFncm91cGJ5XCI+XG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YXNldEl0ZW1zXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLmtleVwiXG4gICAgICAgICAgICBbc2VsZWN0ZWRdPVwiaXRlbS5zZWxlY3RlZFwiXG4gICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICByb2xlPVwib3B0aW9uXCI+PC9vcHRpb24+XG4gICAgPC9uZy1jb250YWluZXI+XG48L3NlbGVjdD5cbiJdfQ==
@@ -14,9 +14,6 @@ export class BaseInput extends BaseFormCustomComponent {
14
14
  /* WMS-18269 | Update Angular about the required attr value change */
15
15
  this._onChange(this.datavalue);
16
16
  }
17
- if (key === 'updateon') {
18
- this.ngModelOptions.updateOn = nv === 'default' ? 'change' : ov;
19
- }
20
17
  if (key === 'class') {
21
18
  if (this.inputEl.nativeElement) {
22
19
  switchClass(this.inputEl.nativeElement, nv, ov);
@@ -90,4 +87,4 @@ export class BaseInput extends BaseFormCustomComponent {
90
87
  }, {
91
88
  type: Optional
92
89
  }] }], null); })();
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy90ZXh0L2Jhc2UvYmFzZS1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUdoRyxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDM0QsT0FBTyxFQUFnQixNQUFNLEVBQUUsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBR3hDLE1BQU0sT0FBZ0IsU0FBVSxTQUFRLHVCQUF1QjtJQXdCakQsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLEVBQU8sRUFBRSxFQUFPO1FBQ3BELHFDQUFxQztRQUNyQyxJQUFJLEdBQUcsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNyQixPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLHFFQUFxRTtZQUNyRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxHQUFHLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEdBQUcsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDcEUsQ0FBQztRQUNELElBQUksR0FBRyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lB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QUFRLEdBQUcsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFDeEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzVDLENBQUM7MEVBbEdpQixTQUFTLHdDQTJGZixZQUFZLGVBQ1osa0JBQWtCO3VFQTVGWixTQUFTLFdBQVQsU0FBUzs7aUZBQVQsU0FBUztjQUQ5QixVQUFVOztzQkE0RkYsTUFBTTt1QkFBQyxZQUFZOztzQkFDbkIsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIEVsZW1lbnRSZWYsIEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TmdNb2RlbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyRhcHBEaWdlc3QsIGFkZENsYXNzLCBzd2l0Y2hDbGFzc30gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtJV2lkZ2V0Q29uZmlnLCBzdHlsZXIsIFdpZGdldENvbmZpZ30gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQge0Jhc2VGb3JtQ3VzdG9tQ29tcG9uZW50fSBmcm9tICcuLi8uLi9iYXNlLWZvcm0tY3VzdG9tLmNvbXBvbmVudCc7XG5pbXBvcnQge2dldCwgaXNTdHJpbmd9IGZyb20gXCJsb2Rhc2gtZXNcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VJbnB1dCBleHRlbmRzIEJhc2VGb3JtQ3VzdG9tQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHVibGljIGNsYXNzOiBzdHJpbmc7XG4gICAgcHVibGljIGF1dG90cmltOiBib29sZWFuO1xuICAgIHB1YmxpYyBpbWFzaztcblxuICAgIC8vIHBvc3NpYmxlIHZhbHVlcyBmb3IgbmdNb2RlbE9wdGlvbnMgYXJlICdibHVyJyBhbmQgJ2NoYW5nZSdcbiAgICAvLyBkZWZhdWx0IGlzICdibHVyJ1xuICAgIHB1YmxpYyBuZ01vZGVsT3B0aW9ucyA9IHtcbiAgICAgICAgdXBkYXRlT246ICcnLFxuICAgICAgICBzdGFuZGFsb25lOiB0cnVlXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFJlZmVyZW5jZSB0byB0aGUgaW5wdXQgZWxlbWVudC4gQWxsIHRoZSBzdHlsZXMgYW5kIGNsYXNzZXMgd2lsbCBiZSBhcHBsaWVkIG9uIHRoaXMgbm9kZS5cbiAgICAgKiBJbnB1dCBjb21wb25lbnRzIG11c3Qgb3ZlcnJpZGUgdGhpc1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnB1dEVsOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBuZ01vZGVsIGRpcmVjdGl2ZSBpbnN0YW5jZS5cbiAgICAgKiBVc2VkIHRvIGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUgaW5wdXRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgbmdNb2RlbDogTmdNb2RlbDtcblxuICAgIHByb3RlY3RlZCBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdjogYW55KSB7XG4gICAgICAgIC8vIHNldCB0aGUgY2xhc3Mgb24gdGhlIGlucHV0IGVsZW1lbnRcbiAgICAgICAgaWYgKGtleSA9PT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICdyZXF1aXJlZCcpIHtcbiAgICAgICAgICAgIC8qIFdNUy0xODI2OSB8IFVwZGF0ZSBBbmd1bGFyIGFib3V0IHRoZSByZXF1aXJlZCBhdHRyIHZhbHVlIGNoYW5nZSAqL1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy5kYXRhdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChrZXkgPT09ICd1cGRhdGVvbicpIHtcbiAgICAgICAgICAgIHRoaXMubmdNb2RlbE9wdGlvbnMudXBkYXRlT24gPSBudiA9PT0gJ2RlZmF1bHQnID8gJ2NoYW5nZScgOiBvdjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5ID09PSAnY2xhc3MnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2hDbGFzcyh0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgbnYsIG92KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdkYXRhdmFsdWUnKSB7XG4gICAgICAgICAgICAvLyB1cGRhdGUgdGhlIG9sZERhdGFWYWx1ZSB3aGVuIHRoZSBkYXRhdmFsdWUgaXMgbW9kaWZpZWQgcHJvZ3JhbW1hdGljYWxseVxuICAgICAgICAgICAgdGhpcy51cGRhdGVQcmV2RGF0YXZhbHVlKG52KTtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gaW52b2tlIHRoZSBjaGFuZ2UgY2FsbGJhY2tcbiAgICBoYW5kbGVDaGFuZ2UobmV3VmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5hdXRvdHJpbSAmJiB0aGlzLmRhdGF2YWx1ZSAmJiBpc1N0cmluZyh0aGlzLmRhdGF2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YXZhbHVlID0gdGhpcy5kYXRhdmFsdWUudHJpbSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSwge3R5cGU6ICdjaGFuZ2UnfSwgdGhpcy5uZ01vZGVsLnZhbGlkKTtcbiAgICB9XG5cbiAgICAvLyBDaGFuZ2UgZXZlbnQgaXMgcmVnaXN0ZXJlZCBmcm9tIHRoZSB0ZW1wbGF0ZSwgUHJldmVudCB0aGUgZnJhbWV3b3JrIGZyb20gcmVnaXN0ZXJpbmcgb25lIG1vcmUgZXZlbnRcbiAgICBwcm90ZWN0ZWQgaGFuZGxlRXZlbnQobm9kZTogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBldmVudENhbGxiYWNrOiBGdW5jdGlvbiwgbG9jYWxzOiBhbnkpIHtcbiAgICAgICAgaWYgKGV2ZW50TmFtZSAhPT0gJ2NoYW5nZScgJiYgZXZlbnROYW1lICE9PSAnYmx1cicpIHtcbiAgICAgICAgICAgIHN1cGVyLmhhbmRsZUV2ZW50KHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCBldmVudE5hbWUsIGV2ZW50Q2FsbGJhY2ssIGxvY2Fscyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpbnZva2UgdGhlIGJsdXIgY2FsbGJhY2tcbiAgICBoYW5kbGVCbHVyKCRldmVudCkge1xuICAgICAgICB0aGlzLmludm9rZU9uVG91Y2hlZCgkZXZlbnQpO1xuICAgIH1cblxuICAgIC8vIFVwZGF0ZSB0aGUgbW9kZWwgb24gZW50ZXIga2V5IHByZXNzXG4gICAgZmx1c2hWaWV3Q2hhbmdlcyh2YWwpIHtcbiAgICAgICAgLy8gd2hlbiB2YWwgY29udGFpbnMgbWFza2VkIHZhbHVlLCB1cGRhdGUgdGhlIG1vZGVsIHdpdGggdW5tYXNrZWQgdmFsdWVcbiAgICAgICAgY29uc3QgdW5NYXNrZWRWYWwgPSBnZXQodGhpcy5pbWFzaywgJ21hc2tSZWYudW5tYXNrZWRWYWx1ZScpO1xuICAgICAgICB2YWwgPSB1bk1hc2tlZFZhbCA/IHVuTWFza2VkVmFsIDogdmFsO1xuICAgICAgICB0aGlzLm5nTW9kZWwudXBkYXRlLm5leHQodmFsKTtcbiAgICAgICAgJGFwcERpZ2VzdCgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICAgICAgLy8gYWRkIHRoZSBjbGFzcyBvbiB0aGUgaW5wdXQgZWxlbWVudFxuICAgICAgICBpZiAodGhpcy5jbGFzcykge1xuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIHN0eWxlcih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgdGhpcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KFdpZGdldENvbmZpZykgY29uZmlnOiBJV2lkZ2V0Q29uZmlnLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnlcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qLCBjb25maWcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIGxldCB1cGRhdGVPbiA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3VwZGF0ZW9uJykgfHwgJ2JsdXInO1xuICAgICAgICB1cGRhdGVPbiA9IHVwZGF0ZU9uID09PSAnZGVmYXVsdCcgPyAnY2hhbmdlJyA6IHVwZGF0ZU9uO1xuICAgICAgICB0aGlzLm5nTW9kZWxPcHRpb25zLnVwZGF0ZU9uID0gdXBkYXRlT247XG4gICAgfVxufVxuIl19
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC9kZWZhdWx0L3NyYy90ZXh0L2Jhc2UvYmFzZS1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUdoRyxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDM0QsT0FBTyxFQUFnQixNQUFNLEVBQUUsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBR3hDLE1BQU0sT0FBZ0IsU0FBVSxTQUFRLHVCQUF1QjtJQXdCakQsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLEVBQU8sRUFBRSxFQUFPO1FBQ3BELHFDQUFxQztRQUNyQyxJQUFJLEdBQUcsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNyQixPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLHFFQUFxRTtZQUNyRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBRUQsSUFBSSxHQUFHLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM3QixXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELENBQUM7UUFDTCxDQUFDO2FBQU0s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eUZmLFlBQVksZUFDWixrQkFBa0I7dUVBMUZaLFNBQVMsV0FBVCxTQUFTOztpRkFBVCxTQUFTO2NBRDlCLFVBQVU7O3NCQTBGRixNQUFNO3VCQUFDLFlBQVk7O3NCQUNuQixNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ01vZGVsfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7JGFwcERpZ2VzdCwgYWRkQ2xhc3MsIHN3aXRjaENsYXNzfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQge0lXaWRnZXRDb25maWcsIHN0eWxlciwgV2lkZ2V0Q29uZmlnfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7QmFzZUZvcm1DdXN0b21Db21wb25lbnR9IGZyb20gJy4uLy4uL2Jhc2UtZm9ybS1jdXN0b20uY29tcG9uZW50JztcbmltcG9ydCB7Z2V0LCBpc1N0cmluZ30gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUlucHV0IGV4dGVuZHMgQmFzZUZvcm1DdXN0b21Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBwdWJsaWMgY2xhc3M6IHN0cmluZztcbiAgICBwdWJsaWMgYXV0b3RyaW06IGJvb2xlYW47XG4gICAgcHVibGljIGltYXNrO1xuXG4gICAgLy8gcG9zc2libGUgdmFsdWVzIGZvciBuZ01vZGVsT3B0aW9ucyBhcmUgJ2JsdXInIGFuZCAnY2hhbmdlJ1xuICAgIC8vIGRlZmF1bHQgaXMgJ2JsdXInXG4gICAgcHVibGljIG5nTW9kZWxPcHRpb25zID0ge1xuICAgICAgICB1cGRhdGVPbjogJycsXG4gICAgICAgIHN0YW5kYWxvbmU6IHRydWVcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogUmVmZXJlbmNlIHRvIHRoZSBpbnB1dCBlbGVtZW50LiBBbGwgdGhlIHN0eWxlcyBhbmQgY2xhc3NlcyB3aWxsIGJlIGFwcGxpZWQgb24gdGhpcyBub2RlLlxuICAgICAqIElucHV0IGNvbXBvbmVudHMgbXVzdCBvdmVycmlkZSB0aGlzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGlucHV0RWw6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIG5nTW9kZWwgZGlyZWN0aXZlIGluc3RhbmNlLlxuICAgICAqIFVzZWQgdG8gY2hlY2sgdGhlIHZhbGlkaXR5IG9mIHRoZSBpbnB1dFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBuZ01vZGVsOiBOZ01vZGVsO1xuXG4gICAgcHJvdGVjdGVkIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92OiBhbnkpIHtcbiAgICAgICAgLy8gc2V0IHRoZSBjbGFzcyBvbiB0aGUgaW5wdXQgZWxlbWVudFxuICAgICAgICBpZiAoa2V5ID09PSAndGFiaW5kZXgnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGtleSA9PT0gJ3JlcXVpcmVkJykge1xuICAgICAgICAgICAgLyogV01TLTE4MjY5IHwgVXBkYXRlIEFuZ3VsYXIgYWJvdXQgdGhlIHJlcXVpcmVkIGF0dHIgdmFsdWUgY2hhbmdlICovXG4gICAgICAgICAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoa2V5ID09PSAnY2xhc3MnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2hDbGFzcyh0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgbnYsIG92KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdkYXRhdmFsdWUnKSB7XG4gICAgICAgICAgICAvLyB1cGRhdGUgdGhlIG9sZERhdGFWYWx1ZSB3aGVuIHRoZSBkYXRhdmFsdWUgaXMgbW9kaWZpZWQgcHJvZ3JhbW1hdGljYWxseVxuICAgICAgICAgICAgdGhpcy51cGRhdGVQcmV2RGF0YXZhbHVlKG52KTtcbiAgICAgICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gaW52b2tlIHRoZSBjaGFuZ2UgY2FsbGJhY2tcbiAgICBoYW5kbGVDaGFuZ2UobmV3VmFsdWU6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5hdXRvdHJpbSAmJiB0aGlzLmRhdGF2YWx1ZSAmJiBpc1N0cmluZyh0aGlzLmRhdGF2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YXZhbHVlID0gdGhpcy5kYXRhdmFsdWUudHJpbSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnZva2VPbkNoYW5nZSh0aGlzLmRhdGF2YWx1ZSwge3R5cGU6ICdjaGFuZ2UnfSwgdGhpcy5uZ01vZGVsLnZhbGlkKTtcbiAgICB9XG5cbiAgICAvLyBDaGFuZ2UgZXZlbnQgaXMgcmVnaXN0ZXJlZCBmcm9tIHRoZSB0ZW1wbGF0ZSwgUHJldmVudCB0aGUgZnJhbWV3b3JrIGZyb20gcmVnaXN0ZXJpbmcgb25lIG1vcmUgZXZlbnRcbiAgICBwcm90ZWN0ZWQgaGFuZGxlRXZlbnQobm9kZTogSFRNTEVsZW1lbnQsIGV2ZW50TmFtZTogc3RyaW5nLCBldmVudENhbGxiYWNrOiBGdW5jdGlvbiwgbG9jYWxzOiBhbnkpIHtcbiAgICAgICAgaWYgKGV2ZW50TmFtZSAhPT0gJ2NoYW5nZScgJiYgZXZlbnROYW1lICE9PSAnYmx1cicpIHtcbiAgICAgICAgICAgIHN1cGVyLmhhbmRsZUV2ZW50KHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCBldmVudE5hbWUsIGV2ZW50Q2FsbGJhY2ssIGxvY2Fscyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBpbnZva2UgdGhlIGJsdXIgY2FsbGJhY2tcbiAgICBoYW5kbGVCbHVyKCRldmVudCkge1xuICAgICAgICB0aGlzLmludm9rZU9uVG91Y2hlZCgkZXZlbnQpO1xuICAgIH1cblxuICAgIC8vIFVwZGF0ZSB0aGUgbW9kZWwgb24gZW50ZXIga2V5IHByZXNzXG4gICAgZmx1c2hWaWV3Q2hhbmdlcyh2YWwpIHtcbiAgICAgICAgLy8gd2hlbiB2YWwgY29udGFpbnMgbWFza2VkIHZhbHVlLCB1cGRhdGUgdGhlIG1vZGVsIHdpdGggdW5tYXNrZWQgdmFsdWVcbiAgICAgICAgY29uc3QgdW5NYXNrZWRWYWwgPSBnZXQodGhpcy5pbWFzaywgJ21hc2tSZWYudW5tYXNrZWRWYWx1ZScpO1xuICAgICAgICB2YWwgPSB1bk1hc2tlZFZhbCA/IHVuTWFza2VkVmFsIDogdmFsO1xuICAgICAgICB0aGlzLm5nTW9kZWwudXBkYXRlLm5leHQodmFsKTtcbiAgICAgICAgJGFwcERpZ2VzdCgpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICAgICAgLy8gYWRkIHRoZSBjbGFzcyBvbiB0aGUgaW5wdXQgZWxlbWVudFxuICAgICAgICBpZiAodGhpcy5jbGFzcykge1xuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIHN0eWxlcih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgdGhpcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBASW5qZWN0KFdpZGdldENvbmZpZykgY29uZmlnOiBJV2lkZ2V0Q29uZmlnLFxuICAgICAgICBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnlcbiAgICApIHtcbiAgICAgICAgc3VwZXIoaW5qLCBjb25maWcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIGxldCB1cGRhdGVPbiA9IHRoaXMubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3VwZGF0ZW9uJykgfHwgJ2JsdXInO1xuICAgICAgICB1cGRhdGVPbiA9IHVwZGF0ZU9uID09PSAnZGVmYXVsdCcgPyAnY2hhbmdlJyA6IHVwZGF0ZU9uO1xuICAgICAgICB0aGlzLm5nTW9kZWxPcHRpb25zLnVwZGF0ZU9uID0gdXBkYXRlT247XG4gICAgfVxufVxuIl19