@elderbyte/ngx-starter 13.5.2 → 13.7.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 (245) hide show
  1. package/esm2020/lib/common/enums/elder-enum-translation.service.mjs +3 -3
  2. package/esm2020/lib/common/forms/form-field-base.component.mjs +3 -3
  3. package/esm2020/lib/common/forms/multi-model-base.component.mjs +3 -3
  4. package/esm2020/lib/common/forms/template-composite-control.mjs +3 -3
  5. package/esm2020/lib/common/forms/value-accessor-base.mjs +3 -3
  6. package/esm2020/lib/common/http/http-client-builder.service.mjs +3 -3
  7. package/esm2020/lib/common/http/http-client-pristine.mjs +3 -3
  8. package/esm2020/lib/common/http/transfer/data-transfer-factory.mjs +3 -3
  9. package/esm2020/lib/common/url/elder-url-fragment-params.service.mjs +3 -3
  10. package/esm2020/lib/common/utils/collection-util.mjs +4 -1
  11. package/esm2020/lib/components/access-denied/elder-access-denied.component.mjs +3 -3
  12. package/esm2020/lib/components/access-denied/elder-access-denied.module.mjs +4 -4
  13. package/esm2020/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +3 -3
  14. package/esm2020/lib/components/auditing/elder-audit.module.mjs +4 -4
  15. package/esm2020/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -3
  16. package/esm2020/lib/components/button-group/elder-button-group.module.mjs +4 -4
  17. package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +3 -3
  18. package/esm2020/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +3 -3
  19. package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +3 -3
  20. package/esm2020/lib/components/card-organizer/elder-card-organizer.module.mjs +4 -4
  21. package/esm2020/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -3
  22. package/esm2020/lib/components/cards/elder-card/elder-card.component.mjs +18 -18
  23. package/esm2020/lib/components/cards/elder-card/elder-card.module.mjs +4 -4
  24. package/esm2020/lib/components/connectivity/elder-connectivity.module.mjs +4 -4
  25. package/esm2020/lib/components/connectivity/elder-connectivity.service.mjs +3 -3
  26. package/esm2020/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +3 -3
  27. package/esm2020/lib/components/containers/elder-containers.module.mjs +4 -4
  28. package/esm2020/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +3 -3
  29. package/esm2020/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +3 -3
  30. package/esm2020/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +3 -3
  31. package/esm2020/lib/components/csv/elder-csv.module.mjs +4 -4
  32. package/esm2020/lib/components/currency/elder-currency.module.mjs +4 -4
  33. package/esm2020/lib/components/currency/elder-currency.pipe.mjs +3 -3
  34. package/esm2020/lib/components/data-transfer/elder-data-transfer.module.mjs +4 -4
  35. package/esm2020/lib/components/data-transfer/elder-data-transfer.service.mjs +3 -3
  36. package/esm2020/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +3 -3
  37. package/esm2020/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +3 -3
  38. package/esm2020/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
  39. package/esm2020/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +3 -3
  40. package/esm2020/lib/components/data-view/base/elder-data-view-base.mjs +3 -3
  41. package/esm2020/lib/components/data-view/base/elder-data-view-base.module.mjs +4 -4
  42. package/esm2020/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +3 -3
  43. package/esm2020/lib/components/data-view/common/elder-data-common.module.mjs +4 -4
  44. package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +6 -6
  45. package/esm2020/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +3 -3
  46. package/esm2020/lib/components/data-view/common/selection/data-context-selection.directive.mjs +3 -3
  47. package/esm2020/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +3 -3
  48. package/esm2020/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +9 -9
  49. package/esm2020/lib/components/data-view/grid/elder-grid.module.mjs +4 -4
  50. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +3 -3
  51. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +4 -4
  52. package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +3 -3
  53. package/esm2020/lib/components/data-view/table/elder-number-cell.directive.mjs +3 -3
  54. package/esm2020/lib/components/data-view/table/elder-paginator-intl.mjs +3 -3
  55. package/esm2020/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +3 -3
  56. package/esm2020/lib/components/data-view/table/elder-table/elder-table.component.mjs +3 -3
  57. package/esm2020/lib/components/data-view/table/elder-table-column.directive.mjs +3 -3
  58. package/esm2020/lib/components/data-view/table/elder-table-extension.directive.mjs +3 -3
  59. package/esm2020/lib/components/data-view/table/elder-table-root.directive.mjs +3 -3
  60. package/esm2020/lib/components/data-view/table/elder-table-row.directive.mjs +3 -3
  61. package/esm2020/lib/components/data-view/table/elder-table-sort.directive.mjs +3 -3
  62. package/esm2020/lib/components/data-view/table/elder-table.module.mjs +4 -4
  63. package/esm2020/lib/components/data-view/table/model/elder-table-model.mjs +3 -3
  64. package/esm2020/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +3 -3
  65. package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +7 -7
  66. package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +3 -3
  67. package/esm2020/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +3 -3
  68. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +3 -3
  69. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +3 -3
  70. package/esm2020/lib/components/errors/elder-error.module.mjs +4 -4
  71. package/esm2020/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +3 -3
  72. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +3 -3
  73. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +4 -4
  74. package/esm2020/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -3
  75. package/esm2020/lib/components/files/elder-file-drop-zone.directive.mjs +3 -3
  76. package/esm2020/lib/components/files/elder-file-select.directive.mjs +3 -3
  77. package/esm2020/lib/components/files/elder-file.module.mjs +4 -4
  78. package/esm2020/lib/components/files/file-select/file-select.component.mjs +3 -3
  79. package/esm2020/lib/components/files/file-upload/file-upload.component.mjs +3 -3
  80. package/esm2020/lib/components/forms/clipboard/elder-clipboard.service.mjs +3 -3
  81. package/esm2020/lib/components/forms/directives/elder-clipboard-put.directive.mjs +3 -3
  82. package/esm2020/lib/components/forms/directives/elder-delayed-focus.directive.mjs +3 -3
  83. package/esm2020/lib/components/forms/directives/elder-form-field-dense.directive.mjs +3 -3
  84. package/esm2020/lib/components/forms/directives/elder-form-field-label.directive.mjs +3 -3
  85. package/esm2020/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +3 -3
  86. package/esm2020/lib/components/forms/directives/elder-forms-directives.module.mjs +13 -13
  87. package/esm2020/lib/components/forms/directives/elder-key-event.directive.mjs +3 -3
  88. package/esm2020/lib/components/forms/directives/elder-max.directive.mjs +3 -3
  89. package/esm2020/lib/components/forms/directives/elder-min.directive.mjs +3 -3
  90. package/esm2020/lib/components/forms/directives/elder-next-focusable.directive.mjs +3 -3
  91. package/esm2020/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +3 -3
  92. package/esm2020/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +3 -3
  93. package/esm2020/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +3 -3
  94. package/esm2020/lib/components/forms/directives/elder-touched.directive.mjs +3 -3
  95. package/esm2020/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +3 -3
  96. package/esm2020/lib/components/forms/directives/validation/elder-multiple-of.validator.mjs +3 -3
  97. package/esm2020/lib/components/forms/directives/validation/elder-required-ignore-zero.validator.mjs +3 -3
  98. package/esm2020/lib/components/forms/elder-forms.module.mjs +4 -4
  99. package/esm2020/lib/components/forms/search/elder-search-context.directive.mjs +3 -3
  100. package/esm2020/lib/components/forms/search/elder-search-input.directive.mjs +3 -3
  101. package/esm2020/lib/components/forms/search/elder-search.module.mjs +4 -4
  102. package/esm2020/lib/components/forms/search/search-box/elder-search-box.component.mjs +3 -3
  103. package/esm2020/lib/components/forms/search/search-box/elder-search-panel.component.mjs +3 -3
  104. package/esm2020/lib/components/global-search/elder-global-search.component.mjs +3 -3
  105. package/esm2020/lib/components/global-search/elder-global-search.module.mjs +4 -4
  106. package/esm2020/lib/components/global-search/elder-global-search.service.mjs +3 -3
  107. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +3 -3
  108. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -4
  109. package/esm2020/lib/components/headers/elder-header/elder-header.component.mjs +3 -3
  110. package/esm2020/lib/components/headers/elder-header.module.mjs +4 -4
  111. package/esm2020/lib/components/http-support/elder-http-client.service.mjs +3 -3
  112. package/esm2020/lib/components/i18n/entities/elder-i18n-entities.module.mjs +4 -4
  113. package/esm2020/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +3 -3
  114. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +3 -3
  115. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +3 -3
  116. package/esm2020/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +3 -3
  117. package/esm2020/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +3 -3
  118. package/esm2020/lib/components/i18n/entities/elder-localized-texts.directive.mjs +3 -3
  119. package/esm2020/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +3 -3
  120. package/esm2020/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +3 -3
  121. package/esm2020/lib/components/i18n/entities/picker/localisation-picker.service.mjs +3 -3
  122. package/esm2020/lib/components/i18n/language/elder-language-interceptor.mjs +3 -3
  123. package/esm2020/lib/components/i18n/language/elder-language.module.mjs +4 -4
  124. package/esm2020/lib/components/i18n/language/elder-language.service.mjs +3 -3
  125. package/esm2020/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +3 -3
  126. package/esm2020/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +4 -4
  127. package/esm2020/lib/components/iframes/elder-iframe.module.mjs +4 -4
  128. package/esm2020/lib/components/iframes/iframe-close.directive.mjs +3 -3
  129. package/esm2020/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +3 -3
  130. package/esm2020/lib/components/iframes/iframe-host/iframe-host.component.mjs +3 -3
  131. package/esm2020/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +3 -3
  132. package/esm2020/lib/components/iframes/iframe.service.mjs +3 -3
  133. package/esm2020/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +3 -3
  134. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +3 -3
  135. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +7 -7
  136. package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +3 -3
  137. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +3 -3
  138. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.module.mjs +4 -4
  139. package/esm2020/lib/components/labels/elder-labels.module.mjs +4 -4
  140. package/esm2020/lib/components/labels/labels-input/labels-input.component.mjs +3 -3
  141. package/esm2020/lib/components/measures/dimensions-input/elder-dimensions-input.component.mjs +3 -3
  142. package/esm2020/lib/components/measures/directives/elder-unit-select.directive.mjs +3 -3
  143. package/esm2020/lib/components/measures/elder-measures.module.mjs +8 -8
  144. package/esm2020/lib/components/measures/elder-quantity-transform.pipe.mjs +3 -3
  145. package/esm2020/lib/components/measures/elder-quantity.pipe.mjs +3 -3
  146. package/esm2020/lib/components/measures/elder-unit.service.mjs +3 -3
  147. package/esm2020/lib/components/measures/quantity-input/elder-quantity-input.component.mjs +3 -3
  148. package/esm2020/lib/components/measures/util/elder-quantity.service.mjs +3 -3
  149. package/esm2020/lib/components/multi-autocomplete/elder-multi-auto-complete.module.mjs +4 -4
  150. package/esm2020/lib/components/multi-autocomplete/elder-multi-autocomplete.component.mjs +3 -3
  151. package/esm2020/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +3 -3
  152. package/esm2020/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +4 -4
  153. package/esm2020/lib/components/navigation/nav/elder-nav.module.mjs +4 -4
  154. package/esm2020/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +3 -3
  155. package/esm2020/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +3 -3
  156. package/esm2020/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -3
  157. package/esm2020/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +3 -3
  158. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.module.mjs +4 -4
  159. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.service.mjs +3 -3
  160. package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +3 -3
  161. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +3 -3
  162. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +3 -3
  163. package/esm2020/lib/components/overlays/elder-overlay-origin.directive.mjs +3 -3
  164. package/esm2020/lib/components/overlays/elder-overlay-trigger.directive.mjs +3 -3
  165. package/esm2020/lib/components/overlays/elder-overlay.component.mjs +3 -3
  166. package/esm2020/lib/components/overlays/elder-overlay.module.mjs +4 -4
  167. package/esm2020/lib/components/panels/card-panel/elder-card-panel.component.mjs +3 -3
  168. package/esm2020/lib/components/panels/elder-panel.module.mjs +4 -4
  169. package/esm2020/lib/components/panels/flat/elder-panel.component.mjs +3 -3
  170. package/esm2020/lib/components/select/auto-select-first.directive.mjs +126 -0
  171. package/esm2020/lib/components/select/elder-entity-value-accessor.mjs +12 -0
  172. package/esm2020/lib/components/select/elder-select/elder-select.component.mjs +109 -159
  173. package/esm2020/lib/components/select/elder-select-base.mjs +22 -10
  174. package/esm2020/lib/components/select/elder-select-chip.directive.mjs +3 -3
  175. package/esm2020/lib/components/select/elder-select-value.directive.mjs +3 -3
  176. package/esm2020/lib/components/select/elder-select.module.mjs +15 -9
  177. package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +102 -44
  178. package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +15 -15
  179. package/esm2020/lib/components/select/popup/selection-model-popup.directive.mjs +3 -3
  180. package/esm2020/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
  181. package/esm2020/lib/components/select/select-on-tab.directive.mjs +22 -11
  182. package/esm2020/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +3 -3
  183. package/esm2020/lib/components/select-chip-list/elder-chip-list-select.module.mjs +4 -4
  184. package/esm2020/lib/components/select-list/elder-select-list.module.mjs +4 -4
  185. package/esm2020/lib/components/select-list/select-list/elder-select-list.component.mjs +3 -3
  186. package/esm2020/lib/components/select-list/select-list-item/elder-select-list-item.component.mjs +3 -3
  187. package/esm2020/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +3 -3
  188. package/esm2020/lib/components/shell/drawers/elder-router-outlet.service.mjs +3 -3
  189. package/esm2020/lib/components/shell/elder-shell-slot.directive.mjs +3 -3
  190. package/esm2020/lib/components/shell/elder-shell.module.mjs +4 -4
  191. package/esm2020/lib/components/shell/elder-shell.service.mjs +3 -3
  192. package/esm2020/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +3 -3
  193. package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +12 -12
  194. package/esm2020/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +3 -3
  195. package/esm2020/lib/components/tabs/elder-tab/elder-tab.directive.mjs +3 -3
  196. package/esm2020/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +3 -3
  197. package/esm2020/lib/components/tabs/elder-tab.module.mjs +4 -4
  198. package/esm2020/lib/components/time/date-adapters/custom-date-adapter.mjs +3 -3
  199. package/esm2020/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +3 -3
  200. package/esm2020/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +3 -3
  201. package/esm2020/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +3 -3
  202. package/esm2020/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +3 -3
  203. package/esm2020/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +3 -3
  204. package/esm2020/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +3 -3
  205. package/esm2020/lib/components/time/elder-time.module.mjs +8 -8
  206. package/esm2020/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +3 -3
  207. package/esm2020/lib/components/toasts/elder-toast.module.mjs +4 -4
  208. package/esm2020/lib/components/toasts/elder-toast.service.mjs +9 -9
  209. package/esm2020/lib/components/toasts/standard-toast/standard-toast.component.mjs +3 -3
  210. package/esm2020/lib/components/url-fragment/elder-url-fragment.module.mjs +4 -4
  211. package/esm2020/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +3 -3
  212. package/esm2020/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +3 -3
  213. package/esm2020/lib/components/viewers/elder-viewers.module.mjs +4 -4
  214. package/esm2020/lib/features/event-source/elder-event-source.service.mjs +3 -3
  215. package/esm2020/lib/features/kafent/access-token-provider.mjs +3 -3
  216. package/esm2020/lib/features/kafent/kafent-config.mjs +3 -3
  217. package/esm2020/lib/features/kafent/kafent-event-stream.mjs +3 -3
  218. package/esm2020/lib/features/kafent/kafent-event.service.mjs +3 -3
  219. package/esm2020/lib/features/kafent/kafent.module.mjs +4 -4
  220. package/esm2020/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +3 -3
  221. package/esm2020/lib/pipes/bytes.pipe.mjs +3 -3
  222. package/esm2020/lib/pipes/elder-pipes.module.mjs +7 -7
  223. package/esm2020/lib/pipes/elder-repeat.pipe.mjs +3 -3
  224. package/esm2020/lib/pipes/elder-round.pipe.mjs +3 -3
  225. package/esm2020/lib/pipes/elder-safe-url.pipe.mjs +3 -3
  226. package/esm2020/lib/pipes/iso-duration.pipe.mjs +3 -3
  227. package/esm2020/lib/pipes/iso-interval-parse.pipe.mjs +3 -3
  228. package/esm2020/lib/pipes/iso-interval.pipe.mjs +3 -3
  229. package/esm2020/lib/pipes/time-ago.pipe.mjs +3 -3
  230. package/esm2020/lib/pipes/time-duration.pipe.mjs +3 -3
  231. package/esm2020/lib/pipes/weight.pipe.mjs +3 -3
  232. package/fesm2015/elderbyte-ngx-starter.mjs +1185 -1022
  233. package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
  234. package/fesm2020/elderbyte-ngx-starter.mjs +1185 -1020
  235. package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
  236. package/lib/common/utils/collection-util.d.ts +1 -0
  237. package/lib/components/select/auto-select-first.directive.d.ts +54 -0
  238. package/lib/components/select/elder-entity-value-accessor.d.ts +27 -0
  239. package/lib/components/select/elder-select/elder-select.component.d.ts +42 -48
  240. package/lib/components/select/elder-select-base.d.ts +21 -15
  241. package/lib/components/select/elder-select.module.d.ts +22 -20
  242. package/lib/components/select/multi/elder-multi-select-base.d.ts +29 -15
  243. package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +11 -11
  244. package/lib/components/select/select-on-tab.directive.d.ts +7 -6
  245. package/package.json +3 -3
@@ -31,4 +31,5 @@ export declare class CollectionUtil {
31
31
  * @param bSet
32
32
  */
33
33
  static equalSetDeep<T>(aSet: Set<T>, bSet: Set<T>): boolean;
34
+ static hasElements(list: any[]): boolean;
34
35
  }
@@ -0,0 +1,54 @@
1
+ import { AfterViewInit } from '@angular/core';
2
+ import { ElderSelectComponent } from './elder-select/elder-select.component';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AutoSelectFirstDirective<TEntity = any, TId = any> implements AfterViewInit {
5
+ readonly elderSelect: ElderSelectComponent<TEntity, TId, any>;
6
+ /***************************************************************************
7
+ * *
8
+ * Fields *
9
+ * *
10
+ **************************************************************************/
11
+ private readonly log;
12
+ private _enabled;
13
+ /***************************************************************************
14
+ * *
15
+ * Constructor *
16
+ * *
17
+ **************************************************************************/
18
+ constructor(elderSelect: ElderSelectComponent<TEntity, TId, any>);
19
+ /***************************************************************************
20
+ * *
21
+ * Life Cycle *
22
+ * *
23
+ **************************************************************************/
24
+ ngAfterViewInit(): void;
25
+ /***************************************************************************
26
+ * *
27
+ * Properties *
28
+ * *
29
+ **************************************************************************/
30
+ /**
31
+ * After data is loaded into this select, ensure that
32
+ * a value is selected or select the first automatically.
33
+ */
34
+ set autoSelectFirstEnabled(val: boolean | string);
35
+ set enabled(val: boolean);
36
+ get enabled(): boolean;
37
+ /***************************************************************************
38
+ * *
39
+ * Public methods *
40
+ * *
41
+ **************************************************************************/
42
+ trySelectFirst(): void;
43
+ /***************************************************************************
44
+ * *
45
+ * Private methods *
46
+ * *
47
+ **************************************************************************/
48
+ private handleAutoSelectFirst;
49
+ private firstItemInDataContextSoon;
50
+ private firstSuggestionItem;
51
+ private updateState;
52
+ static ɵfac: i0.ɵɵFactoryDeclaration<AutoSelectFirstDirective<any, any>, never>;
53
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AutoSelectFirstDirective<any, any>, "[autoSelectFirst]", never, { "autoSelectFirstEnabled": "autoSelectFirst"; }, {}, never>;
54
+ }
@@ -0,0 +1,27 @@
1
+ import { Observable } from 'rxjs';
2
+ export interface IElderEntityValueAccessor<TEntity, TId> {
3
+ /**
4
+ * Gets or sets the entity
5
+ */
6
+ entity: TEntity;
7
+ /**
8
+ * Gets or sets the entity id
9
+ */
10
+ entityId: TId;
11
+ /**
12
+ * Emits when the entity id has changed.
13
+ */
14
+ entityIdChange: Observable<TId>;
15
+ /**
16
+ * Emits when the entity has changed.
17
+ */
18
+ entityChange: Observable<TEntity>;
19
+ /**
20
+ * Update the control value by the given entity
21
+ * and emit a value-updated event which simulates
22
+ * a user action.
23
+ * @param entity
24
+ */
25
+ updateValueByEntity(entity: TEntity): void;
26
+ }
27
+ export declare function isElderEntityValueAccessor(object: any): object is IElderEntityValueAccessor<any, any>;
@@ -1,10 +1,11 @@
1
- import { AfterViewInit, Injector, NgZone, OnDestroy, OnInit } from '@angular/core';
1
+ import { NgZone, OnDestroy, OnInit } from '@angular/core';
2
2
  import { IDataContext } from '../../../common/data/data-context/data-context';
3
3
  import { Observable } from 'rxjs';
4
4
  import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
5
5
  import { ElderSelectBase, TextResolverFn } from '../elder-select-base';
6
+ import { IElderEntityValueAccessor } from '../elder-entity-value-accessor';
6
7
  import * as i0 from "@angular/core";
7
- declare class ValueContext<T> {
8
+ declare class EntityContext<T> {
8
9
  readonly value: T;
9
10
  readonly hintText: string;
10
11
  readonly displayText: string;
@@ -20,8 +21,7 @@ declare class ValueContext<T> {
20
21
  * - Support entity id handling, input / output is the entity id vs full value.
21
22
  *
22
23
  */
23
- export declare class ElderSelectComponent<T = any, TId = any> extends ElderSelectBase<TId, T, T> implements OnInit, OnDestroy, AfterViewInit {
24
- private readonly injector;
24
+ export declare class ElderSelectComponent<TEntity = any, TId = any, TValue = TEntity | TId> extends ElderSelectBase<TId, TEntity, TValue> implements IElderEntityValueAccessor<TEntity, TId>, OnInit, OnDestroy {
25
25
  /***************************************************************************
26
26
  * *
27
27
  * Fields *
@@ -34,29 +34,36 @@ export declare class ElderSelectComponent<T = any, TId = any> extends ElderSelec
34
34
  * String to display for the 'nothing' / null value.
35
35
  */
36
36
  nullDisplay: string;
37
- private _autoSelectFirst;
38
- readonly valueIdChange: Observable<TId>;
39
- private _valueId;
37
+ readonly entityIdChange: Observable<TId>;
38
+ readonly entityChange: Observable<TEntity>;
39
+ /**
40
+ * Similar to entity-id change, but emits only when the user
41
+ * has updated the value.
42
+ */
43
+ readonly entityIdUpdated: Observable<TId>;
44
+ /**
45
+ * Similar to entity change, but emits only when the user
46
+ * has updated the value.
47
+ */
48
+ readonly entityUpdated: Observable<TEntity>;
49
+ private readonly entity$;
40
50
  private _autocomplete;
41
- readonly valueWrapped$: Observable<ValueContext<T>>;
51
+ readonly entityWrapped$: Observable<EntityContext<TEntity>>;
42
52
  private readonly unsubscribe$;
43
53
  readonly inputText$: Observable<string>;
44
- private ngControl;
45
- private valueContext;
46
- private ngModelInitialized;
54
+ private entityContext;
47
55
  /***************************************************************************
48
56
  * *
49
57
  * Constructor *
50
58
  * *
51
59
  **************************************************************************/
52
- constructor(zone: NgZone, injector: Injector);
60
+ constructor(zone: NgZone);
53
61
  /***************************************************************************
54
62
  * *
55
63
  * Life Cycle *
56
64
  * *
57
65
  **************************************************************************/
58
66
  ngOnInit(): void;
59
- ngAfterViewInit(): void;
60
67
  ngOnDestroy(): void;
61
68
  /***************************************************************************
62
69
  * *
@@ -70,23 +77,15 @@ export declare class ElderSelectComponent<T = any, TId = any> extends ElderSelec
70
77
  */
71
78
  set allowNull(val: boolean);
72
79
  get allowNull(): boolean;
73
- /**
74
- * After data is loaded into this select, ensure that
75
- * a value is selected or select the first automatically.
76
- */
77
- set autoSelectFirst(val: boolean);
78
- get autoSelectFirst(): boolean;
79
80
  /***************************************************************************
80
81
  * *
81
82
  * Properties *
82
83
  * *
83
84
  **************************************************************************/
84
- /**
85
- * Select the value with the given id.
86
- * @param id
87
- */
88
- set valueId(id: TId);
89
- get valueId(): TId;
85
+ set entity(entity: TEntity);
86
+ get entity(): TEntity;
87
+ set entityId(id: TId);
88
+ get entityId(): TId;
90
89
  set hintProperty(property: string);
91
90
  set hintPropertyResolver(resolver: TextResolverFn);
92
91
  /***************************************************************************
@@ -95,23 +94,15 @@ export declare class ElderSelectComponent<T = any, TId = any> extends ElderSelec
95
94
  * *
96
95
  **************************************************************************/
97
96
  onInputBlur(event: FocusEvent): void;
98
- get isOptionDisabledInternalFn(): (option: T) => boolean;
99
- get isOptionHiddenInternalFn(): (option: T) => boolean;
97
+ get isOptionDisabledInternalFn(): (option: TEntity) => boolean;
98
+ get isOptionHiddenInternalFn(): (option: TEntity) => boolean;
100
99
  togglePanel(autoTrigger: MatAutocompleteTrigger): void;
101
100
  onInputClicked(autoTrigger: MatAutocompleteTrigger): void;
102
- onOptionSelected(selectedValue: T): void;
101
+ onOptionSelected(selectedValue: TEntity): void;
103
102
  openSelectionPopup(event: Event): void;
104
103
  clear(event: Event): void;
105
104
  forceReloadFirst(): void;
106
- /***************************************************************************
107
- * *
108
- * Private Methods (Auto Select First) *
109
- * *
110
- **************************************************************************/
111
- private handleAutoSelectFirst;
112
- private trySelectFirst;
113
- private firstItemInDataContextSoon;
114
- private firstSuggestionItem;
105
+ updateValueByEntity(entity: TEntity): void;
115
106
  /***************************************************************************
116
107
  * *
117
108
  * Abstract Implementation *
@@ -120,20 +111,24 @@ export declare class ElderSelectComponent<T = any, TId = any> extends ElderSelec
120
111
  /**
121
112
  * Occurs when the suggestions data-context has changed
122
113
  */
123
- protected onSuggestionsDcChanged(data: IDataContext<T>): void;
114
+ protected onSuggestionsDcChanged(data: IDataContext<TEntity>): void;
124
115
  /***************************************************************************
125
116
  * *
126
117
  * Private Methods *
127
118
  * *
128
119
  **************************************************************************/
129
- protected valuesEquals(a: T, b: T): boolean;
130
- private selectValueById;
120
+ protected valuesEquals(a: TValue, b: TValue): boolean;
121
+ private isEntitySelected;
122
+ private entityIdFromValue;
123
+ private selectEntityById;
131
124
  private loadEntityById;
132
- private writeValueInternalDelayed;
133
125
  private findInDataContext;
134
- protected writeToControl(value: T): void;
135
- private ensureExistingValueNgControl;
136
- private tryUpdateNgControl;
126
+ private entityToValue;
127
+ /**
128
+ * This method is invoked after a value has been written to this control.
129
+ *
130
+ */
131
+ protected writeToControl(value: TValue): void;
137
132
  /**
138
133
  * @description
139
134
  * Writes a new value to the element.
@@ -143,10 +138,9 @@ export declare class ElderSelectComponent<T = any, TId = any> extends ElderSelec
143
138
  *
144
139
  * @param value The new value for the element
145
140
  */
146
- writeValue(value: T): void;
141
+ writeValue(value: TValue): void;
147
142
  private isNullOrEmpty;
148
- private isNgModelInitializing;
149
- static ɵfac: i0.ɵɵFactoryDeclaration<ElderSelectComponent<any, any>, never>;
150
- static ɵcmp: i0.ɵɵComponentDeclaration<ElderSelectComponent<any, any>, "elder-select", never, { "nullDisplay": "nullDisplay"; "autocomplete": "autocomplete"; "allowNull": "allowNull"; "autoSelectFirst": "autoSelectFirst"; "valueId": "valueId"; "hintProperty": "hintProperty"; "hintPropertyResolver": "hintPropertyResolver"; }, { "valueIdChange": "valueIdChange"; }, never, never>;
143
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderSelectComponent<any, any, any>, never>;
144
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElderSelectComponent<any, any, any>, "elder-select", never, { "nullDisplay": "nullDisplay"; "autocomplete": "autocomplete"; "allowNull": "allowNull"; "entity": "entity"; "entityId": "entityId"; "hintProperty": "hintProperty"; "hintPropertyResolver": "hintPropertyResolver"; }, { "entityIdChange": "entityIdChange"; "entityChange": "entityChange"; "entityIdUpdated": "entityIdUpdated"; "entityUpdated": "entityUpdated"; }, never, never>;
151
145
  }
152
146
  export {};
@@ -27,8 +27,11 @@ export declare const ELDER_SELECT_BASE: InjectionToken<ElderSelectBase<any, any,
27
27
  *
28
28
  * - Suggestion-Model: A DataSource and derived DataContext for the (auto-complete) suggestions.
29
29
  *
30
+ * @param TID Entity Id Type
31
+ * @param T Entity Type
32
+ * @param TValue Value backing the control. Can be the entity, the id or something else.
30
33
  */
31
- export declare abstract class ElderSelectBase<TId, T, TValue = T> extends FormFieldBaseComponent<TValue> {
34
+ export declare abstract class ElderSelectBase<TId, TEntity, TValue> extends FormFieldBaseComponent<TValue> {
32
35
  private readonly zone;
33
36
  /***************************************************************************
34
37
  * *
@@ -37,6 +40,7 @@ export declare abstract class ElderSelectBase<TId, T, TValue = T> extends FormFi
37
40
  **************************************************************************/
38
41
  private readonly _logger;
39
42
  private readonly _filterContext;
43
+ private _valueAsId;
40
44
  /**
41
45
  * Define if elder-select should clean up the
42
46
  * data-context resources for you.
@@ -47,7 +51,7 @@ export declare abstract class ElderSelectBase<TId, T, TValue = T> extends FormFi
47
51
  cleanUp: boolean;
48
52
  readonly displayPropertyResolver$: BehaviorSubject<TextResolverFn>;
49
53
  /** Underlying data context. */
50
- readonly suggestionsDc$: BehaviorSubject<IDataContext<T>>;
54
+ readonly suggestionsDc$: BehaviorSubject<IDataContext<TEntity>>;
51
55
  /**
52
56
  * Page size. (Used for infinite scrolling chunks)
53
57
  */
@@ -60,8 +64,8 @@ export declare abstract class ElderSelectBase<TId, T, TValue = T> extends FormFi
60
64
  valueTemplateQuery: TemplateRef<any>;
61
65
  private _valueTemplate;
62
66
  selectionPopup: SelectionModelPopupDirective;
63
- isOptionDisabledFn: (option: T) => boolean;
64
- isOptionHiddenFn: (option: T) => boolean;
67
+ isOptionDisabledFn: (option: TEntity) => boolean;
68
+ isOptionHiddenFn: (option: TEntity) => boolean;
65
69
  readonly state$: BehaviorSubject<ElderSelectComponentState>;
66
70
  readonly mergedState$: Observable<ElderSelectComponentState>;
67
71
  /***************************************************************************
@@ -75,6 +79,8 @@ export declare abstract class ElderSelectBase<TId, T, TValue = T> extends FormFi
75
79
  * Properties *
76
80
  * *
77
81
  **************************************************************************/
82
+ set valueAsId(valueAsId: boolean);
83
+ get valueAsId(): boolean;
78
84
  /**
79
85
  * The property used to display the values.
80
86
  */
@@ -82,10 +88,10 @@ export declare abstract class ElderSelectBase<TId, T, TValue = T> extends FormFi
82
88
  set displayPropertyResolver(resolver: TextResolverFn);
83
89
  set filters(filters: Filter[]);
84
90
  get filters(): Filter[];
85
- set dataSource(source: IDataSource<T>);
86
- set data(data: Array<T> | IDataContext<T>);
87
- set suggestionsDc(data: IDataContext<T>);
88
- get suggestionsDc(): IDataContext<T>;
91
+ set dataSource(source: IDataSource<TEntity>);
92
+ set data(data: Array<TEntity> | IDataContext<TEntity>);
93
+ set suggestionsDc(data: IDataContext<TEntity>);
94
+ get suggestionsDc(): IDataContext<TEntity>;
89
95
  set valueTemplate(template: TemplateRef<any>);
90
96
  get valueTemplate(): TemplateRef<any>;
91
97
  /***************************************************************************
@@ -97,6 +103,7 @@ export declare abstract class ElderSelectBase<TId, T, TValue = T> extends FormFi
97
103
  updateFilters(updatedFilters?: Filter[]): void;
98
104
  replaceFilters(newFilters?: Filter[]): void;
99
105
  clearFilters(): void;
106
+ updateState(state: ElderSelectComponentState): void;
100
107
  /***************************************************************************
101
108
  * *
102
109
  * Abstract API *
@@ -105,21 +112,20 @@ export declare abstract class ElderSelectBase<TId, T, TValue = T> extends FormFi
105
112
  /**
106
113
  * Occurs when the suggestions data-context has changed
107
114
  */
108
- protected abstract onSuggestionsDcChanged(data: IDataContext<T>): void;
115
+ protected abstract onSuggestionsDcChanged(data: IDataContext<TEntity>): void;
109
116
  /***************************************************************************
110
117
  * *
111
118
  * Internal API *
112
119
  * *
113
120
  **************************************************************************/
114
- protected getValueId(value: T): TId;
115
- protected isEqual(a: T, b: T): boolean;
116
- protected isEmpty(a: T): boolean;
117
- protected updateState(state: ElderSelectComponentState): void;
121
+ protected getEntityId(entity: TEntity): TId;
122
+ protected isEqual(a: TEntity, b: TEntity): boolean;
123
+ protected isEmpty(a: TEntity): boolean;
118
124
  /**
119
125
  * Performs clean up of the current data context if auto clean up is enabled.
120
126
  */
121
127
  protected autoCleanUp(): void;
122
- protected propertyStringValue(value: T, property: string): string | null;
128
+ protected propertyStringValue(value: TEntity, property: string): string | null;
123
129
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderSelectBase<any, any, any>, never>;
124
- static ɵdir: i0.ɵɵDirectiveDeclaration<ElderSelectBase<any, any, any>, never, never, { "cleanUp": "cleanUp"; "pageSize": "pageSize"; "queryFilter": "queryFilter"; "sorts": "sorts"; "isOptionDisabledFn": "isOptionDisabledFn"; "isOptionHiddenFn": "isOptionHiddenFn"; "displayProperty": "displayProperty"; "displayPropertyResolver": "displayPropertyResolver"; "filters": "filters"; "dataSource": "dataSource"; "data": "data"; "valueTemplate": "valueTemplate"; }, {}, ["valueTemplateQuery", "selectionPopup"]>;
130
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ElderSelectBase<any, any, any>, never, never, { "cleanUp": "cleanUp"; "pageSize": "pageSize"; "queryFilter": "queryFilter"; "sorts": "sorts"; "isOptionDisabledFn": "isOptionDisabledFn"; "isOptionHiddenFn": "isOptionHiddenFn"; "valueAsId": "valueAsId"; "displayProperty": "displayProperty"; "displayPropertyResolver": "displayPropertyResolver"; "filters": "filters"; "dataSource": "dataSource"; "data": "data"; "valueTemplate": "valueTemplate"; }, {}, ["valueTemplateQuery", "selectionPopup"]>;
125
131
  }
@@ -6,25 +6,26 @@ import * as i4 from "./popup/selection-model-popup.directive";
6
6
  import * as i5 from "./select-on-tab.directive";
7
7
  import * as i6 from "./multi/elder-multi-select-chips/elder-multi-select-chips.component";
8
8
  import * as i7 from "./elder-select-chip.directive";
9
- import * as i8 from "@angular/common";
10
- import * as i9 from "@angular/forms";
11
- import * as i10 from "@angular/material/form-field";
12
- import * as i11 from "@angular/material/icon";
13
- import * as i12 from "@angular/material/select";
14
- import * as i13 from "@angular/material/dialog";
15
- import * as i14 from "@angular/material/button";
16
- import * as i15 from "@angular/material/input";
17
- import * as i16 from "@angular/material/autocomplete";
18
- import * as i17 from "@angular/material/toolbar";
19
- import * as i18 from "@angular/material/progress-bar";
20
- import * as i19 from "@angular/material/progress-spinner";
21
- import * as i20 from "@angular/flex-layout";
22
- import * as i21 from "@ngx-translate/core";
23
- import * as i22 from "../forms/directives/elder-forms-directives.module";
24
- import * as i23 from "../data-view/table/elder-table.module";
25
- import * as i24 from "../infinitescroll/elder-infinite-scroll.module";
26
- import * as i25 from "../input/autocomplete/elder-autocomplete.module";
27
- import * as i26 from "@angular/material/chips";
9
+ import * as i8 from "./auto-select-first.directive";
10
+ import * as i9 from "@angular/common";
11
+ import * as i10 from "@angular/forms";
12
+ import * as i11 from "@angular/material/form-field";
13
+ import * as i12 from "@angular/material/icon";
14
+ import * as i13 from "@angular/material/select";
15
+ import * as i14 from "@angular/material/dialog";
16
+ import * as i15 from "@angular/material/button";
17
+ import * as i16 from "@angular/material/input";
18
+ import * as i17 from "@angular/material/autocomplete";
19
+ import * as i18 from "@angular/material/toolbar";
20
+ import * as i19 from "@angular/material/progress-bar";
21
+ import * as i20 from "@angular/material/progress-spinner";
22
+ import * as i21 from "@angular/flex-layout";
23
+ import * as i22 from "@ngx-translate/core";
24
+ import * as i23 from "../forms/directives/elder-forms-directives.module";
25
+ import * as i24 from "../data-view/table/elder-table.module";
26
+ import * as i25 from "../infinitescroll/elder-infinite-scroll.module";
27
+ import * as i26 from "../input/autocomplete/elder-autocomplete.module";
28
+ import * as i27 from "@angular/material/chips";
28
29
  export { ElderSelectValueDirective } from './elder-select-value.directive';
29
30
  export { ElderSelectChipDirective } from './elder-select-chip.directive';
30
31
  export { SelectOnTabDirective } from './select-on-tab.directive';
@@ -33,8 +34,9 @@ export { TemplatedSelectionDialogComponent, ISelectionModelDialogOptions } from
33
34
  export { SelectionModelPopupDirective, ElderDataViewSelectionMode } from './popup/selection-model-popup.directive';
34
35
  export { ElderMultiSelectBase } from './multi/elder-multi-select-base';
35
36
  export { ElderMultiSelectChipsComponent } from './multi/elder-multi-select-chips/elder-multi-select-chips.component';
37
+ export { AutoSelectFirstDirective } from './auto-select-first.directive';
36
38
  export declare class ElderSelectModule {
37
39
  static ɵfac: i0.ɵɵFactoryDeclaration<ElderSelectModule, never>;
38
- static ɵmod: i0.ɵɵNgModuleDeclaration<ElderSelectModule, [typeof i1.ElderSelectComponent, typeof i2.ElderSelectValueDirective, typeof i3.TemplatedSelectionDialogComponent, typeof i4.SelectionModelPopupDirective, typeof i5.SelectOnTabDirective, typeof i6.ElderMultiSelectChipsComponent, typeof i7.ElderSelectChipDirective], [typeof i8.CommonModule, typeof i9.FormsModule, typeof i9.ReactiveFormsModule, typeof i10.MatFormFieldModule, typeof i11.MatIconModule, typeof i12.MatSelectModule, typeof i13.MatDialogModule, typeof i14.MatButtonModule, typeof i15.MatInputModule, typeof i16.MatAutocompleteModule, typeof i17.MatToolbarModule, typeof i18.MatProgressBarModule, typeof i19.MatProgressSpinnerModule, typeof i20.FlexModule, typeof i21.TranslateModule, typeof i22.ElderFormsDirectivesModule, typeof i23.ElderTableModule, typeof i24.ElderInfiniteScrollModule, typeof i25.ElderAutocompleteModule, typeof i26.MatChipsModule], [typeof i1.ElderSelectComponent, typeof i2.ElderSelectValueDirective, typeof i3.TemplatedSelectionDialogComponent, typeof i4.SelectionModelPopupDirective, typeof i6.ElderMultiSelectChipsComponent, typeof i7.ElderSelectChipDirective]>;
40
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ElderSelectModule, [typeof i1.ElderSelectComponent, typeof i2.ElderSelectValueDirective, typeof i3.TemplatedSelectionDialogComponent, typeof i4.SelectionModelPopupDirective, typeof i5.SelectOnTabDirective, typeof i6.ElderMultiSelectChipsComponent, typeof i7.ElderSelectChipDirective, typeof i8.AutoSelectFirstDirective], [typeof i9.CommonModule, typeof i10.FormsModule, typeof i10.ReactiveFormsModule, typeof i11.MatFormFieldModule, typeof i12.MatIconModule, typeof i13.MatSelectModule, typeof i14.MatDialogModule, typeof i15.MatButtonModule, typeof i16.MatInputModule, typeof i17.MatAutocompleteModule, typeof i18.MatToolbarModule, typeof i19.MatProgressBarModule, typeof i20.MatProgressSpinnerModule, typeof i21.FlexModule, typeof i22.TranslateModule, typeof i23.ElderFormsDirectivesModule, typeof i24.ElderTableModule, typeof i25.ElderInfiniteScrollModule, typeof i26.ElderAutocompleteModule, typeof i27.MatChipsModule], [typeof i1.ElderSelectComponent, typeof i2.ElderSelectValueDirective, typeof i3.TemplatedSelectionDialogComponent, typeof i4.SelectionModelPopupDirective, typeof i6.ElderMultiSelectChipsComponent, typeof i7.ElderSelectChipDirective, typeof i8.AutoSelectFirstDirective]>;
39
41
  static ɵinj: i0.ɵɵInjectorDeclaration<ElderSelectModule>;
40
42
  }
@@ -1,7 +1,7 @@
1
1
  import { NgZone } from '@angular/core';
2
2
  import { ElderSelectBase } from '../elder-select-base';
3
3
  import { IDataContext } from '../../../common/data/data-context/data-context';
4
- import { Observable } from 'rxjs';
4
+ import { BehaviorSubject, Observable } from 'rxjs';
5
5
  import * as i0 from "@angular/core";
6
6
  /**
7
7
  * Base component implementation of elder-multi-select.
@@ -12,15 +12,15 @@ import * as i0 from "@angular/core";
12
12
  * - The backing Value is a list of the current selected entities. T[]
13
13
  *
14
14
  */
15
- export declare abstract class ElderMultiSelectBase<TId, T> extends ElderSelectBase<TId, T, T[]> {
15
+ export declare abstract class ElderMultiSelectBase<TId, TEntity, TValue> extends ElderSelectBase<TId, TEntity, TValue[]> {
16
16
  /***************************************************************************
17
17
  * *
18
18
  * Fields *
19
19
  * *
20
20
  **************************************************************************/
21
21
  private readonly logger;
22
- private _valueIds;
23
- readonly valueIdsChange: Observable<TId[]>;
22
+ protected readonly entities$: BehaviorSubject<TEntity[]>;
23
+ readonly entityIdsChange: Observable<TId[]>;
24
24
  /***************************************************************************
25
25
  * *
26
26
  * Constructor *
@@ -32,28 +32,42 @@ export declare abstract class ElderMultiSelectBase<TId, T> extends ElderSelectBa
32
32
  * Properties *
33
33
  * *
34
34
  **************************************************************************/
35
- /**
36
- * Select the value with the given id.
37
- * @param ids
38
- */
39
- set valueIds(ids: TId[]);
40
- get valueIds(): TId[];
35
+ set entities(entities: TEntity[]);
36
+ get entities(): TEntity[];
37
+ set entityIds(ids: TId[]);
38
+ get entityIds(): TId[];
39
+ /***************************************************************************
40
+ * *
41
+ * Public API *
42
+ * *
43
+ **************************************************************************/
44
+ updateValueByEntities(entities: TEntity[]): void;
41
45
  /***************************************************************************
42
46
  * *
43
47
  * Internal Methods *
44
48
  * *
45
49
  **************************************************************************/
46
- protected onSuggestionsDcChanged(data: IDataContext<T>): void;
50
+ protected onSuggestionsDcChanged(data: IDataContext<TEntity>): void;
51
+ /**
52
+ * This method is invoked after a value has been written to this control.
53
+ *
54
+ */
55
+ protected writeToControl(value: TValue[]): void;
47
56
  /***************************************************************************
48
57
  * *
49
58
  * Private Methods *
50
59
  * *
51
60
  **************************************************************************/
52
- private getValueIds;
61
+ private entityIdsFromValues;
62
+ private entityIdFromValue;
63
+ private entitiesToValues;
64
+ private entityToValue;
65
+ private getEntityIds;
53
66
  private equalIds;
54
- private selectValuesByIds;
67
+ private equalEntities;
68
+ private selectEntitiesByIds;
55
69
  private loadEntityByIds;
56
70
  private findInDataContext;
57
- static ɵfac: i0.ɵɵFactoryDeclaration<ElderMultiSelectBase<any, any>, never>;
58
- static ɵdir: i0.ɵɵDirectiveDeclaration<ElderMultiSelectBase<any, any>, never, never, { "valueIds": "valueIds"; }, { "valueIdsChange": "valueIdsChange"; }, never>;
71
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderMultiSelectBase<any, any, any>, never>;
72
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ElderMultiSelectBase<any, any, any>, never, never, { "entities": "entities"; "entityIds": "entityIds"; }, { "entityIdsChange": "entityIdsChange"; }, never>;
59
73
  }
@@ -3,21 +3,21 @@ import { ElderMultiSelectBase } from '../elder-multi-select-base';
3
3
  import { Observable } from 'rxjs';
4
4
  import { ThemePalette } from '@angular/material/core/common-behaviors/color';
5
5
  import * as i0 from "@angular/core";
6
- declare class ValueChip<T> {
6
+ declare class SelectChip<T> {
7
7
  readonly value: T;
8
8
  readonly displayText: string;
9
9
  readonly color: ThemePalette;
10
10
  readonly removeable: boolean;
11
11
  constructor(value: T, displayText: string, color: ThemePalette, removeable: boolean);
12
12
  }
13
- export declare class ElderMultiSelectChipsComponent<TId, T> extends ElderMultiSelectBase<TId, T> implements OnInit {
13
+ export declare class ElderMultiSelectChipsComponent<TId = any, TEntity = any, TValue = any> extends ElderMultiSelectBase<TId, TEntity, TValue> implements OnInit {
14
14
  /***************************************************************************
15
15
  * *
16
16
  * Fields *
17
17
  * *
18
18
  **************************************************************************/
19
19
  private readonly log;
20
- readonly valuesWrapped$: Observable<ValueChip<T>[]>;
20
+ readonly selectChips$: Observable<SelectChip<TEntity>[]>;
21
21
  private readonly chipColorResolver$;
22
22
  selectable: boolean;
23
23
  allowRemove: boolean;
@@ -47,18 +47,18 @@ export declare class ElderMultiSelectChipsComponent<TId, T> extends ElderMultiSe
47
47
  * A function which returns the color of a given label object.
48
48
  */
49
49
  set chipColorResolver(fn: (o1: any) => ThemePalette);
50
- get isOptionDisabledInternalFn(): (option: T) => boolean;
51
- get isOptionHiddenInternalFn(): (option: T) => boolean;
50
+ get isOptionDisabledInternalFn(): (option: TEntity) => boolean;
51
+ get isOptionHiddenInternalFn(): (option: TEntity) => boolean;
52
52
  /***************************************************************************
53
53
  * *
54
54
  * Public API *
55
55
  * *
56
56
  **************************************************************************/
57
- onOptionSelected(selectedValue: T): void;
58
- addLabels(labels: T[]): void;
57
+ onOptionSelected(selectedValue: TEntity): void;
58
+ addLabels(labels: TEntity[]): void;
59
59
  addLabel(label: any): void;
60
- removeLabel(toRemove: T): void;
61
- replaceWith(labels: T[]): void;
60
+ removeLabel(toRemove: TEntity): void;
61
+ replaceWith(entities: TEntity[]): void;
62
62
  /***************************************************************************
63
63
  * *
64
64
  * Private methods *
@@ -66,7 +66,7 @@ export declare class ElderMultiSelectChipsComponent<TId, T> extends ElderMultiSe
66
66
  **************************************************************************/
67
67
  private isAlreadyPresent;
68
68
  private resetInput;
69
- static ɵfac: i0.ɵɵFactoryDeclaration<ElderMultiSelectChipsComponent<any, any>, never>;
70
- static ɵcmp: i0.ɵɵComponentDeclaration<ElderMultiSelectChipsComponent<any, any>, "elder-multi-select-chips", never, { "allowRemove": "allowRemove"; "chipTemplate": "chipTemplate"; "chipColorResolver": "chipColorResolver"; }, {}, ["chipTemplateQuery"], never>;
69
+ static ɵfac: i0.ɵɵFactoryDeclaration<ElderMultiSelectChipsComponent<any, any, any>, never>;
70
+ static ɵcmp: i0.ɵɵComponentDeclaration<ElderMultiSelectChipsComponent<any, any, any>, "elder-multi-select-chips", never, { "allowRemove": "allowRemove"; "chipTemplate": "chipTemplate"; "chipColorResolver": "chipColorResolver"; }, {}, ["chipTemplateQuery"], never>;
71
71
  }
72
72
  export {};
@@ -2,7 +2,7 @@ import { AfterViewInit, OnDestroy } from '@angular/core';
2
2
  import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
3
3
  import { ElderSelectBase } from './elder-select-base';
4
4
  import * as i0 from "@angular/core";
5
- export declare class SelectOnTabDirective implements AfterViewInit, OnDestroy {
5
+ export declare class SelectOnTabDirective<TEntity = any, TId = any> implements AfterViewInit, OnDestroy {
6
6
  private readonly autoTrigger;
7
7
  /***************************************************************************
8
8
  * *
@@ -13,11 +13,11 @@ export declare class SelectOnTabDirective implements AfterViewInit, OnDestroy {
13
13
  private readonly destroy$;
14
14
  private readonly controlValueAccessor;
15
15
  /**
16
- * Whether or not the autocomplete panel was open before the event
16
+ * Whether the autocomplete panel was open before the event
17
17
  */
18
18
  private panelOpen;
19
19
  /**
20
- * Whether or not the user selected an option.
20
+ * Whether the user selected an option.
21
21
  * (We want to ignore selections if there is already a selection present and the user tabs away)
22
22
  */
23
23
  private userInput;
@@ -26,13 +26,14 @@ export declare class SelectOnTabDirective implements AfterViewInit, OnDestroy {
26
26
  * Constructor *
27
27
  * *
28
28
  **************************************************************************/
29
- constructor(autoTrigger: MatAutocompleteTrigger, elderSelectBase: ElderSelectBase<any, any>);
29
+ constructor(autoTrigger: MatAutocompleteTrigger, elderSelectBase: ElderSelectBase<any, any, any>);
30
30
  /***************************************************************************
31
31
  * *
32
32
  * Event Listener *
33
33
  * *
34
34
  **************************************************************************/
35
35
  onBlur(): void;
36
+ private updateValueByEntity;
36
37
  /***************************************************************************
37
38
  * *
38
39
  * Life Cycle *
@@ -40,6 +41,6 @@ export declare class SelectOnTabDirective implements AfterViewInit, OnDestroy {
40
41
  **************************************************************************/
41
42
  ngAfterViewInit(): void;
42
43
  ngOnDestroy(): void;
43
- static ɵfac: i0.ɵɵFactoryDeclaration<SelectOnTabDirective, [null, { skipSelf: true; }]>;
44
- static ɵdir: i0.ɵɵDirectiveDeclaration<SelectOnTabDirective, "[elderSelectOnTab]", never, {}, {}, never>;
44
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectOnTabDirective<any, any>, [null, { skipSelf: true; }]>;
45
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SelectOnTabDirective<any, any>, "[elderSelectOnTab]", never, {}, {}, never>;
45
46
  }