@elderbyte/ngx-starter 18.14.2 → 18.15.0

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 (321) hide show
  1. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +4 -4
  2. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +45 -48
  3. package/esm2022/lib/common/forms/elder-from-field-base.mjs +4 -4
  4. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +4 -4
  5. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +4 -4
  6. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +4 -4
  7. package/esm2022/lib/common/forms/form-field-base.component.mjs +4 -4
  8. package/esm2022/lib/common/forms/multi-model-base.component.mjs +4 -4
  9. package/esm2022/lib/common/forms/template-composite-control.mjs +4 -4
  10. package/esm2022/lib/common/forms/value-accessor-base.mjs +4 -4
  11. package/esm2022/lib/common/http/http-client-builder.service.mjs +4 -4
  12. package/esm2022/lib/common/http/http-client-pristine.mjs +4 -4
  13. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +4 -4
  14. package/esm2022/lib/common/url/elder-router.service.mjs +4 -4
  15. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +4 -4
  16. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +4 -4
  17. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +5 -5
  18. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +4 -4
  19. package/esm2022/lib/components/auditing/elder-audit.module.mjs +5 -5
  20. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +10 -10
  21. package/esm2022/lib/components/badge/elder-badge.directive.mjs +4 -4
  22. package/esm2022/lib/components/badge/elder-badge.module.mjs +5 -5
  23. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +4 -4
  24. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +5 -5
  25. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +4 -4
  26. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +4 -4
  27. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +4 -4
  28. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +5 -5
  29. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +4 -4
  30. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +19 -19
  31. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +5 -5
  32. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +4 -4
  33. package/esm2022/lib/components/chips/elder-chips.module.mjs +5 -5
  34. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +5 -5
  35. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +4 -4
  36. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +4 -4
  37. package/esm2022/lib/components/containers/elder-containers.module.mjs +5 -5
  38. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +4 -4
  39. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +4 -4
  40. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +4 -4
  41. package/esm2022/lib/components/csv/elder-csv.module.mjs +5 -5
  42. package/esm2022/lib/components/currency/elder-currency.module.mjs +5 -5
  43. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +4 -4
  44. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +5 -5
  45. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +4 -4
  46. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +4 -4
  47. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +4 -4
  48. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +4 -4
  49. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +4 -4
  50. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +4 -4
  51. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-dc.directive.mjs +4 -4
  52. package/esm2022/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.mjs +4 -4
  53. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +4 -4
  54. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +5 -5
  55. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +7 -7
  56. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +4 -4
  57. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +4 -4
  58. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +4 -4
  59. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +10 -10
  60. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +5 -5
  61. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +4 -4
  62. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +4 -4
  63. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +4 -4
  64. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +4 -4
  65. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +5 -5
  66. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +4 -4
  67. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +4 -4
  68. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +4 -4
  69. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +5 -5
  70. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +4 -4
  71. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +4 -4
  72. package/esm2022/lib/components/data-view/table/elder-center-cell.directive.mjs +4 -4
  73. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +4 -4
  74. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +4 -4
  75. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +4 -4
  76. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +4 -4
  77. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +4 -4
  78. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +4 -4
  79. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +4 -4
  80. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +4 -4
  81. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +4 -4
  82. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +5 -5
  83. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +4 -4
  84. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +4 -4
  85. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +5 -5
  86. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +4 -4
  87. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +4 -4
  88. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +4 -4
  89. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +4 -4
  90. package/esm2022/lib/components/errors/elder-error.module.mjs +5 -5
  91. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +4 -4
  92. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +4 -4
  93. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +5 -5
  94. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +4 -4
  95. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +4 -4
  96. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +4 -4
  97. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +4 -4
  98. package/esm2022/lib/components/files/elder-file-select.directive.mjs +4 -4
  99. package/esm2022/lib/components/files/elder-file.module.mjs +5 -5
  100. package/esm2022/lib/components/files/file-select/file-select.component.mjs +4 -4
  101. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +4 -4
  102. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +4 -4
  103. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +4 -4
  104. package/esm2022/lib/components/forms/directives/checkbox/elder-single-state-checkbox.directive.mjs +4 -4
  105. package/esm2022/lib/components/forms/directives/checkbox/elder-triple-state-checkbox.directive.mjs +4 -4
  106. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +4 -4
  107. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +4 -4
  108. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +4 -4
  109. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +4 -4
  110. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +4 -4
  111. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +4 -4
  112. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +5 -5
  113. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +4 -4
  114. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +4 -4
  115. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +4 -4
  116. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +4 -4
  117. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +4 -4
  118. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +4 -4
  119. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +4 -4
  120. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +4 -4
  121. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +4 -4
  122. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +4 -4
  123. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +4 -4
  124. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +4 -4
  125. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +4 -4
  126. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +4 -4
  127. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +4 -4
  128. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +4 -4
  129. package/esm2022/lib/components/forms/elder-forms.module.mjs +5 -5
  130. package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +4 -4
  131. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +4 -4
  132. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +4 -4
  133. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +4 -4
  134. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +4 -4
  135. package/esm2022/lib/components/forms/search/elder-search.module.mjs +5 -5
  136. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +4 -4
  137. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +4 -4
  138. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +4 -4
  139. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +5 -5
  140. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +4 -4
  141. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +4 -4
  142. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +5 -5
  143. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +4 -4
  144. package/esm2022/lib/components/headers/elder-header.module.mjs +5 -5
  145. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +4 -4
  146. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +5 -5
  147. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +4 -4
  148. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +4 -4
  149. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +4 -4
  150. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +4 -4
  151. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +4 -4
  152. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +4 -4
  153. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +4 -4
  154. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +4 -4
  155. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +4 -4
  156. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +4 -4
  157. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +5 -5
  158. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +4 -4
  159. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +4 -4
  160. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +5 -5
  161. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +4 -4
  162. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +4 -4
  163. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +5 -5
  164. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +4 -4
  165. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +4 -4
  166. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +4 -4
  167. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +4 -4
  168. package/esm2022/lib/components/iframes/iframe.service.mjs +4 -4
  169. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +4 -4
  170. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +4 -4
  171. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +5 -5
  172. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +5 -5
  173. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +4 -4
  174. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +4 -4
  175. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +5 -5
  176. package/esm2022/lib/components/labels/elder-labels.module.mjs +5 -5
  177. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +4 -4
  178. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +9 -16
  179. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +4 -4
  180. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +4 -4
  181. package/esm2022/lib/components/measures/elder-measures.module.mjs +9 -9
  182. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +4 -4
  183. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +4 -4
  184. package/esm2022/lib/components/measures/elder-unit.service.mjs +4 -4
  185. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +4 -4
  186. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +12 -18
  187. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +4 -4
  188. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +4 -4
  189. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +4 -4
  190. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +4 -4
  191. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +5 -5
  192. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +5 -5
  193. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +4 -4
  194. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +4 -4
  195. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +4 -4
  196. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +4 -4
  197. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +5 -5
  198. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +4 -4
  199. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +4 -4
  200. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +4 -4
  201. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +4 -4
  202. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +4 -4
  203. package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +4 -4
  204. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +4 -4
  205. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +4 -4
  206. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +5 -5
  207. package/esm2022/lib/components/page/exit-guard/page-exit-guard.module.mjs +5 -5
  208. package/esm2022/lib/components/page/exit-guard/page-exit-guard.service.mjs +4 -4
  209. package/esm2022/lib/components/page/exit-guard/page-exit-lock/page-exit-lock.component.mjs +4 -4
  210. package/esm2022/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.mjs +4 -4
  211. package/esm2022/lib/components/page/exit-guard/page-exit-lock-overview/page-exit-lock-overview.component.mjs +4 -4
  212. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +4 -4
  213. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +4 -4
  214. package/esm2022/lib/components/panels/elder-panel.module.mjs +5 -5
  215. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +4 -4
  216. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +4 -4
  217. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +10 -10
  218. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +4 -4
  219. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +5 -5
  220. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +4 -4
  221. package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +4 -4
  222. package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +4 -4
  223. package/esm2022/lib/components/select/elder-select-base.mjs +40 -24
  224. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +10 -10
  225. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +4 -4
  226. package/esm2022/lib/components/select/elder-select-value.directive.mjs +4 -4
  227. package/esm2022/lib/components/select/elder-select.module.mjs +5 -5
  228. package/esm2022/lib/components/select/filter/elder-chips-include-exclude.directive.mjs +4 -4
  229. package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +4 -4
  230. package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +4 -4
  231. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +10 -13
  232. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/chip-options-provider.mjs +4 -3
  233. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +22 -31
  234. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +24 -37
  235. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +4 -4
  236. package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +4 -4
  237. package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +4 -4
  238. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +4 -4
  239. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +4 -4
  240. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +4 -4
  241. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +4 -4
  242. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +30 -49
  243. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +4 -4
  244. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +4 -4
  245. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +5 -5
  246. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +4 -4
  247. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +4 -4
  248. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +4 -4
  249. package/esm2022/lib/components/shell/elder-shell.module.mjs +5 -5
  250. package/esm2022/lib/components/shell/elder-shell.service.mjs +4 -4
  251. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +4 -4
  252. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +13 -13
  253. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +4 -4
  254. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +4 -4
  255. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +4 -4
  256. package/esm2022/lib/components/tabs/elder-tab.module.mjs +5 -5
  257. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +4 -4
  258. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +4 -4
  259. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +4 -4
  260. package/esm2022/lib/components/theme/elder-theme.directive.mjs +4 -4
  261. package/esm2022/lib/components/theme/elder-theme.module.mjs +5 -5
  262. package/esm2022/lib/components/theme/elder-theme.service.mjs +4 -4
  263. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +4 -4
  264. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +9 -16
  265. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +4 -4
  266. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +10 -16
  267. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +12 -17
  268. package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.component.mjs +4 -4
  269. package/esm2022/lib/components/time/elder-interval-picker/interval-picker-binding/elder-interval-picker-binding.directive.mjs +4 -4
  270. package/esm2022/lib/components/time/elder-interval-picker/interval-picker-toggle/elder-interval-picker-toggle.component.mjs +4 -4
  271. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +10 -16
  272. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +10 -16
  273. package/esm2022/lib/components/time/elder-time.module.mjs +5 -5
  274. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +9 -16
  275. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +4 -4
  276. package/esm2022/lib/components/toasts/elder-toast.module.mjs +5 -5
  277. package/esm2022/lib/components/toasts/elder-toast.service.mjs +4 -4
  278. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +4 -4
  279. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +5 -5
  280. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +4 -4
  281. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +4 -4
  282. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +5 -5
  283. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +4 -4
  284. package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +4 -4
  285. package/esm2022/lib/features/kafent/access-token-provider.mjs +4 -4
  286. package/esm2022/lib/features/kafent/kafent-config.mjs +4 -4
  287. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +4 -4
  288. package/esm2022/lib/features/kafent/kafent-event.service.mjs +4 -4
  289. package/esm2022/lib/features/kafent/kafent.module.mjs +5 -5
  290. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +4 -4
  291. package/esm2022/lib/pipes/bytes.pipe.mjs +4 -4
  292. package/esm2022/lib/pipes/elder-pipes.module.mjs +11 -11
  293. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +4 -4
  294. package/esm2022/lib/pipes/elder-round.pipe.mjs +4 -4
  295. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +4 -4
  296. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +4 -4
  297. package/esm2022/lib/pipes/iso-duration.pipe.mjs +4 -4
  298. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +4 -4
  299. package/esm2022/lib/pipes/iso-interval.pipe.mjs +4 -4
  300. package/esm2022/lib/pipes/time-ago.pipe.mjs +4 -4
  301. package/esm2022/lib/pipes/time-duration.pipe.mjs +4 -4
  302. package/esm2022/lib/pipes/weight.pipe.mjs +4 -4
  303. package/fesm2022/elderbyte-ngx-starter.mjs +1256 -1313
  304. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  305. package/lib/common/forms/elder-form-field-control-base.directive.d.ts +14 -18
  306. package/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.d.ts +3 -7
  307. package/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.d.ts +3 -7
  308. package/lib/components/select/elder-select-base.d.ts +13 -12
  309. package/lib/components/select/multi/elder-multi-select-base.d.ts +2 -7
  310. package/lib/components/select/multi/elder-multi-select-chip-options/chip-options-provider.d.ts +2 -1
  311. package/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.d.ts +5 -9
  312. package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +7 -11
  313. package/lib/components/select/single/elder-select/elder-select.component.d.ts +8 -15
  314. package/lib/components/time/duration/elder-duration-input/elder-duration-input.component.d.ts +2 -7
  315. package/lib/components/time/elder-date-time-input/elder-date-time-input.component.d.ts +3 -7
  316. package/lib/components/time/elder-interval-input/elder-interval-input.component.d.ts +3 -7
  317. package/lib/components/time/elder-local-date-input/elder-local-date-input.component.d.ts +3 -7
  318. package/lib/components/time/elder-local-time-input/elder-local-time-input.component.d.ts +3 -7
  319. package/lib/components/time/period/elder-period-input/elder-period-input.component.d.ts +2 -7
  320. package/package.json +1 -1
  321. package/src/lib/components/select/multi/elder-select-include-exclude-chip/elder-select-include-exclude-chip.component.scss +0 -0
@@ -115,8 +115,8 @@ export class ElderChipsIncludeExcludeDirective {
115
115
  findFilterEntityById(id) {
116
116
  return this.selectionModel.findStateById(id);
117
117
  }
118
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderChipsIncludeExcludeDirective, deps: [{ token: i1.ElderMultiSelectChipsComponent }, { token: i2.IncludeExcludeSelectionModel }, { token: i0.ViewContainerRef }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
119
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: ElderChipsIncludeExcludeDirective, isStandalone: true, selector: "[elderChipsIncludeExclude]", inputs: { cycleStrategy: "cycleStrategy" }, providers: [
118
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderChipsIncludeExcludeDirective, deps: [{ token: i1.ElderMultiSelectChipsComponent }, { token: i2.IncludeExcludeSelectionModel }, { token: i0.ViewContainerRef }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
119
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ElderChipsIncludeExcludeDirective, isStandalone: true, selector: "[elderChipsIncludeExclude]", inputs: { cycleStrategy: "cycleStrategy" }, providers: [
120
120
  {
121
121
  provide: IncludeExcludeSelectionModel,
122
122
  useFactory: (existing) => {
@@ -126,7 +126,7 @@ export class ElderChipsIncludeExcludeDirective {
126
126
  },
127
127
  ], exportAs: ["elderChipsIncludeExclude"], ngImport: i0 }); }
128
128
  }
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderChipsIncludeExcludeDirective, decorators: [{
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderChipsIncludeExcludeDirective, decorators: [{
130
130
  type: Directive,
131
131
  args: [{
132
132
  selector: '[elderChipsIncludeExclude]',
@@ -145,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
145
145
  }], ctorParameters: () => [{ type: i1.ElderMultiSelectChipsComponent }, { type: i2.IncludeExcludeSelectionModel }, { type: i0.ViewContainerRef }, { type: i0.DestroyRef }], propDecorators: { cycleStrategy: [{
146
146
  type: Input
147
147
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItY2hpcHMtaW5jbHVkZS1leGNsdWRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L2ZpbHRlci9lbGRlci1jaGlwcy1pbmNsdWRlLWV4Y2x1ZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQW9CLE1BQU0sZUFBZSxDQUFBO0FBR2xHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1FQUFtRSxDQUFBO0FBQ3BILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzVELE9BQU8sNEJBQTRCLE1BQU0sb0NBQW9DLENBQUE7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFFTCw0QkFBNEIsRUFFNUIsbUJBQW1CLEdBQ3BCLE1BQU0sbUNBQW1DLENBQUE7Ozs7QUFFMUM7OztHQUdHO0FBZUgsTUFBTSxPQUFPLGlDQUFpQztJQVc1Qzs7OztnRkFJNEU7SUFFNUUsWUFDa0IscUJBQXFELEVBQ3JELGNBQTRDLEVBQzVDLEdBQXFCLEVBQ3BCLFVBQXNCO1FBSHZCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBZ0M7UUFDckQsbUJBQWMsR0FBZCxjQUFjLENBQThCO1FBQzVDLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFwQnpDOzs7O29GQUk0RTtRQUUzRCxRQUFHLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFD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LFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsNEJBQTRCLENBQUMsQ0FBQzt5QkFDdkU7cUJBQ0Y7aUJBQ0Y7c01BdUNZLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIElucHV0LCBPcHRpb25hbCwgU2tpcFNlbGYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50IH0gZnJvbSAnLi4vbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQnXG5pbXBvcnQgeyBTZWxlY3RDaGlwU3BlYyB9IGZyb20gJy4uL211bHRpL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy9zZWxlY3QtY2hpcC1zcGVjJ1xuaW1wb3J0IHsgRWxkZXJGaWx0ZXJDaGlwVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2VsZGVyLWZpbHRlci1jaGlwLXRlbXBsYXRlL2VsZGVyLWZpbHRlci1jaGlwLXRlbXBsYXRlLmNvbXBvbmVudCdcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJ1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgRWxkZXJDaGlwRmlsdGVyU3R5bGVSZXNvbHZlciBmcm9tICcuL2VsZGVyLWNoaXAtZmlsdGVyLXN0eWxlLXJlc29sdmVyJ1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJ1xuaW1wb3J0IHtcbiAgSW5jbHVkZUV4Y2x1ZGVDeWNsZVN0cmF0ZWd5LFxuICBJbmNsdWRlRXhjbHVkZVNlbGVjdGlvbk1vZGVsLFxuICBJbmNsdWRlRXhjbHVkZVN0YXRlLFxuICBJbmNsdWRlRXhjbHVkZVZhbHVlLFxufSBmcm9tICcuL2luY2x1ZGUtZXhjbHVkZS1zZWxlY3Rpb24tbW9kZWwnXG5cbi8qKlxuICogQWRkcyB0aGUgYWJpbGl0eSB0byB0b2dnbGUgc2VsZWN0IGNoaXBzIG9mIGEgRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50IGJ5XG4gKiBiaW5kaW5nIGl0IHRvIGEgSW5jbHVkZUV4Y2x1ZGVTZWxlY3Rpb25Nb2RlbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyQ2hpcHNJbmNsdWRlRXhjbHVkZV0nLFxuICBleHBvcnRBczogJ2VsZGVyQ2hpcHNJbmNsdWRlRXhjbHVkZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEluY2x1ZGVFeGNsdWRlU2VsZWN0aW9uTW9kZWwsXG4gICAgICB1c2VGYWN0b3J5OiAoZXhpc3Rpbmc6IEluY2x1ZGVFeGNsdWRlU2VsZWN0aW9uTW9kZWwpID0+IHtcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nID8/IG5ldyBJbmNsdWRlRXhjbHVkZVNlbGVjdGlvbk1vZGVsKCdGVUxMX0NZQ0xFJylcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgSW5jbHVkZUV4Y2x1ZGVTZWxlY3Rpb25Nb2RlbF1dLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQ2hpcHNJbmNsdWRlRXhjbHVkZURpcmVjdGl2ZTxUID0gYW55PiB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpcFN0eWxlUmVzb2x2ZXIgPSBuZXcgRWxkZXJDaGlwRmlsdGVyU3R5bGVSZXNvbHZlcigpXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGVsZGVyTXVsdGlTZWxlY3RDaGlwczogRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50LFxuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25Nb2RlbDogSW5jbHVkZUV4Y2x1ZGVTZWxlY3Rpb25Nb2RlbCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZjogRGVzdHJveVJlZlxuICApIHtcbiAgICB0aGlzLnNldHVwRmlsdGVyQ2hpcHMoKVxuICAgIHRoaXMuc2V0dXBFbGRlck11bHRpU2VsZWN0Q2hpcHNMaXN0ZW5lcnMoKVxuXG4gICAgc2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpLCBkZWJvdW5jZVRpbWUoMTApKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHN0YXRlcykgPT4gdGhpcy5yZWZyZXNoQ2hpcHMoc3RhdGVzKSxcbiAgICB9KVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjeWNsZVN0cmF0ZWd5KHN0cmF0ZWd5OiBJbmNsdWRlRXhjbHVkZUN5Y2xlU3RyYXRlZ3kpIHtcbiAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLnN0cmF0ZWd5ID0gc3RyYXRlZ3lcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc2V0dXBGaWx0ZXJDaGlwcygpIHtcbiAgICBjb25zdCBjaGlwVGVtcGxhdGUgPSB0aGlzLmNyZWF0ZUZpbHRlckNoaXBUZW1wbGF0ZSgpXG4gICAgdGhpcy5lbGRlck11bHRpU2VsZWN0Q2hpcHMuY2hpcFNwZWNGbiA9IChlbnRpdHk6IFQpID0+IHRoaXMucmVzb2x2ZUNoaXBTcGVjKGVudGl0eSlcblxuICAgIGNoaXBUZW1wbGF0ZS5hdmF0YXJSZWYkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICAgIGZpbHRlcigoYXZhdGFyUmVmKSA9PiAhIWF2YXRhclJlZiksXG4gICAgICAgIGZpcnN0KClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGF2YXRhclJlZikgPT4ge1xuICAgICAgICB0aGlzLmVsZGVyTXVsdGlTZWxlY3RDaGlwcy5jaGlwQXZhdGFyVGVtcGxhdGUgPSBhdmF0YXJSZWZcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZpbHRlckNoaXBUZW1wbGF0ZSgpOiBFbGRlckZpbHRlckNoaXBUZW1wbGF0ZUNvbXBvbmVudCB7XG4gICAgY29uc3QgcmVmID0gdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KEVsZGVyRmlsdGVyQ2hpcFRlbXBsYXRlQ29tcG9uZW50KVxuICAgIHJlZi5zZXRJbnB1dCgnYXZhdGFyUmVzb2x2ZXJGbicsIChpZDogc3RyaW5nKSA9PiB0aGlzLnJlc29sdmVBdmF0YXJJY29uKGlkKSlcbiAgICByZXR1cm4gcmVmLmluc3RhbmNlXG4gIH1cblxuICBwcml2YXRlIHNldHVwRWxkZXJNdWx0aVNlbGVjdENoaXBzTGlzdGVuZXJzKCkge1xuICAgIHRoaXMuZWxkZXJNdWx0aVNlbGVjdENoaXBzLmN1cnJlbnRDbGlja2VkXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKGVudGl0eSkgPT4gdGhpcy5oYW5kbGVDaGlwQ2xpY2soZW50aXR5KSlcblxuICAgIHRoaXMuZWxkZXJNdWx0aVNlbGVjdENoaXBzLmVudGl0eUlkc1VwZGF0ZWRcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyBVcGRhdGVkIGlzIGEgdXNlciBldmVudCB3aGVuIGVudHJpZXMgYXJlIG1vZGlmaWVkXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgICBmaWx0ZXIoKGVudGl0eUlkcykgPT4gISFlbnRpdHlJZHMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChlbnRpdHlJZHMpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5pbml0VG8oZW50aXR5SWRzKVxuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUNoaXBTcGVjKGVudGl0eTogVCk6IFNlbGVjdENoaXBTcGVjIHtcbiAgICByZXR1cm4gdGhpcy5jaGlwU3R5bGVSZXNvbHZlci5yZXNvbHZlQ2hpcFNwZWModGhpcy5maW5kRmlsdGVyRW50aXR5QnlFbnRpdHkoZW50aXR5KSlcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUF2YXRhckljb24oaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2hpcFN0eWxlUmVzb2x2ZXIucmVzb2x2ZUF2YXRhckljb24odGhpcy5maW5kRmlsdGVyRW50aXR5QnlJZChpZCkpXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNoaXBDbGljayhlbnRpdHk6IFQpIHtcbiAgICBjb25zdCBlbnRpdHlJZCA9IHRoaXMuZWxkZXJNdWx0aVNlbGVjdENoaXBzLmdldEVudGl0eUlkKGVudGl0eSlcbiAgICBjb25zdCBuZXdTdGF0ZSA9IHRoaXMuc2VsZWN0aW9uTW9kZWwuY3ljbGVFeGlzdGluZyhlbnRpdHlJZClcbiAgICBpZiAoIW5ld1N0YXRlKSB7XG4gICAgICB0aGlzLmxvZy53YXJuKCdUaGUgZW50aXR5IGlkIFwiJyArIGVudGl0eUlkICsgJ1wiIGlzIG5vdCBpbiB0aGUgc2VsZWN0aW9uJylcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hDaGlwcyhzZWxlY3RlZDogSW5jbHVkZUV4Y2x1ZGVTdGF0ZVtdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZW5zdXJlQ2hpcHNOb0NoYW5nZXMoc2VsZWN0ZWQpKSB7XG4gICAgICB0aGlzLmVsZGVyTXVsdGlTZWxlY3RDaGlwcy5yZWZyZXNoKClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZUNoaXBzTm9DaGFuZ2VzKHNlbGVjdGVkOiBJbmNsdWRlRXhjbHVkZVN0YXRlW10pOiBib29sZWFuIHtcbiAgICBjb25zdCByZXF1aXJlZElkcyA9IHNlbGVjdGVkXG4gICAgICAuZmlsdGVyKChzKSA9PiBzLm1vZGUgIT0gSW5jbHVkZUV4Y2x1ZGVWYWx1ZS5ORVVUUkFMKVxuICAgICAgLm1hcCgocykgPT4gcy5pZClcblxuICAgIGNvbnN0IGN1cnJlbnRJZHMgPSB0aGlzLmVsZGVyTXVsdGlTZWxlY3RDaGlwcy5lbnRpdHlJZHMgPz8gW11cbiAgICBjb25zdCBjdXJyZW50SWRTZXQgPSBuZXcgU2V0PHN0cmluZz4oY3VycmVudElkcylcblxuICAgIGNvbnN0IG1pc3NpbmdJZHMgPSByZXF1aXJlZElkcy5maWx0ZXIoKHJlcXVpcmVkKSA9PiAhY3VycmVudElkU2V0LmhhcyhyZXF1aXJlZCkpXG5cbiAgICBpZiAobWlzc2luZ0lkcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmVsZGVyTXVsdGlTZWxlY3RDaGlwcy5lbnRpdHlJZHMgPSBbLi4uY3VycmVudElkcywgLi4ubWlzc2luZ0lkc11cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZEZpbHRlckVudGl0eUJ5RW50aXR5KGVudGl0eTogVCk6IEluY2x1ZGVFeGNsdWRlU3RhdGUge1xuICAgIGNvbnN0IHNlYXJjaGVkSWQgPSB0aGlzLmVsZGVyTXVsdGlTZWxlY3RDaGlwcy5nZXRFbnRpdHlJZChlbnRpdHkpXG4gICAgcmV0dXJuIHRoaXMuZmluZEZpbHRlckVudGl0eUJ5SWQoc2VhcmNoZWRJZClcbiAgfVxuXG4gIHByaXZhdGUgZmluZEZpbHRlckVudGl0eUJ5SWQoaWQ6IHN0cmluZyk6IEluY2x1ZGVFeGNsdWRlU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbk1vZGVsLmZpbmRTdGF0ZUJ5SWQoaWQpXG4gIH1cbn1cbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItY2hpcHMtaW5jbHVkZS1leGNsdWRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L2ZpbHRlci9lbGRlci1jaGlwcy1pbmNsdWRlLWV4Y2x1ZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxTQUFTLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQW9CLE1BQU0sZUFBZSxDQUFBO0FBR2xHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1FQUFtRSxDQUFBO0FBQ3BILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzVELE9BQU8sNEJBQTRCLE1BQU0sb0NBQW9DLENBQUE7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFFTCw0QkFBNEIsRUFFNUIsbUJBQW1CLEdBQ3BCLE1BQU0sbUNBQW1DLENBQUE7Ozs7QUFFMUM7OztHQUdHO0FBZUgsTUFBTSxPQUFPLGlDQUFpQztJQVc1Qzs7OztnRkFJNEU7SUFFNUUsWUFDa0IscUJBQXFELEVBQ3JELGNBQTRDLEVBQzVDLEdBQXFCLEVBQ3BCLFVBQXNCO1FBSHZCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBZ0M7UUFDckQsbUJBQWMsR0FBZCxjQUFjLENBQThCO1FBQzVDLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFwQnpDOzs7O29GQUk0RTtRQUUzRCxRQUFHLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFD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LFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsNEJBQTRCLENBQUMsQ0FBQzt5QkFDdkU7cUJBQ0Y7aUJBQ0Y7c01BdUNZLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIElucHV0LCBPcHRpb25hbCwgU2tpcFNlbGYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50IH0gZnJvbSAnLi4vbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQnXG5pbXBvcnQgeyBTZWxlY3RDaGlwU3BlYyB9IGZyb20gJy4uL211bHRpL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy9zZWxlY3QtY2hpcC1zcGVjJ1xuaW1wb3J0IHsgRWxkZXJGaWx0ZXJDaGlwVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICcuL2VsZGVyLWZpbHRlci1jaGlwLXRlbXBsYXRlL2VsZGVyLWZpbHRlci1jaGlwLXRlbXBsYXRlLmNvbXBvbmVudCdcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJ1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgRWxkZXJDaGlwRmlsdGVyU3R5bGVSZXNvbHZlciBmcm9tICcuL2VsZGVyLWNoaXAtZmlsdGVyLXN0eWxlLXJlc29sdmVyJ1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJ1xuaW1wb3J0IHtcbiAgSW5jbHVkZUV4Y2x1ZGVDeWNsZVN0cmF0ZWd5LFxuICBJbmNsdWRlRXhjbHVkZVNlbGVjdGlvbk1vZGVsLFxuICBJbmNsdWRlRXhjbHVkZVN0YXRlLFxuICBJbmNsdWRlRXhjbHVkZVZhbHVlLFxufSBmcm9tICcuL2luY2x1ZGUtZXhjbHVkZS1zZWxlY3Rpb24tbW9kZWwnXG5cbi8qKlxuICogQWRkcyB0aGUgYWJpbGl0eSB0byB0b2dnbGUgc2VsZWN0IGNoaXBzIG9mIGEgRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50IGJ5XG4gKiBiaW5kaW5nIGl0IHRvIGEgSW5jbHVkZUV4Y2x1ZGVTZWxlY3Rpb25Nb2RlbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyQ2hpcHNJbmNsdWRlRXhjbHVkZV0nLFxuICBleHBvcnRBczogJ2VsZGVyQ2hpcHNJbmNsdWRlRXhjbHVkZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEluY2x1ZGVFeGNsdWRlU2VsZWN0aW9uTW9kZWwsXG4gICAgICB1c2VGYWN0b3J5OiAoZXhpc3Rpbmc6IEluY2x1ZGVFeGNsdWRlU2VsZWN0aW9uTW9kZWwpID0+IHtcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nID8/IG5ldyBJbmNsdWRlRXhjbHVkZVNlbGVjdGlvbk1vZGVsKCdGVUxMX0NZQ0xFJylcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgSW5jbHVkZUV4Y2x1ZGVTZWxlY3Rpb25Nb2RlbF1dLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQ2hpcHNJbmNsdWRlRXhjbHVkZURpcmVjdGl2ZTxUID0gYW55PiB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpcFN0eWxlUmVzb2x2ZXIgPSBuZXcgRWxkZXJDaGlwRmlsdGVyU3R5bGVSZXNvbHZlcigpXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGVsZGVyTXVsdGlTZWxlY3RDaGlwczogRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50LFxuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25Nb2RlbDogSW5jbHVkZUV4Y2x1ZGVTZWxlY3Rpb25Nb2RlbCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZjogRGVzdHJveVJlZlxuICApIHtcbiAgICB0aGlzLnNldHVwRmlsdGVyQ2hpcHMoKVxuICAgIHRoaXMuc2V0dXBFbGRlck11bHRpU2VsZWN0Q2hpcHNMaXN0ZW5lcnMoKVxuXG4gICAgc2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpLCBkZWJvdW5jZVRpbWUoMTApKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHN0YXRlcykgPT4gdGhpcy5yZWZyZXNoQ2hpcHMoc3RhdGVzKSxcbiAgICB9KVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjeWNsZVN0cmF0ZWd5KHN0cmF0ZWd5OiBJbmNsdWRlRXhjbHVkZUN5Y2xlU3RyYXRlZ3kpIHtcbiAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLnN0cmF0ZWd5ID0gc3RyYXRlZ3lcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc2V0dXBGaWx0ZXJDaGlwcygpOiB2b2lkIHtcbiAgICBjb25zdCBjaGlwVGVtcGxhdGUgPSB0aGlzLmNyZWF0ZUZpbHRlckNoaXBUZW1wbGF0ZSgpXG4gICAgdGhpcy5lbGRlck11bHRpU2VsZWN0Q2hpcHMuY2hpcFNwZWNGbiA9IChlbnRpdHk6IFQpID0+IHRoaXMucmVzb2x2ZUNoaXBTcGVjKGVudGl0eSlcblxuICAgIGNoaXBUZW1wbGF0ZS5hdmF0YXJSZWYkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICAgIGZpbHRlcigoYXZhdGFyUmVmKSA9PiAhIWF2YXRhclJlZiksXG4gICAgICAgIGZpcnN0KClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGF2YXRhclJlZikgPT4ge1xuICAgICAgICB0aGlzLmVsZGVyTXVsdGlTZWxlY3RDaGlwcy5jaGlwQXZhdGFyVGVtcGxhdGUgPSBhdmF0YXJSZWZcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZpbHRlckNoaXBUZW1wbGF0ZSgpOiBFbGRlckZpbHRlckNoaXBUZW1wbGF0ZUNvbXBvbmVudCB7XG4gICAgY29uc3QgcmVmID0gdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KEVsZGVyRmlsdGVyQ2hpcFRlbXBsYXRlQ29tcG9uZW50KVxuICAgIHJlZi5zZXRJbnB1dCgnYXZhdGFyUmVzb2x2ZXJGbicsIChpZDogc3RyaW5nKSA9PiB0aGlzLnJlc29sdmVBdmF0YXJJY29uKGlkKSlcbiAgICByZXR1cm4gcmVmLmluc3RhbmNlXG4gIH1cblxuICBwcml2YXRlIHNldHVwRWxkZXJNdWx0aVNlbGVjdENoaXBzTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuZWxkZXJNdWx0aVNlbGVjdENoaXBzLmN1cnJlbnRDbGlja2VkXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKGVudGl0eSkgPT4gdGhpcy5oYW5kbGVDaGlwQ2xpY2soZW50aXR5KSlcblxuICAgIHRoaXMuZWxkZXJNdWx0aVNlbGVjdENoaXBzLmVudGl0eUlkc1VwZGF0ZWRcbiAgICAgIC5waXBlKFxuICAgICAgICAvLyBVcGRhdGVkIGlzIGEgdXNlciBldmVudCB3aGVuIGVudHJpZXMgYXJlIG1vZGlmaWVkXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgICBmaWx0ZXIoKGVudGl0eUlkcykgPT4gISFlbnRpdHlJZHMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChlbnRpdHlJZHMpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5pbml0VG8oZW50aXR5SWRzKVxuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUNoaXBTcGVjKGVudGl0eTogVCk6IFNlbGVjdENoaXBTcGVjIHtcbiAgICByZXR1cm4gdGhpcy5jaGlwU3R5bGVSZXNvbHZlci5yZXNvbHZlQ2hpcFNwZWModGhpcy5maW5kRmlsdGVyRW50aXR5QnlFbnRpdHkoZW50aXR5KSlcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUF2YXRhckljb24oaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2hpcFN0eWxlUmVzb2x2ZXIucmVzb2x2ZUF2YXRhckljb24odGhpcy5maW5kRmlsdGVyRW50aXR5QnlJZChpZCkpXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUNoaXBDbGljayhlbnRpdHk6IFQpOiB2b2lkIHtcbiAgICBjb25zdCBlbnRpdHlJZCA9IHRoaXMuZWxkZXJNdWx0aVNlbGVjdENoaXBzLmdldEVudGl0eUlkKGVudGl0eSlcbiAgICBjb25zdCBuZXdTdGF0ZSA9IHRoaXMuc2VsZWN0aW9uTW9kZWwuY3ljbGVFeGlzdGluZyhlbnRpdHlJZClcbiAgICBpZiAoIW5ld1N0YXRlKSB7XG4gICAgICB0aGlzLmxvZy53YXJuKCdUaGUgZW50aXR5IGlkIFwiJyArIGVudGl0eUlkICsgJ1wiIGlzIG5vdCBpbiB0aGUgc2VsZWN0aW9uJylcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hDaGlwcyhzZWxlY3RlZDogSW5jbHVkZUV4Y2x1ZGVTdGF0ZVtdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZW5zdXJlQ2hpcHNOb0NoYW5nZXMoc2VsZWN0ZWQpKSB7XG4gICAgICB0aGlzLmVsZGVyTXVsdGlTZWxlY3RDaGlwcy5yZWZyZXNoKClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZUNoaXBzTm9DaGFuZ2VzKHNlbGVjdGVkOiBJbmNsdWRlRXhjbHVkZVN0YXRlW10pOiBib29sZWFuIHtcbiAgICBjb25zdCByZXF1aXJlZElkcyA9IHNlbGVjdGVkXG4gICAgICAuZmlsdGVyKChzKSA9PiBzLm1vZGUgIT0gSW5jbHVkZUV4Y2x1ZGVWYWx1ZS5ORVVUUkFMKVxuICAgICAgLm1hcCgocykgPT4gcy5pZClcblxuICAgIGNvbnN0IGN1cnJlbnRJZHMgPSB0aGlzLmVsZGVyTXVsdGlTZWxlY3RDaGlwcy5lbnRpdHlJZHMgPz8gW11cbiAgICBjb25zdCBjdXJyZW50SWRTZXQgPSBuZXcgU2V0PHN0cmluZz4oY3VycmVudElkcylcblxuICAgIGNvbnN0IG1pc3NpbmdJZHMgPSByZXF1aXJlZElkcy5maWx0ZXIoKHJlcXVpcmVkKSA9PiAhY3VycmVudElkU2V0LmhhcyhyZXF1aXJlZCkpXG5cbiAgICBpZiAobWlzc2luZ0lkcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmVsZGVyTXVsdGlTZWxlY3RDaGlwcy5lbnRpdHlJZHMgPSBbLi4uY3VycmVudElkcywgLi4ubWlzc2luZ0lkc11cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmluZEZpbHRlckVudGl0eUJ5RW50aXR5KGVudGl0eTogVCk6IEluY2x1ZGVFeGNsdWRlU3RhdGUge1xuICAgIGNvbnN0IHNlYXJjaGVkSWQgPSB0aGlzLmVsZGVyTXVsdGlTZWxlY3RDaGlwcy5nZXRFbnRpdHlJZChlbnRpdHkpXG4gICAgcmV0dXJuIHRoaXMuZmluZEZpbHRlckVudGl0eUJ5SWQoc2VhcmNoZWRJZClcbiAgfVxuXG4gIHByaXZhdGUgZmluZEZpbHRlckVudGl0eUJ5SWQoaWQ6IHN0cmluZyk6IEluY2x1ZGVFeGNsdWRlU3RhdGUge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbk1vZGVsLmZpbmRTdGF0ZUJ5SWQoaWQpXG4gIH1cbn1cbiJdfQ==
@@ -38,14 +38,14 @@ export class ElderFilterChipTemplateComponent {
38
38
  return 'help_outline';
39
39
  }
40
40
  }
41
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderFilterChipTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", type: ElderFilterChipTemplateComponent, isStandalone: true, selector: "elder-filter-chip-template", inputs: { avatarResolverFn: { classPropertyName: "avatarResolverFn", publicName: "avatarResolverFn", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "avatarRef", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<mat-icon *elderSelectChipAvatar=\"let chipModel\" class=\"material-icons-outlined\">\n {{ currentIcon(chipModel?.value?.id) }}\n</mat-icon>\n", styles: [".elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elder-trailing-icon{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color);opacity:.54}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: ElderSelectChipAvatarDirective, selector: "[elderSelectChipAvatar]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderFilterChipTemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: ElderFilterChipTemplateComponent, isStandalone: true, selector: "elder-filter-chip-template", inputs: { avatarResolverFn: { classPropertyName: "avatarResolverFn", publicName: "avatarResolverFn", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "avatarRef", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<mat-icon *elderSelectChipAvatar=\"let chipModel\" class=\"material-icons-outlined\">\n {{ currentIcon(chipModel?.value?.id) }}\n</mat-icon>\n", styles: [".elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elder-trailing-icon{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color);opacity:.54}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: ElderSelectChipAvatarDirective, selector: "[elderSelectChipAvatar]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43
43
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderFilterChipTemplateComponent, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderFilterChipTemplateComponent, decorators: [{
45
45
  type: Component,
46
46
  args: [{ selector: 'elder-filter-chip-template', standalone: true, imports: [MatIcon, ElderSelectChipAvatarDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-icon *elderSelectChipAvatar=\"let chipModel\" class=\"material-icons-outlined\">\n {{ currentIcon(chipModel?.value?.id) }}\n</mat-icon>\n", styles: [".elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elder-trailing-icon{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color);opacity:.54}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
47
47
  }], propDecorators: { avatarRef: [{
48
48
  type: ViewChild,
49
49
  args: [ElderSelectChipAvatarDirective, { read: TemplateRef, static: true }]
50
50
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZmlsdGVyLWNoaXAtdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvZmlsdGVyL2VsZGVyLWZpbHRlci1jaGlwLXRlbXBsYXRlL2VsZGVyLWZpbHRlci1jaGlwLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L2ZpbHRlci9lbGRlci1maWx0ZXItY2hpcC10ZW1wbGF0ZS9lbGRlci1maWx0ZXItY2hpcC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ2hELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBOztBQVVsRixNQUFNLE9BQU8sZ0NBQWdDO0lBUjdDO1FBU0U7Ozs7b0ZBSTRFO1FBRXBFLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQW1CLElBQUksQ0FBQyxDQUFBO1FBQzFELHFCQUFnQixHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTBCLENBQUE7S0ErQm5FO0lBN0JDOzs7O2dGQUk0RTtJQUU1RSxJQUNXLFNBQVMsQ0FBQyxTQUEyQjtRQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUN4QyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLFdBQVcsQ0FBQyxFQUFVO1FBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQ25DLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbEMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFBO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxjQUFjLENBQUE7UUFDdkIsQ0FBQztJQUNILENBQUM7OEdBdENVLGdDQUFnQztrR0FBaEMsZ0NBQWdDLHFTQWdCaEMsOEJBQThCLDJCQUFVLFdBQVcsMkNDN0JoRSxpSkFHQSxvY0RPWSxPQUFPLDJJQUFFLDhCQUE4Qjs7MkZBR3RDLGdDQUFnQztrQkFSNUMsU0FBUzsrQkFDRSw0QkFBNEIsY0FHMUIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLDhCQUE4QixDQUFDLG1CQUNqQyx1QkFBdUIsQ0FBQyxNQUFNOzhCQW1CcEMsU0FBUztzQkFEbkIsU0FBUzt1QkFBQyw4QkFBOEIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IEVsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2VsZGVyLXNlbGVjdC1jaGlwLmRpcmVjdGl2ZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItZmlsdGVyLWNoaXAtdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItZmlsdGVyLWNoaXAtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1maWx0ZXItY2hpcC10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0SWNvbiwgRWxkZXJTZWxlY3RDaGlwQXZhdGFyRGlyZWN0aXZlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRmlsdGVyQ2hpcFRlbXBsYXRlQ29tcG9uZW50IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBfYXZhdGFyUmVmJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4obnVsbClcbiAgcHVibGljIGF2YXRhclJlc29sdmVyRm4gPSBpbnB1dC5yZXF1aXJlZDwoaWQ6IHN0cmluZykgPT4gc3RyaW5nPigpXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQFZpZXdDaGlsZChFbGRlclNlbGVjdENoaXBBdmF0YXJEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgc2V0IGF2YXRhclJlZihhdmF0YXJSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl9hdmF0YXJSZWYkLm5leHQoYXZhdGFyUmVmKVxuICB9XG5cbiAgcHVibGljIGdldCBhdmF0YXJSZWYkKCk6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55Pj4ge1xuICAgIHJldHVybiB0aGlzLl9hdmF0YXJSZWYkLmFzT2JzZXJ2YWJsZSgpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY3VycmVudEljb24oaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZnVuID0gdGhpcy5hdmF0YXJSZXNvbHZlckZuKClcbiAgICBpZiAoaWQgIT0gbnVsbCB8fCBpZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmdW4gPyBmdW4oaWQpIDogJ2hlbHBfb3V0bGluZSdcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdoZWxwX291dGxpbmUnXG4gICAgfVxuICB9XG59XG4iLCI8bWF0LWljb24gKmVsZGVyU2VsZWN0Q2hpcEF2YXRhcj1cImxldCBjaGlwTW9kZWxcIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+XG4gIHt7IGN1cnJlbnRJY29uKGNoaXBNb2RlbD8udmFsdWU/LmlkKSB9fVxuPC9tYXQtaWNvbj5cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZmlsdGVyLWNoaXAtdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvZmlsdGVyL2VsZGVyLWZpbHRlci1jaGlwLXRlbXBsYXRlL2VsZGVyLWZpbHRlci1jaGlwLXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L2ZpbHRlci9lbGRlci1maWx0ZXItY2hpcC10ZW1wbGF0ZS9lbGRlci1maWx0ZXItY2hpcC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ2hELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFBOztBQVVsRixNQUFNLE9BQU8sZ0NBQWdDO0lBUjdDO1FBU0U7Ozs7b0ZBSTRFO1FBRXBFLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQW1CLElBQUksQ0FBQyxDQUFBO1FBQzFELHFCQUFnQixHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTBCLENBQUE7S0ErQm5FO0lBN0JDOzs7O2dGQUk0RTtJQUU1RSxJQUNXLFNBQVMsQ0FBQyxTQUEyQjtRQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUN4QyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLFdBQVcsQ0FBQyxFQUFVO1FBQzNCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1FBQ25DLElBQUksRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbEMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFBO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxjQUFjLENBQUE7UUFDdkIsQ0FBQztJQUNILENBQUM7K0dBdENVLGdDQUFnQzttR0FBaEMsZ0NBQWdDLHFTQWdCaEMsOEJBQThCLDJCQUFVLFdBQVcsMkNDN0JoRSxpSkFHQSxvY0RPWSxPQUFPLDJJQUFFLDhCQUE4Qjs7NEZBR3RDLGdDQUFnQztrQkFSNUMsU0FBUzsrQkFDRSw0QkFBNEIsY0FHMUIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLDhCQUE4QixDQUFDLG1CQUNqQyx1QkFBdUIsQ0FBQyxNQUFNOzhCQW1CcEMsU0FBUztzQkFEbkIsU0FBUzt1QkFBQyw4QkFBOEIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IEVsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2VsZGVyLXNlbGVjdC1jaGlwLmRpcmVjdGl2ZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItZmlsdGVyLWNoaXAtdGVtcGxhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItZmlsdGVyLWNoaXAtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1maWx0ZXItY2hpcC10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0SWNvbiwgRWxkZXJTZWxlY3RDaGlwQXZhdGFyRGlyZWN0aXZlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRmlsdGVyQ2hpcFRlbXBsYXRlQ29tcG9uZW50IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBfYXZhdGFyUmVmJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4obnVsbClcbiAgcHVibGljIGF2YXRhclJlc29sdmVyRm4gPSBpbnB1dC5yZXF1aXJlZDwoaWQ6IHN0cmluZykgPT4gc3RyaW5nPigpXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQFZpZXdDaGlsZChFbGRlclNlbGVjdENoaXBBdmF0YXJEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgc2V0IGF2YXRhclJlZihhdmF0YXJSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl9hdmF0YXJSZWYkLm5leHQoYXZhdGFyUmVmKVxuICB9XG5cbiAgcHVibGljIGdldCBhdmF0YXJSZWYkKCk6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55Pj4ge1xuICAgIHJldHVybiB0aGlzLl9hdmF0YXJSZWYkLmFzT2JzZXJ2YWJsZSgpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY3VycmVudEljb24oaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZnVuID0gdGhpcy5hdmF0YXJSZXNvbHZlckZuKClcbiAgICBpZiAoaWQgIT0gbnVsbCB8fCBpZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBmdW4gPyBmdW4oaWQpIDogJ2hlbHBfb3V0bGluZSdcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdoZWxwX291dGxpbmUnXG4gICAgfVxuICB9XG59XG4iLCI8bWF0LWljb24gKmVsZGVyU2VsZWN0Q2hpcEF2YXRhcj1cImxldCBjaGlwTW9kZWxcIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+XG4gIHt7IGN1cnJlbnRJY29uKGNoaXBNb2RlbD8udmFsdWU/LmlkKSB9fVxuPC9tYXQtaWNvbj5cbiJdfQ==
@@ -2,10 +2,10 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class ElderSelectOptionComponent {
4
4
  constructor() { }
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderSelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ElderSelectOptionComponent, isStandalone: true, selector: "elder-select-option", inputs: { value: "value", label: "label" }, ngImport: i0, template: "", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderSelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ElderSelectOptionComponent, isStandalone: true, selector: "elder-select-option", inputs: { value: "value", label: "label" }, ngImport: i0, template: "", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderSelectOptionComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderSelectOptionComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{ selector: 'elder-select-option', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "" }]
11
11
  }], ctorParameters: () => [], propDecorators: { value: [{
@@ -13,4 +13,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
13
13
  }], label: [{
14
14
  type: Input
15
15
  }] } });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VsZWN0LW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1jaGlwLXNlbGVjdC1vcHRpb24vZWxkZXItc2VsZWN0LW9wdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1jaGlwLXNlbGVjdC1vcHRpb24vZWxkZXItc2VsZWN0LW9wdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTs7QUFTekUsTUFBTSxPQUFPLDBCQUEwQjtJQU9yQyxnQkFBZSxDQUFDOzhHQVBMLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDJIQ1R2QyxFQUFBOzsyRkRTYSwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSTt3REFJVCxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1zZWxlY3Qtb3B0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXNlbGVjdC1vcHRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZWxkZXItc2VsZWN0LW9wdGlvbi5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclNlbGVjdE9wdGlvbkNvbXBvbmVudDxURW50aXR5PiB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2YWx1ZTogVEVudGl0eVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbD86IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiIsIiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VsZWN0LW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1jaGlwLXNlbGVjdC1vcHRpb24vZWxkZXItc2VsZWN0LW9wdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1jaGlwLXNlbGVjdC1vcHRpb24vZWxkZXItc2VsZWN0LW9wdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTs7QUFTekUsTUFBTSxPQUFPLDBCQUEwQjtJQU9yQyxnQkFBZSxDQUFDOytHQVBMLDBCQUEwQjttR0FBMUIsMEJBQTBCLDJIQ1R2QyxFQUFBOzs0RkRTYSwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSTt3REFJVCxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1zZWxlY3Qtb3B0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXNlbGVjdC1vcHRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZWxkZXItc2VsZWN0LW9wdGlvbi5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclNlbGVjdE9wdGlvbkNvbXBvbmVudDxURW50aXR5PiB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2YWx1ZTogVEVudGl0eVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsYWJlbD86IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiIsIiJdfQ==
@@ -1,16 +1,13 @@
1
- import { Directive, HostBinding, Input, Output } from '@angular/core';
1
+ import { Directive, HostBinding, inject, Input, Output } from '@angular/core';
2
2
  import { ElderSelectBase, ElderSelectComponentState } from '../elder-select-base';
3
3
  import { BehaviorSubject, EMPTY, of, throwError } from 'rxjs';
4
4
  import { LoggerFactory } from '@elderbyte/ts-logger';
5
5
  import { catchError, filter, map, skip, switchMap, take, tap, timeout } from 'rxjs/operators';
6
6
  import { Sets } from '../../../common/sets';
7
7
  import { SortUtil } from '../../../common/utils/sort-util';
8
+ import { ElderDialogService } from '../../dialogs/elder-dialog.service';
8
9
  import { Arrays } from '../../../common/arrays';
9
10
  import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/cdk/a11y";
11
- import * as i2 from "@ngx-translate/core";
12
- import * as i3 from "../../dialogs/elder-dialog.service";
13
- import * as i4 from "@angular/forms";
14
11
  /**
15
12
  * Base component implementation of elder-multi-select.
16
13
  *
@@ -27,9 +24,8 @@ export class ElderMultiSelectBase extends ElderSelectBase {
27
24
  * Constructor *
28
25
  * *
29
26
  **************************************************************************/
30
- constructor(zone, hostRef, controlType, focusMonitor, translateService, dialogService, ngControl) {
31
- super(zone, hostRef, controlType, focusMonitor, translateService, ngControl);
32
- this.dialogService = dialogService;
27
+ constructor(controlType) {
28
+ super(controlType);
33
29
  /***************************************************************************
34
30
  * *
35
31
  * Fields *
@@ -48,6 +44,7 @@ export class ElderMultiSelectBase extends ElderSelectBase {
48
44
  * the user will be prompted to confirm.
49
45
  */
50
46
  this.confirmRemoval = false;
47
+ this.dialogService = inject(ElderDialogService);
51
48
  this.entityIdsChange = this.valueChange.pipe(map((values) => this.entityIdsFromValues(values)));
52
49
  this._entityIds$ = this.value$.pipe(map((values) => this.entityIdsFromValues(values)));
53
50
  this.entitiesChange = this._entities$.pipe(skip(1) // Skip the initial or current value
@@ -349,12 +346,12 @@ export class ElderMultiSelectBase extends ElderSelectBase {
349
346
  }
350
347
  return entities;
351
348
  }
352
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderMultiSelectBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
353
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: ElderMultiSelectBase, inputs: { entitiesSorts: "entitiesSorts", confirmRemoval: "confirmRemoval", entities: "entities", entityIds: "entityIds" }, outputs: { entityIdsChange: "entityIdsChange", entitiesChange: "entitiesChange", entityIdsUpdated: "entityIdsUpdated", entitiesUpdated: "entitiesUpdated" }, host: { properties: { "class": "this.hostClass", "class.mat-select-disabled": "this.disabledClass", "class.mat-select-invalid": "this.errorStateClass", "class.mat-select-required": "this.requiredClass", "class.mat-select-empty": "this.emptyClass" } }, usesInheritance: true, ngImport: i0 }); }
349
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderMultiSelectBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
350
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ElderMultiSelectBase, inputs: { entitiesSorts: "entitiesSorts", confirmRemoval: "confirmRemoval", entities: "entities", entityIds: "entityIds" }, outputs: { entityIdsChange: "entityIdsChange", entitiesChange: "entitiesChange", entityIdsUpdated: "entityIdsUpdated", entitiesUpdated: "entitiesUpdated" }, host: { properties: { "class": "this.hostClass", "class.mat-select-disabled": "this.disabledClass", "class.mat-select-invalid": "this.errorStateClass", "class.mat-select-required": "this.requiredClass", "class.mat-select-empty": "this.emptyClass" } }, usesInheritance: true, ngImport: i0 }); }
354
351
  }
355
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderMultiSelectBase, decorators: [{
352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderMultiSelectBase, decorators: [{
356
353
  type: Directive
357
- }], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: undefined }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.ElderDialogService }, { type: i4.NgControl }], propDecorators: { entitiesSorts: [{
354
+ }], ctorParameters: () => [{ type: undefined }], propDecorators: { entitiesSorts: [{
358
355
  type: Input
359
356
  }], confirmRemoval: [{
360
357
  type: Input
@@ -386,4 +383,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
386
383
  }], entityIds: [{
387
384
  type: Input
388
385
  }] } });
389
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pGLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUVqRixPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzdGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUszQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFHMUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFBOzs7Ozs7QUFFL0M7Ozs7Ozs7O0dBUUc7QUFFSCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQixvQkFDcEIsU0FBUSxlQUF1QztJQWlEL0M7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ0UsSUFBWSxFQUNaLE9BQW1CLEVBQ25CLFdBQW1CLEVBQ25CLFlBQTBCLEVBQzFCLGdCQUFrQyxFQUNqQixhQUFpQyxFQUNsRCxTQUFxQjtRQUVyQixLQUFLLENBQUMsSUFBSSxFQUFFLE9B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QVc7dUJBQUMsMEJBQTBCO2dCQUlPLGFBQWE7c0JBQTFELFdBQVc7dUJBQUMsMkJBQTJCO2dCQUlHLFVBQVU7c0JBQXBELFdBQVc7dUJBQUMsd0JBQXdCO2dCQW1CMUIsUUFBUTtzQkFEbEIsS0FBSztnQkFZSyxTQUFTO3NCQURuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE5nWm9uZSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEVsZGVyU2VsZWN0QmFzZSwgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSB9IGZyb20gJy4uL2VsZGVyLXNlbGVjdC1iYXNlJ1xuaW1wb3J0IHsgSURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgRU1QVFksIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBza2lwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCwgdGltZW91dCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgU2V0cyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9zZXRzJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSdcbmltcG9ydCB7IElFbGRlck11bHRpRW50aXR5VmFsdWVBY2Nlc3NvciB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy9lbGRlci1tdWx0aS1lbnRpdHktdmFsdWUtYWNjZXNzb3InXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2RhdGEvc29ydCdcbmltcG9ydCB7IFNvcnRVdGlsIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxzL3NvcnQtdXRpbCdcbmltcG9ydCB7IEVsZGVyRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL2RpYWxvZ3MvZWxkZXItZGlhbG9nLnNlcnZpY2UnXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEFycmF5cyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9hcnJheXMnXG5cbi8qKlxuICogQmFzZSBjb21wb25lbnQgaW1wbGVtZW50YXRpb24gb2YgZWxkZXItbXVsdGktc2VsZWN0LlxuICpcbiAqIE11bHRpIFNlbGVjdCBoYXMgdGhlIGZvbGxvd2luZyBhYnN0cmFjdCBjb25jZXB0OlxuICpcbiAqIC0gU3VnZ2VzdGlvbi1Nb2RlbDogQSBEYXRhU291cmNlIGFuZCBkZXJpdmVkIERhdGFDb250ZXh0IGZvciB0aGUgKGF1dG8tY29tcGxldGUpIHN1Z2dlc3Rpb25zLlxuICogLSBUaGUgYmFja2luZyBWYWx1ZSBpcyBhIGxpc3Qgb2YgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgZW50aXRpZXMuIFRbXVxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbGRlck11bHRpU2VsZWN0QmFzZTxUSWQsIFRFbnRpdHksIFRWYWx1ZT5cbiAgZXh0ZW5kcyBFbGRlclNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWVbXT5cbiAgaW1wbGVtZW50cyBJRWxkZXJNdWx0aUVudGl0eVZhbHVlQWNjZXNzb3I8VEVudGl0eSwgVElkLCBUVmFsdWU+XG57XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2VudGl0eUlkcyQ6IE9ic2VydmFibGU8VElkW10+XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VudGl0aWVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VEVudGl0eVtdPihbXSlcblxuICAvKipcbiAgICogRGVmaW5lcyBob3cgdGhlIGVudGl0aWVzIHNob3VsZCBiZSBzb3J0ZWQgbG9jYWxseS5cbiAgICogVGhpcyBhZmZlY3RzIGhvdyBlbnRpdGllcyBhcmUgZGlzcGxheWVkIHdoZW4gbW9yZSB0aGFuXG4gICAqIG9uZSBpcyBzZWxlY3RlZCwgc3VjaCBhcyBpbiBhIGNoaXAgbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbnRpdGllc1NvcnRzOiBTb3J0W10gPSBbXVxuXG4gIC8qKlxuICAgKiBJZiBlbmFibGVkLCBiZWZvcmUgcmVtb3Zpbmcgc2VsZWN0ZWQgZW50aXRpZXNcbiAgICogdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjb25maXJtLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNvbmZpcm1SZW1vdmFsID0gZmFsc2VcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eUlkc0NoYW5nZTogT2JzZXJ2YWJsZTxUSWRbXT5cblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0aWVzQ2hhbmdlOiBPYnNlcnZhYmxlPFRFbnRpdHlbXT5cblxuICAvKipcbiAgICogU2ltaWxhciB0byBlbnRpdHktaWQgY2hhbmdlLCBidXQgZW1pdHMgb25seSB3aGVuIHRoZSB1c2VyXG4gICAqIGhhcyB1cGRhdGVkIHRoZSB2YWx1ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5SWRzVXBkYXRlZDogT2JzZXJ2YWJsZTxUSWRbXT5cblxuICAvKipcbiAgICogU2ltaWxhciB0byBlbnRpdHkgY2hhbmdlLCBidXQgZW1pdHMgb25seSB3aGVuIHRoZSB1c2VyXG4gICAqIGhhcyB1cGRhdGVkIHRoZSB2YWx1ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXRpZXNVcGRhdGVkOiBPYnNlcnZhYmxlPFRFbnRpdHlbXT5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgem9uZTogTmdab25lLFxuICAgIGhvc3RSZWY6IEVsZW1lbnRSZWYsXG4gICAgY29udHJvbFR5cGU6IHN0cmluZyxcbiAgICBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogRWxkZXJEaWFsb2dTZXJ2aWNlLFxuICAgIG5nQ29udHJvbD86IE5nQ29udHJvbFxuICApIHtcbiAgICBzdXBlcih6b25lLCBob3N0UmVmLCBjb250cm9sVHlwZSwgZm9jdXNNb25pdG9yLCB0cmFuc2xhdGVTZXJ2aWNlLCBuZ0NvbnRyb2wpXG5cbiAgICB0aGlzLmVudGl0eUlkc0NoYW5nZSA9IHRoaXMudmFsdWVDaGFuZ2UucGlwZShtYXAoKHZhbHVlcykgPT4gdGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKHZhbHVlcykpKVxuXG4gICAgdGhpcy5fZW50aXR5SWRzJCA9IHRoaXMudmFsdWUkLnBpcGUobWFwKCh2YWx1ZXMpID0+IHRoaXMuZW50aXR5SWRzRnJvbVZhbHVlcyh2YWx1ZXMpKSlcblxuICAgIHRoaXMuZW50aXRpZXNDaGFuZ2UgPSB0aGlzLl9lbnRpdGllcyQucGlwZShcbiAgICAgIHNraXAoMSkgLy8gU2tpcCB0aGUgaW5pdGlhbCBvciBjdXJyZW50IHZhbHVlXG4gICAgKVxuXG4gICAgdGhpcy5lbnRpdHlJZHNVcGRhdGVkID0gdGhpcy52YWx1ZVVwZGF0ZWQucGlwZShcbiAgICAgIG1hcCgodmFsdWVzKSA9PiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModmFsdWVzKSlcbiAgICApXG5cbiAgICB0aGlzLmVudGl0aWVzVXBkYXRlZCA9IHRoaXMuZW50aXR5SWRzVXBkYXRlZC5waXBlKFxuICAgICAgdGFwKChlbnRpdHlJZHMpID0+IHRoaXMubG9nZ2VyLmRlYnVnKCdBd2FpdGluZyBlbnRpdGllcyB3aXRoIGlkcycsIGVudGl0eUlkcykpLFxuICAgICAgc3dpdGNoTWFwKChlbnRpdHlJZHMpID0+IHRoaXMuYXdhaXRFbnRpdGllc1dpdGhJZChlbnRpdHlJZHMsIHRoaXMudGltZW91dEFmdGVyTXMpKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBhd2FpdEVudGl0aWVzV2l0aElkIC0+IHRpbWVkIG91dCBhZnRlcjogJHt0aGlzLnRpbWVvdXRBZnRlck1zfWAsIGVycilcbiAgICAgICAgcmV0dXJuIEVNUFRZXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgYXdhaXRFbnRpdGllc1dpdGhJZChlbnRpdHlJZHM6IFRJZFtdLCB0aW1lb3V0TXM6IG51bWJlcik6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0aWVzJC5waXBlKFxuICAgICAgdGFwKChlbnRpdGllcykgPT4gdGhpcy5sb2dnZXIuZGVidWcoJ0dvdCBlbnRpdGllcyBmb3IgaWRzJyArIGVudGl0eUlkcywgZW50aXRpZXMpKSxcbiAgICAgIGZpbHRlcigoZW50aXRpZXMpID0+IHRoaXMuZXF1YWxJZHModGhpcy5nZXRFbnRpdHlJZHMoZW50aXRpZXMpLCBlbnRpdHlJZHMpKSxcbiAgICAgIHRha2UoMSksXG4gICAgICB0aW1lb3V0KHRpbWVvdXRNcylcbiAgICApXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogSG9zdCBCaW5kaW5ncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZWxkZXItc2VsZWN0LWJhc2UgZWxkZXItbXVsdGktc2VsZWN0J1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYXQtc2VsZWN0LWRpc2FibGVkJykgZ2V0IGRpc2FibGVkQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWRcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubWF0LXNlbGVjdC1pbnZhbGlkJykgZ2V0IGVycm9yU3RhdGVDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lcnJvclN0YXRlXG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1hdC1zZWxlY3QtcmVxdWlyZWQnKSBnZXQgcmVxdWlyZWRDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZFxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYXQtc2VsZWN0LWVtcHR5JykgZ2V0IGVtcHR5Q2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW1wdHlcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZW50aXRpZXMkKCk6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0aWVzJC5hc09ic2VydmFibGUoKVxuICB9XG5cbiAgcHVibGljIGdldCBlbnRpdHlJZHMkKCk6IE9ic2VydmFibGU8VElkW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5SWRzJFxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbnRpdGllcyhlbnRpdGllczogVEVudGl0eVtdKSB7XG4gICAgaWYgKCF0aGlzLmVxdWFsRW50aXRpZXNFeGFjdE9yZGVyKHRoaXMuZW50aXRpZXMsIGVudGl0aWVzKSkge1xuICAgICAgdGhpcy53cml0ZVZhbHVlSW50ZXJuYWwodGhpcy5lbnRpdGllc1RvVmFsdWVzKHRoaXMud3JpdGVFbnRpdGllc1NvcnRlZChlbnRpdGllcykpKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW50aXRpZXMoKTogVEVudGl0eVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXRpZXMkLmdldFZhbHVlKClcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXR5SWRzKGlkczogVElkW10pIHtcbiAgICBpZiAoIXRoaXMuZXF1YWxJZHNFeGFjdE9yZGVyKHRoaXMuZW50aXR5SWRzLCBpZHMpKSB7XG4gICAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlSW50ZXJuYWwoKDxhbnk+aWRzKSBhcyBUVmFsdWVbXSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0RW50aXRpZXNCeUlkcyhpZHMpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBlbnRpdHlJZHMoKTogVElkW10ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModGhpcy52YWx1ZSlcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcHRpb25EaXNhYmxlZEludGVybmFsRm4oKTogKG9wdGlvbjogVEVudGl0eSkgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuIChvcHRpb246IFRFbnRpdHkpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzT3B0aW9uRGlzYWJsZWRGbikge1xuICAgICAgICByZXR1cm4gdGhpcy5pc09wdGlvbkRpc2FibGVkRm4ob3B0aW9uKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpc09wdGlvbkhpZGRlbkludGVybmFsRm4oKTogKG9wdGlvbjogVEVudGl0eSkgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuIChvcHRpb246IFRFbnRpdHkpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzQWxyZWFkeVByZXNlbnQob3B0aW9uKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNPcHRpb25IaWRkZW5Gbikge1xuICAgICAgICByZXR1cm4gdGhpcy5pc09wdGlvbkhpZGRlbkZuKG9wdGlvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZUJ5RW50aXRpZXMoZW50aXRpZXM6IFRFbnRpdHlbXSk6IHZvaWQge1xuICAgIGVudGl0aWVzID0gdGhpcy53cml0ZUVudGl0aWVzU29ydGVkKGVudGl0aWVzKVxuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5lbnRpdGllc1RvVmFsdWVzKGVudGl0aWVzKSlcbiAgfVxuXG4gIHB1YmxpYyBhcHBlbmRFbnRpdGllcyhuZXdFbnRpdGllczogVEVudGl0eVtdKSB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuZW50aXRpZXMgPyB0aGlzLmVudGl0aWVzIDogW11cbiAgICB0aGlzLnVwZGF0ZVZhbHVlQnlFbnRpdGllcyhbLi4uY3VycmVudCwgLi4ubmV3RW50aXRpZXNdKVxuICB9XG5cbiAgcHVibGljIGFwcGVuZEVudGl0eShuZXdFbnRpdHk6IGFueSkge1xuICAgIHRoaXMuYXBwZW5kRW50aXRpZXMoW25ld0VudGl0eV0pXG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdFJlbW92ZUVudGl0eSh0b1JlbW92ZTogVEVudGl0eSwgc2tpcENvbmZpcm0/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRvUmVtb3ZlICE9PSB1bmRlZmluZWQgJiYgdG9SZW1vdmUgIT09IG51bGwpIHtcbiAgICAgIHRoaXMucmVxdWVzdFJlbW92ZUVudGl0aWVzKFt0b1JlbW92ZV0sIHNraXBDb25maXJtKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0UmVtb3ZlRW50aXRpZXModG9SZW1vdmU6IFRFbnRpdHlbXSwgc2tpcENvbmZpcm0/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm1EZWxldGUoXG4gICAgICB7XG4gICAgICAgIGRlbGV0aW9uQ291bnQ6IHRvUmVtb3ZlLmxlbmd0aCxcbiAgICAgICAgY29uZmlybVJlbW92YWw6IHRoaXMuY29uZmlybVJlbW92YWwsXG4gICAgICAgIHNraXBDb25maXJtOiBza2lwQ29uZmlybSxcbiAgICAgIH0sXG4gICAgICAoKSA9PiB0aGlzLnJlbW92ZUVudGl0aWVzKHRvUmVtb3ZlKVxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVFbnRpdGllcyh0b1JlbW92ZTogVEVudGl0eVtdKTogdm9pZCB7XG4gICAgdG9SZW1vdmUuZm9yRWFjaCgoZSkgPT4gdGhpcy5yZW1vdmVFbnRpdHkoZSkpXG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlRW50aXR5KHRvUmVtb3ZlOiBURW50aXR5KTogdm9pZCB7XG4gICAgY29uc3QgcmVtYWluaW5nID0gdGhpcy5lbnRpdGllcy5maWx0ZXIoKGwpID0+ICF0aGlzLmlzRXF1YWwobCwgdG9SZW1vdmUpKVxuICAgIHRoaXMudXBkYXRlVmFsdWVCeUVudGl0aWVzKHJlbWFpbmluZylcbiAgfVxuXG4gIHB1YmxpYyBvcGVuU2VsZWN0aW9uUG9wdXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uUG9wdXApIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uUG9wdXBcbiAgICAgICAgLmNob29zZSgoZTogVEVudGl0eSkgPT4gdGhpcy5nZXRFbnRpdHlJZChlKSwgdGhpcy5lbnRpdGllcywgdGhpcy5maWx0ZXJzLCB0aGlzLnNvcnRzLCB0cnVlKVxuICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb246IFRFbnRpdHlbXSkgPT4gdGhpcy51cGRhdGVWYWx1ZUJ5RW50aXRpZXMoc2VsZWN0aW9uKSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgJ0NhbnQgb3BlbiBzZWxlY3Rpb24gYnJvd3NlciBwb3B1cCwgc2luY2UgW1NlbGVjdGlvbk1vZGVsUG9wdXBEaXJlY3RpdmVdIHdhcyBub3QgZm91bmQhJ1xuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbnRpdHlUb1ZhbHVlKGVudGl0eTogVEVudGl0eSk6IFRWYWx1ZSB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICBjb25zdCBpZCA9IHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KVxuICAgICAgcmV0dXJuICg8YW55PmlkKSBhcyBUVmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICg8YW55PmVudGl0eSkgYXMgVFZhbHVlXG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEludGVybmFsIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbHVlc0VxdWFscyhhOiBUVmFsdWVbXSwgYjogVFZhbHVlW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lcXVhbElkc0V4YWN0T3JkZXIodGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKGEpLCB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXMoYikpXG4gIH1cblxuICBwcm90ZWN0ZWQgb25EYXRhQ29udGV4dENoYW5nZWQoZGF0YTogSURhdGFDb250ZXh0PFRFbnRpdHk+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICB0aGlzLnNlbGVjdEVudGl0aWVzQnlJZHModGhpcy5lbnRpdHlJZHMpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYWZ0ZXIgYSB2YWx1ZSBoYXMgYmVlbiB3cml0dGVuIHRvIHRoaXMgY29udHJvbC5cbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3cml0ZVRvQ29udHJvbCh2YWx1ZTogVFZhbHVlW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIGNvbnN0IGVudGl0eUlkcyA9ICg8YW55PnZhbHVlKSBhcyBUSWRbXVxuICAgICAgLy8gVmFsdWUgd2FzIHdyaXR0ZW4gYXMgZW50aXR5IGlkcywgZW5zdXJlIHdlIHNlbGVjdCBlbnRpdHkgYnkgaWRcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd3cml0ZVRvQ29udHJvbDogdmFsdWUgd2FzIHdyaXR0ZW4gYXMgaWRzOiAnICsgZW50aXR5SWRzLCB2YWx1ZSlcbiAgICAgIHRoaXMuc2VsZWN0RW50aXRpZXNCeUlkcyhlbnRpdHlJZHMpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0eSwgZW5zdXJlIGVudGl0eSBpcyB1cGRhdGVkXG4gICAgICBjb25zdCBjdXJyZW50RW50aXRpZXMgPSB0aGlzLmVudGl0aWVzXG4gICAgICBjb25zdCBuZXdFbnRpdGllcyA9ICg8YW55PnZhbHVlKSBhcyBURW50aXR5W11cbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAnd3JpdGVUb0NvbnRyb2w6IHZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0aWVzIChzaXplKTogJyArIG5ld0VudGl0aWVzPy5sZW5ndGgsXG4gICAgICAgIHZhbHVlXG4gICAgICApXG4gICAgICBpZiAoIXRoaXMuZXF1YWxFbnRpdGllcyhjdXJyZW50RW50aXRpZXMsIG5ld0VudGl0aWVzKSkge1xuICAgICAgICB0aGlzLndyaXRlRW50aXRpZXNTb3J0ZWQobmV3RW50aXRpZXMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdJZ25vcmVkIHdyaXR0ZW4gZW50aXRpZXMgYXMgdGhleSBhcmUgYWxyZWFkeSBzZXQgdG8gZW50aXRpZXMkIScpXG4gICAgICB9XG4gICAgfVxuICAgIHN1cGVyLndyaXRlVG9Db250cm9sKHZhbHVlKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBpc0FscmVhZHlQcmVzZW50KHF1ZXJ5VmFsdWU6IFRFbnRpdHkpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5lbnRpdGllcykge1xuICAgICAgcmV0dXJuIHRoaXMuZW50aXRpZXMuc29tZSgodikgPT4gdGhpcy5pc0VxdWFsKHYsIHF1ZXJ5VmFsdWUpKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVudGl0eUlkc0Zyb21WYWx1ZXModmFsdWVzOiBUVmFsdWVbXSk6IFRJZFtdIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlcykge1xuICAgICAgcmV0dXJuIHZhbHVlcy5tYXAoKHYpID0+IHRoaXMuZW50aXR5SWRGcm9tVmFsdWUodikpXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBwcml2YXRlIGVudGl0eUlkRnJvbVZhbHVlKHZhbHVlOiBUVmFsdWUpOiBUSWQge1xuICAgIGlmICh0aGlzLnZhbHVlQXNJZCkge1xuICAgICAgcmV0dXJuICg8YW55PnZhbHVlKSBhcyBUSWRcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZW50aXR5ID0gKDxhbnk+dmFsdWUpIGFzIFRFbnRpdHlcbiAgICAgIHJldHVybiB0aGlzLmdldEVudGl0eUlkKGVudGl0eSlcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVudGl0aWVzVG9WYWx1ZXMoZW50aXRpZXM6IFRFbnRpdHlbXSk6IFRWYWx1ZVtdIHwgbnVsbCB7XG4gICAgaWYgKGVudGl0aWVzKSB7XG4gICAgICByZXR1cm4gZW50aXRpZXMubWFwKChlKSA9PiB0aGlzLmVudGl0eVRvVmFsdWUoZSkpXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBwcml2YXRlIGdldEVudGl0eUlkcyh2YWx1ZXM6IFRFbnRpdHlbXSB8IG51bGwpOiBUSWRbXSB7XG4gICAgaWYgKHZhbHVlcykge1xuICAgICAgcmV0dXJuIHZhbHVlcy5tYXAoKHYpID0+IHRoaXMuZ2V0RW50aXR5SWQodikpXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBwcml2YXRlIGVxdWFsSWRzKGlkc0E6IFRJZFtdLCBpZHNCOiBUSWRbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBTZXRzLmVxdWFsQ29udGVudChpZHNBLCBpZHNCKVxuICB9XG5cbiAgcHJpdmF0ZSBlcXVhbElkc0V4YWN0T3JkZXIoaWRzQTogVElkW10sIGlkc0I6IFRJZFtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEFycmF5cy5lcXVhbENvbnRlbnRBbmRPcmRlcihpZHNBLCBpZHNCKVxuICB9XG5cbiAgcHJpdmF0ZSBlcXVhbEVudGl0aWVzKGVudGl0aWVzQTogVEVudGl0eVtdLCBlbnRpdGllc0I6IFRFbnRpdHlbXSkge1xuICAgIHJldHVybiB0aGlzLmVxdWFsSWRzKHRoaXMuZ2V0RW50aXR5SWRzKGVudGl0aWVzQSksIHRoaXMuZ2V0RW50aXR5SWRzKGVudGl0aWVzQikpXG4gIH1cblxuICBwcml2YXRlIGVxdWFsRW50aXRpZXNFeGFjdE9yZGVyKGVudGl0aWVzQTogVEVudGl0eVtdLCBlbnRpdGllc0I6IFRFbnRpdHlbXSkge1xuICAgIHJldHVybiB0aGlzLmVxdWFsSWRzRXhhY3RPcmRlcih0aGlzLmdldEVudGl0eUlkcyhlbnRpdGllc0EpLCB0aGlzLmdldEVudGl0eUlkcyhlbnRpdGllc0IpKVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RFbnRpdGllc0J5SWRzKGlkczogVElkW10pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50RW50aXRpZXMgPSB0aGlzLmVudGl0aWVzXG4gICAgdGhpcy5sb2dnZXIuaW5mbygnc2VsZWN0RW50aXRpZXNCeUlkczogaWRzOiAnICsgaWRzICsgJywgY3VycmVudCBlbnRpdGllczonLCBjdXJyZW50RW50aXRpZXMpXG4gICAgaWYgKGN1cnJlbnRFbnRpdGllcyAmJiB0aGlzLmVxdWFsSWRzKHRoaXMuZ2V0RW50aXR5SWRzKGN1cnJlbnRFbnRpdGllcyksIGlkcykpIHtcbiAgICAgIHJldHVybiAvLyBFbnRpdGllcyBhbHJlYWR5IGxvYWRlZFxuICAgIH1cblxuICAgIHRoaXMuZmluZE9yTG9hZEVudGl0aWVzQnlJZHMoaWRzKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGVudGl0aWVzKSA9PiAodGhpcy5lbnRpdGllcyA9IGVudGl0aWVzKSxcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB0aGlzLnVwZGF0ZVN0YXRlKEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuZXJyb3IoZXJyKSksXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgZmluZE9yTG9hZEVudGl0aWVzQnlJZHMoaWRzOiBUSWRbXSk6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XG4gICAgaWYgKGlkcyA9PT0gbnVsbCB8fCBpZHMubGVuZ3RoID09IDApIHtcbiAgICAgIHJldHVybiBvZihbXSlcbiAgICB9XG4gICAgaWYgKHRoaXMuZGF0YUNvbnRleHQpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5maW5kSW5EYXRhQ29udGV4dChpZHMpXG4gICAgICBjb25zdCBtaXNzaW5nSWRzID0gaWRzLmZpbHRlcigoaWQpID0+ICFleGlzdGluZy5oYXMoaWQpKVxuICAgICAgY29uc3QgdmFsdWVMb2FkUmVxdWVzdCQgPVxuICAgICAgICBtaXNzaW5nSWRzLmxlbmd0aCA+IDAgPyB0aGlzLmxvYWRFbnRpdGllc0J5SWRzKG1pc3NpbmdJZHMpIDogb2YobmV3IE1hcCgpKVxuXG4gICAgICByZXR1cm4gdmFsdWVMb2FkUmVxdWVzdCQucGlwZShcbiAgICAgICAgbWFwKChsb2FkZWQpID0+IHtcbiAgICAgICAgICBsb2FkZWQuZm9yRWFjaCgodiwgaykgPT4gZXhpc3Rpbmcuc2V0KGssIHYpKVxuICAgICAgICAgIHJldHVybiBleGlzdGluZ1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChhbGxWYWx1ZXNNYXApID0+IEFycmF5LmZyb20oYWxsVmFsdWVzTWFwLnZhbHVlcygpKSkgLy8gVE9ETyBTb3J0P1xuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKCdGYWlsZWQgdG8gc2VsZWN0IHZhbHVlIGJ5IElkczogJyArIGlkcyArICcgLSBEYXRhQ29udGV4dCBub3QgYXZhaWxhYmxlLicpXG4gICAgICByZXR1cm4gRU1QVFlcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRFbnRpdGllc0J5SWRzKGlkczogVElkW10pOiBPYnNlcnZhYmxlPE1hcDxUSWQsIFRFbnRpdHk+PiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZU9yVGhyb3coKVxuICAgICAgLmZpbmRCeUlkcyhpZHMpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGVudGl0aWVzIGJ5IGlkczogJyArIGlkcywgZXJyKVxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycilcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgodmFsdWVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0xvYWRlZCBlbnRpdGllcyBieSBpZDonLCB2YWx1ZXMpXG4gICAgICAgICAgY29uc3QgdmFsdWVNYXAgPSBuZXcgTWFwPFRJZCwgVEVudGl0eT4oKVxuICAgICAgICAgIHZhbHVlcy5mb3JFYWNoKCh2KSA9PiB2YWx1ZU1hcC5zZXQodGhpcy5nZXRFbnRpdHlJZCh2KSwgdikpXG4gICAgICAgICAgcmV0dXJuIHZhbHVlTWFwXG4gICAgICAgIH0pXG4gICAgICApXG4gIH1cblxuICBwcml2YXRlIGZpbmRJbkRhdGFDb250ZXh0KGlkczogVElkW10pOiBNYXA8VElkLCBURW50aXR5PiB7XG4gICAgY29uc3QgZXhpc3RpbmdWYWx1ZXMgPSBuZXcgTWFwPFRJZCwgVEVudGl0eT4oKVxuICAgIGlmIChpZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGFDb250ZXh0LnNuYXBzaG90LmRhdGFcbiAgICAgIGNvbnN0IHJlcXVpcmVkSWRzID0gbmV3IFNldChpZHMpXG4gICAgICBkYXRhXG4gICAgICAgIC5maWx0ZXIoKGQpID0+IHJlcXVpcmVkSWRzLmhhcyh0aGlzLmdldEVudGl0eUlkKGQpKSlcbiAgICAgICAgLmZvckVhY2goKGQpID0+IGV4aXN0aW5nVmFsdWVzLnNldCh0aGlzLmdldEVudGl0eUlkKGQpLCBkKSlcbiAgICB9XG4gICAgcmV0dXJuIGV4aXN0aW5nVmFsdWVzXG4gIH1cblxuICBwcml2YXRlIHdyaXRlRW50aXRpZXNTb3J0ZWQoZW50aXRpZXM6IFRFbnRpdHlbXSk6IFRFbnRpdHlbXSB7XG4gICAgY29uc3Qgc29ydGVkID0gdGhpcy5zb3J0RW50aXRpZXMoZW50aXRpZXMpXG4gICAgdGhpcy5fZW50aXRpZXMkLm5leHQoc29ydGVkKVxuICAgIHJldHVybiBzb3J0ZWRcbiAgfVxuXG4gIHByaXZhdGUgc29ydEVudGl0aWVzKGVudGl0aWVzOiBURW50aXR5W10pOiBURW50aXR5W10ge1xuICAgIGlmIChlbnRpdGllcyAmJiB0aGlzLmVudGl0aWVzU29ydHMgJiYgdGhpcy5lbnRpdGllc1NvcnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHNvcnRlZCA9IFNvcnRVdGlsLnNvcnREYXRhKGVudGl0aWVzLCB0aGlzLmVudGl0aWVzU29ydHMpXG4gICAgICBpZiAoIVNvcnRVdGlsLmVxdWFsc0V4YWN0UmVmcyhlbnRpdGllcywgc29ydGVkKSkge1xuICAgICAgICAvLyBPbmx5IHJldHVybiBhIGNvcHkgb2YgdGhlIGFycmF5IGlmIGFjdHVhbGx5IHNvbWV0aGluZyBjaGFuZ2VkXG4gICAgICAgIHJldHVybiBzb3J0ZWRcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGVudGl0aWVzXG4gIH1cbn1cbiJdfQ==
386
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM3RixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFLM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBRXZFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTs7QUFFL0M7Ozs7Ozs7O0dBUUc7QUFFSCxrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQixvQkFDcEIsU0FBUSxlQUF1QztJQW1EL0M7Ozs7Z0ZBSTRFO0lBRTVFLFlBQXNCLFdBQW1CO1FBQ3ZDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQXZEcEI7Ozs7b0ZBSTRF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RyxVQUFVO3NCQUFwRCxXQUFXO3VCQUFDLHdCQUF3QjtnQkFtQjFCLFFBQVE7c0JBRGxCLEtBQUs7Z0JBWUssU0FBUztzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5wdXQsIE5nWm9uZSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEVsZGVyU2VsZWN0QmFzZSwgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSB9IGZyb20gJy4uL2VsZGVyLXNlbGVjdC1iYXNlJ1xuaW1wb3J0IHsgSURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgRU1QVFksIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBza2lwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCwgdGltZW91dCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgU2V0cyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9zZXRzJ1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSdcbmltcG9ydCB7IElFbGRlck11bHRpRW50aXR5VmFsdWVBY2Nlc3NvciB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy9lbGRlci1tdWx0aS1lbnRpdHktdmFsdWUtYWNjZXNzb3InXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2RhdGEvc29ydCdcbmltcG9ydCB7IFNvcnRVdGlsIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxzL3NvcnQtdXRpbCdcbmltcG9ydCB7IEVsZGVyRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uL2RpYWxvZ3MvZWxkZXItZGlhbG9nLnNlcnZpY2UnXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEFycmF5cyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9hcnJheXMnXG5cbi8qKlxuICogQmFzZSBjb21wb25lbnQgaW1wbGVtZW50YXRpb24gb2YgZWxkZXItbXVsdGktc2VsZWN0LlxuICpcbiAqIE11bHRpIFNlbGVjdCBoYXMgdGhlIGZvbGxvd2luZyBhYnN0cmFjdCBjb25jZXB0OlxuICpcbiAqIC0gU3VnZ2VzdGlvbi1Nb2RlbDogQSBEYXRhU291cmNlIGFuZCBkZXJpdmVkIERhdGFDb250ZXh0IGZvciB0aGUgKGF1dG8tY29tcGxldGUpIHN1Z2dlc3Rpb25zLlxuICogLSBUaGUgYmFja2luZyBWYWx1ZSBpcyBhIGxpc3Qgb2YgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgZW50aXRpZXMuIFRbXVxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbGRlck11bHRpU2VsZWN0QmFzZTxUSWQsIFRFbnRpdHksIFRWYWx1ZT5cbiAgZXh0ZW5kcyBFbGRlclNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWVbXT5cbiAgaW1wbGVtZW50cyBJRWxkZXJNdWx0aUVudGl0eVZhbHVlQWNjZXNzb3I8VEVudGl0eSwgVElkLCBUVmFsdWU+XG57XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2VudGl0eUlkcyQ6IE9ic2VydmFibGU8VElkW10+XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VudGl0aWVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VEVudGl0eVtdPihbXSlcblxuICAvKipcbiAgICogRGVmaW5lcyBob3cgdGhlIGVudGl0aWVzIHNob3VsZCBiZSBzb3J0ZWQgbG9jYWxseS5cbiAgICogVGhpcyBhZmZlY3RzIGhvdyBlbnRpdGllcyBhcmUgZGlzcGxheWVkIHdoZW4gbW9yZSB0aGFuXG4gICAqIG9uZSBpcyBzZWxlY3RlZCwgc3VjaCBhcyBpbiBhIGNoaXAgbGlzdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbnRpdGllc1NvcnRzOiBTb3J0W10gPSBbXVxuXG4gIC8qKlxuICAgKiBJZiBlbmFibGVkLCBiZWZvcmUgcmVtb3Zpbmcgc2VsZWN0ZWQgZW50aXRpZXNcbiAgICogdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjb25maXJtLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNvbmZpcm1SZW1vdmFsID0gZmFsc2VcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eUlkc0NoYW5nZTogT2JzZXJ2YWJsZTxUSWRbXT5cblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0aWVzQ2hhbmdlOiBPYnNlcnZhYmxlPFRFbnRpdHlbXT5cblxuICAvKipcbiAgICogU2ltaWxhciB0byBlbnRpdHktaWQgY2hhbmdlLCBidXQgZW1pdHMgb25seSB3aGVuIHRoZSB1c2VyXG4gICAqIGhhcyB1cGRhdGVkIHRoZSB2YWx1ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5SWRzVXBkYXRlZDogT2JzZXJ2YWJsZTxUSWRbXT5cblxuICAvKipcbiAgICogU2ltaWxhciB0byBlbnRpdHkgY2hhbmdlLCBidXQgZW1pdHMgb25seSB3aGVuIHRoZSB1c2VyXG4gICAqIGhhcyB1cGRhdGVkIHRoZSB2YWx1ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXRpZXNVcGRhdGVkOiBPYnNlcnZhYmxlPFRFbnRpdHlbXT5cblxuICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2UgPSBpbmplY3QoRWxkZXJEaWFsb2dTZXJ2aWNlKVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihjb250cm9sVHlwZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoY29udHJvbFR5cGUpXG5cbiAgICB0aGlzLmVudGl0eUlkc0NoYW5nZSA9IHRoaXMudmFsdWVDaGFuZ2UucGlwZShtYXAoKHZhbHVlcykgPT4gdGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKHZhbHVlcykpKVxuXG4gICAgdGhpcy5fZW50aXR5SWRzJCA9IHRoaXMudmFsdWUkLnBpcGUobWFwKCh2YWx1ZXMpID0+IHRoaXMuZW50aXR5SWRzRnJvbVZhbHVlcyh2YWx1ZXMpKSlcblxuICAgIHRoaXMuZW50aXRpZXNDaGFuZ2UgPSB0aGlzLl9lbnRpdGllcyQucGlwZShcbiAgICAgIHNraXAoMSkgLy8gU2tpcCB0aGUgaW5pdGlhbCBvciBjdXJyZW50IHZhbHVlXG4gICAgKVxuXG4gICAgdGhpcy5lbnRpdHlJZHNVcGRhdGVkID0gdGhpcy52YWx1ZVVwZGF0ZWQucGlwZShcbiAgICAgIG1hcCgodmFsdWVzKSA9PiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModmFsdWVzKSlcbiAgICApXG5cbiAgICB0aGlzLmVudGl0aWVzVXBkYXRlZCA9IHRoaXMuZW50aXR5SWRzVXBkYXRlZC5waXBlKFxuICAgICAgdGFwKChlbnRpdHlJZHMpID0+IHRoaXMubG9nZ2VyLmRlYnVnKCdBd2FpdGluZyBlbnRpdGllcyB3aXRoIGlkcycsIGVudGl0eUlkcykpLFxuICAgICAgc3dpdGNoTWFwKChlbnRpdHlJZHMpID0+IHRoaXMuYXdhaXRFbnRpdGllc1dpdGhJZChlbnRpdHlJZHMsIHRoaXMudGltZW91dEFmdGVyTXMpKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBhd2FpdEVudGl0aWVzV2l0aElkIC0+IHRpbWVkIG91dCBhZnRlcjogJHt0aGlzLnRpbWVvdXRBZnRlck1zfWAsIGVycilcbiAgICAgICAgcmV0dXJuIEVNUFRZXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgYXdhaXRFbnRpdGllc1dpdGhJZChlbnRpdHlJZHM6IFRJZFtdLCB0aW1lb3V0TXM6IG51bWJlcik6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0aWVzJC5waXBlKFxuICAgICAgdGFwKChlbnRpdGllcykgPT4gdGhpcy5sb2dnZXIuZGVidWcoJ0dvdCBlbnRpdGllcyBmb3IgaWRzJyArIGVudGl0eUlkcywgZW50aXRpZXMpKSxcbiAgICAgIGZpbHRlcigoZW50aXRpZXMpID0+IHRoaXMuZXF1YWxJZHModGhpcy5nZXRFbnRpdHlJZHMoZW50aXRpZXMpLCBlbnRpdHlJZHMpKSxcbiAgICAgIHRha2UoMSksXG4gICAgICB0aW1lb3V0KHRpbWVvdXRNcylcbiAgICApXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogSG9zdCBCaW5kaW5ncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZWxkZXItc2VsZWN0LWJhc2UgZWxkZXItbXVsdGktc2VsZWN0J1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYXQtc2VsZWN0LWRpc2FibGVkJykgZ2V0IGRpc2FibGVkQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWRcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubWF0LXNlbGVjdC1pbnZhbGlkJykgZ2V0IGVycm9yU3RhdGVDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lcnJvclN0YXRlXG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1hdC1zZWxlY3QtcmVxdWlyZWQnKSBnZXQgcmVxdWlyZWRDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZFxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYXQtc2VsZWN0LWVtcHR5JykgZ2V0IGVtcHR5Q2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW1wdHlcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZW50aXRpZXMkKCk6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0aWVzJC5hc09ic2VydmFibGUoKVxuICB9XG5cbiAgcHVibGljIGdldCBlbnRpdHlJZHMkKCk6IE9ic2VydmFibGU8VElkW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5SWRzJFxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbnRpdGllcyhlbnRpdGllczogVEVudGl0eVtdKSB7XG4gICAgaWYgKCF0aGlzLmVxdWFsRW50aXRpZXNFeGFjdE9yZGVyKHRoaXMuZW50aXRpZXMsIGVudGl0aWVzKSkge1xuICAgICAgdGhpcy53cml0ZVZhbHVlSW50ZXJuYWwodGhpcy5lbnRpdGllc1RvVmFsdWVzKHRoaXMud3JpdGVFbnRpdGllc1NvcnRlZChlbnRpdGllcykpKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW50aXRpZXMoKTogVEVudGl0eVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXRpZXMkLmdldFZhbHVlKClcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXR5SWRzKGlkczogVElkW10pIHtcbiAgICBpZiAoIXRoaXMuZXF1YWxJZHNFeGFjdE9yZGVyKHRoaXMuZW50aXR5SWRzLCBpZHMpKSB7XG4gICAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlSW50ZXJuYWwoKDxhbnk+aWRzKSBhcyBUVmFsdWVbXSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0RW50aXRpZXNCeUlkcyhpZHMpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBlbnRpdHlJZHMoKTogVElkW10ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModGhpcy52YWx1ZSlcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcHRpb25EaXNhYmxlZEludGVybmFsRm4oKTogKG9wdGlvbjogVEVudGl0eSkgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuIChvcHRpb246IFRFbnRpdHkpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzT3B0aW9uRGlzYWJsZWRGbikge1xuICAgICAgICByZXR1cm4gdGhpcy5pc09wdGlvbkRpc2FibGVkRm4ob3B0aW9uKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpc09wdGlvbkhpZGRlbkludGVybmFsRm4oKTogKG9wdGlvbjogVEVudGl0eSkgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuIChvcHRpb246IFRFbnRpdHkpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzQWxyZWFkeVByZXNlbnQob3B0aW9uKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNPcHRpb25IaWRkZW5Gbikge1xuICAgICAgICByZXR1cm4gdGhpcy5pc09wdGlvbkhpZGRlbkZuKG9wdGlvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZUJ5RW50aXRpZXMoZW50aXRpZXM6IFRFbnRpdHlbXSk6IHZvaWQge1xuICAgIGVudGl0aWVzID0gdGhpcy53cml0ZUVudGl0aWVzU29ydGVkKGVudGl0aWVzKVxuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5lbnRpdGllc1RvVmFsdWVzKGVudGl0aWVzKSlcbiAgfVxuXG4gIHB1YmxpYyBhcHBlbmRFbnRpdGllcyhuZXdFbnRpdGllczogVEVudGl0eVtdKSB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuZW50aXRpZXMgPyB0aGlzLmVudGl0aWVzIDogW11cbiAgICB0aGlzLnVwZGF0ZVZhbHVlQnlFbnRpdGllcyhbLi4uY3VycmVudCwgLi4ubmV3RW50aXRpZXNdKVxuICB9XG5cbiAgcHVibGljIGFwcGVuZEVudGl0eShuZXdFbnRpdHk6IGFueSkge1xuICAgIHRoaXMuYXBwZW5kRW50aXRpZXMoW25ld0VudGl0eV0pXG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdFJlbW92ZUVudGl0eSh0b1JlbW92ZTogVEVudGl0eSwgc2tpcENvbmZpcm0/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRvUmVtb3ZlICE9PSB1bmRlZmluZWQgJiYgdG9SZW1vdmUgIT09IG51bGwpIHtcbiAgICAgIHRoaXMucmVxdWVzdFJlbW92ZUVudGl0aWVzKFt0b1JlbW92ZV0sIHNraXBDb25maXJtKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0UmVtb3ZlRW50aXRpZXModG9SZW1vdmU6IFRFbnRpdHlbXSwgc2tpcENvbmZpcm0/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm1EZWxldGUoXG4gICAgICB7XG4gICAgICAgIGRlbGV0aW9uQ291bnQ6IHRvUmVtb3ZlLmxlbmd0aCxcbiAgICAgICAgY29uZmlybVJlbW92YWw6IHRoaXMuY29uZmlybVJlbW92YWwsXG4gICAgICAgIHNraXBDb25maXJtOiBza2lwQ29uZmlybSxcbiAgICAgIH0sXG4gICAgICAoKSA9PiB0aGlzLnJlbW92ZUVudGl0aWVzKHRvUmVtb3ZlKVxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVFbnRpdGllcyh0b1JlbW92ZTogVEVudGl0eVtdKTogdm9pZCB7XG4gICAgdG9SZW1vdmUuZm9yRWFjaCgoZSkgPT4gdGhpcy5yZW1vdmVFbnRpdHkoZSkpXG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlRW50aXR5KHRvUmVtb3ZlOiBURW50aXR5KTogdm9pZCB7XG4gICAgY29uc3QgcmVtYWluaW5nID0gdGhpcy5lbnRpdGllcy5maWx0ZXIoKGwpID0+ICF0aGlzLmlzRXF1YWwobCwgdG9SZW1vdmUpKVxuICAgIHRoaXMudXBkYXRlVmFsdWVCeUVudGl0aWVzKHJlbWFpbmluZylcbiAgfVxuXG4gIHB1YmxpYyBvcGVuU2VsZWN0aW9uUG9wdXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uUG9wdXApIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uUG9wdXBcbiAgICAgICAgLmNob29zZSgoZTogVEVudGl0eSkgPT4gdGhpcy5nZXRFbnRpdHlJZChlKSwgdGhpcy5lbnRpdGllcywgdGhpcy5maWx0ZXJzLCB0aGlzLnNvcnRzLCB0cnVlKVxuICAgICAgICAuc3Vic2NyaWJlKChzZWxlY3Rpb246IFRFbnRpdHlbXSkgPT4gdGhpcy51cGRhdGVWYWx1ZUJ5RW50aXRpZXMoc2VsZWN0aW9uKSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgJ0NhbnQgb3BlbiBzZWxlY3Rpb24gYnJvd3NlciBwb3B1cCwgc2luY2UgW1NlbGVjdGlvbk1vZGVsUG9wdXBEaXJlY3RpdmVdIHdhcyBub3QgZm91bmQhJ1xuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbnRpdHlUb1ZhbHVlKGVudGl0eTogVEVudGl0eSk6IFRWYWx1ZSB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICBjb25zdCBpZCA9IHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KVxuICAgICAgcmV0dXJuICg8YW55PmlkKSBhcyBUVmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICg8YW55PmVudGl0eSkgYXMgVFZhbHVlXG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEludGVybmFsIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbHVlc0VxdWFscyhhOiBUVmFsdWVbXSwgYjogVFZhbHVlW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lcXVhbElkc0V4YWN0T3JkZXIodGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKGEpLCB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXMoYikpXG4gIH1cblxuICBwcm90ZWN0ZWQgb25EYXRhQ29udGV4dENoYW5nZWQoZGF0YTogSURhdGFDb250ZXh0PFRFbnRpdHk+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICB0aGlzLnNlbGVjdEVudGl0aWVzQnlJZHModGhpcy5lbnRpdHlJZHMpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYWZ0ZXIgYSB2YWx1ZSBoYXMgYmVlbiB3cml0dGVuIHRvIHRoaXMgY29udHJvbC5cbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3cml0ZVRvQ29udHJvbCh2YWx1ZTogVFZhbHVlW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIGNvbnN0IGVudGl0eUlkcyA9ICg8YW55PnZhbHVlKSBhcyBUSWRbXVxuICAgICAgLy8gVmFsdWUgd2FzIHdyaXR0ZW4gYXMgZW50aXR5IGlkcywgZW5zdXJlIHdlIHNlbGVjdCBlbnRpdHkgYnkgaWRcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd3cml0ZVRvQ29udHJvbDogdmFsdWUgd2FzIHdyaXR0ZW4gYXMgaWRzOiAnICsgZW50aXR5SWRzLCB2YWx1ZSlcbiAgICAgIHRoaXMuc2VsZWN0RW50aXRpZXNCeUlkcyhlbnRpdHlJZHMpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0eSwgZW5zdXJlIGVudGl0eSBpcyB1cGRhdGVkXG4gICAgICBjb25zdCBjdXJyZW50RW50aXRpZXMgPSB0aGlzLmVudGl0aWVzXG4gICAgICBjb25zdCBuZXdFbnRpdGllcyA9ICg8YW55PnZhbHVlKSBhcyBURW50aXR5W11cbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAnd3JpdGVUb0NvbnRyb2w6IHZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0aWVzIChzaXplKTogJyArIG5ld0VudGl0aWVzPy5sZW5ndGgsXG4gICAgICAgIHZhbHVlXG4gICAgICApXG4gICAgICBpZiAoIXRoaXMuZXF1YWxFbnRpdGllcyhjdXJyZW50RW50aXRpZXMsIG5ld0VudGl0aWVzKSkge1xuICAgICAgICB0aGlzLndyaXRlRW50aXRpZXNTb3J0ZWQobmV3RW50aXRpZXMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdJZ25vcmVkIHdyaXR0ZW4gZW50aXRpZXMgYXMgdGhleSBhcmUgYWxyZWFkeSBzZXQgdG8gZW50aXRpZXMkIScpXG4gICAgICB9XG4gICAgfVxuICAgIHN1cGVyLndyaXRlVG9Db250cm9sKHZhbHVlKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBpc0FscmVhZHlQcmVzZW50KHF1ZXJ5VmFsdWU6IFRFbnRpdHkpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5lbnRpdGllcykge1xuICAgICAgcmV0dXJuIHRoaXMuZW50aXRpZXMuc29tZSgodikgPT4gdGhpcy5pc0VxdWFsKHYsIHF1ZXJ5VmFsdWUpKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVudGl0eUlkc0Zyb21WYWx1ZXModmFsdWVzOiBUVmFsdWVbXSk6IFRJZFtdIHwgbnVsbCB7XG4gICAgaWYgKHZhbHVlcykge1xuICAgICAgcmV0dXJuIHZhbHVlcy5tYXAoKHYpID0+IHRoaXMuZW50aXR5SWRGcm9tVmFsdWUodikpXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBwcml2YXRlIGVudGl0eUlkRnJvbVZhbHVlKHZhbHVlOiBUVmFsdWUpOiBUSWQge1xuICAgIGlmICh0aGlzLnZhbHVlQXNJZCkge1xuICAgICAgcmV0dXJuICg8YW55PnZhbHVlKSBhcyBUSWRcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZW50aXR5ID0gKDxhbnk+dmFsdWUpIGFzIFRFbnRpdHlcbiAgICAgIHJldHVybiB0aGlzLmdldEVudGl0eUlkKGVudGl0eSlcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVudGl0aWVzVG9WYWx1ZXMoZW50aXRpZXM6IFRFbnRpdHlbXSk6IFRWYWx1ZVtdIHwgbnVsbCB7XG4gICAgaWYgKGVudGl0aWVzKSB7XG4gICAgICByZXR1cm4gZW50aXRpZXMubWFwKChlKSA9PiB0aGlzLmVudGl0eVRvVmFsdWUoZSkpXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBwcml2YXRlIGdldEVudGl0eUlkcyh2YWx1ZXM6IFRFbnRpdHlbXSB8IG51bGwpOiBUSWRbXSB7XG4gICAgaWYgKHZhbHVlcykge1xuICAgICAgcmV0dXJuIHZhbHVlcy5tYXAoKHYpID0+IHRoaXMuZ2V0RW50aXR5SWQodikpXG4gICAgfVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBwcml2YXRlIGVxdWFsSWRzKGlkc0E6IFRJZFtdLCBpZHNCOiBUSWRbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBTZXRzLmVxdWFsQ29udGVudChpZHNBLCBpZHNCKVxuICB9XG5cbiAgcHJpdmF0ZSBlcXVhbElkc0V4YWN0T3JkZXIoaWRzQTogVElkW10sIGlkc0I6IFRJZFtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEFycmF5cy5lcXVhbENvbnRlbnRBbmRPcmRlcihpZHNBLCBpZHNCKVxuICB9XG5cbiAgcHJpdmF0ZSBlcXVhbEVudGl0aWVzKGVudGl0aWVzQTogVEVudGl0eVtdLCBlbnRpdGllc0I6IFRFbnRpdHlbXSkge1xuICAgIHJldHVybiB0aGlzLmVxdWFsSWRzKHRoaXMuZ2V0RW50aXR5SWRzKGVudGl0aWVzQSksIHRoaXMuZ2V0RW50aXR5SWRzKGVudGl0aWVzQikpXG4gIH1cblxuICBwcml2YXRlIGVxdWFsRW50aXRpZXNFeGFjdE9yZGVyKGVudGl0aWVzQTogVEVudGl0eVtdLCBlbnRpdGllc0I6IFRFbnRpdHlbXSkge1xuICAgIHJldHVybiB0aGlzLmVxdWFsSWRzRXhhY3RPcmRlcih0aGlzLmdldEVudGl0eUlkcyhlbnRpdGllc0EpLCB0aGlzLmdldEVudGl0eUlkcyhlbnRpdGllc0IpKVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RFbnRpdGllc0J5SWRzKGlkczogVElkW10pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50RW50aXRpZXMgPSB0aGlzLmVudGl0aWVzXG4gICAgdGhpcy5sb2dnZXIuaW5mbygnc2VsZWN0RW50aXRpZXNCeUlkczogaWRzOiAnICsgaWRzICsgJywgY3VycmVudCBlbnRpdGllczonLCBjdXJyZW50RW50aXRpZXMpXG4gICAgaWYgKGN1cnJlbnRFbnRpdGllcyAmJiB0aGlzLmVxdWFsSWRzKHRoaXMuZ2V0RW50aXR5SWRzKGN1cnJlbnRFbnRpdGllcyksIGlkcykpIHtcbiAgICAgIHJldHVybiAvLyBFbnRpdGllcyBhbHJlYWR5IGxvYWRlZFxuICAgIH1cblxuICAgIHRoaXMuZmluZE9yTG9hZEVudGl0aWVzQnlJZHMoaWRzKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGVudGl0aWVzKSA9PiAodGhpcy5lbnRpdGllcyA9IGVudGl0aWVzKSxcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB0aGlzLnVwZGF0ZVN0YXRlKEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuZXJyb3IoZXJyKSksXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgZmluZE9yTG9hZEVudGl0aWVzQnlJZHMoaWRzOiBUSWRbXSk6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XG4gICAgaWYgKGlkcyA9PT0gbnVsbCB8fCBpZHMubGVuZ3RoID09IDApIHtcbiAgICAgIHJldHVybiBvZihbXSlcbiAgICB9XG4gICAgaWYgKHRoaXMuZGF0YUNvbnRleHQpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5maW5kSW5EYXRhQ29udGV4dChpZHMpXG4gICAgICBjb25zdCBtaXNzaW5nSWRzID0gaWRzLmZpbHRlcigoaWQpID0+ICFleGlzdGluZy5oYXMoaWQpKVxuICAgICAgY29uc3QgdmFsdWVMb2FkUmVxdWVzdCQgPVxuICAgICAgICBtaXNzaW5nSWRzLmxlbmd0aCA+IDAgPyB0aGlzLmxvYWRFbnRpdGllc0J5SWRzKG1pc3NpbmdJZHMpIDogb2YobmV3IE1hcCgpKVxuXG4gICAgICByZXR1cm4gdmFsdWVMb2FkUmVxdWVzdCQucGlwZShcbiAgICAgICAgbWFwKChsb2FkZWQpID0+IHtcbiAgICAgICAgICBsb2FkZWQuZm9yRWFjaCgodiwgaykgPT4gZXhpc3Rpbmcuc2V0KGssIHYpKVxuICAgICAgICAgIHJldHVybiBleGlzdGluZ1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKChhbGxWYWx1ZXNNYXApID0+IEFycmF5LmZyb20oYWxsVmFsdWVzTWFwLnZhbHVlcygpKSkgLy8gVE9ETyBTb3J0P1xuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKCdGYWlsZWQgdG8gc2VsZWN0IHZhbHVlIGJ5IElkczogJyArIGlkcyArICcgLSBEYXRhQ29udGV4dCBub3QgYXZhaWxhYmxlLicpXG4gICAgICByZXR1cm4gRU1QVFlcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRFbnRpdGllc0J5SWRzKGlkczogVElkW10pOiBPYnNlcnZhYmxlPE1hcDxUSWQsIFRFbnRpdHk+PiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZU9yVGhyb3coKVxuICAgICAgLmZpbmRCeUlkcyhpZHMpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGVudGl0aWVzIGJ5IGlkczogJyArIGlkcywgZXJyKVxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycilcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgodmFsdWVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0xvYWRlZCBlbnRpdGllcyBieSBpZDonLCB2YWx1ZXMpXG4gICAgICAgICAgY29uc3QgdmFsdWVNYXAgPSBuZXcgTWFwPFRJZCwgVEVudGl0eT4oKVxuICAgICAgICAgIHZhbHVlcy5mb3JFYWNoKCh2KSA9PiB2YWx1ZU1hcC5zZXQodGhpcy5nZXRFbnRpdHlJZCh2KSwgdikpXG4gICAgICAgICAgcmV0dXJuIHZhbHVlTWFwXG4gICAgICAgIH0pXG4gICAgICApXG4gIH1cblxuICBwcml2YXRlIGZpbmRJbkRhdGFDb250ZXh0KGlkczogVElkW10pOiBNYXA8VElkLCBURW50aXR5PiB7XG4gICAgY29uc3QgZXhpc3RpbmdWYWx1ZXMgPSBuZXcgTWFwPFRJZCwgVEVudGl0eT4oKVxuICAgIGlmIChpZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGFDb250ZXh0LnNuYXBzaG90LmRhdGFcbiAgICAgIGNvbnN0IHJlcXVpcmVkSWRzID0gbmV3IFNldChpZHMpXG4gICAgICBkYXRhXG4gICAgICAgIC5maWx0ZXIoKGQpID0+IHJlcXVpcmVkSWRzLmhhcyh0aGlzLmdldEVudGl0eUlkKGQpKSlcbiAgICAgICAgLmZvckVhY2goKGQpID0+IGV4aXN0aW5nVmFsdWVzLnNldCh0aGlzLmdldEVudGl0eUlkKGQpLCBkKSlcbiAgICB9XG4gICAgcmV0dXJuIGV4aXN0aW5nVmFsdWVzXG4gIH1cblxuICBwcml2YXRlIHdyaXRlRW50aXRpZXNTb3J0ZWQoZW50aXRpZXM6IFRFbnRpdHlbXSk6IFRFbnRpdHlbXSB7XG4gICAgY29uc3Qgc29ydGVkID0gdGhpcy5zb3J0RW50aXRpZXMoZW50aXRpZXMpXG4gICAgdGhpcy5fZW50aXRpZXMkLm5leHQoc29ydGVkKVxuICAgIHJldHVybiBzb3J0ZWRcbiAgfVxuXG4gIHByaXZhdGUgc29ydEVudGl0aWVzKGVudGl0aWVzOiBURW50aXR5W10pOiBURW50aXR5W10ge1xuICAgIGlmIChlbnRpdGllcyAmJiB0aGlzLmVudGl0aWVzU29ydHMgJiYgdGhpcy5lbnRpdGllc1NvcnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHNvcnRlZCA9IFNvcnRVdGlsLnNvcnREYXRhKGVudGl0aWVzLCB0aGlzLmVudGl0aWVzU29ydHMpXG4gICAgICBpZiAoIVNvcnRVdGlsLmVxdWFsc0V4YWN0UmVmcyhlbnRpdGllcywgc29ydGVkKSkge1xuICAgICAgICAvLyBPbmx5IHJldHVybiBhIGNvcHkgb2YgdGhlIGFycmF5IGlmIGFjdHVhbGx5IHNvbWV0aGluZyBjaGFuZ2VkXG4gICAgICAgIHJldHVybiBzb3J0ZWRcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGVudGl0aWVzXG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  export class ChipOptionModel {
2
- constructor(value, displayText, colorSpec, locked, avatarSpec, trailingSpec, selected) {
2
+ constructor(id, value, displayText, colorSpec, locked, avatarSpec, trailingSpec, selected) {
3
+ this.id = id;
3
4
  this.value = value;
4
5
  this.displayText = displayText;
5
6
  this.colorSpec = colorSpec;
@@ -69,7 +70,7 @@ export default class ChipOptionsProvider {
69
70
  else {
70
71
  locked = chipSpec.locked;
71
72
  }
72
- return new ChipOptionModel(e, this.resolveDisplayText(e, options), {
73
+ return new ChipOptionModel(this.getEntityId(e), e, this.resolveDisplayText(e, options), {
73
74
  themeColor: selected ? 'accent' : undefined,
74
75
  }, locked, chipSpec.avatarSpec, chipSpec.trailingSpec, selected);
75
76
  }
@@ -83,4 +84,4 @@ export default class ChipOptionsProvider {
83
84
  : options.context.displayPropertyResolver(entity);
84
85
  }
85
86
  }
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1vcHRpb25zLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9ucy9jaGlwLW9wdGlvbnMtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDa0IsS0FBUSxFQUNSLFdBQW1CLEVBQ25CLFNBQXdCLEVBQ3hCLE1BQWUsRUFDZixVQUEwQixFQUMxQixZQUEwQixFQUMxQixRQUFpQjtRQU5qQixVQUFLLEdBQUwsS0FBSyxDQUFHO1FBQ1IsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBZ0I7UUFDMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBUztJQUNoQyxDQUFDO0NBQ0w7QUFlRCxNQUFNLENBQUMsT0FBTyxPQUFPLG1CQUFtQjtJQUN0Qzs7OztnRkFJNEU7SUFFNUUsWUFDVSxVQUFnQyxFQUNoQyxTQUFvQixFQUNwQixVQUFnRDtRQUZoRCxlQUFVLEdBQVYsVUFBVSxDQUFzQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQXNDO0lBQ3ZELENBQUM7SUFFSjs7OztnRkFJNEU7SUFFckUseUJBQXlCLENBQzlCLFFBQW1CLEVBQ25CLFNBQWdCLEVBQ2hCLE9BQXlCO1FBRXpCLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEMsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxFQUFFLE9BQU8s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QyxPQUFPLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDckQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0T3B0aW9uQ2hpcFNwZWMgfSBmcm9tICcuL3NlbGVjdC1vcHRpb24tY2hpcC1zcGVjJ1xuaW1wb3J0IHsgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSwgVGV4dFJlc29sdmVyRm4gfSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3QtYmFzZSdcbmltcG9ydCB7XG4gIENoaXBBdmF0YXJTcGVjLFxuICBDaGlwQ29sb3JTcGVjLFxuICBUcmFpbGluZ1NwZWMsXG59IGZyb20gJy4uL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy9zZWxlY3QtY2hpcC1zcGVjJ1xuaW1wb3J0IHsgSURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhc291cmNlL2RhdGEtc291cmNlJ1xuXG5leHBvcnQgY2xhc3MgQ2hpcE9wdGlvbk1vZGVsPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBULFxuICAgIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VGV4dDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBjb2xvclNwZWM6IENoaXBDb2xvclNwZWMsXG4gICAgcHVibGljIHJlYWRvbmx5IGxvY2tlZDogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgYXZhdGFyU3BlYzogQ2hpcEF2YXRhclNwZWMsXG4gICAgcHVibGljIHJlYWRvbmx5IHRyYWlsaW5nU3BlYzogVHJhaWxpbmdTcGVjLFxuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZDogYm9vbGVhblxuICApIHt9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbnRleHQge1xuICBzdGF0ZTogRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZVxuICBkaXNwbGF5UHJvcGVydHlSZXNvbHZlcjogVGV4dFJlc29sdmVyRm5cbiAgcmVhZG9ubHk6IGJvb2xlYW5cbiAgZGlzYWJsZWQ6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZENoaXBPcHRpb25zIHtcbiAgY29udGV4dDogTXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbnRleHRcbiAgaXNMb2NrZWQ6IGJvb2xlYW5cbiAgZW50aXR5TGFiZWxNYXA/OiBNYXA8YW55LCBzdHJpbmc+XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENoaXBPcHRpb25zUHJvdmlkZXI8VElkLCBURW50aXR5PiB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGF0YVNvdXJjZTogSURhdGFTb3VyY2U8VEVudGl0eT4sXG4gICAgcHJpdmF0ZSBhdmFpbGFibGU6IFRFbnRpdHlbXSxcbiAgICBwcml2YXRlIGNoaXBTcGVjRm46IChlOiBURW50aXR5KSA9PiBTZWxlY3RPcHRpb25DaGlwU3BlY1xuICApIHt9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGJ1aWxkQ2hpcE1vZGVsc09yRmFsbGJhY2soXG4gICAgZW50aXRpZXM6IFRFbnRpdHlbXSxcbiAgICBlbnRpdHlJZHM6IFRJZFtdLFxuICAgIG9wdGlvbnM6IEJ1aWxkQ2hpcE9wdGlvbnNcbiAgKTogQ2hpcE9wdGlvbk1vZGVsPFRFbnRpdHk+W10ge1xuICAgIGlmIChvcHRpb25zLmNvbnRleHQuc3RhdGUuZXJyb3IpIHtcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkQ2hpcEZhbGxiYWNrTW9kZWxzKGVudGl0eUlkcywgb3B0aW9ucylcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRDaGlwTW9kZWxzKHRoaXMuYXZhaWxhYmxlLCBlbnRpdGllcywgb3B0aW9ucylcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgYnVpbGRDaGlwRmFsbGJhY2tNb2RlbChcbiAgICBlbnRpdHlJZDogVElkLFxuICAgIG9wdGlvbnM6IEJ1aWxkQ2hpcE9wdGlvbnNcbiAgKTogQ2hpcE9wdGlvbk1vZGVsPFRFbnRpdHk+IHtcbiAgICBvcHRpb25zLmNvbnRleHQuZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIgPSAoeCkgPT4geC5pZFxuICAgIHJldHVybiB0aGlzLmJ1aWxkQ2hpcEJ5U3BlYyhcbiAgICAgIDxhbnk+eyBpZDogZW50aXR5SWQgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICB7XG4gICAgICAgIGNvbG9yU3BlYzoge1xuICAgICAgICAgIHRoZW1lQ29sb3I6ICd3YXJuJyxcbiAgICAgICAgfSxcbiAgICAgICAgYXZhdGFyU3BlYzoge1xuICAgICAgICAgIGhpZGU6IGZhbHNlLFxuICAgICAgICAgIGxhcmdlOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBmYWxzZSAvLyBUT0RPXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENoaXBGYWxsYmFja01vZGVscyhcbiAgICBlbnRpdHlJZHM6IFRJZFtdLFxuICAgIG9wdGlvbnM6IEJ1aWxkQ2hpcE9wdGlvbnNcbiAgKTogQ2hpcE9wdGlvbk1vZGVsPFRFbnRpdHk+W10ge1xuICAgIHJldHVybiBlbnRpdHlJZHMubWFwKChpZCkgPT4gdGhpcy5idWlsZENoaXBGYWxsYmFja01vZGVsKGlkLCBvcHRpb25zKSlcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDaGlwTW9kZWxzKFxuICAgIGF2YWlsYWJsZXM6IFRFbnRpdHlbXSxcbiAgICBlbnRpdGllczogVEVudGl0eVtdLFxuICAgIG9wdGlvbnM6IEJ1aWxkQ2hpcE9wdGlvbnNcbiAgKTogQ2hpcE9wdGlvbk1vZGVsPFRFbnRpdHk+W10ge1xuICAgIGlmIChhdmFpbGFibGVzKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZElkcyA9IG5ldyBTZXQ8VElkPihlbnRpdGllcy5tYXAoKGUpID0+IHRoaXMuZ2V0RW50aXR5SWQoZSkpKVxuXG4gICAgICByZXR1cm4gYXZhaWxhYmxlcy5tYXAoKGF2YWlsYWJsZSkgPT5cbiAgICAgICAgdGhpcy5idWlsZENoaXBCeVNwZWMoXG4gICAgICAgICAgYXZhaWxhYmxlLFxuICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgdGhpcy5jaGlwU3BlY0ZuKGF2YWlsYWJsZSksXG4gICAgICAgICAgc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0RW50aXR5SWQoYXZhaWxhYmxlKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gPENoaXBPcHRpb25Nb2RlbDxURW50aXR5PltdPltdXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENoaXBCeVNwZWMoXG4gICAgZTogVEVudGl0eSxcbiAgICBvcHRpb25zOiBCdWlsZENoaXBPcHRpb25zLFxuICAgIGNoaXBTcGVjOiBTZWxlY3RPcHRpb25DaGlwU3BlYyxcbiAgICBzZWxlY3RlZDogYm9vbGVhblxuICApOiBDaGlwT3B0aW9uTW9kZWw8VEVudGl0eT4ge1xuICAgIGxldCBsb2NrZWQgPSBmYWxzZVxuICAgIGlmIChvcHRpb25zLmlzTG9ja2VkKSB7XG4gICAgICBsb2NrZWQgPSB0cnVlXG4gICAgfSBlbHNlIHtcbiAgICAgIGxvY2tlZCA9IGNoaXBTcGVjLmxvY2tlZFxuICAgIH1cblxuICAgIHJldHVybiBuZXcgQ2hpcE9wdGlvbk1vZGVsPFRFbnRpdHk+KFxuICAgICAgZSxcbiAgICAgIHRoaXMucmVzb2x2ZURpc3BsYXlUZXh0KGUsIG9wdGlvbnMpLFxuICAgICAge1xuICAgICAgICB0aGVtZUNvbG9yOiBzZWxlY3RlZCA/ICdhY2NlbnQnIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIGxvY2tlZCxcbiAgICAgIGNoaXBTcGVjLmF2YXRhclNwZWMsXG4gICAgICBjaGlwU3BlYy50cmFpbGluZ1NwZWMsXG4gICAgICBzZWxlY3RlZFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RW50aXR5SWQoZTogVEVudGl0eSk6IFRJZCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5nZXRJZChlKVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRGlzcGxheVRleHQoZW50aXR5OiBURW50aXR5LCBvcHRpb25zOiBCdWlsZENoaXBPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBlbnRpdHlMYWJlbE1hcCA9IG9wdGlvbnMuZW50aXR5TGFiZWxNYXBcbiAgICByZXR1cm4gZW50aXR5TGFiZWxNYXAuaGFzKGVudGl0eSlcbiAgICAgID8gZW50aXR5TGFiZWxNYXAuZ2V0KGVudGl0eSlcbiAgICAgIDogb3B0aW9ucy5jb250ZXh0LmRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyKGVudGl0eSlcbiAgfVxufVxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1vcHRpb25zLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9ucy9jaGlwLW9wdGlvbnMtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDa0IsRUFBTyxFQUNQLEtBQVEsRUFDUixXQUFtQixFQUNuQixTQUF3QixFQUN4QixNQUFlLEVBQ2YsVUFBMEIsRUFDMUIsWUFBMEIsRUFDMUIsUUFBaUI7UUFQakIsT0FBRSxHQUFGLEVBQUUsQ0FBSztRQUNQLFVBQUssR0FBTCxLQUFLLENBQUc7UUFDUixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVM7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFnQjtRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixhQUFRLEdBQVIsUUFBUSxDQUFTO0lBQ2hDLENBQUM7Q0FDTDtBQWVELE1BQU0sQ0FBQyxPQUFPLE9BQU8sbUJBQW1CO0lBQ3RDOzs7O2dGQUk0RTtJQUU1RSxZQUNVLFVBQWdDLEVBQ2hDLFNBQW9CLEVBQ3BCLFVBQWdEO1FBRmhELGVBQVUsR0FBVixVQUFVLENBQXNCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBc0M7SUFDdkQsQ0FBQztJQUVKOzs7O2dGQUk0RTtJQUVyRSx5QkFBeUIsQ0FDOUIsUUFBbUIsRUFDbkIsU0FBZ0IsRUFDaEIsT0FBeUI7UUFFekIsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQyxPQUFPLElB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O1lBQy9CLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUM1QixDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3RPcHRpb25DaGlwU3BlYyB9IGZyb20gJy4vc2VsZWN0LW9wdGlvbi1jaGlwLXNwZWMnXG5pbXBvcnQgeyBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLCBUZXh0UmVzb2x2ZXJGbiB9IGZyb20gJy4uLy4uL2VsZGVyLXNlbGVjdC1iYXNlJ1xuaW1wb3J0IHtcbiAgQ2hpcEF2YXRhclNwZWMsXG4gIENoaXBDb2xvclNwZWMsXG4gIFRyYWlsaW5nU3BlYyxcbn0gZnJvbSAnLi4vZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzL3NlbGVjdC1jaGlwLXNwZWMnXG5pbXBvcnQgeyBJRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UnXG5cbmV4cG9ydCBjbGFzcyBDaGlwT3B0aW9uTW9kZWw8VD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWQ6IGFueSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IFQsXG4gICAgcHVibGljIHJlYWRvbmx5IGRpc3BsYXlUZXh0OiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbG9yU3BlYzogQ2hpcENvbG9yU3BlYyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgbG9ja2VkOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSBhdmF0YXJTcGVjOiBDaGlwQXZhdGFyU3BlYyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJhaWxpbmdTcGVjOiBUcmFpbGluZ1NwZWMsXG4gICAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkOiBib29sZWFuXG4gICkge31cbn1cblxuZXhwb3J0IGludGVyZmFjZSBNdWx0aVNlbGVjdENoaXBPcHRpb25zQ29udGV4dCB7XG4gIHN0YXRlOiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlXG4gIGRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyOiBUZXh0UmVzb2x2ZXJGblxuICByZWFkb25seTogYm9vbGVhblxuICBkaXNhYmxlZDogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkQ2hpcE9wdGlvbnMge1xuICBjb250ZXh0OiBNdWx0aVNlbGVjdENoaXBPcHRpb25zQ29udGV4dFxuICBpc0xvY2tlZDogYm9vbGVhblxuICBlbnRpdHlMYWJlbE1hcD86IE1hcDxhbnksIHN0cmluZz5cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2hpcE9wdGlvbnNQcm92aWRlcjxUSWQsIFRFbnRpdHk+IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRhU291cmNlOiBJRGF0YVNvdXJjZTxURW50aXR5PixcbiAgICBwcml2YXRlIGF2YWlsYWJsZTogVEVudGl0eVtdLFxuICAgIHByaXZhdGUgY2hpcFNwZWNGbjogKGU6IFRFbnRpdHkpID0+IFNlbGVjdE9wdGlvbkNoaXBTcGVjXG4gICkge31cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgYnVpbGRDaGlwTW9kZWxzT3JGYWxsYmFjayhcbiAgICBlbnRpdGllczogVEVudGl0eVtdLFxuICAgIGVudGl0eUlkczogVElkW10sXG4gICAgb3B0aW9uczogQnVpbGRDaGlwT3B0aW9uc1xuICApOiBDaGlwT3B0aW9uTW9kZWw8VEVudGl0eT5bXSB7XG4gICAgaWYgKG9wdGlvbnMuY29udGV4dC5zdGF0ZS5lcnJvcikge1xuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRDaGlwRmFsbGJhY2tNb2RlbHMoZW50aXR5SWRzLCBvcHRpb25zKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5idWlsZENoaXBNb2RlbHModGhpcy5hdmFpbGFibGUsIGVudGl0aWVzLCBvcHRpb25zKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBidWlsZENoaXBGYWxsYmFja01vZGVsKFxuICAgIGVudGl0eUlkOiBUSWQsXG4gICAgb3B0aW9uczogQnVpbGRDaGlwT3B0aW9uc1xuICApOiBDaGlwT3B0aW9uTW9kZWw8VEVudGl0eT4ge1xuICAgIG9wdGlvbnMuY29udGV4dC5kaXNwbGF5UHJvcGVydHlSZXNvbHZlciA9ICh4KSA9PiB4LmlkXG4gICAgcmV0dXJuIHRoaXMuYnVpbGRDaGlwQnlTcGVjKFxuICAgICAgPGFueT57IGlkOiBlbnRpdHlJZCB9LFxuICAgICAgb3B0aW9ucyxcbiAgICAgIHtcbiAgICAgICAgY29sb3JTcGVjOiB7XG4gICAgICAgICAgdGhlbWVDb2xvcjogJ3dhcm4nLFxuICAgICAgICB9LFxuICAgICAgICBhdmF0YXJTcGVjOiB7XG4gICAgICAgICAgaGlkZTogZmFsc2UsXG4gICAgICAgICAgbGFyZ2U6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGZhbHNlIC8vIFRPRE9cbiAgICApXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2hpcEZhbGxiYWNrTW9kZWxzKFxuICAgIGVudGl0eUlkczogVElkW10sXG4gICAgb3B0aW9uczogQnVpbGRDaGlwT3B0aW9uc1xuICApOiBDaGlwT3B0aW9uTW9kZWw8VEVudGl0eT5bXSB7XG4gICAgcmV0dXJuIGVudGl0eUlkcy5tYXAoKGlkKSA9PiB0aGlzLmJ1aWxkQ2hpcEZhbGxiYWNrTW9kZWwoaWQsIG9wdGlvbnMpKVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENoaXBNb2RlbHMoXG4gICAgYXZhaWxhYmxlczogVEVudGl0eVtdLFxuICAgIGVudGl0aWVzOiBURW50aXR5W10sXG4gICAgb3B0aW9uczogQnVpbGRDaGlwT3B0aW9uc1xuICApOiBDaGlwT3B0aW9uTW9kZWw8VEVudGl0eT5bXSB7XG4gICAgaWYgKGF2YWlsYWJsZXMpIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gbmV3IFNldDxUSWQ+KGVudGl0aWVzLm1hcCgoZSkgPT4gdGhpcy5nZXRFbnRpdHlJZChlKSkpXG5cbiAgICAgIHJldHVybiBhdmFpbGFibGVzLm1hcCgoYXZhaWxhYmxlKSA9PlxuICAgICAgICB0aGlzLmJ1aWxkQ2hpcEJ5U3BlYyhcbiAgICAgICAgICBhdmFpbGFibGUsXG4gICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICB0aGlzLmNoaXBTcGVjRm4oYXZhaWxhYmxlKSxcbiAgICAgICAgICBzZWxlY3RlZElkcy5oYXModGhpcy5nZXRFbnRpdHlJZChhdmFpbGFibGUpKVxuICAgICAgICApXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA8Q2hpcE9wdGlvbk1vZGVsPFRFbnRpdHk+W10+W11cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2hpcEJ5U3BlYyhcbiAgICBlOiBURW50aXR5LFxuICAgIG9wdGlvbnM6IEJ1aWxkQ2hpcE9wdGlvbnMsXG4gICAgY2hpcFNwZWM6IFNlbGVjdE9wdGlvbkNoaXBTcGVjLFxuICAgIHNlbGVjdGVkOiBib29sZWFuXG4gICk6IENoaXBPcHRpb25Nb2RlbDxURW50aXR5PiB7XG4gICAgbGV0IGxvY2tlZCA9IGZhbHNlXG4gICAgaWYgKG9wdGlvbnMuaXNMb2NrZWQpIHtcbiAgICAgIGxvY2tlZCA9IHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgbG9ja2VkID0gY2hpcFNwZWMubG9ja2VkXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBDaGlwT3B0aW9uTW9kZWw8VEVudGl0eT4oXG4gICAgICB0aGlzLmdldEVudGl0eUlkKGUpLFxuICAgICAgZSxcbiAgICAgIHRoaXMucmVzb2x2ZURpc3BsYXlUZXh0KGUsIG9wdGlvbnMpLFxuICAgICAge1xuICAgICAgICB0aGVtZUNvbG9yOiBzZWxlY3RlZCA/ICdhY2NlbnQnIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIGxvY2tlZCxcbiAgICAgIGNoaXBTcGVjLmF2YXRhclNwZWMsXG4gICAgICBjaGlwU3BlYy50cmFpbGluZ1NwZWMsXG4gICAgICBzZWxlY3RlZFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RW50aXR5SWQoZTogVEVudGl0eSk6IFRJZCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5nZXRJZChlKVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRGlzcGxheVRleHQoZW50aXR5OiBURW50aXR5LCBvcHRpb25zOiBCdWlsZENoaXBPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBlbnRpdHlMYWJlbE1hcCA9IG9wdGlvbnMuZW50aXR5TGFiZWxNYXBcbiAgICByZXR1cm4gZW50aXR5TGFiZWxNYXAuaGFzKGVudGl0eSlcbiAgICAgID8gZW50aXR5TGFiZWxNYXAuZ2V0KGVudGl0eSlcbiAgICAgIDogb3B0aW9ucy5jb250ZXh0LmRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyKGVudGl0eSlcbiAgfVxufVxuIl19