@elderbyte/ngx-starter 17.10.0 → 17.11.0-beta2

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 (352) hide show
  1. package/esm2022/lib/common/data/datasource/data-source-base.mjs +1 -1
  2. package/esm2022/lib/common/data/datasource/rest/rest-client.mjs +1 -1
  3. package/esm2022/lib/common/data/filters/filter-commons.mjs +23 -0
  4. package/esm2022/lib/common/data/filters/filter-value.mjs +2 -0
  5. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +4 -4
  6. package/esm2022/lib/common/format/curency-format-util.mjs +43 -0
  7. package/esm2022/lib/common/format/duration-format-util.mjs +44 -0
  8. package/esm2022/lib/common/format/iso-interval-format-util.mjs +109 -0
  9. package/esm2022/lib/common/format/public_api.mjs +4 -1
  10. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +4 -4
  11. package/esm2022/lib/common/forms/elder-from-field-base.mjs +4 -4
  12. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +4 -4
  13. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +4 -4
  14. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +4 -4
  15. package/esm2022/lib/common/forms/form-field-base.component.mjs +4 -4
  16. package/esm2022/lib/common/forms/multi-model-base.component.mjs +4 -4
  17. package/esm2022/lib/common/forms/template-composite-control.mjs +4 -4
  18. package/esm2022/lib/common/forms/value-accessor-base.mjs +4 -4
  19. package/esm2022/lib/common/http/http-client-builder.service.mjs +4 -4
  20. package/esm2022/lib/common/http/http-client-pristine.mjs +4 -4
  21. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +4 -4
  22. package/esm2022/lib/common/url/elder-router.service.mjs +4 -4
  23. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +4 -4
  24. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +4 -4
  25. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +5 -5
  26. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +4 -4
  27. package/esm2022/lib/components/auditing/elder-audit.module.mjs +5 -5
  28. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +10 -10
  29. package/esm2022/lib/components/badge/elder-badge.directive.mjs +44 -22
  30. package/esm2022/lib/components/badge/elder-badge.module.mjs +5 -5
  31. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +4 -4
  32. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +5 -5
  33. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +4 -4
  34. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +4 -4
  35. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +4 -4
  36. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +5 -5
  37. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +4 -4
  38. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +19 -19
  39. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +5 -5
  40. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +4 -4
  41. package/esm2022/lib/components/chips/elder-chips.module.mjs +5 -5
  42. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +5 -5
  43. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +4 -4
  44. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +4 -4
  45. package/esm2022/lib/components/containers/elder-containers.module.mjs +5 -5
  46. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +4 -4
  47. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +4 -4
  48. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +4 -4
  49. package/esm2022/lib/components/csv/elder-csv.module.mjs +5 -5
  50. package/esm2022/lib/components/currency/elder-currency.module.mjs +5 -5
  51. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +16 -13
  52. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +5 -5
  53. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +4 -4
  54. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +4 -4
  55. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +4 -4
  56. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +4 -4
  57. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +4 -4
  58. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +4 -4
  59. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +4 -4
  60. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +5 -5
  61. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +7 -7
  62. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +4 -4
  63. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +4 -4
  64. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +4 -4
  65. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +10 -10
  66. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +5 -5
  67. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +4 -4
  68. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +4 -4
  69. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +4 -4
  70. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +4 -4
  71. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +5 -5
  72. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +4 -4
  73. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +4 -4
  74. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +4 -4
  75. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +5 -5
  76. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +4 -4
  77. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +4 -4
  78. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +4 -4
  79. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +4 -4
  80. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +4 -4
  81. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +4 -4
  82. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +4 -4
  83. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +4 -4
  84. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +4 -4
  85. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +4 -4
  86. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +4 -4
  87. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +5 -5
  88. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +4 -4
  89. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +4 -4
  90. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +5 -5
  91. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +4 -4
  92. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +4 -4
  93. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +4 -4
  94. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +4 -4
  95. package/esm2022/lib/components/errors/elder-error.module.mjs +5 -5
  96. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +4 -4
  97. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +4 -4
  98. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +5 -5
  99. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +4 -4
  100. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +4 -4
  101. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +4 -4
  102. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +4 -4
  103. package/esm2022/lib/components/files/elder-file-select.directive.mjs +4 -4
  104. package/esm2022/lib/components/files/elder-file.module.mjs +5 -5
  105. package/esm2022/lib/components/files/file-select/file-select.component.mjs +4 -4
  106. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +4 -4
  107. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +4 -4
  108. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +4 -4
  109. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +4 -4
  110. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +4 -4
  111. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +4 -4
  112. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +4 -4
  113. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +4 -4
  114. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +4 -4
  115. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +5 -5
  116. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +11 -8
  117. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +4 -4
  118. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +4 -4
  119. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +4 -4
  120. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +4 -4
  121. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +4 -4
  122. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +4 -4
  123. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +4 -4
  124. package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +4 -4
  125. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +4 -4
  126. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +4 -4
  127. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +4 -4
  128. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +4 -4
  129. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +4 -4
  130. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +4 -4
  131. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +4 -4
  132. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +4 -4
  133. package/esm2022/lib/components/forms/elder-forms.module.mjs +5 -5
  134. package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +4 -4
  135. package/esm2022/lib/components/forms/search/domain/input/input-value.mjs +2 -0
  136. package/esm2022/lib/components/forms/search/domain/input/search-input-state.mjs +15 -6
  137. package/esm2022/lib/components/forms/search/domain/input/search-input.mjs +1 -1
  138. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +4 -4
  139. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +4 -4
  140. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +39 -28
  141. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +50 -17
  142. package/esm2022/lib/components/forms/search/elder-search.module.mjs +5 -5
  143. package/esm2022/lib/components/forms/search/filter/default-input-filter-converter.mjs +46 -0
  144. package/esm2022/lib/components/forms/search/filter/include-exclude-input-converter.mjs +165 -0
  145. package/esm2022/lib/components/forms/search/filter/input-filter-converter.mjs +2 -0
  146. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +4 -4
  147. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +4 -4
  148. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +4 -4
  149. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +5 -5
  150. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +4 -4
  151. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +4 -4
  152. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +5 -5
  153. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +4 -4
  154. package/esm2022/lib/components/headers/elder-header.module.mjs +5 -5
  155. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +4 -4
  156. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +5 -5
  157. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +4 -4
  158. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +4 -4
  159. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +4 -4
  160. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +4 -4
  161. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +4 -4
  162. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +4 -4
  163. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +4 -4
  164. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +4 -4
  165. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +4 -4
  166. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +4 -4
  167. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +5 -5
  168. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +4 -4
  169. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +4 -4
  170. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +5 -5
  171. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +4 -4
  172. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +4 -4
  173. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +5 -5
  174. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +4 -4
  175. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +4 -4
  176. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +4 -4
  177. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +4 -4
  178. package/esm2022/lib/components/iframes/iframe.service.mjs +4 -4
  179. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +4 -4
  180. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +4 -4
  181. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +5 -5
  182. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +1 -1
  183. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +231 -0
  184. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +4 -4
  185. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +7 -4
  186. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +12 -12
  187. package/esm2022/lib/components/labels/elder-labels.module.mjs +5 -5
  188. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +4 -4
  189. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +4 -4
  190. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +4 -4
  191. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +4 -4
  192. package/esm2022/lib/components/measures/elder-measures.module.mjs +9 -9
  193. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +5 -16
  194. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +15 -46
  195. package/esm2022/lib/components/measures/elder-unit.service.mjs +4 -4
  196. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +4 -4
  197. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +8 -10
  198. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +4 -4
  199. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +4 -4
  200. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +70 -4
  201. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +4 -4
  202. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +5 -5
  203. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +5 -5
  204. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +4 -4
  205. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +4 -4
  206. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +4 -4
  207. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +4 -4
  208. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +5 -5
  209. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +4 -4
  210. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +4 -4
  211. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +4 -4
  212. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +4 -4
  213. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +4 -4
  214. package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +4 -4
  215. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +4 -4
  216. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +4 -4
  217. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +5 -5
  218. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +4 -4
  219. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +4 -4
  220. package/esm2022/lib/components/panels/elder-panel.module.mjs +5 -5
  221. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +4 -4
  222. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +4 -4
  223. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +10 -10
  224. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +4 -4
  225. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +5 -5
  226. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +27 -7
  227. package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +38 -0
  228. package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +66 -0
  229. package/esm2022/lib/components/select/auto/elder-select-first-util.mjs +4 -14
  230. package/esm2022/lib/components/select/elder-select-base.mjs +9 -9
  231. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +10 -10
  232. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +4 -4
  233. package/esm2022/lib/components/select/elder-select-value.directive.mjs +4 -4
  234. package/esm2022/lib/components/select/elder-select.module.mjs +35 -10
  235. package/esm2022/lib/components/select/filter/elder-chip-filter-style-resolver.mjs +70 -0
  236. package/esm2022/lib/components/select/filter/elder-chips-filter.directive.mjs +174 -0
  237. package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +58 -0
  238. package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +4 -4
  239. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +4 -4
  240. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +14 -7
  241. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +10 -6
  242. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +4 -4
  243. package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +4 -4
  244. package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +83 -0
  245. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +4 -4
  246. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +4 -4
  247. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +4 -4
  248. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +4 -4
  249. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +9 -14
  250. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +4 -4
  251. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +4 -4
  252. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +5 -5
  253. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +4 -4
  254. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +4 -4
  255. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +4 -4
  256. package/esm2022/lib/components/shell/elder-shell.module.mjs +5 -5
  257. package/esm2022/lib/components/shell/elder-shell.service.mjs +4 -4
  258. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +4 -4
  259. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +13 -13
  260. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +4 -4
  261. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +4 -4
  262. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +4 -4
  263. package/esm2022/lib/components/tabs/elder-tab.module.mjs +5 -5
  264. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +4 -4
  265. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +4 -4
  266. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +4 -4
  267. package/esm2022/lib/components/theme/elder-theme.directive.mjs +4 -4
  268. package/esm2022/lib/components/theme/elder-theme.module.mjs +5 -5
  269. package/esm2022/lib/components/theme/elder-theme.service.mjs +4 -4
  270. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +4 -4
  271. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +4 -4
  272. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +4 -4
  273. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +4 -4
  274. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +4 -4
  275. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +4 -4
  276. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +4 -4
  277. package/esm2022/lib/components/time/elder-time.module.mjs +5 -5
  278. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +4 -4
  279. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +4 -4
  280. package/esm2022/lib/components/toasts/elder-toast.module.mjs +5 -5
  281. package/esm2022/lib/components/toasts/elder-toast.service.mjs +4 -4
  282. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +4 -4
  283. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +5 -5
  284. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +4 -4
  285. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +4 -4
  286. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +5 -5
  287. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +4 -4
  288. package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +4 -4
  289. package/esm2022/lib/features/kafent/access-token-provider.mjs +4 -4
  290. package/esm2022/lib/features/kafent/kafent-config.mjs +4 -4
  291. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +4 -4
  292. package/esm2022/lib/features/kafent/kafent-event.service.mjs +4 -4
  293. package/esm2022/lib/features/kafent/kafent.module.mjs +5 -5
  294. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +4 -4
  295. package/esm2022/lib/pipes/bytes.pipe.mjs +4 -4
  296. package/esm2022/lib/pipes/elder-pipes.module.mjs +11 -11
  297. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +4 -4
  298. package/esm2022/lib/pipes/elder-round.pipe.mjs +4 -4
  299. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +4 -4
  300. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +4 -4
  301. package/esm2022/lib/pipes/iso-duration.pipe.mjs +8 -26
  302. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +4 -4
  303. package/esm2022/lib/pipes/iso-interval.pipe.mjs +24 -73
  304. package/esm2022/lib/pipes/time-ago.pipe.mjs +4 -4
  305. package/esm2022/lib/pipes/time-duration.pipe.mjs +4 -4
  306. package/esm2022/lib/pipes/weight.pipe.mjs +4 -4
  307. package/fesm2022/elderbyte-ngx-starter.mjs +8822 -7833
  308. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  309. package/lib/common/data/filters/filter-commons.d.ts +12 -0
  310. package/lib/common/data/filters/filter-value.d.ts +1 -0
  311. package/lib/common/format/curency-format-util.d.ts +24 -0
  312. package/lib/common/format/duration-format-util.d.ts +23 -0
  313. package/lib/common/format/iso-interval-format-util.d.ts +22 -0
  314. package/lib/common/format/public_api.d.ts +3 -0
  315. package/lib/components/badge/elder-badge.directive.d.ts +10 -1
  316. package/lib/components/currency/elder-currency.pipe.d.ts +7 -4
  317. package/lib/components/forms/directives/elder-initial-value.directive.d.ts +4 -2
  318. package/lib/components/forms/search/domain/input/input-value.d.ts +1 -0
  319. package/lib/components/forms/search/domain/input/search-input-state.d.ts +14 -4
  320. package/lib/components/forms/search/domain/input/search-input.d.ts +6 -1
  321. package/lib/components/forms/search/elder-search-context.directive.d.ts +7 -2
  322. package/lib/components/forms/search/elder-search-input.directive.d.ts +18 -7
  323. package/lib/components/forms/search/filter/default-input-filter-converter.d.ts +31 -0
  324. package/lib/components/forms/search/filter/include-exclude-input-converter.d.ts +78 -0
  325. package/lib/components/forms/search/filter/input-filter-converter.d.ts +16 -0
  326. package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.d.ts +3 -3
  327. package/lib/components/input/autocomplete/elder-autocomplete/{elder-autocomplete.component.d.ts → elder-suggestion-panel.component.d.ts} +17 -6
  328. package/lib/components/input/autocomplete/elder-autocomplete-many.directive.d.ts +3 -3
  329. package/lib/components/input/autocomplete/elder-autocomplete.directive.d.ts +3 -3
  330. package/lib/components/input/autocomplete/elder-autocomplete.module.d.ts +3 -3
  331. package/lib/components/measures/elder-quantity.pipe.d.ts +4 -15
  332. package/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.d.ts +2 -4
  333. package/lib/components/measures/util/elder-quantity.service.d.ts +12 -0
  334. package/lib/components/select/auto/elder-auto-select-first.directive.d.ts +9 -1
  335. package/lib/components/select/auto/elder-auto-select-first.service.d.ts +23 -0
  336. package/lib/components/select/auto/elder-auto-select-suggest-first.directive.d.ts +32 -0
  337. package/lib/components/select/auto/elder-select-first-util.d.ts +2 -2
  338. package/lib/components/select/elder-select-base.d.ts +1 -1
  339. package/lib/components/select/elder-select.module.d.ts +9 -1
  340. package/lib/components/select/filter/elder-chip-filter-style-resolver.d.ts +19 -0
  341. package/lib/components/select/filter/elder-chips-filter.directive.d.ts +68 -0
  342. package/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.d.ts +32 -0
  343. package/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.d.ts +5 -1
  344. package/lib/components/select/multi/elder-search-include-exclude.directive.d.ts +39 -0
  345. package/lib/components/select/single/elder-select/elder-select.component.d.ts +0 -1
  346. package/lib/pipes/iso-duration.pipe.d.ts +0 -3
  347. package/lib/pipes/iso-interval.pipe.d.ts +5 -12
  348. package/package.json +1 -1
  349. package/src/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.scss +95 -0
  350. package/src/lib/components/select/multi/elder-select-include-exclude-chip/elder-select-include-exclude-chip.component.scss +0 -0
  351. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +0 -186
  352. /package/src/lib/components/input/autocomplete/elder-autocomplete/{elder-autocomplete.component.scss → elder-suggestion-panel.component.scss} +0 -0
@@ -0,0 +1,12 @@
1
+ import { FilterValue } from './filter-value';
2
+ /***************************************************************************
3
+ * *
4
+ * Common functions *
5
+ * *
6
+ **************************************************************************/
7
+ export default class FilterCommons {
8
+ static isArrayAndNotEmpty(value: FilterValue): boolean;
9
+ static isArray(value: FilterValue): boolean;
10
+ static isNotEmptyArray(value: FilterValue): boolean;
11
+ static getValuesIfArrayElseEmpty(value: FilterValue): string[];
12
+ }
@@ -0,0 +1 @@
1
+ export type FilterValue = string | string[] | null;
@@ -0,0 +1,24 @@
1
+ import { CurrencyCode } from '../../components/currency/model/currency-code';
2
+ import { Currency } from '../../components/currency/model/currency';
3
+ export type CurrencyIndication = 'code' | 'symbol' | 'symbol-narrow' | string;
4
+ export declare class CurrencyFormatUtil {
5
+ /***************************************************************************
6
+ * *
7
+ * Public API *
8
+ * *
9
+ **************************************************************************/
10
+ /**
11
+ * @param currency amount and ISO 4217 currency code to format
12
+ * @param locale locale code for formatting rules (e.g. en-US)
13
+ * @param indication determines currency indicator in output (e.g. USD100 vs $100). Will fall back to 'symbol' if missing.
14
+ * @param digitsInfo see DecimalPipe for documentation
15
+ */
16
+ static formatElderCurrency(currency: Currency, locale: string, indication?: CurrencyIndication, digitsInfo?: string): string;
17
+ static determineCurrencySymbol(currencyCode: CurrencyCode, locale: string): string;
18
+ /***************************************************************************
19
+ * *
20
+ * Private methods *
21
+ * *
22
+ **************************************************************************/
23
+ private static determineCurrencyIndicator;
24
+ }
@@ -0,0 +1,23 @@
1
+ import { Duration, Period } from '@js-joda/core';
2
+ import { PeriodDuration } from '../time/period-duration';
3
+ export declare class DurationFormatUtil {
4
+ /***************************************************************************
5
+ * *
6
+ * Public API *
7
+ * *
8
+ **************************************************************************/
9
+ /**
10
+ * Converts any valid input of standard ISO 8601 duration format
11
+ * example input: PT2H10M12.1235675S, output: 2h, 10min, 12s, 124 ms
12
+ *
13
+ * a maximal input looks like this: P3Y6M4DT12H30M5S although
14
+ * all arguments except P are optional, decimal numbers allowed
15
+ */
16
+ static formatDuration(value: string | Duration | Period | PeriodDuration, format?: string): string;
17
+ /***************************************************************************
18
+ * *
19
+ * Private methods *
20
+ * *
21
+ **************************************************************************/
22
+ private static toPeriodDuration;
23
+ }
@@ -0,0 +1,22 @@
1
+ import { Interval } from '../time/interval';
2
+ import { ZoneId } from '@js-joda/core';
3
+ export declare class IsoIntervalFormatUtil {
4
+ /***************************************************************************
5
+ * *
6
+ * Public API *
7
+ * *
8
+ **************************************************************************/
9
+ static formatIsoInterval(value: string | Interval, timezone: string | ZoneId, locale: string, format?: string, formatEnd?: string): string | null;
10
+ /***************************************************************************
11
+ * *
12
+ * Private methods *
13
+ * *
14
+ **************************************************************************/
15
+ private static determineDisplayMode;
16
+ private static formatSubDay;
17
+ private static formatFullDays;
18
+ private static formatDetailedInterval;
19
+ private static formatInstant;
20
+ private static formatDate;
21
+ private static isPartialDay;
22
+ }
@@ -1,2 +1,5 @@
1
1
  export * from './bytes-per-second-format';
2
2
  export * from './bytes-format';
3
+ export * from './curency-format-util';
4
+ export * from './iso-interval-format-util';
5
+ export * from './duration-format-util';
@@ -1,4 +1,4 @@
1
- import { ViewContainerRef, OnInit, DestroyRef } from '@angular/core';
1
+ import { DestroyRef, OnInit, ViewContainerRef } from '@angular/core';
2
2
  import { BadgeAvatarSpec, BadgeColorSpec } from './elder-badge/elder-badge.component';
3
3
  import { DomSanitizer, SafeStyle } from '@angular/platform-browser';
4
4
  import { MatBadge } from '@angular/material/badge';
@@ -14,6 +14,7 @@ export declare class ElderBadgeDirective implements OnInit {
14
14
  * Fields *
15
15
  * *
16
16
  **************************************************************************/
17
+ private readonly log;
17
18
  private readonly value$;
18
19
  private readonly colorSpec$;
19
20
  private readonly avatarSpec$;
@@ -45,6 +46,14 @@ export declare class ElderBadgeDirective implements OnInit {
45
46
  set elderBadge(value: any);
46
47
  set colorSpec(spec: BadgeColorSpec);
47
48
  set avatarSpec(spec: BadgeAvatarSpec);
49
+ /***************************************************************************
50
+ * *
51
+ * Private methods *
52
+ * *
53
+ **************************************************************************/
54
+ private bindToElderBadge;
55
+ private replaceMatBadgeWithElderBadge;
56
+ private createElderBadgeComponent;
48
57
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderBadgeDirective, never>;
49
58
  static ɵdir: i0.ɵɵDirectiveDeclaration<ElderBadgeDirective, "[elderBadge]", never, { "badgeColor": { "alias": "badgeColor"; "required": false; }; "badgeIcon": { "alias": "badgeIcon"; "required": false; }; "elderBadge": { "alias": "elderBadge"; "required": false; }; "colorSpec": { "alias": "colorSpec"; "required": false; }; "avatarSpec": { "alias": "avatarSpec"; "required": false; }; }, {}, never, never, true, never>;
50
59
  }
@@ -1,21 +1,24 @@
1
1
  import { PipeTransform } from '@angular/core';
2
- import { CurrencyPipe } from '@angular/common';
3
2
  import { Currency } from './model/currency';
3
+ import { CurrencyIndication } from '../../common/format/curency-format-util';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class ElderCurrencyPipe implements PipeTransform {
6
- private readonly currencyPipe;
6
+ private _locale;
7
7
  /***************************************************************************
8
8
  * *
9
9
  * Constructor *
10
10
  * *
11
11
  **************************************************************************/
12
- constructor(currencyPipe: CurrencyPipe);
12
+ constructor(_locale: string);
13
13
  /***************************************************************************
14
14
  * *
15
15
  * Public API *
16
16
  * *
17
17
  **************************************************************************/
18
- transform(currency: Currency, display?: 'code' | 'symbol' | 'symbol-narrow' | string | boolean, digitsInfo?: string, locale?: string): string;
18
+ /**
19
+ * @see formatElderCurrency
20
+ */
21
+ transform(currency: Currency, display?: CurrencyIndication, digitsInfo?: string, locale?: string): string;
19
22
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderCurrencyPipe, never>;
20
23
  static ɵpipe: i0.ɵɵPipeDeclaration<ElderCurrencyPipe, "elderCurrency", true>;
21
24
  }
@@ -1,5 +1,6 @@
1
1
  import { OnDestroy } from '@angular/core';
2
2
  import { NgModel } from '@angular/forms';
3
+ import { Observable } from 'rxjs';
3
4
  import * as i0 from "@angular/core";
4
5
  /**
5
6
  * Search name adapter for input controls.
@@ -14,7 +15,7 @@ export declare class ElderInitialValueDirective implements OnDestroy {
14
15
  private readonly log;
15
16
  private initialValue$;
16
17
  private readonly destroy$;
17
- private readonly initialDone$;
18
+ private readonly _initialDone$;
18
19
  /***************************************************************************
19
20
  * *
20
21
  * Constructor *
@@ -31,7 +32,8 @@ export declare class ElderInitialValueDirective implements OnDestroy {
31
32
  * Properties *
32
33
  * *
33
34
  **************************************************************************/
34
- get valueChanges$(): import("rxjs").Observable<any>;
35
+ get initialDone$(): Observable<void>;
36
+ get valueChanges$(): Observable<any>;
35
37
  setValue(value: any): void;
36
38
  ngOnDestroy(): void;
37
39
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderInitialValueDirective, [{ host: true; }]>;
@@ -0,0 +1 @@
1
+ export type InputValue = string[] | string | null;
@@ -1,3 +1,4 @@
1
+ import { Filter } from '../../../../../common/data/filters/filter';
1
2
  /**
2
3
  * Immutable representation of the state of an search input
3
4
  */
@@ -6,14 +7,18 @@ export declare class SearchInputState {
6
7
  * attribute The name name
7
8
  */
8
9
  readonly attribute: string;
10
+ /**
11
+ * queryKey The query key
12
+ */
13
+ readonly queryKey: string;
9
14
  /**
10
15
  * queryValue The query value as string. Supports multi string value.
11
16
  */
12
17
  readonly queryValue: string | string[] | null;
13
18
  /**
14
- * queryKey The query key
19
+ * value of the input
15
20
  */
16
- readonly queryKey: string;
21
+ readonly filters: Filter[];
17
22
  /**
18
23
  * pristine Has the user touched this?
19
24
  */
@@ -22,6 +27,7 @@ export declare class SearchInputState {
22
27
  * Was the input changed by a user interaction
23
28
  */
24
29
  readonly userEvent: boolean;
30
+ static of(attribute: string, queryKey: string, queryValue: string | string[] | null, filters: Filter[], pristine: boolean, userEvent: boolean): SearchInputState;
25
31
  static unknown(): SearchInputState;
26
32
  /***************************************************************************
27
33
  * *
@@ -33,14 +39,18 @@ export declare class SearchInputState {
33
39
  * attribute The name name
34
40
  */
35
41
  attribute: string,
42
+ /**
43
+ * queryKey The query key
44
+ */
45
+ queryKey: string,
36
46
  /**
37
47
  * queryValue The query value as string. Supports multi string value.
38
48
  */
39
49
  queryValue: string | string[] | null,
40
50
  /**
41
- * queryKey The query key
51
+ * value of the input
42
52
  */
43
- queryKey: string,
53
+ filters: Filter[],
44
54
  /**
45
55
  * pristine Has the user touched this?
46
56
  */
@@ -1,5 +1,6 @@
1
1
  import { Observable } from 'rxjs/internal/Observable';
2
2
  import { SearchInputState } from './search-input-state';
3
+ import { Filter } from '../../../../../common/data/filters/filter';
3
4
  /**
4
5
  * Represents a single search control.
5
6
  */
@@ -8,6 +9,10 @@ export interface SearchInput {
8
9
  * The search input name
9
10
  */
10
11
  readonly name: string;
12
+ /**
13
+ * The search input name query key
14
+ */
15
+ readonly queryKey?: string;
11
16
  readonly state$: Observable<SearchInputState>;
12
17
  /**
13
18
  * States if the search name is cannot be changed.
@@ -17,5 +22,5 @@ export interface SearchInput {
17
22
  * Reset the name value
18
23
  */
19
24
  reset(): void;
20
- setValue(value: string | string[] | null): void;
25
+ applyFilters(filters: Filter[]): void;
21
26
  }
@@ -22,12 +22,13 @@ export declare class ElderSearchContextDirective implements OnInit, AfterViewIni
22
22
  * *
23
23
  **************************************************************************/
24
24
  private readonly log;
25
- private readonly filtersToApplyAtRegistration;
25
+ private readonly initialFilters;
26
+ private initialFiltersRegistered;
26
27
  private readonly _searchInputs$;
27
28
  private readonly _searchStates$;
28
29
  private readonly _filterContext$;
29
30
  private readonly _searchContext$;
30
- private readonly searchContextId$;
31
+ private readonly _searchContextId$;
31
32
  /***************************************************************************
32
33
  * *
33
34
  * Constructor *
@@ -48,6 +49,7 @@ export declare class ElderSearchContextDirective implements OnInit, AfterViewIni
48
49
  **************************************************************************/
49
50
  set searchContextId(contextId: string);
50
51
  get searchContextId(): string;
52
+ get searchContextId$(): Observable<string>;
51
53
  get searchContext$(): Observable<SearchContext>;
52
54
  get searchContext(): SearchContext;
53
55
  set filterContext(value: FilterContext | '');
@@ -83,6 +85,7 @@ export declare class ElderSearchContextDirective implements OnInit, AfterViewIni
83
85
  * Private *
84
86
  * *
85
87
  **************************************************************************/
88
+ searchInputs(): SearchInput[];
86
89
  private applyDefaultFiltersToSearchContext;
87
90
  private applyAsDefaultsUntilUserAction;
88
91
  private syncSearchInputsToSearchContext;
@@ -90,6 +93,8 @@ export declare class ElderSearchContextDirective implements OnInit, AfterViewIni
90
93
  private applyToBoundFilterContext;
91
94
  private applySearchContextToInputs;
92
95
  private applyFiltersToInputs;
96
+ private saveInitialFitlers;
97
+ private buildFilterValueMap;
93
98
  private searchInputsByName;
94
99
  private convertToFilters;
95
100
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderSearchContextDirective, never>;
@@ -6,6 +6,8 @@ import { SearchInput } from './domain/input/search-input';
6
6
  import { SearchInputState } from './domain/input/search-input-state';
7
7
  import { LocalPagedDataSource } from '../../../common/data/datasource/local/local-paged-data-source';
8
8
  import { BooleanInput } from '@angular/cdk/coercion';
9
+ import { InputFilterConverter } from './filter/input-filter-converter';
10
+ import { Filter } from '../../../common/data/filters/filter';
9
11
  import * as i0 from "@angular/core";
10
12
  /**
11
13
  * Search name adapter for input controls.
@@ -13,16 +15,13 @@ import * as i0 from "@angular/core";
13
15
  export declare class ElderSearchInputDirective implements SearchInput, OnInit, AfterViewInit, OnDestroy {
14
16
  private searchContext;
15
17
  private ngModel;
16
- private readonly initialValueDirective;
18
+ private readonly _initialValueDirective;
17
19
  /***************************************************************************
18
20
  * *
19
21
  * Fields *
20
22
  * *
21
23
  **************************************************************************/
22
- /**
23
- * (Optional) Usually the control name is used, this allows a custom query key
24
- */
25
- queryKey: string;
24
+ private _queryKey$;
26
25
  /**
27
26
  * (Optional) Function which transforms the value object to a query param value
28
27
  */
@@ -38,7 +37,9 @@ export declare class ElderSearchInputDirective implements SearchInput, OnInit, A
38
37
  */
39
38
  fallbackValue: string | string[];
40
39
  valueAsId: BooleanInput;
40
+ private _inputConverter;
41
41
  private readonly _state$;
42
+ private readonly _name$;
42
43
  private _extractedName;
43
44
  private readonly destroy$;
44
45
  private readonly log;
@@ -61,8 +62,17 @@ export declare class ElderSearchInputDirective implements SearchInput, OnInit, A
61
62
  * Properties *
62
63
  * *
63
64
  **************************************************************************/
65
+ /**
66
+ * (Optional) Usually the control name is used, this allows a custom query key
67
+ */
68
+ set queryKey(value: string);
69
+ get queryKey(): string;
70
+ get queryKey$(): Observable<string>;
71
+ set inputConverter(inputConverter: InputFilterConverter);
72
+ get initialDone$(): Observable<void>;
64
73
  get state$(): Observable<SearchInputState>;
65
74
  get name(): string;
75
+ get name$(): Observable<string>;
66
76
  get value(): any;
67
77
  get readonly(): boolean;
68
78
  private get hasFallback();
@@ -71,13 +81,14 @@ export declare class ElderSearchInputDirective implements SearchInput, OnInit, A
71
81
  * Public API *
72
82
  * *
73
83
  **************************************************************************/
74
- setValue(queryString: string | string[] | null): void;
84
+ applyFilters(filters: Filter[]): void;
75
85
  reset(): void;
76
86
  /***************************************************************************
77
87
  * *
78
88
  * Private methods *
79
89
  * *
80
90
  **************************************************************************/
91
+ private setInputValue;
81
92
  private get valueChanges$();
82
93
  private buildInputStateObservable;
83
94
  private buildInputState;
@@ -92,5 +103,5 @@ export declare class ElderSearchInputDirective implements SearchInput, OnInit, A
92
103
  private extractName;
93
104
  private concatIfNecessary;
94
105
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderSearchInputDirective, [null, { host: true; }]>;
95
- static ɵdir: i0.ɵɵDirectiveDeclaration<ElderSearchInputDirective, "[elderSearchInput]", ["elderSearchInput"], { "queryKey": { "alias": "elderSearchInputKey"; "required": false; }; "valueTransform": { "alias": "elderSearchInputTransform"; "required": false; }; "resolvePath": { "alias": "elderSearchInput"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; "fallbackValue": { "alias": "elderSearchInputFallback"; "required": false; }; "valueAsId": { "alias": "valueAsId"; "required": false; }; }, {}, never, never, true, never>;
106
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ElderSearchInputDirective, "[elderSearchInput]", ["elderSearchInput"], { "valueTransform": { "alias": "elderSearchInputTransform"; "required": false; }; "resolvePath": { "alias": "elderSearchInput"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; "fallbackValue": { "alias": "elderSearchInputFallback"; "required": false; }; "valueAsId": { "alias": "valueAsId"; "required": false; }; "queryKey": { "alias": "elderSearchInputKey"; "required": false; }; }, {}, never, never, true, never>;
96
107
  }
@@ -0,0 +1,31 @@
1
+ import { InputFilterConverter } from './input-filter-converter';
2
+ import { InputValue } from '../domain/input/input-value';
3
+ import { Filter } from '../../../../common/data/filters/filter';
4
+ export default class DefaultInputFilterConverter implements InputFilterConverter {
5
+ private readonly queryKeyProviderFn;
6
+ /***************************************************************************
7
+ * *
8
+ * Static Builders *
9
+ * *
10
+ **************************************************************************/
11
+ static of(queryKeyProviderFn: () => string): DefaultInputFilterConverter;
12
+ /***************************************************************************
13
+ * *
14
+ * Constructors *
15
+ * *
16
+ **************************************************************************/
17
+ private constructor();
18
+ /***************************************************************************
19
+ * *
20
+ * Public API *
21
+ * *
22
+ **************************************************************************/
23
+ convertToFilters(inputValue: InputValue): Filter[];
24
+ convertToValue(filters: Filter[]): InputValue;
25
+ /***************************************************************************
26
+ * *
27
+ * Private methods *
28
+ * *
29
+ **************************************************************************/
30
+ private queryKey;
31
+ }
@@ -0,0 +1,78 @@
1
+ import { InputFilterConverter } from './input-filter-converter';
2
+ import { Filter } from '../../../../common/data/filters/filter';
3
+ import { InputValue } from '../domain/input/input-value';
4
+ import { Observable } from 'rxjs';
5
+ import { ElderChipFilterEntity } from '../../../select/filter/elder-chips-filter.directive';
6
+ export default class IncludeExcludeInputConverter implements InputFilterConverter {
7
+ readonly queryKey: string;
8
+ private includeSuffix;
9
+ private excludeSuffix;
10
+ /***************************************************************************
11
+ * *
12
+ * Fields *
13
+ * *
14
+ **************************************************************************/
15
+ private readonly selections$;
16
+ private readonly _mergedSelections$;
17
+ /***************************************************************************
18
+ * *
19
+ * Static Builders *
20
+ * *
21
+ **************************************************************************/
22
+ static from(queryKey: string, includeSuffix: string, excludeSuffix: string): IncludeExcludeInputConverter;
23
+ /***************************************************************************
24
+ * *
25
+ * Constructors *
26
+ * *
27
+ **************************************************************************/
28
+ private constructor();
29
+ /***************************************************************************
30
+ * *
31
+ * Public API *
32
+ * *
33
+ **************************************************************************/
34
+ convertToValue(filters: Filter[]): InputValue;
35
+ convertToFilters(inputValue: InputValue): Filter[];
36
+ /***************************************************************************
37
+ * *
38
+ * Properties *
39
+ * *
40
+ **************************************************************************/
41
+ set selection(selection: Map<string, ElderChipFilterEntity>);
42
+ get mergedSelections$(): Observable<Map<string, ElderChipFilterEntity>>;
43
+ get includeQueryKey(): string;
44
+ get excludeQueryKey(): string;
45
+ /***************************************************************************
46
+ * *
47
+ * Private Methods *
48
+ * *
49
+ **************************************************************************/
50
+ private findValueOrDefault;
51
+ private convertFiltersToMap;
52
+ private flattenFilterValues;
53
+ private replaceEmptyArrayWithNull;
54
+ private validateArrayAndReturn;
55
+ private isIncluded;
56
+ private isExcluded;
57
+ private addAllSelections;
58
+ /***************************************************************************
59
+ * *
60
+ * Split *
61
+ * *
62
+ **************************************************************************/
63
+ /**
64
+ * If the filter before split is an empty array, include will be set to empty and exclude to null
65
+ * Else, an empty array will always be set to null
66
+ */
67
+ private buildFilters;
68
+ private buildSplitIncludeValues;
69
+ private buildSplitExcludeValues;
70
+ /***************************************************************************
71
+ * *
72
+ * Merge *
73
+ * *
74
+ **************************************************************************/
75
+ private mergeValues;
76
+ private buildMergeIncludeValues;
77
+ private buildMergeExcludeValues;
78
+ }
@@ -0,0 +1,16 @@
1
+ import { Filter } from '../../../../common/data/filters/filter';
2
+ import { InputValue } from '../domain/input/input-value';
3
+ export interface InputFilterConverter {
4
+ /**
5
+ * Convert the Input Value to one or more Filters.
6
+ * Multiple Filters are returned in special cases such as include/exclude.
7
+ * @param inputValue
8
+ */
9
+ convertToFilters(inputValue: InputValue): Filter[];
10
+ /**
11
+ * Pick the relevant filters and convert to the InputValue.
12
+ * Usually an Input consumes one filter, but advanced cases can consume more.
13
+ * @param filter
14
+ */
15
+ convertToValue(filter: Filter[]): InputValue;
16
+ }
@@ -1,8 +1,8 @@
1
- import { ElderAutocompleteComponent } from './elder-autocomplete.component';
1
+ import { ElderSuggestionPanelComponent } from './elder-suggestion-panel.component';
2
2
  export declare class ElderAutocompleteOptionSelected<T = any, TId = any> {
3
- readonly source: ElderAutocompleteComponent<T, TId>;
3
+ readonly source: ElderSuggestionPanelComponent<T, TId>;
4
4
  readonly entityId: TId;
5
5
  readonly entity: T;
6
6
  readonly optionValue: any;
7
- constructor(source: ElderAutocompleteComponent<T, TId>, entityId: TId, entity: T, optionValue: any);
7
+ constructor(source: ElderSuggestionPanelComponent<T, TId>, entityId: TId, entity: T, optionValue: any);
8
8
  }
@@ -1,19 +1,23 @@
1
- import { NgZone, TemplateRef } from '@angular/core';
1
+ import { DestroyRef, NgZone, TemplateRef } from '@angular/core';
2
2
  import { BehaviorSubject, Observable, Subject } from 'rxjs';
3
3
  import { IDataContext } from '../../../../common/data/data-context/data-context';
4
+ import { BooleanInput } from '@angular/cdk/coercion';
4
5
  import { DataContextStatus } from '../../../../common/data/data-context/data-context-status';
5
6
  import { MatAutocomplete, MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
6
7
  import { ElderAutocompleteOptionSelected } from './elder-autocomplete-option-selected';
8
+ import { IDataSource } from '../../../../common/data/datasource/data-source';
7
9
  import * as i0 from "@angular/core";
8
10
  type TextResolverFn = (value: any) => string;
9
- export declare class ElderAutocompleteComponent<T = any, TId = any> {
11
+ export declare class ElderSuggestionPanelComponent<T = any, TId = any> {
10
12
  private readonly zone;
13
+ private destroyRef;
11
14
  /***************************************************************************
12
15
  * *
13
16
  * Fields *
14
17
  * *
15
18
  **************************************************************************/
16
19
  private readonly logger;
20
+ private readonly PAGE_SIZE;
17
21
  /**
18
22
  * Is this auto-complete enabled?
19
23
  */
@@ -35,28 +39,32 @@ export declare class ElderAutocompleteComponent<T = any, TId = any> {
35
39
  * The DataContext which holds the autocomplete suggestions.
36
40
  */
37
41
  readonly dataContext$: BehaviorSubject<IDataContext<T>>;
42
+ readonly dataSource$: BehaviorSubject<IDataSource<T>>;
38
43
  readonly triggerReload$: Subject<any>;
39
44
  readonly displayPropertyResolver$: BehaviorSubject<TextResolverFn>;
40
45
  readonly dataState$: Observable<DataContextStatus>;
41
46
  readonly availableSuggestions$: Observable<T[]>;
42
47
  readonly optionSelected: Subject<ElderAutocompleteOptionSelected<any, any>>;
48
+ private readonly hiddenOptionsCount$;
43
49
  /***************************************************************************
44
50
  * *
45
51
  * Constructor *
46
52
  * *
47
53
  **************************************************************************/
48
- constructor(zone: NgZone);
54
+ constructor(zone: NgZone, destroyRef: DestroyRef);
49
55
  /***************************************************************************
50
56
  * *
51
57
  * Properties *
52
58
  * *
53
59
  **************************************************************************/
54
- set enabled(value: boolean);
60
+ set enabled(value: BooleanInput);
55
61
  get enabled(): boolean;
56
62
  set valueTemplate(template: TemplateRef<any>);
57
63
  get valueTemplate(): TemplateRef<any>;
58
64
  set dataContext(data: IDataContext<T>);
59
65
  get dataContext(): IDataContext<T>;
66
+ set dataSource(dataSource: IDataSource<T>);
67
+ get dataSource(): IDataSource<T>;
60
68
  set displayPropertyResolver(resolver: TextResolverFn);
61
69
  /***************************************************************************
62
70
  * *
@@ -71,6 +79,7 @@ export declare class ElderAutocompleteComponent<T = any, TId = any> {
71
79
  getId(value: T): TId;
72
80
  isOptionAvailable(option: T): boolean;
73
81
  isOptionVisible(option: T): boolean;
82
+ isOptionHidden(option: T): boolean;
74
83
  toOptionValue(option: T): any;
75
84
  /***************************************************************************
76
85
  * *
@@ -81,7 +90,9 @@ export declare class ElderAutocompleteComponent<T = any, TId = any> {
81
90
  * TODO Duplicate in elder-select
82
91
  */
83
92
  private propertyStringValue;
84
- static ɵfac: i0.ɵɵFactoryDeclaration<ElderAutocompleteComponent<any, any>, never>;
85
- static ɵcmp: i0.ɵɵComponentDeclaration<ElderAutocompleteComponent<any, any>, "elder-autocomplete", ["elderAutocomplete"], { "isOptionDisabledFn": { "alias": "isOptionDisabledFn"; "required": false; }; "isOptionHiddenFn": { "alias": "isOptionHiddenFn"; "required": false; }; "optionValueConverterFn": { "alias": "optionValueConverterFn"; "required": false; }; "enabled": { "alias": "enabled"; "required": false; }; "valueTemplate": { "alias": "valueTemplate"; "required": false; }; "dataContext": { "alias": "dataContext"; "required": false; }; "displayPropertyResolver": { "alias": "displayPropertyResolver"; "required": false; }; }, { "optionSelected": "optionSelected"; }, ["valueTemplateQuery"], never, true, never>;
93
+ private buildDataContextWithPageSize;
94
+ private calculatePageSize;
95
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderSuggestionPanelComponent<any, any>, never>;
96
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElderSuggestionPanelComponent<any, any>, "elder-suggestion-panel", ["elderSuggestionPanel"], { "isOptionDisabledFn": { "alias": "isOptionDisabledFn"; "required": false; }; "isOptionHiddenFn": { "alias": "isOptionHiddenFn"; "required": false; }; "optionValueConverterFn": { "alias": "optionValueConverterFn"; "required": false; }; "enabled": { "alias": "enabled"; "required": false; }; "valueTemplate": { "alias": "valueTemplate"; "required": false; }; "dataContext": { "alias": "dataContext"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; "displayPropertyResolver": { "alias": "displayPropertyResolver"; "required": false; }; }, { "optionSelected": "optionSelected"; }, ["valueTemplateQuery"], never, true, never>;
86
97
  }
87
98
  export {};
@@ -1,6 +1,6 @@
1
1
  import { ElementRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
- import { ElderAutocompleteComponent } from './elder-autocomplete/elder-autocomplete.component';
3
+ import { ElderSuggestionPanelComponent } from './elder-autocomplete/elder-suggestion-panel.component';
4
4
  import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
5
5
  import { Filter } from '../../../common/data/filters/filter';
6
6
  import { Sort } from '../../../common/data/sort';
@@ -41,8 +41,8 @@ export declare class ElderAutocompleteManyDirective<T> implements OnInit, OnDest
41
41
  * Properties *
42
42
  * *
43
43
  **************************************************************************/
44
- set autocomplete(auto: ElderAutocompleteComponent);
45
- get autocomplete(): ElderAutocompleteComponent;
44
+ set autocomplete(auto: ElderSuggestionPanelComponent);
45
+ get autocomplete(): ElderSuggestionPanelComponent;
46
46
  private get cursorPosition();
47
47
  private set cursorPosition(value);
48
48
  private get dataContext();