barsa-sap-ui 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/esm2020/lib/apply-conditional-formmatings.directive.mjs +1 -1
  2. package/esm2020/lib/barsa-asp-viewer/barsa-asp-viewer.component.mjs +2 -2
  3. package/esm2020/lib/barsa-date-time-picker/barsa-date-time-picker.component.mjs +1 -1
  4. package/esm2020/lib/barsa-list-file-linear/barsa-list-file-linear.component.mjs +4 -4
  5. package/esm2020/lib/barsa-monaco-editor/barsa-monaco-editor.component.mjs +14 -14
  6. package/esm2020/lib/barsa-network-offline/barsa-network-offline.component.mjs +20 -12
  7. package/esm2020/lib/barsa-sap-ui-routing.module.mjs +1 -1
  8. package/esm2020/lib/barsa-sap-ui.module.mjs +25 -16
  9. package/esm2020/lib/barsa-search-form/barsa-search-form.component.mjs +3 -3
  10. package/esm2020/lib/barsa-table-header/barsa-table-header.component.mjs +4 -4
  11. package/esm2020/lib/barsa-table-row/barsa-table-row.component.mjs +3 -3
  12. package/esm2020/lib/barsa-tinyemce/barsa-tinyemce.component.mjs +6 -6
  13. package/esm2020/lib/barsa-tree-item/barsa-tree-item.component.mjs +23 -12
  14. package/esm2020/lib/barsa-ulv-main/barsa-ulv-main.component.mjs +8 -7
  15. package/esm2020/lib/blob-viewer/blob-viewer.component.mjs +60 -0
  16. package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +3 -3
  17. package/esm2020/lib/captcha-field/captcha-field.component.mjs +1 -1
  18. package/esm2020/lib/card-item/card-item.component.mjs +4 -4
  19. package/esm2020/lib/card-view-content/card-view-content.component.mjs +3 -3
  20. package/esm2020/lib/column-matrix-renderer/column-matrix-renderer.component.mjs +3 -3
  21. package/esm2020/lib/column-matrix-renderer/matrix-value.pipe.mjs +1 -1
  22. package/esm2020/lib/column-renderer/column-renderer.component.mjs +6 -5
  23. package/esm2020/lib/constants.mjs +1 -1
  24. package/esm2020/lib/custom-date-time/custom-date-time.component.mjs +1 -1
  25. package/esm2020/lib/device-info-field-base.mjs +1 -1
  26. package/esm2020/lib/download-files.directive.mjs +33 -0
  27. package/esm2020/lib/empty-page/empty-page.component.mjs +3 -3
  28. package/esm2020/lib/file-in-dialog/file-in-dialog.component.mjs +1 -1
  29. package/esm2020/lib/file-viewer/file-viewer.component.mjs +47 -0
  30. package/esm2020/lib/file-viewer-content/file-viewer-content.component.mjs +49 -0
  31. package/esm2020/lib/file-viewer-popover/file-viewer-popover.component.mjs +34 -0
  32. package/esm2020/lib/form-dialog/form-dialog.component.mjs +3 -3
  33. package/esm2020/lib/form-dialog-less/form-dialog-less.component.mjs +1 -1
  34. package/esm2020/lib/form-page/form-page.component.mjs +17 -17
  35. package/esm2020/lib/form-page-base.mjs +1 -1
  36. package/esm2020/lib/form-toolbar-button/form-toolbar-button.component.mjs +3 -3
  37. package/esm2020/lib/form-wizard/form-wizard.component.mjs +3 -3
  38. package/esm2020/lib/fullscreen-dialog.directive.mjs +1 -1
  39. package/esm2020/lib/fullscreen-files.directive.mjs +39 -0
  40. package/esm2020/lib/fundamental-dynamic-form/fundamental-dynamic-form.component.mjs +3 -3
  41. package/esm2020/lib/gantt-dhtml-chart-view/gantt-dhtml-chart-view.component.mjs +1 -1
  42. package/esm2020/lib/global-search/global-search.component.mjs +1 -1
  43. package/esm2020/lib/global-search-module/global-search-module.component.mjs +1 -1
  44. package/esm2020/lib/global-search-panel/global-search-panel.component.mjs +1 -1
  45. package/esm2020/lib/header-avatar/header-avatar.component.mjs +1 -1
  46. package/esm2020/lib/header-facet-form/header-facet-form.component.mjs +1 -1
  47. package/esm2020/lib/header-facet-key-value/header-facet-key-value.component.mjs +1 -1
  48. package/esm2020/lib/header-facet-microchart/header-facet-microchart.component.mjs +3 -3
  49. package/esm2020/lib/header-facet-plain-text/header-facet-plain-text.component.mjs +3 -3
  50. package/esm2020/lib/header-facet-rate/header-facet-rate.component.mjs +1 -1
  51. package/esm2020/lib/hyperlink/hyperlink.component.mjs +1 -1
  52. package/esm2020/lib/index.mjs +18 -3
  53. package/esm2020/lib/inline-save-and-cancel/inline-save-and-cancel.component.mjs +1 -1
  54. package/esm2020/lib/layout-actions/layout-actions.component.mjs +1 -1
  55. package/esm2020/lib/layout-control/layout-control.component.mjs +4 -4
  56. package/esm2020/lib/layout-wizard/layout-wizard.component.mjs +25 -3
  57. package/esm2020/lib/list-item/list-item.component.mjs +3 -3
  58. package/esm2020/lib/ly-empty-space/ly-empty-space.component.mjs +5 -7
  59. package/esm2020/lib/ly-horizontal-layout/ly-horizontal-layout.component.mjs +8 -7
  60. package/esm2020/lib/ly-layout-container/ly-layout-container.component.mjs +3 -3
  61. package/esm2020/lib/ly-layout-container-of-root/ly-layout-container-of-root.component.mjs +3 -3
  62. package/esm2020/lib/ly-layout-field-label/ly-layout-field-label.component.mjs +1 -1
  63. package/esm2020/lib/ly-layout-panel/ly-layout-panel.component.mjs +9 -3
  64. package/esm2020/lib/ly-line/ly-line.component.mjs +1 -1
  65. package/esm2020/lib/ly-simple-label/ly-simple-label.component.mjs +6 -10
  66. package/esm2020/lib/ly-tab-container/ly-tab-container.component.mjs +7 -3
  67. package/esm2020/lib/ly-tab-page/ly-tab-page.component.mjs +3 -3
  68. package/esm2020/lib/ly-vertical-layout/ly-vertical-layout.component.mjs +8 -7
  69. package/esm2020/lib/mask/mask.component.mjs +3 -3
  70. package/esm2020/lib/message-strip/message-strip.component.mjs +1 -1
  71. package/esm2020/lib/models/grid-data-provider.mjs +2 -2
  72. package/esm2020/lib/models/grid-view.mjs +1 -1
  73. package/esm2020/lib/no-data/no-data.component.mjs +3 -3
  74. package/esm2020/lib/page-with-form-handler-base.mjs +1 -1
  75. package/esm2020/lib/page-with-header/page-with-header.component.mjs +1 -1
  76. package/esm2020/lib/progress-indicator/progress-indicator.component.mjs +1 -1
  77. package/esm2020/lib/report-navigator/report-navigator.component.mjs +3 -3
  78. package/esm2020/lib/report-new-top-form/report-new-top-form.component.mjs +3 -3
  79. package/esm2020/lib/report-search-fields-hidden-settings/report-search-fields-hidden-settings.component.mjs +3 -3
  80. package/esm2020/lib/report-search-fields-manage/report-search-fields-manage.component.mjs +3 -3
  81. package/esm2020/lib/report-tree-base.mjs +4 -1
  82. package/esm2020/lib/report-view-renderer.directive.mjs +32 -2
  83. package/esm2020/lib/responsive-toolbar/responsive-toolbar.component.mjs +1 -1
  84. package/esm2020/lib/responsive-toolbar-renderer/responsive-toolbar-renderer.component.mjs +1 -1
  85. package/esm2020/lib/rich-text-static/rich-text-static.component.mjs +1 -1
  86. package/esm2020/lib/sap-ui-report-base.component.mjs +87 -64
  87. package/esm2020/lib/search-panel/search-panel.component.mjs +1 -1
  88. package/esm2020/lib/static-text/static-text.component.mjs +3 -3
  89. package/esm2020/lib/ui-asp-report-viewer/ui-asp-report-viewer.component.mjs +3 -3
  90. package/esm2020/lib/ui-button/ui-button.component.mjs +3 -3
  91. package/esm2020/lib/ui-calendar/ui-calendar.component.mjs +3 -3
  92. package/esm2020/lib/ui-card-view/ui-card-view.component.mjs +3 -3
  93. package/esm2020/lib/ui-check-box/ui-check-box.component.mjs +3 -3
  94. package/esm2020/lib/ui-color-ui/ui-color-ui.component.mjs +1 -1
  95. package/esm2020/lib/ui-container-with-button/ui-container-with-button.component.mjs +3 -3
  96. package/esm2020/lib/ui-date-range-ex/ui-date-range-ex.component.mjs +3 -3
  97. package/esm2020/lib/ui-date-time/ui-date-time.component.mjs +3 -3
  98. package/esm2020/lib/ui-editable-grid/ui-editable-grid.component.mjs +3 -3
  99. package/esm2020/lib/ui-exception-form/ui-exception-form.component.mjs +1 -1
  100. package/esm2020/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.mjs +29 -90
  101. package/esm2020/lib/ui-form-panel/ui-form-panel.component.mjs +3 -3
  102. package/esm2020/lib/ui-gantt-chart/ui-gantt-chart.component.mjs +3 -3
  103. package/esm2020/lib/ui-graph/ui-graph.component.mjs +1 -1
  104. package/esm2020/lib/ui-grid/ui-grid.component.mjs +3 -3
  105. package/esm2020/lib/ui-grid-columns/ui-grid-columns.component.mjs +3 -3
  106. package/esm2020/lib/ui-grid-filter-item/ui-grid-filter-item.component.mjs +1 -1
  107. package/esm2020/lib/ui-grid-filter-settings/ui-grid-filter-settings.component.mjs +1 -1
  108. package/esm2020/lib/ui-grid-sort-item/ui-grid-sort-item.component.mjs +1 -1
  109. package/esm2020/lib/ui-grid-sort-setting/ui-grid-sort-setting.component.mjs +1 -1
  110. package/esm2020/lib/ui-info-bar-panel/ui-info-bar-panel.component.mjs +1 -1
  111. package/esm2020/lib/ui-label/ui-label.component.mjs +3 -3
  112. package/esm2020/lib/ui-linear-list-container-with-button/ui-linear-list-container-with-button.component.mjs +2 -2
  113. package/esm2020/lib/ui-list-view/ui-list-view.component.mjs +4 -3
  114. package/esm2020/lib/ui-matrix-view/ui-matrix-view.component.mjs +3 -3
  115. package/esm2020/lib/ui-mo-info-combo-viewer/ui-mo-info-combo-viewer.component.mjs +3 -3
  116. package/esm2020/lib/ui-mo-info-general-object-ui/ui-mo-info-general-object-ui.component.mjs +1 -1
  117. package/esm2020/lib/ui-mo-info-sub-form-ui/ui-mo-info-sub-form-ui.component.mjs +3 -3
  118. package/esm2020/lib/ui-mo-info-ulv-combo/ui-mo-info-ulv-combo.component.mjs +19 -14
  119. package/esm2020/lib/ui-monaco-editor/ui-monaco-editor.component.mjs +3 -3
  120. package/esm2020/lib/ui-multi-select-combo/ui-multi-select-combo.component.mjs +26 -9
  121. package/esm2020/lib/ui-num-decimal-ui/ui-num-decimal-ui.component.mjs +1 -1
  122. package/esm2020/lib/ui-num-int-ui/ui-num-int-ui.component.mjs +3 -3
  123. package/esm2020/lib/ui-pdf-viewer/ui-pdf-viewer.component.mjs +19 -20
  124. package/esm2020/lib/ui-picture-file/ui-picture-file.component.mjs +26 -30
  125. package/esm2020/lib/ui-pictures-info/ui-pictures-info.component.mjs +39 -31
  126. package/esm2020/lib/ui-radio-group/ui-radio-group.component.mjs +3 -3
  127. package/esm2020/lib/ui-read-only-field/ui-read-only-field.component.mjs +3 -3
  128. package/esm2020/lib/ui-report-container/ui-report-container.component.mjs +3 -3
  129. package/esm2020/lib/ui-search-command-info-ui/ui-search-command-info-ui.component.mjs +1 -1
  130. package/esm2020/lib/ui-simple-combo/ui-simple-combo.component.mjs +3 -3
  131. package/esm2020/lib/ui-single-picture/ui-single-picture.component.mjs +1 -1
  132. package/esm2020/lib/ui-switch-button/ui-switch-button.component.mjs +3 -3
  133. package/esm2020/lib/ui-table-view/ui-table-view.component.mjs +8 -3
  134. package/esm2020/lib/ui-text-area/ui-text-area.component.mjs +3 -3
  135. package/esm2020/lib/ui-text-field/ui-text-field.component.mjs +1 -1
  136. package/esm2020/lib/ui-text-field-auto-complete/ui-text-field-auto-complete.component.mjs +3 -3
  137. package/esm2020/lib/ui-time-span/ui-time-span.component.mjs +1 -1
  138. package/esm2020/lib/ui-tinymce/ui-tinymce.component.mjs +1 -1
  139. package/esm2020/lib/ui-tree/ui-tree.component.mjs +26 -3
  140. package/esm2020/lib/ui-tree-view/ui-tree-view.component.mjs +9 -3
  141. package/esm2020/lib/ui-ulv-form-multi-select-ui/ui-ulv-form-multi-select-ui.component.mjs +2 -2
  142. package/esm2020/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.mjs +6 -3
  143. package/esm2020/lib/ui-workflow-panel-ui/ui-workflow-panel-ui.component.mjs +1 -1
  144. package/esm2020/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.mjs +7 -2
  145. package/esm2020/lib/ul-msg-box-adapter/ul-msg-box-adapter.component.mjs +3 -3
  146. package/esm2020/lib/ul-notify-popup/ul-notify-popup.component.mjs +1 -1
  147. package/esm2020/lib/ul-toast-adapter/ul-toast-adapter.component.mjs +1 -1
  148. package/esm2020/lib/ulv-column-settings/ulv-column-settings.component.mjs +3 -3
  149. package/esm2020/lib/ulv-context-menu/ulv-context-menu.component.mjs +3 -3
  150. package/esm2020/lib/ulv-filter-settings/ulv-filter-settings.component.mjs +3 -3
  151. package/esm2020/lib/ulv-form-multi-select/ulv-form-multi-select.component.mjs +5 -5
  152. package/esm2020/lib/ulv-groupby-settings/ulv-groupby-settings.component.mjs +3 -3
  153. package/esm2020/lib/ulv-paging/ulv-paging.component.mjs +1 -1
  154. package/esm2020/lib/ulv-selection/ulv-selection.component.mjs +2 -2
  155. package/esm2020/lib/ulv-settings/ulv-settings.component.mjs +1 -1
  156. package/esm2020/lib/ulv-sort-settings/ulv-sort-settings.component.mjs +3 -3
  157. package/esm2020/lib/ulv-toolbar/ulv-toolbar.component.mjs +11 -5
  158. package/esm2020/lib/wizard-layout.directive.mjs +1 -1
  159. package/esm2020/public-api.mjs +7 -1
  160. package/fesm2015/barsa-sap-ui.mjs +888 -542
  161. package/fesm2015/barsa-sap-ui.mjs.map +1 -1
  162. package/fesm2020/barsa-sap-ui.mjs +879 -541
  163. package/fesm2020/barsa-sap-ui.mjs.map +1 -1
  164. package/lib/barsa-network-offline/barsa-network-offline.component.d.ts +3 -2
  165. package/lib/barsa-sap-ui.module.d.ts +31 -25
  166. package/lib/barsa-tree-item/barsa-tree-item.component.d.ts +7 -1
  167. package/lib/barsa-ulv-main/barsa-ulv-main.component.d.ts +3 -1
  168. package/lib/blob-viewer/blob-viewer.component.d.ts +20 -0
  169. package/lib/download-files.directive.d.ts +9 -0
  170. package/lib/file-viewer/file-viewer.component.d.ts +21 -0
  171. package/lib/file-viewer-content/file-viewer-content.component.d.ts +18 -0
  172. package/lib/file-viewer-popover/file-viewer-popover.component.d.ts +13 -0
  173. package/lib/fullscreen-files.directive.d.ts +15 -0
  174. package/lib/index.d.ts +8 -4
  175. package/lib/layout-control/layout-control.component.d.ts +5 -5
  176. package/lib/layout-wizard/layout-wizard.component.d.ts +1 -0
  177. package/lib/ly-empty-space/ly-empty-space.component.d.ts +1 -3
  178. package/lib/ly-horizontal-layout/ly-horizontal-layout.component.d.ts +4 -3
  179. package/lib/ly-simple-label/ly-simple-label.component.d.ts +1 -3
  180. package/lib/ly-tab-container/ly-tab-container.component.d.ts +3 -1
  181. package/lib/ly-vertical-layout/ly-vertical-layout.component.d.ts +4 -3
  182. package/lib/report-tree-base.d.ts +2 -1
  183. package/lib/report-view-renderer.directive.d.ts +10 -1
  184. package/lib/sap-ui-report-base.component.d.ts +13 -4
  185. package/lib/ui-file-linear-list-box/ui-file-linear-list-box.component.d.ts +15 -18
  186. package/lib/ui-multi-select-combo/ui-multi-select-combo.component.d.ts +9 -3
  187. package/lib/ui-pdf-viewer/ui-pdf-viewer.component.d.ts +5 -6
  188. package/lib/ui-picture-file/ui-picture-file.component.d.ts +4 -6
  189. package/lib/ui-pictures-info/ui-pictures-info.component.d.ts +8 -7
  190. package/lib/ui-table-view/ui-table-view.component.d.ts +1 -0
  191. package/lib/ui-tree/ui-tree.component.d.ts +5 -0
  192. package/lib/ui-tree-view/ui-tree-view.component.d.ts +7 -1
  193. package/lib/ui-ulv-main-ui/ui-ulv-main-ui.component.d.ts +2 -1
  194. package/lib/ul-loading-mask-ui/ul-loading-mask-ui.component.d.ts +2 -1
  195. package/lib/ulv-toolbar/ulv-toolbar.component.d.ts +4 -1
  196. package/package.json +1 -1
  197. package/public-api.d.ts +6 -0
@@ -11,9 +11,9 @@ export class UiMoInfoComboViewerComponent extends FieldBaseComponent {
11
11
  }
12
12
  }
13
13
  UiMoInfoComboViewerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiMoInfoComboViewerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
14
- UiMoInfoComboViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiMoInfoComboViewerComponent, selector: "bsu-ui-mo-info-combo-viewer", usesInheritance: true, ngImport: i0, template: "<fd-text [text]=\"value | bbbTranslate\" hyphenation=\"auto\"></fd-text>\n<button\n *ngIf=\"(disableOrReadonly$ | async) !== true && !Setting.IsReadOnly && Setting.ViewRelatedFormType !== 'Hide'\"\n fd-button\n [glyph]=\"'edit'\"\n [fdType]=\"'transparent'\"\n (click)=\"onBtnClick()\"\n></button>\n", styles: [":host{display:flex;height:auto;align-items:center}h5{align-self:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "moreLabel", "lessLabel", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
+ UiMoInfoComboViewerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiMoInfoComboViewerComponent, selector: "bsu-ui-mo-info-combo-viewer", usesInheritance: true, ngImport: i0, template: "<fd-text [text]=\"value | bbbTranslate\" hyphenation=\"auto\"></fd-text>\r\n<button\r\n *ngIf=\"(disableOrReadonly$ | async) !== true && !Setting.IsReadOnly && Setting.ViewRelatedFormType !== 'Hide'\"\r\n fd-button\r\n [glyph]=\"'edit'\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"onBtnClick()\"\r\n></button>\r\n", styles: [":host{display:flex;height:auto;align-items:center}h5{align-self:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i3.TextComponent, selector: "fd-text", inputs: ["text", "maxLines", "whitespaces", "hyphenation", "expandable", "moreLabel", "lessLabel", "isCollapsed"], outputs: ["isCollapsedChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiMoInfoComboViewerComponent, decorators: [{
16
16
  type: Component,
17
- args: [{ selector: 'bsu-ui-mo-info-combo-viewer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-text [text]=\"value | bbbTranslate\" hyphenation=\"auto\"></fd-text>\n<button\n *ngIf=\"(disableOrReadonly$ | async) !== true && !Setting.IsReadOnly && Setting.ViewRelatedFormType !== 'Hide'\"\n fd-button\n [glyph]=\"'edit'\"\n [fdType]=\"'transparent'\"\n (click)=\"onBtnClick()\"\n></button>\n", styles: [":host{display:flex;height:auto;align-items:center}h5{align-self:center}\n"] }]
17
+ args: [{ selector: 'bsu-ui-mo-info-combo-viewer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-text [text]=\"value | bbbTranslate\" hyphenation=\"auto\"></fd-text>\r\n<button\r\n *ngIf=\"(disableOrReadonly$ | async) !== true && !Setting.IsReadOnly && Setting.ViewRelatedFormType !== 'Hide'\"\r\n fd-button\r\n [glyph]=\"'edit'\"\r\n [fdType]=\"'transparent'\"\r\n (click)=\"onBtnClick()\"\r\n></button>\r\n", styles: [":host{display:flex;height:auto;align-items:center}h5{align-self:center}\n"] }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby1jb21iby12aWV3ZXIvdWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby1jb21iby12aWV3ZXIvdWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBTzFELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxrQkFBa0I7SUFDaEUsVUFBVTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7eUhBSFEsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsMEZDVHpDLDRUQVFBOzJGRENhLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDSSw2QkFBNkIsbUJBR3RCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXVpLW1vLWluZm8tY29tYm8tdmlld2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLW1vLWluZm8tY29tYm8tdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWlNb0luZm9Db21ib1ZpZXdlckNvbXBvbmVudCBleHRlbmRzIEZpZWxkQmFzZUNvbXBvbmVudCB7XG4gICAgb25CdG5DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnQnV0dG9uQ2xpY2snLCB0aGlzLmNvbnRleHQpO1xuICAgIH1cbn1cbiIsIjxmZC10ZXh0IFt0ZXh0XT1cInZhbHVlIHwgYmJiVHJhbnNsYXRlXCIgaHlwaGVuYXRpb249XCJhdXRvXCI+PC9mZC10ZXh0PlxuPGJ1dHRvblxuICAgICpuZ0lmPVwiKGRpc2FibGVPclJlYWRvbmx5JCB8IGFzeW5jKSAhPT0gdHJ1ZSAmJiAhU2V0dGluZy5Jc1JlYWRPbmx5ICYmIFNldHRpbmcuVmlld1JlbGF0ZWRGb3JtVHlwZSAhPT0gJ0hpZGUnXCJcbiAgICBmZC1idXR0b25cbiAgICBbZ2x5cGhdPVwiJ2VkaXQnXCJcbiAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgIChjbGljayk9XCJvbkJ0bkNsaWNrKClcIlxuPjwvYnV0dG9uPlxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby1jb21iby12aWV3ZXIvdWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby1jb21iby12aWV3ZXIvdWktbW8taW5mby1jb21iby12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7O0FBTzFELE1BQU0sT0FBTyw0QkFBNkIsU0FBUSxrQkFBa0I7SUFDaEUsVUFBVTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQzs7eUhBSFEsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsMEZDVHpDLDRVQVFBOzJGRENhLDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDSSw2QkFBNkIsbUJBR3RCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBGaWVsZEJhc2VDb21wb25lbnQgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktbW8taW5mby1jb21iby12aWV3ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLW1vLWluZm8tY29tYm8tdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLW1vLWluZm8tY29tYm8tdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlNb0luZm9Db21ib1ZpZXdlckNvbXBvbmVudCBleHRlbmRzIEZpZWxkQmFzZUNvbXBvbmVudCB7XHJcbiAgICBvbkJ0bkNsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ0J1dHRvbkNsaWNrJywgdGhpcy5jb250ZXh0KTtcclxuICAgIH1cclxufVxyXG4iLCI8ZmQtdGV4dCBbdGV4dF09XCJ2YWx1ZSB8IGJiYlRyYW5zbGF0ZVwiIGh5cGhlbmF0aW9uPVwiYXV0b1wiPjwvZmQtdGV4dD5cclxuPGJ1dHRvblxyXG4gICAgKm5nSWY9XCIoZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMpICE9PSB0cnVlICYmICFTZXR0aW5nLklzUmVhZE9ubHkgJiYgU2V0dGluZy5WaWV3UmVsYXRlZEZvcm1UeXBlICE9PSAnSGlkZSdcIlxyXG4gICAgZmQtYnV0dG9uXHJcbiAgICBbZ2x5cGhdPVwiJ2VkaXQnXCJcclxuICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXHJcbiAgICAoY2xpY2spPVwib25CdG5DbGljaygpXCJcclxuPjwvYnV0dG9uPlxyXG4iXX0=
@@ -10,4 +10,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
10
10
  type: Component,
11
11
  args: [{ selector: 'bsu-ui-mo-info-general-object-ui', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bnrc-field-ui class=\"inner-control\" [customField]=\"context?._typeComboControl\"></bnrc-field-ui>\r\n<bnrc-field-ui class=\"inner-control\" [customField]=\"context?._objectComboControl\"></bnrc-field-ui>\r\n", styles: [":host{display:flex;column-gap:10px;align-items:center}:host bnrc-field-ui:first-child{flex:30}:host bnrc-field-ui:last-child{flex:70}\n"] }]
12
12
  }] });
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW8taW5mby1nZW5lcmFsLW9iamVjdC11aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1tby1pbmZvLWdlbmVyYWwtb2JqZWN0LXVpL3VpLW1vLWluZm8tZ2VuZXJhbC1vYmplY3QtdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby1nZW5lcmFsLW9iamVjdC11aS91aS1tby1pbmZvLWdlbmVyYWwtb2JqZWN0LXVpLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQU8xRCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsa0JBQWtCOzs2SEFBM0QsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0MsK0ZDVDdDLG9OQUVBOzJGRE9hLGdDQUFnQztrQkFONUMsU0FBUzsrQkFDSSxrQ0FBa0MsbUJBRzNCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXVpLW1vLWluZm8tZ2VuZXJhbC1vYmplY3QtdWknLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1tby1pbmZvLWdlbmVyYWwtb2JqZWN0LXVpLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91aS1tby1pbmZvLWdlbmVyYWwtb2JqZWN0LXVpLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWlNb0luZm9HZW5lcmFsT2JqZWN0VWlDb21wb25lbnQgZXh0ZW5kcyBGaWVsZEJhc2VDb21wb25lbnQge31cbiIsIjxibnJjLWZpZWxkLXVpIGNsYXNzPVwiaW5uZXItY29udHJvbFwiIFtjdXN0b21GaWVsZF09XCJjb250ZXh0Py5fdHlwZUNvbWJvQ29udHJvbFwiPjwvYm5yYy1maWVsZC11aT5cclxuPGJucmMtZmllbGQtdWkgY2xhc3M9XCJpbm5lci1jb250cm9sXCIgW2N1c3RvbUZpZWxkXT1cImNvbnRleHQ/Ll9vYmplY3RDb21ib0NvbnRyb2xcIj48L2JucmMtZmllbGQtdWk+XHJcbiJdfQ==
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW8taW5mby1nZW5lcmFsLW9iamVjdC11aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1tby1pbmZvLWdlbmVyYWwtb2JqZWN0LXVpL3VpLW1vLWluZm8tZ2VuZXJhbC1vYmplY3QtdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby1nZW5lcmFsLW9iamVjdC11aS91aS1tby1pbmZvLWdlbmVyYWwtb2JqZWN0LXVpLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQU8xRCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsa0JBQWtCOzs2SEFBM0QsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0MsK0ZDVDdDLG9OQUVBOzJGRE9hLGdDQUFnQztrQkFONUMsU0FBUzsrQkFDSSxrQ0FBa0MsbUJBRzNCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBGaWVsZEJhc2VDb21wb25lbnQgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktbW8taW5mby1nZW5lcmFsLW9iamVjdC11aScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktbW8taW5mby1nZW5lcmFsLW9iamVjdC11aS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS1tby1pbmZvLWdlbmVyYWwtb2JqZWN0LXVpLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlNb0luZm9HZW5lcmFsT2JqZWN0VWlDb21wb25lbnQgZXh0ZW5kcyBGaWVsZEJhc2VDb21wb25lbnQge31cclxuIiwiPGJucmMtZmllbGQtdWkgY2xhc3M9XCJpbm5lci1jb250cm9sXCIgW2N1c3RvbUZpZWxkXT1cImNvbnRleHQ/Ll90eXBlQ29tYm9Db250cm9sXCI+PC9ibnJjLWZpZWxkLXVpPlxyXG48Ym5yYy1maWVsZC11aSBjbGFzcz1cImlubmVyLWNvbnRyb2xcIiBbY3VzdG9tRmllbGRdPVwiY29udGV4dD8uX29iamVjdENvbWJvQ29udHJvbFwiPjwvYm5yYy1maWVsZC11aT5cclxuIl19
@@ -32,10 +32,10 @@ export class UiMoInfoSubFormUiComponent extends DeviceInfoFieldBaseComponent {
32
32
  }
33
33
  }
34
34
  UiMoInfoSubFormUiComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiMoInfoSubFormUiComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
35
- UiMoInfoSubFormUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiMoInfoSubFormUiComponent, selector: "bsu-ui-mo-info-sub-form-ui", host: { properties: { "class.control-disabled": "this.disabled", "class.control-readonly": "this.readonly" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"customFormPanelUi\">\n <bnrc-form *untilInView=\"el\" [customFormPanelUi]=\"customFormPanelUi\"></bnrc-form>\n</ng-container>\n", styles: [":host{display:block;height:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "formPanelCtrlId"], outputs: ["titleChanged", "moChanged", "formClose", "formRendered"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
35
+ UiMoInfoSubFormUiComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiMoInfoSubFormUiComponent, selector: "bsu-ui-mo-info-sub-form-ui", host: { properties: { "class.control-disabled": "this.disabled", "class.control-readonly": "this.readonly" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"customFormPanelUi\">\r\n <bnrc-form *untilInView=\"el\" [customFormPanelUi]=\"customFormPanelUi\"></bnrc-form>\r\n</ng-container>\r\n", styles: [":host{display:block;height:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormComponent, selector: "bnrc-form", inputs: ["params", "customFormPanelUi", "formPanelCtrl", "formPanelCtrlId"], outputs: ["titleChanged", "moChanged", "formClose", "formRendered"] }, { kind: "directive", type: i2.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
36
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiMoInfoSubFormUiComponent, decorators: [{
37
37
  type: Component,
38
- args: [{ selector: 'bsu-ui-mo-info-sub-form-ui', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"customFormPanelUi\">\n <bnrc-form *untilInView=\"el\" [customFormPanelUi]=\"customFormPanelUi\"></bnrc-form>\n</ng-container>\n", styles: [":host{display:block;height:auto}\n"] }]
38
+ args: [{ selector: 'bsu-ui-mo-info-sub-form-ui', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"customFormPanelUi\">\r\n <bnrc-form *untilInView=\"el\" [customFormPanelUi]=\"customFormPanelUi\"></bnrc-form>\r\n</ng-container>\r\n", styles: [":host{display:block;height:auto}\n"] }]
39
39
  }], propDecorators: { disabled: [{
40
40
  type: HostBinding,
41
41
  args: ['class.control-disabled']
@@ -43,4 +43,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
43
43
  type: HostBinding,
44
44
  args: ['class.control-readonly']
45
45
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW8taW5mby1zdWItZm9ybS11aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1tby1pbmZvLXN1Yi1mb3JtLXVpL3VpLW1vLWluZm8tc3ViLWZvcm0tdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby1zdWItZm9ybS11aS91aS1tby1pbmZvLXN1Yi1mb3JtLXVpLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQU96RSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsNEJBQTRCO0lBTjVFOztRQU8yQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7S0F3QjNEO0lBckJHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1osZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ3BELENBQUMsQ0FBQztRQUNILHlDQUF5QztRQUN6Qyw0QkFBNEI7UUFDNUIsTUFBTTtRQUNOLDJDQUEyQztRQUMzQyw2QkFBNkI7UUFDN0IsT0FBTztJQUNYLENBQUM7SUFDRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ1MsZUFBZSxDQUFDLFdBQVc7UUFDakMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFdBQVcsQ0FBQztRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7O3VIQXpCUSwwQkFBMEI7MkdBQTFCLDBCQUEwQix5TUNUdkMsMEpBR0E7MkZETWEsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNJLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTTs4QkFHUixRQUFRO3NCQUE5QyxXQUFXO3VCQUFDLHdCQUF3QjtnQkFDRSxRQUFRO3NCQUE5QyxXQUFXO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEZXZpY2VJbmZvRmllbGRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vZGV2aWNlLWluZm8tZmllbGQtYmFzZSc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1tby1pbmZvLXN1Yi1mb3JtLXVpJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktbW8taW5mby1zdWItZm9ybS11aS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktbW8taW5mby1zdWItZm9ybS11aS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVpTW9JbmZvU3ViRm9ybVVpQ29tcG9uZW50IGV4dGVuZHMgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvbnRyb2wtZGlzYWJsZWQnKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29udHJvbC1yZWFkb25seScpIHJlYWRvbmx5ID0gZmFsc2U7XG5cbiAgICBjdXN0b21Gb3JtUGFuZWxVaTogYW55O1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmN1c3RvbUZvcm1QYW5lbFVpID0gdGhpcy5jb250ZXh0LmZvcm1Db250cm9sO1xuICAgICAgICB0aGlzLmNvbnRleHQub24oe1xuICAgICAgICAgICAgQWRkRm9ybUNvbnRyb2xVaTogdGhpcy5fYWRkRm9ybUNvbnRyb2wuYmluZCh0aGlzKVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gdGhpcy5kaXNhYmxlJC5zdWJzY3JpYmUoKGRpc2FibGUpID0+IHtcbiAgICAgICAgLy8gIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlO1xuICAgICAgICAvLyB9KTtcbiAgICAgICAgLy8gdGhpcy5yZWFkb25seSQuc3Vic2NyaWJlKChyZWFkb25seSkgPT4ge1xuICAgICAgICAvLyAgdGhpcy5yZWFkb25seSA9IHJlYWRvbmx5O1xuICAgICAgICAvLyAgfSk7XG4gICAgfVxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB0aGlzLmNvbnRleHQudW4oJ0FkZEZvcm1Db250cm9sJywgdGhpcy5fYWRkRm9ybUNvbnRyb2wpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2FkZEZvcm1Db250cm9sKGZvcm1Db250cm9sKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VzdG9tRm9ybVBhbmVsVWkgPSBmb3JtQ29udHJvbDtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tRm9ybVBhbmVsVWlcIj5cbiAgICA8Ym5yYy1mb3JtICp1bnRpbEluVmlldz1cImVsXCIgW2N1c3RvbUZvcm1QYW5lbFVpXT1cImN1c3RvbUZvcm1QYW5lbFVpXCI+PC9ibnJjLWZvcm0+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW8taW5mby1zdWItZm9ybS11aS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1tby1pbmZvLXN1Yi1mb3JtLXVpL3VpLW1vLWluZm8tc3ViLWZvcm0tdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby1zdWItZm9ybS11aS91aS1tby1pbmZvLXN1Yi1mb3JtLXVpLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQU96RSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsNEJBQTRCO0lBTjVFOztRQU8yQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7S0F3QjNEO0lBckJHLFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1osZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ3BELENBQUMsQ0FBQztRQUNILHlDQUF5QztRQUN6Qyw0QkFBNEI7UUFDNUIsTUFBTTtRQUNOLDJDQUEyQztRQUMzQyw2QkFBNkI7UUFDN0IsT0FBTztJQUNYLENBQUM7SUFDRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ1MsZUFBZSxDQUFDLFdBQVc7UUFDakMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFdBQVcsQ0FBQztRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7O3VIQXpCUSwwQkFBMEI7MkdBQTFCLDBCQUEwQix5TUNUdkMsZ0tBR0E7MkZETWEsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNJLDRCQUE0QixtQkFHckIsdUJBQXVCLENBQUMsTUFBTTs4QkFHUixRQUFRO3NCQUE5QyxXQUFXO3VCQUFDLHdCQUF3QjtnQkFDRSxRQUFRO3NCQUE5QyxXQUFXO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2RldmljZS1pbmZvLWZpZWxkLWJhc2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXVpLW1vLWluZm8tc3ViLWZvcm0tdWknLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLW1vLWluZm8tc3ViLWZvcm0tdWkuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdWktbW8taW5mby1zdWItZm9ybS11aS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpTW9JbmZvU3ViRm9ybVVpQ29tcG9uZW50IGV4dGVuZHMgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY29udHJvbC1kaXNhYmxlZCcpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvbnRyb2wtcmVhZG9ubHknKSByZWFkb25seSA9IGZhbHNlO1xyXG5cclxuICAgIGN1c3RvbUZvcm1QYW5lbFVpOiBhbnk7XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tRm9ybVBhbmVsVWkgPSB0aGlzLmNvbnRleHQuZm9ybUNvbnRyb2w7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0Lm9uKHtcclxuICAgICAgICAgICAgQWRkRm9ybUNvbnRyb2xVaTogdGhpcy5fYWRkRm9ybUNvbnRyb2wuYmluZCh0aGlzKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIC8vIHRoaXMuZGlzYWJsZSQuc3Vic2NyaWJlKChkaXNhYmxlKSA9PiB7XHJcbiAgICAgICAgLy8gIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlO1xyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgICAgIC8vIHRoaXMucmVhZG9ubHkkLnN1YnNjcmliZSgocmVhZG9ubHkpID0+IHtcclxuICAgICAgICAvLyAgdGhpcy5yZWFkb25seSA9IHJlYWRvbmx5O1xyXG4gICAgICAgIC8vICB9KTtcclxuICAgIH1cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LnVuKCdBZGRGb3JtQ29udHJvbCcsIHRoaXMuX2FkZEZvcm1Db250cm9sKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfYWRkRm9ybUNvbnRyb2woZm9ybUNvbnRyb2wpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1c3RvbUZvcm1QYW5lbFVpID0gZm9ybUNvbnRyb2w7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tRm9ybVBhbmVsVWlcIj5cclxuICAgIDxibnJjLWZvcm0gKnVudGlsSW5WaWV3PVwiZWxcIiBbY3VzdG9tRm9ybVBhbmVsVWldPVwiY3VzdG9tRm9ybVBhbmVsVWlcIj48L2JucmMtZm9ybT5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -101,7 +101,9 @@ export class UiMoInfoUlvComboComponent extends FieldBaseComponent {
101
101
  this.originalValue = this.value;
102
102
  this.hasReport = this.Setting.RelationViewType === 'ReportView' || this.Setting.ReportName === 'Hierarchical';
103
103
  this.Control = this;
104
- this._setValueText(this.value);
104
+ setTimeout(() => {
105
+ this._setValueText(this.value);
106
+ });
105
107
  }
106
108
  ngAfterViewInit() {
107
109
  super.ngAfterViewInit();
@@ -203,17 +205,20 @@ export class UiMoInfoUlvComboComponent extends FieldBaseComponent {
203
205
  }
204
206
  this.valueText = this.getMoValueCaption(this._valueMo, colName, this.valueText);
205
207
  }
208
+ this._setComboText(this.valueText);
206
209
  }
207
210
  _setComboText(value) {
208
- if (value === null || typeof value === 'undefined') {
209
- this._valueMo = null;
210
- //this.fdComboRef.inputTextValue = '';
211
- //this.fdComboRef._cdRef.detectChanges();
212
- }
213
- const inputText = this.fdComboRef?.inputTextValue;
214
- if (this.fdComboRef && !inputText && value != inputText) {
215
- if (this.UlvMainCtrlr && this.UlvMainCtrlr.Dd) {
216
- const view = this.UlvMainCtrlr.Dd.Setting.View;
211
+ // if (value === null || typeof value === 'undefined') {
212
+ // this._valueMo = null;
213
+ //this.fdComboRef.inputTextValue = '';
214
+ //this.fdComboRef._cdRef.detectChanges();
215
+ // }
216
+ const fdComboRef = this.fdComboRef;
217
+ const inputText = fdComboRef?.inputTextValue;
218
+ if (fdComboRef && value != inputText) {
219
+ const UlvMainCtrlr = this.UlvMainCtrlr;
220
+ if (UlvMainCtrlr && UlvMainCtrlr.Dd) {
221
+ const view = UlvMainCtrlr.Dd.Setting.View;
217
222
  let colName = '$Caption';
218
223
  if (view.Columns) {
219
224
  const firstCol = view.Columns.find((c) => !c.Name.startsWith('$') && c.Name !== 'Id');
@@ -221,7 +226,7 @@ export class UiMoInfoUlvComboComponent extends FieldBaseComponent {
221
226
  }
222
227
  value = this.getMoValueCaption(this._valueMo, colName, value);
223
228
  }
224
- this.fdComboRef.inputTextValue = value ? this._bbbPipe.transform(value) + '' : '';
229
+ fdComboRef.inputText = value ? this._bbbPipe.transform(value) + '' : '';
225
230
  this._cdr.detectChanges();
226
231
  }
227
232
  }
@@ -289,10 +294,10 @@ export class UiMoInfoUlvComboComponent extends FieldBaseComponent {
289
294
  }
290
295
  }
291
296
  UiMoInfoUlvComboComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiMoInfoUlvComboComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
292
- UiMoInfoUlvComboComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiMoInfoUlvComboComponent, selector: "bsu-ui-mo-info-ulv-combo", inputs: { ulvAdapter: "ulvAdapter", Control: "Control", UlvUi: "UlvUi", UlvMainCtrlr: "UlvMainCtrlr", IsExpanded: "IsExpanded", Collapse: "Collapse", Expand: "Expand", on: "on", Focus: "Focus", SetUlvAdapter: "SetUlvAdapter", IsUiCreated: "IsUiCreated", Mask: "Mask", hide: "hide", show: "show", Unmask: "Unmask", getRawValue: "getRawValue" }, host: { listeners: { "keydown.alt": "onAlt($event)" } }, viewQueries: [{ propertyName: "fdComboRef", first: true, predicate: ComboboxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"context._showPopup; else combo\">\n <div style=\"display: flex\" class=\"fd-input-group\">\n <input\n fd-input-group-input\n fd-form-control\n #inputRef\n [placeholder]=\"Setting.NullText || ''\"\n [attr.readonly]=\"true\"\n [attr.disabled]=\"(disable$ | async) === true ? true : null\"\n [value]=\"!value ? '' : (value | bbbTranslate)\"\n [id]=\"id\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n (input)=\"onValueChange($event)\"\n />\n <span\n fd-input-group-addon\n *ngIf=\"value && (disableOrReadonly$ | async) !== true\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onClear()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"!value && (disableOrReadonly$ | async) !== true && Setting.ShowNewButton\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"add\" (click)=\"onNew()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"value && (disableOrReadonly$ | async) !== true && Setting.ViewRelatedFormType === 'Show'\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"edit\" (click)=\"onEdit()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"value && (disableOrReadonly$ | async) !== true && Setting.ViewRelatedFormType === 'ShowReadOnly'\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"show\" (click)=\"onEdit()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"!value && (disableOrReadonly$ | async) !== true\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"search\" (click)=\"onSearch()\"></button>\n </span>\n </div>\n</ng-container>\n\n<ng-template #combo>\n <div [class.control-disabled]=\"disable$ | async\" class=\"simple-combo-wrapper\">\n <fd-combobox\n #fdCombobox\n class=\"combo-mo-ulv\"\n [class.has-report]=\"hasReport\"\n [placeholder]=\"''\"\n [fillOnSelect]=\"true\"\n [readOnly]=\"(readonly$ | async) === true ? true : false\"\n [disabled]=\"(disable$ | async) === true ? true : false\"\n [dropdownValues]=\"(loading$ | async) === true | moInfoUlvMoList: isDataLoadedFirstTime:ulvAdapter:UlvUi\"\n [filterFn]=\"customFilter\"\n [openOnKeyboardEvent]=\"true\"\n [itemTemplate]=\"template\"\n [ngModel]=\"valueText | bbbTranslate\"\n [displayFn]=\"displayFunc\"\n [showDropdownButton]=\"(disableOrReadonly$ | async) !== true\"\n (inputTextChange)=\"onInputChange($event)\"\n (openChange)=\"onOpenChange(fdCombobox, $event)\"\n ></fd-combobox>\n <fdp-button\n *ngIf=\"hasReport && (disableOrReadonly$ | async) !== true\"\n glyph=\"search\"\n buttonType=\"transparent\"\n class=\"combo-popup-btn\"\n (click)=\"onSearch()\"\n ></fdp-button>\n </div>\n <ng-template #template let-item>\n <div fd-list-content *ngIf=\"item.$isLoading; else showItem\" style=\"width: 100%; height: 20px\">\n <bsu-mask [size]=\"'s'\" [marginTop]=\"'10px'\"></bsu-mask>\n </div>\n <ng-template #showItem>\n <i fd-list-icon [glyph]=\"item.$Icon\"></i>\n <span fd-list-title>{{\n item.isEmpty ? ('NoData' | bbbTranslate) : (item.$MoCaption || item.$Caption | bbbTranslate)\n }}</span>\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host{display:block}.combo-mo-ulv{width:100%}.combo-mo-ulv ::ng-deep .fd-popover-custom{width:100%}.fd-input-group>.fd-input-group__input{background-color:transparent!important}.simple-combo-wrapper{display:flex;align-items:center;position:relative}.combo-wrapper{display:flex;align-items:center;border:var(--sapField_BorderWidth, .0625rem) solid var(--sapField_BorderColor, #89919a);border-radius:var(--sapField_BorderCornerRadius, .125rem)}::ng-deep .combo-popup-btn{border:none;background:transparent}::ng-deep .combo-popup-btn button{border-color:transparent!important;border:none}::ng-deep .fd-combobox-count-list-results{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.ComboboxComponent, selector: "fd-combobox", inputs: ["comboboxId", "inputId", "ariaLabel", "ariaLabelledBy", "required", "dropdownValues", "filterFn", "disabled", "placeholder", "isSearch", "glyph", "showClearButton", "triggers", "closeOnOutsideClick", "openOnKeyboardEvent", "state", "itemTemplate", "groupFn", "maxHeight", "searchFn", "highlighting", "closeOnSelect", "fillOnSelect", "autoComplete", "fillControlMode", "communicateByObject", "displayFn", "buttonFocusable", "readOnly", "mobile", "mobileConfig", "showDropdownButton", "includes", "title", "byline"], outputs: ["itemClicked", "openChange", "inputTextChange"] }, { kind: "component", type: i5.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class"] }, { kind: "directive", type: i5.InputFormControlDirective, selector: "input[fd-form-control]" }, { kind: "directive", type: i6.InputGroupInputDirective, selector: "[fd-input-group-input]", inputs: ["class"] }, { kind: "directive", type: i6.InputGroupAddOnDirective, selector: "[fd-input-group-addon]", inputs: ["class", "placement", "type", "state", "button"] }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i7.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role"] }, { kind: "directive", type: i7.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "component", type: i8.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "component", type: i9.MaskComponent, selector: "bsu-mask", inputs: ["size", "marginTop"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i10.MoInfoUlvMoListPipe, name: "moInfoUlvMoList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
297
+ UiMoInfoUlvComboComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiMoInfoUlvComboComponent, selector: "bsu-ui-mo-info-ulv-combo", inputs: { ulvAdapter: "ulvAdapter", Control: "Control", UlvUi: "UlvUi", UlvMainCtrlr: "UlvMainCtrlr", IsExpanded: "IsExpanded", Collapse: "Collapse", Expand: "Expand", on: "on", Focus: "Focus", SetUlvAdapter: "SetUlvAdapter", IsUiCreated: "IsUiCreated", Mask: "Mask", hide: "hide", show: "show", Unmask: "Unmask", getRawValue: "getRawValue" }, host: { listeners: { "keydown.alt": "onAlt($event)" } }, viewQueries: [{ propertyName: "fdComboRef", first: true, predicate: ComboboxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"context._showPopup; else combo\">\n <div style=\"display: flex\" class=\"fd-input-group\">\n <input\n fd-input-group-input\n fd-form-control\n #inputRef\n [placeholder]=\"Setting.NullText || ''\"\n [attr.readonly]=\"true\"\n [attr.disabled]=\"(disable$ | async) === true ? true : null\"\n [value]=\"!value ? '' : (value | bbbTranslate)\"\n [id]=\"id\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n (input)=\"onValueChange($event)\"\n />\n <span\n fd-input-group-addon\n *ngIf=\"value && (disableOrReadonly$ | async) !== true\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onClear()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"!value && (disableOrReadonly$ | async) !== true && Setting.ShowNewButton\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"add\" (click)=\"onNew()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"value && (disableOrReadonly$ | async) !== true && Setting.ViewRelatedFormType === 'Show'\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"edit\" (click)=\"onEdit()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"value && (disableOrReadonly$ | async) !== true && Setting.ViewRelatedFormType === 'ShowReadOnly'\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"show\" (click)=\"onEdit()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"!value && (disableOrReadonly$ | async) !== true\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"search\" (click)=\"onSearch()\"></button>\n </span>\n </div>\n</ng-container>\n\n<ng-template #combo>\n <div [class.control-disabled]=\"disable$ | async\" class=\"simple-combo-wrapper\">\n <fd-combobox\n #fdCombobox\n class=\"combo-mo-ulv\"\n [class.has-report]=\"hasReport\"\n [placeholder]=\"''\"\n [mobile]=\"(deviceSize$ | async) === 's'\"\n [mobileConfig]=\"mobileConfig\"\n [fillOnSelect]=\"true\"\n [readOnly]=\"(readonly$ | async) === true ? true : false\"\n [disabled]=\"(disable$ | async) === true ? true : false\"\n [dropdownValues]=\"(loading$ | async) === true | moInfoUlvMoList: isDataLoadedFirstTime:ulvAdapter:UlvUi\"\n [filterFn]=\"customFilter\"\n [openOnKeyboardEvent]=\"true\"\n [itemTemplate]=\"template\"\n [ngModel]=\"valueText | bbbTranslate\"\n [displayFn]=\"displayFunc\"\n [showDropdownButton]=\"(disableOrReadonly$ | async) !== true\"\n (inputTextChange)=\"onInputChange($event)\"\n (openChange)=\"onOpenChange(fdCombobox, $event)\"\n ></fd-combobox>\n <fdp-button\n *ngIf=\"hasReport && (disableOrReadonly$ | async) !== true\"\n glyph=\"search\"\n buttonType=\"transparent\"\n class=\"combo-popup-btn\"\n (click)=\"onSearch()\"\n ></fdp-button>\n </div>\n <ng-template #template let-item>\n <div fd-list-content *ngIf=\"item.$isLoading; else showItem\" style=\"width: 100%; height: 20px\">\n <bsu-mask [size]=\"'s'\" [marginTop]=\"'10px'\"></bsu-mask>\n </div>\n <ng-template #showItem>\n <i fd-list-icon [glyph]=\"item.$Icon\"></i>\n <span fd-list-title>{{\n item.isEmpty ? ('NoData' | bbbTranslate) : (item.$MoCaption || item.$Caption | bbbTranslate)\n }}</span>\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host{display:block}.combo-mo-ulv{width:100%}.combo-mo-ulv ::ng-deep .fd-popover-custom{width:100%}.fd-input-group>.fd-input-group__input{background-color:transparent!important}.simple-combo-wrapper{display:flex;align-items:center;position:relative}.combo-wrapper{display:flex;align-items:center;border:var(--sapField_BorderWidth, .0625rem) solid var(--sapField_BorderColor, #89919a);border-radius:var(--sapField_BorderCornerRadius, .125rem)}::ng-deep .combo-popup-btn{border:none;background:transparent}::ng-deep .combo-popup-btn button{border-color:transparent!important;border:none}::ng-deep .fd-combobox-count-list-results{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.ComboboxComponent, selector: "fd-combobox", inputs: ["comboboxId", "inputId", "ariaLabel", "ariaLabelledBy", "required", "dropdownValues", "filterFn", "disabled", "placeholder", "isSearch", "glyph", "showClearButton", "triggers", "closeOnOutsideClick", "openOnKeyboardEvent", "state", "itemTemplate", "groupFn", "maxHeight", "searchFn", "highlighting", "closeOnSelect", "fillOnSelect", "autoComplete", "fillControlMode", "communicateByObject", "displayFn", "buttonFocusable", "readOnly", "mobile", "mobileConfig", "showDropdownButton", "includes", "title", "byline"], outputs: ["itemClicked", "openChange", "inputTextChange"] }, { kind: "component", type: i5.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class"] }, { kind: "directive", type: i5.InputFormControlDirective, selector: "input[fd-form-control]" }, { kind: "directive", type: i6.InputGroupInputDirective, selector: "[fd-input-group-input]", inputs: ["class"] }, { kind: "directive", type: i6.InputGroupAddOnDirective, selector: "[fd-input-group-addon]", inputs: ["class", "placement", "type", "state", "button"] }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i7.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "class", "role"] }, { kind: "directive", type: i7.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "component", type: i8.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "component", type: i9.MaskComponent, selector: "bsu-mask", inputs: ["size", "marginTop"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i10.MoInfoUlvMoListPipe, name: "moInfoUlvMoList" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
293
298
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiMoInfoUlvComboComponent, decorators: [{
294
299
  type: Component,
295
- args: [{ selector: 'bsu-ui-mo-info-ulv-combo', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"context._showPopup; else combo\">\n <div style=\"display: flex\" class=\"fd-input-group\">\n <input\n fd-input-group-input\n fd-form-control\n #inputRef\n [placeholder]=\"Setting.NullText || ''\"\n [attr.readonly]=\"true\"\n [attr.disabled]=\"(disable$ | async) === true ? true : null\"\n [value]=\"!value ? '' : (value | bbbTranslate)\"\n [id]=\"id\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n (input)=\"onValueChange($event)\"\n />\n <span\n fd-input-group-addon\n *ngIf=\"value && (disableOrReadonly$ | async) !== true\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onClear()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"!value && (disableOrReadonly$ | async) !== true && Setting.ShowNewButton\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"add\" (click)=\"onNew()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"value && (disableOrReadonly$ | async) !== true && Setting.ViewRelatedFormType === 'Show'\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"edit\" (click)=\"onEdit()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"value && (disableOrReadonly$ | async) !== true && Setting.ViewRelatedFormType === 'ShowReadOnly'\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"show\" (click)=\"onEdit()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"!value && (disableOrReadonly$ | async) !== true\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"search\" (click)=\"onSearch()\"></button>\n </span>\n </div>\n</ng-container>\n\n<ng-template #combo>\n <div [class.control-disabled]=\"disable$ | async\" class=\"simple-combo-wrapper\">\n <fd-combobox\n #fdCombobox\n class=\"combo-mo-ulv\"\n [class.has-report]=\"hasReport\"\n [placeholder]=\"''\"\n [fillOnSelect]=\"true\"\n [readOnly]=\"(readonly$ | async) === true ? true : false\"\n [disabled]=\"(disable$ | async) === true ? true : false\"\n [dropdownValues]=\"(loading$ | async) === true | moInfoUlvMoList: isDataLoadedFirstTime:ulvAdapter:UlvUi\"\n [filterFn]=\"customFilter\"\n [openOnKeyboardEvent]=\"true\"\n [itemTemplate]=\"template\"\n [ngModel]=\"valueText | bbbTranslate\"\n [displayFn]=\"displayFunc\"\n [showDropdownButton]=\"(disableOrReadonly$ | async) !== true\"\n (inputTextChange)=\"onInputChange($event)\"\n (openChange)=\"onOpenChange(fdCombobox, $event)\"\n ></fd-combobox>\n <fdp-button\n *ngIf=\"hasReport && (disableOrReadonly$ | async) !== true\"\n glyph=\"search\"\n buttonType=\"transparent\"\n class=\"combo-popup-btn\"\n (click)=\"onSearch()\"\n ></fdp-button>\n </div>\n <ng-template #template let-item>\n <div fd-list-content *ngIf=\"item.$isLoading; else showItem\" style=\"width: 100%; height: 20px\">\n <bsu-mask [size]=\"'s'\" [marginTop]=\"'10px'\"></bsu-mask>\n </div>\n <ng-template #showItem>\n <i fd-list-icon [glyph]=\"item.$Icon\"></i>\n <span fd-list-title>{{\n item.isEmpty ? ('NoData' | bbbTranslate) : (item.$MoCaption || item.$Caption | bbbTranslate)\n }}</span>\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host{display:block}.combo-mo-ulv{width:100%}.combo-mo-ulv ::ng-deep .fd-popover-custom{width:100%}.fd-input-group>.fd-input-group__input{background-color:transparent!important}.simple-combo-wrapper{display:flex;align-items:center;position:relative}.combo-wrapper{display:flex;align-items:center;border:var(--sapField_BorderWidth, .0625rem) solid var(--sapField_BorderColor, #89919a);border-radius:var(--sapField_BorderCornerRadius, .125rem)}::ng-deep .combo-popup-btn{border:none;background:transparent}::ng-deep .combo-popup-btn button{border-color:transparent!important;border:none}::ng-deep .fd-combobox-count-list-results{display:none}\n"] }]
300
+ args: [{ selector: 'bsu-ui-mo-info-ulv-combo', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"context._showPopup; else combo\">\n <div style=\"display: flex\" class=\"fd-input-group\">\n <input\n fd-input-group-input\n fd-form-control\n #inputRef\n [placeholder]=\"Setting.NullText || ''\"\n [attr.readonly]=\"true\"\n [attr.disabled]=\"(disable$ | async) === true ? true : null\"\n [value]=\"!value ? '' : (value | bbbTranslate)\"\n [id]=\"id\"\n [style.direction]=\"Setting.IsLtr === true ? 'ltr' : null\"\n (input)=\"onValueChange($event)\"\n />\n <span\n fd-input-group-addon\n *ngIf=\"value && (disableOrReadonly$ | async) !== true\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"decline\" (click)=\"onClear()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"!value && (disableOrReadonly$ | async) !== true && Setting.ShowNewButton\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"add\" (click)=\"onNew()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"value && (disableOrReadonly$ | async) !== true && Setting.ViewRelatedFormType === 'Show'\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"edit\" (click)=\"onEdit()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"value && (disableOrReadonly$ | async) !== true && Setting.ViewRelatedFormType === 'ShowReadOnly'\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"show\" (click)=\"onEdit()\"></button>\n </span>\n <span\n fd-input-group-addon\n *ngIf=\"!value && (disableOrReadonly$ | async) !== true\"\n class=\"fd-input-group__addon--button\"\n >\n <button fd-button fdType=\"transparent\" glyph=\"search\" (click)=\"onSearch()\"></button>\n </span>\n </div>\n</ng-container>\n\n<ng-template #combo>\n <div [class.control-disabled]=\"disable$ | async\" class=\"simple-combo-wrapper\">\n <fd-combobox\n #fdCombobox\n class=\"combo-mo-ulv\"\n [class.has-report]=\"hasReport\"\n [placeholder]=\"''\"\n [mobile]=\"(deviceSize$ | async) === 's'\"\n [mobileConfig]=\"mobileConfig\"\n [fillOnSelect]=\"true\"\n [readOnly]=\"(readonly$ | async) === true ? true : false\"\n [disabled]=\"(disable$ | async) === true ? true : false\"\n [dropdownValues]=\"(loading$ | async) === true | moInfoUlvMoList: isDataLoadedFirstTime:ulvAdapter:UlvUi\"\n [filterFn]=\"customFilter\"\n [openOnKeyboardEvent]=\"true\"\n [itemTemplate]=\"template\"\n [ngModel]=\"valueText | bbbTranslate\"\n [displayFn]=\"displayFunc\"\n [showDropdownButton]=\"(disableOrReadonly$ | async) !== true\"\n (inputTextChange)=\"onInputChange($event)\"\n (openChange)=\"onOpenChange(fdCombobox, $event)\"\n ></fd-combobox>\n <fdp-button\n *ngIf=\"hasReport && (disableOrReadonly$ | async) !== true\"\n glyph=\"search\"\n buttonType=\"transparent\"\n class=\"combo-popup-btn\"\n (click)=\"onSearch()\"\n ></fdp-button>\n </div>\n <ng-template #template let-item>\n <div fd-list-content *ngIf=\"item.$isLoading; else showItem\" style=\"width: 100%; height: 20px\">\n <bsu-mask [size]=\"'s'\" [marginTop]=\"'10px'\"></bsu-mask>\n </div>\n <ng-template #showItem>\n <i fd-list-icon [glyph]=\"item.$Icon\"></i>\n <span fd-list-title>{{\n item.isEmpty ? ('NoData' | bbbTranslate) : (item.$MoCaption || item.$Caption | bbbTranslate)\n }}</span>\n </ng-template>\n </ng-template>\n</ng-template>\n", styles: [":host{display:block}.combo-mo-ulv{width:100%}.combo-mo-ulv ::ng-deep .fd-popover-custom{width:100%}.fd-input-group>.fd-input-group__input{background-color:transparent!important}.simple-combo-wrapper{display:flex;align-items:center;position:relative}.combo-wrapper{display:flex;align-items:center;border:var(--sapField_BorderWidth, .0625rem) solid var(--sapField_BorderColor, #89919a);border-radius:var(--sapField_BorderCornerRadius, .125rem)}::ng-deep .combo-popup-btn{border:none;background:transparent}::ng-deep .combo-popup-btn button{border-color:transparent!important;border:none}::ng-deep .fd-combobox-count-list-results{display:none}\n"] }]
296
301
  }], propDecorators: { ulvAdapter: [{
297
302
  type: Input
298
303
  }], Control: [{
@@ -332,4 +337,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
332
337
  }], getRawValue: [{
333
338
  type: Input
334
339
  }] } });
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby11bHYtY29tYm8vdWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby11bHYtY29tYm8vdWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFHMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RyxPQUFPLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLFFBQVEsRUFNWCxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7QUFROUIsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGtCQUFrQjtJQU5qRTs7UUF1QkksZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBYTVCLGtDQUE2QixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDcEQsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN6QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFtRmhELGdCQUFXLEdBQUcsQ0FBQyxHQUF3QixFQUFFLEVBQUU7WUFDdkMsSUFBSSxHQUFH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RyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsbUNBQW1DO1FBQ25DLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQzs7c0hBaFZRLHlCQUF5QjswR0FBekIseUJBQXlCLDZmQWN2QixpQkFBaUIsdUVDM0NoQywwZ0lBNEZBOzJGRC9EYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0ksMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxVQUFVO3NCQUFsQixLQUFLO2dCQVVHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDd0IsVUFBVTtzQkFBdkMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBc0I1QixLQUFLO3NCQURKLFlBQVk7dUJBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTZIOUIsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFJRyxFQUFFO3NCQUFWLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVOLGFBQWE7c0JBRFosS0FBSztnQkFNTixXQUFXO3NCQURWLEtBQUs7Z0JBTU4sSUFBSTtzQkFESCxLQUFLO2dCQU1OLElBQUk7c0JBREgsS0FBSztnQkFTTixJQUFJO3NCQURILEtBQUs7Z0JBT04sTUFBTTtzQkFETCxLQUFLO2dCQU1OLFdBQVc7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgT25Jbml0LFxuICAgIEFmdGVyVmlld0luaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YXAsIHRha2VVbnRpbCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tYm9ib3hDb21wb25lbnQsIERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgRmllbGRCYXNlQ29tcG9uZW50LFxuICAgIEJhcnNhQXBpLFxuICAgIFJlcG9ydEV4dHJhSW5mbyxcbiAgICBNb0ZvclJlcG9ydE1vZGVsLFxuICAgIENsYXNzTmFtZXNNb2RlbCxcbiAgICBWaWV3VHlwZXMsXG4gICAgTWV0YW9iamVjdERhdGFNb2RlbFxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXVpLW1vLWluZm8tdWx2LWNvbWJvJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLW1vLWluZm8tdWx2LWNvbWJvLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWlNb0luZm9VbHZDb21ib0NvbXBvbmVudCBleHRlbmRzIEZpZWxkQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KCkgdWx2QWRhcHRlcjoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIFNldHRpbmc6IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgICAgIFZpZXc6IFZpZXdUeXBlcztcbiAgICAgICAgICAgIENsYXNzTmFtZXM6IENsYXNzTmFtZXNNb2RlbDtcbiAgICAgICAgICAgIEV4dHJhOiBSZXBvcnRFeHRyYUluZm87XG4gICAgICAgICAgICBEYXRhOiBNb0ZvclJlcG9ydE1vZGVsO1xuICAgICAgICB9O1xuICAgIH07XG4gICAgQElucHV0KCkgQ29udHJvbDogYW55O1xuICAgIEBJbnB1dCgpIFVsdlVpOiBhbnk7XG4gICAgQElucHV0KCkgVWx2TWFpbkN0cmxyOiBhbnk7XG4gICAgQFZpZXdDaGlsZChDb21ib2JveENvbXBvbmVudCkgZmRDb21ib1JlZjogQ29tYm9ib3hDb21wb25lbnQ7XG5cbiAgICBpc0V4cGFuZDogYm9vbGVhbjtcbiAgICBzbWFydENoYW5nZSA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICB0aWNrUmVmOiBhbnk7XG4gICAgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlzRmlyc3RMb2FkOiBib29sZWFuO1xuICAgIHBvcG92ZXJFbGVtZW50OiBhbnk7XG4gICAgcmF3VmFsdWU6IHN0cmluZztcbiAgICBmb3JtU2VsZWN0aW9uRGlhbG9nOiBEaWFsb2dSZWY7XG4gICAgaXNPcGVuU2VsZWN0aW9uRGlhbG9nOiBib29sZWFuO1xuICAgIGhhc1JlcG9ydDogYW55O1xuICAgIG9yaWdpbmFsVmFsdWU6IGFueTtcbiAgICBpc0RhdGFMb2FkZWRGaXJzdFRpbWU6IGJvb2xlYW47XG4gICAgdmFsdWVUZXh0OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfb3BlblBvcHVwRm9ybVNlbGVjdGlvblNvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBfY2xvc2VEaWFsb2dTb3VyY2UgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgX2xvYWRpbmdTb3VyY2UgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICAgIHByaXZhdGUgX3ZhbHVlTW86IE1ldGFvYmplY3REYXRhTW9kZWwgfCBudWxsO1xuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hbHQnLCBbJyRldmVudCddKVxuICAgIG9uQWx0KGUpOiB2b2lkIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nJCA9IHRoaXMuX2xvYWRpbmdTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgICAgICB0aGlzLmxvYWRpbmckLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzRGF0YUxvYWRlZEZpcnN0VGltZSA9XG4gICAgICAgICAgICAgICAgdHlwZW9mIHRoaXMudWx2QWRhcHRlcj8uU2V0dGluZz8uRGF0YT8uTW9EYXRhTGlzdCA9PT0gJ29iamVjdCcgfHxcbiAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcy5VbHZVaT8uU2V0dGluZz8uRGF0YT8uTW9EYXRhTGlzdCA9PT0gJ29iamVjdCc7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNtYXJ0Q2hhbmdlXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdGhpcy5fZmlsdGVyU21hcnRDaGFuZ2UodmFsdWUpKSxcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgICAgIHRhcCgodmFsdWUpID0+ICh0aGlzLnJhd1ZhbHVlID0gdmFsdWUpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdTbWFydENoYW5nZScsIHRoaXMuY29udGV4dCwgdmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX29wZW5Qb3B1cEZvcm1TZWxlY3Rpb25Tb3VyY2VcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Nsb3NlRGlhbG9nU291cmNlKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuVWx2VWkgJiYgIXRoaXMuaXNPcGVuU2VsZWN0aW9uRGlhbG9nICYmIHRoaXMuY29udGV4dC5fc2hvd1BvcHVwKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fb3BlblBvcHVwRm9ybVNlbGVjdGlvbigpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICB0aGlzLmhhc1JlcG9ydCA9IHRoaXMuU2V0dGluZy5SZWxhdGlvblZpZXdUeXBlID09PSAnUmVwb3J0VmlldycgfHwgdGhpcy5TZXR0aW5nLlJlcG9ydE5hbWUgPT09ICdIaWVyYXJjaGljYWwnO1xuICAgICAgICB0aGlzLkNvbnRyb2wgPSB0aGlzO1xuICAgICAgICB0aGlzLl9zZXRWYWx1ZVRleHQodGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIC8vIHRoaXMuX3NldENvbWJvVGV4dCh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBvbk9wZW5DaGFuZ2UoZmRDb21ib2JveCwgaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzKCk7XG4gICAgICAgICAgICAvLyBmZENvbWJvYm94Lm9wZW4gPSBmYWxzZTsgLy8gaXQgY2xvc2UgcG9wdXAgd2hlbiBjbGljayBvbiBkcm9wZG93biBidXR0b24gaW4gY29tcG9uZW50XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dFRleHQgPSB0aGlzLmZkQ29tYm9SZWY/LmlucHV0VGV4dFZhbHVlO1xuICAgICAgICAgICAgaWYgKCF0aGlzLnZhbHVlICYmIGlucHV0VGV4dCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3JhaXNlU21hcnRDaGFuZ2UoaW5wdXRUZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBvbklucHV0Q2hhbmdlKGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmFpc2VTbWFydENoYW5nZShlKTtcbiAgICB9XG4gICAgb25JbnB1dENoYW5nZTIoZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yYWlzZVNtYXJ0Q2hhbmdlKGUudGFyZ2V0LnZhbHVlKTtcbiAgICB9XG4gICAgb25WYWx1ZUNoYW5nZShlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JhaXNlVmFsdWVDaGFuZ2VkKGUudGFyZ2V0LnZhbHVlKTtcbiAgICB9XG4gICAgb25OZXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJDbGljaygnTmV3Jyk7XG4gICAgfVxuICAgIG9uQ2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJDbGljaygnRGVsZXRlJyk7XG4gICAgfVxuICAgIG9uRWRpdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlckNsaWNrKCdFZGl0Jyk7XG4gICAgfVxuICAgIG9uU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90cmlnZ2VyQ2xpY2soJ1BvcHVwJyk7XG4gICAgfVxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgY3VzdG9tRmlsdGVyKGNvbnRlbnQ6IGFueVtdLCBzZWFyY2hUZXJtOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH1cblxuICAgIGRpc3BsYXlGdW5jID0gKG9iajogTWV0YW9iamVjdERhdGFNb2RlbCkgPT4ge1xuICAgICAgICBpZiAob2JqKSB7XG4gICAgICAgICAgICBjb25zdCBjb2xOYW1lID0gdGhpcy5nZXRGaXJzdENvbHVtbk5hbWUoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldE1vVmFsdWVDYXB0aW9uKG9iaiwgY29sTmFtZSwgb2JqLiRDYXB0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfTtcbiAgICBnZXRNb1ZhbHVlQ2FwdGlvbih2YWx1ZU1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgbnVsbCwgY29sTmFtZTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICh2YWx1ZU1vID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBjYXB0aW9uVmFsdWVNbztcbiAgICAgICAgY29uc3QgbW9saXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMudWx2QWRhcHRlcixcbiAgICAgICAgICAgICdTZXR0aW5nLkRhdGEuTW9EYXRhTGlzdCcsXG4gICAgICAgICAgICBbXVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBmb3VuZGVkTW8gPSBtb2xpc3QuZmluZCgoYykgPT4gYy5JZCA9PT0gdmFsdWVNby5JZCk7XG4gICAgICAgIGlmIChjb2xOYW1lICYmIGZvdW5kZWRNbyAmJiBmb3VuZGVkTW9bY29sTmFtZV0pIHtcbiAgICAgICAgICAgIGlmIChmb3VuZGVkTW9bY29sTmFtZSArICckQ2FwdGlvbiddKSB7XG4gICAgICAgICAgICAgICAgY2FwdGlvblZhbHVlTW8gPSBmb3VuZGVkTW9bY29sTmFtZSArICckQ2FwdGlvbiddO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3VuZGVkTW9bY29sTmFtZV0uJENhcHRpb24pIHtcbiAgICAgICAgICAgICAgICBjYXB0aW9uVmFsdWVNbyA9IGZvdW5kZWRNb1tjb2xOYW1lXS4kQ2FwdGlvbjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2FwdGlvblZhbHVlTW8gPSBmb3VuZGVkTW9bY29sTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2JiYlBpcGUudHJhbnNmb3JtKGNhcHRpb25WYWx1ZU1vIHx8IGRlZmF1bHRWYWx1ZSk7XG4gICAgfVxuICAgIGdldEZpcnN0Q29sdW1uTmFtZSgpIHtcbiAgICAgICAgbGV0IGNvbE5hbWUgPSAnJENhcHRpb24nO1xuICAgICAgICBpZiAodGhpcy5VbHZNYWluQ3RybHIgJiYgdGhpcy5VbHZNYWluQ3RybHI/LkRkPy5TZXR0aW5nPy5WaWV3KSB7XG4gICAgICAgICAgICBpZiAodGhpcy5VbHZNYWluQ3RybHIuRGQuU2V0dGluZy5WaWV3LkNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdENvbCA9IHRoaXMuVWx2TWFpbkN0cmxyLkRkLlNldHRpbmcuVmlldy5Db2x1bW5zLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChjKSA9PiAhYy5OYW1lLnN0YXJ0c1dpdGgoJyQnKSAmJiBjLk5hbWUgIT09ICdJZCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmIChmaXJzdENvbD8uTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBjb2xOYW1lID0gZmlyc3RDb2wuTmFtZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbE5hbWU7XG4gICAgfVxuXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBASW5wdXQoKSBJc0V4cGFuZGVkID0gKHR5cGUpID0+IGZhbHNlO1xuICAgIC8vIHJldHVybiB0aGlzLmNvbWJvUmVmLm5hdGl2ZUVsZW1lbnQucmVzcG9uc2l2ZVBvcG92ZXIuaXNPcGVuKCk7XG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBASW5wdXQoKSBDb2xsYXBzZSA9ICh0eXBlKSA9PiB7fTtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIEBJbnB1dCgpIEV4cGFuZCA9ICh0eXBlKSA9PiB7XG4gICAgICAgIHRoaXMudWx2QWRhcHRlciA9IHRoaXMuVWx2TWFpbkN0cmxyW3R5cGVdO1xuICAgIH07XG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cbiAgICBASW5wdXQoKSBvbiA9ICgpID0+IHt9O1xuICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgQElucHV0KCkgRm9jdXMgPSAoKSA9PiB7fTtcbiAgICBASW5wdXQoKVxuICAgIFNldFVsdkFkYXB0ZXIgPSAodHlwZSwgdWx2QWRhcHRlcikgPT4ge1xuICAgICAgICB0aGlzLnVsdkFkYXB0ZXIgPSB1bHZBZGFwdGVyO1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG4gICAgQElucHV0KClcbiAgICBJc1VpQ3JlYXRlZCA9ICh0eXBlKSA9PiB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG4gICAgQElucHV0KClcbiAgICBNYXNrID0gKHR5cGUpID0+IHtcbiAgICAgICAgdGhpcy5fbG9hZGluZ1NvdXJjZS5uZXh0KHRydWUpO1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG4gICAgQElucHV0KClcbiAgICBoaWRlID0gKHR5cGUpID0+IHtcbiAgICAgICAgLy8gdGhpcy50cmlnZ2VyQ2xpY2soJ05vcm1hbCcpO1xuICAgICAgICBpZiAodGhpcy5mb3JtU2VsZWN0aW9uRGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1TZWxlY3Rpb25EaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG4gICAgQElucHV0KClcbiAgICBzaG93ID0gKHR5cGUpID0+IHtcbiAgICAgICAgLy8gdGhpcy50cmlnZ2VyQ2xpY2soJ05vcm1hbCcpO1xuICAgICAgICB0aGlzLl9vcGVuUG9wdXBGb3JtU2VsZWN0aW9uU291cmNlLm5leHQoKTsgLy8gcmFiZXRlIHRha2kgZ2VuZXJhbCBpbmZvIC5wb3B1cCBiYXogbWlzaG9kIGtlIGJhaWFkIGRyb3Bkb3duIGJhc2hlLlxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG4gICAgQElucHV0KClcbiAgICBVbm1hc2sgPSAodHlwZSkgPT4ge1xuICAgICAgICB0aGlzLl9sb2FkaW5nU291cmNlLm5leHQoZmFsc2UpO1xuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgIH07XG4gICAgQElucHV0KClcbiAgICBnZXRSYXdWYWx1ZSA9ICgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yYXdWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXG4gICAgfTtcbiAgICBwcm90ZWN0ZWQgX3NldFZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0VmFsdWVUZXh0KHZhbHVlKTtcbiAgICAgICAgc3VwZXIuX3NldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgLy8gdGhpcy5fc2V0Q29tYm9UZXh0KHZhbHVlKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRWYWx1ZVRleHQodmFsdWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlTW8gPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVUZXh0ID0gJyc7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZVRleHQgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlVGV4dCA9IHZhbHVlLiRDYXB0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZSAmJiB0aGlzLlVsdk1haW5DdHJsciAmJiB0aGlzLlVsdk1haW5DdHJsci5EZCkge1xuICAgICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMuVWx2TWFpbkN0cmxyLkRkLlNldHRpbmcuVmlldztcbiAgICAgICAgICAgIGxldCBjb2xOYW1lID0gJyRDYXB0aW9uJztcbiAgICAgICAgICAgIGlmICh2aWV3LkNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdENvbCA9IHZpZXcuQ29sdW1ucy5maW5kKChjKSA9PiAhYy5OYW1lLnN0YXJ0c1dpdGgoJyQnKSAmJiBjLk5hbWUgIT09ICdJZCcpO1xuICAgICAgICAgICAgICAgIGNvbE5hbWUgPSBmaXJzdENvbD8uTmFtZSA/IGZpcnN0Q29sLk5hbWUgOiAnJENhcHRpb24nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy52YWx1ZVRleHQgPSB0aGlzLmdldE1vVmFsdWVDYXB0aW9uKHRoaXMuX3ZhbHVlTW8sIGNvbE5hbWUsIHRoaXMudmFsdWVUZXh0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldENvbWJvVGV4dCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICB0aGlzLl92YWx1ZU1vID0gbnVsbDtcbiAgICAgICAgICAgIC8vdGhpcy5mZENvbWJvUmVmLmlucHV0VGV4dFZhbHVlID0gJyc7XG4gICAgICAgICAgICAvL3RoaXMuZmRDb21ib1JlZi5fY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlucHV0VGV4dCA9IHRoaXMuZmRDb21ib1JlZj8uaW5wdXRUZXh0VmFsdWU7XG4gICAgICAgIGlmICh0aGlzLmZkQ29tYm9SZWYgJiYgIWlucHV0VGV4dCAmJiB2YWx1ZSAhPSBpbnB1dFRleHQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLlVsdk1haW5DdHJsciAmJiB0aGlzLlVsdk1haW5DdHJsci5EZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLlVsdk1haW5DdHJsci5EZC5TZXR0aW5nLlZpZXc7XG4gICAgICAgICAgICAgICAgbGV0IGNvbE5hbWUgPSAnJENhcHRpb24nO1xuICAgICAgICAgICAgICAgIGlmICh2aWV3LkNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RDb2wgPSB2aWV3LkNvbHVtbnMuZmluZCgoYykgPT4gIWMuTmFtZS5zdGFydHNXaXRoKCckJykgJiYgYy5OYW1lICE9PSAnSWQnKTtcbiAgICAgICAgICAgICAgICAgICAgY29sTmFtZSA9IGZpcnN0Q29sPy5OYW1lID8gZmlyc3RDb2wuTmFtZSA6ICckQ2FwdGlvbic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5nZXRNb1ZhbHVlQ2FwdGlvbih0aGlzLl92YWx1ZU1vLCBjb2xOYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmZkQ29tYm9SZWYuaW5wdXRUZXh0VmFsdWUgPSB2YWx1ZSA/IHRoaXMuX2JiYlBpcGUudHJhbnNmb3JtKHZhbHVlKSArICcnIDogJyc7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfb3BlblBvcHVwRm9ybVNlbGVjdGlvbigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgdGhpcy5pc09wZW5TZWxlY3Rpb25EaWFsb2cgPSB0cnVlO1xuICAgICAgICB0aGlzLlVsdlVpLnZpZXdlckNvbnRyb2wuU2hvd09rQ2FuY2VsQnV0dG9ucyA9IHRydWU7IC8vIHRoaXMgaXMgdXNlZnVsIHRvIHVsdiBtYW5hZ2UgdG9vbGJhciBidXR0b25zLmZvciBleGFtcGxlIG1vdmUgaW4gdHJlZSBkb2VzIG5vdCBzaG93blxuICAgICAgICB0aGlzLmZvcm1TZWxlY3Rpb25EaWFsb2cgPSBCYXJzYUFwaS5Cdy5VbHZGb3JtTXVsdGlTZWxlY3QuU2hvdyh0aGlzLmNvbnRleHQsIHtcbiAgICAgICAgICAgIHVsdjE6IHRoaXMuVWx2VWksXG4gICAgICAgICAgICB0aXRsZTogdGhpcy5fYmJiUGlwZS50cmFuc2Zvcm0oJ1NlbGVjdCcpLFxuICAgICAgICAgICAgSXNMb2FkZWQ6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc09wZW5TZWxlY3Rpb25EaWFsb2cgPSBmYWxzZTtcbiAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2ZpbHRlclNtYXJ0Q2hhbmdlKHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBjYW5SZXF1ZXN0ID0gdGhpcy51bHZBZGFwdGVyICYmIHZhbHVlICE9PSB0aGlzLnZhbHVlO1xuICAgICAgICBpZiAoY2FuUmVxdWVzdCkge1xuICAgICAgICAgICAgY29uc3QgbW9saXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgICAgICB0aGlzLnVsdkFkYXB0ZXIsXG4gICAgICAgICAgICAgICAgJ1NldHRpbmcuRGF0YS5Nb0RhdGFMaXN0JyxcbiAgICAgICAgICAgICAgICBbXVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICghbW9saXN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBjb2xOYW1lID0gdGhpcy5nZXRGaXJzdENvbHVtbk5hbWUoKTtcblxuICAgICAgICAgICAgY29uc3QgZmluZE1vID0gbW9saXN0LmZpbmQoKG1vKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FwdGlvbiA9IHRoaXMuZ2V0TW9WYWx1ZUNhcHRpb24obW8sIGNvbE5hbWUsIG1vLiRDYXB0aW9uKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FwdGlvbiA9PT0gdmFsdWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChmaW5kTW8pIHtcbiAgICAgICAgICAgICAgICBjYW5SZXF1ZXN0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5fZmlyZVZhbHVlQ2hhbmdlKGZpbmRNbyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhblJlcXVlc3Q7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9mb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJpZ2dlckNsaWNrKCdOb3JtYWwnKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3JhaXNlU21hcnRDaGFuZ2UodmFsdWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zbWFydENoYW5nZS5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3RyaWdnZXJDbGljayhldmVudE5hbWUsIHZhbHVlID0gbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdUcmlnZ2VyQ2xpY2snLCB0aGlzLmNvbnRleHQsIGV2ZW50TmFtZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfcmFpc2VWYWx1ZUNoYW5nZWQoY2FwdGlvbik6IHZvaWQge1xuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gY2FwdGlvbjtcbiAgICAgICAgY29uc3QgbW9saXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcbiAgICAgICAgICAgIHRoaXMudWx2QWRhcHRlcixcbiAgICAgICAgICAgICdTZXR0aW5nLkRhdGEuTW9EYXRhTGlzdCcsXG4gICAgICAgICAgICBbXVxuICAgICAgICApO1xuICAgICAgICBpZiAoIW1vbGlzdCB8fCBtb2xpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy9jb25zdCBjb2xOYW1lID0gdGhpcy5nZXRGaXJzdENvbHVtbk5hbWUoKTtcblxuICAgICAgICBjb25zdCBtbyA9IG1vbGlzdC5maW5kKChjKSA9PiBjLiRDYXB0aW9uID09PSBpbnB1dFZhbHVlKTtcbiAgICAgICAgaWYgKCFtbykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZpcmVWYWx1ZUNoYW5nZShtbyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZmlyZVZhbHVlQ2hhbmdlKG1vKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBtbztcbiAgICAgICAgdGhpcy5fdmFsdWVNbyA9IG1vO1xuICAgICAgICB0aGlzLl9zZXRWYWx1ZVRleHQodGhpcy52YWx1ZSk7XG4gICAgICAgIC8vIHRoaXMuX3NldENvbWJvVGV4dChtby4kQ2FwdGlvbik7XG4gICAgICAgIC8vIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX3RyaWdnZXJDbGljaygnSXRlbVNlbGVjdCcsIHRoaXMudmFsdWUpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZXh0Ll9zaG93UG9wdXA7IGVsc2UgY29tYm9cIj5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleFwiIGNsYXNzPVwiZmQtaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBmZC1pbnB1dC1ncm91cC1pbnB1dFxuICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXG4gICAgICAgICAgICAjaW5wdXRSZWZcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJTZXR0aW5nLk51bGxUZXh0IHx8ICcnXCJcbiAgICAgICAgICAgIFthdHRyLnJlYWRvbmx5XT1cInRydWVcIlxuICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiKGRpc2FibGUkIHwgYXN5bmMpID09PSB0cnVlID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIiF2YWx1ZSA/ICcnIDogKHZhbHVlIHwgYmJiVHJhbnNsYXRlKVwiXG4gICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgW3N0eWxlLmRpcmVjdGlvbl09XCJTZXR0aW5nLklzTHRyID09PSB0cnVlID8gJ2x0cicgOiBudWxsXCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgZmQtaW5wdXQtZ3JvdXAtYWRkb25cbiAgICAgICAgICAgICpuZ0lmPVwidmFsdWUgJiYgKGRpc2FibGVPclJlYWRvbmx5JCB8IGFzeW5jKSAhPT0gdHJ1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cImRlY2xpbmVcIiAoY2xpY2spPVwib25DbGVhcigpXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGZkLWlucHV0LWdyb3VwLWFkZG9uXG4gICAgICAgICAgICAqbmdJZj1cIiF2YWx1ZSAmJiAoZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMpICE9PSB0cnVlICYmIFNldHRpbmcuU2hvd05ld0J1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cImFkZFwiIChjbGljayk9XCJvbk5ldygpXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGZkLWlucHV0LWdyb3VwLWFkZG9uXG4gICAgICAgICAgICAqbmdJZj1cInZhbHVlICYmIChkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykgIT09IHRydWUgJiYgU2V0dGluZy5WaWV3UmVsYXRlZEZvcm1UeXBlID09PSAnU2hvdydcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1pbnB1dC1ncm91cF9fYWRkb24tLWJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgZ2x5cGg9XCJlZGl0XCIgKGNsaWNrKT1cIm9uRWRpdCgpXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGZkLWlucHV0LWdyb3VwLWFkZG9uXG4gICAgICAgICAgICAqbmdJZj1cInZhbHVlICYmIChkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykgIT09IHRydWUgJiYgU2V0dGluZy5WaWV3UmVsYXRlZEZvcm1UeXBlID09PSAnU2hvd1JlYWRPbmx5J1wiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cInNob3dcIiAoY2xpY2spPVwib25FZGl0KClcIj48L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgZmQtaW5wdXQtZ3JvdXAtYWRkb25cbiAgICAgICAgICAgICpuZ0lmPVwiIXZhbHVlICYmIChkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykgIT09IHRydWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1pbnB1dC1ncm91cF9fYWRkb24tLWJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgZ2x5cGg9XCJzZWFyY2hcIiAoY2xpY2spPVwib25TZWFyY2goKVwiPjwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNjb21ibz5cbiAgICA8ZGl2IFtjbGFzcy5jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGUkIHwgYXN5bmNcIiBjbGFzcz1cInNpbXBsZS1jb21iby13cmFwcGVyXCI+XG4gICAgICAgIDxmZC1jb21ib2JveFxuICAgICAgICAgICAgI2ZkQ29tYm9ib3hcbiAgICAgICAgICAgIGNsYXNzPVwiY29tYm8tbW8tdWx2XCJcbiAgICAgICAgICAgIFtjbGFzcy5oYXMtcmVwb3J0XT1cImhhc1JlcG9ydFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJydcIlxuICAgICAgICAgICAgW2ZpbGxPblNlbGVjdF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCIocmVhZG9ubHkkIHwgYXN5bmMpID09PSB0cnVlID8gdHJ1ZSA6IGZhbHNlXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCIoZGlzYWJsZSQgfCBhc3luYykgPT09IHRydWUgPyB0cnVlIDogZmFsc2VcIlxuICAgICAgICAgICAgW2Ryb3Bkb3duVmFsdWVzXT1cIihsb2FkaW5nJCB8IGFzeW5jKSA9PT0gdHJ1ZSB8IG1vSW5mb1Vsdk1vTGlzdDogaXNEYXRhTG9hZGVkRmlyc3RUaW1lOnVsdkFkYXB0ZXI6VWx2VWlcIlxuICAgICAgICAgICAgW2ZpbHRlckZuXT1cImN1c3RvbUZpbHRlclwiXG4gICAgICAgICAgICBbb3Blbk9uS2V5Ym9hcmRFdmVudF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpdGVtVGVtcGxhdGVdPVwidGVtcGxhdGVcIlxuICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVUZXh0IHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtkaXNwbGF5Rm5dPVwiZGlzcGxheUZ1bmNcIlxuICAgICAgICAgICAgW3Nob3dEcm9wZG93bkJ1dHRvbl09XCIoZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMpICE9PSB0cnVlXCJcbiAgICAgICAgICAgIChpbnB1dFRleHRDaGFuZ2UpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvcGVuQ2hhbmdlKT1cIm9uT3BlbkNoYW5nZShmZENvbWJvYm94LCAkZXZlbnQpXCJcbiAgICAgICAgPjwvZmQtY29tYm9ib3g+XG4gICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cImhhc1JlcG9ydCAmJiAoZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMpICE9PSB0cnVlXCJcbiAgICAgICAgICAgIGdseXBoPVwic2VhcmNoXCJcbiAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBjbGFzcz1cImNvbWJvLXBvcHVwLWJ0blwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25TZWFyY2goKVwiXG4gICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICAgICAgPGRpdiBmZC1saXN0LWNvbnRlbnQgKm5nSWY9XCJpdGVtLiRpc0xvYWRpbmc7IGVsc2Ugc2hvd0l0ZW1cIiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDIwcHhcIj5cbiAgICAgICAgICAgIDxic3UtbWFzayBbc2l6ZV09XCIncydcIiBbbWFyZ2luVG9wXT1cIicxMHB4J1wiPjwvYnN1LW1hc2s+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI3Nob3dJdGVtPlxuICAgICAgICAgICAgPGkgZmQtbGlzdC1pY29uIFtnbHlwaF09XCJpdGVtLiRJY29uXCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57e1xuICAgICAgICAgICAgICAgIGl0ZW0uaXNFbXB0eSA/ICgnTm9EYXRhJyB8IGJiYlRyYW5zbGF0ZSkgOiAoaXRlbS4kTW9DYXB0aW9uIHx8IGl0ZW0uJENhcHRpb24gfCBiYmJUcmFuc2xhdGUpXG4gICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
340
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby11bHYtY29tYm8vdWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW8taW5mby11bHYtY29tYm8vdWktbW8taW5mby11bHYtY29tYm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFHMUIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RyxPQUFPLEVBQUUsaUJBQWlCLEVBQWEsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLFFBQVEsRUFNWCxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7QUFROUIsTUFBTSxPQUFPLHlCQUEwQixTQUFRLGtCQUFrQjtJQU5qRTs7UUFzQkksZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBYTVCLGtDQUE2QixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDcEQsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN6QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFxRmhELGdCQUFXLEdBQUcsQ0FBQyxHQUF3QixFQUFFLEVBQUU7WUFDdkMsSUFBSSxHQUFH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QUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsbUNBQW1DO1FBQ25DLDZCQUE2QjtRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsQ0FBQzs7c0hBcFZRLHlCQUF5QjswR0FBekIseUJBQXlCLDZmQWN2QixpQkFBaUIsdUVDM0NoQywrbUlBOEZBOzJGRGpFYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0ksMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxVQUFVO3NCQUFsQixLQUFLO2dCQVVHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDd0IsVUFBVTtzQkFBdkMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBcUI1QixLQUFLO3NCQURKLFlBQVk7dUJBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQStIOUIsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFJRyxFQUFFO3NCQUFWLEtBQUs7Z0JBRUcsS0FBSztzQkFBYixLQUFLO2dCQUVOLGFBQWE7c0JBRFosS0FBSztnQkFNTixXQUFXO3NCQURWLEtBQUs7Z0JBTU4sSUFBSTtzQkFESCxLQUFLO2dCQU1OLElBQUk7c0JBREgsS0FBSztnQkFTTixJQUFJO3NCQURILEtBQUs7Z0JBT04sTUFBTTtzQkFETCxLQUFLO2dCQU1OLFdBQVc7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgT25Jbml0LFxyXG4gICAgQWZ0ZXJWaWV3SW5pdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRhcCwgdGFrZVVudGlsLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbWJvYm94Q29tcG9uZW50LCBEaWFsb2dSZWYgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEZpZWxkQmFzZUNvbXBvbmVudCxcclxuICAgIEJhcnNhQXBpLFxyXG4gICAgUmVwb3J0RXh0cmFJbmZvLFxyXG4gICAgTW9Gb3JSZXBvcnRNb2RlbCxcclxuICAgIENsYXNzTmFtZXNNb2RlbCxcclxuICAgIFZpZXdUeXBlcyxcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWxcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXVpLW1vLWluZm8tdWx2LWNvbWJvJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1tby1pbmZvLXVsdi1jb21iby5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS1tby1pbmZvLXVsdi1jb21iby5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpTW9JbmZvVWx2Q29tYm9Db21wb25lbnQgZXh0ZW5kcyBGaWVsZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gICAgQElucHV0KCkgdWx2QWRhcHRlcjoge1xyXG4gICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgICAgICBTZXR0aW5nOiB7XHJcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgICAgICAgICAgVmlldzogVmlld1R5cGVzO1xyXG4gICAgICAgICAgICBDbGFzc05hbWVzOiBDbGFzc05hbWVzTW9kZWw7XHJcbiAgICAgICAgICAgIEV4dHJhOiBSZXBvcnRFeHRyYUluZm87XHJcbiAgICAgICAgICAgIERhdGE6IE1vRm9yUmVwb3J0TW9kZWw7XHJcbiAgICAgICAgfTtcclxuICAgIH07XHJcbiAgICBASW5wdXQoKSBDb250cm9sOiBhbnk7XHJcbiAgICBASW5wdXQoKSBVbHZVaTogYW55O1xyXG4gICAgQElucHV0KCkgVWx2TWFpbkN0cmxyOiBhbnk7XHJcbiAgICBAVmlld0NoaWxkKENvbWJvYm94Q29tcG9uZW50KSBmZENvbWJvUmVmOiBDb21ib2JveENvbXBvbmVudDtcclxuICAgIGlzRXhwYW5kOiBib29sZWFuO1xyXG4gICAgc21hcnRDaGFuZ2UgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcbiAgICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIHRpY2tSZWY6IGFueTtcclxuICAgIGlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlzRmlyc3RMb2FkOiBib29sZWFuO1xyXG4gICAgcG9wb3ZlckVsZW1lbnQ6IGFueTtcclxuICAgIHJhd1ZhbHVlOiBzdHJpbmc7XHJcbiAgICBmb3JtU2VsZWN0aW9uRGlhbG9nOiBEaWFsb2dSZWY7XHJcbiAgICBpc09wZW5TZWxlY3Rpb25EaWFsb2c6IGJvb2xlYW47XHJcbiAgICBoYXNSZXBvcnQ6IGFueTtcclxuICAgIG9yaWdpbmFsVmFsdWU6IGFueTtcclxuICAgIGlzRGF0YUxvYWRlZEZpcnN0VGltZTogYm9vbGVhbjtcclxuICAgIHZhbHVlVGV4dDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfb3BlblBvcHVwRm9ybVNlbGVjdGlvblNvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBwcml2YXRlIF9jbG9zZURpYWxvZ1NvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBwcml2YXRlIF9sb2FkaW5nU291cmNlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAgIHByaXZhdGUgX3ZhbHVlTW86IE1ldGFvYmplY3REYXRhTW9kZWwgfCBudWxsO1xyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYWx0JywgWyckZXZlbnQnXSlcclxuICAgIG9uQWx0KGUpOiB2b2lkIHtcclxuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyQgPSB0aGlzLl9sb2FkaW5nU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcclxuICAgICAgICB0aGlzLmxvYWRpbmckLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNEYXRhTG9hZGVkRmlyc3RUaW1lID1cclxuICAgICAgICAgICAgICAgIHR5cGVvZiB0aGlzLnVsdkFkYXB0ZXI/LlNldHRpbmc/LkRhdGE/Lk1vRGF0YUxpc3QgPT09ICdvYmplY3QnIHx8XHJcbiAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcy5VbHZVaT8uU2V0dGluZz8uRGF0YT8uTW9EYXRhTGlzdCA9PT0gJ29iamVjdCc7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zbWFydENoYW5nZVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSgyMDApLFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdGhpcy5fZmlsdGVyU21hcnRDaGFuZ2UodmFsdWUpKSxcclxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgICAgICB0YXAoKHZhbHVlKSA9PiAodGhpcy5yYXdWYWx1ZSA9IHZhbHVlKSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnU21hcnRDaGFuZ2UnLCB0aGlzLmNvbnRleHQsIHZhbHVlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fb3BlblBvcHVwRm9ybVNlbGVjdGlvblNvdXJjZVxyXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fY2xvc2VEaWFsb2dTb3VyY2UpLFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuVWx2VWkgJiYgIXRoaXMuaXNPcGVuU2VsZWN0aW9uRGlhbG9nICYmIHRoaXMuY29udGV4dC5fc2hvd1BvcHVwKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9vcGVuUG9wdXBGb3JtU2VsZWN0aW9uKCkpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5vcmlnaW5hbFZhbHVlID0gdGhpcy52YWx1ZTtcclxuICAgICAgICB0aGlzLmhhc1JlcG9ydCA9IHRoaXMuU2V0dGluZy5SZWxhdGlvblZpZXdUeXBlID09PSAnUmVwb3J0VmlldycgfHwgdGhpcy5TZXR0aW5nLlJlcG9ydE5hbWUgPT09ICdIaWVyYXJjaGljYWwnO1xyXG4gICAgICAgIHRoaXMuQ29udHJvbCA9IHRoaXM7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NldFZhbHVlVGV4dCh0aGlzLnZhbHVlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcclxuICAgICAgICAvLyB0aGlzLl9zZXRDb21ib1RleHQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25PcGVuQ2hhbmdlKGZkQ29tYm9ib3gsIGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGlmIChpc09wZW4pIHtcclxuICAgICAgICAgICAgdGhpcy5fZm9jdXMoKTtcclxuICAgICAgICAgICAgLy8gZmRDb21ib2JveC5vcGVuID0gZmFsc2U7IC8vIGl0IGNsb3NlIHBvcHVwIHdoZW4gY2xpY2sgb24gZHJvcGRvd24gYnV0dG9uIGluIGNvbXBvbmVudFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlucHV0VGV4dCA9IHRoaXMuZmRDb21ib1JlZj8uaW5wdXRUZXh0VmFsdWU7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy52YWx1ZSAmJiBpbnB1dFRleHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3JhaXNlU21hcnRDaGFuZ2UoaW5wdXRUZXh0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uSW5wdXRDaGFuZ2UoZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JhaXNlU21hcnRDaGFuZ2UoZSk7XHJcbiAgICB9XHJcbiAgICBvbklucHV0Q2hhbmdlMihlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmFpc2VTbWFydENoYW5nZShlLnRhcmdldC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvblZhbHVlQ2hhbmdlKGUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9yYWlzZVZhbHVlQ2hhbmdlZChlLnRhcmdldC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvbk5ldygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyQ2xpY2soJ05ldycpO1xyXG4gICAgfVxyXG4gICAgb25DbGVhcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyQ2xpY2soJ0RlbGV0ZScpO1xyXG4gICAgfVxyXG4gICAgb25FZGl0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3RyaWdnZXJDbGljaygnRWRpdCcpO1xyXG4gICAgfVxyXG4gICAgb25TZWFyY2goKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdHJpZ2dlckNsaWNrKCdQb3B1cCcpO1xyXG4gICAgfVxyXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIGN1c3RvbUZpbHRlcihjb250ZW50OiBhbnlbXSwgc2VhcmNoVGVybTogc3RyaW5nKTogYW55W10ge1xyXG4gICAgICAgIHJldHVybiBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXlGdW5jID0gKG9iajogTWV0YW9iamVjdERhdGFNb2RlbCkgPT4ge1xyXG4gICAgICAgIGlmIChvYmopIHtcclxuICAgICAgICAgICAgY29uc3QgY29sTmFtZSA9IHRoaXMuZ2V0Rmlyc3RDb2x1bW5OYW1lKCk7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldE1vVmFsdWVDYXB0aW9uKG9iaiwgY29sTmFtZSwgb2JqLiRDYXB0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfTtcclxuICAgIGdldE1vVmFsdWVDYXB0aW9uKHZhbHVlTW86IE1ldGFvYmplY3REYXRhTW9kZWwgfCBudWxsLCBjb2xOYW1lOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodmFsdWVNbyA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgY2FwdGlvblZhbHVlTW87XHJcbiAgICAgICAgY29uc3QgbW9saXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZShcclxuICAgICAgICAgICAgdGhpcy51bHZBZGFwdGVyLFxyXG4gICAgICAgICAgICAnU2V0dGluZy5EYXRhLk1vRGF0YUxpc3QnLFxyXG4gICAgICAgICAgICBbXVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgZm91bmRlZE1vID0gbW9saXN0LmZpbmQoKGMpID0+IGMuSWQgPT09IHZhbHVlTW8uSWQpO1xyXG4gICAgICAgIGlmIChjb2xOYW1lICYmIGZvdW5kZWRNbyAmJiBmb3VuZGVkTW9bY29sTmFtZV0pIHtcclxuICAgICAgICAgICAgaWYgKGZvdW5kZWRNb1tjb2xOYW1lICsgJyRDYXB0aW9uJ10pIHtcclxuICAgICAgICAgICAgICAgIGNhcHRpb25WYWx1ZU1vID0gZm91bmRlZE1vW2NvbE5hbWUgKyAnJENhcHRpb24nXTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChmb3VuZGVkTW9bY29sTmFtZV0uJENhcHRpb24pIHtcclxuICAgICAgICAgICAgICAgIGNhcHRpb25WYWx1ZU1vID0gZm91bmRlZE1vW2NvbE5hbWVdLiRDYXB0aW9uO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY2FwdGlvblZhbHVlTW8gPSBmb3VuZGVkTW9bY29sTmFtZV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JiYlBpcGUudHJhbnNmb3JtKGNhcHRpb25WYWx1ZU1vIHx8IGRlZmF1bHRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICBnZXRGaXJzdENvbHVtbk5hbWUoKSB7XHJcbiAgICAgICAgbGV0IGNvbE5hbWUgPSAnJENhcHRpb24nO1xyXG4gICAgICAgIGlmICh0aGlzLlVsdk1haW5DdHJsciAmJiB0aGlzLlVsdk1haW5DdHJscj8uRGQ/LlNldHRpbmc/LlZpZXcpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuVWx2TWFpbkN0cmxyLkRkLlNldHRpbmcuVmlldy5Db2x1bW5zKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdENvbCA9IHRoaXMuVWx2TWFpbkN0cmxyLkRkLlNldHRpbmcuVmlldy5Db2x1bW5zLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgKGMpID0+ICFjLk5hbWUuc3RhcnRzV2l0aCgnJCcpICYmIGMuTmFtZSAhPT0gJ0lkJ1xyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGlmIChmaXJzdENvbD8uTmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbE5hbWUgPSBmaXJzdENvbC5OYW1lO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjb2xOYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICBASW5wdXQoKSBJc0V4cGFuZGVkID0gKHR5cGUpID0+IGZhbHNlO1xyXG4gICAgLy8gcmV0dXJuIHRoaXMuY29tYm9SZWYubmF0aXZlRWxlbWVudC5yZXNwb25zaXZlUG9wb3Zlci5pc09wZW4oKTtcclxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICBASW5wdXQoKSBDb2xsYXBzZSA9ICh0eXBlKSA9PiB7fTtcclxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICBASW5wdXQoKSBFeHBhbmQgPSAodHlwZSkgPT4ge1xyXG4gICAgICAgIHRoaXMudWx2QWRhcHRlciA9IHRoaXMuVWx2TWFpbkN0cmxyW3R5cGVdO1xyXG4gICAgfTtcclxuICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICBASW5wdXQoKSBvbiA9ICgpID0+IHt9O1xyXG4gICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIEBJbnB1dCgpIEZvY3VzID0gKCkgPT4ge307XHJcbiAgICBASW5wdXQoKVxyXG4gICAgU2V0VWx2QWRhcHRlciA9ICh0eXBlLCB1bHZBZGFwdGVyKSA9PiB7XHJcbiAgICAgICAgdGhpcy51bHZBZGFwdGVyID0gdWx2QWRhcHRlcjtcclxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBJc1VpQ3JlYXRlZCA9ICh0eXBlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIH07XHJcbiAgICBASW5wdXQoKVxyXG4gICAgTWFzayA9ICh0eXBlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fbG9hZGluZ1NvdXJjZS5uZXh0KHRydWUpO1xyXG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlICovXHJcbiAgICB9O1xyXG4gICAgQElucHV0KClcclxuICAgIGhpZGUgPSAodHlwZSkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMudHJpZ2dlckNsaWNrKCdOb3JtYWwnKTtcclxuICAgICAgICBpZiAodGhpcy5mb3JtU2VsZWN0aW9uRGlhbG9nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybVNlbGVjdGlvbkRpYWxvZy5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBzaG93ID0gKHR5cGUpID0+IHtcclxuICAgICAgICAvLyB0aGlzLnRyaWdnZXJDbGljaygnTm9ybWFsJyk7XHJcbiAgICAgICAgdGhpcy5fb3BlblBvcHVwRm9ybVNlbGVjdGlvblNvdXJjZS5uZXh0KCk7IC8vIHJhYmV0ZSB0YWtpIGdlbmVyYWwgaW5mbyAucG9wdXAgYmF6IG1pc2hvZCBrZSBiYWlhZCBkcm9wZG93biBiYXNoZS5cclxuICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgfTtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBVbm1hc2sgPSAodHlwZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2xvYWRpbmdTb3VyY2UubmV4dChmYWxzZSk7XHJcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIH07XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0UmF3VmFsdWUgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJhd1ZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgIH07XHJcbiAgICBwcm90ZWN0ZWQgX3NldFZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zZXRWYWx1ZVRleHQodmFsdWUpO1xyXG4gICAgICAgIHN1cGVyLl9zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgLy8gdGhpcy5fc2V0Q29tYm9UZXh0KHZhbHVlKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfc2V0VmFsdWVUZXh0KHZhbHVlKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVNbyA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZVRleHQgPSAnJztcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZVRleHQgPSB2YWx1ZTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZVRleHQgPSB2YWx1ZS4kQ2FwdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHRoaXMuVWx2TWFpbkN0cmxyICYmIHRoaXMuVWx2TWFpbkN0cmxyLkRkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLlVsdk1haW5DdHJsci5EZC5TZXR0aW5nLlZpZXc7XHJcbiAgICAgICAgICAgIGxldCBjb2xOYW1lID0gJyRDYXB0aW9uJztcclxuICAgICAgICAgICAgaWYgKHZpZXcuQ29sdW1ucykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlyc3RDb2wgPSB2aWV3LkNvbHVtbnMuZmluZCgoYykgPT4gIWMuTmFtZS5zdGFydHNXaXRoKCckJykgJiYgYy5OYW1lICE9PSAnSWQnKTtcclxuICAgICAgICAgICAgICAgIGNvbE5hbWUgPSBmaXJzdENvbD8uTmFtZSA/IGZpcnN0Q29sLk5hbWUgOiAnJENhcHRpb24nO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVUZXh0ID0gdGhpcy5nZXRNb1ZhbHVlQ2FwdGlvbih0aGlzLl92YWx1ZU1vLCBjb2xOYW1lLCB0aGlzLnZhbHVlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3NldENvbWJvVGV4dCh0aGlzLnZhbHVlVGV4dCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3NldENvbWJvVGV4dCh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgLy8gaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAvLyB0aGlzLl92YWx1ZU1vID0gbnVsbDtcclxuICAgICAgICAvL3RoaXMuZmRDb21ib1JlZi5pbnB1dFRleHRWYWx1ZSA9ICcnO1xyXG4gICAgICAgIC8vdGhpcy5mZENvbWJvUmVmLl9jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIGNvbnN0IGZkQ29tYm9SZWYgPSB0aGlzLmZkQ29tYm9SZWY7XHJcbiAgICAgICAgY29uc3QgaW5wdXRUZXh0ID0gZmRDb21ib1JlZj8uaW5wdXRUZXh0VmFsdWU7XHJcbiAgICAgICAgaWYgKGZkQ29tYm9SZWYgJiYgdmFsdWUgIT0gaW5wdXRUZXh0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IFVsdk1haW5DdHJsciA9IHRoaXMuVWx2TWFpbkN0cmxyO1xyXG4gICAgICAgICAgICBpZiAoVWx2TWFpbkN0cmxyICYmIFVsdk1haW5DdHJsci5EZCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmlldyA9IFVsdk1haW5DdHJsci5EZC5TZXR0aW5nLlZpZXc7XHJcbiAgICAgICAgICAgICAgICBsZXQgY29sTmFtZSA9ICckQ2FwdGlvbic7XHJcbiAgICAgICAgICAgICAgICBpZiAodmlldy5Db2x1bW5zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RDb2wgPSB2aWV3LkNvbHVtbnMuZmluZCgoYykgPT4gIWMuTmFtZS5zdGFydHNXaXRoKCckJykgJiYgYy5OYW1lICE9PSAnSWQnKTtcclxuICAgICAgICAgICAgICAgICAgICBjb2xOYW1lID0gZmlyc3RDb2w/Lk5hbWUgPyBmaXJzdENvbC5OYW1lIDogJyRDYXB0aW9uJztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5nZXRNb1ZhbHVlQ2FwdGlvbih0aGlzLl92YWx1ZU1vLCBjb2xOYW1lLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZmRDb21ib1JlZi5pbnB1dFRleHQgPSB2YWx1ZSA/IHRoaXMuX2JiYlBpcGUudHJhbnNmb3JtKHZhbHVlKSArICcnIDogJyc7XHJcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9vcGVuUG9wdXBGb3JtU2VsZWN0aW9uKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHRoaXMuaXNPcGVuU2VsZWN0aW9uRGlhbG9nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLlVsdlVpLnZpZXdlckNvbnRyb2wuU2hvd09rQ2FuY2VsQnV0dG9ucyA9IHRydWU7IC8vIHRoaXMgaXMgdXNlZnVsIHRvIHVsdiBtYW5hZ2UgdG9vbGJhciBidXR0b25zLmZvciBleGFtcGxlIG1vdmUgaW4gdHJlZSBkb2VzIG5vdCBzaG93blxyXG4gICAgICAgIHRoaXMuZm9ybVNlbGVjdGlvbkRpYWxvZyA9IEJhcnNhQXBpLkJ3LlVsdkZvcm1NdWx0aVNlbGVjdC5TaG93KHRoaXMuY29udGV4dCwge1xyXG4gICAgICAgICAgICB1bHYxOiB0aGlzLlVsdlVpLFxyXG4gICAgICAgICAgICB0aXRsZTogdGhpcy5fYmJiUGlwZS50cmFuc2Zvcm0oJ1NlbGVjdCcpLFxyXG4gICAgICAgICAgICBJc0xvYWRlZDogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzT3BlblNlbGVjdGlvbkRpYWxvZyA9IGZhbHNlO1xyXG4gICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9maWx0ZXJTbWFydENoYW5nZSh2YWx1ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBjYW5SZXF1ZXN0ID0gdGhpcy51bHZBZGFwdGVyICYmIHZhbHVlICE9PSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIGlmIChjYW5SZXF1ZXN0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1vbGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnVsdkFkYXB0ZXIsXHJcbiAgICAgICAgICAgICAgICAnU2V0dGluZy5EYXRhLk1vRGF0YUxpc3QnLFxyXG4gICAgICAgICAgICAgICAgW11cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKCFtb2xpc3QpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbE5hbWUgPSB0aGlzLmdldEZpcnN0Q29sdW1uTmFtZSgpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgZmluZE1vID0gbW9saXN0LmZpbmQoKG1vKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjYXB0aW9uID0gdGhpcy5nZXRNb1ZhbHVlQ2FwdGlvbihtbywgY29sTmFtZSwgbW8uJENhcHRpb24pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhcHRpb24gPT09IHZhbHVlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKGZpbmRNbykge1xyXG4gICAgICAgICAgICAgICAgY2FuUmVxdWVzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZmlyZVZhbHVlQ2hhbmdlKGZpbmRNbyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGNhblJlcXVlc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9mb2N1cygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyQ2xpY2soJ05vcm1hbCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfcmFpc2VTbWFydENoYW5nZSh2YWx1ZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc21hcnRDaGFuZ2UubmV4dCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF90cmlnZ2VyQ2xpY2soZXZlbnROYW1lLCB2YWx1ZSA9IG51bGwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdUcmlnZ2VyQ2xpY2snLCB0aGlzLmNvbnRleHQsIGV2ZW50TmFtZSwgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfcmFpc2VWYWx1ZUNoYW5nZWQoY2FwdGlvbik6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGlucHV0VmFsdWUgPSBjYXB0aW9uO1xyXG4gICAgICAgIGNvbnN0IG1vbGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoXHJcbiAgICAgICAgICAgIHRoaXMudWx2QWRhcHRlcixcclxuICAgICAgICAgICAgJ1NldHRpbmcuRGF0YS5Nb0RhdGFMaXN0JyxcclxuICAgICAgICAgICAgW11cclxuICAgICAgICApO1xyXG4gICAgICAgIGlmICghbW9saXN0IHx8IG1vbGlzdC5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL2NvbnN0IGNvbE5hbWUgPSB0aGlzLmdldEZpcnN0Q29sdW1uTmFtZSgpO1xyXG5cclxuICAgICAgICBjb25zdCBtbyA9IG1vbGlzdC5maW5kKChjKSA9PiBjLiRDYXB0aW9uID09PSBpbnB1dFZhbHVlKTtcclxuICAgICAgICBpZiAoIW1vKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fZmlyZVZhbHVlQ2hhbmdlKG1vKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfZmlyZVZhbHVlQ2hhbmdlKG1vKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IG1vO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlTW8gPSBtbztcclxuICAgICAgICB0aGlzLl9zZXRWYWx1ZVRleHQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgLy8gdGhpcy5fc2V0Q29tYm9UZXh0KG1vLiRDYXB0aW9uKTtcclxuICAgICAgICAvLyB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHRoaXMuX3RyaWdnZXJDbGljaygnSXRlbVNlbGVjdCcsIHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJjb250ZXh0Ll9zaG93UG9wdXA7IGVsc2UgY29tYm9cIj5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleFwiIGNsYXNzPVwiZmQtaW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBmZC1pbnB1dC1ncm91cC1pbnB1dFxuICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXG4gICAgICAgICAgICAjaW5wdXRSZWZcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJTZXR0aW5nLk51bGxUZXh0IHx8ICcnXCJcbiAgICAgICAgICAgIFthdHRyLnJlYWRvbmx5XT1cInRydWVcIlxuICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiKGRpc2FibGUkIHwgYXN5bmMpID09PSB0cnVlID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cIiF2YWx1ZSA/ICcnIDogKHZhbHVlIHwgYmJiVHJhbnNsYXRlKVwiXG4gICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgW3N0eWxlLmRpcmVjdGlvbl09XCJTZXR0aW5nLklzTHRyID09PSB0cnVlID8gJ2x0cicgOiBudWxsXCJcbiAgICAgICAgICAgIChpbnB1dCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgZmQtaW5wdXQtZ3JvdXAtYWRkb25cbiAgICAgICAgICAgICpuZ0lmPVwidmFsdWUgJiYgKGRpc2FibGVPclJlYWRvbmx5JCB8IGFzeW5jKSAhPT0gdHJ1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cImRlY2xpbmVcIiAoY2xpY2spPVwib25DbGVhcigpXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGZkLWlucHV0LWdyb3VwLWFkZG9uXG4gICAgICAgICAgICAqbmdJZj1cIiF2YWx1ZSAmJiAoZGlzYWJsZU9yUmVhZG9ubHkkIHwgYXN5bmMpICE9PSB0cnVlICYmIFNldHRpbmcuU2hvd05ld0J1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cImFkZFwiIChjbGljayk9XCJvbk5ldygpXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGZkLWlucHV0LWdyb3VwLWFkZG9uXG4gICAgICAgICAgICAqbmdJZj1cInZhbHVlICYmIChkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykgIT09IHRydWUgJiYgU2V0dGluZy5WaWV3UmVsYXRlZEZvcm1UeXBlID09PSAnU2hvdydcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1pbnB1dC1ncm91cF9fYWRkb24tLWJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgZ2x5cGg9XCJlZGl0XCIgKGNsaWNrKT1cIm9uRWRpdCgpXCI+PC9idXR0b24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGZkLWlucHV0LWdyb3VwLWFkZG9uXG4gICAgICAgICAgICAqbmdJZj1cInZhbHVlICYmIChkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykgIT09IHRydWUgJiYgU2V0dGluZy5WaWV3UmVsYXRlZEZvcm1UeXBlID09PSAnU2hvd1JlYWRPbmx5J1wiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWlucHV0LWdyb3VwX19hZGRvbi0tYnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGJ1dHRvbiBmZC1idXR0b24gZmRUeXBlPVwidHJhbnNwYXJlbnRcIiBnbHlwaD1cInNob3dcIiAoY2xpY2spPVwib25FZGl0KClcIj48L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgZmQtaW5wdXQtZ3JvdXAtYWRkb25cbiAgICAgICAgICAgICpuZ0lmPVwiIXZhbHVlICYmIChkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykgIT09IHRydWVcIlxuICAgICAgICAgICAgY2xhc3M9XCJmZC1pbnB1dC1ncm91cF9fYWRkb24tLWJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCIgZ2x5cGg9XCJzZWFyY2hcIiAoY2xpY2spPVwib25TZWFyY2goKVwiPjwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNjb21ibz5cbiAgICA8ZGl2IFtjbGFzcy5jb250cm9sLWRpc2FibGVkXT1cImRpc2FibGUkIHwgYXN5bmNcIiBjbGFzcz1cInNpbXBsZS1jb21iby13cmFwcGVyXCI+XG4gICAgICAgIDxmZC1jb21ib2JveFxuICAgICAgICAgICAgI2ZkQ29tYm9ib3hcbiAgICAgICAgICAgIGNsYXNzPVwiY29tYm8tbW8tdWx2XCJcbiAgICAgICAgICAgIFtjbGFzcy5oYXMtcmVwb3J0XT1cImhhc1JlcG9ydFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJydcIlxuICAgICAgICAgICAgW21vYmlsZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykgPT09ICdzJ1wiXG4gICAgICAgICAgICBbbW9iaWxlQ29uZmlnXT1cIm1vYmlsZUNvbmZpZ1wiXG4gICAgICAgICAgICBbZmlsbE9uU2VsZWN0XT1cInRydWVcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cIihyZWFkb25seSQgfCBhc3luYykgPT09IHRydWUgPyB0cnVlIDogZmFsc2VcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIihkaXNhYmxlJCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBmYWxzZVwiXG4gICAgICAgICAgICBbZHJvcGRvd25WYWx1ZXNdPVwiKGxvYWRpbmckIHwgYXN5bmMpID09PSB0cnVlIHwgbW9JbmZvVWx2TW9MaXN0OiBpc0RhdGFMb2FkZWRGaXJzdFRpbWU6dWx2QWRhcHRlcjpVbHZVaVwiXG4gICAgICAgICAgICBbZmlsdGVyRm5dPVwiY3VzdG9tRmlsdGVyXCJcbiAgICAgICAgICAgIFtvcGVuT25LZXlib2FyZEV2ZW50XT1cInRydWVcIlxuICAgICAgICAgICAgW2l0ZW1UZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJ2YWx1ZVRleHQgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW2Rpc3BsYXlGbl09XCJkaXNwbGF5RnVuY1wiXG4gICAgICAgICAgICBbc2hvd0Ryb3Bkb3duQnV0dG9uXT1cIihkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykgIT09IHRydWVcIlxuICAgICAgICAgICAgKGlucHV0VGV4dENoYW5nZSk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgKG9wZW5DaGFuZ2UpPVwib25PcGVuQ2hhbmdlKGZkQ29tYm9ib3gsICRldmVudClcIlxuICAgICAgICA+PC9mZC1jb21ib2JveD5cbiAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiaGFzUmVwb3J0ICYmIChkaXNhYmxlT3JSZWFkb25seSQgfCBhc3luYykgIT09IHRydWVcIlxuICAgICAgICAgICAgZ2x5cGg9XCJzZWFyY2hcIlxuICAgICAgICAgICAgYnV0dG9uVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwiY29tYm8tcG9wdXAtYnRuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblNlYXJjaCgpXCJcbiAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgICA8ZGl2IGZkLWxpc3QtY29udGVudCAqbmdJZj1cIml0ZW0uJGlzTG9hZGluZzsgZWxzZSBzaG93SXRlbVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMjBweFwiPlxuICAgICAgICAgICAgPGJzdS1tYXNrIFtzaXplXT1cIidzJ1wiIFttYXJnaW5Ub3BdPVwiJzEwcHgnXCI+PC9ic3UtbWFzaz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0l0ZW0+XG4gICAgICAgICAgICA8aSBmZC1saXN0LWljb24gW2dseXBoXT1cIml0ZW0uJEljb25cIj48L2k+XG4gICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7XG4gICAgICAgICAgICAgICAgaXRlbS5pc0VtcHR5ID8gKCdOb0RhdGEnIHwgYmJiVHJhbnNsYXRlKSA6IChpdGVtLiRNb0NhcHRpb24gfHwgaXRlbS4kQ2FwdGlvbiB8IGJiYlRyYW5zbGF0ZSlcbiAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -10,9 +10,9 @@ export class UiMonacoEditorComponent extends DeviceInfoFieldBaseComponent {
10
10
  }
11
11
  }
12
12
  UiMonacoEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiMonacoEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
13
- UiMonacoEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiMonacoEditorComponent, selector: "bsu-ui-monaco-editor", usesInheritance: true, ngImport: i0, template: "<bsu-barsa-monaco-editor\n *untilInView=\"el\"\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n></bsu-barsa-monaco-editor>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "component", type: i2.BarsaMonacoEditorComponent, selector: "bsu-barsa-monaco-editor", inputs: ["value"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13
+ UiMonacoEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiMonacoEditorComponent, selector: "bsu-ui-monaco-editor", usesInheritance: true, ngImport: i0, template: "<bsu-barsa-monaco-editor\r\n *untilInView=\"el\"\r\n [value]=\"value\"\r\n (valueChange)=\"onValueChange($event)\"\r\n></bsu-barsa-monaco-editor>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i1.UntilInViewDirective, selector: "[untilInView]", inputs: ["untilInView", "intersectionDebounce"] }, { kind: "component", type: i2.BarsaMonacoEditorComponent, selector: "bsu-barsa-monaco-editor", inputs: ["value"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiMonacoEditorComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'bsu-ui-monaco-editor', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bsu-barsa-monaco-editor\n *untilInView=\"el\"\n [value]=\"value\"\n (valueChange)=\"onValueChange($event)\"\n></bsu-barsa-monaco-editor>\n", styles: [":host{display:block}\n"] }]
16
+ args: [{ selector: 'bsu-ui-monaco-editor', changeDetection: ChangeDetectionStrategy.OnPush, template: "<bsu-barsa-monaco-editor\r\n *untilInView=\"el\"\r\n [value]=\"value\"\r\n (valueChange)=\"onValueChange($event)\"\r\n></bsu-barsa-monaco-editor>\r\n", styles: [":host{display:block}\n"] }]
17
17
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW9uYWNvLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1tb25hY28tZWRpdG9yL3VpLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW9uYWNvLWVkaXRvci91aS1tb25hY28tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFRekUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLDRCQUE0QjtJQUNyRSxhQUFhLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7b0hBSlEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsbUZDVHBDLHNKQUtBOzJGRElhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDSSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERldmljZUluZm9GaWVsZEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9kZXZpY2UtaW5mby1maWVsZC1iYXNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktbW9uYWNvLWVkaXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLW1vbmFjby1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaU1vbmFjb0VkaXRvckNvbXBvbmVudCBleHRlbmRzIERldmljZUluZm9GaWVsZEJhc2VDb21wb25lbnQge1xuICAgIG9uVmFsdWVDaGFuZ2UodmFsdWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ2NoYW5nZScsIHRoaXMsIHZhbHVlLCB0aGlzLnZhbHVlKTtcbiAgICB9XG59XG4iLCI8YnN1LWJhcnNhLW1vbmFjby1lZGl0b3JcbiAgICAqdW50aWxJblZpZXc9XCJlbFwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbj48L2JzdS1iYXJzYS1tb25hY28tZWRpdG9yPlxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbW9uYWNvLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi91aS1tb25hY28tZWRpdG9yL3VpLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbW9uYWNvLWVkaXRvci91aS1tb25hY28tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFRekUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLDRCQUE0QjtJQUNyRSxhQUFhLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7b0hBSlEsdUJBQXVCO3dHQUF2Qix1QkFBdUIsbUZDVHBDLGdLQUtBOzJGRElhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDSSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2RldmljZS1pbmZvLWZpZWxkLWJhc2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS11aS1tb25hY28tZWRpdG9yJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1tb25hY28tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLW1vbmFjby1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaU1vbmFjb0VkaXRvckNvbXBvbmVudCBleHRlbmRzIERldmljZUluZm9GaWVsZEJhc2VDb21wb25lbnQge1xyXG4gICAgb25WYWx1ZUNoYW5nZSh2YWx1ZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY29udGV4dC52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ2NoYW5nZScsIHRoaXMsIHZhbHVlLCB0aGlzLnZhbHVlKTtcclxuICAgIH1cclxufVxyXG4iLCI8YnN1LWJhcnNhLW1vbmFjby1lZGl0b3JcclxuICAgICp1bnRpbEluVmlldz1cImVsXCJcclxuICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuPjwvYnN1LWJhcnNhLW1vbmFjby1lZGl0b3I+XHJcbiJdfQ==
@@ -14,6 +14,9 @@ export class UiMultiSelectComboComponent extends FieldBaseComponent {
14
14
  ngOnInit() {
15
15
  super.ngOnInit();
16
16
  const store = this.context.store;
17
+ this.context.on({
18
+ DataListChanged: this._setDataList.bind(this)
19
+ });
17
20
  if (this.value) {
18
21
  const splitedValue = this.value.split(',');
19
22
  const dropDownValues = store.data[store.root];
@@ -24,6 +27,7 @@ export class UiMultiSelectComboComponent extends FieldBaseComponent {
24
27
  }
25
28
  });
26
29
  }
30
+ this.dataList = store.data[store.root];
27
31
  }
28
32
  ngAfterViewInit() {
29
33
  super.ngAfterContentInit();
@@ -38,10 +42,15 @@ export class UiMultiSelectComboComponent extends FieldBaseComponent {
38
42
  }
39
43
  }, 0);
40
44
  }
45
+ ngOnDestroy() {
46
+ super.ngOnDestroy();
47
+ this.context.un('DataListChanged', this._setDataList);
48
+ }
41
49
  onOpenChange(isOpen, multiInput) {
42
50
  if (isOpen) {
43
51
  setTimeout(() => {
44
- multiInput.listComponent.items.get(0)?.focus();
52
+ this.context.fireEvent('TriggerClick', this.context, '');
53
+ multiInput?.searchInputElement?.nativeElement?.focus();
45
54
  }, 0);
46
55
  }
47
56
  }
@@ -51,12 +60,12 @@ export class UiMultiSelectComboComponent extends FieldBaseComponent {
51
60
  this.valueChange.emit(this.value);
52
61
  this.fireContextEvent('select', this.value);
53
62
  }
54
- onSelectionChange(e) {
55
- this.value = e.target.selectedValues.map((c) => c.value).join(',');
56
- this._raiseValueChanged();
57
- }
63
+ // onSelectionChange(e): void {
64
+ // this.value = e.target.selectedValues.map((c) => c.value).join(',');
65
+ // this._raiseValueChanged();
66
+ // }
58
67
  onSelectedChange() {
59
- this.value = this.selectedItems.map((c) => c.id).join(',');
68
+ this.value = this.selectedItems.map((c) => (typeof c === 'string' ? c : c.id)).join(',');
60
69
  this._raiseValueChanged();
61
70
  }
62
71
  // IsSelected(item): boolean {
@@ -69,15 +78,23 @@ export class UiMultiSelectComboComponent extends FieldBaseComponent {
69
78
  displayFunc(obj) {
70
79
  return obj.txt;
71
80
  }
81
+ valueFunc(obj) {
82
+ return obj;
83
+ }
84
+ _setDataList() {
85
+ const store = this.context.store;
86
+ this.dataList = store.data[store.root];
87
+ this._cdr.detectChanges();
88
+ }
72
89
  _raiseValueChanged() {
73
90
  this.valueChange.emit(this.value);
74
91
  this.fireContextEvent('select', this.value);
75
92
  }
76
93
  }
77
94
  UiMultiSelectComboComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiMultiSelectComboComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
78
- UiMultiSelectComboComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiMultiSelectComboComponent, selector: "bsu-ui-multi-select-combo", usesInheritance: true, ngImport: i0, template: "<fd-multi-input\n #multiInput\n inputId=\"multiInput\"\n [disabled]=\"(disableOrReadonly$ | async)!!\"\n [dropdownValues]=\"context.store.data[context.store.root]\"\n [placeholder]=\"'Search' | bbbTranslate\"\n [(ngModel)]=\"selectedItems\"\n [displayFn]=\"displayFunc\"\n [itemTemplate]=\"template\"\n (openChange)=\"onOpenChange($event, multiInput)\"\n (selectedChange)=\"onSelectedChange()\"\n [style.max-width.px]=\"maxWidth\"\n></fd-multi-input>\n<ng-template #template let-item>\n <div style=\"display: flex; align-items: center\">\n <img [attrRtl] *ngIf=\"item.url\" [src]=\"item.url\" />\n <span fd-list-title>{{ item.txt | bbbTranslate }}</span>\n </div>\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%}img[rtl=true]{margin-left:5px}img[rtl=false]{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.AttrRtlDirective, selector: "[attrRtl]", inputs: ["attrRtl"] }, { kind: "directive", type: i4.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i5.MultiInputComponent, selector: "fd-multi-input", inputs: ["placeholder", "disabled", "required", "compactCollapse", "maxHeight", "glyph", "dropdownValues", "searchTerm", "inputId", "highlight", "selected", "class", "filterFn", "valueFn", "displayFn", "newTokenParseFn", "newTokenValidateFn", "ariaLabel", "ariaLabelledBy", "fillControlMode", "state", "buttonFocusable", "allowNewTokens", "mobile", "showAllButton", "bodyMaxWidth", "mobileConfig", "includes", "itemTemplate", "title", "autoComplete", "open", "displayAddonButton"], outputs: ["searchTermChange", "selectedChange", "openChange", "allItemsSelectedChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
95
+ UiMultiSelectComboComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: UiMultiSelectComboComponent, selector: "bsu-ui-multi-select-combo", usesInheritance: true, ngImport: i0, template: "<fd-multi-input\n #multiInput\n inputId=\"multiInput\"\n [disabled]=\"(disableOrReadonly$ | async)!!\"\n [dropdownValues]=\"dataList\"\n [placeholder]=\"'Search' | bbbTranslate\"\n [(ngModel)]=\"selectedItems\"\n [displayFn]=\"displayFunc\"\n [valueFn]=\"valueFunc\"\n [itemTemplate]=\"template\"\n (openChange)=\"onOpenChange($event, multiInput)\"\n (selectedChange)=\"onSelectedChange()\"\n [style.max-width.px]=\"maxWidth\"\n></fd-multi-input>\n<ng-template #template let-item>\n <div style=\"display: flex; align-items: center\">\n <img [attrRtl] *ngIf=\"item.url\" [src]=\"item.url\" />\n <span fd-list-title>{{ item.txt | bbbTranslate }}</span>\n </div>\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%}img[rtl=true]{margin-left:5px}img[rtl=false]{margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.AttrRtlDirective, selector: "[attrRtl]", inputs: ["attrRtl"] }, { kind: "directive", type: i4.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "component", type: i5.MultiInputComponent, selector: "fd-multi-input", inputs: ["placeholder", "disabled", "required", "compactCollapse", "maxHeight", "glyph", "dropdownValues", "searchTerm", "inputId", "highlight", "selected", "class", "filterFn", "valueFn", "displayFn", "newTokenParseFn", "newTokenValidateFn", "ariaLabel", "ariaLabelledBy", "fillControlMode", "state", "buttonFocusable", "allowNewTokens", "mobile", "showAllButton", "bodyMaxWidth", "mobileConfig", "includes", "itemTemplate", "title", "autoComplete", "open", "displayAddonButton"], outputs: ["searchTermChange", "selectedChange", "openChange", "allItemsSelectedChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
79
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: UiMultiSelectComboComponent, decorators: [{
80
97
  type: Component,
81
- args: [{ selector: 'bsu-ui-multi-select-combo', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-multi-input\n #multiInput\n inputId=\"multiInput\"\n [disabled]=\"(disableOrReadonly$ | async)!!\"\n [dropdownValues]=\"context.store.data[context.store.root]\"\n [placeholder]=\"'Search' | bbbTranslate\"\n [(ngModel)]=\"selectedItems\"\n [displayFn]=\"displayFunc\"\n [itemTemplate]=\"template\"\n (openChange)=\"onOpenChange($event, multiInput)\"\n (selectedChange)=\"onSelectedChange()\"\n [style.max-width.px]=\"maxWidth\"\n></fd-multi-input>\n<ng-template #template let-item>\n <div style=\"display: flex; align-items: center\">\n <img [attrRtl] *ngIf=\"item.url\" [src]=\"item.url\" />\n <span fd-list-title>{{ item.txt | bbbTranslate }}</span>\n </div>\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%}img[rtl=true]{margin-left:5px}img[rtl=false]{margin-right:5px}\n"] }]
98
+ args: [{ selector: 'bsu-ui-multi-select-combo', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fd-multi-input\n #multiInput\n inputId=\"multiInput\"\n [disabled]=\"(disableOrReadonly$ | async)!!\"\n [dropdownValues]=\"dataList\"\n [placeholder]=\"'Search' | bbbTranslate\"\n [(ngModel)]=\"selectedItems\"\n [displayFn]=\"displayFunc\"\n [valueFn]=\"valueFunc\"\n [itemTemplate]=\"template\"\n (openChange)=\"onOpenChange($event, multiInput)\"\n (selectedChange)=\"onSelectedChange()\"\n [style.max-width.px]=\"maxWidth\"\n></fd-multi-input>\n<ng-template #template let-item>\n <div style=\"display: flex; align-items: center\">\n <img [attrRtl] *ngIf=\"item.url\" [src]=\"item.url\" />\n <span fd-list-title>{{ item.txt | bbbTranslate }}</span>\n </div>\n</ng-template>\n", styles: [":host{display:block;width:100%;height:100%}img[rtl=true]{margin-left:5px}img[rtl=false]{margin-right:5px}\n"] }]
82
99
  }] });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbXVsdGktc2VsZWN0LWNvbWJvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLW11bHRpLXNlbGVjdC1jb21iby91aS1tdWx0aS1zZWxlY3QtY29tYm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbXVsdGktc2VsZWN0LWNvbWJvL3VpLW11bHRpLXNlbGVjdC1jb21iby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7O0FBTzFELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxrQkFBa0I7SUFObkU7O1FBT0ksa0JBQWEsR0FBa0MsRUFBRSxDQUFDO0tBaUVyRDtJQS9ERyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLE1BQU0sWUFBWSxHQUFhLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sY0FBYyxHQUFrQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3RSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQzVCLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3pELElBQUksUUFBUSxFQUFFO29CQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNqQztZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBQ0QsZUFBZTtRQUNYLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzNCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7WUFDakQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2pELElBQUksS0FBSyxHQUFHLFdBQVcsRUFBRTtnQkFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7YUFDekI7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7YUFDL0I7UUFDTCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDVixDQUFDO0lBQ0QsWUFBWSxDQUFDLE1BQWUsRUFBRSxVQUErQjtRQUN6RCxJQUFJLE1BQU0sRUFBRTtZQUNSLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ25ELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNUO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxDQUFDO1FBQ1gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1FBQ3BELElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsaUJBQWlCLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFDRCw4QkFBOEI7SUFDOUIsdUJBQXVCO0lBQ3ZCLG9CQUFvQjtJQUNwQixNQUFNO0lBQ04sdUNBQXVDO0lBQ3ZDLHNDQUFzQztJQUN0QyxJQUFJO0lBQ0osV0FBVyxDQUFDLEdBQVE7UUFDaEIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ25CLENBQUM7SUFDTyxrQkFBa0I7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7O3dIQWpFUSwyQkFBMkI7NEdBQTNCLDJCQUEyQix3RkNWeEMsZ3VCQW1CQTsyRkRUYSwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0ksMkJBQTJCLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNdWx0aUlucHV0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHsgRmllbGRCYXNlQ29tcG9uZW50IH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktbXVsdGktc2VsZWN0LWNvbWJvJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktbXVsdGktc2VsZWN0LWNvbWJvLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91aS1tdWx0aS1zZWxlY3QtY29tYm8uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaU11bHRpU2VsZWN0Q29tYm9Db21wb25lbnQgZXh0ZW5kcyBGaWVsZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHNlbGVjdGVkSXRlbXM6IHsgaWQ6IHN0cmluZzsgdHh0OiBzdHJpbmcgfVtdID0gW107XG4gICAgbWF4V2lkdGg6IGFueTtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgY29uc3Qgc3RvcmUgPSB0aGlzLmNvbnRleHQuc3RvcmU7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBzcGxpdGVkVmFsdWU6IHN0cmluZ1tdID0gdGhpcy52YWx1ZS5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgY29uc3QgZHJvcERvd25WYWx1ZXM6IHsgaWQ6IHN0cmluZzsgdHh0OiBzdHJpbmcgfVtdID0gc3RvcmUuZGF0YVtzdG9yZS5yb290XTtcbiAgICAgICAgICAgIGRyb3BEb3duVmFsdWVzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZCA9IHNwbGl0ZWRWYWx1ZS5maW5kKChjKSA9PiBjID09PSBpdGVtLmlkKTtcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ0FmdGVyQ29udGVudEluaXQoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICBjb25zdCBsYXlvdXRXaWR0aCA9IHRoaXMubGF5b3V0SW5mby5Cb3VuZHMud2lkdGg7XG4gICAgICAgICAgICBpZiAod2lkdGggPiBsYXlvdXRXaWR0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMubWF4V2lkdGggPSB3aWR0aDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXhXaWR0aCA9IGxheW91dFdpZHRoO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICB9XG4gICAgb25PcGVuQ2hhbmdlKGlzT3BlbjogYm9vbGVhbiwgbXVsdGlJbnB1dDogTXVsdGlJbnB1dENvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBtdWx0aUlucHV0Lmxpc3RDb21wb25lbnQuaXRlbXMuZ2V0KDApPy5mb2N1cygpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IGUudGFyZ2V0LnNlbGVjdGVkT3B0aW9uLnZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlID0gc2VsZWN0ZWRWYWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLmZpcmVDb250ZXh0RXZlbnQoJ3NlbGVjdCcsIHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICBvblNlbGVjdGlvbkNoYW5nZShlKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBlLnRhcmdldC5zZWxlY3RlZFZhbHVlcy5tYXAoKGMpID0+IGMudmFsdWUpLmpvaW4oJywnKTtcbiAgICAgICAgdGhpcy5fcmFpc2VWYWx1ZUNoYW5nZWQoKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdGVkQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5zZWxlY3RlZEl0ZW1zLm1hcCgoYykgPT4gYy5pZCkuam9pbignLCcpO1xuICAgICAgICB0aGlzLl9yYWlzZVZhbHVlQ2hhbmdlZCgpO1xuICAgIH1cbiAgICAvLyBJc1NlbGVjdGVkKGl0ZW0pOiBib29sZWFuIHtcbiAgICAvLyAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgIC8vICAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gICB9XG4gICAgLy8gICBjb25zdCBhcnIgPSB0aGlzLnZhbHVlLnNwbGl0KCcsJyk7XG4gICAgLy8gICByZXR1cm4gYXJyLmluZGV4T2YoaXRlbS5pZCkgPiAtMTtcbiAgICAvLyB9XG4gICAgZGlzcGxheUZ1bmMob2JqOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gb2JqLnR4dDtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmFpc2VWYWx1ZUNoYW5nZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdzZWxlY3QnLCB0aGlzLnZhbHVlKTtcbiAgICB9XG59XG4iLCI8ZmQtbXVsdGktaW5wdXRcbiAgICAjbXVsdGlJbnB1dFxuICAgIGlucHV0SWQ9XCJtdWx0aUlucHV0XCJcbiAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGVPclJlYWRvbmx5JCB8IGFzeW5jKSEhXCJcbiAgICBbZHJvcGRvd25WYWx1ZXNdPVwiY29udGV4dC5zdG9yZS5kYXRhW2NvbnRleHQuc3RvcmUucm9vdF1cIlxuICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEl0ZW1zXCJcbiAgICBbZGlzcGxheUZuXT1cImRpc3BsYXlGdW5jXCJcbiAgICBbaXRlbVRlbXBsYXRlXT1cInRlbXBsYXRlXCJcbiAgICAob3BlbkNoYW5nZSk9XCJvbk9wZW5DaGFuZ2UoJGV2ZW50LCBtdWx0aUlucHV0KVwiXG4gICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uU2VsZWN0ZWRDaGFuZ2UoKVwiXG4gICAgW3N0eWxlLm1heC13aWR0aC5weF09XCJtYXhXaWR0aFwiXG4+PC9mZC1tdWx0aS1pbnB1dD5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LWl0ZW0+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXJcIj5cbiAgICAgICAgPGltZyBbYXR0clJ0bF0gKm5nSWY9XCJpdGVtLnVybFwiIFtzcmNdPVwiaXRlbS51cmxcIiAvPlxuICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7IGl0ZW0udHh0IHwgYmJiVHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbXVsdGktc2VsZWN0LWNvbWJvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLXNhcC11aS9zcmMvbGliL3VpLW11bHRpLXNlbGVjdC1jb21iby91aS1tdWx0aS1zZWxlY3QtY29tYm8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbXVsdGktc2VsZWN0LWNvbWJvL3VpLW11bHRpLXNlbGVjdC1jb21iby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUd0RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQU8xRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsa0JBQWtCO0lBTm5FOztRQU9JLGtCQUFhLEdBQWtDLEVBQUUsQ0FBQztLQW1GckQ7SUFoRkcsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNaLGVBQWUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDaEQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1osTUFBTSxZQUFZLEdBQWEsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckQsTUFBTSxjQUFjLEdBQWtDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdFLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUs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SyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ08sa0JBQWtCO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDOzt3SEFuRlEsMkJBQTJCOzRHQUEzQiwyQkFBMkIsd0ZDVnhDLCt0QkFvQkE7MkZEVmEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNJLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNdWx0aUlucHV0Q29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHsgRmllbGRCYXNlQ29tcG9uZW50IH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdic3UtdWktbXVsdGktc2VsZWN0LWNvbWJvJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktbXVsdGktc2VsZWN0LWNvbWJvLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi91aS1tdWx0aS1zZWxlY3QtY29tYm8uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVaU11bHRpU2VsZWN0Q29tYm9Db21wb25lbnQgZXh0ZW5kcyBGaWVsZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgc2VsZWN0ZWRJdGVtczogeyBpZDogc3RyaW5nOyB0eHQ6IHN0cmluZyB9W10gPSBbXTtcbiAgICBtYXhXaWR0aDogYW55O1xuICAgIGRhdGFMaXN0OiBhbnk7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGNvbnN0IHN0b3JlID0gdGhpcy5jb250ZXh0LnN0b3JlO1xuICAgICAgICB0aGlzLmNvbnRleHQub24oe1xuICAgICAgICAgICAgRGF0YUxpc3RDaGFuZ2VkOiB0aGlzLl9zZXREYXRhTGlzdC5iaW5kKHRoaXMpXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgY29uc3Qgc3BsaXRlZFZhbHVlOiBzdHJpbmdbXSA9IHRoaXMudmFsdWUuc3BsaXQoJywnKTtcbiAgICAgICAgICAgIGNvbnN0IGRyb3BEb3duVmFsdWVzOiB7IGlkOiBzdHJpbmc7IHR4dDogc3RyaW5nIH1bXSA9IHN0b3JlLmRhdGFbc3RvcmUucm9vdF07XG4gICAgICAgICAgICBkcm9wRG93blZhbHVlcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBzcGxpdGVkVmFsdWUuZmluZCgoYykgPT4gYyA9PT0gaXRlbS5pZCk7XG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGF0YUxpc3QgPSBzdG9yZS5kYXRhW3N0b3JlLnJvb3RdO1xuICAgIH1cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGxheW91dFdpZHRoID0gdGhpcy5sYXlvdXRJbmZvLkJvdW5kcy53aWR0aDtcbiAgICAgICAgICAgIGlmICh3aWR0aCA+IGxheW91dFdpZHRoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXhXaWR0aCA9IHdpZHRoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1heFdpZHRoID0gbGF5b3V0V2lkdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDApO1xuICAgIH1cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LnVuKCdEYXRhTGlzdENoYW5nZWQnLCB0aGlzLl9zZXREYXRhTGlzdCk7XG4gICAgfVxuICAgIG9uT3BlbkNoYW5nZShpc09wZW46IGJvb2xlYW4sIG11bHRpSW5wdXQ6IE11bHRpSW5wdXRDb21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LmZpcmVFdmVudCgnVHJpZ2dlckNsaWNrJywgdGhpcy5jb250ZXh0LCAnJyk7XG4gICAgICAgICAgICAgICAgbXVsdGlJbnB1dD8uc2VhcmNoSW5wdXRFbGVtZW50Py5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblZhbHVlQ2hhbmdlKGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IGUudGFyZ2V0LnNlbGVjdGVkT3B0aW9uLnZhbHVlO1xuICAgICAgICB0aGlzLnZhbHVlID0gc2VsZWN0ZWRWYWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLmZpcmVDb250ZXh0RXZlbnQoJ3NlbGVjdCcsIHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICAvLyBvblNlbGVjdGlvbkNoYW5nZShlKTogdm9pZCB7XG4gICAgLy8gICAgIHRoaXMudmFsdWUgPSBlLnRhcmdldC5zZWxlY3RlZFZhbHVlcy5tYXAoKGMpID0+IGMudmFsdWUpLmpvaW4oJywnKTtcbiAgICAvLyAgICAgdGhpcy5fcmFpc2VWYWx1ZUNoYW5nZWQoKTtcbiAgICAvLyB9XG5cbiAgICBvblNlbGVjdGVkQ2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5zZWxlY3RlZEl0ZW1zLm1hcCgoYykgPT4gKHR5cGVvZiBjID09PSAnc3RyaW5nJyA/IGMgOiBjLmlkKSkuam9pbignLCcpO1xuICAgICAgICB0aGlzLl9yYWlzZVZhbHVlQ2hhbmdlZCgpO1xuICAgIH1cbiAgICAvLyBJc1NlbGVjdGVkKGl0ZW0pOiBib29sZWFuIHtcbiAgICAvLyAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgIC8vICAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gICB9XG4gICAgLy8gICBjb25zdCBhcnIgPSB0aGlzLnZhbHVlLnNwbGl0KCcsJyk7XG4gICAgLy8gICByZXR1cm4gYXJyLmluZGV4T2YoaXRlbS5pZCkgPiAtMTtcbiAgICAvLyB9XG4gICAgZGlzcGxheUZ1bmMob2JqOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gb2JqLnR4dDtcbiAgICB9XG4gICAgdmFsdWVGdW5jKG9iajogeyBpZDogc3RyaW5nOyB0eHQ6IHN0cmluZyB9KTogYW55IHtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0RGF0YUxpc3QoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0b3JlID0gdGhpcy5jb250ZXh0LnN0b3JlO1xuICAgICAgICB0aGlzLmRhdGFMaXN0ID0gc3RvcmUuZGF0YVtzdG9yZS5yb290XTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmFpc2VWYWx1ZUNoYW5nZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdzZWxlY3QnLCB0aGlzLnZhbHVlKTtcbiAgICB9XG59XG4iLCI8ZmQtbXVsdGktaW5wdXRcbiAgICAjbXVsdGlJbnB1dFxuICAgIGlucHV0SWQ9XCJtdWx0aUlucHV0XCJcbiAgICBbZGlzYWJsZWRdPVwiKGRpc2FibGVPclJlYWRvbmx5JCB8IGFzeW5jKSEhXCJcbiAgICBbZHJvcGRvd25WYWx1ZXNdPVwiZGF0YUxpc3RcIlxuICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEl0ZW1zXCJcbiAgICBbZGlzcGxheUZuXT1cImRpc3BsYXlGdW5jXCJcbiAgICBbdmFsdWVGbl09XCJ2YWx1ZUZ1bmNcIlxuICAgIFtpdGVtVGVtcGxhdGVdPVwidGVtcGxhdGVcIlxuICAgIChvcGVuQ2hhbmdlKT1cIm9uT3BlbkNoYW5nZSgkZXZlbnQsIG11bHRpSW5wdXQpXCJcbiAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwib25TZWxlY3RlZENoYW5nZSgpXCJcbiAgICBbc3R5bGUubWF4LXdpZHRoLnB4XT1cIm1heFdpZHRoXCJcbj48L2ZkLW11bHRpLWlucHV0PlxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZSBsZXQtaXRlbT5cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlclwiPlxuICAgICAgICA8aW1nIFthdHRyUnRsXSAqbmdJZj1cIml0ZW0udXJsXCIgW3NyY109XCJpdGVtLnVybFwiIC8+XG4gICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+e3sgaXRlbS50eHQgfCBiYmJUcmFuc2xhdGUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
21
21
  type: ViewChild,
22
22
  args: ['inputRef', { read: ElementRef, static: true }]
23
23
  }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbnVtLWRlY2ltYWwtdWkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbnVtLWRlY2ltYWwtdWkvdWktbnVtLWRlY2ltYWwtdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbnVtLWRlY2ltYWwtdWkvdWktbnVtLWRlY2ltYWwtdWkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBTzNELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBbUI7SUFJNUQsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDaEQsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDUyxnQkFBZ0IsQ0FBQyxHQUFHO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7O29IQVZRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDhJQUNELFVBQVUsa0VDVjdDLHlpQkFhQTsyRkRKYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQyxRQUFRO3NCQURQLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTnVtYmVyQmFzZUNvbXBvbmVudCB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYnN1LXVpLW51bS1kZWNpbWFsLXVpJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdWktbnVtLWRlY2ltYWwtdWkuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3VpLW51bS1kZWNpbWFsLXVpLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVWlOdW1EZWNpbWFsVWlDb21wb25lbnQgZXh0ZW5kcyBOdW1iZXJCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAVmlld0NoaWxkKCdpbnB1dFJlZicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgaW5wdXRSZWY6IEVsZW1lbnRSZWY7XG4gICAgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQgPSB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCByYWlzZVZhbHVlQ2hhbmdlKHZhbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsKTtcbiAgICB9XG59XG4iLCI8aW5wdXRcclxuICAgICNpbnB1dFJlZlxyXG4gICAgZmQtZm9ybS1jb250cm9sXHJcbiAgICBbaWRdPVwiaWRcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cIlNldHRpbmcuTnVsbFRleHQgfHwgJydcIlxyXG4gICAgW2F0dHIucmVhZG9ubHldPVwiKHJlYWRvbmx5JCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBudWxsXCJcclxuICAgIFthdHRyLmRpc2FibGVkXT1cIihkaXNhYmxlJCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBudWxsXCJcclxuICAgIGNsYXNzPVwibnVtYmVyLWlucHV0XCJcclxuICAgIFtzdHlsZS5kaXJlY3Rpb25dPVwiU2V0dGluZy5Jc0x0ciA9PT0gdHJ1ZSA/ICdsdHInIDogbnVsbFwiXHJcbiAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXHJcbiAgICAoaW5wdXQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuLz5cclxuPGxhYmVsIGZkLWZvcm0tbGFiZWwgZmxleFNocmluaz1cIjBcIiAqbmdJZj1cIlNldHRpbmcuQ3VycmVuY3lTeW1ib2xcIj57eyBTZXR0aW5nLkN1cnJlbmN5U3ltYm9sIH19IDwvbGFiZWw+XHJcbiJdfQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbnVtLWRlY2ltYWwtdWkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbnVtLWRlY2ltYWwtdWkvdWktbnVtLWRlY2ltYWwtdWkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktbnVtLWRlY2ltYWwtdWkvdWktbnVtLWRlY2ltYWwtdWkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBTzNELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBbUI7SUFJNUQsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDaEQsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDUyxnQkFBZ0IsQ0FBQyxHQUFHO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7O29IQVZRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLDhJQUNELFVBQVUsa0VDVjdDLHlpQkFhQTsyRkRKYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUkvQyxRQUFRO3NCQURQLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE51bWJlckJhc2VDb21wb25lbnQgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtdWktbnVtLWRlY2ltYWwtdWknLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLW51bS1kZWNpbWFsLXVpLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3VpLW51bS1kZWNpbWFsLXVpLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlOdW1EZWNpbWFsVWlDb21wb25lbnQgZXh0ZW5kcyBOdW1iZXJCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0UmVmJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSlcclxuICAgIGlucHV0UmVmOiBFbGVtZW50UmVmO1xyXG4gICAgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50ID0gdGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgcmFpc2VWYWx1ZUNoYW5nZSh2YWwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsKTtcclxuICAgIH1cclxufVxyXG4iLCI8aW5wdXRcclxuICAgICNpbnB1dFJlZlxyXG4gICAgZmQtZm9ybS1jb250cm9sXHJcbiAgICBbaWRdPVwiaWRcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cIlNldHRpbmcuTnVsbFRleHQgfHwgJydcIlxyXG4gICAgW2F0dHIucmVhZG9ubHldPVwiKHJlYWRvbmx5JCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBudWxsXCJcclxuICAgIFthdHRyLmRpc2FibGVkXT1cIihkaXNhYmxlJCB8IGFzeW5jKSA9PT0gdHJ1ZSA/IHRydWUgOiBudWxsXCJcclxuICAgIGNsYXNzPVwibnVtYmVyLWlucHV0XCJcclxuICAgIFtzdHlsZS5kaXJlY3Rpb25dPVwiU2V0dGluZy5Jc0x0ciA9PT0gdHJ1ZSA/ICdsdHInIDogbnVsbFwiXHJcbiAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXHJcbiAgICAoaW5wdXQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuLz5cclxuPGxhYmVsIGZkLWZvcm0tbGFiZWwgZmxleFNocmluaz1cIjBcIiAqbmdJZj1cIlNldHRpbmcuQ3VycmVuY3lTeW1ib2xcIj57eyBTZXR0aW5nLkN1cnJlbmN5U3ltYm9sIH19IDwvbGFiZWw+XHJcbiJdfQ==