@elderbyte/ngx-starter 16.0.3 → 16.2.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 (300) hide show
  1. package/esm2022/lib/common/data/filters/filter-context.mjs +8 -2
  2. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +3 -3
  3. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +3 -3
  4. package/esm2022/lib/common/forms/elder-from-field-base.mjs +3 -3
  5. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +3 -3
  6. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +3 -3
  7. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +3 -3
  8. package/esm2022/lib/common/forms/form-field-base.component.mjs +3 -3
  9. package/esm2022/lib/common/forms/multi-model-base.component.mjs +3 -3
  10. package/esm2022/lib/common/forms/template-composite-control.mjs +3 -3
  11. package/esm2022/lib/common/forms/value-accessor-base.mjs +3 -3
  12. package/esm2022/lib/common/http/http-client-builder.service.mjs +3 -3
  13. package/esm2022/lib/common/http/http-client-pristine.mjs +3 -3
  14. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +3 -3
  15. package/esm2022/lib/common/url/elder-router.service.mjs +3 -3
  16. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +3 -3
  17. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +3 -3
  18. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +4 -4
  19. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +3 -3
  20. package/esm2022/lib/components/auditing/elder-audit.module.mjs +4 -4
  21. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +3 -3
  22. package/esm2022/lib/components/badge/elder-badge.directive.mjs +3 -3
  23. package/esm2022/lib/components/badge/elder-badge.module.mjs +4 -4
  24. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -3
  25. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +4 -4
  26. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +3 -3
  27. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +3 -3
  28. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +3 -3
  29. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +4 -4
  30. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -3
  31. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +18 -18
  32. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +4 -4
  33. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +3 -3
  34. package/esm2022/lib/components/chips/elder-chips.module.mjs +4 -4
  35. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +4 -4
  36. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +3 -3
  37. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +3 -3
  38. package/esm2022/lib/components/containers/elder-containers.module.mjs +4 -4
  39. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +3 -3
  40. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +3 -3
  41. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +3 -3
  42. package/esm2022/lib/components/csv/elder-csv.module.mjs +4 -4
  43. package/esm2022/lib/components/currency/elder-currency.module.mjs +4 -4
  44. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +3 -3
  45. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +4 -4
  46. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +3 -3
  47. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +3 -3
  48. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +3 -3
  49. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
  50. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +3 -3
  51. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +3 -3
  52. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +3 -3
  53. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +4 -4
  54. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +6 -6
  55. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +3 -3
  56. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +3 -3
  57. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +3 -3
  58. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +9 -9
  59. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +4 -4
  60. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +3 -3
  61. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +3 -3
  62. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +3 -3
  63. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +3 -3
  64. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +4 -4
  65. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +3 -3
  66. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +3 -3
  67. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +3 -3
  68. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +4 -4
  69. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +3 -3
  70. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +3 -3
  71. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +3 -3
  72. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +3 -3
  73. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +3 -3
  74. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +3 -3
  75. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +3 -3
  76. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +3 -3
  77. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +3 -3
  78. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +3 -3
  79. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +3 -3
  80. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +4 -4
  81. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +3 -3
  82. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +3 -3
  83. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +4 -4
  84. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +3 -3
  85. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +3 -3
  86. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +3 -3
  87. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +3 -3
  88. package/esm2022/lib/components/errors/elder-error.module.mjs +4 -4
  89. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +3 -3
  90. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +3 -3
  91. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +4 -4
  92. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -3
  93. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +3 -3
  94. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +3 -3
  95. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +3 -3
  96. package/esm2022/lib/components/files/elder-file-select.directive.mjs +3 -3
  97. package/esm2022/lib/components/files/elder-file.module.mjs +4 -4
  98. package/esm2022/lib/components/files/file-select/file-select.component.mjs +3 -3
  99. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +3 -3
  100. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +4 -4
  101. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +3 -3
  102. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +3 -3
  103. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +3 -3
  104. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +3 -3
  105. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +3 -3
  106. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +3 -3
  107. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +3 -3
  108. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +4 -4
  109. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +56 -0
  110. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +3 -3
  111. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +3 -3
  112. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +3 -3
  113. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +3 -3
  114. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +3 -3
  115. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +3 -3
  116. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +3 -3
  117. package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +3 -3
  118. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +3 -3
  119. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +3 -3
  120. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +3 -3
  121. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +3 -3
  122. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +3 -3
  123. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +3 -3
  124. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +3 -3
  125. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +3 -3
  126. package/esm2022/lib/components/forms/elder-forms.module.mjs +4 -4
  127. package/esm2022/lib/components/forms/search/elder-search-context-url-binding.directive.mjs +68 -0
  128. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +42 -33
  129. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +85 -30
  130. package/esm2022/lib/components/forms/search/elder-search.module.mjs +50 -33
  131. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +3 -3
  132. package/esm2022/lib/components/forms/search/search-box/elder-search-context-filters.mjs +10 -0
  133. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +3 -3
  134. package/esm2022/lib/components/forms/search/search-box/elder-search-url-binding.service.mjs +136 -0
  135. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +3 -3
  136. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +4 -4
  137. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +3 -3
  138. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +3 -3
  139. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -4
  140. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +3 -3
  141. package/esm2022/lib/components/headers/elder-header.module.mjs +4 -4
  142. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +3 -3
  143. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +4 -4
  144. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +3 -3
  145. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +3 -3
  146. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +3 -3
  147. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +3 -3
  148. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +3 -3
  149. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +3 -3
  150. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +3 -3
  151. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +3 -3
  152. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +3 -3
  153. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +3 -3
  154. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +4 -4
  155. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +3 -3
  156. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +3 -3
  157. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +4 -4
  158. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +3 -3
  159. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +3 -3
  160. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +4 -4
  161. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +3 -3
  162. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +3 -3
  163. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +3 -3
  164. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +3 -3
  165. package/esm2022/lib/components/iframes/iframe.service.mjs +3 -3
  166. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +3 -3
  167. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +3 -3
  168. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +4 -4
  169. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +3 -3
  170. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +3 -3
  171. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +3 -3
  172. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +4 -4
  173. package/esm2022/lib/components/labels/elder-labels.module.mjs +4 -4
  174. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +3 -3
  175. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +3 -3
  176. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +3 -3
  177. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +3 -3
  178. package/esm2022/lib/components/measures/elder-measures.module.mjs +8 -8
  179. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +3 -3
  180. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +3 -3
  181. package/esm2022/lib/components/measures/elder-unit.service.mjs +3 -3
  182. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +3 -3
  183. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +3 -3
  184. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +3 -3
  185. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +3 -3
  186. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +3 -3
  187. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +3 -3
  188. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +4 -4
  189. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +4 -4
  190. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +3 -3
  191. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +3 -3
  192. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -3
  193. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +3 -3
  194. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +4 -4
  195. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +3 -3
  196. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +3 -3
  197. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +3 -3
  198. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +3 -3
  199. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +3 -3
  200. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +3 -3
  201. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +3 -3
  202. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +4 -4
  203. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +3 -3
  204. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +3 -3
  205. package/esm2022/lib/components/panels/elder-panel.module.mjs +4 -4
  206. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +3 -3
  207. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +3 -3
  208. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +9 -9
  209. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +3 -3
  210. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +4 -4
  211. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +3 -3
  212. package/esm2022/lib/components/select/elder-select-base.mjs +3 -3
  213. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +9 -9
  214. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +3 -3
  215. package/esm2022/lib/components/select/elder-select-value.directive.mjs +3 -3
  216. package/esm2022/lib/components/select/elder-select.module.mjs +5 -5
  217. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +6 -5
  218. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +50 -50
  219. package/esm2022/lib/components/select/multi/elder-multi-select-chips/select-chip-spec.mjs +2 -0
  220. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +3 -3
  221. package/esm2022/lib/components/select/multi/public_api.mjs +4 -0
  222. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +3 -3
  223. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +3 -3
  224. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
  225. package/esm2022/lib/components/select/public_api.mjs +2 -3
  226. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +3 -3
  227. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +3 -3
  228. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +3 -3
  229. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +3 -3
  230. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +4 -4
  231. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +3 -3
  232. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +3 -3
  233. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +3 -3
  234. package/esm2022/lib/components/shell/elder-shell.module.mjs +4 -4
  235. package/esm2022/lib/components/shell/elder-shell.service.mjs +3 -3
  236. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +3 -3
  237. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +12 -12
  238. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +3 -3
  239. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +3 -3
  240. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +3 -3
  241. package/esm2022/lib/components/tabs/elder-tab.module.mjs +4 -4
  242. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +3 -3
  243. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +3 -3
  244. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +3 -3
  245. package/esm2022/lib/components/theme/elder-theme.directive.mjs +3 -3
  246. package/esm2022/lib/components/theme/elder-theme.module.mjs +4 -4
  247. package/esm2022/lib/components/theme/elder-theme.service.mjs +3 -3
  248. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +3 -3
  249. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +3 -3
  250. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +3 -3
  251. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +3 -3
  252. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +3 -3
  253. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +3 -3
  254. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +3 -3
  255. package/esm2022/lib/components/time/elder-time.module.mjs +4 -4
  256. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +3 -3
  257. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +3 -3
  258. package/esm2022/lib/components/toasts/elder-toast.module.mjs +4 -4
  259. package/esm2022/lib/components/toasts/elder-toast.service.mjs +3 -3
  260. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +3 -3
  261. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +4 -4
  262. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +3 -3
  263. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +3 -3
  264. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +4 -4
  265. package/esm2022/lib/features/event-source/elder-event-source.service.mjs +3 -3
  266. package/esm2022/lib/features/kafent/access-token-provider.mjs +3 -3
  267. package/esm2022/lib/features/kafent/kafent-config.mjs +3 -3
  268. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +3 -3
  269. package/esm2022/lib/features/kafent/kafent-event.service.mjs +3 -3
  270. package/esm2022/lib/features/kafent/kafent.module.mjs +4 -4
  271. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +3 -3
  272. package/esm2022/lib/pipes/bytes.pipe.mjs +3 -3
  273. package/esm2022/lib/pipes/elder-pipes.module.mjs +10 -10
  274. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +3 -3
  275. package/esm2022/lib/pipes/elder-round.pipe.mjs +3 -3
  276. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +3 -3
  277. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +3 -3
  278. package/esm2022/lib/pipes/iso-duration.pipe.mjs +3 -3
  279. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +3 -3
  280. package/esm2022/lib/pipes/iso-interval.pipe.mjs +3 -3
  281. package/esm2022/lib/pipes/time-ago.pipe.mjs +3 -3
  282. package/esm2022/lib/pipes/time-duration.pipe.mjs +3 -3
  283. package/esm2022/lib/pipes/weight.pipe.mjs +3 -3
  284. package/fesm2022/elderbyte-ngx-starter.mjs +1484 -1150
  285. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  286. package/lib/common/data/filters/filter-context.d.ts +2 -1
  287. package/lib/components/forms/directives/elder-initial-value.directive.d.ts +21 -0
  288. package/lib/components/forms/search/elder-search-context-url-binding.directive.d.ts +42 -0
  289. package/lib/components/forms/search/elder-search-context.directive.d.ts +14 -13
  290. package/lib/components/forms/search/elder-search-input.directive.d.ts +25 -12
  291. package/lib/components/forms/search/elder-search.module.d.ts +22 -19
  292. package/lib/components/forms/search/search-box/elder-search-context-filters.d.ts +7 -0
  293. package/lib/components/forms/search/search-box/elder-search-url-binding.service.d.ts +38 -0
  294. package/lib/components/select/elder-select.module.d.ts +1 -1
  295. package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +11 -26
  296. package/lib/components/select/multi/elder-multi-select-chips/select-chip-spec.d.ts +27 -0
  297. package/lib/components/select/multi/public_api.d.ts +3 -0
  298. package/lib/components/select/public_api.d.ts +1 -2
  299. package/package.json +1 -1
  300. package/src/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.scss +5 -0
@@ -1,11 +1,12 @@
1
- import { Directive, Host, Input, } from '@angular/core';
2
- import { LoggerFactory } from '@elderbyte/ts-logger';
3
- import { filter, map, startWith, takeUntil } from 'rxjs/operators';
4
- import { PropertyPathUtil } from '../../../common/utils/property-path-util';
5
- import { BehaviorSubject, Subject } from 'rxjs';
6
- import { SearchInputState } from './model/search-input-state';
7
- import { Objects } from '../../../common/objects';
8
- import { CollectionUtil } from '../../../common/utils/collection-util';
1
+ import { Directive, Host, Input } from "@angular/core";
2
+ import { LoggerFactory } from "@elderbyte/ts-logger";
3
+ import { filter, map, takeUntil } from "rxjs/operators";
4
+ import { PropertyPathUtil } from "../../../common/utils/property-path-util";
5
+ import { BehaviorSubject, Subject } from "rxjs";
6
+ import { SearchInputState } from "./model/search-input-state";
7
+ import { Objects } from "../../../common/objects";
8
+ import { CollectionUtil } from "../../../common/utils/collection-util";
9
+ import { ElderInitialValueDirective } from "../directives/elder-initial-value.directive";
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "./elder-search-context.directive";
11
12
  import * as i2 from "@angular/forms";
@@ -18,28 +19,31 @@ export class ElderSearchInputDirective {
18
19
  * Constructor *
19
20
  * *
20
21
  **************************************************************************/
21
- constructor(searchContext, ngModel) {
22
+ constructor(searchContext, changeDetection, ngModel) {
22
23
  this.searchContext = searchContext;
24
+ this.changeDetection = changeDetection;
23
25
  this.ngModel = ngModel;
26
+ //TODO: In Angular 16, use standalone directives and host component to inject directive to component
27
+ this.initialValueDirective = new ElderInitialValueDirective(this.ngModel);
24
28
  this._state = new BehaviorSubject(null);
25
- this.destroy$ = new Subject();
29
+ this._unsubscribe$ = new Subject();
26
30
  this.log = LoggerFactory.getLogger(this.constructor.name);
27
31
  }
28
32
  /***************************************************************************
29
33
  * *
30
- * Life Cycle *
34
+ * Life Cycle *
31
35
  * *
32
36
  **************************************************************************/
33
37
  ngAfterViewInit() {
34
38
  this._extractedName = this.extractName();
35
- this.searchContext.register(this);
39
+ console.log(this.extractName() + "|" + this.queryKey + "|" + this.resolvePath);
36
40
  this.stateObservable().subscribe(state => {
37
41
  this.emitState(state);
38
42
  });
39
43
  }
40
44
  ngOnDestroy() {
41
- this.destroy$.next();
42
- this.destroy$.complete();
45
+ this._unsubscribe$.next();
46
+ this._unsubscribe$.complete();
43
47
  }
44
48
  /***************************************************************************
45
49
  * *
@@ -59,8 +63,8 @@ export class ElderSearchInputDirective {
59
63
  if (this._extractedName) {
60
64
  return this._extractedName;
61
65
  }
62
- throw new Error('Could not determine the search name key name.' +
63
- ' Either specify the name property or explicitly set [elderSearchInputKey].');
66
+ throw new Error("Could not determine the search name key name." +
67
+ " Either specify the name property or explicitly set [elderSearchInputKey].");
64
68
  }
65
69
  get value() {
66
70
  return this.ngModel.value;
@@ -76,6 +80,13 @@ export class ElderSearchInputDirective {
76
80
  * Public API *
77
81
  * *
78
82
  **************************************************************************/
83
+ setInitialFilter(filters) {
84
+ const filterValue = this.findFilterForThisInput(filters);
85
+ if (filterValue) {
86
+ const value = this.convertQueryStringToRawModelValue(filterValue.value);
87
+ this.initialValueDirective.setInitialValue(value);
88
+ }
89
+ }
79
90
  reset() {
80
91
  this.ngModel.reset();
81
92
  }
@@ -84,16 +95,36 @@ export class ElderSearchInputDirective {
84
95
  * Private methods *
85
96
  * *
86
97
  **************************************************************************/
98
+ findFilterForThisInput(filters) {
99
+ for (const filter of filters) {
100
+ if (filter.key === this.queryKey || filter.key === this.extractName()) {
101
+ return filter;
102
+ }
103
+ }
104
+ return null;
105
+ }
87
106
  stateObservable() {
88
- return this.ngModel.valueChanges.pipe(takeUntil(this.destroy$), startWith(this.ngModel.value), map(value => {
107
+ return this.initialValueDirective.valueChanges$.pipe(takeUntil(this._unsubscribe$), map(value => {
108
+ console.warn(value + "|" + this.name);
89
109
  const queryValue = this.convertRawModelValueToQueryString(value);
90
110
  const pristine = !this.isAttributeValuePresent(value);
91
111
  return new SearchInputState(this.name, queryValue, this.queryKey || this.name, pristine);
92
112
  }));
93
113
  }
114
+ convertQueryStringToRawModelValue(queryString) {
115
+ if (Objects.nonNull(queryString)) {
116
+ return queryString;
117
+ }
118
+ else {
119
+ return null;
120
+ }
121
+ }
94
122
  convertRawModelValueToQueryString(model) {
95
123
  let queryValue = null;
96
- if (this.isAttributeValuePresent(model)) {
124
+ if (this.valueAsId != undefined) {
125
+ queryValue = this.checkAndConvertFaultyValuesToNull(model);
126
+ }
127
+ else if (this.isAttributeValuePresent(model)) {
97
128
  // Attribute value is present
98
129
  queryValue = this.resolveValue(model);
99
130
  }
@@ -107,9 +138,27 @@ export class ElderSearchInputDirective {
107
138
  emitState(state) {
108
139
  this._state.next(state);
109
140
  }
141
+ checkAndConvertFaultyValuesToNull(value) {
142
+ let fixedValue = value;
143
+ fixedValue = this.convertEmptyArrayToNull(fixedValue);
144
+ fixedValue = this.convertEmptyStringToNull(fixedValue);
145
+ return fixedValue;
146
+ }
147
+ convertEmptyArrayToNull(value) {
148
+ if (value instanceof Array && value.length === 0) {
149
+ return null;
150
+ }
151
+ return value;
152
+ }
153
+ convertEmptyStringToNull(value) {
154
+ if (typeof value === "string" && value.length === 0) {
155
+ return null;
156
+ }
157
+ return value;
158
+ }
110
159
  isAttributeValuePresent(value) {
111
160
  return SearchInputState.isValueDefined(value)
112
- && (value + '').length !== 0; // ???
161
+ && (value + "").length !== 0;
113
162
  }
114
163
  resolveValue(value) {
115
164
  if (Objects.nonNull(value)) {
@@ -158,28 +207,34 @@ export class ElderSearchInputDirective {
158
207
  });
159
208
  return CollectionUtil.flatten(arrays);
160
209
  }
161
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ElderSearchInputDirective, deps: [{ token: i1.ElderSearchContextDirective }, { token: i2.NgModel, host: true }], target: i0.ɵɵFactoryTarget.Directive }); }
162
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: ElderSearchInputDirective, selector: "[elderSearchInput]", inputs: { queryKey: ["elderSearchInputKey", "queryKey"], valueTransform: ["elderSearchInputTransform", "valueTransform"], resolvePath: ["elderSearchInput", "resolvePath"], fallbackValue: ["elderSearchInputFallback", "fallbackValue"] }, exportAs: ["elderSearchInput"], ngImport: i0 }); }
210
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchInputDirective, deps: [{ token: i1.ElderSearchContextDirective }, { token: i0.ChangeDetectorRef }, { token: i2.NgModel, host: true }], target: i0.ɵɵFactoryTarget.Directive }); }
211
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchInputDirective, selector: "[elderSearchInput]", inputs: { queryKey: ["elderSearchInputKey", "queryKey"], valueTransform: ["elderSearchInputTransform", "valueTransform"], resolvePath: ["elderSearchInput", "resolvePath"], dataSource: "dataSource", fallbackValue: ["elderSearchInputFallback", "fallbackValue"], valueAsId: "valueAsId" }, exportAs: ["elderSearchInput"], ngImport: i0 }); }
163
212
  }
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ElderSearchInputDirective, decorators: [{
213
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchInputDirective, decorators: [{
165
214
  type: Directive,
166
215
  args: [{
167
- selector: '[elderSearchInput]',
168
- exportAs: 'elderSearchInput'
216
+ selector: "[elderSearchInput]",
217
+ exportAs: "elderSearchInput"
169
218
  }]
170
- }], ctorParameters: function () { return [{ type: i1.ElderSearchContextDirective }, { type: i2.NgModel, decorators: [{
219
+ }], ctorParameters: function () { return [{ type: i1.ElderSearchContextDirective }, { type: i0.ChangeDetectorRef }, { type: i2.NgModel, decorators: [{
171
220
  type: Host
172
221
  }] }]; }, propDecorators: { queryKey: [{
173
222
  type: Input,
174
- args: ['elderSearchInputKey']
223
+ args: ["elderSearchInputKey"]
175
224
  }], valueTransform: [{
176
225
  type: Input,
177
- args: ['elderSearchInputTransform']
226
+ args: ["elderSearchInputTransform"]
178
227
  }], resolvePath: [{
179
228
  type: Input,
180
- args: ['elderSearchInput']
229
+ args: ["elderSearchInput"]
230
+ }], dataSource: [{
231
+ type: Input,
232
+ args: ["dataSource"]
181
233
  }], fallbackValue: [{
182
234
  type: Input,
183
- args: ['elderSearchInputFallback']
235
+ args: ["elderSearchInputFallback"]
236
+ }], valueAsId: [{
237
+ type: Input,
238
+ args: ["valueAsId"]
184
239
  }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvc2VhcmNoL2VsZGVyLXNlYXJjaC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFBRSxJQUFJLEVBQ2YsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUtyRCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDMUUsT0FBTyxFQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQzs7OztBQUVyRTs7R0FFRztBQUtILE1BQU0sT0FBTyx5QkFBeUI7SUFzQ3BDOzs7O2dGQUk0RTtJQUU1RSxZQUNVLGFBQTBDLEVBQ2xDLE9BQWdCO1FBRHhCLGtCQUFhLEdBQWIsYUFBYSxDQUE2QjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBYmpCLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBbUIsSUFBSSxDQUFDLENBQUM7UUFFckQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcs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QUMsa0JBQWtCO2dCQU9sQixhQUFhO3NCQURuQixLQUFLO3VCQUFDLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERpcmVjdGl2ZSwgSG9zdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQgeyBFbGRlclNlYXJjaENvbnRleHREaXJlY3RpdmUgfSBmcm9tICcuL2VsZGVyLXNlYXJjaC1jb250ZXh0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcy9pbnRlcm5hbC9PYnNlcnZhYmxlJztcbmltcG9ydCB7IE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1NlYXJjaElucHV0fSBmcm9tICcuL21vZGVsL3NlYXJjaC1pbnB1dCc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtQcm9wZXJ0eVBhdGhVdGlsfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbHMvcHJvcGVydHktcGF0aC11dGlsJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7U2VhcmNoSW5wdXRTdGF0ZX0gZnJvbSAnLi9tb2RlbC9zZWFyY2gtaW5wdXQtc3RhdGUnO1xuaW1wb3J0IHtPYmplY3RzfSBmcm9tICcuLi8uLi8uLi9jb21tb24vb2JqZWN0cyc7XG5pbXBvcnQge0NvbGxlY3Rpb25VdGlsfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbHMvY29sbGVjdGlvbi11dGlsJztcblxuLyoqXG4gKiBTZWFyY2ggbmFtZSBhZGFwdGVyIGZvciBpbnB1dCBjb250cm9scy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyU2VhcmNoSW5wdXRdJyxcbiAgZXhwb3J0QXM6ICdlbGRlclNlYXJjaElucHV0J1xufSlcbmV4cG9ydCBjbGFzcyBFbGRlclNlYXJjaElucHV0RGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBTZWFyY2hJbnB1dCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVXN1YWxseSB0aGUgY29udHJvbCBuYW1lIGlzIHVzZWQsIHRoaXMgYWxsb3dzIGEgY3VzdG9tIHF1ZXJ5IGtleVxuICAgKi9cbiAgQElucHV0KCdlbGRlclNlYXJjaElucHV0S2V5JylcbiAgcHVibGljIHF1ZXJ5S2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgRnVuY3Rpb24gd2hpY2ggdHJhbnNmb3JtcyB0aGUgdmFsdWUgb2JqZWN0IHRvIGEgcXVlcnkgcGFyYW0gdmFsdWVcbiAgICovXG4gIEBJbnB1dCgnZWxkZXJTZWFyY2hJbnB1dFRyYW5zZm9ybScpXG4gIHB1YmxpYyB2YWx1ZVRyYW5zZm9ybTogKCh2YWx1ZTogYW55KSA9PiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwpO1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwsIERlZmF1bHQpIFBhdGggb24gdGhlIHZhbHVlIG9iamVjdCB0byB1c2UgYXMgcXVlcnkgcGFyYW0gdmFsdWVcbiAgICogIHZhbHVlID0gXCJ0eXBlLmlkXCJcbiAgICovXG4gIEBJbnB1dCgnZWxkZXJTZWFyY2hJbnB1dCcpXG4gIHB1YmxpYyByZXNvbHZlUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIFVzZSB0aGlzIHZhbHVlIGZvciB0aGUgcXVlcnkgaWYgbm9uZSBpcyBwcm92aWRlZC5cbiAgICovXG4gIEBJbnB1dCgnZWxkZXJTZWFyY2hJbnB1dEZhbGxiYWNrJylcbiAgcHVibGljIGZhbGxiYWNrVmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXRlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWFyY2hJbnB1dFN0YXRlPihudWxsKTtcbiAgcHJpdmF0ZSBfZXh0cmFjdGVkTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNlYXJjaENvbnRleHQ6IEVsZGVyU2VhcmNoQ29udGV4dERpcmVjdGl2ZSxcbiAgICBASG9zdCgpIHByaXZhdGUgbmdNb2RlbDogTmdNb2RlbFxuICApIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9leHRyYWN0ZWROYW1lID0gdGhpcy5leHRyYWN0TmFtZSgpO1xuXG4gICAgdGhpcy5zZWFyY2hDb250ZXh0LnJlZ2lzdGVyKHRoaXMpO1xuXG4gICAgdGhpcy5zdGF0ZU9ic2VydmFibGUoKS5zdWJzY3JpYmUoc3RhdGUgPT4ge1xuICAgICAgdGhpcy5lbWl0U3RhdGUoc3RhdGUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgc3RhdGUkKCk6IE9ic2VydmFibGU8U2VhcmNoSW5wdXRTdGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZS5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgZmlsdGVyKHMgPT4gISFzKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlU25hcHNob3QoKTogU2VhcmNoSW5wdXRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5xdWVyeUtleSkgeyByZXR1cm4gdGhpcy5xdWVyeUtleTsgfVxuICAgIGlmICh0aGlzLl9leHRyYWN0ZWROYW1lKSB7IHJldHVybiB0aGlzLl9leHRyYWN0ZWROYW1lOyB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIHNlYXJjaCBuYW1lIGtleSBuYW1lLicgK1xuICAgICAgJyBFaXRoZXIgc3BlY2lmeSB0aGUgbmFtZSBwcm9wZXJ0eSBvciBleHBsaWNpdGx5IHNldCBbZWxkZXJTZWFyY2hJbnB1dEtleV0uJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMubmdNb2RlbC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmdNb2RlbC5pc0Rpc2FibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaGFzRmFsbGJhY2soKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFNlYXJjaElucHV0U3RhdGUuaXNWYWx1ZURlZmluZWQodGhpcy5mYWxsYmFja1ZhbHVlKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLm5nTW9kZWwucmVzZXQoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc3RhdGVPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8U2VhcmNoSW5wdXRTdGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLm5nTW9kZWwudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICBzdGFydFdpdGgodGhpcy5uZ01vZGVsLnZhbHVlKSxcbiAgICAgIG1hcCh2YWx1ZSA9PiB7XG5cbiAgICAgICAgY29uc3QgcXVlcnlWYWx1ZSA9IHRoaXMuY29udmVydFJhd01vZGVsVmFsdWVUb1F1ZXJ5U3RyaW5nKHZhbHVlKTtcbiAgICAgICAgY29uc3QgcHJpc3RpbmUgPSAhdGhpcy5pc0F0dHJpYnV0ZVZhbHVlUHJlc2VudCh2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBTZWFyY2hJbnB1dFN0YXRlKFxuICAgICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgICBxdWVyeVZhbHVlLFxuICAgICAgICAgIHRoaXMucXVlcnlLZXkgfHwgdGhpcy5uYW1lLFxuICAgICAgICAgIHByaXN0aW5lXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRSYXdNb2RlbFZhbHVlVG9RdWVyeVN0cmluZyhtb2RlbDogYW55KTogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsIHtcblxuICAgIGxldCBxdWVyeVZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKHRoaXMuaXNBdHRyaWJ1dGVWYWx1ZVByZXNlbnQobW9kZWwpKSB7XG4gICAgICAvLyBBdHRyaWJ1dGUgdmFsdWUgaXMgcHJlc2VudFxuICAgICAgcXVlcnlWYWx1ZSA9IHRoaXMucmVzb2x2ZVZhbHVlKG1vZGVsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuaGFzRmFsbGJhY2spIHtcbiAgICAgICAgcXVlcnlWYWx1ZSA9IHRoaXMuZmFsbGJhY2tWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHF1ZXJ5VmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTdGF0ZShzdGF0ZTogU2VhcmNoSW5wdXRTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLm5leHQoc3RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0F0dHJpYnV0ZVZhbHVlUHJlc2VudCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFNlYXJjaElucHV0U3RhdGUuaXNWYWx1ZURlZmluZWQodmFsdWUpXG4gICAgICAmJiAodmFsdWUgKyAnJykubGVuZ3RoICE9PSAwOyAvLyA/Pz9cbiAgfVxuXG5cbiAgcHJpdmF0ZSByZXNvbHZlVmFsdWUodmFsdWU6IGFueSk6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCB7XG4gICAgaWYgKE9iamVjdHMubm9uTnVsbCh2YWx1ZSkpIHtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG5cbiAgICAgICAgY29uc3QgcmVzb2x2ZWRWYWx1ZXMgPSB2YWx1ZVxuICAgICAgICAgIC5tYXAodiA9PiB0aGlzLnJlc29sdmVTaW5nbGVWYWx1ZSh2KSlcbiAgICAgICAgICAuZmlsdGVyKHYgPT4gT2JqZWN0cy5ub25OdWxsKHYpKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5jb25jYXRJZk5lY2Vzc2FyeShyZXNvbHZlZFZhbHVlcyk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc29sdmVTaW5nbGVWYWx1ZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVNpbmdsZVZhbHVlKHZhbHVlOiBhbnkpOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwge1xuICAgIHZhbHVlID0gUHJvcGVydHlQYXRoVXRpbC5yZXNvbHZlVmFsdWUodmFsdWUsIHRoaXMucmVzb2x2ZVBhdGgpO1xuICAgIHZhbHVlID0gdGhpcy52YWx1ZVRyYW5zZm9ybSA/IHRoaXMudmFsdWVUcmFuc2Zvcm0odmFsdWUpIDogdmFsdWU7XG5cbiAgICBpZiAoT2JqZWN0cy5ub25OdWxsKHZhbHVlKSkge1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgLmZpbHRlcihpID0+IE9iamVjdHMubm9uTnVsbChpKSlcbiAgICAgICAgICAubWFwKGkgPT4gaS50b1N0cmluZygpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3ROYW1lKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLm5nTW9kZWwubmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgY29uY2F0SWZOZWNlc3NhcnkodmFsdWVzOiAoc3RyaW5nIHwgc3RyaW5nW10pW10pOiBhbnlbXSB7XG4gICAgY29uc3QgYXJyYXlzID0gdmFsdWVzLm1hcCh2ID0+IHtcbiAgICAgIGlmICh2IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gW3ZdO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBDb2xsZWN0aW9uVXRpbC5mbGF0dGVuKGFycmF5cyk7XG4gIH1cblxufVxuIl19
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvc2VhcmNoL2VsZGVyLXNlYXJjaC1pbnB1dC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFLckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUl2RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7OztBQUV6Rjs7R0FFRztBQUtILE1BQU0sT0FBTyx5QkFBeUI7SUE4Q3BDOzs7O2dGQUk0RTtJQUU1RSxZQUNVLGFBQTBDLEVBQzFDLGVBQWtDLEVBQzFCLE9BQWdCO1FBRnhCLGtCQUFhLEdBQWIsYUFBYSxDQUE2QjtRQUMxQyxvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQXREbEMsb0dBQW9HO1FBQ25GLDBCQUFxQixHQUFHLElBQUksMEJBQTBCLENBQUMsSUFBSSxDQUFD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LENBQUM7SUFDM0IsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE1BQTZCO1FBQ3JELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFlBQVksS0FBSyxFQUFFO2dCQUN0QixPQUFPLENBQUMsQ0FBQzthQUNWO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNaO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs4R0F2UlUseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBSnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLGtCQUFrQjtpQkFDN0I7OzBCQXdESSxJQUFJOzRDQXpDQSxRQUFRO3NCQURkLEtBQUs7dUJBQUMscUJBQXFCO2dCQU9yQixjQUFjO3NCQURwQixLQUFLO3VCQUFDLDJCQUEyQjtnQkFRM0IsV0FBVztzQkFEakIsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBSWxCLFVBQVU7c0JBRGhCLEtBQUs7dUJBQUMsWUFBWTtnQkFPWixhQUFhO3NCQURuQixLQUFLO3VCQUFDLDBCQUEwQjtnQkFJMUIsU0FBUztzQkFEZixLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBIb3N0LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tIFwiQGVsZGVyYnl0ZS90cy1sb2dnZXJcIjtcbmltcG9ydCB7IEVsZGVyU2VhcmNoQ29udGV4dERpcmVjdGl2ZSB9IGZyb20gXCIuL2VsZGVyLXNlYXJjaC1jb250ZXh0LmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzL2ludGVybmFsL09ic2VydmFibGVcIjtcbmltcG9ydCB7IE5nTW9kZWwgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IFNlYXJjaElucHV0IH0gZnJvbSBcIi4vbW9kZWwvc2VhcmNoLWlucHV0XCI7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBQcm9wZXJ0eVBhdGhVdGlsIH0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi91dGlscy9wcm9wZXJ0eS1wYXRoLXV0aWxcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBTZWFyY2hJbnB1dFN0YXRlIH0gZnJvbSBcIi4vbW9kZWwvc2VhcmNoLWlucHV0LXN0YXRlXCI7XG5pbXBvcnQgeyBPYmplY3RzIH0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi9vYmplY3RzXCI7XG5pbXBvcnQgeyBDb2xsZWN0aW9uVXRpbCB9IGZyb20gXCIuLi8uLi8uLi9jb21tb24vdXRpbHMvY29sbGVjdGlvbi11dGlsXCI7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tIFwiLi4vLi4vLi4vY29tbW9uL2RhdGEvZmlsdGVycy9maWx0ZXJcIjtcbmltcG9ydCB7IExvY2FsUGFnZWREYXRhU291cmNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvbG9jYWwvbG9jYWwtcGFnZWQtZGF0YS1zb3VyY2VcIjtcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29lcmNpb25cIjtcbmltcG9ydCB7IEVsZGVySW5pdGlhbFZhbHVlRGlyZWN0aXZlIH0gZnJvbSBcIi4uL2RpcmVjdGl2ZXMvZWxkZXItaW5pdGlhbC12YWx1ZS5kaXJlY3RpdmVcIjtcblxuLyoqXG4gKiBTZWFyY2ggbmFtZSBhZGFwdGVyIGZvciBpbnB1dCBjb250cm9scy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltlbGRlclNlYXJjaElucHV0XVwiLFxuICBleHBvcnRBczogXCJlbGRlclNlYXJjaElucHV0XCJcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTZWFyY2hJbnB1dERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgU2VhcmNoSW5wdXQge1xuICAvL1RPRE86IEluIEFuZ3VsYXIgMTYsIHVzZSBzdGFuZGFsb25lIGRpcmVjdGl2ZXMgYW5kIGhvc3QgY29tcG9uZW50IHRvIGluamVjdCBkaXJlY3RpdmUgdG8gY29tcG9uZW50XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5pdGlhbFZhbHVlRGlyZWN0aXZlID0gbmV3IEVsZGVySW5pdGlhbFZhbHVlRGlyZWN0aXZlKHRoaXMubmdNb2RlbCk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVXN1YWxseSB0aGUgY29udHJvbCBuYW1lIGlzIHVzZWQsIHRoaXMgYWxsb3dzIGEgY3VzdG9tIHF1ZXJ5IGtleVxuICAgKi9cbiAgQElucHV0KFwiZWxkZXJTZWFyY2hJbnB1dEtleVwiKVxuICBwdWJsaWMgcXVlcnlLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogKE9wdGlvbmFsKSBGdW5jdGlvbiB3aGljaCB0cmFuc2Zvcm1zIHRoZSB2YWx1ZSBvYmplY3QgdG8gYSBxdWVyeSBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgQElucHV0KFwiZWxkZXJTZWFyY2hJbnB1dFRyYW5zZm9ybVwiKVxuICBwdWJsaWMgdmFsdWVUcmFuc2Zvcm06ICgodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsKTtcblxuICAvKipcbiAgICogKE9wdGlvbmFsLCBEZWZhdWx0KSBQYXRoIG9uIHRoZSB2YWx1ZSBvYmplY3QgdG8gdXNlIGFzIHF1ZXJ5IHBhcmFtIHZhbHVlXG4gICAqICB2YWx1ZSA9IFwidHlwZS5pZFwiXG4gICAqL1xuICBASW5wdXQoXCJlbGRlclNlYXJjaElucHV0XCIpXG4gIHB1YmxpYyByZXNvbHZlUGF0aDogc3RyaW5nO1xuXG4gIEBJbnB1dChcImRhdGFTb3VyY2VcIilcbiAgcHVibGljIGRhdGFTb3VyY2U6IExvY2FsUGFnZWREYXRhU291cmNlPGFueT47XG5cbiAgLyoqXG4gICAqIChPcHRpb25hbCkgVXNlIHRoaXMgdmFsdWUgZm9yIHRoZSBxdWVyeSBpZiBub25lIGlzIHByb3ZpZGVkLlxuICAgKi9cbiAgQElucHV0KFwiZWxkZXJTZWFyY2hJbnB1dEZhbGxiYWNrXCIpXG4gIHB1YmxpYyBmYWxsYmFja1ZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICBASW5wdXQoXCJ2YWx1ZUFzSWRcIilcbiAgcHVibGljIHZhbHVlQXNJZDogQm9vbGVhbklucHV0O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXRlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTZWFyY2hJbnB1dFN0YXRlPihudWxsKTtcbiAgcHJpdmF0ZSBfZXh0cmFjdGVkTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2VhcmNoQ29udGV4dDogRWxkZXJTZWFyY2hDb250ZXh0RGlyZWN0aXZlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASG9zdCgpIHByaXZhdGUgbmdNb2RlbDogTmdNb2RlbFxuICApIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZXh0cmFjdGVkTmFtZSA9IHRoaXMuZXh0cmFjdE5hbWUoKTtcblxuICAgIGNvbnNvbGUubG9nKHRoaXMuZXh0cmFjdE5hbWUoKSArIFwifFwiICsgdGhpcy5xdWVyeUtleSArIFwifFwiICsgdGhpcy5yZXNvbHZlUGF0aCk7XG5cbiAgICB0aGlzLnN0YXRlT2JzZXJ2YWJsZSgpLnN1YnNjcmliZShzdGF0ZSA9PiB7XG4gICAgICB0aGlzLmVtaXRTdGF0ZShzdGF0ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fdW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgc3RhdGUkKCk6IE9ic2VydmFibGU8U2VhcmNoSW5wdXRTdGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZS5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgZmlsdGVyKHMgPT4gISFzKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlU25hcHNob3QoKTogU2VhcmNoSW5wdXRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5xdWVyeUtleSkge1xuICAgICAgcmV0dXJuIHRoaXMucXVlcnlLZXk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9leHRyYWN0ZWROYW1lKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZXh0cmFjdGVkTmFtZTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBzZWFyY2ggbmFtZSBrZXkgbmFtZS5cIiArXG4gICAgICBcIiBFaXRoZXIgc3BlY2lmeSB0aGUgbmFtZSBwcm9wZXJ0eSBvciBleHBsaWNpdGx5IHNldCBbZWxkZXJTZWFyY2hJbnB1dEtleV0uXCIpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm5nTW9kZWwudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlYWRvbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5nTW9kZWwuaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGhhc0ZhbGxiYWNrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBTZWFyY2hJbnB1dFN0YXRlLmlzVmFsdWVEZWZpbmVkKHRoaXMuZmFsbGJhY2tWYWx1ZSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc2V0SW5pdGlhbEZpbHRlcihmaWx0ZXJzOiBGaWx0ZXJbXSkge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdGhpcy5maW5kRmlsdGVyRm9yVGhpc0lucHV0KGZpbHRlcnMpO1xuICAgIGlmIChmaWx0ZXJWYWx1ZSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmNvbnZlcnRRdWVyeVN0cmluZ1RvUmF3TW9kZWxWYWx1ZShmaWx0ZXJWYWx1ZS52YWx1ZSk7XG4gICAgICB0aGlzLmluaXRpYWxWYWx1ZURpcmVjdGl2ZS5zZXRJbml0aWFsVmFsdWUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLm5nTW9kZWwucmVzZXQoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgZmluZEZpbHRlckZvclRoaXNJbnB1dChmaWx0ZXJzOiBGaWx0ZXJbXSk6IEZpbHRlciB7XG4gICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZmlsdGVycykge1xuICAgICAgaWYgKGZpbHRlci5rZXkgPT09IHRoaXMucXVlcnlLZXkgfHwgZmlsdGVyLmtleSA9PT0gdGhpcy5leHRyYWN0TmFtZSgpKSB7XG4gICAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0ZU9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxTZWFyY2hJbnB1dFN0YXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbFZhbHVlRGlyZWN0aXZlLnZhbHVlQ2hhbmdlcyQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpLFxuICAgICAgbWFwKHZhbHVlID0+IHtcblxuICAgICAgICBjb25zb2xlLndhcm4odmFsdWUgKyBcInxcIiArIHRoaXMubmFtZSk7XG4gICAgICAgIGNvbnN0IHF1ZXJ5VmFsdWUgPSB0aGlzLmNvbnZlcnRSYXdNb2RlbFZhbHVlVG9RdWVyeVN0cmluZyh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHByaXN0aW5lID0gIXRoaXMuaXNBdHRyaWJ1dGVWYWx1ZVByZXNlbnQodmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBuZXcgU2VhcmNoSW5wdXRTdGF0ZShcbiAgICAgICAgICB0aGlzLm5hbWUsXG4gICAgICAgICAgcXVlcnlWYWx1ZSxcbiAgICAgICAgICB0aGlzLnF1ZXJ5S2V5IHx8IHRoaXMubmFtZSxcbiAgICAgICAgICBwcmlzdGluZVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0UXVlcnlTdHJpbmdUb1Jhd01vZGVsVmFsdWUocXVlcnlTdHJpbmc6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCkge1xuICAgIGlmIChPYmplY3RzLm5vbk51bGwocXVlcnlTdHJpbmcpKSB7XG4gICAgICByZXR1cm4gcXVlcnlTdHJpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFJhd01vZGVsVmFsdWVUb1F1ZXJ5U3RyaW5nKG1vZGVsOiBhbnkpOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwge1xuXG4gICAgbGV0IHF1ZXJ5VmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy52YWx1ZUFzSWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICBxdWVyeVZhbHVlID0gdGhpcy5jaGVja0FuZENvbnZlcnRGYXVsdHlWYWx1ZXNUb051bGwobW9kZWwpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0F0dHJpYnV0ZVZhbHVlUHJlc2VudChtb2RlbCkpIHtcbiAgICAgIC8vIEF0dHJpYnV0ZSB2YWx1ZSBpcyBwcmVzZW50XG4gICAgICBxdWVyeVZhbHVlID0gdGhpcy5yZXNvbHZlVmFsdWUobW9kZWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5oYXNGYWxsYmFjaykge1xuICAgICAgICBxdWVyeVZhbHVlID0gdGhpcy5mYWxsYmFja1ZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBxdWVyeVZhbHVlO1xuICB9XG5cbiAgcHVibGljIGVtaXRTdGF0ZShzdGF0ZTogU2VhcmNoSW5wdXRTdGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlLm5leHQoc3RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0FuZENvbnZlcnRGYXVsdHlWYWx1ZXNUb051bGwodmFsdWU6IGFueSkge1xuICAgIGxldCBmaXhlZFZhbHVlID0gdmFsdWU7XG4gICAgZml4ZWRWYWx1ZSA9IHRoaXMuY29udmVydEVtcHR5QXJyYXlUb051bGwoZml4ZWRWYWx1ZSk7XG4gICAgZml4ZWRWYWx1ZSA9IHRoaXMuY29udmVydEVtcHR5U3RyaW5nVG9OdWxsKGZpeGVkVmFsdWUpO1xuXG4gICAgcmV0dXJuIGZpeGVkVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRFbXB0eUFycmF5VG9OdWxsKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRFbXB0eVN0cmluZ1RvTnVsbCh2YWx1ZTogYW55KSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiB2YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGlzQXR0cmlidXRlVmFsdWVQcmVzZW50KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gU2VhcmNoSW5wdXRTdGF0ZS5pc1ZhbHVlRGVmaW5lZCh2YWx1ZSlcbiAgICAgICYmICh2YWx1ZSArIFwiXCIpLmxlbmd0aCAhPT0gMDtcbiAgfVxuXG5cbiAgcHJpdmF0ZSByZXNvbHZlVmFsdWUodmFsdWU6IGFueSk6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCB7XG4gICAgaWYgKE9iamVjdHMubm9uTnVsbCh2YWx1ZSkpIHtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG5cbiAgICAgICAgY29uc3QgcmVzb2x2ZWRWYWx1ZXMgPSB2YWx1ZVxuICAgICAgICAgIC5tYXAodiA9PiB0aGlzLnJlc29sdmVTaW5nbGVWYWx1ZSh2KSlcbiAgICAgICAgICAuZmlsdGVyKHYgPT4gT2JqZWN0cy5ub25OdWxsKHYpKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5jb25jYXRJZk5lY2Vzc2FyeShyZXNvbHZlZFZhbHVlcyk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc29sdmVTaW5nbGVWYWx1ZSh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVNpbmdsZVZhbHVlKHZhbHVlOiBhbnkpOiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwge1xuICAgIHZhbHVlID0gUHJvcGVydHlQYXRoVXRpbC5yZXNvbHZlVmFsdWUodmFsdWUsIHRoaXMucmVzb2x2ZVBhdGgpO1xuICAgIHZhbHVlID0gdGhpcy52YWx1ZVRyYW5zZm9ybSA/IHRoaXMudmFsdWVUcmFuc2Zvcm0odmFsdWUpIDogdmFsdWU7XG5cblxuICAgIGlmIChPYmplY3RzLm5vbk51bGwodmFsdWUpKSB7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAuZmlsdGVyKGkgPT4gT2JqZWN0cy5ub25OdWxsKGkpKVxuICAgICAgICAgIC5tYXAoaSA9PiBpLnRvU3RyaW5nKCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdE5hbWUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMubmdNb2RlbC5uYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25jYXRJZk5lY2Vzc2FyeSh2YWx1ZXM6IChzdHJpbmcgfCBzdHJpbmdbXSlbXSk6IGFueVtdIHtcbiAgICBjb25zdCBhcnJheXMgPSB2YWx1ZXMubWFwKHYgPT4ge1xuICAgICAgaWYgKHYgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICByZXR1cm4gdjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbdl07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIENvbGxlY3Rpb25VdGlsLmZsYXR0ZW4oYXJyYXlzKTtcbiAgfVxuXG59XG4iXX0=
@@ -1,37 +1,47 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ElderSearchContextDirective } from './elder-search-context.directive';
4
- import { ElderSearchInputDirective } from './elder-search-input.directive';
5
- import { ElderSearchBoxComponent } from './search-box/elder-search-box.component';
6
- import { FormsModule } from '@angular/forms';
7
- import { MatBadgeModule } from '@angular/material/badge';
8
- import { MatButtonModule } from '@angular/material/button';
9
- import { MatIconModule } from '@angular/material/icon';
10
- import { MatInputModule } from '@angular/material/input';
11
- import { A11yModule } from '@angular/cdk/a11y';
12
- import { TranslateModule } from '@ngx-translate/core';
13
- import { ElderOverlayModule } from '../../overlays/elder-overlay.module';
14
- import { ElderSearchPanelComponent } from './search-box/elder-search-panel.component';
15
- import { ElderPanelModule } from '../../panels/elder-panel.module';
16
- import { ElderFormsDirectivesModule } from '../directives/elder-forms-directives.module';
1
+ import { NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { ElderSearchContextDirective } from "./elder-search-context.directive";
4
+ import { ElderSearchInputDirective } from "./elder-search-input.directive";
5
+ import { ElderSearchBoxComponent } from "./search-box/elder-search-box.component";
6
+ import { FormsModule } from "@angular/forms";
7
+ import { MatBadgeModule } from "@angular/material/badge";
8
+ import { MatButtonModule } from "@angular/material/button";
9
+ import { MatIconModule } from "@angular/material/icon";
10
+ import { MatInputModule } from "@angular/material/input";
11
+ import { A11yModule } from "@angular/cdk/a11y";
12
+ import { TranslateModule } from "@ngx-translate/core";
13
+ import { ElderOverlayModule } from "../../overlays/elder-overlay.module";
14
+ import { ElderSearchPanelComponent } from "./search-box/elder-search-panel.component";
15
+ import { ElderPanelModule } from "../../panels/elder-panel.module";
16
+ import { ElderFormsDirectivesModule } from "../directives/elder-forms-directives.module";
17
+ import { ElderSearchContextUrlBindingDirective } from "./elder-search-context-url-binding.directive";
18
+ import { ElderInitialValueDirective } from "../directives/elder-initial-value.directive";
17
19
  import * as i0 from "@angular/core";
18
- export { ElderSearchContextDirective } from './elder-search-context.directive';
19
- export { ElderSearchInputDirective } from './elder-search-input.directive';
20
- export { ElderSearchBoxComponent } from './search-box/elder-search-box.component';
21
- export { ElderSearchPanelComponent } from './search-box/elder-search-panel.component';
20
+ export { ElderSearchContextDirective } from "./elder-search-context.directive";
21
+ export { ElderSearchContextUrlBindingDirective } from "./elder-search-context-url-binding.directive";
22
+ export { ElderSearchInputDirective } from "./elder-search-input.directive";
23
+ export { ElderSearchBoxComponent } from "./search-box/elder-search-box.component";
24
+ export { ElderSearchPanelComponent } from "./search-box/elder-search-panel.component";
22
25
  export class ElderSearchModule {
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ElderSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
24
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.5", ngImport: i0, type: ElderSearchModule, declarations: [ElderSearchContextDirective, ElderSearchInputDirective,
25
- ElderSearchBoxComponent, ElderSearchPanelComponent], imports: [CommonModule, FormsModule,
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
27
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchModule, declarations: [ElderSearchContextDirective,
28
+ ElderSearchContextUrlBindingDirective,
29
+ ElderSearchInputDirective,
30
+ ElderInitialValueDirective,
31
+ ElderSearchBoxComponent,
32
+ ElderSearchPanelComponent], imports: [CommonModule, FormsModule,
26
33
  MatInputModule, MatButtonModule, MatIconModule,
27
34
  MatBadgeModule,
28
35
  A11yModule,
29
36
  ElderOverlayModule,
30
37
  ElderPanelModule,
31
38
  ElderFormsDirectivesModule,
32
- TranslateModule], exports: [ElderSearchContextDirective, ElderSearchInputDirective,
33
- ElderSearchBoxComponent, ElderSearchPanelComponent] }); }
34
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ElderSearchModule, imports: [CommonModule, FormsModule,
39
+ TranslateModule], exports: [ElderSearchContextDirective,
40
+ ElderSearchContextUrlBindingDirective,
41
+ ElderSearchInputDirective,
42
+ ElderSearchBoxComponent,
43
+ ElderSearchPanelComponent] }); }
44
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchModule, imports: [CommonModule, FormsModule,
35
45
  MatInputModule, MatButtonModule, MatIconModule,
36
46
  MatBadgeModule,
37
47
  A11yModule,
@@ -40,7 +50,7 @@ export class ElderSearchModule {
40
50
  ElderFormsDirectivesModule,
41
51
  TranslateModule] }); }
42
52
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ElderSearchModule, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchModule, decorators: [{
44
54
  type: NgModule,
45
55
  args: [{
46
56
  imports: [
@@ -54,13 +64,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
54
64
  TranslateModule
55
65
  ],
56
66
  declarations: [
57
- ElderSearchContextDirective, ElderSearchInputDirective,
58
- ElderSearchBoxComponent, ElderSearchPanelComponent
67
+ ElderSearchContextDirective,
68
+ ElderSearchContextUrlBindingDirective,
69
+ ElderSearchInputDirective,
70
+ ElderInitialValueDirective,
71
+ ElderSearchBoxComponent,
72
+ ElderSearchPanelComponent
59
73
  ],
60
74
  exports: [
61
- ElderSearchContextDirective, ElderSearchInputDirective,
62
- ElderSearchBoxComponent, ElderSearchPanelComponent
63
- ],
75
+ ElderSearchContextDirective,
76
+ ElderSearchContextUrlBindingDirective,
77
+ ElderSearchInputDirective,
78
+ ElderSearchBoxComponent,
79
+ ElderSearchPanelComponent
80
+ ]
64
81
  }]
65
82
  }] });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvc2VhcmNoL2VsZGVyLXNlYXJjaC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDZDQUE2QyxDQUFDOztBQUd2RixPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQTBCcEYsTUFBTSxPQUFPLGlCQUFpQjs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBUjFCLDJCQUEyQixFQUFFLHlCQUF5QjtZQUN0RCx1QkFBdUIsRUFBRSx5QkFBeUIsYUFmbEQsWUFBWSxFQUFFLFdBQVc7WUFFekIsY0FBYyxFQUFFLGVBQWUsRUFBRSxhQUFhO1lBQzlDLGNBQWM7WUFFZCxVQUFVO1lBRVYsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQiwwQkFBMEI7WUFFMUIsZUFBZSxhQU9mLDJCQUEyQixFQUFFLHlCQUF5QjtZQUN0RCx1QkFBdUIsRUFBRSx5QkFBeUI7K0dBR3pDLGlCQUFpQixZQXRCMUIsWUFBWSxFQUFFLFdBQVc7WUFFekIsY0FBYyxFQUFFLGVBQWUsRUFBRSxhQUFhO1lBQzlDLGNBQWM7WUFFZCxVQUFVO1lBRVYsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQiwwQkFBMEI7WUFFMUIsZUFBZTs7MkZBV04saUJBQWlCO2tCQXhCN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWSxFQUFFLFdBQVc7d0JBRXpCLGNBQWMsRUFBRSxlQUFlLEVBQUUsYUFBYTt3QkFDOUMsY0FBYzt3QkFFZCxVQUFVO3dCQUVWLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBRTFCLGVBQWU7cUJBQ2hCO29CQUNELFlBQVksRUFBRTt3QkFDWiwyQkFBMkIsRUFBRSx5QkFBeUI7d0JBQ3RELHVCQUF1QixFQUFFLHlCQUF5QjtxQkFDbkQ7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDJCQUEyQixFQUFFLHlCQUF5Qjt3QkFDdEQsdUJBQXVCLEVBQUUseUJBQXlCO3FCQUNuRDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtFbGRlclNlYXJjaENvbnRleHREaXJlY3RpdmV9IGZyb20gJy4vZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlJztcbmltcG9ydCB7RWxkZXJTZWFyY2hJbnB1dERpcmVjdGl2ZX0gZnJvbSAnLi9lbGRlci1zZWFyY2gtaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7RWxkZXJTZWFyY2hCb3hDb21wb25lbnR9IGZyb20gJy4vc2VhcmNoLWJveC9lbGRlci1zZWFyY2gtYm94LmNvbXBvbmVudCc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7QTExeU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtFbGRlck92ZXJsYXlNb2R1bGV9IGZyb20gJy4uLy4uL292ZXJsYXlzL2VsZGVyLW92ZXJsYXkubW9kdWxlJztcbmltcG9ydCB7RWxkZXJTZWFyY2hQYW5lbENvbXBvbmVudH0gZnJvbSAnLi9zZWFyY2gtYm94L2VsZGVyLXNlYXJjaC1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHtFbGRlclBhbmVsTW9kdWxlfSBmcm9tICcuLi8uLi9wYW5lbHMvZWxkZXItcGFuZWwubW9kdWxlJztcbmltcG9ydCB7RWxkZXJGb3Jtc0RpcmVjdGl2ZXNNb2R1bGV9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZWxkZXItZm9ybXMtZGlyZWN0aXZlcy5tb2R1bGUnO1xuXG5cbmV4cG9ydCB7RWxkZXJTZWFyY2hDb250ZXh0RGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLXNlYXJjaC1jb250ZXh0LmRpcmVjdGl2ZSc7XG5leHBvcnQge0VsZGVyU2VhcmNoSW5wdXREaXJlY3RpdmV9IGZyb20gJy4vZWxkZXItc2VhcmNoLWlucHV0LmRpcmVjdGl2ZSc7XG5leHBvcnQge0VsZGVyU2VhcmNoQm94Q29tcG9uZW50fSBmcm9tICcuL3NlYXJjaC1ib3gvZWxkZXItc2VhcmNoLWJveC5jb21wb25lbnQnO1xuZXhwb3J0IHtFbGRlclNlYXJjaFBhbmVsQ29tcG9uZW50fSBmcm9tICcuL3NlYXJjaC1ib3gvZWxkZXItc2VhcmNoLXBhbmVsLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLFxuXG4gICAgTWF0SW5wdXRNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRCYWRnZU1vZHVsZSxcblxuICAgIEExMXlNb2R1bGUsXG5cbiAgICBFbGRlck92ZXJsYXlNb2R1bGUsXG4gICAgRWxkZXJQYW5lbE1vZHVsZSxcbiAgICBFbGRlckZvcm1zRGlyZWN0aXZlc01vZHVsZSxcblxuICAgIFRyYW5zbGF0ZU1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBFbGRlclNlYXJjaENvbnRleHREaXJlY3RpdmUsIEVsZGVyU2VhcmNoSW5wdXREaXJlY3RpdmUsXG4gICAgRWxkZXJTZWFyY2hCb3hDb21wb25lbnQsIEVsZGVyU2VhcmNoUGFuZWxDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEVsZGVyU2VhcmNoQ29udGV4dERpcmVjdGl2ZSwgRWxkZXJTZWFyY2hJbnB1dERpcmVjdGl2ZSxcbiAgICBFbGRlclNlYXJjaEJveENvbXBvbmVudCwgRWxkZXJTZWFyY2hQYW5lbENvbXBvbmVudFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclNlYXJjaE1vZHVsZSB7IH1cbiJdfQ==
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvc2VhcmNoL2VsZGVyLXNlYXJjaC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOztBQUd6RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNsRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQWlDdEYsTUFBTSxPQUFPLGlCQUFpQjs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsaUJBZjFCLDJCQUEyQjtZQUMzQixxQ0FBcUM7WUFDckMseUJBQXlCO1lBQ3pCLDBCQUEwQjtZQUMxQix1QkFBdUI7WUFDdkIseUJBQXlCLGFBbkJ6QixZQUFZLEVBQUUsV0FBVztZQUV6QixjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWE7WUFDOUMsY0FBYztZQUVkLFVBQVU7WUFFVixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLDBCQUEwQjtZQUUxQixlQUFlLGFBV2YsMkJBQTJCO1lBQzNCLHFDQUFxQztZQUNyQyx5QkFBeUI7WUFDekIsdUJBQXVCO1lBQ3ZCLHlCQUF5QjsrR0FHaEIsaUJBQWlCLFlBN0IxQixZQUFZLEVBQUUsV0FBVztZQUV6QixjQUFjLEVBQUUsZUFBZSxFQUFFLGFBQWE7WUFDOUMsY0FBYztZQUVkLFVBQVU7WUFFVixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLDBCQUEwQjtZQUUxQixlQUFlOzsyRkFrQk4saUJBQWlCO2tCQS9CN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWSxFQUFFLFdBQVc7d0JBRXpCLGNBQWMsRUFBRSxlQUFlLEVBQUUsYUFBYTt3QkFDOUMsY0FBYzt3QkFFZCxVQUFVO3dCQUVWLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQiwwQkFBMEI7d0JBRTFCLGVBQWU7cUJBQ2hCO29CQUNELFlBQVksRUFBRTt3QkFDWiwyQkFBMkI7d0JBQzNCLHFDQUFxQzt3QkFDckMseUJBQXlCO3dCQUN6QiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3FCQUMxQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMkJBQTJCO3dCQUMzQixxQ0FBcUM7d0JBQ3JDLHlCQUF5Qjt3QkFDekIsdUJBQXVCO3dCQUN2Qix5QkFBeUI7cUJBQzFCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgRWxkZXJTZWFyY2hDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSBcIi4vZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBFbGRlclNlYXJjaElucHV0RGlyZWN0aXZlIH0gZnJvbSBcIi4vZWxkZXItc2VhcmNoLWlucHV0LmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRWxkZXJTZWFyY2hCb3hDb21wb25lbnQgfSBmcm9tIFwiLi9zZWFyY2gtYm94L2VsZGVyLXNlYXJjaC1ib3guY29tcG9uZW50XCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2VcIjtcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXRcIjtcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2ExMXlcIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBFbGRlck92ZXJsYXlNb2R1bGUgfSBmcm9tIFwiLi4vLi4vb3ZlcmxheXMvZWxkZXItb3ZlcmxheS5tb2R1bGVcIjtcbmltcG9ydCB7IEVsZGVyU2VhcmNoUGFuZWxDb21wb25lbnQgfSBmcm9tIFwiLi9zZWFyY2gtYm94L2VsZGVyLXNlYXJjaC1wYW5lbC5jb21wb25lbnRcIjtcbmltcG9ydCB7IEVsZGVyUGFuZWxNb2R1bGUgfSBmcm9tIFwiLi4vLi4vcGFuZWxzL2VsZGVyLXBhbmVsLm1vZHVsZVwiO1xuaW1wb3J0IHsgRWxkZXJGb3Jtc0RpcmVjdGl2ZXNNb2R1bGUgfSBmcm9tIFwiLi4vZGlyZWN0aXZlcy9lbGRlci1mb3Jtcy1kaXJlY3RpdmVzLm1vZHVsZVwiO1xuaW1wb3J0IHsgRWxkZXJTZWFyY2hDb250ZXh0VXJsQmluZGluZ0RpcmVjdGl2ZSB9IGZyb20gXCIuL2VsZGVyLXNlYXJjaC1jb250ZXh0LXVybC1iaW5kaW5nLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRWxkZXJJbml0aWFsVmFsdWVEaXJlY3RpdmUgfSBmcm9tIFwiLi4vZGlyZWN0aXZlcy9lbGRlci1pbml0aWFsLXZhbHVlLmRpcmVjdGl2ZVwiO1xuXG5cbmV4cG9ydCB7IEVsZGVyU2VhcmNoQ29udGV4dERpcmVjdGl2ZSB9IGZyb20gXCIuL2VsZGVyLXNlYXJjaC1jb250ZXh0LmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHsgRWxkZXJTZWFyY2hDb250ZXh0VXJsQmluZGluZ0RpcmVjdGl2ZSB9IGZyb20gXCIuL2VsZGVyLXNlYXJjaC1jb250ZXh0LXVybC1iaW5kaW5nLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHsgRWxkZXJTZWFyY2hJbnB1dERpcmVjdGl2ZSB9IGZyb20gXCIuL2VsZGVyLXNlYXJjaC1pbnB1dC5kaXJlY3RpdmVcIjtcbmV4cG9ydCB7IEVsZGVyU2VhcmNoQm94Q29tcG9uZW50IH0gZnJvbSBcIi4vc2VhcmNoLWJveC9lbGRlci1zZWFyY2gtYm94LmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgRWxkZXJTZWFyY2hQYW5lbENvbXBvbmVudCB9IGZyb20gXCIuL3NlYXJjaC1ib3gvZWxkZXItc2VhcmNoLXBhbmVsLmNvbXBvbmVudFwiO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSxcblxuICAgIE1hdElucHV0TW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0QmFkZ2VNb2R1bGUsXG5cbiAgICBBMTF5TW9kdWxlLFxuXG4gICAgRWxkZXJPdmVybGF5TW9kdWxlLFxuICAgIEVsZGVyUGFuZWxNb2R1bGUsXG4gICAgRWxkZXJGb3Jtc0RpcmVjdGl2ZXNNb2R1bGUsXG5cbiAgICBUcmFuc2xhdGVNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRWxkZXJTZWFyY2hDb250ZXh0RGlyZWN0aXZlLFxuICAgIEVsZGVyU2VhcmNoQ29udGV4dFVybEJpbmRpbmdEaXJlY3RpdmUsXG4gICAgRWxkZXJTZWFyY2hJbnB1dERpcmVjdGl2ZSxcbiAgICBFbGRlckluaXRpYWxWYWx1ZURpcmVjdGl2ZSxcbiAgICBFbGRlclNlYXJjaEJveENvbXBvbmVudCxcbiAgICBFbGRlclNlYXJjaFBhbmVsQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBFbGRlclNlYXJjaENvbnRleHREaXJlY3RpdmUsXG4gICAgRWxkZXJTZWFyY2hDb250ZXh0VXJsQmluZGluZ0RpcmVjdGl2ZSxcbiAgICBFbGRlclNlYXJjaElucHV0RGlyZWN0aXZlLFxuICAgIEVsZGVyU2VhcmNoQm94Q29tcG9uZW50LFxuICAgIEVsZGVyU2VhcmNoUGFuZWxDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclNlYXJjaE1vZHVsZSB7XG59XG4iXX0=
@@ -91,10 +91,10 @@ export class ElderSearchBoxComponent {
91
91
  clearSearch(event) {
92
92
  this.searchModel.reset();
93
93
  }
94
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ElderSearchBoxComponent, deps: [{ token: i1.ElderSearchContextDirective }], target: i0.ɵɵFactoryTarget.Component }); }
95
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: ElderSearchBoxComponent, selector: "elder-search-box", inputs: { autoPanel: "autoPanel", name: "name", queryKey: "queryKey", placeholder: "placeholder", label: "label", hint: "hint", autocomplete: "autocomplete", appearance: "appearance", dense: "dense" }, host: { classAttribute: "elder-form-field-host" }, queries: [{ propertyName: "advancedSearch", first: true, predicate: ElderSearchPanelComponent, descendants: true }], viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true }], exportAs: ["elderSearchBox"], ngImport: i0, template: "<div class=\"layout-row place-stretch-center full flex\" style=\"overflow: hidden\">\n <mat-form-field\n *ngIf=\"overlayState$ | async as overlayState\"\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto\" subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\">\n\n <button matPrefix mat-icon-button type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input matInput type=\"text\" [name]=\"name\" [placeholder]=\"placeholder\" #search cdkFocusInitial\n ngModel\n elderSearchInput [elderSearchInputKey]=\"queryKey\" #searchInput=\"elderSearchInput\"\n [autocomplete]=\"(autoPanel && overlayState.hasOverlay) ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"autoPanel && overlayState.hasOverlay && (searchInput?.state$ | async)?.pristine\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n\n <div class=\"layout-row\" matSuffix *ngIf=\"searchModel.userDefinedAttributes$ | async as userDefinedFilters\">\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"userDefinedFilters.length > 0\"\n (click)=\"clearSearch($event)\"\n name=\"clear\" aria-label=\"Clear\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"overlayState.hasOverlay\" name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\">\n <mat-icon\n [matBadge]=\"userDefinedFilters.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"userDefinedFilters.length == 0\"\n matBadgeColor=\"accent\"\n [color]=\"userDefinedFilters.length > 0 ? 'accent' : undefined\"\n >\n filter_list\n </mat-icon>\n </button>\n </div>\n </mat-form-field>\n</div>\n\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n\n <!-- Project the users search inputs here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-raised-button type=\"button\" name=\"clear\"\n (click)=\"clearSearch($event)\">{{'context.reset' | translate}}\n </button>\n\n <button mat-raised-button type=\"button\" name=\"ok\" color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\">Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-box-field{margin-top:4px;margin-bottom:4px}.elder-search-panel-container{min-width:250px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i9.ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "directive", type: i10.ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "directive", type: i11.ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }, { kind: "component", type: i12.ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "directive", type: i13.ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "directive", type: i14.ElderSearchInputDirective, selector: "[elderSearchInput]", inputs: ["elderSearchInputKey", "elderSearchInputTransform", "elderSearchInput", "elderSearchInputFallback"], exportAs: ["elderSearchInput"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchBoxComponent, deps: [{ token: i1.ElderSearchContextDirective }], target: i0.ɵɵFactoryTarget.Component }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchBoxComponent, selector: "elder-search-box", inputs: { autoPanel: "autoPanel", name: "name", queryKey: "queryKey", placeholder: "placeholder", label: "label", hint: "hint", autocomplete: "autocomplete", appearance: "appearance", dense: "dense" }, host: { classAttribute: "elder-form-field-host" }, queries: [{ propertyName: "advancedSearch", first: true, predicate: ElderSearchPanelComponent, descendants: true }], viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true }], exportAs: ["elderSearchBox"], ngImport: i0, template: "<div class=\"layout-row place-stretch-center full flex\" style=\"overflow: hidden\">\n <mat-form-field\n *ngIf=\"overlayState$ | async as overlayState\"\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto\" subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\">\n\n <button matPrefix mat-icon-button type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input matInput type=\"text\" [name]=\"name\" [placeholder]=\"placeholder\" #search cdkFocusInitial\n ngModel\n elderSearchInput [elderSearchInputKey]=\"queryKey\" #searchInput=\"elderSearchInput\"\n [autocomplete]=\"(autoPanel && overlayState.hasOverlay) ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"autoPanel && overlayState.hasOverlay && (searchInput?.state$ | async)?.pristine\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n\n <div class=\"layout-row\" matSuffix *ngIf=\"searchModel.userDefinedAttributes$ | async as userDefinedFilters\">\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"userDefinedFilters.length > 0\"\n (click)=\"clearSearch($event)\"\n name=\"clear\" aria-label=\"Clear\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"overlayState.hasOverlay\" name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\">\n <mat-icon\n [matBadge]=\"userDefinedFilters.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"userDefinedFilters.length == 0\"\n matBadgeColor=\"accent\"\n [color]=\"userDefinedFilters.length > 0 ? 'accent' : undefined\"\n >\n filter_list\n </mat-icon>\n </button>\n </div>\n </mat-form-field>\n</div>\n\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n\n <!-- Project the users search inputs here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-raised-button type=\"button\" name=\"clear\"\n (click)=\"clearSearch($event)\">{{'context.reset' | translate}}\n </button>\n\n <button mat-raised-button type=\"button\" name=\"ok\" color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\">Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-box-field{margin-top:4px;margin-bottom:4px}.elder-search-panel-container{min-width:250px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i9.ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "directive", type: i10.ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "directive", type: i11.ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }, { kind: "component", type: i12.ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "directive", type: i13.ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "directive", type: i14.ElderSearchInputDirective, selector: "[elderSearchInput]", inputs: ["elderSearchInputKey", "elderSearchInputTransform", "elderSearchInput", "dataSource", "elderSearchInputFallback", "valueAsId"], exportAs: ["elderSearchInput"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
96
96
  }
97
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ElderSearchBoxComponent, decorators: [{
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchBoxComponent, decorators: [{
98
98
  type: Component,
99
99
  args: [{ selector: 'elder-search-box', exportAs: 'elderSearchBox', host: { 'class': 'elder-form-field-host' }, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-row place-stretch-center full flex\" style=\"overflow: hidden\">\n <mat-form-field\n *ngIf=\"overlayState$ | async as overlayState\"\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto\" subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\">\n\n <button matPrefix mat-icon-button type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input matInput type=\"text\" [name]=\"name\" [placeholder]=\"placeholder\" #search cdkFocusInitial\n ngModel\n elderSearchInput [elderSearchInputKey]=\"queryKey\" #searchInput=\"elderSearchInput\"\n [autocomplete]=\"(autoPanel && overlayState.hasOverlay) ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"autoPanel && overlayState.hasOverlay && (searchInput?.state$ | async)?.pristine\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n\n <div class=\"layout-row\" matSuffix *ngIf=\"searchModel.userDefinedAttributes$ | async as userDefinedFilters\">\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"userDefinedFilters.length > 0\"\n (click)=\"clearSearch($event)\"\n name=\"clear\" aria-label=\"Clear\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"overlayState.hasOverlay\" name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\">\n <mat-icon\n [matBadge]=\"userDefinedFilters.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"userDefinedFilters.length == 0\"\n matBadgeColor=\"accent\"\n [color]=\"userDefinedFilters.length > 0 ? 'accent' : undefined\"\n >\n filter_list\n </mat-icon>\n </button>\n </div>\n </mat-form-field>\n</div>\n\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n\n <!-- Project the users search inputs here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-raised-button type=\"button\" name=\"clear\"\n (click)=\"clearSearch($event)\">{{'context.reset' | translate}}\n </button>\n\n <button mat-raised-button type=\"button\" name=\"ok\" color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\">Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-box-field{margin-top:4px;margin-bottom:4px}.elder-search-panel-container{min-width:250px}\n"] }]
100
100
  }], ctorParameters: function () { return [{ type: i1.ElderSearchContextDirective }]; }, propDecorators: { search: [{
@@ -0,0 +1,10 @@
1
+ export class ElderSearchContextFilters {
2
+ static empty(searchContextId) {
3
+ return new ElderSearchContextFilters(searchContextId, new Map());
4
+ }
5
+ constructor(searchContextId, filters) {
6
+ this.searchContextId = searchContextId;
7
+ this.filters = filters;
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWNvbnRleHQtZmlsdGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvc2VhcmNoL3NlYXJjaC1ib3gvZWxkZXItc2VhcmNoLWNvbnRleHQtZmlsdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8seUJBQXlCO0lBRTdCLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBdUI7UUFDekMsT0FBTyxJQUFJLHlCQUF5QixDQUFDLGVBQWUsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELFlBQ2tCLGVBQXVCLEVBQ3ZCLE9BQTRCO1FBRDVCLG9CQUFlLEdBQWYsZUFBZSxDQUFRO1FBQ3ZCLFlBQU8sR0FBUCxPQUFPLENBQXFCO0lBRTlDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbHRlciB9IGZyb20gXCIuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlclwiO1xuXG5leHBvcnQgY2xhc3MgRWxkZXJTZWFyY2hDb250ZXh0RmlsdGVycyB7XG5cbiAgcHVibGljIHN0YXRpYyBlbXB0eShzZWFyY2hDb250ZXh0SWQ6IHN0cmluZykge1xuICAgIHJldHVybiBuZXcgRWxkZXJTZWFyY2hDb250ZXh0RmlsdGVycyhzZWFyY2hDb250ZXh0SWQsIG5ldyBNYXAoKSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VhcmNoQ29udGV4dElkOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IGZpbHRlcnM6IE1hcDxzdHJpbmcsIEZpbHRlcj5cbiAgKSB7XG4gIH1cbn1cbiJdfQ==
@@ -2,10 +2,10 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class ElderSearchPanelComponent {
4
4
  constructor() { }
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ElderSearchPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: ElderSearchPanelComponent, selector: "elder-search-panel", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchPanelComponent, selector: "elder-search-panel", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ElderSearchPanelComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchPanelComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{
11
11
  selector: 'elder-search-panel',