@elderbyte/ngx-starter 18.3.0 → 18.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/esm2022/lib/common/data/datasource/local/local-list-data-source.mjs +5 -3
  2. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +3 -3
  3. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +3 -3
  4. package/esm2022/lib/common/forms/elder-from-field-base.mjs +3 -3
  5. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +3 -3
  6. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +3 -3
  7. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +3 -3
  8. package/esm2022/lib/common/forms/form-field-base.component.mjs +3 -3
  9. package/esm2022/lib/common/forms/multi-model-base.component.mjs +3 -3
  10. package/esm2022/lib/common/forms/template-composite-control.mjs +3 -3
  11. package/esm2022/lib/common/forms/value-accessor-base.mjs +3 -3
  12. package/esm2022/lib/common/http/http-client-builder.service.mjs +3 -3
  13. package/esm2022/lib/common/http/http-client-pristine.mjs +3 -3
  14. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +3 -3
  15. package/esm2022/lib/common/objects.mjs +4 -2
  16. package/esm2022/lib/common/url/elder-router.service.mjs +3 -3
  17. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +3 -3
  18. package/esm2022/lib/common/utils/sort-util.mjs +13 -1
  19. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +3 -3
  20. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +4 -4
  21. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +3 -3
  22. package/esm2022/lib/components/auditing/elder-audit.module.mjs +4 -4
  23. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +10 -10
  24. package/esm2022/lib/components/badge/elder-badge.directive.mjs +3 -3
  25. package/esm2022/lib/components/badge/elder-badge.module.mjs +4 -4
  26. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -3
  27. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +4 -4
  28. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +3 -3
  29. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +3 -3
  30. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +4 -4
  31. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +4 -4
  32. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -3
  33. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +18 -18
  34. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +4 -4
  35. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +3 -3
  36. package/esm2022/lib/components/chips/elder-chips.module.mjs +4 -4
  37. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +4 -4
  38. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +3 -3
  39. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +3 -3
  40. package/esm2022/lib/components/containers/elder-containers.module.mjs +4 -4
  41. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +3 -3
  42. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +3 -3
  43. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +3 -3
  44. package/esm2022/lib/components/csv/elder-csv.module.mjs +4 -4
  45. package/esm2022/lib/components/currency/elder-currency.module.mjs +4 -4
  46. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +3 -3
  47. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +4 -4
  48. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +3 -3
  49. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +3 -3
  50. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +3 -3
  51. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
  52. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +3 -3
  53. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +3 -3
  54. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-context.mjs +30 -0
  55. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-dc.directive.mjs +57 -0
  56. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort.mjs +69 -0
  57. package/esm2022/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.mjs +87 -0
  58. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +3 -3
  59. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +19 -5
  60. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +6 -6
  61. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +3 -3
  62. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +3 -3
  63. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +3 -3
  64. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +19 -19
  65. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +4 -4
  66. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +3 -3
  67. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +3 -3
  68. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +3 -3
  69. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +3 -3
  70. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +4 -4
  71. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +3 -3
  72. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +3 -3
  73. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +3 -3
  74. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +4 -4
  75. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +3 -3
  76. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +3 -3
  77. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +3 -3
  78. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +3 -3
  79. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +3 -3
  80. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +4 -4
  81. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +3 -3
  82. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +3 -3
  83. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +3 -3
  84. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +3 -3
  85. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +3 -3
  86. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +4 -4
  87. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +3 -3
  88. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +3 -3
  89. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +4 -4
  90. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +3 -3
  91. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +3 -3
  92. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +3 -3
  93. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +3 -3
  94. package/esm2022/lib/components/errors/elder-error.module.mjs +4 -4
  95. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +3 -3
  96. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +3 -3
  97. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +4 -4
  98. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -3
  99. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +3 -3
  100. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +3 -3
  101. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +3 -3
  102. package/esm2022/lib/components/files/elder-file-select.directive.mjs +3 -3
  103. package/esm2022/lib/components/files/elder-file.module.mjs +4 -4
  104. package/esm2022/lib/components/files/file-select/file-select.component.mjs +3 -3
  105. package/esm2022/lib/components/files/file-system-api.mjs +7 -3
  106. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +3 -3
  107. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +3 -3
  108. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +3 -3
  109. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +3 -3
  110. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +3 -3
  111. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +3 -3
  112. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +3 -3
  113. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +3 -3
  114. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +3 -3
  115. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +4 -4
  116. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +3 -3
  117. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +3 -3
  118. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +3 -3
  119. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +3 -3
  120. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +3 -3
  121. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +3 -3
  122. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +3 -3
  123. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +3 -3
  124. package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +3 -3
  125. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +3 -3
  126. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +3 -3
  127. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +3 -3
  128. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +3 -3
  129. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +3 -3
  130. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +3 -3
  131. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +3 -3
  132. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +3 -3
  133. package/esm2022/lib/components/forms/elder-forms.module.mjs +4 -4
  134. package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +3 -3
  135. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +3 -3
  136. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +3 -3
  137. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +3 -3
  138. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +3 -3
  139. package/esm2022/lib/components/forms/search/elder-search.module.mjs +4 -4
  140. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +3 -3
  141. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +3 -3
  142. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +3 -3
  143. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +4 -4
  144. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +3 -3
  145. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +3 -3
  146. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -4
  147. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +3 -3
  148. package/esm2022/lib/components/headers/elder-header.module.mjs +4 -4
  149. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +3 -3
  150. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +4 -4
  151. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +3 -3
  152. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +3 -3
  153. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +3 -3
  154. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +4 -4
  155. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +3 -3
  156. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +3 -3
  157. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +3 -3
  158. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +3 -3
  159. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +3 -3
  160. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +3 -3
  161. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +4 -4
  162. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +3 -3
  163. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +3 -3
  164. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +4 -4
  165. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +3 -3
  166. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +3 -3
  167. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +4 -4
  168. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +3 -3
  169. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +3 -3
  170. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +3 -3
  171. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +3 -3
  172. package/esm2022/lib/components/iframes/iframe.service.mjs +3 -3
  173. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +3 -3
  174. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +4 -4
  175. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +4 -4
  176. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +6 -6
  177. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +3 -3
  178. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +3 -3
  179. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +4 -4
  180. package/esm2022/lib/components/labels/elder-labels.module.mjs +4 -4
  181. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +3 -3
  182. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +3 -3
  183. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +3 -3
  184. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +3 -3
  185. package/esm2022/lib/components/measures/elder-measures.module.mjs +8 -8
  186. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +3 -3
  187. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +4 -4
  188. package/esm2022/lib/components/measures/elder-unit.service.mjs +3 -3
  189. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +3 -3
  190. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +3 -3
  191. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +3 -3
  192. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +3 -3
  193. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +4 -4
  194. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +3 -3
  195. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +4 -4
  196. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +4 -4
  197. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +3 -3
  198. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +3 -3
  199. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -3
  200. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +3 -3
  201. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +4 -4
  202. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +3 -3
  203. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +3 -3
  204. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +3 -3
  205. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +3 -3
  206. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +3 -3
  207. package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +3 -3
  208. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +3 -3
  209. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +3 -3
  210. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +4 -4
  211. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +3 -3
  212. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +3 -3
  213. package/esm2022/lib/components/panels/elder-panel.module.mjs +4 -4
  214. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +3 -3
  215. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +3 -3
  216. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +9 -9
  217. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +3 -3
  218. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +4 -4
  219. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +3 -3
  220. package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +3 -3
  221. package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +3 -3
  222. package/esm2022/lib/components/select/elder-select-base.mjs +7 -5
  223. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +9 -9
  224. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +3 -3
  225. package/esm2022/lib/components/select/elder-select-value.directive.mjs +3 -3
  226. package/esm2022/lib/components/select/elder-select.module.mjs +4 -4
  227. package/esm2022/lib/components/select/filter/elder-chips-include-exclude.directive.mjs +3 -3
  228. package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +3 -3
  229. package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +3 -3
  230. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +3 -3
  231. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +3 -3
  232. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +5 -5
  233. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +3 -3
  234. package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +3 -3
  235. package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +3 -3
  236. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +3 -3
  237. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +3 -3
  238. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
  239. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +3 -3
  240. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +3 -3
  241. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +3 -3
  242. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +3 -3
  243. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +4 -4
  244. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +3 -3
  245. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +3 -3
  246. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +3 -3
  247. package/esm2022/lib/components/shell/elder-shell.module.mjs +4 -4
  248. package/esm2022/lib/components/shell/elder-shell.service.mjs +3 -3
  249. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +3 -3
  250. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +12 -12
  251. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +3 -3
  252. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +3 -3
  253. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +3 -3
  254. package/esm2022/lib/components/tabs/elder-tab.module.mjs +4 -4
  255. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +3 -3
  256. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +3 -3
  257. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +3 -3
  258. package/esm2022/lib/components/theme/elder-theme.directive.mjs +3 -3
  259. package/esm2022/lib/components/theme/elder-theme.module.mjs +4 -4
  260. package/esm2022/lib/components/theme/elder-theme.service.mjs +3 -3
  261. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +3 -3
  262. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +3 -3
  263. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +3 -3
  264. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +3 -3
  265. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +3 -3
  266. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +4 -4
  267. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +3 -3
  268. package/esm2022/lib/components/time/elder-time.module.mjs +4 -4
  269. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +3 -3
  270. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +3 -3
  271. package/esm2022/lib/components/toasts/elder-toast.module.mjs +4 -4
  272. package/esm2022/lib/components/toasts/elder-toast.service.mjs +3 -3
  273. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +3 -3
  274. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +4 -4
  275. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +3 -3
  276. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +3 -3
  277. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +4 -4
  278. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +3 -3
  279. package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +3 -3
  280. package/esm2022/lib/features/kafent/access-token-provider.mjs +3 -3
  281. package/esm2022/lib/features/kafent/kafent-config.mjs +3 -3
  282. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +3 -3
  283. package/esm2022/lib/features/kafent/kafent-event.service.mjs +3 -3
  284. package/esm2022/lib/features/kafent/kafent.module.mjs +4 -4
  285. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +3 -3
  286. package/esm2022/lib/pipes/bytes.pipe.mjs +3 -3
  287. package/esm2022/lib/pipes/elder-pipes.module.mjs +10 -10
  288. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +3 -3
  289. package/esm2022/lib/pipes/elder-round.pipe.mjs +3 -3
  290. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +3 -3
  291. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +3 -3
  292. package/esm2022/lib/pipes/iso-duration.pipe.mjs +3 -3
  293. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +3 -3
  294. package/esm2022/lib/pipes/iso-interval.pipe.mjs +3 -3
  295. package/esm2022/lib/pipes/time-ago.pipe.mjs +3 -3
  296. package/esm2022/lib/pipes/time-duration.pipe.mjs +3 -3
  297. package/esm2022/lib/pipes/weight.pipe.mjs +3 -3
  298. package/fesm2022/elderbyte-ngx-starter.mjs +1278 -1030
  299. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  300. package/lib/common/utils/sort-util.d.ts +3 -1
  301. package/lib/components/data-view/common/composite-sort/composite-sort-context.d.ts +18 -0
  302. package/lib/components/data-view/common/composite-sort/composite-sort-dc.directive.d.ts +31 -0
  303. package/lib/components/data-view/common/composite-sort/composite-sort.d.ts +40 -0
  304. package/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.d.ts +35 -0
  305. package/lib/components/data-view/common/elder-data-common.module.d.ts +9 -4
  306. package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +4 -4
  307. package/lib/components/data-view/table/elder-table/elder-table.component.d.ts +1 -1
  308. package/lib/components/infinitescroll/elder-infinite-scroll.directive.d.ts +1 -1
  309. package/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.d.ts +1 -1
  310. package/lib/components/measures/elder-quantity.pipe.d.ts +1 -1
  311. package/lib/components/measures/util/elder-quantity.service.d.ts +1 -1
  312. package/package.json +1 -1
  313. package/src/lib/components/chips/_elder-chip-theme.scss +0 -1
  314. package/src/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.scss +0 -0
  315. package/src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.scss +0 -1
  316. package/theming/_elder-mdc-support.scss +2 -3
@@ -0,0 +1,30 @@
1
+ import { CompositeSort } from './composite-sort';
2
+ export class CompositeSortContext {
3
+ static build(availableSorts) {
4
+ const availableSortMap = new Map();
5
+ availableSorts.forEach(availableSort => {
6
+ availableSortMap.set(availableSort.concatId, availableSort);
7
+ });
8
+ return new CompositeSortContext(availableSortMap);
9
+ }
10
+ /***************************************************************************
11
+ * *
12
+ * Constructor *
13
+ * *
14
+ **************************************************************************/
15
+ constructor(availableSortMap) {
16
+ this.availableSortMap = availableSortMap;
17
+ }
18
+ /***************************************************************************
19
+ * *
20
+ * API *
21
+ * *
22
+ **************************************************************************/
23
+ guessBest(sorts) {
24
+ if (sorts) {
25
+ return this.availableSortMap.get(CompositeSort.concatSortId(sorts));
26
+ }
27
+ return undefined;
28
+ }
29
+ }
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLXNvcnQtY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L2NvbW1vbi9jb21wb3NpdGUtc29ydC9jb21wb3NpdGUtc29ydC1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUcvQyxNQUFNLE9BQU8sb0JBQW9CO0lBRXhCLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBK0I7UUFDakQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztRQUMxRCxjQUFjLENBQUMsT0FBTyxDQUNwQixhQUFhLENBQUMsRUFBRTtZQUNkLGdCQUFnQixDQUFDLEdBQUcsQ0FDbEIsYUFBYSxDQUFDLFFBQVEsRUFDdEIsYUFBYSxDQUNkLENBQUM7UUFDSixDQUFDLENBQ0YsQ0FBQztRQUNGLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFHRDs7OztnRkFJNEU7SUFFNUUsWUFDbUIsZ0JBQTRDO1FBQTVDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBNEI7SUFFL0QsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxTQUFTLENBQ2QsS0FBYTtRQUViLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQzlCLGFBQWEsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQ2xDLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb3NpdGVTb3J0fSBmcm9tICcuL2NvbXBvc2l0ZS1zb3J0JztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvc29ydCc7XG5cbmV4cG9ydCBjbGFzcyBDb21wb3NpdGVTb3J0Q29udGV4dCB7XG5cbiAgcHVibGljIHN0YXRpYyBidWlsZChhdmFpbGFibGVTb3J0czogQ29tcG9zaXRlU29ydFtdKTogQ29tcG9zaXRlU29ydENvbnRleHQge1xuICAgIGNvbnN0IGF2YWlsYWJsZVNvcnRNYXAgPSBuZXcgTWFwPHN0cmluZywgQ29tcG9zaXRlU29ydD4oKTtcbiAgICBhdmFpbGFibGVTb3J0cy5mb3JFYWNoKFxuICAgICAgYXZhaWxhYmxlU29ydCA9PiB7XG4gICAgICAgIGF2YWlsYWJsZVNvcnRNYXAuc2V0KFxuICAgICAgICAgIGF2YWlsYWJsZVNvcnQuY29uY2F0SWQsXG4gICAgICAgICAgYXZhaWxhYmxlU29ydFxuICAgICAgICApO1xuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIG5ldyBDb21wb3NpdGVTb3J0Q29udGV4dChhdmFpbGFibGVTb3J0TWFwKTtcbiAgfVxuXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF2YWlsYWJsZVNvcnRNYXA6IE1hcDxzdHJpbmcsIENvbXBvc2l0ZVNvcnQ+XG4gICkge1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGd1ZXNzQmVzdChcbiAgICBzb3J0czogU29ydFtdXG4gICk6IENvbXBvc2l0ZVNvcnQgfCB1bmRlZmluZWQge1xuICAgIGlmIChzb3J0cykge1xuICAgICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlU29ydE1hcC5nZXQoXG4gICAgICAgIENvbXBvc2l0ZVNvcnQuY29uY2F0U29ydElkKHNvcnRzKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,57 @@
1
+ import { Directive, input } from '@angular/core';
2
+ import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
3
+ import { filter, switchMap } from 'rxjs/operators';
4
+ import { LoggerFactory } from '@elderbyte/ts-logger';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./elder-composite-sort/elder-composite-sort.component";
7
+ export class ElderCompositeSortDcDirective {
8
+ /***************************************************************************
9
+ * *
10
+ * Constructor *
11
+ * *
12
+ **************************************************************************/
13
+ constructor(compositeSort) {
14
+ this.compositeSort = compositeSort;
15
+ /***************************************************************************
16
+ * *
17
+ * Fields *
18
+ * *
19
+ **************************************************************************/
20
+ this.log = LoggerFactory.getLogger(this.constructor.name);
21
+ this.elderCompositeSortDc = input();
22
+ compositeSort.sortsChange
23
+ .subscribe(sorts => this.applySortToDataContext(sorts));
24
+ this.controlSorts$ = toObservable(this.elderCompositeSortDc)
25
+ .pipe(takeUntilDestroyed(), filter(dc => !!dc), switchMap(dc => dc.sort.sorts));
26
+ }
27
+ ngOnInit() {
28
+ this.controlSorts$.subscribe({
29
+ next: sorts => this.writeSortToControl(sorts),
30
+ });
31
+ }
32
+ /***************************************************************************
33
+ * *
34
+ * Private methods *
35
+ * *
36
+ **************************************************************************/
37
+ writeSortToControl(sorts) {
38
+ // this.log.warn('Writing DC Sorts to CompositeSort Control', sorts);
39
+ this.compositeSort.sorts.set(sorts);
40
+ }
41
+ applySortToDataContext(sorts) {
42
+ const dc = this.elderCompositeSortDc();
43
+ if (dc) {
44
+ dc.sort.replaceSorts(sorts);
45
+ }
46
+ }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderCompositeSortDcDirective, deps: [{ token: i1.ElderCompositeSortComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
48
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.4", type: ElderCompositeSortDcDirective, isStandalone: true, selector: "[elderCompositeSortDc]", inputs: { elderCompositeSortDc: { classPropertyName: "elderCompositeSortDc", publicName: "elderCompositeSortDc", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderCompositeSortDcDirective, decorators: [{
51
+ type: Directive,
52
+ args: [{
53
+ selector: '[elderCompositeSortDc]',
54
+ standalone: true
55
+ }]
56
+ }], ctorParameters: () => [{ type: i1.ElderCompositeSortComponent }] });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLXNvcnQtZGMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvY29tbW9uL2NvbXBvc2l0ZS1zb3J0L2NvbXBvc2l0ZS1zb3J0LWRjLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUkvRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsWUFBWSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFDLE1BQU0sRUFBTyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7OztBQU9uRCxNQUFNLE9BQU8sNkJBQTZCO0lBWXhDOzs7O2dGQUk0RTtJQUU1RSxZQUNtQixhQUEwQztRQUExQyxrQkFBYSxHQUFiLGFBQWEsQ0FBNkI7UUFqQjdEOzs7O29GQUk0RTtRQUUzRCxRQUFHLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9ELHlCQUFvQixHQUFHLEtBQUssRUFBcUIsQ0FBQztRQVl2RCxhQUFhLENBQUMsV0FBVzthQUN0QixTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUM7YUFDekQsSUFBSSxDQUNILGtCQUFrQixFQUFFLEVBQ3BCLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDbEIsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FDL0IsQ0FBQztJQUNOLENBQUM7SUFFTSxRQUFRO1FBRWIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7WUFDekIsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztTQUM5QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUg7Ozs7Z0ZBSTRFO0lBRXBFLGtCQUFrQixDQUFDLEtBQWE7UUFDdEMscUVBQXFFO1FBQ3JFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRU8sc0JBQXNCLENBQUMsS0FBYTtRQUMxQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUN2QyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7OEdBdkRVLDZCQUE2QjtrR0FBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBlZmZlY3QsIGlucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJRGF0YUNvbnRleHR9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtTb3J0fSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9zb3J0JztcbmltcG9ydCB7RWxkZXJDb21wb3NpdGVTb3J0Q29tcG9uZW50fSBmcm9tICcuL2VsZGVyLWNvbXBvc2l0ZS1zb3J0L2VsZGVyLWNvbXBvc2l0ZS1zb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge2ZpbHRlciwgbWFwLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyQ29tcG9zaXRlU29ydERjXScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJDb21wb3NpdGVTb3J0RGNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcbiAgcHVibGljIGVsZGVyQ29tcG9zaXRlU29ydERjID0gaW5wdXQ8SURhdGFDb250ZXh0PGFueT4+KCk7XG4gIHByaXZhdGUgY29udHJvbFNvcnRzJDogT2JzZXJ2YWJsZTxTb3J0W10+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tcG9zaXRlU29ydDogRWxkZXJDb21wb3NpdGVTb3J0Q29tcG9uZW50XG4gICkge1xuICAgIGNvbXBvc2l0ZVNvcnQuc29ydHNDaGFuZ2VcbiAgICAgIC5zdWJzY3JpYmUoc29ydHMgPT4gdGhpcy5hcHBseVNvcnRUb0RhdGFDb250ZXh0KHNvcnRzKSk7XG5cbiAgICB0aGlzLmNvbnRyb2xTb3J0cyQgPSB0b09ic2VydmFibGUodGhpcy5lbGRlckNvbXBvc2l0ZVNvcnREYylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgICAgZmlsdGVyKGRjID0+ICEhZGMpLFxuICAgICAgICBzd2l0Y2hNYXAoZGMgPT4gZGMuc29ydC5zb3J0cylcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICB0aGlzLmNvbnRyb2xTb3J0cyQuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogc29ydHMgPT4gdGhpcy53cml0ZVNvcnRUb0NvbnRyb2woc29ydHMpLFxuICAgICAgfSk7XG4gICAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgd3JpdGVTb3J0VG9Db250cm9sKHNvcnRzOiBTb3J0W10pOiB2b2lke1xuICAgIC8vIHRoaXMubG9nLndhcm4oJ1dyaXRpbmcgREMgU29ydHMgdG8gQ29tcG9zaXRlU29ydCBDb250cm9sJywgc29ydHMpO1xuICAgIHRoaXMuY29tcG9zaXRlU29ydC5zb3J0cy5zZXQoc29ydHMpXG4gIH1cblxuICBwcml2YXRlIGFwcGx5U29ydFRvRGF0YUNvbnRleHQoc29ydHM6IFNvcnRbXSk6IHZvaWQge1xuICAgIGNvbnN0IGRjID0gdGhpcy5lbGRlckNvbXBvc2l0ZVNvcnREYygpO1xuICAgIGlmIChkYykge1xuICAgICAgZGMuc29ydC5yZXBsYWNlU29ydHMoc29ydHMpO1xuICAgIH1cbiAgfVxuXG5cbn1cbiJdfQ==
@@ -0,0 +1,69 @@
1
+ import { Sort } from '../../../../common/data/sort';
2
+ import { SortUtil } from '../../../../common/utils/sort-util';
3
+ export class CompositeSort {
4
+ /***************************************************************************
5
+ * *
6
+ * Static Builder *
7
+ * *
8
+ **************************************************************************/
9
+ static { this.NONE = new CompositeSort('', []); }
10
+ static singleAsc(prop) {
11
+ return CompositeSort.single(new Sort(prop, 'asc'));
12
+ }
13
+ static single(sort) {
14
+ return new CompositeSort(sort.prop, [sort]);
15
+ }
16
+ static composite(id, sorts) {
17
+ return new CompositeSort(id, sorts);
18
+ }
19
+ static concatSortId(sorts) {
20
+ return sorts.map(sort => sort.prop).join('-');
21
+ }
22
+ static coerce(availableSorts) {
23
+ if (availableSorts && availableSorts.length > 0) {
24
+ if (availableSorts[0] instanceof CompositeSort) {
25
+ return availableSorts;
26
+ }
27
+ else {
28
+ return availableSorts
29
+ .map(s => CompositeSort.singleAsc(s));
30
+ }
31
+ }
32
+ else {
33
+ return [];
34
+ }
35
+ }
36
+ /***************************************************************************
37
+ * *
38
+ * Constructor *
39
+ * *
40
+ **************************************************************************/
41
+ constructor(id, sorts) {
42
+ this.id = id;
43
+ this.sorts = sorts;
44
+ this.concatId = CompositeSort.concatSortId(sorts);
45
+ }
46
+ /***************************************************************************
47
+ * *
48
+ * API *
49
+ * *
50
+ **************************************************************************/
51
+ sortsForDir(desiredDir) {
52
+ if (this.needsToggle(desiredDir)) {
53
+ return this.sorts.map(sort => SortUtil.toggleSort(sort));
54
+ }
55
+ else {
56
+ return [...this.sorts];
57
+ }
58
+ }
59
+ /***************************************************************************
60
+ * *
61
+ * Private methods *
62
+ * *
63
+ **************************************************************************/
64
+ needsToggle(desiredDir) {
65
+ // We consider only the first sort dir, the others follow suit.
66
+ return !(this.sorts.length == 0 || this.sorts[0].dir === desiredDir);
67
+ }
68
+ }
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLXNvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9jb21tb24vY29tcG9zaXRlLXNvcnQvY29tcG9zaXRlLXNvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBZ0IsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFNUQsTUFBTSxPQUFPLGFBQWE7SUFFeEI7Ozs7Z0ZBSTRFO2FBRTlELFNBQUksR0FBRyxJQUFJLGFBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFeEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFVO1FBQzdCLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBVSxFQUFFLEtBQWE7UUFDL0MsT0FBTyxJQUFJLGFBQWEsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBYTtRQUN0QyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQTBDO1FBQzdELElBQUksY0FBYyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEQsSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksYUFBYSxFQUFFLENBQUM7Z0JBQy9DLE9BQU8sY0FBaUMsQ0FBQztZQUMzQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBUSxjQUEyQjtxQkFDaEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7SUFVRDs7OztnRkFJNEU7SUFFNUUsWUFDa0IsRUFBVSxFQUNWLEtBQWE7UUFEYixPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUU3QixJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxXQUFXLENBQUMsVUFBeUI7UUFDMUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVwRSxXQUFXLENBQ2pCLFVBQXlCO1FBRXpCLCtEQUErRDtRQUMvRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssVUFBVSxDQUFDLENBQUM7SUFDdkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U29ydCwgU29ydERpcmVjdGlvbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvc29ydCc7XG5pbXBvcnQge1NvcnRVdGlsfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdXRpbHMvc29ydC11dGlsJztcblxuZXhwb3J0IGNsYXNzIENvbXBvc2l0ZVNvcnQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBTdGF0aWMgQnVpbGRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBzdGF0aWMgTk9ORSA9IG5ldyBDb21wb3NpdGVTb3J0KCcnLCBbXSk7XG5cbiAgcHVibGljIHN0YXRpYyBzaW5nbGVBc2MocHJvcDogc3RyaW5nKTogQ29tcG9zaXRlU29ydCB7XG4gICAgcmV0dXJuIENvbXBvc2l0ZVNvcnQuc2luZ2xlKG5ldyBTb3J0KHByb3AsICdhc2MnKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHNpbmdsZShzb3J0OiBTb3J0KTogQ29tcG9zaXRlU29ydCB7XG4gICAgcmV0dXJuIG5ldyBDb21wb3NpdGVTb3J0KHNvcnQucHJvcCwgW3NvcnRdKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY29tcG9zaXRlKGlkOiBzdHJpbmcsIHNvcnRzOiBTb3J0W10pOiBDb21wb3NpdGVTb3J0IHtcbiAgICByZXR1cm4gbmV3IENvbXBvc2l0ZVNvcnQoaWQsIHNvcnRzKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY29uY2F0U29ydElkKHNvcnRzOiBTb3J0W10pOiBzdHJpbmcge1xuICAgIHJldHVybiBzb3J0cy5tYXAoc29ydCA9PiBzb3J0LnByb3ApLmpvaW4oJy0nKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY29lcmNlKGF2YWlsYWJsZVNvcnRzOiBzdHJpbmdbXSB8IENvbXBvc2l0ZVNvcnRbXSk6IENvbXBvc2l0ZVNvcnRbXSB7XG4gICAgaWYgKGF2YWlsYWJsZVNvcnRzICYmIGF2YWlsYWJsZVNvcnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmIChhdmFpbGFibGVTb3J0c1swXSBpbnN0YW5jZW9mIENvbXBvc2l0ZVNvcnQpIHtcbiAgICAgICAgcmV0dXJuIGF2YWlsYWJsZVNvcnRzIGFzIENvbXBvc2l0ZVNvcnRbXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAoYXZhaWxhYmxlU29ydHMgYXMgc3RyaW5nW10pXG4gICAgICAgICAgLm1hcChzID0+IENvbXBvc2l0ZVNvcnQuc2luZ2xlQXNjKHMpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyByZWFkb25seSBjb25jYXRJZDogc3RyaW5nO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBzb3J0czogU29ydFtdXG4gICkge1xuICAgIHRoaXMuY29uY2F0SWQgPSBDb21wb3NpdGVTb3J0LmNvbmNhdFNvcnRJZChzb3J0cyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc29ydHNGb3JEaXIoZGVzaXJlZERpcjogU29ydERpcmVjdGlvbik6IFNvcnRbXSB7XG4gICAgaWYgKHRoaXMubmVlZHNUb2dnbGUoZGVzaXJlZERpcikpIHtcbiAgICAgIHJldHVybiB0aGlzLnNvcnRzLm1hcChzb3J0ID0+IFNvcnRVdGlsLnRvZ2dsZVNvcnQoc29ydCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gWy4uLnRoaXMuc29ydHNdO1xuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgbmVlZHNUb2dnbGUoXG4gICAgZGVzaXJlZERpcjogU29ydERpcmVjdGlvblxuICApOiBib29sZWFuIHtcbiAgICAvLyBXZSBjb25zaWRlciBvbmx5IHRoZSBmaXJzdCBzb3J0IGRpciwgdGhlIG90aGVycyBmb2xsb3cgc3VpdC5cbiAgICByZXR1cm4gISh0aGlzLnNvcnRzLmxlbmd0aCA9PSAwIHx8IHRoaXMuc29ydHNbMF0uZGlyID09PSBkZXNpcmVkRGlyKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,87 @@
1
+ import { ChangeDetectionStrategy, Component, computed, effect, input, model, output, signal } from '@angular/core';
2
+ import { CompositeSort } from '../composite-sort';
3
+ import { MatButton, MatIconButton } from '@angular/material/button';
4
+ import { MatIcon } from '@angular/material/icon';
5
+ import { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';
6
+ import { TranslateModule } from '@ngx-translate/core';
7
+ import { CompositeSortContext } from '../composite-sort-context';
8
+ import { SortUtil } from '../../../../../common/utils/sort-util';
9
+ import { LoggerFactory } from '@elderbyte/ts-logger';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@ngx-translate/core";
12
+ export class ElderCompositeSortComponent {
13
+ /***************************************************************************
14
+ * *
15
+ * Constructor *
16
+ * *
17
+ **************************************************************************/
18
+ constructor() {
19
+ /***************************************************************************
20
+ * *
21
+ * Fields *
22
+ * *
23
+ **************************************************************************/
24
+ this.log = LoggerFactory.getLogger(this.constructor.name);
25
+ this.selectedSort = signal(CompositeSort.NONE);
26
+ this.selectedSortDirection = signal('asc');
27
+ this.activeSorts = computed(() => {
28
+ const desiredDir = this.selectedSortDirection() ?? 'asc';
29
+ if (this.selectedSort()) {
30
+ // this.log.warn('selectedSort: ', this.selectedSort());
31
+ return this.selectedSort().sortsForDir(desiredDir);
32
+ }
33
+ else {
34
+ return [];
35
+ }
36
+ });
37
+ this.availableSorts = input.required();
38
+ this.availableSortCtx = computed(() => CompositeSortContext.build(this.availableSorts()));
39
+ this.sorts = model([]);
40
+ this.sortsChange = output();
41
+ this.translationPrefix = input();
42
+ effect(() => {
43
+ const activeSorts = this.activeSorts();
44
+ if (activeSorts && activeSorts.length > 0) {
45
+ this.sortsChange.emit(activeSorts);
46
+ }
47
+ });
48
+ effect(() => {
49
+ const availableCtx = this.availableSortCtx();
50
+ const sorts = this.sorts();
51
+ const best = availableCtx.guessBest(sorts);
52
+ if (best) {
53
+ this.selectedSort.set(best);
54
+ this.selectedSortDirection.set(sorts[0]?.dir ?? 'asc');
55
+ }
56
+ }, {
57
+ allowSignalWrites: true
58
+ });
59
+ }
60
+ /***************************************************************************
61
+ * *
62
+ * API *
63
+ * *
64
+ **************************************************************************/
65
+ selectSort(namedSort) {
66
+ this.selectedSort.set(namedSort);
67
+ }
68
+ toggleSortDirection(event) {
69
+ event.stopPropagation();
70
+ this.selectedSortDirection.set(SortUtil.toggleDir(this.selectedSortDirection()));
71
+ }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderCompositeSortComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.4", type: ElderCompositeSortComponent, isStandalone: true, selector: "elder-composite-sort", inputs: { availableSorts: { classPropertyName: "availableSorts", publicName: "availableSorts", isSignal: true, isRequired: true, transformFunction: null }, sorts: { classPropertyName: "sorts", publicName: "sorts", isSignal: true, isRequired: false, transformFunction: null }, translationPrefix: { classPropertyName: "translationPrefix", publicName: "translationPrefix", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sorts: "sortsChange", sortsChange: "sortsChange" }, ngImport: i0, template: "<div class=\"layout-row place-start-center flex-none\">\n\n <button mat-button type=\"button\" [matMenuTriggerFor]=\"menu\">\n\n {{ translationPrefix() + selectedSort().id | translate}}\n\n <mat-icon style=\"font-size: 22px\">sort</mat-icon>\n\n <mat-menu #menu=\"matMenu\">\n @for (namedSort of availableSorts(); track namedSort.id) {\n <button mat-menu-item type=\"button\"\n (click)=\"selectSort(namedSort)\"\n >\n <mat-icon>sort</mat-icon>\n <span [class.mat-body-strong]=\"selectedSort()?.id === namedSort.id\">{{translationPrefix() + namedSort.id | translate}}</span>\n </button>\n }\n </mat-menu>\n\n </button>\n\n <button mat-icon-button type=\"button\" (click)=\"toggleSortDirection($event)\">\n <mat-icon style=\"font-size: 22px\">{{selectedSortDirection() === 'asc' ? 'arrow_downward' : 'arrow_upward'}}</mat-icon>\n </button>\n\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderCompositeSortComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'elder-composite-sort', standalone: true, imports: [
78
+ MatButton,
79
+ MatIcon,
80
+ MatIconButton,
81
+ MatMenu,
82
+ MatMenuItem,
83
+ TranslateModule,
84
+ MatMenuTrigger
85
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-row place-start-center flex-none\">\n\n <button mat-button type=\"button\" [matMenuTriggerFor]=\"menu\">\n\n {{ translationPrefix() + selectedSort().id | translate}}\n\n <mat-icon style=\"font-size: 22px\">sort</mat-icon>\n\n <mat-menu #menu=\"matMenu\">\n @for (namedSort of availableSorts(); track namedSort.id) {\n <button mat-menu-item type=\"button\"\n (click)=\"selectSort(namedSort)\"\n >\n <mat-icon>sort</mat-icon>\n <span [class.mat-body-strong]=\"selectedSort()?.id === namedSort.id\">{{translationPrefix() + namedSort.id | translate}}</span>\n </button>\n }\n </mat-menu>\n\n </button>\n\n <button mat-icon-button type=\"button\" (click)=\"toggleSortDirection($event)\">\n <mat-icon style=\"font-size: 22px\">{{selectedSortDirection() === 'asc' ? 'arrow_downward' : 'arrow_upward'}}</mat-icon>\n </button>\n\n</div>\n" }]
86
+ }], ctorParameters: () => [] });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItY29tcG9zaXRlLXNvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvY29tbW9uL2NvbXBvc2l0ZS1zb3J0L2VsZGVyLWNvbXBvc2l0ZS1zb3J0L2VsZGVyLWNvbXBvc2l0ZS1zb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L2NvbW1vbi9jb21wb3NpdGUtc29ydC9lbGRlci1jb21wb3NpdGUtc29ydC9lbGRlci1jb21wb3NpdGUtc29ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLEtBQUssRUFBRSxLQUFLLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDNUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7OztBQWtCbkQsTUFBTSxPQUFPLDJCQUEyQjtJQWlDdEM7Ozs7Z0ZBSTRFO0lBRTVFO1FBckNBOzs7O29GQUk0RTtRQUMzRCxRQUFHLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRELGlCQUFZLEdBQUcsTUFBTSxDQUFnQixhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekQsMEJBQXFCLEdBQUcsTUFBTSxDQUFnQixLQUFLLENBQUMsQ0FBQztRQUVyRCxnQkFBVyxHQUFHLFFBQVEsQ0FDcEMsR0FBRyxFQUFFO1lBQ0gsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLElBQUksS0FBSyxDQUFDO1lBQ3pELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7Z0JBQ3hCLHdEQUF3RDtnQkFDeEQsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JELENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7UUFDSCxDQUFDLENBQ0YsQ0FBQztRQUVLLG1CQUFjLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBbUIsQ0FBQztRQUNuRCxxQkFBZ0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFckYsVUFBSyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMxQixnQkFBVyxHQUFHLE1BQU0sRUFBVSxDQUFDO1FBRy9CLHNCQUFpQixHQUFHLEtBQUssRUFBVSxDQUFDO1FBU3pDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsSUFBRyxXQUFXLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQTtZQUN4RCxDQUFDO1FBQ0gsQ0FBQyxFQUFFO1lBQ0QsaUJBQWlCLEVBQUUsSUFBSTtTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLFVBQVUsQ0FBQyxTQUF3QjtRQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBWTtRQUNyQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FDNUIsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUNqRCxDQUFDO0lBQ0osQ0FBQzs4R0ExRVUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsaWtCQ25DeEMsdTZCQTBCQSwwRERISSxTQUFTLGlMQUNULE9BQU8sMklBQ1AsYUFBYSw2RkFDYixPQUFPLDJRQUNQLFdBQVcscUlBQ1gsZUFBZSw0RkFDZixjQUFjOzsyRkFNTCwyQkFBMkI7a0JBaEJ2QyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1A7d0JBQ1AsU0FBUzt3QkFDVCxPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsY0FBYztxQkFDZixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGlucHV0LCBtb2RlbCxcbiAgb3V0cHV0LFxuICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbXBvc2l0ZVNvcnR9IGZyb20gJy4uL2NvbXBvc2l0ZS1zb3J0JztcbmltcG9ydCB7TWF0QnV0dG9uLCBNYXRJY29uQnV0dG9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRJY29ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0TWVudSwgTWF0TWVudUl0ZW0sIE1hdE1lbnVUcmlnZ2VyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7U29ydCwgU29ydERpcmVjdGlvbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvc29ydCc7XG5pbXBvcnQge0NvbXBvc2l0ZVNvcnRDb250ZXh0fSBmcm9tICcuLi9jb21wb3NpdGUtc29ydC1jb250ZXh0JztcbmltcG9ydCB7U29ydFV0aWx9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbW1vbi91dGlscy9zb3J0LXV0aWwnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWNvbXBvc2l0ZS1zb3J0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEJ1dHRvbixcbiAgICBNYXRJY29uLFxuICAgIE1hdEljb25CdXR0b24sXG4gICAgTWF0TWVudSxcbiAgICBNYXRNZW51SXRlbSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTWF0TWVudVRyaWdnZXJcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLWNvbXBvc2l0ZS1zb3J0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2VsZGVyLWNvbXBvc2l0ZS1zb3J0LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJDb21wb3NpdGVTb3J0Q29tcG9uZW50IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZFNvcnQgPSBzaWduYWw8Q29tcG9zaXRlU29ydD4oQ29tcG9zaXRlU29ydC5OT05FKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkU29ydERpcmVjdGlvbiA9IHNpZ25hbDxTb3J0RGlyZWN0aW9uPignYXNjJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGFjdGl2ZVNvcnRzID0gY29tcHV0ZWQoXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgZGVzaXJlZERpciA9IHRoaXMuc2VsZWN0ZWRTb3J0RGlyZWN0aW9uKCkgPz8gJ2FzYyc7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZFNvcnQoKSkge1xuICAgICAgICAvLyB0aGlzLmxvZy53YXJuKCdzZWxlY3RlZFNvcnQ6ICcsIHRoaXMuc2VsZWN0ZWRTb3J0KCkpO1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFNvcnQoKS5zb3J0c0ZvckRpcihkZXNpcmVkRGlyKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG5cbiAgcHVibGljIGF2YWlsYWJsZVNvcnRzID0gaW5wdXQucmVxdWlyZWQ8Q29tcG9zaXRlU29ydFtdPigpO1xuICBwdWJsaWMgYXZhaWxhYmxlU29ydEN0eCA9IGNvbXB1dGVkKCgpID0+IENvbXBvc2l0ZVNvcnRDb250ZXh0LmJ1aWxkKHRoaXMuYXZhaWxhYmxlU29ydHMoKSkpO1xuXG4gIHB1YmxpYyBzb3J0cyA9IG1vZGVsPFNvcnRbXT4oW10pO1xuICBwdWJsaWMgc29ydHNDaGFuZ2UgPSBvdXRwdXQ8U29ydFtdPigpO1xuXG5cbiAgcHVibGljIHRyYW5zbGF0aW9uUHJlZml4ID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBhY3RpdmVTb3J0cyA9IHRoaXMuYWN0aXZlU29ydHMoKTtcbiAgICAgIGlmKGFjdGl2ZVNvcnRzICYmIGFjdGl2ZVNvcnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5zb3J0c0NoYW5nZS5lbWl0KGFjdGl2ZVNvcnRzKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgYXZhaWxhYmxlQ3R4ID0gdGhpcy5hdmFpbGFibGVTb3J0Q3R4KCk7XG4gICAgICBjb25zdCBzb3J0cyA9IHRoaXMuc29ydHMoKTtcbiAgICAgIGNvbnN0IGJlc3QgPSBhdmFpbGFibGVDdHguZ3Vlc3NCZXN0KHNvcnRzKTtcbiAgICAgIGlmIChiZXN0KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTb3J0LnNldChiZXN0KTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFNvcnREaXJlY3Rpb24uc2V0KHNvcnRzWzBdPy5kaXIgPz8gJ2FzYycpXG4gICAgICB9XG4gICAgfSwge1xuICAgICAgYWxsb3dTaWduYWxXcml0ZXM6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBzZWxlY3RTb3J0KG5hbWVkU29ydDogQ29tcG9zaXRlU29ydCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRTb3J0LnNldChuYW1lZFNvcnQpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVNvcnREaXJlY3Rpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5zZWxlY3RlZFNvcnREaXJlY3Rpb24uc2V0KFxuICAgICAgU29ydFV0aWwudG9nZ2xlRGlyKHRoaXMuc2VsZWN0ZWRTb3J0RGlyZWN0aW9uKCkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG59XG4iLCI8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXIgZmxleC1ub25lXCI+XG5cbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiPlxuXG4gICAge3sgdHJhbnNsYXRpb25QcmVmaXgoKSArIHNlbGVjdGVkU29ydCgpLmlkIHwgdHJhbnNsYXRlfX1cblxuICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZTogMjJweFwiPnNvcnQ8L21hdC1pY29uPlxuXG4gICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiPlxuICAgICAgQGZvciAobmFtZWRTb3J0IG9mICBhdmFpbGFibGVTb3J0cygpOyB0cmFjayBuYW1lZFNvcnQuaWQpIHtcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RTb3J0KG5hbWVkU29ydClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uPnNvcnQ8L21hdC1pY29uPlxuICAgICAgICAgIDxzcGFuIFtjbGFzcy5tYXQtYm9keS1zdHJvbmddPVwic2VsZWN0ZWRTb3J0KCk/LmlkID09PSBuYW1lZFNvcnQuaWRcIj57e3RyYW5zbGF0aW9uUHJlZml4KCkgKyBuYW1lZFNvcnQuaWQgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgPC9tYXQtbWVudT5cblxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVNvcnREaXJlY3Rpb24oJGV2ZW50KVwiPlxuICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZTogMjJweFwiPnt7c2VsZWN0ZWRTb3J0RGlyZWN0aW9uKCkgPT09ICdhc2MnID8gJ2Fycm93X2Rvd253YXJkJyA6ICdhcnJvd191cHdhcmQnfX08L21hdC1pY29uPlxuICA8L2J1dHRvbj5cblxuPC9kaXY+XG4iXX0=
@@ -34,10 +34,10 @@ export class DataContextStateIndicatorComponent {
34
34
  set dataContext(dataContext) {
35
35
  this.dataContext$.next(dataContext);
36
36
  }
37
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DataContextStateIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: DataContextStateIndicatorComponent, isStandalone: true, selector: "elder-data-context-state-indicator", inputs: { dataContext: "dataContext" }, ngImport: i0, template: "<ng-container *ngIf=\"dataContext$ | async as dataContext\">\n\n <ng-container *ngIf=\"dataContext else noDataContext\">\n\n <ng-container *ngIf=\"(dataContext.isStarted$ | async) else dataContextNotStarted\">\n\n <ng-container *ngIf=\"!(dataContext?.status | async)?.hasError else dataContextHasError\">\n\n <ng-container *ngIf=\"(dataContext?.data | async)?.length === 0\">\n <ng-template [ngTemplateOutlet]=\"dataContextNoData\"></ng-template>\n </ng-container>\n\n </ng-container>\n\n </ng-container>\n\n </ng-container>\n\n</ng-container>\n\n<ng-template #noDataContext>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'warning', text: 'No data context'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #dataContextNotStarted>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'warning', text: 'Data context not started'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #dataContextHasError>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'warning', iconColor: 'warn', text: 'Error while loading data'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #dataContextNoData>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'info', text: 'No data available'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #indicator let-icon=\"icon\" let-iconColor=\"iconColor\" let-text=\"text\">\n\n <div class=\"layout-col place-center-center full elder-dc-indicator-container mat-body-2\">\n <div class=\"layout-row place-center-center gap-lg\">\n <mat-icon [color]=\"iconColor\">{{icon}}</mat-icon>\n <span class=\"hint mat-body-2\">{{text | translate}}</span>\n </div>\n </div>\n\n</ng-template>\n", styles: [".elder-dc-indicator-container{color:gray}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: DataContextStateIndicatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: DataContextStateIndicatorComponent, isStandalone: true, selector: "elder-data-context-state-indicator", inputs: { dataContext: "dataContext" }, ngImport: i0, template: "<ng-container *ngIf=\"dataContext$ | async as dataContext\">\n\n <ng-container *ngIf=\"dataContext else noDataContext\">\n\n <ng-container *ngIf=\"(dataContext.isStarted$ | async) else dataContextNotStarted\">\n\n <ng-container *ngIf=\"!(dataContext?.status | async)?.hasError else dataContextHasError\">\n\n <ng-container *ngIf=\"(dataContext?.data | async)?.length === 0\">\n <ng-template [ngTemplateOutlet]=\"dataContextNoData\"></ng-template>\n </ng-container>\n\n </ng-container>\n\n </ng-container>\n\n </ng-container>\n\n</ng-container>\n\n<ng-template #noDataContext>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'warning', text: 'No data context'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #dataContextNotStarted>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'warning', text: 'Data context not started'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #dataContextHasError>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'warning', iconColor: 'warn', text: 'Error while loading data'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #dataContextNoData>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'info', text: 'No data available'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #indicator let-icon=\"icon\" let-iconColor=\"iconColor\" let-text=\"text\">\n\n <div class=\"layout-col place-center-center full elder-dc-indicator-container mat-body-2\">\n <div class=\"layout-row place-center-center gap-lg\">\n <mat-icon [color]=\"iconColor\">{{icon}}</mat-icon>\n <span class=\"hint mat-body-2\">{{text | translate}}</span>\n </div>\n </div>\n\n</ng-template>\n", styles: [".elder-dc-indicator-container{color:gray}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DataContextStateIndicatorComponent, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: DataContextStateIndicatorComponent, decorators: [{
41
41
  type: Component,
42
42
  args: [{ selector: 'elder-data-context-state-indicator', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, NgTemplateOutlet, MatIcon, AsyncPipe, TranslateModule], template: "<ng-container *ngIf=\"dataContext$ | async as dataContext\">\n\n <ng-container *ngIf=\"dataContext else noDataContext\">\n\n <ng-container *ngIf=\"(dataContext.isStarted$ | async) else dataContextNotStarted\">\n\n <ng-container *ngIf=\"!(dataContext?.status | async)?.hasError else dataContextHasError\">\n\n <ng-container *ngIf=\"(dataContext?.data | async)?.length === 0\">\n <ng-template [ngTemplateOutlet]=\"dataContextNoData\"></ng-template>\n </ng-container>\n\n </ng-container>\n\n </ng-container>\n\n </ng-container>\n\n</ng-container>\n\n<ng-template #noDataContext>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'warning', text: 'No data context'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #dataContextNotStarted>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'warning', text: 'Data context not started'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #dataContextHasError>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'warning', iconColor: 'warn', text: 'Error while loading data'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #dataContextNoData>\n <ng-container *ngTemplateOutlet=\"indicator; context:{icon: 'info', text: 'No data available'}\">\n </ng-container>\n</ng-template>\n\n<ng-template #indicator let-icon=\"icon\" let-iconColor=\"iconColor\" let-text=\"text\">\n\n <div class=\"layout-col place-center-center full elder-dc-indicator-container mat-body-2\">\n <div class=\"layout-row place-center-center gap-lg\">\n <mat-icon [color]=\"iconColor\">{{icon}}</mat-icon>\n <span class=\"hint mat-body-2\">{{text | translate}}</span>\n </div>\n </div>\n\n</ng-template>\n", styles: [".elder-dc-indicator-container{color:gray}\n"] }]
43
43
  }], ctorParameters: () => [], propDecorators: { dataContext: [{
@@ -17,16 +17,21 @@ import { ElderSelectionMasterCheckboxComponent } from './selection/elder-selecti
17
17
  import { DataContextSelectionDirective } from './selection/data-context-selection.directive';
18
18
  import { DataContextStateIndicatorComponent } from './data-context-state-indicator/data-context-state-indicator.component';
19
19
  import { ElderBadgeModule } from '../../badge/elder-badge.module';
20
+ import { ElderCompositeSortComponent } from './composite-sort/elder-composite-sort/elder-composite-sort.component';
21
+ import { ElderCompositeSortDcDirective } from './composite-sort/composite-sort-dc.directive';
20
22
  import * as i0 from "@angular/core";
21
23
  export { ElderSingleSortComponent } from './elder-single-sort/elder-single-sort.component';
24
+ export { ElderCompositeSortComponent } from './composite-sort/elder-composite-sort/elder-composite-sort.component';
25
+ export { ElderCompositeSortDcDirective } from './composite-sort/composite-sort-dc.directive';
26
+ export { CompositeSort } from './composite-sort/composite-sort';
22
27
  export { ElderDataToolbarComponent, ElderToolbarContentDirective } from './elder-data-toolbar/elder-data-toolbar.component';
23
28
  export { ElderSelectionMasterCheckboxComponent } from './selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component';
24
29
  export { MasterSelectionState } from './selection/master-selection-state';
25
30
  export { DataContextSelectionDirective } from './selection/data-context-selection.directive';
26
31
  export { DataContextStateIndicatorComponent } from './data-context-state-indicator/data-context-state-indicator.component';
27
32
  export class ElderDataCommonModule {
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderDataCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
29
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: ElderDataCommonModule, imports: [CommonModule, RouterModule,
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderDataCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
34
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: ElderDataCommonModule, imports: [CommonModule, RouterModule,
30
35
  // Material
31
36
  MatDividerModule,
32
37
  MatCheckboxModule, MatMenuModule,
@@ -38,15 +43,19 @@ export class ElderDataCommonModule {
38
43
  ElderDataToolbarComponent,
39
44
  ElderToolbarContentDirective,
40
45
  ElderSingleSortComponent,
46
+ ElderCompositeSortComponent,
47
+ ElderCompositeSortDcDirective,
41
48
  ElderSelectionMasterCheckboxComponent,
42
49
  DataContextSelectionDirective,
43
50
  DataContextStateIndicatorComponent], exports: [ElderDataToolbarComponent,
44
51
  ElderToolbarContentDirective,
45
52
  ElderSingleSortComponent,
53
+ ElderCompositeSortComponent,
54
+ ElderCompositeSortDcDirective,
46
55
  ElderSelectionMasterCheckboxComponent,
47
56
  DataContextSelectionDirective,
48
57
  DataContextStateIndicatorComponent] }); }
49
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderDataCommonModule, imports: [CommonModule, RouterModule,
58
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderDataCommonModule, imports: [CommonModule, RouterModule,
50
59
  // Material
51
60
  MatDividerModule,
52
61
  MatCheckboxModule, MatMenuModule,
@@ -57,10 +66,11 @@ export class ElderDataCommonModule {
57
66
  TranslateModule, ElderBadgeModule,
58
67
  ElderDataToolbarComponent,
59
68
  ElderSingleSortComponent,
69
+ ElderCompositeSortComponent,
60
70
  ElderSelectionMasterCheckboxComponent,
61
71
  DataContextStateIndicatorComponent] }); }
62
72
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderDataCommonModule, decorators: [{
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderDataCommonModule, decorators: [{
64
74
  type: NgModule,
65
75
  args: [{
66
76
  imports: [
@@ -76,6 +86,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
76
86
  ElderDataToolbarComponent,
77
87
  ElderToolbarContentDirective,
78
88
  ElderSingleSortComponent,
89
+ ElderCompositeSortComponent,
90
+ ElderCompositeSortDcDirective,
79
91
  ElderSelectionMasterCheckboxComponent,
80
92
  DataContextSelectionDirective,
81
93
  DataContextStateIndicatorComponent
@@ -84,10 +96,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
84
96
  ElderDataToolbarComponent,
85
97
  ElderToolbarContentDirective,
86
98
  ElderSingleSortComponent,
99
+ ElderCompositeSortComponent,
100
+ ElderCompositeSortDcDirective,
87
101
  ElderSelectionMasterCheckboxComponent,
88
102
  DataContextSelectionDirective,
89
103
  DataContextStateIndicatorComponent
90
104
  ],
91
105
  }]
92
106
  }] });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGF0YS1jb21tb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvY29tbW9uL2VsZGVyLWRhdGEtY29tbW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHlCQUF5QixFQUFFLDRCQUE0QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDMUgsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDekYsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sdUZBQXVGLENBQUM7QUFDNUksT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sdUVBQXVFLENBQUM7QUFDekgsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7O0FBRWhFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQyx5QkFBeUIsRUFBRSw0QkFBNEIsRUFBMEIsTUFBTSxtREFBbUQsQ0FBQztBQUNuSixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFDdkMsdUZBQXVGLENBQUM7QUFFL0YsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sdUVBQXVFLENBQUM7QUE4QnpILE1BQU0sT0FBTyxxQkFBcUI7OEdBQXJCLHFCQUFxQjsrR0FBckIscUJBQXFCLFlBekIxQixZQUFZLEVBQUUsWUFBWTtZQUMxQixXQUFXO1lBQ1gsZ0JBQWdCO1lBQ2hCLGlCQUFpQixFQUFFLGFBQWE7WUFDaEMsZUFBZSxFQUFFLGFBQWEsRUFBRSxjQUFjO1lBQzlDLG9CQUFvQjtZQUNwQixlQUFlLEVBQUUsZ0JBQWdCO1lBQ2pDLGVBQWU7WUFDZixlQUFlLEVBQUUsZ0JBQWdCO1lBQ2pDLHlCQUF5QjtZQUN6Qiw0QkFBNEI7WUFDNUIsd0JBQXdCO1lBQ3hCLHFDQUFxQztZQUNyQyw2QkFBNkI7WUFDN0Isa0NBQWtDLGFBR2xDLHlCQUF5QjtZQUN6Qiw0QkFBNEI7WUFDNUIsd0JBQXdCO1lBQ3hCLHFDQUFxQztZQUNyQyw2QkFBNkI7WUFDN0Isa0NBQWtDOytHQUc3QixxQkFBcUIsWUF6QjFCLFlBQVksRUFBRSxZQUFZO1lBQzFCLFdBQVc7WUFDWCxnQkFBZ0I7WUFDaEIsaUJBQWlCLEVBQUUsYUFBYTtZQUNoQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWM7WUFDOUMsb0JBQW9CO1lBQ3BCLGVBQWUsRUFBRSxnQkFBZ0I7WUFDakMsZUFBZTtZQUNmLGVBQWUsRUFBRSxnQkFBZ0I7WUFDakMseUJBQXlCO1lBRXpCLHdCQUF3QjtZQUN4QixxQ0FBcUM7WUFFckMsa0NBQWtDOzsyRkFXN0IscUJBQXFCO2tCQTNCakMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWSxFQUFFLFlBQVk7d0JBQzFCLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixpQkFBaUIsRUFBRSxhQUFhO3dCQUNoQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWM7d0JBQzlDLG9CQUFvQjt3QkFDcEIsZUFBZSxFQUFFLGdCQUFnQjt3QkFDakMsZUFBZTt3QkFDZixlQUFlLEVBQUUsZ0JBQWdCO3dCQUNqQyx5QkFBeUI7d0JBQ3pCLDRCQUE0Qjt3QkFDNUIsd0JBQXdCO3dCQUN4QixxQ0FBcUM7d0JBQ3JDLDZCQUE2Qjt3QkFDN0Isa0NBQWtDO3FCQUNyQztvQkFDRCxPQUFPLEVBQUU7d0JBQ0wseUJBQXlCO3dCQUN6Qiw0QkFBNEI7d0JBQzVCLHdCQUF3Qjt3QkFDeEIscUNBQXFDO3dCQUNyQyw2QkFBNkI7d0JBQzdCLGtDQUFrQztxQkFDckM7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNYXRCYWRnZU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge01hdENoZWNrYm94TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQge01hdERpYWxvZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7TWF0RGl2aWRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcic7XG5pbXBvcnQge01hdEljb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtNYXRNZW51TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7TWF0UHJvZ3Jlc3NCYXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQge01hdFRvb2x0aXBNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0VsZGVyRGF0YVRvb2xiYXJDb21wb25lbnQsIEVsZGVyVG9vbGJhckNvbnRlbnREaXJlY3RpdmV9IGZyb20gJy4vZWxkZXItZGF0YS10b29sYmFyL2VsZGVyLWRhdGEtdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtFbGRlclNpbmdsZVNvcnRDb21wb25lbnR9IGZyb20gJy4vZWxkZXItc2luZ2xlLXNvcnQvZWxkZXItc2luZ2xlLXNvcnQuY29tcG9uZW50JztcbmltcG9ydCB7RWxkZXJTZWxlY3Rpb25NYXN0ZXJDaGVja2JveENvbXBvbmVudH0gZnJvbSAnLi9zZWxlY3Rpb24vZWxkZXItc2VsZWN0aW9uLW1hc3Rlci1jaGVja2JveC9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQge0RhdGFDb250ZXh0U2VsZWN0aW9uRGlyZWN0aXZlfSBmcm9tICcuL3NlbGVjdGlvbi9kYXRhLWNvbnRleHQtc2VsZWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0RhdGFDb250ZXh0U3RhdGVJbmRpY2F0b3JDb21wb25lbnR9IGZyb20gJy4vZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvci9kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQge0VsZGVyQmFkZ2VNb2R1bGV9IGZyb20gJy4uLy4uL2JhZGdlL2VsZGVyLWJhZGdlLm1vZHVsZSc7XG5cbmV4cG9ydCB7RWxkZXJTaW5nbGVTb3J0Q29tcG9uZW50fSBmcm9tICcuL2VsZGVyLXNpbmdsZS1zb3J0L2VsZGVyLXNpbmdsZS1zb3J0LmNvbXBvbmVudCc7XG5leHBvcnQge0VsZGVyRGF0YVRvb2xiYXJDb21wb25lbnQsIEVsZGVyVG9vbGJhckNvbnRlbnREaXJlY3RpdmUsIEVsZGVyVG9vbGJhckNvbnRlbnRTbG90fSBmcm9tICcuL2VsZGVyLWRhdGEtdG9vbGJhci9lbGRlci1kYXRhLXRvb2xiYXIuY29tcG9uZW50JztcbmV4cG9ydCB7RWxkZXJTZWxlY3Rpb25NYXN0ZXJDaGVja2JveENvbXBvbmVudH1cbiAgZnJvbSAnLi9zZWxlY3Rpb24vZWxkZXItc2VsZWN0aW9uLW1hc3Rlci1jaGVja2JveC9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94LmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7TWFzdGVyU2VsZWN0aW9uU3RhdGV9IGZyb20gJy4vc2VsZWN0aW9uL21hc3Rlci1zZWxlY3Rpb24tc3RhdGUnO1xuZXhwb3J0IHtEYXRhQ29udGV4dFNlbGVjdGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi9zZWxlY3Rpb24vZGF0YS1jb250ZXh0LXNlbGVjdGlvbi5kaXJlY3RpdmUnO1xuZXhwb3J0IHtEYXRhQ29udGV4dFN0YXRlSW5kaWNhdG9yQ29tcG9uZW50fSBmcm9tICcuL2RhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3IvZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvci5jb21wb25lbnQnO1xuXG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZSxcbiAgICAgICAgLy8gTWF0ZXJpYWxcbiAgICAgICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICAgICAgTWF0Q2hlY2tib3hNb2R1bGUsIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0QmFkZ2VNb2R1bGUsXG4gICAgICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgICAgICBNYXREaWFsb2dNb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIC8vIHRyYW5zbGF0aW9uc1xuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsIEVsZGVyQmFkZ2VNb2R1bGUsXG4gICAgICAgIEVsZGVyRGF0YVRvb2xiYXJDb21wb25lbnQsXG4gICAgICAgIEVsZGVyVG9vbGJhckNvbnRlbnREaXJlY3RpdmUsXG4gICAgICAgIEVsZGVyU2luZ2xlU29ydENvbXBvbmVudCxcbiAgICAgICAgRWxkZXJTZWxlY3Rpb25NYXN0ZXJDaGVja2JveENvbXBvbmVudCxcbiAgICAgICAgRGF0YUNvbnRleHRTZWxlY3Rpb25EaXJlY3RpdmUsXG4gICAgICAgIERhdGFDb250ZXh0U3RhdGVJbmRpY2F0b3JDb21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgRWxkZXJEYXRhVG9vbGJhckNvbXBvbmVudCxcbiAgICAgICAgRWxkZXJUb29sYmFyQ29udGVudERpcmVjdGl2ZSxcbiAgICAgICAgRWxkZXJTaW5nbGVTb3J0Q29tcG9uZW50LFxuICAgICAgICBFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50LFxuICAgICAgICBEYXRhQ29udGV4dFNlbGVjdGlvbkRpcmVjdGl2ZSxcbiAgICAgICAgRGF0YUNvbnRleHRTdGF0ZUluZGljYXRvckNvbXBvbmVudFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRGF0YUNvbW1vbk1vZHVsZSB7IH1cbiJdfQ==
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGF0YS1jb21tb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvY29tbW9uL2VsZGVyLWRhdGEtY29tbW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHlCQUF5QixFQUFFLDRCQUE0QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDMUgsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFDekYsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sdUZBQXVGLENBQUM7QUFDNUksT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDM0YsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sdUVBQXVFLENBQUM7QUFDekgsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sc0VBQXNFLENBQUM7QUFDakgsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sOENBQThDLENBQUM7O0FBRTNGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHNFQUFzRSxDQUFDO0FBQ2pILE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMseUJBQXlCLEVBQUUsNEJBQTRCLEVBQTBCLE1BQU0sbURBQW1ELENBQUM7QUFDbkosT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQ3ZDLHVGQUF1RixDQUFDO0FBRS9GLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHVFQUF1RSxDQUFDO0FBa0N6SCxNQUFNLE9BQU8scUJBQXFCOzhHQUFyQixxQkFBcUI7K0dBQXJCLHFCQUFxQixZQTdCMUIsWUFBWSxFQUFFLFlBQVk7WUFDMUIsV0FBVztZQUNYLGdCQUFnQjtZQUNoQixpQkFBaUIsRUFBRSxhQUFhO1lBQ2hDLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYztZQUM5QyxvQkFBb0I7WUFDcEIsZUFBZSxFQUFFLGdCQUFnQjtZQUNqQyxlQUFlO1lBQ2YsZUFBZSxFQUFFLGdCQUFnQjtZQUNqQyx5QkFBeUI7WUFDekIsNEJBQTRCO1lBQzVCLHdCQUF3QjtZQUN4QiwyQkFBMkI7WUFDM0IsNkJBQTZCO1lBQzdCLHFDQUFxQztZQUNyQyw2QkFBNkI7WUFDN0Isa0NBQWtDLGFBR2xDLHlCQUF5QjtZQUN6Qiw0QkFBNEI7WUFDNUIsd0JBQXdCO1lBQ3hCLDJCQUEyQjtZQUMzQiw2QkFBNkI7WUFDN0IscUNBQXFDO1lBQ3JDLDZCQUE2QjtZQUM3QixrQ0FBa0M7K0dBRzdCLHFCQUFxQixZQTdCMUIsWUFBWSxFQUFFLFlBQVk7WUFDMUIsV0FBVztZQUNYLGdCQUFnQjtZQUNoQixpQkFBaUIsRUFBRSxhQUFhO1lBQ2hDLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYztZQUM5QyxvQkFBb0I7WUFDcEIsZUFBZSxFQUFFLGdCQUFnQjtZQUNqQyxlQUFlO1lBQ2YsZUFBZSxFQUFFLGdCQUFnQjtZQUNqQyx5QkFBeUI7WUFFekIsd0JBQXdCO1lBQ3hCLDJCQUEyQjtZQUUzQixxQ0FBcUM7WUFFckMsa0NBQWtDOzsyRkFhN0IscUJBQXFCO2tCQS9CakMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWSxFQUFFLFlBQVk7d0JBQzFCLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixpQkFBaUIsRUFBRSxhQUFhO3dCQUNoQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWM7d0JBQzlDLG9CQUFvQjt3QkFDcEIsZUFBZSxFQUFFLGdCQUFnQjt3QkFDakMsZUFBZTt3QkFDZixlQUFlLEVBQUUsZ0JBQWdCO3dCQUNqQyx5QkFBeUI7d0JBQ3pCLDRCQUE0Qjt3QkFDNUIsd0JBQXdCO3dCQUN4QiwyQkFBMkI7d0JBQzNCLDZCQUE2Qjt3QkFDN0IscUNBQXFDO3dCQUNyQyw2QkFBNkI7d0JBQzdCLGtDQUFrQztxQkFDckM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHlCQUF5Qjt3QkFDekIsNEJBQTRCO3dCQUM1Qix3QkFBd0I7d0JBQ3hCLDJCQUEyQjt3QkFDM0IsNkJBQTZCO3dCQUM3QixxQ0FBcUM7d0JBQ3JDLDZCQUE2Qjt3QkFDN0Isa0NBQWtDO3FCQUNyQztpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01hdEJhZGdlTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQge01hdEJ1dHRvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7TWF0Q2hlY2tib3hNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7TWF0RGlhbG9nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtNYXREaXZpZGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdE1lbnVNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHtNYXRQcm9ncmVzc0Jhck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7TWF0VG9vbHRpcE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7RWxkZXJEYXRhVG9vbGJhckNvbXBvbmVudCwgRWxkZXJUb29sYmFyQ29udGVudERpcmVjdGl2ZX0gZnJvbSAnLi9lbGRlci1kYXRhLXRvb2xiYXIvZWxkZXItZGF0YS10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQge0VsZGVyU2luZ2xlU29ydENvbXBvbmVudH0gZnJvbSAnLi9lbGRlci1zaW5nbGUtc29ydC9lbGRlci1zaW5nbGUtc29ydC5jb21wb25lbnQnO1xuaW1wb3J0IHtFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50fSBmcm9tICcuL3NlbGVjdGlvbi9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94L2VsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7RGF0YUNvbnRleHRTZWxlY3Rpb25EaXJlY3RpdmV9IGZyb20gJy4vc2VsZWN0aW9uL2RhdGEtY29udGV4dC1zZWxlY3Rpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7RGF0YUNvbnRleHRTdGF0ZUluZGljYXRvckNvbXBvbmVudH0gZnJvbSAnLi9kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yL2RhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7RWxkZXJCYWRnZU1vZHVsZX0gZnJvbSAnLi4vLi4vYmFkZ2UvZWxkZXItYmFkZ2UubW9kdWxlJztcbmltcG9ydCB7RWxkZXJDb21wb3NpdGVTb3J0Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvc2l0ZS1zb3J0L2VsZGVyLWNvbXBvc2l0ZS1zb3J0L2VsZGVyLWNvbXBvc2l0ZS1zb3J0LmNvbXBvbmVudCc7XG5pbXBvcnQge0VsZGVyQ29tcG9zaXRlU29ydERjRGlyZWN0aXZlfSBmcm9tICcuL2NvbXBvc2l0ZS1zb3J0L2NvbXBvc2l0ZS1zb3J0LWRjLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCB7RWxkZXJTaW5nbGVTb3J0Q29tcG9uZW50fSBmcm9tICcuL2VsZGVyLXNpbmdsZS1zb3J0L2VsZGVyLXNpbmdsZS1zb3J0LmNvbXBvbmVudCc7XG5leHBvcnQge0VsZGVyQ29tcG9zaXRlU29ydENvbXBvbmVudH0gZnJvbSAnLi9jb21wb3NpdGUtc29ydC9lbGRlci1jb21wb3NpdGUtc29ydC9lbGRlci1jb21wb3NpdGUtc29ydC5jb21wb25lbnQnO1xuZXhwb3J0IHtFbGRlckNvbXBvc2l0ZVNvcnREY0RpcmVjdGl2ZX0gZnJvbSAnLi9jb21wb3NpdGUtc29ydC9jb21wb3NpdGUtc29ydC1kYy5kaXJlY3RpdmUnO1xuZXhwb3J0IHtDb21wb3NpdGVTb3J0fSBmcm9tICcuL2NvbXBvc2l0ZS1zb3J0L2NvbXBvc2l0ZS1zb3J0JztcbmV4cG9ydCB7RWxkZXJEYXRhVG9vbGJhckNvbXBvbmVudCwgRWxkZXJUb29sYmFyQ29udGVudERpcmVjdGl2ZSwgRWxkZXJUb29sYmFyQ29udGVudFNsb3R9IGZyb20gJy4vZWxkZXItZGF0YS10b29sYmFyL2VsZGVyLWRhdGEtdG9vbGJhci5jb21wb25lbnQnO1xuZXhwb3J0IHtFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50fVxuICBmcm9tICcuL3NlbGVjdGlvbi9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94L2VsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3guY29tcG9uZW50JztcblxuZXhwb3J0IHtNYXN0ZXJTZWxlY3Rpb25TdGF0ZX0gZnJvbSAnLi9zZWxlY3Rpb24vbWFzdGVyLXNlbGVjdGlvbi1zdGF0ZSc7XG5leHBvcnQge0RhdGFDb250ZXh0U2VsZWN0aW9uRGlyZWN0aXZlfSBmcm9tICcuL3NlbGVjdGlvbi9kYXRhLWNvbnRleHQtc2VsZWN0aW9uLmRpcmVjdGl2ZSc7XG5leHBvcnQge0RhdGFDb250ZXh0U3RhdGVJbmRpY2F0b3JDb21wb25lbnR9IGZyb20gJy4vZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvci9kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLFxuICAgICAgICAvLyBNYXRlcmlhbFxuICAgICAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgICAgICBNYXRDaGVja2JveE1vZHVsZSwgTWF0TWVudU1vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRCYWRnZU1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICAgICAgLy8gdHJhbnNsYXRpb25zXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSwgRWxkZXJCYWRnZU1vZHVsZSxcbiAgICAgICAgRWxkZXJEYXRhVG9vbGJhckNvbXBvbmVudCxcbiAgICAgICAgRWxkZXJUb29sYmFyQ29udGVudERpcmVjdGl2ZSxcbiAgICAgICAgRWxkZXJTaW5nbGVTb3J0Q29tcG9uZW50LFxuICAgICAgICBFbGRlckNvbXBvc2l0ZVNvcnRDb21wb25lbnQsXG4gICAgICAgIEVsZGVyQ29tcG9zaXRlU29ydERjRGlyZWN0aXZlLFxuICAgICAgICBFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50LFxuICAgICAgICBEYXRhQ29udGV4dFNlbGVjdGlvbkRpcmVjdGl2ZSxcbiAgICAgICAgRGF0YUNvbnRleHRTdGF0ZUluZGljYXRvckNvbXBvbmVudFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBFbGRlckRhdGFUb29sYmFyQ29tcG9uZW50LFxuICAgICAgICBFbGRlclRvb2xiYXJDb250ZW50RGlyZWN0aXZlLFxuICAgICAgICBFbGRlclNpbmdsZVNvcnRDb21wb25lbnQsXG4gICAgICAgIEVsZGVyQ29tcG9zaXRlU29ydENvbXBvbmVudCxcbiAgICAgICAgRWxkZXJDb21wb3NpdGVTb3J0RGNEaXJlY3RpdmUsXG4gICAgICAgIEVsZGVyU2VsZWN0aW9uTWFzdGVyQ2hlY2tib3hDb21wb25lbnQsXG4gICAgICAgIERhdGFDb250ZXh0U2VsZWN0aW9uRGlyZWN0aXZlLFxuICAgICAgICBEYXRhQ29udGV4dFN0YXRlSW5kaWNhdG9yQ29tcG9uZW50XG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJEYXRhQ29tbW9uTW9kdWxlIHsgfVxuIl19
@@ -16,10 +16,10 @@ export class ElderToolbarContentDirective {
16
16
  constructor(templateRef) {
17
17
  this.templateRef = templateRef;
18
18
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderToolbarContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
20
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: ElderToolbarContentDirective, isStandalone: true, selector: "[elderToolbarContent]", inputs: { placeholderId: ["elderToolbarContent", "placeholderId"] }, ngImport: i0 }); }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderToolbarContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
20
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ElderToolbarContentDirective, isStandalone: true, selector: "[elderToolbarContent]", inputs: { placeholderId: ["elderToolbarContent", "placeholderId"] }, ngImport: i0 }); }
21
21
  }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderToolbarContentDirective, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderToolbarContentDirective, decorators: [{
23
23
  type: Directive,
24
24
  args: [{
25
25
  selector: '[elderToolbarContent]',
@@ -104,10 +104,10 @@ export class ElderDataToolbarComponent {
104
104
  }
105
105
  }
106
106
  }
107
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderDataToolbarComponent, deps: [{ token: i1.SelectionModel, optional: true }, { token: ELDER_DATA_VIEW, optional: true }, { token: i2.ElderDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
108
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ElderDataToolbarComponent, isStandalone: true, selector: "elder-data-toolbar", inputs: { canAdd: "canAdd", canRemove: "canRemove", canMore: "canMore", confirmRemoval: "confirmRemoval", keepSelectionAfterRemoval: "keepSelectionAfterRemoval", selectionModel: "selectionModel" }, outputs: { requestNew: "requestNew", requestRemove: "requestRemove" }, queries: [{ propertyName: "templates", predicate: ElderToolbarContentDirective }], ngImport: i0, template: "<!-- Table Toolbar -->\n<div\n class=\"layout-row place-between-center gap-md\"\n style=\"padding: 0 8px 0 8px\"\n *ngIf=\"selection$ | async as selection\"\n>\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('main') || defaultContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n</div>\n\n<!-- Default Templates -->\n\n<!-- Default Main Content -->\n<ng-template #defaultContent let-selection>\n <!-- Left column -->\n <div class=\"layout-row place-start-center\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('left') || defaultLeftContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n\n <div class=\"layout-row place-center-center flex\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('center') || defaultCenterContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n\n <!-- Right column -->\n <div class=\"layout-row place-end-center\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right') || defaultRightContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n</ng-template>\n\n<!-- Default Left Content -->\n<ng-template #defaultLeftContent let-selection>\n <!-- Add Action -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n *ngIf=\"canAdd\"\n (click)=\"requestNew.next($event)\"\n >\n <mat-icon>add</mat-icon>\n </button>\n\n <!-- Placeholder for additional actions -->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('left.actions');\n context: { $implicit: selection }\n \"\n ></ng-container>\n</ng-template>\n\n<!-- Default Center Content -->\n<ng-template #defaultCenterContent let-selection></ng-template>\n\n<!-- Default Right Content -->\n<ng-template #defaultRightContent let-selection>\n <!-- Placeholder for additional actions -->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right.actions');\n context: { $implicit: selection }\n \"\n ></ng-container>\n\n <!-- Delete Action -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n *ngIf=\"canRemove\"\n [disabled]=\"!selection?.length\"\n (click)=\"requestRemoveItems(selection, $event)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n\n <!-- More Menu -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n [matMenuTriggerFor]=\"elderTableMenu\"\n [disabled]=\"!canMore\"\n >\n <mat-icon>more_vert</mat-icon>\n <mat-menu #elderTableMenu=\"matMenu\">\n <ng-content select=\"[mat-menu-item]\"></ng-content>\n <!-- Placeholder for mat menu items-->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right.menu');\n context: { $implicit: selection }\n \"\n ></ng-container>\n </mat-menu>\n </button>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
107
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderDataToolbarComponent, deps: [{ token: i1.SelectionModel, optional: true }, { token: ELDER_DATA_VIEW, optional: true }, { token: i2.ElderDialogService }], target: i0.ɵɵFactoryTarget.Component }); }
108
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ElderDataToolbarComponent, isStandalone: true, selector: "elder-data-toolbar", inputs: { canAdd: "canAdd", canRemove: "canRemove", canMore: "canMore", confirmRemoval: "confirmRemoval", keepSelectionAfterRemoval: "keepSelectionAfterRemoval", selectionModel: "selectionModel" }, outputs: { requestNew: "requestNew", requestRemove: "requestRemove" }, queries: [{ propertyName: "templates", predicate: ElderToolbarContentDirective }], ngImport: i0, template: "<!-- Table Toolbar -->\n<div\n class=\"layout-row place-between-center gap-md\"\n style=\"padding: 0 8px 0 8px\"\n *ngIf=\"selection$ | async as selection\"\n>\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('main') || defaultContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n</div>\n\n<!-- Default Templates -->\n\n<!-- Default Main Content -->\n<ng-template #defaultContent let-selection>\n <!-- Left column -->\n <div class=\"layout-row place-start-center\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('left') || defaultLeftContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n\n <div class=\"layout-row place-center-center flex\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('center') || defaultCenterContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n\n <!-- Right column -->\n <div class=\"layout-row place-end-center\">\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right') || defaultRightContent;\n context: { $implicit: selection }\n \"\n ></ng-container>\n </div>\n</ng-template>\n\n<!-- Default Left Content -->\n<ng-template #defaultLeftContent let-selection>\n <!-- Add Action -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n *ngIf=\"canAdd\"\n (click)=\"requestNew.next($event)\"\n >\n <mat-icon>add</mat-icon>\n </button>\n\n <!-- Placeholder for additional actions -->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('left.actions');\n context: { $implicit: selection }\n \"\n ></ng-container>\n</ng-template>\n\n<!-- Default Center Content -->\n<ng-template #defaultCenterContent let-selection></ng-template>\n\n<!-- Default Right Content -->\n<ng-template #defaultRightContent let-selection>\n <!-- Placeholder for additional actions -->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right.actions');\n context: { $implicit: selection }\n \"\n ></ng-container>\n\n <!-- Delete Action -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n *ngIf=\"canRemove\"\n [disabled]=\"!selection?.length\"\n (click)=\"requestRemoveItems(selection, $event)\"\n >\n <mat-icon>delete</mat-icon>\n </button>\n\n <!-- More Menu -->\n <button\n mat-icon-button type=\"button\"\n color=\"primary\"\n [matMenuTriggerFor]=\"elderTableMenu\"\n [disabled]=\"!canMore\"\n >\n <mat-icon>more_vert</mat-icon>\n <mat-menu #elderTableMenu=\"matMenu\">\n <ng-content select=\"[mat-menu-item]\"></ng-content>\n <!-- Placeholder for mat menu items-->\n <ng-container\n *ngTemplateOutlet=\"\n getTemplate('right.menu');\n context: { $implicit: selection }\n \"\n ></ng-container>\n </mat-menu>\n </button>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
109
109
  }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderDataToolbarComponent, decorators: [{
110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderDataToolbarComponent, decorators: [{
111
111
  type: Component,
112
112
  args: [{ selector: 'elder-data-toolbar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
113
113
  NgIf,
@@ -72,10 +72,10 @@ export class ElderSingleSortComponent {
72
72
  this.sort = sort;
73
73
  this.sortChange.emit(sort);
74
74
  }
75
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderSingleSortComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
76
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ElderSingleSortComponent, isStandalone: true, selector: "elder-single-sort", inputs: { availableSorts: "availableSorts", translationPrefix: "translationPrefix", sort: "sort" }, outputs: { sortChange: "sortChange" }, ngImport: i0, template: "<div *ngIf=\"(sort$ | async) as sort\" class=\"layout-row place-start-center flex-none\">\n\n <button mat-button type=\"button\" [matMenuTriggerFor]=\"menu\">\n\n {{ translationPrefix + sort.prop | translate}}\n\n <mat-icon style=\"font-size: 22px\">sort</mat-icon>\n\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item type=\"button\"\n *ngFor=\"let mysort of availableSorts\"\n (click)=\"setSortProp(mysort)\"\n >\n <mat-icon>sort</mat-icon>\n <span [class.mat-body-strong]=\"sort.prop == mysort\">{{translationPrefix + mysort | translate}}</span>\n </button>\n </mat-menu>\n\n </button>\n\n <button mat-icon-button type=\"button\" (click)=\"toggleSortDirection($event)\">\n <mat-icon style=\"font-size: 22px\">{{sort.dir === 'asc' ? 'arrow_downward' : 'arrow_upward'}}</mat-icon>\n </button>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderSingleSortComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
76
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ElderSingleSortComponent, isStandalone: true, selector: "elder-single-sort", inputs: { availableSorts: "availableSorts", translationPrefix: "translationPrefix", sort: "sort" }, outputs: { sortChange: "sortChange" }, ngImport: i0, template: "<div *ngIf=\"(sort$ | async) as sort\" class=\"layout-row place-start-center flex-none\">\n\n <button mat-button type=\"button\" [matMenuTriggerFor]=\"menu\">\n\n {{ translationPrefix + sort.prop | translate}}\n\n <mat-icon style=\"font-size: 22px\">sort</mat-icon>\n\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item type=\"button\"\n *ngFor=\"let mysort of availableSorts\"\n (click)=\"setSortProp(mysort)\"\n >\n <mat-icon>sort</mat-icon>\n <span [class.mat-body-strong]=\"sort.prop == mysort\">{{translationPrefix + mysort | translate}}</span>\n </button>\n </mat-menu>\n\n </button>\n\n <button mat-icon-button type=\"button\" (click)=\"toggleSortDirection($event)\">\n <mat-icon style=\"font-size: 22px\">{{sort.dir === 'asc' ? 'arrow_downward' : 'arrow_upward'}}</mat-icon>\n </button>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
77
77
  }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderSingleSortComponent, decorators: [{
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderSingleSortComponent, decorators: [{
79
79
  type: Component,
80
80
  args: [{ selector: 'elder-single-sort', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, MatButton, MatMenuTrigger, MatIcon, MatMenu, NgFor, MatMenuItem, MatIconButton, AsyncPipe, TranslateModule], template: "<div *ngIf=\"(sort$ | async) as sort\" class=\"layout-row place-start-center flex-none\">\n\n <button mat-button type=\"button\" [matMenuTriggerFor]=\"menu\">\n\n {{ translationPrefix + sort.prop | translate}}\n\n <mat-icon style=\"font-size: 22px\">sort</mat-icon>\n\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item type=\"button\"\n *ngFor=\"let mysort of availableSorts\"\n (click)=\"setSortProp(mysort)\"\n >\n <mat-icon>sort</mat-icon>\n <span [class.mat-body-strong]=\"sort.prop == mysort\">{{translationPrefix + mysort | translate}}</span>\n </button>\n </mat-menu>\n\n </button>\n\n <button mat-icon-button type=\"button\" (click)=\"toggleSortDirection($event)\">\n <mat-icon style=\"font-size: 22px\">{{sort.dir === 'asc' ? 'arrow_downward' : 'arrow_upward'}}</mat-icon>\n </button>\n\n</div>\n" }]
81
81
  }], ctorParameters: () => [], propDecorators: { availableSorts: [{
@@ -77,10 +77,10 @@ export class DataContextSelectionDirective {
77
77
  return new MasterSelectionState(selection.length, selection.length >= currentData.length - unselectable.length, selection.length > 0 && selection.length < currentData.length - unselectable.length, selection.length > 0, model.isMultipleSelection);
78
78
  }));
79
79
  }
80
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DataContextSelectionDirective, deps: [{ token: i1.SelectionModel, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
81
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: DataContextSelectionDirective, isStandalone: true, selector: "[elderDataContextSelection]", inputs: { selectionModel: ["elderDataContextSelectionModel", "selectionModel"], dataContext: ["elderDataContextSelection", "dataContext"] }, exportAs: ["elderDataContextSelection"], ngImport: i0 }); }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: DataContextSelectionDirective, deps: [{ token: i1.SelectionModel, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
81
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: DataContextSelectionDirective, isStandalone: true, selector: "[elderDataContextSelection]", inputs: { selectionModel: ["elderDataContextSelectionModel", "selectionModel"], dataContext: ["elderDataContextSelection", "dataContext"] }, exportAs: ["elderDataContextSelection"], ngImport: i0 }); }
82
82
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: DataContextSelectionDirective, decorators: [{
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: DataContextSelectionDirective, decorators: [{
84
84
  type: Directive,
85
85
  args: [{
86
86
  selector: '[elderDataContextSelection]',
@@ -27,10 +27,10 @@ export class ElderSelectionMasterCheckboxComponent {
27
27
  **************************************************************************/
28
28
  ngOnInit() {
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderSelectionMasterCheckboxComponent, deps: [{ token: i1.DataContextSelectionDirective }], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ElderSelectionMasterCheckboxComponent, isStandalone: true, selector: "elder-selection-master-checkbox", ngImport: i0, template: "<ng-container *ngIf=\"dataContextSelection?.selectionState$ | async as selectionState\">\n <div class=\"layout-row place-start-center\"\n *ngIf=\"selectionState.isMultiSelection\"\n >\n <!-- [elderBadge]=\"selectionState.count + ''\" -->\n <mat-checkbox (change)=\"$event ? dataContextSelection.masterToggle() : null\"\n [checked]=\"selectionState.allSelected\"\n [indeterminate]=\"selectionState.someSelected\"\n [matBadgeHidden]=\"selectionState.count === 0\"\n [matBadge]=\"selectionState.count + ''\"\n [matBadgePosition]=\"'above before'\"\n [matBadgeOverlap]=\"true\"\n [matBadgeSize]=\"'small'\"\n >\n </mat-checkbox>\n </div>\n</ng-container>\n", styles: [".mat-badge-small.mat-badge-above .mat-badge-content{top:-6px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderSelectionMasterCheckboxComponent, deps: [{ token: i1.DataContextSelectionDirective }], target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ElderSelectionMasterCheckboxComponent, isStandalone: true, selector: "elder-selection-master-checkbox", ngImport: i0, template: "<ng-container *ngIf=\"dataContextSelection?.selectionState$ | async as selectionState\">\n <div class=\"layout-row place-start-center\"\n *ngIf=\"selectionState.isMultiSelection\"\n >\n <!-- [elderBadge]=\"selectionState.count + ''\" -->\n <mat-checkbox (change)=\"$event ? dataContextSelection.masterToggle() : null\"\n [checked]=\"selectionState.allSelected\"\n [indeterminate]=\"selectionState.someSelected\"\n [matBadgeHidden]=\"selectionState.count === 0\"\n [matBadge]=\"selectionState.count + ''\"\n [matBadgePosition]=\"'above before'\"\n [matBadgeOverlap]=\"true\"\n [matBadgeSize]=\"'small'\"\n >\n </mat-checkbox>\n </div>\n</ng-container>\n", styles: [".mat-badge-small.mat-badge-above .mat-badge-content{top:-6px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderSelectionMasterCheckboxComponent, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderSelectionMasterCheckboxComponent, decorators: [{
34
34
  type: Component,
35
35
  args: [{ selector: 'elder-selection-master-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, MatCheckbox, MatBadge, AsyncPipe], template: "<ng-container *ngIf=\"dataContextSelection?.selectionState$ | async as selectionState\">\n <div class=\"layout-row place-start-center\"\n *ngIf=\"selectionState.isMultiSelection\"\n >\n <!-- [elderBadge]=\"selectionState.count + ''\" -->\n <mat-checkbox (change)=\"$event ? dataContextSelection.masterToggle() : null\"\n [checked]=\"selectionState.allSelected\"\n [indeterminate]=\"selectionState.someSelected\"\n [matBadgeHidden]=\"selectionState.count === 0\"\n [matBadge]=\"selectionState.count + ''\"\n [matBadgePosition]=\"'above before'\"\n [matBadgeOverlap]=\"true\"\n [matBadgeSize]=\"'small'\"\n >\n </mat-checkbox>\n </div>\n</ng-container>\n", styles: [".mat-badge-small.mat-badge-above .mat-badge-content{top:-6px}\n"] }]
36
36
  }], ctorParameters: () => [{ type: i1.DataContextSelectionDirective }] });