@elderbyte/ngx-starter 15.19.4 → 16.0.1

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 (950) hide show
  1. package/esm2022/lib/common/async/refreshing-entity.mjs +86 -0
  2. package/esm2022/lib/common/csv/csv-spec.mjs +99 -0
  3. package/esm2022/lib/common/data/data-context/data-context-auto-starter.mjs +76 -0
  4. package/esm2022/lib/common/data/data-context/data-context-builder.mjs +247 -0
  5. package/esm2022/lib/common/data/data-context/data-context-status.mjs +46 -0
  6. package/esm2022/lib/common/data/data-context/mat-table-data-context-binding.mjs +139 -0
  7. package/esm2022/lib/common/data/datasource/data-source-adapter.mjs +55 -0
  8. package/esm2022/lib/common/data/datasource/data-source-change-event.mjs +24 -0
  9. package/esm2022/lib/common/data/datasource/data-source-processor.mjs +199 -0
  10. package/esm2022/lib/common/data/datasource/fetcher/delegate-data-source.mjs +127 -0
  11. package/esm2022/lib/common/data/datasource/local/local-list-data-source.mjs +141 -0
  12. package/esm2022/lib/common/data/datasource/local/local-paged-data-source.mjs +73 -0
  13. package/esm2022/lib/common/data/entity-set-patch.mjs +164 -0
  14. package/esm2022/lib/common/data/field-comparator.mjs +99 -0
  15. package/esm2022/lib/common/data/http-params-builder.mjs +118 -0
  16. package/esm2022/lib/common/data/sort.mjs +11 -0
  17. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +81 -0
  18. package/esm2022/lib/common/format/bytes-format.mjs +22 -0
  19. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +181 -0
  20. package/esm2022/lib/common/forms/elder-from-field-base.mjs +94 -0
  21. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +52 -0
  22. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +39 -0
  23. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +47 -0
  24. package/esm2022/lib/common/forms/form-field-base.component.mjs +112 -0
  25. package/esm2022/lib/common/forms/multi-model-base.component.mjs +32 -0
  26. package/esm2022/lib/common/forms/template-composite-control.mjs +133 -0
  27. package/esm2022/lib/common/forms/value-accessor-base.mjs +146 -0
  28. package/esm2022/lib/common/forms/view-providers.mjs +30 -0
  29. package/esm2022/lib/common/http/http-client-builder.service.mjs +14 -0
  30. package/esm2022/lib/common/http/http-client-pristine.mjs +21 -0
  31. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +95 -0
  32. package/esm2022/lib/common/http/transfer/data-transfer-progress-aggregate.mjs +49 -0
  33. package/esm2022/lib/common/http/transfer/data-transfer-progress.mjs +17 -0
  34. package/esm2022/lib/common/http/transfer/data-transfer-state.mjs +82 -0
  35. package/esm2022/lib/common/http/transfer/http-data-transfer.mjs +132 -0
  36. package/esm2022/lib/common/i18n/entity/impl/i18n-text.mjs +16 -0
  37. package/esm2022/lib/common/i18n/entity/locale.mjs +12 -0
  38. package/esm2022/lib/common/i18n/entity/localisation-picker.mjs +30 -0
  39. package/esm2022/lib/common/objects.mjs +41 -0
  40. package/esm2022/lib/common/selection/selection-model.mjs +212 -0
  41. package/esm2022/lib/common/suggestion-provider.mjs +12 -0
  42. package/esm2022/lib/common/time/date-util.mjs +93 -0
  43. package/esm2022/lib/common/time/time-util.mjs +41 -0
  44. package/esm2022/lib/common/url/elder-router.service.mjs +54 -0
  45. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +119 -0
  46. package/esm2022/lib/common/url/url-query-params.mjs +133 -0
  47. package/esm2022/lib/common/utils/collection-util.mjs +109 -0
  48. package/esm2022/lib/common/utils/filter-util.mjs +52 -0
  49. package/esm2022/lib/common/utils/focus-util.mjs +23 -0
  50. package/esm2022/lib/common/utils/query-list-binding.mjs +67 -0
  51. package/esm2022/lib/common/utils/url-builder.mjs +275 -0
  52. package/esm2022/lib/common/utils/value-wrapper.mjs +19 -0
  53. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +16 -0
  54. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +30 -0
  55. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +39 -0
  56. package/esm2022/lib/components/auditing/elder-audit.module.mjs +42 -0
  57. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +39 -0
  58. package/esm2022/lib/components/badge/elder-badge.directive.mjs +48 -0
  59. package/esm2022/lib/components/badge/elder-badge.module.mjs +40 -0
  60. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +15 -0
  61. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +35 -0
  62. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +123 -0
  63. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +15 -0
  64. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +211 -0
  65. package/esm2022/lib/components/card-organizer/card-stack.mjs +176 -0
  66. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +49 -0
  67. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +17 -0
  68. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +145 -0
  69. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +66 -0
  70. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +170 -0
  71. package/esm2022/lib/components/chips/elder-chips.module.mjs +48 -0
  72. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +56 -0
  73. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +63 -0
  74. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +46 -0
  75. package/esm2022/lib/components/containers/elder-containers.module.mjs +25 -0
  76. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +24 -0
  77. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +77 -0
  78. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +38 -0
  79. package/esm2022/lib/components/csv/elder-csv-stream-exporter.mjs +114 -0
  80. package/esm2022/lib/components/csv/elder-csv.module.mjs +37 -0
  81. package/esm2022/lib/components/currency/elder-currency.module.mjs +24 -0
  82. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +33 -0
  83. package/esm2022/lib/components/currency/model/currency-unit.mjs +10 -0
  84. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +76 -0
  85. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +91 -0
  86. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +91 -0
  87. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +34 -0
  88. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +47 -0
  89. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +26 -0
  90. package/esm2022/lib/components/data-view/base/data-view-options-provider-binding.mjs +67 -0
  91. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +266 -0
  92. package/esm2022/lib/components/data-view/base/elder-data-view-options.mjs +45 -0
  93. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +45 -0
  94. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +90 -0
  95. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +137 -0
  96. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +89 -0
  97. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +98 -0
  98. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +38 -0
  99. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +307 -0
  100. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +82 -0
  101. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +69 -0
  102. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +49 -0
  103. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +76 -0
  104. package/esm2022/lib/components/data-view/master-detail/elder-master-detail-provider.mjs +20 -0
  105. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +125 -0
  106. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +116 -0
  107. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +88 -0
  108. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +22 -0
  109. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +19 -0
  110. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +78 -0
  111. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +113 -0
  112. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +299 -0
  113. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +29 -0
  114. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +72 -0
  115. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +18 -0
  116. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +325 -0
  117. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +17 -0
  118. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +96 -0
  119. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +29 -0
  120. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +153 -0
  121. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +20 -0
  122. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +146 -0
  123. package/esm2022/lib/components/data-view/table/model/elder-column-layout.mjs +110 -0
  124. package/esm2022/lib/components/data-view/table/model/elder-table-model-cdk-table-binding.mjs +81 -0
  125. package/esm2022/lib/components/data-view/table/model/elder-table-model-provider.mjs +40 -0
  126. package/esm2022/lib/components/data-view/table/model/elder-table-model-query-group.mjs +87 -0
  127. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +165 -0
  128. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +25 -0
  129. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +64 -0
  130. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +202 -0
  131. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +43 -0
  132. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +43 -0
  133. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +46 -0
  134. package/esm2022/lib/components/errors/elder-error.module.mjs +41 -0
  135. package/esm2022/lib/components/errors/error-util.mjs +94 -0
  136. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +66 -0
  137. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +55 -0
  138. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +28 -0
  139. package/esm2022/lib/components/files/blob-url.mjs +10 -0
  140. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +225 -0
  141. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +43 -0
  142. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +84 -0
  143. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +144 -0
  144. package/esm2022/lib/components/files/elder-file-select.directive.mjs +166 -0
  145. package/esm2022/lib/components/files/elder-file.module.mjs +77 -0
  146. package/esm2022/lib/components/files/file-select/file-select.component.mjs +55 -0
  147. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +67 -0
  148. package/esm2022/lib/components/files/listing/file-entry.mjs +76 -0
  149. package/esm2022/lib/components/files/listing/file-listing-rx.mjs +104 -0
  150. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +51 -0
  151. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +34 -0
  152. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +35 -0
  153. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +42 -0
  154. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +82 -0
  155. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +83 -0
  156. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +41 -0
  157. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +34 -0
  158. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +132 -0
  159. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +77 -0
  160. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +111 -0
  161. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +101 -0
  162. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +36 -0
  163. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +29 -0
  164. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +157 -0
  165. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +27 -0
  166. package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +108 -0
  167. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +85 -0
  168. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +47 -0
  169. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +48 -0
  170. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +55 -0
  171. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +40 -0
  172. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +40 -0
  173. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +96 -0
  174. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +68 -0
  175. package/esm2022/lib/components/forms/elder-forms.module.mjs +22 -0
  176. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +146 -0
  177. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +185 -0
  178. package/esm2022/lib/components/forms/search/elder-search.module.mjs +66 -0
  179. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +125 -0
  180. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +16 -0
  181. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +126 -0
  182. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +32 -0
  183. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +93 -0
  184. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +90 -0
  185. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +26 -0
  186. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +28 -0
  187. package/esm2022/lib/components/headers/elder-header.module.mjs +43 -0
  188. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +68 -0
  189. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +123 -0
  190. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +144 -0
  191. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +29 -0
  192. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +30 -0
  193. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +152 -0
  194. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +28 -0
  195. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +56 -0
  196. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +39 -0
  197. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +30 -0
  198. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +74 -0
  199. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +69 -0
  200. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +72 -0
  201. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +121 -0
  202. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +65 -0
  203. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +53 -0
  204. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +130 -0
  205. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +138 -0
  206. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +103 -0
  207. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +41 -0
  208. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +51 -0
  209. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +136 -0
  210. package/esm2022/lib/components/iframes/iframe-messages.mjs +5 -0
  211. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +78 -0
  212. package/esm2022/lib/components/iframes/iframe.service.mjs +52 -0
  213. package/esm2022/lib/components/iframes/typed-event-message.mjs +42 -0
  214. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +61 -0
  215. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +158 -0
  216. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +29 -0
  217. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +186 -0
  218. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +197 -0
  219. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +114 -0
  220. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +58 -0
  221. package/esm2022/lib/components/labels/elder-labels.module.mjs +30 -0
  222. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +229 -0
  223. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +273 -0
  224. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +91 -0
  225. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +64 -0
  226. package/esm2022/lib/components/measures/elder-measures.module.mjs +140 -0
  227. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +41 -0
  228. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +73 -0
  229. package/esm2022/lib/components/measures/elder-unit.service.mjs +115 -0
  230. package/esm2022/lib/components/measures/model/unit-registry.mjs +81 -0
  231. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +33 -0
  232. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +176 -0
  233. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +87 -0
  234. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +76 -0
  235. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +237 -0
  236. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +164 -0
  237. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +55 -0
  238. package/esm2022/lib/components/navigation/bread-crumbs/path/path.mjs +37 -0
  239. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +53 -0
  240. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +127 -0
  241. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +161 -0
  242. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +68 -0
  243. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +46 -0
  244. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +76 -0
  245. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +68 -0
  246. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +66 -0
  247. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +39 -0
  248. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +85 -0
  249. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +43 -0
  250. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +72 -0
  251. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +204 -0
  252. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +41 -0
  253. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +12 -0
  254. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +12 -0
  255. package/esm2022/lib/components/panels/elder-panel.module.mjs +58 -0
  256. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +26 -0
  257. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +69 -0
  258. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +68 -0
  259. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +62 -0
  260. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +17 -0
  261. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +77 -0
  262. package/esm2022/lib/components/select/auto/elder-select-first-util.mjs +62 -0
  263. package/esm2022/lib/components/select/elder-select-base.mjs +284 -0
  264. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +45 -0
  265. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +133 -0
  266. package/esm2022/lib/components/select/elder-select-value.directive.mjs +15 -0
  267. package/esm2022/lib/components/select/elder-select.module.mjs +146 -0
  268. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +350 -0
  269. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +287 -0
  270. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +91 -0
  271. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +86 -0
  272. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +126 -0
  273. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +47 -0
  274. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +57 -0
  275. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +443 -0
  276. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +45 -0
  277. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +149 -0
  278. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +48 -0
  279. package/esm2022/lib/components/shell/drawers/drawer-outlet-binding.mjs +60 -0
  280. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +117 -0
  281. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +128 -0
  282. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +46 -0
  283. package/esm2022/lib/components/shell/elder-shell.module.mjs +96 -0
  284. package/esm2022/lib/components/shell/elder-shell.service.mjs +145 -0
  285. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +73 -0
  286. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +209 -0
  287. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +137 -0
  288. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +25 -0
  289. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +256 -0
  290. package/esm2022/lib/components/tabs/elder-tab.module.mjs +32 -0
  291. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +62 -0
  292. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +74 -0
  293. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +74 -0
  294. package/esm2022/lib/components/theme/elder-theme.directive.mjs +61 -0
  295. package/esm2022/lib/components/theme/elder-theme.module.mjs +74 -0
  296. package/esm2022/lib/components/theme/elder-theme.service.mjs +123 -0
  297. package/esm2022/lib/components/theme/known-elder-themes.mjs +6 -0
  298. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +57 -0
  299. package/esm2022/lib/components/time/duration/duration-format.mjs +271 -0
  300. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +122 -0
  301. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +89 -0
  302. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +108 -0
  303. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +173 -0
  304. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +264 -0
  305. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +95 -0
  306. package/esm2022/lib/components/time/elder-time.module.mjs +120 -0
  307. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +131 -0
  308. package/esm2022/lib/components/time/period/period-format.mjs +89 -0
  309. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +38 -0
  310. package/esm2022/lib/components/toasts/elder-toast.module.mjs +23 -0
  311. package/esm2022/lib/components/toasts/elder-toast.service.mjs +171 -0
  312. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +74 -0
  313. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +54 -0
  314. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +84 -0
  315. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +65 -0
  316. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +25 -0
  317. package/esm2022/lib/features/event-source/elder-event-source.service.mjs +56 -0
  318. package/esm2022/lib/features/event-source/reactive-event-source.mjs +198 -0
  319. package/esm2022/lib/features/kafent/access-token-provider.mjs +20 -0
  320. package/esm2022/lib/features/kafent/kafent-config.mjs +24 -0
  321. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +25 -0
  322. package/esm2022/lib/features/kafent/kafent-event.service.mjs +107 -0
  323. package/esm2022/lib/features/kafent/kafent.module.mjs +61 -0
  324. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +128 -0
  325. package/esm2022/lib/pipes/bytes.pipe.mjs +24 -0
  326. package/esm2022/lib/pipes/elder-pipes.module.mjs +67 -0
  327. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +21 -0
  328. package/esm2022/lib/pipes/elder-round.pipe.mjs +35 -0
  329. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +20 -0
  330. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +40 -0
  331. package/esm2022/lib/pipes/iso-duration.pipe.mjs +58 -0
  332. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +49 -0
  333. package/esm2022/lib/pipes/iso-interval.pipe.mjs +110 -0
  334. package/esm2022/lib/pipes/time-ago.pipe.mjs +104 -0
  335. package/esm2022/lib/pipes/time-duration.pipe.mjs +98 -0
  336. package/esm2022/lib/pipes/weight.pipe.mjs +56 -0
  337. package/fesm2022/elderbyte-ngx-starter.mjs +30302 -0
  338. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -0
  339. package/lib/common/data/field-comparator.d.ts +1 -1
  340. package/lib/common/forms/elder-form-field-control-base.directive.d.ts +1 -1
  341. package/lib/common/forms/elder-from-field-base.d.ts +1 -1
  342. package/lib/common/forms/elder-from-field-customizable-base.d.ts +1 -1
  343. package/lib/common/forms/form-field-base.component.d.ts +1 -1
  344. package/lib/common/forms/template-composite-control.d.ts +1 -1
  345. package/lib/common/forms/value-accessor-base.d.ts +1 -1
  346. package/lib/common/i18n/entity/language-tag.d.ts +1 -1
  347. package/lib/common/i18n/entity/translated.d.ts +1 -1
  348. package/lib/common/json-map.d.ts +1 -1
  349. package/lib/common/selection/selection-model.d.ts +1 -1
  350. package/lib/common/theme-sizes.d.ts +1 -1
  351. package/lib/common/time/date-util.d.ts +1 -1
  352. package/lib/common/time/interval.d.ts +1 -1
  353. package/lib/components/auditing/audited-entity/elder-audited-entity.component.d.ts +1 -1
  354. package/lib/components/badge/elder-badge/elder-badge.component.d.ts +1 -1
  355. package/lib/components/badge/elder-badge.directive.d.ts +1 -1
  356. package/lib/components/card-organizer/card-organizer/elder-card-organizer.component.d.ts +1 -1
  357. package/lib/components/card-organizer/card-stack/elder-card-stack.component.d.ts +1 -1
  358. package/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.d.ts +1 -1
  359. package/lib/components/cards/elder-card/elder-card.component.d.ts +3 -3
  360. package/lib/components/chips/elder-chip-label.directive.d.ts +4 -4
  361. package/lib/components/containers/elder-scroll-container/elder-scroll-container.component.d.ts +2 -2
  362. package/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.d.ts +1 -1
  363. package/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.d.ts +1 -1
  364. package/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.d.ts +1 -1
  365. package/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.d.ts +1 -1
  366. package/lib/components/data-view/base/elder-data-view-base.d.ts +1 -1
  367. package/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.d.ts +1 -1
  368. package/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.d.ts +3 -3
  369. package/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.d.ts +1 -1
  370. package/lib/components/data-view/common/selection/data-context-selection.directive.d.ts +1 -1
  371. package/lib/components/data-view/elder-data-view-interaction-mode.d.ts +1 -1
  372. package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +1 -1
  373. package/lib/components/data-view/master-detail/elder-master-detail-mode.d.ts +1 -1
  374. package/lib/components/data-view/master-detail/elder-master-detail.component.d.ts +1 -1
  375. package/lib/components/data-view/table/activation/elder-delete-active.directive.d.ts +1 -1
  376. package/lib/components/data-view/table/activation/elder-table-activation-options.d.ts +2 -2
  377. package/lib/components/data-view/table/activation/elder-table-activation.directive.d.ts +1 -1
  378. package/lib/components/data-view/table/elder-table/elder-table.component.d.ts +1 -1
  379. package/lib/components/data-view/table/elder-table-extension.directive.d.ts +1 -1
  380. package/lib/components/data-view/table/elder-table-row.directive.d.ts +1 -1
  381. package/lib/components/data-view/table/model/elder-column-layout.d.ts +1 -1
  382. package/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.d.ts +1 -1
  383. package/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.d.ts +1 -1
  384. package/lib/components/errors/exception-detail/elder-exception-detail.component.d.ts +1 -1
  385. package/lib/components/expand-toggle-button/elder-expand-toggle-button.component.d.ts +1 -1
  386. package/lib/components/files/blob-viewer/elder-blob-viewer.component.d.ts +1 -1
  387. package/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.d.ts +1 -1
  388. package/lib/components/files/elder-file-drop-zone.directive.d.ts +1 -1
  389. package/lib/components/files/elder-file-select.directive.d.ts +1 -1
  390. package/lib/components/files/file-select/file-select.component.d.ts +1 -1
  391. package/lib/components/files/file-upload/file-upload.component.d.ts +1 -1
  392. package/lib/components/forms/directives/elder-clipboard-put.directive.d.ts +1 -1
  393. package/lib/components/forms/directives/elder-delayed-focus.directive.d.ts +1 -1
  394. package/lib/components/forms/directives/elder-form-field-dense.directive.d.ts +1 -1
  395. package/lib/components/forms/directives/elder-form-field-label.directive.d.ts +1 -1
  396. package/lib/components/forms/directives/elder-form-field-no-hint.directive.d.ts +1 -1
  397. package/lib/components/forms/directives/elder-form-field-no-spinner.directive.d.ts +1 -1
  398. package/lib/components/forms/directives/elder-input-pattern.directive.d.ts +1 -1
  399. package/lib/components/forms/directives/elder-key-event.directive.d.ts +1 -1
  400. package/lib/components/forms/directives/elder-next-focusable.directive.d.ts +1 -1
  401. package/lib/components/forms/directives/elder-tab-focus-trap.directive.d.ts +1 -1
  402. package/lib/components/forms/directives/validation/validators/elder-max.validator.d.ts +1 -1
  403. package/lib/components/forms/directives/validation/validators/elder-min.validator.d.ts +1 -1
  404. package/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.d.ts +1 -1
  405. package/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.d.ts +1 -1
  406. package/lib/components/forms/search/elder-search-context.directive.d.ts +1 -1
  407. package/lib/components/forms/search/elder-search-input.directive.d.ts +1 -1
  408. package/lib/components/forms/search/search-box/elder-search-box.component.d.ts +1 -1
  409. package/lib/components/global-search/elder-global-search.component.d.ts +1 -1
  410. package/lib/components/graph/elder-progress-bar/elder-progress-bar.component.d.ts +1 -1
  411. package/lib/components/headers/elder-header/elder-header.component.d.ts +1 -1
  412. package/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.d.ts +1 -1
  413. package/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.d.ts +1 -1
  414. package/lib/components/i18n/entities/elder-localized-text-column.directive.d.ts +1 -1
  415. package/lib/components/i18n/language/language-switcher/elder-language-switcher.component.d.ts +1 -1
  416. package/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.d.ts +1 -1
  417. package/lib/components/iframes/iframe-close.directive.d.ts +1 -1
  418. package/lib/components/iframes/iframe-host/iframe-host.component.d.ts +2 -2
  419. package/lib/components/iframes/typed-event-message.d.ts +1 -1
  420. package/lib/components/infinitescroll/elder-infinite-scroll.directive.d.ts +1 -1
  421. package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.d.ts +2 -2
  422. package/lib/components/input/autocomplete/elder-autocomplete-many.directive.d.ts +1 -1
  423. package/lib/components/input/autocomplete/elder-autocomplete.directive.d.ts +1 -1
  424. package/lib/components/labels/labels-input/labels-input.component.d.ts +1 -1
  425. package/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.d.ts +2 -2
  426. package/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.d.ts +1 -1
  427. package/lib/components/measures/directives/elder-unit-select.directive.d.ts +1 -1
  428. package/lib/components/measures/model/unit.d.ts +1 -1
  429. package/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.d.ts +1 -1
  430. package/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.d.ts +1 -1
  431. package/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.d.ts +1 -1
  432. package/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.d.ts +1 -1
  433. package/lib/components/navigation/nav/nav-group/elder-nav-group.component.d.ts +1 -1
  434. package/lib/components/navigation/nav/nav-link/elder-nav-link.component.d.ts +1 -1
  435. package/lib/components/navigation/nav/nav-list/elder-nav-list.component.d.ts +1 -1
  436. package/lib/components/navigation/toolbar/elder-toolbar-column.directive.d.ts +1 -1
  437. package/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.d.ts +1 -1
  438. package/lib/components/navigation/toolbar/toolbar-column-position.d.ts +1 -1
  439. package/lib/components/overlays/elder-overlay-origin.directive.d.ts +1 -1
  440. package/lib/components/overlays/elder-overlay-trigger.directive.d.ts +1 -1
  441. package/lib/components/overlays/elder-overlay.component.d.ts +1 -1
  442. package/lib/components/panels/flat/elder-panel.component.d.ts +1 -1
  443. package/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.d.ts +1 -1
  444. package/lib/components/scrollbar/elder-scrollbar.directive.d.ts +1 -1
  445. package/lib/components/select/auto/elder-auto-select-first.directive.d.ts +1 -1
  446. package/lib/components/select/elder-select-base.d.ts +2 -2
  447. package/lib/components/select/multi/elder-multi-select-base.d.ts +1 -1
  448. package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +1 -1
  449. package/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.d.ts +1 -1
  450. package/lib/components/select/popup/selection-model-popup.directive.d.ts +1 -1
  451. package/lib/components/select/single/elder-select/elder-select.component.d.ts +1 -1
  452. package/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.d.ts +1 -1
  453. package/lib/components/shell/elder-shell-slot.directive.d.ts +1 -1
  454. package/lib/components/shell/header/elder-app-header/elder-app-header.component.d.ts +1 -1
  455. package/lib/components/shell/shell/elder-shell.component.d.ts +1 -1
  456. package/lib/components/shell/shell-content-slot.d.ts +1 -1
  457. package/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.d.ts +1 -1
  458. package/lib/components/tabs/elder-tab/elder-tab.directive.d.ts +1 -1
  459. package/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.d.ts +1 -1
  460. package/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.d.ts +2 -2
  461. package/lib/components/time/date-adapters/custom-date-adapter.d.ts +6 -0
  462. package/lib/components/time/duration/elder-duration-input/elder-duration-input.component.d.ts +1 -1
  463. package/lib/components/time/duration/iso-duration-str.d.ts +1 -1
  464. package/lib/components/time/elder-date-switcher/elder-date-switcher.component.d.ts +1 -1
  465. package/lib/components/time/elder-date-time-input/elder-date-time-input.component.d.ts +1 -1
  466. package/lib/components/time/elder-interval-input/elder-interval-input.component.d.ts +2 -2
  467. package/lib/components/time/elder-local-date-input/elder-local-date-input.component.d.ts +1 -1
  468. package/lib/components/time/elder-local-time-input/elder-local-time-input.component.d.ts +1 -1
  469. package/lib/components/time/period/elder-period-input/elder-period-input.component.d.ts +1 -1
  470. package/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.d.ts +1 -1
  471. package/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.d.ts +1 -1
  472. package/lib/pipes/elder-truncate.pipe.d.ts +1 -1
  473. package/package.json +12 -18
  474. package/esm2020/lib/common/async/refreshing-entity.mjs +0 -86
  475. package/esm2020/lib/common/csv/csv-spec.mjs +0 -99
  476. package/esm2020/lib/common/data/data-context/data-context-auto-starter.mjs +0 -76
  477. package/esm2020/lib/common/data/data-context/data-context-builder.mjs +0 -247
  478. package/esm2020/lib/common/data/data-context/data-context-status.mjs +0 -46
  479. package/esm2020/lib/common/data/data-context/mat-table-data-context-binding.mjs +0 -139
  480. package/esm2020/lib/common/data/datasource/data-source-adapter.mjs +0 -55
  481. package/esm2020/lib/common/data/datasource/data-source-change-event.mjs +0 -24
  482. package/esm2020/lib/common/data/datasource/data-source-processor.mjs +0 -199
  483. package/esm2020/lib/common/data/datasource/fetcher/delegate-data-source.mjs +0 -127
  484. package/esm2020/lib/common/data/datasource/local/local-list-data-source.mjs +0 -141
  485. package/esm2020/lib/common/data/datasource/local/local-paged-data-source.mjs +0 -73
  486. package/esm2020/lib/common/data/entity-set-patch.mjs +0 -164
  487. package/esm2020/lib/common/data/field-comparator.mjs +0 -99
  488. package/esm2020/lib/common/data/http-params-builder.mjs +0 -118
  489. package/esm2020/lib/common/data/sort.mjs +0 -11
  490. package/esm2020/lib/common/enums/elder-enum-translation.service.mjs +0 -81
  491. package/esm2020/lib/common/format/bytes-format.mjs +0 -22
  492. package/esm2020/lib/common/forms/elder-form-field-control-base.directive.mjs +0 -181
  493. package/esm2020/lib/common/forms/elder-from-field-base.mjs +0 -94
  494. package/esm2020/lib/common/forms/elder-from-field-customizable-base.mjs +0 -52
  495. package/esm2020/lib/common/forms/elder-from-field-entity-base.mjs +0 -39
  496. package/esm2020/lib/common/forms/elder-from-field-multi-entity-base.mjs +0 -47
  497. package/esm2020/lib/common/forms/form-field-base.component.mjs +0 -112
  498. package/esm2020/lib/common/forms/multi-model-base.component.mjs +0 -32
  499. package/esm2020/lib/common/forms/template-composite-control.mjs +0 -133
  500. package/esm2020/lib/common/forms/value-accessor-base.mjs +0 -146
  501. package/esm2020/lib/common/forms/view-providers.mjs +0 -30
  502. package/esm2020/lib/common/http/http-client-builder.service.mjs +0 -14
  503. package/esm2020/lib/common/http/http-client-pristine.mjs +0 -21
  504. package/esm2020/lib/common/http/transfer/data-transfer-factory.mjs +0 -95
  505. package/esm2020/lib/common/http/transfer/data-transfer-progress-aggregate.mjs +0 -49
  506. package/esm2020/lib/common/http/transfer/data-transfer-progress.mjs +0 -17
  507. package/esm2020/lib/common/http/transfer/data-transfer-state.mjs +0 -82
  508. package/esm2020/lib/common/http/transfer/http-data-transfer.mjs +0 -132
  509. package/esm2020/lib/common/i18n/entity/impl/i18n-text.mjs +0 -16
  510. package/esm2020/lib/common/i18n/entity/locale.mjs +0 -12
  511. package/esm2020/lib/common/i18n/entity/localisation-picker.mjs +0 -30
  512. package/esm2020/lib/common/objects.mjs +0 -41
  513. package/esm2020/lib/common/selection/selection-model.mjs +0 -212
  514. package/esm2020/lib/common/suggestion-provider.mjs +0 -12
  515. package/esm2020/lib/common/time/date-util.mjs +0 -93
  516. package/esm2020/lib/common/time/time-util.mjs +0 -41
  517. package/esm2020/lib/common/url/elder-router.service.mjs +0 -54
  518. package/esm2020/lib/common/url/elder-url-fragment-params.service.mjs +0 -119
  519. package/esm2020/lib/common/url/url-query-params.mjs +0 -133
  520. package/esm2020/lib/common/utils/collection-util.mjs +0 -109
  521. package/esm2020/lib/common/utils/filter-util.mjs +0 -52
  522. package/esm2020/lib/common/utils/focus-util.mjs +0 -23
  523. package/esm2020/lib/common/utils/query-list-binding.mjs +0 -67
  524. package/esm2020/lib/common/utils/url-builder.mjs +0 -275
  525. package/esm2020/lib/common/utils/value-wrapper.mjs +0 -19
  526. package/esm2020/lib/components/access-denied/elder-access-denied.component.mjs +0 -16
  527. package/esm2020/lib/components/access-denied/elder-access-denied.module.mjs +0 -30
  528. package/esm2020/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +0 -39
  529. package/esm2020/lib/components/auditing/elder-audit.module.mjs +0 -42
  530. package/esm2020/lib/components/badge/elder-badge/elder-badge.component.mjs +0 -39
  531. package/esm2020/lib/components/badge/elder-badge.directive.mjs +0 -48
  532. package/esm2020/lib/components/badge/elder-badge.module.mjs +0 -40
  533. package/esm2020/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +0 -15
  534. package/esm2020/lib/components/button-group/elder-button-group.module.mjs +0 -35
  535. package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +0 -123
  536. package/esm2020/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +0 -15
  537. package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +0 -211
  538. package/esm2020/lib/components/card-organizer/card-stack.mjs +0 -176
  539. package/esm2020/lib/components/card-organizer/elder-card-organizer.module.mjs +0 -49
  540. package/esm2020/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +0 -17
  541. package/esm2020/lib/components/cards/elder-card/elder-card.component.mjs +0 -145
  542. package/esm2020/lib/components/cards/elder-card/elder-card.module.mjs +0 -66
  543. package/esm2020/lib/components/chips/elder-chip-label.directive.mjs +0 -170
  544. package/esm2020/lib/components/chips/elder-chips.module.mjs +0 -48
  545. package/esm2020/lib/components/connectivity/elder-connectivity.module.mjs +0 -56
  546. package/esm2020/lib/components/connectivity/elder-connectivity.service.mjs +0 -63
  547. package/esm2020/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +0 -46
  548. package/esm2020/lib/components/containers/elder-containers.module.mjs +0 -25
  549. package/esm2020/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +0 -24
  550. package/esm2020/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +0 -77
  551. package/esm2020/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +0 -38
  552. package/esm2020/lib/components/csv/elder-csv-stream-exporter.mjs +0 -114
  553. package/esm2020/lib/components/csv/elder-csv.module.mjs +0 -37
  554. package/esm2020/lib/components/currency/elder-currency.module.mjs +0 -24
  555. package/esm2020/lib/components/currency/elder-currency.pipe.mjs +0 -33
  556. package/esm2020/lib/components/currency/model/currency-unit.mjs +0 -10
  557. package/esm2020/lib/components/data-transfer/elder-data-transfer.module.mjs +0 -76
  558. package/esm2020/lib/components/data-transfer/elder-data-transfer.service.mjs +0 -91
  559. package/esm2020/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +0 -91
  560. package/esm2020/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +0 -34
  561. package/esm2020/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +0 -47
  562. package/esm2020/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +0 -26
  563. package/esm2020/lib/components/data-view/base/data-view-options-provider-binding.mjs +0 -67
  564. package/esm2020/lib/components/data-view/base/elder-data-view-base.mjs +0 -266
  565. package/esm2020/lib/components/data-view/base/elder-data-view-options.mjs +0 -45
  566. package/esm2020/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +0 -45
  567. package/esm2020/lib/components/data-view/common/elder-data-common.module.mjs +0 -90
  568. package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +0 -137
  569. package/esm2020/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +0 -89
  570. package/esm2020/lib/components/data-view/common/selection/data-context-selection.directive.mjs +0 -98
  571. package/esm2020/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +0 -38
  572. package/esm2020/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +0 -307
  573. package/esm2020/lib/components/data-view/grid/elder-grid.module.mjs +0 -82
  574. package/esm2020/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +0 -69
  575. package/esm2020/lib/components/data-view/master-detail/elder-detail.directive.mjs +0 -49
  576. package/esm2020/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +0 -76
  577. package/esm2020/lib/components/data-view/master-detail/elder-master-detail-provider.mjs +0 -20
  578. package/esm2020/lib/components/data-view/master-detail/elder-master-detail.component.mjs +0 -125
  579. package/esm2020/lib/components/data-view/master-detail/elder-master-detail.module.mjs +0 -116
  580. package/esm2020/lib/components/data-view/master-detail/elder-master-detail.service.mjs +0 -88
  581. package/esm2020/lib/components/data-view/master-detail/elder-master.directive.mjs +0 -22
  582. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +0 -19
  583. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +0 -78
  584. package/esm2020/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +0 -113
  585. package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +0 -299
  586. package/esm2020/lib/components/data-view/table/elder-number-cell.directive.mjs +0 -29
  587. package/esm2020/lib/components/data-view/table/elder-paginator-intl.mjs +0 -72
  588. package/esm2020/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +0 -18
  589. package/esm2020/lib/components/data-view/table/elder-table/elder-table.component.mjs +0 -325
  590. package/esm2020/lib/components/data-view/table/elder-table-column.directive.mjs +0 -17
  591. package/esm2020/lib/components/data-view/table/elder-table-extension.directive.mjs +0 -96
  592. package/esm2020/lib/components/data-view/table/elder-table-root.directive.mjs +0 -29
  593. package/esm2020/lib/components/data-view/table/elder-table-row.directive.mjs +0 -153
  594. package/esm2020/lib/components/data-view/table/elder-table-sort.directive.mjs +0 -20
  595. package/esm2020/lib/components/data-view/table/elder-table.module.mjs +0 -146
  596. package/esm2020/lib/components/data-view/table/model/elder-column-layout.mjs +0 -110
  597. package/esm2020/lib/components/data-view/table/model/elder-table-model-cdk-table-binding.mjs +0 -81
  598. package/esm2020/lib/components/data-view/table/model/elder-table-model-provider.mjs +0 -40
  599. package/esm2020/lib/components/data-view/table/model/elder-table-model-query-group.mjs +0 -87
  600. package/esm2020/lib/components/data-view/table/model/elder-table-model.mjs +0 -165
  601. package/esm2020/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +0 -25
  602. package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +0 -64
  603. package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +0 -202
  604. package/esm2020/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +0 -43
  605. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +0 -43
  606. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +0 -46
  607. package/esm2020/lib/components/errors/elder-error.module.mjs +0 -41
  608. package/esm2020/lib/components/errors/error-util.mjs +0 -94
  609. package/esm2020/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +0 -66
  610. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +0 -55
  611. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +0 -28
  612. package/esm2020/lib/components/files/blob-url.mjs +0 -10
  613. package/esm2020/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +0 -225
  614. package/esm2020/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +0 -43
  615. package/esm2020/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +0 -84
  616. package/esm2020/lib/components/files/elder-file-drop-zone.directive.mjs +0 -144
  617. package/esm2020/lib/components/files/elder-file-select.directive.mjs +0 -166
  618. package/esm2020/lib/components/files/elder-file.module.mjs +0 -77
  619. package/esm2020/lib/components/files/file-select/file-select.component.mjs +0 -55
  620. package/esm2020/lib/components/files/file-upload/file-upload.component.mjs +0 -67
  621. package/esm2020/lib/components/files/listing/file-entry.mjs +0 -76
  622. package/esm2020/lib/components/files/listing/file-listing-rx.mjs +0 -104
  623. package/esm2020/lib/components/forms/clipboard/elder-clipboard.service.mjs +0 -51
  624. package/esm2020/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +0 -34
  625. package/esm2020/lib/components/forms/directives/elder-clipboard-put.directive.mjs +0 -35
  626. package/esm2020/lib/components/forms/directives/elder-delayed-focus.directive.mjs +0 -42
  627. package/esm2020/lib/components/forms/directives/elder-form-field-dense.directive.mjs +0 -82
  628. package/esm2020/lib/components/forms/directives/elder-form-field-label.directive.mjs +0 -83
  629. package/esm2020/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +0 -41
  630. package/esm2020/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +0 -34
  631. package/esm2020/lib/components/forms/directives/elder-forms-directives.module.mjs +0 -132
  632. package/esm2020/lib/components/forms/directives/elder-input-pattern.directive.mjs +0 -77
  633. package/esm2020/lib/components/forms/directives/elder-key-event.directive.mjs +0 -111
  634. package/esm2020/lib/components/forms/directives/elder-next-focusable.directive.mjs +0 -101
  635. package/esm2020/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +0 -36
  636. package/esm2020/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +0 -29
  637. package/esm2020/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +0 -157
  638. package/esm2020/lib/components/forms/directives/elder-touched.directive.mjs +0 -27
  639. package/esm2020/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +0 -108
  640. package/esm2020/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +0 -85
  641. package/esm2020/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +0 -47
  642. package/esm2020/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +0 -48
  643. package/esm2020/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +0 -55
  644. package/esm2020/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +0 -40
  645. package/esm2020/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +0 -40
  646. package/esm2020/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +0 -96
  647. package/esm2020/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +0 -68
  648. package/esm2020/lib/components/forms/elder-forms.module.mjs +0 -22
  649. package/esm2020/lib/components/forms/search/elder-search-context.directive.mjs +0 -146
  650. package/esm2020/lib/components/forms/search/elder-search-input.directive.mjs +0 -185
  651. package/esm2020/lib/components/forms/search/elder-search.module.mjs +0 -66
  652. package/esm2020/lib/components/forms/search/search-box/elder-search-box.component.mjs +0 -125
  653. package/esm2020/lib/components/forms/search/search-box/elder-search-panel.component.mjs +0 -16
  654. package/esm2020/lib/components/global-search/elder-global-search.component.mjs +0 -126
  655. package/esm2020/lib/components/global-search/elder-global-search.module.mjs +0 -32
  656. package/esm2020/lib/components/global-search/elder-global-search.service.mjs +0 -93
  657. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +0 -90
  658. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +0 -26
  659. package/esm2020/lib/components/headers/elder-header/elder-header.component.mjs +0 -28
  660. package/esm2020/lib/components/headers/elder-header.module.mjs +0 -43
  661. package/esm2020/lib/components/http-support/elder-http-client.service.mjs +0 -68
  662. package/esm2020/lib/components/i18n/entities/elder-i18n-entities.module.mjs +0 -123
  663. package/esm2020/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +0 -144
  664. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +0 -29
  665. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +0 -30
  666. package/esm2020/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +0 -152
  667. package/esm2020/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +0 -28
  668. package/esm2020/lib/components/i18n/entities/elder-localized-texts.directive.mjs +0 -56
  669. package/esm2020/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +0 -39
  670. package/esm2020/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +0 -30
  671. package/esm2020/lib/components/i18n/entities/picker/localisation-picker.service.mjs +0 -74
  672. package/esm2020/lib/components/i18n/language/elder-language-interceptor.mjs +0 -69
  673. package/esm2020/lib/components/i18n/language/elder-language.module.mjs +0 -72
  674. package/esm2020/lib/components/i18n/language/elder-language.service.mjs +0 -121
  675. package/esm2020/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +0 -65
  676. package/esm2020/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +0 -53
  677. package/esm2020/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +0 -130
  678. package/esm2020/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +0 -138
  679. package/esm2020/lib/components/iframes/elder-iframe.module.mjs +0 -103
  680. package/esm2020/lib/components/iframes/iframe-close.directive.mjs +0 -41
  681. package/esm2020/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +0 -51
  682. package/esm2020/lib/components/iframes/iframe-host/iframe-host.component.mjs +0 -136
  683. package/esm2020/lib/components/iframes/iframe-messages.mjs +0 -5
  684. package/esm2020/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +0 -78
  685. package/esm2020/lib/components/iframes/iframe.service.mjs +0 -52
  686. package/esm2020/lib/components/iframes/typed-event-message.mjs +0 -42
  687. package/esm2020/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +0 -61
  688. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +0 -158
  689. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +0 -29
  690. package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +0 -186
  691. package/esm2020/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +0 -197
  692. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +0 -114
  693. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.module.mjs +0 -58
  694. package/esm2020/lib/components/labels/elder-labels.module.mjs +0 -30
  695. package/esm2020/lib/components/labels/labels-input/labels-input.component.mjs +0 -229
  696. package/esm2020/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +0 -273
  697. package/esm2020/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +0 -91
  698. package/esm2020/lib/components/measures/directives/elder-unit-select.directive.mjs +0 -64
  699. package/esm2020/lib/components/measures/elder-measures.module.mjs +0 -140
  700. package/esm2020/lib/components/measures/elder-quantity-transform.pipe.mjs +0 -41
  701. package/esm2020/lib/components/measures/elder-quantity.pipe.mjs +0 -73
  702. package/esm2020/lib/components/measures/elder-unit.service.mjs +0 -115
  703. package/esm2020/lib/components/measures/model/unit-registry.mjs +0 -81
  704. package/esm2020/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +0 -33
  705. package/esm2020/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +0 -176
  706. package/esm2020/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +0 -87
  707. package/esm2020/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +0 -76
  708. package/esm2020/lib/components/measures/util/elder-quantity.service.mjs +0 -237
  709. package/esm2020/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +0 -164
  710. package/esm2020/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +0 -55
  711. package/esm2020/lib/components/navigation/bread-crumbs/path/path.mjs +0 -37
  712. package/esm2020/lib/components/navigation/nav/elder-nav.module.mjs +0 -53
  713. package/esm2020/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +0 -127
  714. package/esm2020/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +0 -161
  715. package/esm2020/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +0 -68
  716. package/esm2020/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +0 -46
  717. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.module.mjs +0 -76
  718. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.service.mjs +0 -68
  719. package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +0 -66
  720. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +0 -39
  721. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +0 -85
  722. package/esm2020/lib/components/overlays/elder-overlay-origin.directive.mjs +0 -43
  723. package/esm2020/lib/components/overlays/elder-overlay-trigger.directive.mjs +0 -72
  724. package/esm2020/lib/components/overlays/elder-overlay.component.mjs +0 -204
  725. package/esm2020/lib/components/overlays/elder-overlay.module.mjs +0 -41
  726. package/esm2020/lib/components/panels/card-panel/elder-card-panel.component.mjs +0 -12
  727. package/esm2020/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +0 -12
  728. package/esm2020/lib/components/panels/elder-panel.module.mjs +0 -58
  729. package/esm2020/lib/components/panels/flat/elder-panel.component.mjs +0 -26
  730. package/esm2020/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +0 -69
  731. package/esm2020/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +0 -68
  732. package/esm2020/lib/components/scrollbar/elder-scrollbar.directive.mjs +0 -62
  733. package/esm2020/lib/components/scrollbar/elder-scrollbar.module.mjs +0 -17
  734. package/esm2020/lib/components/select/auto/elder-auto-select-first.directive.mjs +0 -77
  735. package/esm2020/lib/components/select/auto/elder-select-first-util.mjs +0 -62
  736. package/esm2020/lib/components/select/elder-select-base.mjs +0 -284
  737. package/esm2020/lib/components/select/elder-select-chip.directive.mjs +0 -45
  738. package/esm2020/lib/components/select/elder-select-on-tab.directive.mjs +0 -133
  739. package/esm2020/lib/components/select/elder-select-value.directive.mjs +0 -15
  740. package/esm2020/lib/components/select/elder-select.module.mjs +0 -146
  741. package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +0 -350
  742. package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +0 -287
  743. package/esm2020/lib/components/select/multi/elder-multi-select-form-field.mjs +0 -91
  744. package/esm2020/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +0 -86
  745. package/esm2020/lib/components/select/popup/selection-model-popup.directive.mjs +0 -126
  746. package/esm2020/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +0 -47
  747. package/esm2020/lib/components/select/single/elder-clear-select.directive.mjs +0 -57
  748. package/esm2020/lib/components/select/single/elder-select/elder-select.component.mjs +0 -443
  749. package/esm2020/lib/components/select/single/elder-select-form-field.mjs +0 -45
  750. package/esm2020/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +0 -149
  751. package/esm2020/lib/components/select-chip-list/elder-chip-list-select.module.mjs +0 -48
  752. package/esm2020/lib/components/shell/drawers/drawer-outlet-binding.mjs +0 -60
  753. package/esm2020/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +0 -117
  754. package/esm2020/lib/components/shell/drawers/elder-router-outlet.service.mjs +0 -128
  755. package/esm2020/lib/components/shell/elder-shell-slot.directive.mjs +0 -46
  756. package/esm2020/lib/components/shell/elder-shell.module.mjs +0 -96
  757. package/esm2020/lib/components/shell/elder-shell.service.mjs +0 -145
  758. package/esm2020/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +0 -73
  759. package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +0 -209
  760. package/esm2020/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +0 -137
  761. package/esm2020/lib/components/tabs/elder-tab/elder-tab.directive.mjs +0 -25
  762. package/esm2020/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +0 -256
  763. package/esm2020/lib/components/tabs/elder-tab.module.mjs +0 -32
  764. package/esm2020/lib/components/theme/elder-theme-applier.directive.mjs +0 -62
  765. package/esm2020/lib/components/theme/elder-theme-preference.service.mjs +0 -74
  766. package/esm2020/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +0 -74
  767. package/esm2020/lib/components/theme/elder-theme.directive.mjs +0 -61
  768. package/esm2020/lib/components/theme/elder-theme.module.mjs +0 -74
  769. package/esm2020/lib/components/theme/elder-theme.service.mjs +0 -123
  770. package/esm2020/lib/components/theme/known-elder-themes.mjs +0 -6
  771. package/esm2020/lib/components/time/date-adapters/custom-date-adapter.mjs +0 -23
  772. package/esm2020/lib/components/time/duration/duration-format.mjs +0 -271
  773. package/esm2020/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +0 -122
  774. package/esm2020/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +0 -89
  775. package/esm2020/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +0 -108
  776. package/esm2020/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +0 -173
  777. package/esm2020/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +0 -264
  778. package/esm2020/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +0 -95
  779. package/esm2020/lib/components/time/elder-time.module.mjs +0 -120
  780. package/esm2020/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +0 -131
  781. package/esm2020/lib/components/time/period/period-format.mjs +0 -89
  782. package/esm2020/lib/components/time/pipes/to-iso-date-string.pipe.mjs +0 -38
  783. package/esm2020/lib/components/toasts/elder-toast.module.mjs +0 -23
  784. package/esm2020/lib/components/toasts/elder-toast.service.mjs +0 -171
  785. package/esm2020/lib/components/toasts/standard-toast/standard-toast.component.mjs +0 -74
  786. package/esm2020/lib/components/url-fragment/elder-url-fragment.module.mjs +0 -54
  787. package/esm2020/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +0 -84
  788. package/esm2020/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +0 -65
  789. package/esm2020/lib/components/viewers/elder-viewers.module.mjs +0 -25
  790. package/esm2020/lib/features/event-source/elder-event-source.service.mjs +0 -56
  791. package/esm2020/lib/features/event-source/reactive-event-source.mjs +0 -198
  792. package/esm2020/lib/features/kafent/access-token-provider.mjs +0 -20
  793. package/esm2020/lib/features/kafent/kafent-config.mjs +0 -24
  794. package/esm2020/lib/features/kafent/kafent-event-stream.mjs +0 -25
  795. package/esm2020/lib/features/kafent/kafent-event.service.mjs +0 -107
  796. package/esm2020/lib/features/kafent/kafent.module.mjs +0 -61
  797. package/esm2020/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +0 -128
  798. package/esm2020/lib/pipes/bytes.pipe.mjs +0 -24
  799. package/esm2020/lib/pipes/elder-pipes.module.mjs +0 -67
  800. package/esm2020/lib/pipes/elder-repeat.pipe.mjs +0 -21
  801. package/esm2020/lib/pipes/elder-round.pipe.mjs +0 -35
  802. package/esm2020/lib/pipes/elder-safe-url.pipe.mjs +0 -20
  803. package/esm2020/lib/pipes/elder-truncate.pipe.mjs +0 -40
  804. package/esm2020/lib/pipes/iso-duration.pipe.mjs +0 -58
  805. package/esm2020/lib/pipes/iso-interval-parse.pipe.mjs +0 -49
  806. package/esm2020/lib/pipes/iso-interval.pipe.mjs +0 -110
  807. package/esm2020/lib/pipes/time-ago.pipe.mjs +0 -104
  808. package/esm2020/lib/pipes/time-duration.pipe.mjs +0 -98
  809. package/esm2020/lib/pipes/weight.pipe.mjs +0 -56
  810. package/fesm2015/elderbyte-ngx-starter.mjs +0 -30444
  811. package/fesm2015/elderbyte-ngx-starter.mjs.map +0 -1
  812. package/fesm2020/elderbyte-ngx-starter.mjs +0 -30270
  813. package/fesm2020/elderbyte-ngx-starter.mjs.map +0 -1
  814. /package/{esm2020 → esm2022}/elderbyte-ngx-starter.mjs +0 -0
  815. /package/{esm2020 → esm2022}/lib/common/arrays.mjs +0 -0
  816. /package/{esm2020 → esm2022}/lib/common/async/public_api.mjs +0 -0
  817. /package/{esm2020 → esm2022}/lib/common/csv/csv-serializer.mjs +0 -0
  818. /package/{esm2020 → esm2022}/lib/common/csv/public_api.mjs +0 -0
  819. /package/{esm2020 → esm2022}/lib/common/data/continuable-listing.mjs +0 -0
  820. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-active-page.mjs +0 -0
  821. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-base.mjs +0 -0
  822. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-continuable-base.mjs +0 -0
  823. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-continuable-paged.mjs +0 -0
  824. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-continuable-token.mjs +0 -0
  825. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-life-cycle-binding.mjs +0 -0
  826. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-simple.mjs +0 -0
  827. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-source-event-binding.mjs +0 -0
  828. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context.mjs +0 -0
  829. /package/{esm2020 → esm2022}/lib/common/data/data-context/indexed-entities.mjs +0 -0
  830. /package/{esm2020 → esm2022}/lib/common/data/data-context/public_api.mjs +0 -0
  831. /package/{esm2020 → esm2022}/lib/common/data/datasource/data-source-base.mjs +0 -0
  832. /package/{esm2020 → esm2022}/lib/common/data/datasource/data-source.mjs +0 -0
  833. /package/{esm2020 → esm2022}/lib/common/data/datasource/entity-id-util.mjs +0 -0
  834. /package/{esm2020 → esm2022}/lib/common/data/datasource/public_api.mjs +0 -0
  835. /package/{esm2020 → esm2022}/lib/common/data/datasource/rest/public_api.mjs +0 -0
  836. /package/{esm2020 → esm2022}/lib/common/data/datasource/rest/rest-client.mjs +0 -0
  837. /package/{esm2020 → esm2022}/lib/common/data/filters/filter-context.mjs +0 -0
  838. /package/{esm2020 → esm2022}/lib/common/data/filters/filter.mjs +0 -0
  839. /package/{esm2020 → esm2022}/lib/common/data/page.mjs +0 -0
  840. /package/{esm2020 → esm2022}/lib/common/data/public_api.mjs +0 -0
  841. /package/{esm2020 → esm2022}/lib/common/data/required-filter-evaluator.mjs +0 -0
  842. /package/{esm2020 → esm2022}/lib/common/data/sort-context.mjs +0 -0
  843. /package/{esm2020 → esm2022}/lib/common/data/token-chunk-request.mjs +0 -0
  844. /package/{esm2020 → esm2022}/lib/common/enums/public_api.mjs +0 -0
  845. /package/{esm2020 → esm2022}/lib/common/errors/exception-detail.mjs +0 -0
  846. /package/{esm2020 → esm2022}/lib/common/errors/public_api.mjs +0 -0
  847. /package/{esm2020 → esm2022}/lib/common/errors/standard-error-detail.mjs +0 -0
  848. /package/{esm2020 → esm2022}/lib/common/format/bytes-per-second-format.mjs +0 -0
  849. /package/{esm2020 → esm2022}/lib/common/format/public_api.mjs +0 -0
  850. /package/{esm2020 → esm2022}/lib/common/forms/elder-entity-value-accessor.mjs +0 -0
  851. /package/{esm2020 → esm2022}/lib/common/forms/elder-multi-entity-value-accessor.mjs +0 -0
  852. /package/{esm2020 → esm2022}/lib/common/forms/public_api.mjs +0 -0
  853. /package/{esm2020 → esm2022}/lib/common/http/public_api.mjs +0 -0
  854. /package/{esm2020 → esm2022}/lib/common/http/transfer/data-transfer-base.mjs +0 -0
  855. /package/{esm2020 → esm2022}/lib/common/http/transfer/data-transfer-status.mjs +0 -0
  856. /package/{esm2020 → esm2022}/lib/common/http/transfer/data-transfer.mjs +0 -0
  857. /package/{esm2020 → esm2022}/lib/common/http/transfer/public_api.mjs +0 -0
  858. /package/{esm2020 → esm2022}/lib/common/http/upload/file-upload-client.mjs +0 -0
  859. /package/{esm2020 → esm2022}/lib/common/i18n/entity/impl/i18n-base.mjs +0 -0
  860. /package/{esm2020 → esm2022}/lib/common/i18n/entity/impl/translated.mjs +0 -0
  861. /package/{esm2020 → esm2022}/lib/common/i18n/entity/language-tag.mjs +0 -0
  862. /package/{esm2020 → esm2022}/lib/common/i18n/entity/localized.mjs +0 -0
  863. /package/{esm2020 → esm2022}/lib/common/i18n/entity/public_api.mjs +0 -0
  864. /package/{esm2020 → esm2022}/lib/common/i18n/entity/translated-converter.mjs +0 -0
  865. /package/{esm2020 → esm2022}/lib/common/i18n/entity/translated.mjs +0 -0
  866. /package/{esm2020 → esm2022}/lib/common/i18n/public_api.mjs +0 -0
  867. /package/{esm2020 → esm2022}/lib/common/json-map.mjs +0 -0
  868. /package/{esm2020 → esm2022}/lib/common/public_api.mjs +0 -0
  869. /package/{esm2020 → esm2022}/lib/common/reactive-map.mjs +0 -0
  870. /package/{esm2020 → esm2022}/lib/common/rxjs/operators/lazy-sample.mjs +0 -0
  871. /package/{esm2020 → esm2022}/lib/common/rxjs/public_api.mjs +0 -0
  872. /package/{esm2020 → esm2022}/lib/common/selection/public_api.mjs +0 -0
  873. /package/{esm2020 → esm2022}/lib/common/sets.mjs +0 -0
  874. /package/{esm2020 → esm2022}/lib/common/templates/template-slot-manager.mjs +0 -0
  875. /package/{esm2020 → esm2022}/lib/common/theme-sizes.mjs +0 -0
  876. /package/{esm2020 → esm2022}/lib/common/time/interval.mjs +0 -0
  877. /package/{esm2020 → esm2022}/lib/common/time/period-duration.mjs +0 -0
  878. /package/{esm2020 → esm2022}/lib/common/time/public_api.mjs +0 -0
  879. /package/{esm2020 → esm2022}/lib/common/url/public_api.mjs +0 -0
  880. /package/{esm2020 → esm2022}/lib/common/utils/batcher.mjs +0 -0
  881. /package/{esm2020 → esm2022}/lib/common/utils/next-number-util.mjs +0 -0
  882. /package/{esm2020 → esm2022}/lib/common/utils/ng-zone-utils.mjs +0 -0
  883. /package/{esm2020 → esm2022}/lib/common/utils/parse-util.mjs +0 -0
  884. /package/{esm2020 → esm2022}/lib/common/utils/property-path-util.mjs +0 -0
  885. /package/{esm2020 → esm2022}/lib/common/utils/public_api.mjs +0 -0
  886. /package/{esm2020 → esm2022}/lib/common/utils/sort-util.mjs +0 -0
  887. /package/{esm2020 → esm2022}/lib/common/utils/uuid-util.mjs +0 -0
  888. /package/{esm2020 → esm2022}/lib/components/auditing/i-audited-entity.mjs +0 -0
  889. /package/{esm2020 → esm2022}/lib/components/card-organizer/card-organizer-data.mjs +0 -0
  890. /package/{esm2020 → esm2022}/lib/components/connectivity/public_api.mjs +0 -0
  891. /package/{esm2020 → esm2022}/lib/components/containers/public_api.mjs +0 -0
  892. /package/{esm2020 → esm2022}/lib/components/csv/elder-csv-stream-exporter-builder.mjs +0 -0
  893. /package/{esm2020 → esm2022}/lib/components/currency/model/currency-code.mjs +0 -0
  894. /package/{esm2020 → esm2022}/lib/components/currency/model/currency-unit-registry.mjs +0 -0
  895. /package/{esm2020 → esm2022}/lib/components/currency/model/currency.mjs +0 -0
  896. /package/{esm2020 → esm2022}/lib/components/currency/public_api.mjs +0 -0
  897. /package/{esm2020 → esm2022}/lib/components/data-view/base/elder-data-view-options-provider.mjs +0 -0
  898. /package/{esm2020 → esm2022}/lib/components/data-view/base/elder-data-view.mjs +0 -0
  899. /package/{esm2020 → esm2022}/lib/components/data-view/base/public_api.mjs +0 -0
  900. /package/{esm2020 → esm2022}/lib/components/data-view/common/selection/master-selection-state.mjs +0 -0
  901. /package/{esm2020 → esm2022}/lib/components/data-view/elder-data-view-interaction-mode.mjs +0 -0
  902. /package/{esm2020 → esm2022}/lib/components/data-view/master-detail/elder-master-detail-mode.mjs +0 -0
  903. /package/{esm2020 → esm2022}/lib/components/data-view/master-detail/master-detail-activation-event.mjs +0 -0
  904. /package/{esm2020 → esm2022}/lib/components/data-view/public_api.mjs +0 -0
  905. /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/activation-event-source.mjs +0 -0
  906. /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/elder-activation-context.mjs +0 -0
  907. /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/elder-table-activation-options.mjs +0 -0
  908. /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/item-activation-event.mjs +0 -0
  909. /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/item-activation-options.mjs +0 -0
  910. /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/public_api.mjs +0 -0
  911. /package/{esm2020 → esm2022}/lib/components/dialogs/elder-dialog-config.mjs +0 -0
  912. /package/{esm2020 → esm2022}/lib/components/forms/directives/validation/strategies/fallback-validation-message-strategy.mjs +0 -0
  913. /package/{esm2020 → esm2022}/lib/components/forms/directives/validation/validation-message-strategy.mjs +0 -0
  914. /package/{esm2020 → esm2022}/lib/components/forms/public_api.mjs +0 -0
  915. /package/{esm2020 → esm2022}/lib/components/forms/search/model/search-input-state.mjs +0 -0
  916. /package/{esm2020 → esm2022}/lib/components/forms/search/model/search-input.mjs +0 -0
  917. /package/{esm2020 → esm2022}/lib/components/graph/elder-progress-bar/sub-bar.mjs +0 -0
  918. /package/{esm2020 → esm2022}/lib/components/graph/public_api.mjs +0 -0
  919. /package/{esm2020 → esm2022}/lib/components/http-support/public_api.mjs +0 -0
  920. /package/{esm2020 → esm2022}/lib/components/i18n/language/elder-language-config.mjs +0 -0
  921. /package/{esm2020 → esm2022}/lib/components/i18n/public_api.mjs +0 -0
  922. /package/{esm2020 → esm2022}/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +0 -0
  923. /package/{esm2020 → esm2022}/lib/components/input/autocomplete/many/word-position-finder.mjs +0 -0
  924. /package/{esm2020 → esm2022}/lib/components/input/public_api.mjs +0 -0
  925. /package/{esm2020 → esm2022}/lib/components/measures/model/dimensions.mjs +0 -0
  926. /package/{esm2020 → esm2022}/lib/components/measures/model/quantity.mjs +0 -0
  927. /package/{esm2020 → esm2022}/lib/components/measures/model/unit-dimension.mjs +0 -0
  928. /package/{esm2020 → esm2022}/lib/components/measures/model/unit.mjs +0 -0
  929. /package/{esm2020 → esm2022}/lib/components/measures/public_api.mjs +0 -0
  930. /package/{esm2020 → esm2022}/lib/components/navigation/public_api.mjs +0 -0
  931. /package/{esm2020 → esm2022}/lib/components/navigation/toolbar/toolbar-column-position.mjs +0 -0
  932. /package/{esm2020 → esm2022}/lib/components/public_api.mjs +0 -0
  933. /package/{esm2020 → esm2022}/lib/components/select/public_api.mjs +0 -0
  934. /package/{esm2020 → esm2022}/lib/components/shell/shell-content-slot.mjs +0 -0
  935. /package/{esm2020 → esm2022}/lib/components/theme/public_api.mjs +0 -0
  936. /package/{esm2020 → esm2022}/lib/components/theme/theme-spec.mjs +0 -0
  937. /package/{esm2020 → esm2022}/lib/components/time/duration/duration-bucket.mjs +0 -0
  938. /package/{esm2020 → esm2022}/lib/components/time/duration/iso-duration-str.mjs +0 -0
  939. /package/{esm2020 → esm2022}/lib/components/time/period/period-bucket.mjs +0 -0
  940. /package/{esm2020 → esm2022}/lib/components/time/public_api.mjs +0 -0
  941. /package/{esm2020 → esm2022}/lib/components/toasts/toast-type.mjs +0 -0
  942. /package/{esm2020 → esm2022}/lib/components/toasts/toast.mjs +0 -0
  943. /package/{esm2020 → esm2022}/lib/components/url-fragment/elder-url-fragment.mjs +0 -0
  944. /package/{esm2020 → esm2022}/lib/features/event-source/public_api.mjs +0 -0
  945. /package/{esm2020 → esm2022}/lib/features/kafent/kafent-event.mjs +0 -0
  946. /package/{esm2020 → esm2022}/lib/features/kafent/kafent-live-event-request.mjs +0 -0
  947. /package/{esm2020 → esm2022}/lib/features/kafent/sse/kafent-topic-sse.mjs +0 -0
  948. /package/{esm2020 → esm2022}/lib/features/public_api.mjs +0 -0
  949. /package/{esm2020 → esm2022}/lib/pipes/public_api.mjs +0 -0
  950. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -1,350 +0,0 @@
1
- import { Directive, Input, Output } from '@angular/core';
2
- import { ElderSelectBase, ElderSelectComponentState } from '../elder-select-base';
3
- import { BehaviorSubject, EMPTY, of, throwError } from 'rxjs';
4
- import { LoggerFactory } from '@elderbyte/ts-logger';
5
- import { catchError, filter, map, skip, switchMap, take, tap, timeout } from 'rxjs/operators';
6
- import { Sets } from '../../../common/sets';
7
- import { SortUtil } from '../../../common/utils/sort-util';
8
- import { Arrays } from '../../../common/arrays';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/cdk/a11y";
11
- import * as i2 from "@ngx-translate/core";
12
- import * as i3 from "../../dialogs/elder-dialog.service";
13
- import * as i4 from "@angular/forms";
14
- /**
15
- * Base component implementation of elder-multi-select.
16
- *
17
- * Multi Select has the following abstract concept:
18
- *
19
- * - Suggestion-Model: A DataSource and derived DataContext for the (auto-complete) suggestions.
20
- * - The backing Value is a list of the current selected entities. T[]
21
- *
22
- */
23
- // eslint-disable-next-line @angular-eslint/directive-class-suffix
24
- export class ElderMultiSelectBase extends ElderSelectBase {
25
- /***************************************************************************
26
- * *
27
- * Constructor *
28
- * *
29
- **************************************************************************/
30
- constructor(zone, hostRef, controlType, focusMonitor, translateService, dialogService, ngControl) {
31
- super(zone, hostRef, controlType, focusMonitor, translateService, ngControl);
32
- this.dialogService = dialogService;
33
- /***************************************************************************
34
- * *
35
- * Fields *
36
- * *
37
- **************************************************************************/
38
- this.logger = LoggerFactory.getLogger(this.constructor.name);
39
- this._entities$ = new BehaviorSubject([]);
40
- /**
41
- * Defines how the entities should be sorted locally.
42
- * This affects how entities are displayed when more than
43
- * one is selected, such as in a chip list.
44
- */
45
- this.entitiesSorts = [];
46
- /**
47
- * If enabled, before removing selected entities
48
- * the user will be prompted to confirm.
49
- */
50
- this.confirmRemoval = false;
51
- this.entityIdsChange = this.valueChange.pipe(map(values => this.entityIdsFromValues(values)));
52
- this._entityIds$ = this.value$.pipe(map(values => this.entityIdsFromValues(values)));
53
- this.entitiesChange = this._entities$.pipe(skip(1) // Skip the initial or current value
54
- );
55
- this.entityIdsUpdated = this.valueUpdated.pipe(map(values => this.entityIdsFromValues(values)));
56
- this.entitiesUpdated = this.entityIdsUpdated.pipe(tap(entityIds => this.logger.debug('Awaiting entities with ids', entityIds)), switchMap(entityIds => this.awaitEntitiesWithId(entityIds, this.timeoutAfterMs)), catchError(err => {
57
- this.logger.warn(`awaitEntitiesWithId -> timed out after: ${this.timeoutAfterMs}`, err);
58
- return EMPTY;
59
- }));
60
- }
61
- awaitEntitiesWithId(entityIds, timeoutMs) {
62
- return this._entities$.pipe(tap(entities => this.logger.debug('Got entities for ids' + entityIds, entities)), filter(entities => this.equalIds(this.getEntityIds(entities), entityIds)), take(1), timeout(timeoutMs));
63
- }
64
- /***************************************************************************
65
- * *
66
- * Properties *
67
- * *
68
- **************************************************************************/
69
- get entities$() {
70
- return this._entities$.asObservable();
71
- }
72
- get entityIds$() {
73
- return this._entityIds$;
74
- }
75
- set entities(entities) {
76
- if (!this.equalEntitiesExactOrder(this.entities, entities)) {
77
- this.writeValueInternal(this.entitiesToValues(this.writeEntitiesSorted(entities)));
78
- }
79
- }
80
- get entities() {
81
- return this._entities$.getValue();
82
- }
83
- set entityIds(ids) {
84
- if (!this.equalIdsExactOrder(this.entityIds, ids)) {
85
- if (this.valueAsId) {
86
- this.writeValueInternal(ids);
87
- }
88
- else {
89
- this.selectEntitiesByIds(ids);
90
- }
91
- }
92
- }
93
- get entityIds() {
94
- return this.entityIdsFromValues(this.value);
95
- }
96
- get isOptionDisabledInternalFn() {
97
- return (option) => {
98
- if (this.isOptionDisabledFn) {
99
- return this.isOptionDisabledFn(option);
100
- }
101
- else {
102
- return false;
103
- }
104
- };
105
- }
106
- get isOptionHiddenInternalFn() {
107
- return (option) => {
108
- if (this.isAlreadyPresent(option)) {
109
- return true;
110
- }
111
- if (this.isOptionHiddenFn) {
112
- return this.isOptionHiddenFn(option);
113
- }
114
- else {
115
- return false;
116
- }
117
- };
118
- }
119
- /***************************************************************************
120
- * *
121
- * Public API *
122
- * *
123
- **************************************************************************/
124
- updateValueByEntities(entities) {
125
- entities = this.writeEntitiesSorted(entities);
126
- this.updateValue(this.entitiesToValues(entities));
127
- }
128
- appendEntities(newEntities) {
129
- const current = this.entities ? this.entities : [];
130
- this.updateValueByEntities([...current, ...newEntities]);
131
- }
132
- appendEntity(newEntity) {
133
- this.appendEntities([newEntity]);
134
- }
135
- requestRemoveEntity(toRemove, skipConfirm) {
136
- this.requestRemoveEntities([toRemove], skipConfirm);
137
- }
138
- requestRemoveEntities(toRemove, skipConfirm) {
139
- this.dialogService.confirmDelete({
140
- deletionCount: toRemove.length,
141
- confirmRemoval: this.confirmRemoval,
142
- skipConfirm: skipConfirm
143
- }, () => this.removeEntities(toRemove));
144
- }
145
- removeEntities(toRemove) {
146
- toRemove.forEach(e => this.removeEntity(e));
147
- }
148
- removeEntity(toRemove) {
149
- const remaining = this.entities
150
- .filter(l => !this.isEqual(l, toRemove));
151
- this.updateValueByEntities(remaining);
152
- }
153
- openSelectionPopup(event) {
154
- if (this.selectionPopup) {
155
- this.selectionPopup.choose((e) => this.getEntityId(e), this.entities, this.filters, this.sorts, true).subscribe((selection) => this.updateValueByEntities(selection));
156
- }
157
- else {
158
- this.logger.warn('Cant open selection browser popup, since [SelectionModelPopupDirective] was not found!');
159
- }
160
- }
161
- entityToValue(entity) {
162
- if (this.valueAsId) {
163
- const id = this.getEntityId(entity);
164
- return id;
165
- }
166
- else {
167
- return entity;
168
- }
169
- }
170
- /***************************************************************************
171
- * *
172
- * Internal Methods *
173
- * *
174
- **************************************************************************/
175
- valuesEquals(a, b) {
176
- return this.equalIdsExactOrder(this.entityIdsFromValues(a), this.entityIdsFromValues(b));
177
- }
178
- onDataContextChanged(data) {
179
- if (this.valueAsId) {
180
- this.selectEntitiesByIds(this.entityIds);
181
- }
182
- }
183
- /**
184
- * This method is invoked after a value has been written to this control.
185
- *
186
- */
187
- writeToControl(value) {
188
- if (this.valueAsId) {
189
- const entityIds = value;
190
- // Value was written as entity ids, ensure we select entity by id
191
- this.logger.debug('writeToControl: value was written as ids: ' + entityIds, value);
192
- this.selectEntitiesByIds(entityIds);
193
- }
194
- else {
195
- // Value was written as entity, ensure entity is updated
196
- const currentEntities = this.entities;
197
- const newEntities = value;
198
- this.logger.debug('writeToControl: value was written as entities (size): ' + newEntities?.length, value);
199
- if (!this.equalEntities(currentEntities, newEntities)) {
200
- this.writeEntitiesSorted(newEntities);
201
- }
202
- else {
203
- this.logger.warn('Ignored written entities as they are already set to entities$!');
204
- }
205
- }
206
- super.writeToControl(value);
207
- }
208
- /***************************************************************************
209
- * *
210
- * Private Methods *
211
- * *
212
- **************************************************************************/
213
- isAlreadyPresent(queryValue) {
214
- if (this.entities) {
215
- return this.entities.some(v => this.isEqual(v, queryValue));
216
- }
217
- else {
218
- return false;
219
- }
220
- }
221
- entityIdsFromValues(values) {
222
- if (values) {
223
- return values.map(v => this.entityIdFromValue(v));
224
- }
225
- return null;
226
- }
227
- entityIdFromValue(value) {
228
- if (this.valueAsId) {
229
- return value;
230
- }
231
- else {
232
- const entity = value;
233
- return this.getEntityId(entity);
234
- }
235
- }
236
- entitiesToValues(entities) {
237
- if (entities) {
238
- return entities.map(e => this.entityToValue(e));
239
- }
240
- return null;
241
- }
242
- getEntityIds(values) {
243
- if (values) {
244
- return values.map(v => this.getEntityId(v));
245
- }
246
- return null;
247
- }
248
- equalIds(idsA, idsB) {
249
- return Sets.equalContent(idsA, idsB);
250
- }
251
- equalIdsExactOrder(idsA, idsB) {
252
- return Arrays.equalContentAndOrder(idsA, idsB);
253
- }
254
- equalEntities(entitiesA, entitiesB) {
255
- return this.equalIds(this.getEntityIds(entitiesA), this.getEntityIds(entitiesB));
256
- }
257
- equalEntitiesExactOrder(entitiesA, entitiesB) {
258
- return this.equalIdsExactOrder(this.getEntityIds(entitiesA), this.getEntityIds(entitiesB));
259
- }
260
- selectEntitiesByIds(ids) {
261
- const currentEntities = this.entities;
262
- this.logger.info('selectEntitiesByIds: ids: ' + ids + ', current entities:', currentEntities);
263
- if (currentEntities && this.equalIds(this.getEntityIds(currentEntities), ids)) {
264
- return; // Entities already loaded
265
- }
266
- this.findOrLoadEntitiesByIds(ids)
267
- .subscribe({
268
- next: entities => this.entities = entities,
269
- error: err => this.updateState(ElderSelectComponentState.error(err))
270
- });
271
- }
272
- findOrLoadEntitiesByIds(ids) {
273
- if (ids.length == 0) {
274
- return of([]);
275
- }
276
- if (this.dataContext) {
277
- const existing = this.findInDataContext(ids);
278
- const missingIds = ids.filter(id => !existing.has(id));
279
- const valueLoadRequest$ = missingIds.length > 0 ? this.loadEntitiesByIds(missingIds) : of(new Map());
280
- return valueLoadRequest$.pipe(map(loaded => {
281
- loaded.forEach((v, k) => existing.set(k, v));
282
- return existing;
283
- }), map(allValuesMap => Array.from(allValuesMap.values())) // TODO Sort?
284
- );
285
- }
286
- else {
287
- this.logger.warn('Failed to select value by Ids: ' + ids + ' - DataContext not available.');
288
- return EMPTY;
289
- }
290
- }
291
- loadEntitiesByIds(ids) {
292
- return this.dataContext.dataSource.findByIds(ids).pipe(catchError(err => {
293
- this.logger.error('Failed to load entities by ids: ' + ids, err);
294
- return throwError(err);
295
- }), map(values => {
296
- this.logger.debug('Loaded entities by id:', values);
297
- const valueMap = new Map();
298
- values.forEach(v => valueMap.set(this.getEntityId(v), v));
299
- return valueMap;
300
- }));
301
- }
302
- findInDataContext(ids) {
303
- const existingValues = new Map();
304
- if (ids?.length > 0) {
305
- const data = this.dataContext.snapshot.data;
306
- const requiredIds = new Set(ids);
307
- data
308
- .filter(d => requiredIds.has(this.getEntityId(d)))
309
- .forEach(d => existingValues.set(this.getEntityId(d), d));
310
- }
311
- return existingValues;
312
- }
313
- writeEntitiesSorted(entities) {
314
- const sorted = this.sortEntities(entities);
315
- this._entities$.next(sorted);
316
- return sorted;
317
- }
318
- sortEntities(entities) {
319
- if (entities && this.entitiesSorts && this.entitiesSorts.length > 0) {
320
- const sorted = SortUtil.sortData(entities, this.entitiesSorts);
321
- if (!SortUtil.equalsExactRefs(entities, sorted)) {
322
- // Only return a copy of the array if actually something changed
323
- return sorted;
324
- }
325
- }
326
- return entities;
327
- }
328
- }
329
- ElderMultiSelectBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderMultiSelectBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
330
- ElderMultiSelectBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderMultiSelectBase, inputs: { entitiesSorts: "entitiesSorts", confirmRemoval: "confirmRemoval", entities: "entities", entityIds: "entityIds" }, outputs: { entityIdsChange: "entityIdsChange", entitiesChange: "entitiesChange", entityIdsUpdated: "entityIdsUpdated", entitiesUpdated: "entitiesUpdated" }, usesInheritance: true, ngImport: i0 });
331
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderMultiSelectBase, decorators: [{
332
- type: Directive
333
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: undefined }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.ElderDialogService }, { type: i4.NgControl }]; }, propDecorators: { entitiesSorts: [{
334
- type: Input
335
- }], confirmRemoval: [{
336
- type: Input
337
- }], entityIdsChange: [{
338
- type: Output
339
- }], entitiesChange: [{
340
- type: Output
341
- }], entityIdsUpdated: [{
342
- type: Output
343
- }], entitiesUpdated: [{
344
- type: Output
345
- }], entities: [{
346
- type: Input
347
- }], entityIds: [{
348
- type: Input
349
- }] } });
350
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFDLGVBQWUsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRWhGLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBSzFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUd6RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQUc5Qzs7Ozs7Ozs7R0FRRztBQUVILGtFQUFrRTtBQUNsRSxNQUFNLE9BQWdCLG9CQUNwQixTQUFRLGVBQXVDO0lBaUQvQzs7OztnRkFJNEU7SUFFNUUsWUFDRSxJQUFZLEVBQ1osT0FBbUIsRUFDbkIsV0FBbUIsRUFDbkIsWUFBMEIsRUFDMUIsZ0JBQWtDLEVBQ2pCLGFBQWlDLEVBQ2xELFNBQXFCO1FBRXJCLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdB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QUFTO3NCQURuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBOZ1pvbmUsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyU2VsZWN0QmFzZSwgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZX0gZnJvbSAnLi4vZWxkZXItc2VsZWN0LWJhc2UnO1xuaW1wb3J0IHtJRGF0YUNvbnRleHR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIEVNUFRZLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIHNraXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFwLCB0aW1lb3V0fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1NldHN9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9zZXRzJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0ZvY3VzTW9uaXRvcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtJRWxkZXJNdWx0aUVudGl0eVZhbHVlQWNjZXNzb3J9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy9lbGRlci1tdWx0aS1lbnRpdHktdmFsdWUtYWNjZXNzb3InO1xuaW1wb3J0IHtTb3J0fSBmcm9tICcuLi8uLi8uLi9jb21tb24vZGF0YS9zb3J0JztcbmltcG9ydCB7U29ydFV0aWx9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlscy9zb3J0LXV0aWwnO1xuaW1wb3J0IHtFbGRlckRpYWxvZ1NlcnZpY2V9IGZyb20gJy4uLy4uL2RpYWxvZ3MvZWxkZXItZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QXJyYXlzfSBmcm9tICcuLi8uLi8uLi9jb21tb24vYXJyYXlzJztcblxuXG4vKipcbiAqIEJhc2UgY29tcG9uZW50IGltcGxlbWVudGF0aW9uIG9mIGVsZGVyLW11bHRpLXNlbGVjdC5cbiAqXG4gKiBNdWx0aSBTZWxlY3QgaGFzIHRoZSBmb2xsb3dpbmcgYWJzdHJhY3QgY29uY2VwdDpcbiAqXG4gKiAtIFN1Z2dlc3Rpb24tTW9kZWw6IEEgRGF0YVNvdXJjZSBhbmQgZGVyaXZlZCBEYXRhQ29udGV4dCBmb3IgdGhlIChhdXRvLWNvbXBsZXRlKSBzdWdnZXN0aW9ucy5cbiAqIC0gVGhlIGJhY2tpbmcgVmFsdWUgaXMgYSBsaXN0IG9mIHRoZSBjdXJyZW50IHNlbGVjdGVkIGVudGl0aWVzLiBUW11cbiAqXG4gKi9cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRWxkZXJNdWx0aVNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWU+XG4gIGV4dGVuZHMgRWxkZXJTZWxlY3RCYXNlPFRJZCwgVEVudGl0eSwgVFZhbHVlW10+XG4gIGltcGxlbWVudHMgSUVsZGVyTXVsdGlFbnRpdHlWYWx1ZUFjY2Vzc29yPFRFbnRpdHksIFRJZCwgVFZhbHVlPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2VudGl0eUlkcyQ6IE9ic2VydmFibGU8VElkW10+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbnRpdGllcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRFbnRpdHlbXT4oW10pO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGhvdyB0aGUgZW50aXRpZXMgc2hvdWxkIGJlIHNvcnRlZCBsb2NhbGx5LlxuICAgKiBUaGlzIGFmZmVjdHMgaG93IGVudGl0aWVzIGFyZSBkaXNwbGF5ZWQgd2hlbiBtb3JlIHRoYW5cbiAgICogb25lIGlzIHNlbGVjdGVkLCBzdWNoIGFzIGluIGEgY2hpcCBsaXN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGVudGl0aWVzU29ydHM6IFNvcnRbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJZiBlbmFibGVkLCBiZWZvcmUgcmVtb3Zpbmcgc2VsZWN0ZWQgZW50aXRpZXNcbiAgICogdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZCB0byBjb25maXJtLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNvbmZpcm1SZW1vdmFsID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdHlJZHNDaGFuZ2U6IE9ic2VydmFibGU8VElkW10+O1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXRpZXNDaGFuZ2U6IE9ic2VydmFibGU8VEVudGl0eVtdPjtcblxuICAvKipcbiAgICogU2ltaWxhciB0byBlbnRpdHktaWQgY2hhbmdlLCBidXQgZW1pdHMgb25seSB3aGVuIHRoZSB1c2VyXG4gICAqIGhhcyB1cGRhdGVkIHRoZSB2YWx1ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5SWRzVXBkYXRlZDogT2JzZXJ2YWJsZTxUSWRbXT47XG5cbiAgLyoqXG4gICAqIFNpbWlsYXIgdG8gZW50aXR5IGNoYW5nZSwgYnV0IGVtaXRzIG9ubHkgd2hlbiB0aGUgdXNlclxuICAgKiBoYXMgdXBkYXRlZCB0aGUgdmFsdWUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0aWVzVXBkYXRlZDogT2JzZXJ2YWJsZTxURW50aXR5W10+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICB6b25lOiBOZ1pvbmUsXG4gICAgaG9zdFJlZjogRWxlbWVudFJlZixcbiAgICBjb250cm9sVHlwZTogc3RyaW5nLFxuICAgIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBFbGRlckRpYWxvZ1NlcnZpY2UsXG4gICAgbmdDb250cm9sPzogTmdDb250cm9sXG4gICkge1xuICAgIHN1cGVyKHpvbmUsIGhvc3RSZWYsIGNvbnRyb2xUeXBlLCBmb2N1c01vbml0b3IsIHRyYW5zbGF0ZVNlcnZpY2UsIG5nQ29udHJvbCk7XG5cbiAgICB0aGlzLmVudGl0eUlkc0NoYW5nZSA9IHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcCh2YWx1ZXMgPT4gdGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKHZhbHVlcykpXG4gICAgKTtcblxuICAgIHRoaXMuX2VudGl0eUlkcyQgPSB0aGlzLnZhbHVlJC5waXBlKFxuICAgICAgbWFwKHZhbHVlcyA9PiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModmFsdWVzKSlcbiAgICApO1xuXG4gICAgdGhpcy5lbnRpdGllc0NoYW5nZSA9IHRoaXMuX2VudGl0aWVzJC5waXBlKFxuICAgICAgc2tpcCgxKSAvLyBTa2lwIHRoZSBpbml0aWFsIG9yIGN1cnJlbnQgdmFsdWVcbiAgICApO1xuXG4gICAgdGhpcy5lbnRpdHlJZHNVcGRhdGVkID0gdGhpcy52YWx1ZVVwZGF0ZWQucGlwZShcbiAgICAgIG1hcCh2YWx1ZXMgPT4gdGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKHZhbHVlcykpXG4gICAgKTtcblxuICAgIHRoaXMuZW50aXRpZXNVcGRhdGVkID0gdGhpcy5lbnRpdHlJZHNVcGRhdGVkLnBpcGUoXG4gICAgICB0YXAoZW50aXR5SWRzID0+IHRoaXMubG9nZ2VyLmRlYnVnKCdBd2FpdGluZyBlbnRpdGllcyB3aXRoIGlkcycsIGVudGl0eUlkcykpLFxuICAgICAgc3dpdGNoTWFwKGVudGl0eUlkcyA9PiB0aGlzLmF3YWl0RW50aXRpZXNXaXRoSWQoZW50aXR5SWRzLCB0aGlzLnRpbWVvdXRBZnRlck1zKSksXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYGF3YWl0RW50aXRpZXNXaXRoSWQgLT4gdGltZWQgb3V0IGFmdGVyOiAke3RoaXMudGltZW91dEFmdGVyTXN9YCwgZXJyKTtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhd2FpdEVudGl0aWVzV2l0aElkKGVudGl0eUlkczogVElkW10sIHRpbWVvdXRNczogbnVtYmVyKTogT2JzZXJ2YWJsZTxURW50aXR5W10+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXRpZXMkLnBpcGUoXG4gICAgICB0YXAoZW50aXRpZXMgPT4gdGhpcy5sb2dnZXIuZGVidWcoJ0dvdCBlbnRpdGllcyBmb3IgaWRzJyArIGVudGl0eUlkcywgZW50aXRpZXMpKSxcbiAgICAgIGZpbHRlcihlbnRpdGllcyA9PiB0aGlzLmVxdWFsSWRzKHRoaXMuZ2V0RW50aXR5SWRzKGVudGl0aWVzKSwgZW50aXR5SWRzKSksXG4gICAgICB0YWtlKDEpLFxuICAgICAgdGltZW91dCh0aW1lb3V0TXMpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZW50aXRpZXMkKCk6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0aWVzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW50aXR5SWRzJCgpOiBPYnNlcnZhYmxlPFRJZFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eUlkcyQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVudGl0aWVzKGVudGl0aWVzOiBURW50aXR5W10pIHtcbiAgICBpZighdGhpcy5lcXVhbEVudGl0aWVzRXhhY3RPcmRlcih0aGlzLmVudGl0aWVzLCBlbnRpdGllcykpIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZUludGVybmFsKFxuICAgICAgICB0aGlzLmVudGl0aWVzVG9WYWx1ZXMoXG4gICAgICAgICAgdGhpcy53cml0ZUVudGl0aWVzU29ydGVkKGVudGl0aWVzKVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW50aXRpZXMoKTogVEVudGl0eVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXRpZXMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVudGl0eUlkcyhpZHM6IFRJZFtdKSB7XG4gICAgaWYoIXRoaXMuZXF1YWxJZHNFeGFjdE9yZGVyKHRoaXMuZW50aXR5SWRzLCBpZHMpKSB7XG4gICAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlSW50ZXJuYWwoPGFueT5pZHMgYXMgVFZhbHVlW10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RFbnRpdGllc0J5SWRzKGlkcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBlbnRpdHlJZHMoKTogVElkW10ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModGhpcy52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3B0aW9uRGlzYWJsZWRJbnRlcm5hbEZuKCk6IChvcHRpb246IFRFbnRpdHkpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAob3B0aW9uOiBURW50aXR5KSA9PiB7XG4gICAgICBpZiAodGhpcy5pc09wdGlvbkRpc2FibGVkRm4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcHRpb25EaXNhYmxlZEZuKG9wdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcHRpb25IaWRkZW5JbnRlcm5hbEZuKCk6IChvcHRpb246IFRFbnRpdHkpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAob3B0aW9uOiBURW50aXR5KSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0FscmVhZHlQcmVzZW50KG9wdGlvbikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc09wdGlvbkhpZGRlbkZuKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3B0aW9uSGlkZGVuRm4ob3B0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHVwZGF0ZVZhbHVlQnlFbnRpdGllcyhlbnRpdGllczogVEVudGl0eVtdKTogdm9pZCB7XG4gICAgZW50aXRpZXMgPSB0aGlzLndyaXRlRW50aXRpZXNTb3J0ZWQoZW50aXRpZXMpO1xuICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICB0aGlzLmVudGl0aWVzVG9WYWx1ZXMoZW50aXRpZXMpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBlbmRFbnRpdGllcyhuZXdFbnRpdGllczogVEVudGl0eVtdKSB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuZW50aXRpZXMgPyB0aGlzLmVudGl0aWVzIDogW107XG4gICAgdGhpcy51cGRhdGVWYWx1ZUJ5RW50aXRpZXMoWy4uLmN1cnJlbnQsIC4uLm5ld0VudGl0aWVzXSk7XG4gIH1cblxuICBwdWJsaWMgYXBwZW5kRW50aXR5KG5ld0VudGl0eTogYW55KSB7XG4gICAgdGhpcy5hcHBlbmRFbnRpdGllcyhbbmV3RW50aXR5XSk7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdFJlbW92ZUVudGl0eSh0b1JlbW92ZTogVEVudGl0eSwgc2tpcENvbmZpcm0/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5yZXF1ZXN0UmVtb3ZlRW50aXRpZXMoW3RvUmVtb3ZlXSwgc2tpcENvbmZpcm0pO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RSZW1vdmVFbnRpdGllcyhcbiAgICB0b1JlbW92ZTogVEVudGl0eVtdLFxuICAgIHNraXBDb25maXJtPzogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybURlbGV0ZShcbiAgICAgIHtcbiAgICAgICAgZGVsZXRpb25Db3VudDogdG9SZW1vdmUubGVuZ3RoLFxuICAgICAgICBjb25maXJtUmVtb3ZhbDogdGhpcy5jb25maXJtUmVtb3ZhbCxcbiAgICAgICAgc2tpcENvbmZpcm06IHNraXBDb25maXJtXG4gICAgICB9LFxuICAgICAgKCkgPT4gdGhpcy5yZW1vdmVFbnRpdGllcyh0b1JlbW92ZSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUVudGl0aWVzKHRvUmVtb3ZlOiBURW50aXR5W10pOiB2b2lkIHtcbiAgICB0b1JlbW92ZS5mb3JFYWNoKGUgPT4gdGhpcy5yZW1vdmVFbnRpdHkoZSkpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUVudGl0eSh0b1JlbW92ZTogVEVudGl0eSk6IHZvaWQge1xuICAgIGNvbnN0IHJlbWFpbmluZyA9IHRoaXMuZW50aXRpZXNcbiAgICAgIC5maWx0ZXIobCA9PiAhdGhpcy5pc0VxdWFsKGwsIHRvUmVtb3ZlKSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZUJ5RW50aXRpZXMocmVtYWluaW5nKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuU2VsZWN0aW9uUG9wdXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uUG9wdXApIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uUG9wdXAuY2hvb3NlKFxuICAgICAgICAoZTogVEVudGl0eSkgPT4gdGhpcy5nZXRFbnRpdHlJZChlKSxcbiAgICAgICAgdGhpcy5lbnRpdGllcyxcbiAgICAgICAgdGhpcy5maWx0ZXJzLFxuICAgICAgICB0aGlzLnNvcnRzLFxuICAgICAgICB0cnVlXG4gICAgICApLnN1YnNjcmliZShcbiAgICAgICAgKHNlbGVjdGlvbjogVEVudGl0eVtdKSA9PiB0aGlzLnVwZGF0ZVZhbHVlQnlFbnRpdGllcyhzZWxlY3Rpb24pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKCdDYW50IG9wZW4gc2VsZWN0aW9uIGJyb3dzZXIgcG9wdXAsIHNpbmNlIFtTZWxlY3Rpb25Nb2RlbFBvcHVwRGlyZWN0aXZlXSB3YXMgbm90IGZvdW5kIScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbnRpdHlUb1ZhbHVlKGVudGl0eTogVEVudGl0eSk6IFRWYWx1ZSB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICBjb25zdCBpZCA9IHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KTtcbiAgICAgIHJldHVybiA8YW55PmlkIGFzIFRWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDxhbnk+ZW50aXR5IGFzIFRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogSW50ZXJuYWwgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsdWVzRXF1YWxzKGE6IFRWYWx1ZVtdLCBiOiBUVmFsdWVbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVxdWFsSWRzRXhhY3RPcmRlcih0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXMoYSksIHRoaXMuZW50aXR5SWRzRnJvbVZhbHVlcyhiKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25EYXRhQ29udGV4dENoYW5nZWQoZGF0YTogSURhdGFDb250ZXh0PFRFbnRpdHk+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICB0aGlzLnNlbGVjdEVudGl0aWVzQnlJZHModGhpcy5lbnRpdHlJZHMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBpbnZva2VkIGFmdGVyIGEgdmFsdWUgaGFzIGJlZW4gd3JpdHRlbiB0byB0aGlzIGNvbnRyb2wuXG4gICAqXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgd3JpdGVUb0NvbnRyb2wodmFsdWU6IFRWYWx1ZVtdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICBjb25zdCBlbnRpdHlJZHMgPSA8YW55PnZhbHVlIGFzIFRJZFtdO1xuICAgICAgLy8gVmFsdWUgd2FzIHdyaXR0ZW4gYXMgZW50aXR5IGlkcywgZW5zdXJlIHdlIHNlbGVjdCBlbnRpdHkgYnkgaWRcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd3cml0ZVRvQ29udHJvbDogdmFsdWUgd2FzIHdyaXR0ZW4gYXMgaWRzOiAnICsgZW50aXR5SWRzLCB2YWx1ZSk7XG4gICAgICB0aGlzLnNlbGVjdEVudGl0aWVzQnlJZHMoZW50aXR5SWRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVmFsdWUgd2FzIHdyaXR0ZW4gYXMgZW50aXR5LCBlbnN1cmUgZW50aXR5IGlzIHVwZGF0ZWRcbiAgICAgIGNvbnN0IGN1cnJlbnRFbnRpdGllcyA9IHRoaXMuZW50aXRpZXM7XG4gICAgICBjb25zdCBuZXdFbnRpdGllcyA9IDxhbnk+dmFsdWUgYXMgVEVudGl0eVtdO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3dyaXRlVG9Db250cm9sOiB2YWx1ZSB3YXMgd3JpdHRlbiBhcyBlbnRpdGllcyAoc2l6ZSk6ICcgKyBuZXdFbnRpdGllcz8ubGVuZ3RoLCB2YWx1ZSk7XG4gICAgICBpZiAoIXRoaXMuZXF1YWxFbnRpdGllcyhjdXJyZW50RW50aXRpZXMsIG5ld0VudGl0aWVzKSkge1xuICAgICAgICB0aGlzLndyaXRlRW50aXRpZXNTb3J0ZWQobmV3RW50aXRpZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignSWdub3JlZCB3cml0dGVuIGVudGl0aWVzIGFzIHRoZXkgYXJlIGFscmVhZHkgc2V0IHRvIGVudGl0aWVzJCEnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgc3VwZXIud3JpdGVUb0NvbnRyb2wodmFsdWUpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICBwcml2YXRlIGlzQWxyZWFkeVByZXNlbnQocXVlcnlWYWx1ZTogVEVudGl0eSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmVudGl0aWVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbnRpdGllcy5zb21lKHYgPT4gdGhpcy5pc0VxdWFsKHYsIHF1ZXJ5VmFsdWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW50aXR5SWRzRnJvbVZhbHVlcyh2YWx1ZXM6IFRWYWx1ZVtdKTogVElkW10gfCBudWxsIHtcbiAgICBpZiAodmFsdWVzKSB7XG4gICAgICByZXR1cm4gdmFsdWVzLm1hcCh2ID0+IHRoaXMuZW50aXR5SWRGcm9tVmFsdWUodikpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZW50aXR5SWRGcm9tVmFsdWUodmFsdWU6IFRWYWx1ZSk6IFRJZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICByZXR1cm4gPGFueT52YWx1ZSBhcyBUSWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9ICg8YW55PnZhbHVlKSBhcyBURW50aXR5O1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVudGl0aWVzVG9WYWx1ZXMoZW50aXRpZXM6IFRFbnRpdHlbXSk6IFRWYWx1ZVtdIHwgbnVsbCB7XG4gICAgaWYgKGVudGl0aWVzKSB7XG4gICAgICByZXR1cm4gZW50aXRpZXMubWFwKGUgPT4gdGhpcy5lbnRpdHlUb1ZhbHVlKGUpKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldEVudGl0eUlkcyh2YWx1ZXM6IFRFbnRpdHlbXSB8IG51bGwpOiBUSWRbXSB7XG4gICAgaWYgKHZhbHVlcykge1xuICAgICAgcmV0dXJuIHZhbHVlcy5tYXAodiA9PiB0aGlzLmdldEVudGl0eUlkKHYpKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGVxdWFsSWRzKGlkc0E6IFRJZFtdLCBpZHNCOiBUSWRbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBTZXRzLmVxdWFsQ29udGVudChpZHNBLCBpZHNCKTtcbiAgfVxuXG4gIHByaXZhdGUgZXF1YWxJZHNFeGFjdE9yZGVyKGlkc0E6IFRJZFtdLCBpZHNCOiBUSWRbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBBcnJheXMuZXF1YWxDb250ZW50QW5kT3JkZXIoaWRzQSwgaWRzQik7XG4gIH1cblxuICBwcml2YXRlIGVxdWFsRW50aXRpZXMoZW50aXRpZXNBOiBURW50aXR5W10sIGVudGl0aWVzQjogVEVudGl0eVtdKSB7XG4gICAgcmV0dXJuIHRoaXMuZXF1YWxJZHModGhpcy5nZXRFbnRpdHlJZHMoZW50aXRpZXNBKSwgdGhpcy5nZXRFbnRpdHlJZHMoZW50aXRpZXNCKSk7XG4gIH1cblxuICBwcml2YXRlIGVxdWFsRW50aXRpZXNFeGFjdE9yZGVyKGVudGl0aWVzQTogVEVudGl0eVtdLCBlbnRpdGllc0I6IFRFbnRpdHlbXSkge1xuICAgIHJldHVybiB0aGlzLmVxdWFsSWRzRXhhY3RPcmRlcih0aGlzLmdldEVudGl0eUlkcyhlbnRpdGllc0EpLCB0aGlzLmdldEVudGl0eUlkcyhlbnRpdGllc0IpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0RW50aXRpZXNCeUlkcyhpZHM6IFRJZFtdKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudEVudGl0aWVzID0gdGhpcy5lbnRpdGllcztcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdzZWxlY3RFbnRpdGllc0J5SWRzOiBpZHM6ICcgKyBpZHMgKyAnLCBjdXJyZW50IGVudGl0aWVzOicsIGN1cnJlbnRFbnRpdGllcyk7XG4gICAgaWYgKGN1cnJlbnRFbnRpdGllcyAmJiB0aGlzLmVxdWFsSWRzKHRoaXMuZ2V0RW50aXR5SWRzKGN1cnJlbnRFbnRpdGllcyksIGlkcykpIHtcbiAgICAgIHJldHVybjsgLy8gRW50aXRpZXMgYWxyZWFkeSBsb2FkZWRcbiAgICB9XG5cbiAgICB0aGlzLmZpbmRPckxvYWRFbnRpdGllc0J5SWRzKGlkcylcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiBlbnRpdGllcyA9PiB0aGlzLmVudGl0aWVzID0gZW50aXRpZXMsXG4gICAgICAgIGVycm9yOiBlcnIgPT4gdGhpcy51cGRhdGVTdGF0ZShFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLmVycm9yKGVycikpXG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZE9yTG9hZEVudGl0aWVzQnlJZHMoaWRzOiBUSWRbXSk6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XG4gICAgaWYgKGlkcy5sZW5ndGggPT0gMCkge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGF0YUNvbnRleHQpIHtcbiAgICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5maW5kSW5EYXRhQ29udGV4dChpZHMpO1xuICAgICAgY29uc3QgbWlzc2luZ0lkcyA9IGlkcy5maWx0ZXIoaWQgPT4gIWV4aXN0aW5nLmhhcyhpZCkpO1xuICAgICAgY29uc3QgdmFsdWVMb2FkUmVxdWVzdCQgPSBtaXNzaW5nSWRzLmxlbmd0aCA+IDAgPyB0aGlzLmxvYWRFbnRpdGllc0J5SWRzKG1pc3NpbmdJZHMpIDogb2YobmV3IE1hcCgpKTtcblxuICAgICAgcmV0dXJuIHZhbHVlTG9hZFJlcXVlc3QkLnBpcGUoXG4gICAgICAgIG1hcChsb2FkZWQgPT4ge1xuICAgICAgICAgIGxvYWRlZC5mb3JFYWNoKCh2LCBrKSA9PiBleGlzdGluZy5zZXQoaywgdikpO1xuICAgICAgICAgIHJldHVybiBleGlzdGluZztcbiAgICAgICAgfSksXG4gICAgICAgIG1hcChhbGxWYWx1ZXNNYXAgPT4gQXJyYXkuZnJvbShhbGxWYWx1ZXNNYXAudmFsdWVzKCkpKSAvLyBUT0RPIFNvcnQ/XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKCdGYWlsZWQgdG8gc2VsZWN0IHZhbHVlIGJ5IElkczogJyArIGlkcyArICcgLSBEYXRhQ29udGV4dCBub3QgYXZhaWxhYmxlLicpO1xuICAgICAgcmV0dXJuIEVNUFRZO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZEVudGl0aWVzQnlJZHMoaWRzOiBUSWRbXSk6IE9ic2VydmFibGU8TWFwPFRJZCwgVEVudGl0eT4+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhQ29udGV4dC5kYXRhU291cmNlLmZpbmRCeUlkcyhpZHMpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBlbnRpdGllcyBieSBpZHM6ICcgKyBpZHMsIGVycik7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XG4gICAgICB9KSxcbiAgICAgIG1hcCh2YWx1ZXMgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTG9hZGVkIGVudGl0aWVzIGJ5IGlkOicsIHZhbHVlcyk7XG4gICAgICAgIGNvbnN0IHZhbHVlTWFwID0gbmV3IE1hcDxUSWQsIFRFbnRpdHk+KCk7XG4gICAgICAgIHZhbHVlcy5mb3JFYWNoKHYgPT4gdmFsdWVNYXAuc2V0KHRoaXMuZ2V0RW50aXR5SWQodiksIHYpKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlTWFwO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kSW5EYXRhQ29udGV4dChpZHM6IFRJZFtdKTogTWFwPFRJZCwgVEVudGl0eT4ge1xuICAgIGNvbnN0IGV4aXN0aW5nVmFsdWVzID0gbmV3IE1hcDxUSWQsIFRFbnRpdHk+KCk7XG4gICAgaWYgKGlkcz8ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YUNvbnRleHQuc25hcHNob3QuZGF0YTtcbiAgICAgIGNvbnN0IHJlcXVpcmVkSWRzID0gbmV3IFNldChpZHMpO1xuICAgICAgZGF0YVxuICAgICAgICAuZmlsdGVyKGQgPT4gcmVxdWlyZWRJZHMuaGFzKHRoaXMuZ2V0RW50aXR5SWQoZCkpKVxuICAgICAgICAuZm9yRWFjaChkID0+IGV4aXN0aW5nVmFsdWVzLnNldCh0aGlzLmdldEVudGl0eUlkKGQpLCBkKSk7XG4gICAgfVxuICAgIHJldHVybiBleGlzdGluZ1ZhbHVlcztcbiAgfVxuXG4gIHByaXZhdGUgd3JpdGVFbnRpdGllc1NvcnRlZChlbnRpdGllczogVEVudGl0eVtdKTogVEVudGl0eVtdIHtcbiAgICBjb25zdCBzb3J0ZWQgPSB0aGlzLnNvcnRFbnRpdGllcyhlbnRpdGllcyk7XG4gICAgdGhpcy5fZW50aXRpZXMkLm5leHQoc29ydGVkKTtcbiAgICByZXR1cm4gc29ydGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzb3J0RW50aXRpZXMoZW50aXRpZXM6IFRFbnRpdHlbXSk6IFRFbnRpdHlbXSB7XG4gICAgaWYgKGVudGl0aWVzICYmIHRoaXMuZW50aXRpZXNTb3J0cyAmJiB0aGlzLmVudGl0aWVzU29ydHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc29ydGVkID0gU29ydFV0aWwuc29ydERhdGEoZW50aXRpZXMsIHRoaXMuZW50aXRpZXNTb3J0cyk7XG4gICAgICBpZiAoIVNvcnRVdGlsLmVxdWFsc0V4YWN0UmVmcyhlbnRpdGllcywgc29ydGVkKSkge1xuICAgICAgICAvLyBPbmx5IHJldHVybiBhIGNvcHkgb2YgdGhlIGFycmF5IGlmIGFjdHVhbGx5IHNvbWV0aGluZyBjaGFuZ2VkXG4gICAgICAgIHJldHVybiBzb3J0ZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBlbnRpdGllcztcbiAgfVxufVxuIl19