@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
@@ -92,10 +92,10 @@ export class ElderSearchBoxComponent {
92
92
  clearSearch(event) {
93
93
  this.searchContextDirective.reset();
94
94
  }
95
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderSearchBoxComponent, deps: [{ token: i1.ElderSearchContextDirective }], target: i0.ɵɵFactoryTarget.Component }); }
96
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ElderSearchBoxComponent, isStandalone: true, selector: "elder-search-box", inputs: { autoPanel: "autoPanel", name: "name", queryKey: "queryKey", placeholder: "placeholder", label: "label", hint: "hint", autocomplete: "autocomplete", appearance: "appearance", dense: "dense" }, host: { classAttribute: "elder-form-field-host" }, queries: [{ propertyName: "advancedSearch", first: true, predicate: ElderSearchPanelComponent, descendants: true }], viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true }], exportAs: ["elderSearchBox"], ngImport: i0, template: "<div class=\"layout-row place-stretch-center full flex\">\n <mat-form-field\n *ngIf=\"overlayState$ | async as overlayState\"\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto\" subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\">\n\n <button matPrefix mat-icon-button type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input matInput type=\"text\" [name]=\"name\" [placeholder]=\"placeholder\" #search cdkFocusInitial\n ngModel\n elderSearchInput [elderSearchInputKey]=\"queryKey\" #searchInput=\"elderSearchInput\"\n [autocomplete]=\"(autoPanel && overlayState.hasOverlay) ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"autoPanel && overlayState.hasOverlay && (searchInput?.state$ | async)?.pristine\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n\n <div class=\"layout-row\" matSuffix *ngIf=\"touchedSearchInputs$ | async as touchedInputs\">\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"touchedInputs.length > 0\"\n (click)=\"clearSearch($event)\"\n name=\"clear\" aria-label=\"Clear\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"overlayState.hasOverlay\" name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\">\n <mat-icon\n [matBadge]=\"touchedInputs.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"touchedInputs.length === 0\"\n matBadgeColor=\"accent\"\n [color]=\"touchedInputs.length > 0 ? 'accent' : undefined\"\n >\n filter_list\n </mat-icon>\n </button>\n </div>\n </mat-form-field>\n</div>\n\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n\n <!-- Project the users search inputs here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-raised-button type=\"button\" name=\"clear\"\n (click)=\"clearSearch($event)\">{{'context.reset' | translate}}\n </button>\n\n <button mat-raised-button type=\"button\" name=\"ok\" color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\">Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-box-field{margin-top:4px;margin-bottom:4px}.elder-search-panel-container{min-width:250px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ElderSearchInputDirective, selector: "[elderSearchInput]", inputs: ["elderSearchInputTransform", "elderSearchInput", "elderSearchInputFallback", "valueAsId", "elderSearchInputKey"], exportAs: ["elderSearchInput"] }, { kind: "directive", type: ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "component", type: ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderSearchBoxComponent, deps: [{ token: i1.ElderSearchContextDirective }], target: i0.ɵɵFactoryTarget.Component }); }
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ElderSearchBoxComponent, isStandalone: true, selector: "elder-search-box", inputs: { autoPanel: "autoPanel", name: "name", queryKey: "queryKey", placeholder: "placeholder", label: "label", hint: "hint", autocomplete: "autocomplete", appearance: "appearance", dense: "dense" }, host: { classAttribute: "elder-form-field-host" }, queries: [{ propertyName: "advancedSearch", first: true, predicate: ElderSearchPanelComponent, descendants: true }], viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true }], exportAs: ["elderSearchBox"], ngImport: i0, template: "<div class=\"layout-row place-stretch-center full flex\">\n <mat-form-field\n *ngIf=\"overlayState$ | async as overlayState\"\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto\" subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\">\n\n <button matPrefix mat-icon-button type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input matInput type=\"text\" [name]=\"name\" [placeholder]=\"placeholder\" #search cdkFocusInitial\n ngModel\n elderSearchInput [elderSearchInputKey]=\"queryKey\" #searchInput=\"elderSearchInput\"\n [autocomplete]=\"(autoPanel && overlayState.hasOverlay) ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"autoPanel && overlayState.hasOverlay && (searchInput?.state$ | async)?.pristine\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n\n <div class=\"layout-row\" matSuffix *ngIf=\"touchedSearchInputs$ | async as touchedInputs\">\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"touchedInputs.length > 0\"\n (click)=\"clearSearch($event)\"\n name=\"clear\" aria-label=\"Clear\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"overlayState.hasOverlay\" name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\">\n <mat-icon\n [matBadge]=\"touchedInputs.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"touchedInputs.length === 0\"\n matBadgeColor=\"accent\"\n [color]=\"touchedInputs.length > 0 ? 'accent' : undefined\"\n >\n filter_list\n </mat-icon>\n </button>\n </div>\n </mat-form-field>\n</div>\n\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n\n <!-- Project the users search inputs here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-raised-button type=\"button\" name=\"clear\"\n (click)=\"clearSearch($event)\">{{'context.reset' | translate}}\n </button>\n\n <button mat-raised-button type=\"button\" name=\"ok\" color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\">Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-box-field{margin-top:4px;margin-bottom:4px}.elder-search-panel-container{min-width:250px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ElderSearchInputDirective, selector: "[elderSearchInput]", inputs: ["elderSearchInputTransform", "elderSearchInput", "elderSearchInputFallback", "valueAsId", "elderSearchInputKey"], exportAs: ["elderSearchInput"] }, { kind: "directive", type: ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "component", type: ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
97
97
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderSearchBoxComponent, decorators: [{
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderSearchBoxComponent, decorators: [{
99
99
  type: Component,
100
100
  args: [{ selector: 'elder-search-box', exportAs: 'elderSearchBox', host: { 'class': 'elder-form-field-host' }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, MatFormField, ElderFormFieldDenseDirective, MatIconButton, MatPrefix, ElderOverlayTriggerDirective, MatIcon, MatInput, FormsModule, ElderSearchInputDirective, ElderOverlayOriginDirective, MatHint, MatSuffix, MatBadge, ElderOverlayComponent, ElderDialogPanelComponent, MatButton, AsyncPipe, TranslateModule], template: "<div class=\"layout-row place-stretch-center full flex\">\n <mat-form-field\n *ngIf=\"overlayState$ | async as overlayState\"\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto\" subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\">\n\n <button matPrefix mat-icon-button type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input matInput type=\"text\" [name]=\"name\" [placeholder]=\"placeholder\" #search cdkFocusInitial\n ngModel\n elderSearchInput [elderSearchInputKey]=\"queryKey\" #searchInput=\"elderSearchInput\"\n [autocomplete]=\"(autoPanel && overlayState.hasOverlay) ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"autoPanel && overlayState.hasOverlay && (searchInput?.state$ | async)?.pristine\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n\n <div class=\"layout-row\" matSuffix *ngIf=\"touchedSearchInputs$ | async as touchedInputs\">\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"touchedInputs.length > 0\"\n (click)=\"clearSearch($event)\"\n name=\"clear\" aria-label=\"Clear\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"overlayState.hasOverlay\" name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\">\n <mat-icon\n [matBadge]=\"touchedInputs.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"touchedInputs.length === 0\"\n matBadgeColor=\"accent\"\n [color]=\"touchedInputs.length > 0 ? 'accent' : undefined\"\n >\n filter_list\n </mat-icon>\n </button>\n </div>\n </mat-form-field>\n</div>\n\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n\n <!-- Project the users search inputs here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-raised-button type=\"button\" name=\"clear\"\n (click)=\"clearSearch($event)\">{{'context.reset' | translate}}\n </button>\n\n <button mat-raised-button type=\"button\" name=\"ok\" color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\">Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-box-field{margin-top:4px;margin-bottom:4px}.elder-search-panel-container{min-width:250px}\n"] }]
101
101
  }], ctorParameters: () => [{ type: i1.ElderSearchContextDirective }], propDecorators: { search: [{
@@ -2,10 +2,10 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class ElderSearchPanelComponent {
4
4
  constructor() { }
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderSearchPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ElderSearchPanelComponent, isStandalone: true, selector: "elder-search-panel", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderSearchPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ElderSearchPanelComponent, isStandalone: true, selector: "elder-search-panel", ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderSearchPanelComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderSearchPanelComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{
11
11
  selector: 'elder-search-panel',
@@ -108,10 +108,10 @@ export class ElderGlobalSearchComponent {
108
108
  }
109
109
  return '';
110
110
  }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderGlobalSearchComponent, deps: [{ token: i1.Router }, { token: i2.ElderGlobalSearchService }], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ElderGlobalSearchComponent, isStandalone: true, selector: "elder-global-search", inputs: { hideWhenDisabled: "hideWhenDisabled", searchCollapsed: "searchCollapsed" }, outputs: { searchCollapsedChange: "searchCollapsedChange" }, viewQueries: [{ propertyName: "txtSearch", first: true, predicate: ["txtSearch"], descendants: true }], ngImport: i0, template: "<div class=\"layout-row place-center-center\">\n\n <span *ngIf=\"searchCollapsed\" class=\"flex\"></span>\n\n\n <div *ngIf=\"!searchCollapsed\" class=\"layout-row place-center-center flex\">\n\n <!-- Query Keywords -->\n <mat-form-field color=\"accent\" floatPlaceholder=\"never\" class=\"flex\">\n <mat-icon matPrefix>search</mat-icon>\n <input matInput type=\"search\"\n (keyup)=\"onQueryChanged()\"\n #txtSearch>\n </mat-form-field>\n\n <!-- Sort -->\n <mat-menu #sortMenu=\"matMenu\">\n <button mat-menu-item type=\"button\"\n *ngFor=\"let sort of availableSort\"\n class=\"layout-row place-between-center\"\n (click)=\"sortBy(sort)\"\n >\n {{sort.name | translate}}\n <mat-icon *ngIf=\"selectedSort?.id==sort.id\">check</mat-icon>\n </button>\n </mat-menu>\n <button mat-icon-button type=\"button\"\n *ngIf=\"canSort\"\n [matMenuTriggerFor]=\"sortMenu\">\n <mat-icon>sort</mat-icon>\n </button>\n\n <!-- Sort Asc/Desc-->\n <button mat-icon-button type=\"button\"\n *ngIf=\"canSort\"\n (click)=\"toggleSortAsc()\">\n <mat-icon>{{sortAsc ? \"arrow_downward\" : \"arrow_upward\"}}</mat-icon>\n </button>\n </div>\n\n\n <!-- Toggle Global Search -->\n <button mat-icon-button type=\"button\"\n *ngIf=\"!isSearchHidden\"\n (click)=\"toggleSearch()\"\n [disabled]=\"globalSearchDisabled\" >\n <mat-icon>{{toggleIcon}}</mat-icon>\n </button>\n</div>\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: 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: "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: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderGlobalSearchComponent, deps: [{ token: i1.Router }, { token: i2.ElderGlobalSearchService }], target: i0.ɵɵFactoryTarget.Component }); }
112
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ElderGlobalSearchComponent, isStandalone: true, selector: "elder-global-search", inputs: { hideWhenDisabled: "hideWhenDisabled", searchCollapsed: "searchCollapsed" }, outputs: { searchCollapsedChange: "searchCollapsedChange" }, viewQueries: [{ propertyName: "txtSearch", first: true, predicate: ["txtSearch"], descendants: true }], ngImport: i0, template: "<div class=\"layout-row place-center-center\">\n\n <span *ngIf=\"searchCollapsed\" class=\"flex\"></span>\n\n\n <div *ngIf=\"!searchCollapsed\" class=\"layout-row place-center-center flex\">\n\n <!-- Query Keywords -->\n <mat-form-field color=\"accent\" floatPlaceholder=\"never\" class=\"flex\">\n <mat-icon matPrefix>search</mat-icon>\n <input matInput type=\"search\"\n (keyup)=\"onQueryChanged()\"\n #txtSearch>\n </mat-form-field>\n\n <!-- Sort -->\n <mat-menu #sortMenu=\"matMenu\">\n <button mat-menu-item type=\"button\"\n *ngFor=\"let sort of availableSort\"\n class=\"layout-row place-between-center\"\n (click)=\"sortBy(sort)\"\n >\n {{sort.name | translate}}\n <mat-icon *ngIf=\"selectedSort?.id==sort.id\">check</mat-icon>\n </button>\n </mat-menu>\n <button mat-icon-button type=\"button\"\n *ngIf=\"canSort\"\n [matMenuTriggerFor]=\"sortMenu\">\n <mat-icon>sort</mat-icon>\n </button>\n\n <!-- Sort Asc/Desc-->\n <button mat-icon-button type=\"button\"\n *ngIf=\"canSort\"\n (click)=\"toggleSortAsc()\">\n <mat-icon>{{sortAsc ? \"arrow_downward\" : \"arrow_upward\"}}</mat-icon>\n </button>\n </div>\n\n\n <!-- Toggle Global Search -->\n <button mat-icon-button type=\"button\"\n *ngIf=\"!isSearchHidden\"\n (click)=\"toggleSearch()\"\n [disabled]=\"globalSearchDisabled\" >\n <mat-icon>{{toggleIcon}}</mat-icon>\n </button>\n</div>\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: 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: "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: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
113
113
  }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderGlobalSearchComponent, decorators: [{
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderGlobalSearchComponent, decorators: [{
115
115
  type: Component,
116
116
  args: [{ selector: 'elder-global-search', standalone: true, imports: [NgIf, MatFormField, MatIcon, MatPrefix, MatInput, MatMenu, NgFor, MatMenuItem, MatIconButton, MatMenuTrigger, TranslateModule], template: "<div class=\"layout-row place-center-center\">\n\n <span *ngIf=\"searchCollapsed\" class=\"flex\"></span>\n\n\n <div *ngIf=\"!searchCollapsed\" class=\"layout-row place-center-center flex\">\n\n <!-- Query Keywords -->\n <mat-form-field color=\"accent\" floatPlaceholder=\"never\" class=\"flex\">\n <mat-icon matPrefix>search</mat-icon>\n <input matInput type=\"search\"\n (keyup)=\"onQueryChanged()\"\n #txtSearch>\n </mat-form-field>\n\n <!-- Sort -->\n <mat-menu #sortMenu=\"matMenu\">\n <button mat-menu-item type=\"button\"\n *ngFor=\"let sort of availableSort\"\n class=\"layout-row place-between-center\"\n (click)=\"sortBy(sort)\"\n >\n {{sort.name | translate}}\n <mat-icon *ngIf=\"selectedSort?.id==sort.id\">check</mat-icon>\n </button>\n </mat-menu>\n <button mat-icon-button type=\"button\"\n *ngIf=\"canSort\"\n [matMenuTriggerFor]=\"sortMenu\">\n <mat-icon>sort</mat-icon>\n </button>\n\n <!-- Sort Asc/Desc-->\n <button mat-icon-button type=\"button\"\n *ngIf=\"canSort\"\n (click)=\"toggleSortAsc()\">\n <mat-icon>{{sortAsc ? \"arrow_downward\" : \"arrow_upward\"}}</mat-icon>\n </button>\n </div>\n\n\n <!-- Toggle Global Search -->\n <button mat-icon-button type=\"button\"\n *ngIf=\"!isSearchHidden\"\n (click)=\"toggleSearch()\"\n [disabled]=\"globalSearchDisabled\" >\n <mat-icon>{{toggleIcon}}</mat-icon>\n </button>\n</div>\n\n\n" }]
117
117
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.ElderGlobalSearchService }], propDecorators: { searchCollapsedChange: [{
@@ -13,11 +13,11 @@ export * from './elder-global-search.service';
13
13
  * @deprecated This module is considered EOL
14
14
  */
15
15
  export class ElderGlobalSearchModule {
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderGlobalSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: ElderGlobalSearchModule, imports: [CommonModule, MatIconModule, MatInputModule, MatButtonModule, MatMenuModule, TranslateModule, ElderGlobalSearchComponent], exports: [ElderGlobalSearchComponent] }); }
18
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderGlobalSearchModule, imports: [CommonModule, MatIconModule, MatInputModule, MatButtonModule, MatMenuModule, TranslateModule, ElderGlobalSearchComponent] }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderGlobalSearchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
17
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: ElderGlobalSearchModule, imports: [CommonModule, MatIconModule, MatInputModule, MatButtonModule, MatMenuModule, TranslateModule, ElderGlobalSearchComponent], exports: [ElderGlobalSearchComponent] }); }
18
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderGlobalSearchModule, imports: [CommonModule, MatIconModule, MatInputModule, MatButtonModule, MatMenuModule, TranslateModule, ElderGlobalSearchComponent] }); }
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderGlobalSearchModule, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderGlobalSearchModule, decorators: [{
21
21
  type: NgModule,
22
22
  args: [{
23
23
  exports: [
@@ -81,10 +81,10 @@ export class ElderGlobalSearchService {
81
81
  this._showGlobalSearch = value;
82
82
  this._showGlobalSearchSubject.next(value);
83
83
  }
84
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderGlobalSearchService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
85
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderGlobalSearchService, providedIn: 'root' }); }
84
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderGlobalSearchService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
85
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderGlobalSearchService, providedIn: 'root' }); }
86
86
  }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderGlobalSearchService, decorators: [{
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderGlobalSearchService, decorators: [{
88
88
  type: Injectable,
89
89
  args: [{
90
90
  providedIn: 'root'
@@ -70,10 +70,10 @@ export class ElderProgressBarComponent {
70
70
  }
71
71
  }
72
72
  }
73
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
74
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ElderProgressBarComponent, isStandalone: true, selector: "elder-progress-bar", inputs: { minHeight: "minHeight", barColor: "barColor", barBackgroundColor: "barBackgroundColor", value: "value", bars: "bars" }, ngImport: i0, template: "<div *ngIf=\"bars$ | async as bars\" class=\"layout-row elder-flex-control\"\n style=\"overflow: hidden\"\n [style.background]=\"barBackgroundColor\"\n [style.min-height.px]=\"minHeight\"\n [style.border-radius.px]=\"2\"\n >\n\n <div *ngIf=\"bars.length === 0\"\n [style.font-size.px]=\"minHeight\">\n </div>\n\n <span class=\"elder-progress-content\" *ngFor=\"let bar of bars\"\n [style.max-width.%]=\"bar.widthPercent\"\n [style.background]=\"bar.color\"\n [style.min-height]=\"minHeight\"\n [style.font-size.px]=\"minHeight\">\n &nbsp;\n </span>\n\n</div>\n", styles: [".elder-progress-content{flex:1 1 100%;box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
74
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ElderProgressBarComponent, isStandalone: true, selector: "elder-progress-bar", inputs: { minHeight: "minHeight", barColor: "barColor", barBackgroundColor: "barBackgroundColor", value: "value", bars: "bars" }, ngImport: i0, template: "<div *ngIf=\"bars$ | async as bars\" class=\"layout-row elder-flex-control\"\n style=\"overflow: hidden\"\n [style.background]=\"barBackgroundColor\"\n [style.min-height.px]=\"minHeight\"\n [style.border-radius.px]=\"2\"\n >\n\n <div *ngIf=\"bars.length === 0\"\n [style.font-size.px]=\"minHeight\">\n </div>\n\n <span class=\"elder-progress-content\" *ngFor=\"let bar of bars\"\n [style.max-width.%]=\"bar.widthPercent\"\n [style.background]=\"bar.color\"\n [style.min-height]=\"minHeight\"\n [style.font-size.px]=\"minHeight\">\n &nbsp;\n </span>\n\n</div>\n", styles: [".elder-progress-content{flex:1 1 100%;box-sizing:border-box}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
75
75
  }
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderProgressBarComponent, decorators: [{
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderProgressBarComponent, decorators: [{
77
77
  type: Component,
78
78
  args: [{ selector: 'elder-progress-bar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, NgFor, AsyncPipe], template: "<div *ngIf=\"bars$ | async as bars\" class=\"layout-row elder-flex-control\"\n style=\"overflow: hidden\"\n [style.background]=\"barBackgroundColor\"\n [style.min-height.px]=\"minHeight\"\n [style.border-radius.px]=\"2\"\n >\n\n <div *ngIf=\"bars.length === 0\"\n [style.font-size.px]=\"minHeight\">\n </div>\n\n <span class=\"elder-progress-content\" *ngFor=\"let bar of bars\"\n [style.max-width.%]=\"bar.widthPercent\"\n [style.background]=\"bar.color\"\n [style.min-height]=\"minHeight\"\n [style.font-size.px]=\"minHeight\">\n &nbsp;\n </span>\n\n</div>\n", styles: [".elder-progress-content{flex:1 1 100%;box-sizing:border-box}\n"] }]
79
79
  }], ctorParameters: () => [], propDecorators: { minHeight: [{
@@ -5,12 +5,12 @@ import * as i0 from "@angular/core";
5
5
  export * from './elder-progress-bar.component';
6
6
  export * from './sub-bar';
7
7
  export class ElderProgressBarModule {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: ElderProgressBarModule, imports: [CommonModule,
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: ElderProgressBarModule, imports: [CommonModule,
10
10
  ElderProgressBarComponent], exports: [ElderProgressBarComponent] }); }
11
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderProgressBarModule, imports: [CommonModule] }); }
11
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderProgressBarModule, imports: [CommonModule] }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderProgressBarModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderProgressBarModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  exports: [
@@ -15,10 +15,10 @@ export class ElderHeaderComponent {
15
15
  * *
16
16
  **************************************************************************/
17
17
  ngOnInit() { }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ElderHeaderComponent, isStandalone: true, selector: "elder-header", inputs: { header: "header", subheader: "subheader" }, ngImport: i0, template: "<div class=\"layout-col mat-typography\">\n <h2 style=\"margin: 0\">{{header ? header : '-' | translate}}</h2>\n <span class=\"mat-caption\">{{subheader ? subheader : '-' | translate}}</span>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ElderHeaderComponent, isStandalone: true, selector: "elder-header", inputs: { header: "header", subheader: "subheader" }, ngImport: i0, template: "<div class=\"layout-col mat-typography\">\n <h2 style=\"margin: 0\">{{header ? header : '-' | translate}}</h2>\n <span class=\"mat-caption\">{{subheader ? subheader : '-' | translate}}</span>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderHeaderComponent, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderHeaderComponent, decorators: [{
22
22
  type: Component,
23
23
  args: [{ selector: 'elder-header', standalone: true, imports: [TranslateModule], template: "<div class=\"layout-col mat-typography\">\n <h2 style=\"margin: 0\">{{header ? header : '-' | translate}}</h2>\n <span class=\"mat-caption\">{{subheader ? subheader : '-' | translate}}</span>\n</div>\n" }]
24
24
  }], ctorParameters: () => [], propDecorators: { header: [{
@@ -6,8 +6,8 @@ import { ElderHeaderComponent } from './elder-header/elder-header.component';
6
6
  import * as i0 from "@angular/core";
7
7
  export * from './elder-header/elder-header.component';
8
8
  export class ElderHeaderModule {
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: ElderHeaderModule, imports: [
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: ElderHeaderModule, imports: [
11
11
  // Angular
12
12
  CommonModule, RouterModule,
13
13
  // Third Party
@@ -15,7 +15,7 @@ export class ElderHeaderModule {
15
15
  // Angular Material
16
16
  ,
17
17
  ElderHeaderComponent], exports: [ElderHeaderComponent] }); }
18
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderHeaderModule, imports: [
18
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderHeaderModule, imports: [
19
19
  // Angular
20
20
  CommonModule, RouterModule,
21
21
  // Third Party
@@ -24,7 +24,7 @@ export class ElderHeaderModule {
24
24
  ,
25
25
  ElderHeaderComponent] }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderHeaderModule, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderHeaderModule, decorators: [{
28
28
  type: NgModule,
29
29
  args: [{
30
30
  imports: [
@@ -56,10 +56,10 @@ export class ElderHttpClient {
56
56
  .build();
57
57
  return this.http.get(url, { params: params });
58
58
  }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderHttpClient, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
60
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderHttpClient, providedIn: 'root' }); }
59
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderHttpClient, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
60
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderHttpClient, providedIn: 'root' }); }
61
61
  }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderHttpClient, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderHttpClient, decorators: [{
63
63
  type: Injectable,
64
64
  args: [{
65
65
  providedIn: 'root'
@@ -33,8 +33,8 @@ export * from './picker/localisation-picker.service';
33
33
  export * from './picker/i18n-pick.pipe';
34
34
  export * from './picker/i18n-pick-async.pipe';
35
35
  export class ElderI18nEntitiesModule {
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderI18nEntitiesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
37
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: ElderI18nEntitiesModule, imports: [CommonModule,
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderI18nEntitiesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
37
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: ElderI18nEntitiesModule, imports: [CommonModule,
38
38
  MatTableModule,
39
39
  MatSortModule,
40
40
  MatInputModule,
@@ -63,7 +63,7 @@ export class ElderI18nEntitiesModule {
63
63
  ElderLocalizedInputComponent,
64
64
  I18nPickPipe,
65
65
  I18nPickAsyncPipe] }); }
66
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderI18nEntitiesModule, imports: [CommonModule,
66
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderI18nEntitiesModule, imports: [CommonModule,
67
67
  MatTableModule,
68
68
  MatSortModule,
69
69
  MatInputModule,
@@ -83,7 +83,7 @@ export class ElderI18nEntitiesModule {
83
83
  ElderLocalizedInputDialogComponent,
84
84
  ElderLocalizedInputComponent] }); }
85
85
  }
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderI18nEntitiesModule, decorators: [{
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderI18nEntitiesModule, decorators: [{
87
87
  type: NgModule,
88
88
  args: [{
89
89
  exports: [
@@ -127,10 +127,10 @@ export class ElderLocalizedInputComponent extends FormFieldBaseComponent {
127
127
  return '';
128
128
  }
129
129
  }
130
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLocalizedInputComponent, deps: [{ token: i1.ElderLocalizedInputDialogService }, { token: i2.LocalisationPickerService }], target: i0.ɵɵFactoryTarget.Component }); }
131
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ElderLocalizedInputComponent, isStandalone: true, selector: "elder-localized-input", inputs: { textColumns: "textColumns", translatedValue: "translatedValue" }, outputs: { translatedValueChange: "translatedValueChange" }, host: { classAttribute: "elder-form-field-host" }, providers: buildFormIntegrationProviders(ElderLocalizedInputComponent), queries: [{ propertyName: "textColumnsQuery", predicate: ElderLocalizedTextColumnDirective }], usesInheritance: true, ngImport: i0, template: "<mat-form-field [appearance]=\"appearance\"\n [color]=\"color\"\n>\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n\n <mat-icon matPrefix *ngIf=\"icon\"\n [color]=\"color\">\n {{icon}}\n </mat-icon>\n\n <button matSuffix mat-icon-button\n (click)=\"openTranslationPopup($event)\" aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon>translate</mat-icon>\n </button>\n\n <!-- A dynamic input -->\n <input\n matInput type=\"text\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n readonly\n [name]=\"name + '-localized'\"\n [ngModel]=\"inputText$ | async\" [ngModelOptions]=\"{standalone: true}\"\n >\n\n <mat-hint>{{hintText$ | async}}</mat-hint>\n\n</mat-form-field>\n", styles: [".prefix-padding{padding-right:4px}.leading-icon{font-size:16px;width:16px;height:16px}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderLocalizedInputComponent, deps: [{ token: i1.ElderLocalizedInputDialogService }, { token: i2.LocalisationPickerService }], target: i0.ɵɵFactoryTarget.Component }); }
131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ElderLocalizedInputComponent, isStandalone: true, selector: "elder-localized-input", inputs: { textColumns: "textColumns", translatedValue: "translatedValue" }, outputs: { translatedValueChange: "translatedValueChange" }, host: { classAttribute: "elder-form-field-host" }, providers: buildFormIntegrationProviders(ElderLocalizedInputComponent), queries: [{ propertyName: "textColumnsQuery", predicate: ElderLocalizedTextColumnDirective }], usesInheritance: true, ngImport: i0, template: "<mat-form-field [appearance]=\"appearance\"\n [color]=\"color\"\n>\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n\n <mat-icon matPrefix *ngIf=\"icon\"\n [color]=\"color\">\n {{icon}}\n </mat-icon>\n\n <button matSuffix mat-icon-button\n (click)=\"openTranslationPopup($event)\" aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon>translate</mat-icon>\n </button>\n\n <!-- A dynamic input -->\n <input\n matInput type=\"text\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n readonly\n [name]=\"name + '-localized'\"\n [ngModel]=\"inputText$ | async\" [ngModelOptions]=\"{standalone: true}\"\n >\n\n <mat-hint>{{hintText$ | async}}</mat-hint>\n\n</mat-form-field>\n", styles: [".prefix-padding{padding-right:4px}.leading-icon{font-size:16px;width:16px;height:16px}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
132
132
  }
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLocalizedInputComponent, decorators: [{
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderLocalizedInputComponent, decorators: [{
134
134
  type: Component,
135
135
  args: [{ selector: 'elder-localized-input', changeDetection: ChangeDetectionStrategy.OnPush, host: { 'class': 'elder-form-field-host' }, providers: buildFormIntegrationProviders(ElderLocalizedInputComponent), standalone: true, imports: [MatFormField, NgIf, MatLabel, MatIcon, MatPrefix, MatIconButton, MatSuffix, ElderStopEventPropagationDirective, MatInput, FormsModule, MatHint, AsyncPipe, TranslateModule], template: "<mat-form-field [appearance]=\"appearance\"\n [color]=\"color\"\n>\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n\n <mat-icon matPrefix *ngIf=\"icon\"\n [color]=\"color\">\n {{icon}}\n </mat-icon>\n\n <button matSuffix mat-icon-button\n (click)=\"openTranslationPopup($event)\" aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon>translate</mat-icon>\n </button>\n\n <!-- A dynamic input -->\n <input\n matInput type=\"text\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n readonly\n [name]=\"name + '-localized'\"\n [ngModel]=\"inputText$ | async\" [ngModelOptions]=\"{standalone: true}\"\n >\n\n <mat-hint>{{hintText$ | async}}</mat-hint>\n\n</mat-form-field>\n", styles: [".prefix-padding{padding-right:4px}.leading-icon{font-size:16px;width:16px;height:16px}\n"] }]
136
136
  }], ctorParameters: () => [{ type: i1.ElderLocalizedInputDialogService }, { type: i2.LocalisationPickerService }], propDecorators: { textColumnsQuery: [{
@@ -17,10 +17,10 @@ export class ElderLocalizedInputDialogComponent {
17
17
  }
18
18
  ngOnInit() {
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLocalizedInputDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ElderLocalizedInputDialogComponent, isStandalone: true, selector: "elder-localized-input-dialog", ngImport: i0, template: "\n<div class=\"layout-col full\">\n\n <mat-toolbar elderTheme color=\"primary\">\n <mat-toolbar-row class=\"gap-sm\">\n <mat-icon class=\"noselect\">translate</mat-icon>\n <h2 class=\"noselect\" translate>{{data.title}}</h2>\n <span class=\"flex\"></span>\n <button *ngIf=\"data.explicitSave\"\n mat-icon-button type=\"submit\"\n [disabled]=\"data.readonly\"\n [mat-dialog-close]=\"data.localizables\"\n >\n <mat-icon>save</mat-icon>\n </button>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"layout-col flex p-sm\">\n <elder-localized-input-table\n [float]=\"true\" class=\"flex\"\n [textColumns]=\"data.textColumns\"\n [(value)]=\"data.localizables\"\n [readonly]=\"data.readonly\"\n [disabled]=\"data.disabled\"\n [required]=\"data.required\"\n >\n </elder-localized-input-table>\n </div>\n</div>\n\n\n\n\n\n\n", styles: [""], dependencies: [{ kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: ElderThemeDirective, selector: "[elderTheme]" }, { kind: "directive", type: MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: ElderLocalizedInputTableComponent, selector: "elder-localized-input-table", inputs: ["dense", "float", "embedded", "textColumns", "defaultLanguageTags"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderLocalizedInputDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ElderLocalizedInputDialogComponent, isStandalone: true, selector: "elder-localized-input-dialog", ngImport: i0, template: "\n<div class=\"layout-col full\">\n\n <mat-toolbar elderTheme color=\"primary\">\n <mat-toolbar-row class=\"gap-sm\">\n <mat-icon class=\"noselect\">translate</mat-icon>\n <h2 class=\"noselect\" translate>{{data.title}}</h2>\n <span class=\"flex\"></span>\n <button *ngIf=\"data.explicitSave\"\n mat-icon-button type=\"submit\"\n [disabled]=\"data.readonly\"\n [mat-dialog-close]=\"data.localizables\"\n >\n <mat-icon>save</mat-icon>\n </button>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"layout-col flex p-sm\">\n <elder-localized-input-table\n [float]=\"true\" class=\"flex\"\n [textColumns]=\"data.textColumns\"\n [(value)]=\"data.localizables\"\n [readonly]=\"data.readonly\"\n [disabled]=\"data.disabled\"\n [required]=\"data.required\"\n >\n </elder-localized-input-table>\n </div>\n</div>\n\n\n\n\n\n\n", styles: [""], dependencies: [{ kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: ElderThemeDirective, selector: "[elderTheme]" }, { kind: "directive", type: MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: ElderLocalizedInputTableComponent, selector: "elder-localized-input-table", inputs: ["dense", "float", "embedded", "textColumns", "defaultLanguageTags"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLocalizedInputDialogComponent, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderLocalizedInputDialogComponent, decorators: [{
24
24
  type: Component,
25
25
  args: [{ selector: 'elder-localized-input-dialog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatToolbar, ElderThemeDirective, MatToolbarRow, MatIcon, TranslateModule, NgIf, MatIconButton, MatDialogClose, ElderLocalizedInputTableComponent], template: "\n<div class=\"layout-col full\">\n\n <mat-toolbar elderTheme color=\"primary\">\n <mat-toolbar-row class=\"gap-sm\">\n <mat-icon class=\"noselect\">translate</mat-icon>\n <h2 class=\"noselect\" translate>{{data.title}}</h2>\n <span class=\"flex\"></span>\n <button *ngIf=\"data.explicitSave\"\n mat-icon-button type=\"submit\"\n [disabled]=\"data.readonly\"\n [mat-dialog-close]=\"data.localizables\"\n >\n <mat-icon>save</mat-icon>\n </button>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"layout-col flex p-sm\">\n <elder-localized-input-table\n [float]=\"true\" class=\"flex\"\n [textColumns]=\"data.textColumns\"\n [(value)]=\"data.localizables\"\n [readonly]=\"data.readonly\"\n [disabled]=\"data.disabled\"\n [required]=\"data.required\"\n >\n </elder-localized-input-table>\n </div>\n</div>\n\n\n\n\n\n\n" }]
26
26
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
@@ -18,10 +18,10 @@ export class ElderLocalizedInputDialogService {
18
18
  data: options
19
19
  });
20
20
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLocalizedInputDialogService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
22
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLocalizedInputDialogService, providedIn: 'root' }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderLocalizedInputDialogService, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
22
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderLocalizedInputDialogService, providedIn: 'root' }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLocalizedInputDialogService, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderLocalizedInputDialogService, decorators: [{
25
25
  type: Injectable,
26
26
  args: [{
27
27
  providedIn: 'root'
@@ -131,10 +131,10 @@ export class ElderLocalizedInputTableComponent extends FormFieldBaseComponent {
131
131
  }
132
132
  return localizables;
133
133
  }
134
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLocalizedInputTableComponent, deps: [{ token: i1.ElderToastService }, { token: i2.ElderLanguageService }], target: i0.ɵɵFactoryTarget.Component }); }
135
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ElderLocalizedInputTableComponent, isStandalone: true, selector: "elder-localized-input-table", inputs: { dense: "dense", float: "float", embedded: "embedded", textColumns: "textColumns", defaultLanguageTags: "defaultLanguageTags" }, providers: buildFormIntegrationProviders(ElderLocalizedInputTableComponent), queries: [{ propertyName: "textColumnsQuery", predicate: ElderLocalizedTextColumnDirective }], usesInheritance: true, ngImport: i0, template: "<div class=\"layout-col full\">\n <elder-table matSort class=\"flex\"\n [data]=\"data\"\n [selectionVisible]=\"true\"\n [selectionMultiEnabled]=\"true\"\n [dense]=\"dense\"\n [float]=\"float\"\n [embedded]=\"embedded\"\n >\n\n <elder-data-toolbar\n *elderTableToolbar\n [canAdd]=\"!isLocked\"\n [canRemove]=\"!isLocked\"\n [canMore]=\"false\"\n (requestNew)=\"onNewRequested()\"\n (requestRemove)=\"onRemoveRequested($event)\"\n >\n\n <ng-template elderToolbarContent=\"left.actions\">\n <div class=\"layout-col place-start-center\">\n <h4 elderCardSubtitle style=\"margin: 0\">{{label ?? placeholder}}</h4>\n </div>\n </ng-template>\n\n </elder-data-toolbar>\n\n <ng-container matColumnDef=\"locale\">\n <th mat-header-cell *matHeaderCellDef style=\"width: 100px\" mat-sort-header>Locale</th>\n <td mat-cell *matCellDef=\"let localized\">\n <mat-chip-set><mat-chip>{{localized.locale}}</mat-chip></mat-chip-set>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let textColumn of textColumns$ | async\" matColumnDef=\"{{textColumn.name}}\">\n <th mat-header-cell *matHeaderCellDef>{{textColumn.title | translate}}</th>\n <td mat-cell *matCellDef=\"let localized\">\n\n <div class=\"layout-row place-center-center\">\n <mat-form-field class=\"full-width\" appearance=\"fill\" elderDense>\n <!--\n <mat-label>{{textColumn.title | translate}} ({{localized.locale}})</mat-label>\n -->\n <!--\n <span matTextPrefix>{{textColumn.title | translate}}</span>\n -->\n <input\n matInput\n type=\"text\"\n name=\"i18n-{{localized.locale}}-{{textColumn.name}}\"\n [ngModel]=\"localized[textColumn.name]\" [ngModelOptions]=\"{updateOn: 'blur'}\"\n (ngModelChange)=\"onColumnTextUpdated(localized, textColumn, $event)\"\n [required]=\"required && textColumn.required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n />\n </mat-form-field>\n </div>\n\n\n\n </td>\n </ng-container>\n\n </elder-table>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ElderTableComponent, selector: "elder-table", inputs: ["idField", "removingField", "hiddenField", "pageSizeOptions", "keepSelection", "showFooter", "toolbarTemplate", "data", "displayedColumns", "selectionVisible"] }, { kind: "directive", type: MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "directive", type: ElderTableToolbarDirective, selector: "[elderTableToolbar]" }, { kind: "component", type: ElderDataToolbarComponent, selector: "elder-data-toolbar", inputs: ["canAdd", "canRemove", "canMore", "confirmRemoval", "keepSelectionAfterRemoval", "selectionModel"], outputs: ["requestNew", "requestRemove"] }, { kind: "directive", type: ElderToolbarContentDirective, selector: "[elderToolbarContent]", inputs: ["elderToolbarContent"] }, { kind: "directive", type: ElderCardSubtitleDirective, selector: "elder-card-subtitle, [elder-card-subtitle], [elderCardSubtitle]" }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "component", type: MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "component", type: MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderLocalizedInputTableComponent, deps: [{ token: i1.ElderToastService }, { token: i2.ElderLanguageService }], target: i0.ɵɵFactoryTarget.Component }); }
135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ElderLocalizedInputTableComponent, isStandalone: true, selector: "elder-localized-input-table", inputs: { dense: "dense", float: "float", embedded: "embedded", textColumns: "textColumns", defaultLanguageTags: "defaultLanguageTags" }, providers: buildFormIntegrationProviders(ElderLocalizedInputTableComponent), queries: [{ propertyName: "textColumnsQuery", predicate: ElderLocalizedTextColumnDirective }], usesInheritance: true, ngImport: i0, template: "<div class=\"layout-col full\">\n <elder-table matSort class=\"flex\"\n [data]=\"data\"\n [selectionVisible]=\"true\"\n [selectionMultiEnabled]=\"true\"\n [dense]=\"dense\"\n [float]=\"float\"\n [embedded]=\"embedded\"\n >\n\n <elder-data-toolbar\n *elderTableToolbar\n [canAdd]=\"!isLocked\"\n [canRemove]=\"!isLocked\"\n [canMore]=\"false\"\n (requestNew)=\"onNewRequested()\"\n (requestRemove)=\"onRemoveRequested($event)\"\n >\n\n <ng-template elderToolbarContent=\"left.actions\">\n <div class=\"layout-col place-start-center\">\n <h4 elderCardSubtitle style=\"margin: 0\">{{label ?? placeholder}}</h4>\n </div>\n </ng-template>\n\n </elder-data-toolbar>\n\n <ng-container matColumnDef=\"locale\">\n <th mat-header-cell *matHeaderCellDef style=\"width: 100px\" mat-sort-header>Locale</th>\n <td mat-cell *matCellDef=\"let localized\">\n <mat-chip-set><mat-chip>{{localized.locale}}</mat-chip></mat-chip-set>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let textColumn of textColumns$ | async\" matColumnDef=\"{{textColumn.name}}\">\n <th mat-header-cell *matHeaderCellDef>{{textColumn.title | translate}}</th>\n <td mat-cell *matCellDef=\"let localized\">\n\n <div class=\"layout-row place-center-center\">\n <mat-form-field class=\"full-width\" appearance=\"fill\" elderDense>\n <!--\n <mat-label>{{textColumn.title | translate}} ({{localized.locale}})</mat-label>\n -->\n <!--\n <span matTextPrefix>{{textColumn.title | translate}}</span>\n -->\n <input\n matInput\n type=\"text\"\n name=\"i18n-{{localized.locale}}-{{textColumn.name}}\"\n [ngModel]=\"localized[textColumn.name]\" [ngModelOptions]=\"{updateOn: 'blur'}\"\n (ngModelChange)=\"onColumnTextUpdated(localized, textColumn, $event)\"\n [required]=\"required && textColumn.required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n />\n </mat-form-field>\n </div>\n\n\n\n </td>\n </ng-container>\n\n </elder-table>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ElderTableComponent, selector: "elder-table", inputs: ["idField", "removingField", "hiddenField", "pageSizeOptions", "keepSelection", "showFooter", "toolbarTemplate", "data", "displayedColumns", "selectionVisible"] }, { kind: "directive", type: MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "directive", type: ElderTableToolbarDirective, selector: "[elderTableToolbar]" }, { kind: "component", type: ElderDataToolbarComponent, selector: "elder-data-toolbar", inputs: ["canAdd", "canRemove", "canMore", "confirmRemoval", "keepSelectionAfterRemoval", "selectionModel"], outputs: ["requestNew", "requestRemove"] }, { kind: "directive", type: ElderToolbarContentDirective, selector: "[elderToolbarContent]", inputs: ["elderToolbarContent"] }, { kind: "directive", type: ElderCardSubtitleDirective, selector: "elder-card-subtitle, [elder-card-subtitle], [elderCardSubtitle]" }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "component", type: MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "component", type: MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
136
136
  }
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLocalizedInputTableComponent, decorators: [{
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderLocalizedInputTableComponent, decorators: [{
138
138
  type: Component,
139
139
  args: [{ selector: 'elder-localized-input-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: buildFormIntegrationProviders(ElderLocalizedInputTableComponent), standalone: true, imports: [ElderTableComponent, MatSort, ElderTableToolbarDirective, ElderDataToolbarComponent, ElderToolbarContentDirective, ElderCardSubtitleDirective, MatColumnDef, MatHeaderCellDef, MatHeaderCell, MatSortHeader, MatCellDef, MatCell, MatChipSet, MatChip, NgFor, MatFormField, ElderFormFieldDenseDirective, MatInput, FormsModule, AsyncPipe, TranslateModule], template: "<div class=\"layout-col full\">\n <elder-table matSort class=\"flex\"\n [data]=\"data\"\n [selectionVisible]=\"true\"\n [selectionMultiEnabled]=\"true\"\n [dense]=\"dense\"\n [float]=\"float\"\n [embedded]=\"embedded\"\n >\n\n <elder-data-toolbar\n *elderTableToolbar\n [canAdd]=\"!isLocked\"\n [canRemove]=\"!isLocked\"\n [canMore]=\"false\"\n (requestNew)=\"onNewRequested()\"\n (requestRemove)=\"onRemoveRequested($event)\"\n >\n\n <ng-template elderToolbarContent=\"left.actions\">\n <div class=\"layout-col place-start-center\">\n <h4 elderCardSubtitle style=\"margin: 0\">{{label ?? placeholder}}</h4>\n </div>\n </ng-template>\n\n </elder-data-toolbar>\n\n <ng-container matColumnDef=\"locale\">\n <th mat-header-cell *matHeaderCellDef style=\"width: 100px\" mat-sort-header>Locale</th>\n <td mat-cell *matCellDef=\"let localized\">\n <mat-chip-set><mat-chip>{{localized.locale}}</mat-chip></mat-chip-set>\n </td>\n </ng-container>\n\n <ng-container *ngFor=\"let textColumn of textColumns$ | async\" matColumnDef=\"{{textColumn.name}}\">\n <th mat-header-cell *matHeaderCellDef>{{textColumn.title | translate}}</th>\n <td mat-cell *matCellDef=\"let localized\">\n\n <div class=\"layout-row place-center-center\">\n <mat-form-field class=\"full-width\" appearance=\"fill\" elderDense>\n <!--\n <mat-label>{{textColumn.title | translate}} ({{localized.locale}})</mat-label>\n -->\n <!--\n <span matTextPrefix>{{textColumn.title | translate}}</span>\n -->\n <input\n matInput\n type=\"text\"\n name=\"i18n-{{localized.locale}}-{{textColumn.name}}\"\n [ngModel]=\"localized[textColumn.name]\" [ngModelOptions]=\"{updateOn: 'blur'}\"\n (ngModelChange)=\"onColumnTextUpdated(localized, textColumn, $event)\"\n [required]=\"required && textColumn.required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n />\n </mat-form-field>\n </div>\n\n\n\n </td>\n </ng-container>\n\n </elder-table>\n</div>\n" }]
140
140
  }], ctorParameters: () => [{ type: i1.ElderToastService }, { type: i2.ElderLanguageService }], propDecorators: { textColumnsQuery: [{
@@ -151,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
151
151
  }], defaultLanguageTags: [{
152
152
  type: Input
153
153
  }] } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbG9jYWxpemVkLWlucHV0LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvaTE4bi9lbnRpdGllcy9lbGRlci1sb2NhbGl6ZWQtaW5wdXQtdGFibGUvZWxkZXItbG9jYWxpemVkLWlucHV0LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvaTE4bi9lbnRpdGllcy9lbGRlci1sb2NhbGl6ZWQtaW5wdXQtdGFibGUvZWxkZXItbG9jYWxpemVkLWlucHV0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsdUJBQXVCLEVBRXZCLGVBQWUsRUFBNEIsS0FBSyxFQUNqRCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFFMUYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDbEcsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTdELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDcEcsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzVELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRSxP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QUM7eUhBa0JqVyxnQkFBZ0I7c0JBRHRCLGVBQWU7dUJBQUMsaUNBQWlDO2dCQU8zQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkErRUssV0FBVztzQkFEckIsS0FBSztnQkFNSyxtQkFBbUI7c0JBRDdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE9uRGVzdHJveSxcbiAgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIEFmdGVyVmlld0luaXQsIElucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0Zvcm1GaWVsZEJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy9mb3JtLWZpZWxkLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7TG9jYWxpemVkfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vaTE4bi9lbnRpdHkvbG9jYWxpemVkJztcbmltcG9ydCB7YnVpbGRGb3JtSW50ZWdyYXRpb25Qcm92aWRlcnN9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy90ZW1wbGF0ZS1jb21wb3NpdGUtY29udHJvbCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0lEYXRhQ29udGV4dH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0xvY2FsTGlzdERhdGFTb3VyY2V9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvbG9jYWwvbG9jYWwtbGlzdC1kYXRhLXNvdXJjZSc7XG5pbXBvcnQge1NvcnRVdGlsfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdXRpbHMvc29ydC11dGlsJztcbmltcG9ydCB7RmlsdGVyVXRpbH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3V0aWxzL2ZpbHRlci11dGlsJztcbmltcG9ydCB7RGF0YUNvbnRleHRCdWlsZGVyfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJ1aWxkZXInO1xuaW1wb3J0IHtTb3J0fSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9zb3J0JztcbmltcG9ydCB7UXVlcnlMaXN0QmluZGluZ30gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3V0aWxzL3F1ZXJ5LWxpc3QtYmluZGluZyc7XG5pbXBvcnQge0VsZGVyVG9hc3RTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi90b2FzdHMvZWxkZXItdG9hc3Quc2VydmljZSc7XG5pbXBvcnQge0VsZGVyTG9jYWxpemVkVGV4dENvbHVtbkRpcmVjdGl2ZX0gZnJvbSAnLi4vZWxkZXItbG9jYWxpemVkLXRleHQtY29sdW1uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VsZGVyTGFuZ3VhZ2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9sYW5ndWFnZS9lbGRlci1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7TGFuZ3VhZ2VUYWd9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9pMThuL2VudGl0eS9sYW5ndWFnZS10YWcnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNYXRJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHtFbGRlckZvcm1GaWVsZERlbnNlRGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9mb3Jtcy9kaXJlY3RpdmVzL2VsZGVyLWZvcm0tZmllbGQtZGVuc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7TmdGb3IsIEFzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TWF0Q2hpcFNldCwgTWF0Q2hpcH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHtNYXRDb2x1bW5EZWYsIE1hdEhlYWRlckNlbGxEZWYsIE1hdEhlYWRlckNlbGwsIE1hdENlbGxEZWYsIE1hdENlbGx9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7RWxkZXJDYXJkU3VidGl0bGVEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uL2NhcmRzL2VsZGVyLWNhcmQvZWxkZXItY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHtFbGRlckRhdGFUb29sYmFyQ29tcG9uZW50LCBFbGRlclRvb2xiYXJDb250ZW50RGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9kYXRhLXZpZXcvY29tbW9uL2VsZGVyLWRhdGEtdG9vbGJhci9lbGRlci1kYXRhLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7RWxkZXJUYWJsZVRvb2xiYXJEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uL2RhdGEtdmlldy90YWJsZS9lbGRlci10YWJsZS9lbGRlci10YWJsZS10b29sYmFyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge01hdFNvcnQsIE1hdFNvcnRIZWFkZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtFbGRlclRhYmxlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlbGRlci1sb2NhbGl6ZWQtaW5wdXQtdGFibGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1sb2NhbGl6ZWQtaW5wdXQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2VsZGVyLWxvY2FsaXplZC1pbnB1dC10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogYnVpbGRGb3JtSW50ZWdyYXRpb25Qcm92aWRlcnMoRWxkZXJMb2NhbGl6ZWRJbnB1dFRhYmxlQ29tcG9uZW50KSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtFbGRlclRhYmxlQ29tcG9uZW50LCBNYXRTb3J0LCBFbGRlclRhYmxlVG9vbGJhckRpcmVjdGl2ZSwgRWxkZXJEYXRhVG9vbGJhckNvbXBvbmVudCwgRWxkZXJUb29sYmFyQ29udGVudERpcmVjdGl2ZSwgRWxkZXJDYXJkU3VidGl0bGVEaXJlY3RpdmUsIE1hdENvbHVtbkRlZiwgTWF0SGVhZGVyQ2VsbERlZiwgTWF0SGVhZGVyQ2VsbCwgTWF0U29ydEhlYWRlciwgTWF0Q2VsbERlZiwgTWF0Q2VsbCwgTWF0Q2hpcFNldCwgTWF0Q2hpcCwgTmdGb3IsIE1hdEZvcm1GaWVsZCwgRWxkZXJGb3JtRmllbGREZW5zZURpcmVjdGl2ZSwgTWF0SW5wdXQsIEZvcm1zTW9kdWxlLCBBc3luY1BpcGUsIFRyYW5zbGF0ZU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJMb2NhbGl6ZWRJbnB1dFRhYmxlQ29tcG9uZW50PFQgZXh0ZW5kcyBMb2NhbGl6ZWQ+XG4gIGV4dGVuZHMgRm9ybUZpZWxkQmFzZUNvbXBvbmVudDxUW10+IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTb3VyY2U6IExvY2FsTGlzdERhdGFTb3VyY2U8VD47XG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiBJRGF0YUNvbnRleHQ8VD47XG5cblxuICBAQ29udGVudENoaWxkcmVuKEVsZGVyTG9jYWxpemVkVGV4dENvbHVtbkRpcmVjdGl2ZSlcbiAgcHVibGljIHRleHRDb2x1bW5zUXVlcnk6IFF1ZXJ5TGlzdDxFbGRlckxvY2FsaXplZFRleHRDb2x1bW5EaXJlY3RpdmU+O1xuICBwdWJsaWMgcmVhZG9ubHkgdGV4dENvbHVtbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbGRlckxvY2FsaXplZFRleHRDb2x1bW5EaXJlY3RpdmVbXT4oW10pO1xuXG4gIHB1YmxpYyByZWFkb25seSBkZWZhdWx0TGFuZ3VhZ2VUYWdzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TGFuZ3VhZ2VUYWdbXT4oW10pO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZW5zZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmbG9hdCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbWJlZGRlZCA9IGZhbHNlO1xuXG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdFNlcnZpY2U6IEVsZGVyVG9hc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGFuZ3VhZ2VTZXJ2aWNlOiBFbGRlckxhbmd1YWdlU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5kZWZhdWx0TGFuZ3VhZ2VUYWdzID0gbGFuZ3VhZ2VTZXJ2aWNlLmxhbmd1YWdlcztcblxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IExvY2FsTGlzdERhdGFTb3VyY2UuZnJvbShcbiAgICAgIFtdLFxuICAgICAgJ2xvY2FsZScsXG4gICAgICBTb3J0VXRpbC5zb3J0RGF0YSxcbiAgICAgIEZpbHRlclV0aWwuZmlsdGVyRGF0YVxuICAgICk7XG5cbiAgICBjb25zdCBsb2NhbGl6YWJsZXMkID0gY29tYmluZUxhdGVzdChcbiAgICAgIFtcbiAgICAgICAgdGhpcy52YWx1ZSQucGlwZShtYXAodmFsdWUgPT4gdmFsdWUgPz8gW10pKSxcbiAgICAgICAgdGhpcy5kZWZhdWx0TGFuZ3VhZ2VUYWdzJFxuICAgICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2xvY2FsaXphYmxlcywgZGVzaXJlZFRhZ3NdKSA9PiB0aGlzLmVuc3VyZURlc2lyZWRUYWdzUHJlc2VudChsb2NhbGl6YWJsZXMsIGRlc2lyZWRUYWdzKSlcbiAgICApO1xuXG4gICAgbG9jYWxpemFibGVzJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICB2YWx1ZXMgPT4gdGhpcy5kYXRhU291cmNlLmRhdGEgPSB2YWx1ZXNcbiAgICApO1xuXG4gICAgdGhpcy5kYXRhID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0PFQ+KClcbiAgICAgIC5yZWxvYWRPbkxvY2FsQ2hhbmdlcygpXG4gICAgICAuYnVpbGQodGhpcy5kYXRhU291cmNlKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEuc3RhcnQoW25ldyBTb3J0KCdsb2NhbGUnLCAnYXNjJyldKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgUXVlcnlMaXN0QmluZGluZ1xuICAgICAgLm9mKHRoaXMudGV4dENvbHVtbnNRdWVyeSlcbiAgICAgIC51cGRhdGVkKGNvbHVtbnMgPT4ge1xuICAgICAgICBpZiAoY29sdW1ucz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMudGV4dENvbHVtbnMkLm5leHQoY29sdW1ucyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuYmluZFVudGlsKHRoaXMuZGVzdHJveSQpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGV4dENvbHVtbnMoY29sczogRWxkZXJMb2NhbGl6ZWRUZXh0Q29sdW1uRGlyZWN0aXZlW10pIHtcbiAgICB0aGlzLnRleHRDb2x1bW5zJC5uZXh0KGNvbHMpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkZWZhdWx0TGFuZ3VhZ2VUYWdzKHRhZ3M6IExhbmd1YWdlVGFnW10pIHtcbiAgICB0aGlzLmRlZmF1bHRMYW5ndWFnZVRhZ3MkLm5leHQodGFncyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlZmF1bHRMYW5ndWFnZVRhZ3MoKTogTGFuZ3VhZ2VUYWdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdExhbmd1YWdlVGFncyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBvbk5ld1JlcXVlc3RlZCgpIHtcbiAgICB0aGlzLnRvYXN0U2VydmljZS5pbmZvKCdBZGRpbmcgbmV3IFRyYW5zbGF0aW9ucyBub3QgeWV0IGltcGxlbWVudGVkIScpO1xuICB9XG5cbiAgcHVibGljIG9uUmVtb3ZlUmVxdWVzdGVkKHRvUmVtb3ZlOiBUW10pIHtcbiAgICBpZiAodG9SZW1vdmU/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHJlbW92ZUxvY2FsZXMgPSBuZXcgU2V0KHRvUmVtb3ZlLm1hcChyID0+IHIubG9jYWxlKSk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgdGhpcy52YWx1ZVxuICAgICAgICAgICAgLmZpbHRlcih2ID0+ICFyZW1vdmVMb2NhbGVzLmhhcyh2LmxvY2FsZSkpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ29sdW1uVGV4dFVwZGF0ZWQoXG4gICAgbG9jYWxpemVkOiBULFxuICAgIHRleHRDb2x1bW46IEVsZGVyTG9jYWxpemVkVGV4dENvbHVtbkRpcmVjdGl2ZSxcbiAgICBuZXdUZXh0VmFsdWU6IHN0cmluZyB8IGFueVxuICApOiB2b2lkIHtcbiAgICAoPGFueT5sb2NhbGl6ZWQpW3RleHRDb2x1bW4ubmFtZV0gPSBuZXdUZXh0VmFsdWU7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShbLi4udGhpcy5kYXRhLnNuYXBzaG90LmRhdGFdKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgZW5zdXJlRGVzaXJlZFRhZ3NQcmVzZW50KGxvY2FsaXphYmxlczogVFtdLCBkZXNpcmVkVGFnczogTGFuZ3VhZ2VUYWdbXSk6IFRbXSB7XG4gICAgY29uc3QgbWlzc2luZyA9IGRlc2lyZWRUYWdzLmZpbHRlcihcbiAgICAgIGRUID0+ICFsb2NhbGl6YWJsZXMuc29tZShsb2MgPT4gbG9jLmxvY2FsZSA9PT0gZFQpXG4gICAgKS5tYXAoXG4gICAgICBkVCA9PiA8TG9jYWxpemVkPntsb2NhbGU6IGRUfVxuICAgICk7XG4gICAgaWYgKG1pc3Npbmc/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGxvY2FsaXphYmxlcyA9IFsuLi5sb2NhbGl6YWJsZXMsIC4uLjxUW10+bWlzc2luZ107XG4gICAgfVxuICAgIHJldHVybiBsb2NhbGl6YWJsZXM7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGxcIj5cbiAgPGVsZGVyLXRhYmxlIG1hdFNvcnQgY2xhc3M9XCJmbGV4XCJcbiAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgW3NlbGVjdGlvblZpc2libGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICBbc2VsZWN0aW9uTXVsdGlFbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgW2RlbnNlXT1cImRlbnNlXCJcbiAgICAgICAgICAgICAgIFtmbG9hdF09XCJmbG9hdFwiXG4gICAgICAgICAgICAgICBbZW1iZWRkZWRdPVwiZW1iZWRkZWRcIlxuICA+XG5cbiAgICA8ZWxkZXItZGF0YS10b29sYmFyXG4gICAgICAqZWxkZXJUYWJsZVRvb2xiYXJcbiAgICAgIFtjYW5BZGRdPVwiIWlzTG9ja2VkXCJcbiAgICAgIFtjYW5SZW1vdmVdPVwiIWlzTG9ja2VkXCJcbiAgICAgIFtjYW5Nb3JlXT1cImZhbHNlXCJcbiAgICAgIChyZXF1ZXN0TmV3KT1cIm9uTmV3UmVxdWVzdGVkKClcIlxuICAgICAgKHJlcXVlc3RSZW1vdmUpPVwib25SZW1vdmVSZXF1ZXN0ZWQoJGV2ZW50KVwiXG4gICAgPlxuXG4gICAgICA8bmctdGVtcGxhdGUgZWxkZXJUb29sYmFyQ29udGVudD1cImxlZnQuYWN0aW9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBwbGFjZS1zdGFydC1jZW50ZXJcIj5cbiAgICAgICAgICA8aDQgZWxkZXJDYXJkU3VidGl0bGUgc3R5bGU9XCJtYXJnaW46IDBcIj57e2xhYmVsID8/IHBsYWNlaG9sZGVyfX08L2g0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8L2VsZGVyLWRhdGEtdG9vbGJhcj5cblxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibG9jYWxlXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIHN0eWxlPVwid2lkdGg6IDEwMHB4XCIgbWF0LXNvcnQtaGVhZGVyPkxvY2FsZTwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgbG9jYWxpemVkXCI+XG4gICAgICAgIDxtYXQtY2hpcC1zZXQ+PG1hdC1jaGlwPnt7bG9jYWxpemVkLmxvY2FsZX19PC9tYXQtY2hpcD48L21hdC1jaGlwLXNldD5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0ZXh0Q29sdW1uIG9mIHRleHRDb2x1bW5zJCB8IGFzeW5jXCIgbWF0Q29sdW1uRGVmPVwie3t0ZXh0Q29sdW1uLm5hbWV9fVwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj57e3RleHRDb2x1bW4udGl0bGUgfCB0cmFuc2xhdGV9fTwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgbG9jYWxpemVkXCI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2UtY2VudGVyLWNlbnRlclwiPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZ1bGwtd2lkdGhcIiBhcHBlYXJhbmNlPVwiZmlsbFwiIGVsZGVyRGVuc2U+XG4gICAgICAgICAgICA8IS0tXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7dGV4dENvbHVtbi50aXRsZSB8IHRyYW5zbGF0ZX19ICh7e2xvY2FsaXplZC5sb2NhbGV9fSk8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPCEtLVxuICAgICAgICAgICAgPHNwYW4gbWF0VGV4dFByZWZpeD57e3RleHRDb2x1bW4udGl0bGUgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgbmFtZT1cImkxOG4te3tsb2NhbGl6ZWQubG9jYWxlfX0te3t0ZXh0Q29sdW1uLm5hbWV9fVwiXG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cImxvY2FsaXplZFt0ZXh0Q29sdW1uLm5hbWVdXCIgW25nTW9kZWxPcHRpb25zXT1cInt1cGRhdGVPbjogJ2JsdXInfVwiXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ29sdW1uVGV4dFVwZGF0ZWQobG9jYWxpemVkLCB0ZXh0Q29sdW1uLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkICYmIHRleHRDb2x1bW4ucmVxdWlyZWRcIlxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cblxuXG5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgPC9lbGRlci10YWJsZT5cbjwvZGl2PlxuIl19
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbG9jYWxpemVkLWlucHV0LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvaTE4bi9lbnRpdGllcy9lbGRlci1sb2NhbGl6ZWQtaW5wdXQtdGFibGUvZWxkZXItbG9jYWxpemVkLWlucHV0LXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvaTE4bi9lbnRpdGllcy9lbGRlci1sb2NhbGl6ZWQtaW5wdXQtdGFibGUvZWxkZXItbG9jYWxpemVkLWlucHV0LXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsdUJBQXVCLEVBRXZCLGVBQWUsRUFBNEIsS0FBSyxFQUNqRCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFFMUYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0scURBQXFELENBQUM7QUFDbEcsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTdELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDcEcsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQzVELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDbEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFFN0UsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFHM0YsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDeEcsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDM0csT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFDMUYsT0FBTyxFQUFDLHlCQUF5QixFQUFFLDRCQUE0QixFQUFDLE1BQU0sMkVBQTJFLENBQUM7QUFDbEosT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDOUcsT0FBTyxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw0REFBNEQsQ0FBQzs7Ozs7O0FBVy9GLE1BQU0sT0FBTyxpQ0FDWCxTQUFRLHNCQUEyQjtJQWdDbkM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ21CLFlBQStCLEVBQy9CLGVBQXFDO1FBRXRELEtBQUssRUFBRSxDQUFDO1FBSFMsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBQy9CLG9CQUFlLEdBQWYsZUFBZSxDQUFzQjtRQXRDeEQ7Ozs7b0ZBSTRFO1FBRTNELFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFRdEQsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBc0MsRUFBRSxDQUFDLENBQUM7UUFFNUUseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBR3ZFLFVBQUssR0FBRyxLQUFLLENBQUM7UUFHZCxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBR2QsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdQLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBYzlDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDO1FBRXJELElBQUksQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUN4QyxFQUFFLEVBQ0YsUUFBUSxFQUNSLFFBQVEsQ0FBQyxRQUFRLEVBQ2pCLFVBQVUsQ0FBQyxVQUFVLENBQ3RCLENBQUM7UUFFRixNQUFNLGFBQWEsR0FBRyxhQUFhLENBQ2pDO1lBQ0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxvQkFBb0I7U0FDMUIsQ0FBQyxDQUFDLElBQUksQ0FDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUMvRixDQUFDO1FBRUYsYUFBYSxDQUFDLElBQUksQ0FDaEIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekIsQ0FBQyxTQUFTLENBQ1QsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxNQUFNLENBQ3hDLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFDLEtBQUssRUFBSzthQUN0QyxvQkFBb0IsRUFBRTthQUN0QixLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sZUFBZTtRQUNwQixnQkFBZ0I7YUFDYixFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2FBQ3pCLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNqQixJQUFJLE9BQU8sRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLENBQUM7UUFDSCxDQUFDLENBQUM7YUFDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQ1csV0FBVyxDQUFDLElBQXlDO1FBQzlELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUNXLG1CQUFtQixDQUFDLElBQW1CO1FBQ2hELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzVCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsY0FBYztRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxRQUFhO1FBQ3BDLElBQUksUUFBUSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDZixNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzNELElBQUksQ0FBQyxXQUFXLENBQ2QsSUFBSSxDQUFDLEtBQUs7cUJBQ1AsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUM3QyxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU0sbUJBQW1CLENBQ3hCLFNBQVksRUFDWixVQUE2QyxFQUM3QyxZQUEwQjtRQUVwQixTQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQztRQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsd0JBQXdCLENBQUMsWUFBaUIsRUFBRSxXQUEwQjtRQUM1RSxNQUFNLE9BQU8sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUNoQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLENBQ25ELENBQUMsR0FBRyxDQUNILEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBVyxFQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUMsQ0FBQSxDQUM5QixDQUFDO1FBQ0YsSUFBSSxPQUFPLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLFlBQVksR0FBRyxDQUFDLEdBQUcsWUFBWSxFQUFFLEdBQVEsT0FBTyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7OEdBdEtVLGlDQUFpQztrR0FBakMsaUNBQWlDLG9OQUovQiw2QkFBNkIsQ0FBQyxpQ0FBaUMsQ0FBQywyREFtQjVELGlDQUFpQyxvREM5RHBELGt5RUFrRUEsMEREckJjLG1CQUFtQixrT0FBRSxPQUFPLGtOQUFFLDBCQUEwQixnRUFBRSx5QkFBeUIsc05BQUUsNEJBQTRCLG1HQUFFLDBCQUEwQiw0R0FBRSxZQUFZLHFGQUFFLGdCQUFnQiwrREFBRSxhQUFhLGlGQUFFLGFBQWEsdU1BQUUsVUFBVSx5REFBRSxPQUFPLG1FQUFFLFVBQVUsbUdBQUUsT0FBTyxrU0FBRSxLQUFLLG1IQUFFLFlBQVksNExBQUUsNEJBQTRCLGdJQUFFLFFBQVEsZ1VBQUUsV0FBVyx1MEJBQUUsU0FBUyw2Q0FBRSxlQUFlOzsyRkFFNVYsaUNBQWlDO2tCQVQ3QyxTQUFTOytCQUNJLDZCQUE2QixtQkFHdEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyw2QkFBNkIsbUNBQW1DLGNBQy9ELElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSx5QkFBeUIsRUFBRSw0QkFBNEIsRUFBRSwwQkFBMEIsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSw0QkFBNEIsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUM7eUhBa0JqVyxnQkFBZ0I7c0JBRHRCLGVBQWU7dUJBQUMsaUNBQWlDO2dCQU8zQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsS0FBSztzQkFEWCxLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkErRUssV0FBVztzQkFEckIsS0FBSztnQkFNSyxtQkFBbUI7c0JBRDdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE9uRGVzdHJveSxcbiAgQ29udGVudENoaWxkcmVuLCBRdWVyeUxpc3QsIEFmdGVyVmlld0luaXQsIElucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0Zvcm1GaWVsZEJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy9mb3JtLWZpZWxkLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7TG9jYWxpemVkfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vaTE4bi9lbnRpdHkvbG9jYWxpemVkJztcbmltcG9ydCB7YnVpbGRGb3JtSW50ZWdyYXRpb25Qcm92aWRlcnN9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy90ZW1wbGF0ZS1jb21wb3NpdGUtY29udHJvbCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0lEYXRhQ29udGV4dH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0xvY2FsTGlzdERhdGFTb3VyY2V9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvbG9jYWwvbG9jYWwtbGlzdC1kYXRhLXNvdXJjZSc7XG5pbXBvcnQge1NvcnRVdGlsfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdXRpbHMvc29ydC11dGlsJztcbmltcG9ydCB7RmlsdGVyVXRpbH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3V0aWxzL2ZpbHRlci11dGlsJztcbmltcG9ydCB7RGF0YUNvbnRleHRCdWlsZGVyfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJ1aWxkZXInO1xuaW1wb3J0IHtTb3J0fSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9zb3J0JztcbmltcG9ydCB7UXVlcnlMaXN0QmluZGluZ30gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3V0aWxzL3F1ZXJ5LWxpc3QtYmluZGluZyc7XG5pbXBvcnQge0VsZGVyVG9hc3RTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi90b2FzdHMvZWxkZXItdG9hc3Quc2VydmljZSc7XG5pbXBvcnQge0VsZGVyTG9jYWxpemVkVGV4dENvbHVtbkRpcmVjdGl2ZX0gZnJvbSAnLi4vZWxkZXItbG9jYWxpemVkLXRleHQtY29sdW1uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VsZGVyTGFuZ3VhZ2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9sYW5ndWFnZS9lbGRlci1sYW5ndWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7TGFuZ3VhZ2VUYWd9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9pMThuL2VudGl0eS9sYW5ndWFnZS10YWcnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNYXRJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHtFbGRlckZvcm1GaWVsZERlbnNlRGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9mb3Jtcy9kaXJlY3RpdmVzL2VsZGVyLWZvcm0tZmllbGQtZGVuc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7TmdGb3IsIEFzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TWF0Q2hpcFNldCwgTWF0Q2hpcH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHtNYXRDb2x1bW5EZWYsIE1hdEhlYWRlckNlbGxEZWYsIE1hdEhlYWRlckNlbGwsIE1hdENlbGxEZWYsIE1hdENlbGx9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7RWxkZXJDYXJkU3VidGl0bGVEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uL2NhcmRzL2VsZGVyLWNhcmQvZWxkZXItY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHtFbGRlckRhdGFUb29sYmFyQ29tcG9uZW50LCBFbGRlclRvb2xiYXJDb250ZW50RGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi9kYXRhLXZpZXcvY29tbW9uL2VsZGVyLWRhdGEtdG9vbGJhci9lbGRlci1kYXRhLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7RWxkZXJUYWJsZVRvb2xiYXJEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uL2RhdGEtdmlldy90YWJsZS9lbGRlci10YWJsZS9lbGRlci10YWJsZS10b29sYmFyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge01hdFNvcnQsIE1hdFNvcnRIZWFkZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtFbGRlclRhYmxlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlbGRlci1sb2NhbGl6ZWQtaW5wdXQtdGFibGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1sb2NhbGl6ZWQtaW5wdXQtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2VsZGVyLWxvY2FsaXplZC1pbnB1dC10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogYnVpbGRGb3JtSW50ZWdyYXRpb25Qcm92aWRlcnMoRWxkZXJMb2NhbGl6ZWRJbnB1dFRhYmxlQ29tcG9uZW50KSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtFbGRlclRhYmxlQ29tcG9uZW50LCBNYXRTb3J0LCBFbGRlclRhYmxlVG9vbGJhckRpcmVjdGl2ZSwgRWxkZXJEYXRhVG9vbGJhckNvbXBvbmVudCwgRWxkZXJUb29sYmFyQ29udGVudERpcmVjdGl2ZSwgRWxkZXJDYXJkU3VidGl0bGVEaXJlY3RpdmUsIE1hdENvbHVtbkRlZiwgTWF0SGVhZGVyQ2VsbERlZiwgTWF0SGVhZGVyQ2VsbCwgTWF0U29ydEhlYWRlciwgTWF0Q2VsbERlZiwgTWF0Q2VsbCwgTWF0Q2hpcFNldCwgTWF0Q2hpcCwgTmdGb3IsIE1hdEZvcm1GaWVsZCwgRWxkZXJGb3JtRmllbGREZW5zZURpcmVjdGl2ZSwgTWF0SW5wdXQsIEZvcm1zTW9kdWxlLCBBc3luY1BpcGUsIFRyYW5zbGF0ZU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJMb2NhbGl6ZWRJbnB1dFRhYmxlQ29tcG9uZW50PFQgZXh0ZW5kcyBMb2NhbGl6ZWQ+XG4gIGV4dGVuZHMgRm9ybUZpZWxkQmFzZUNvbXBvbmVudDxUW10+IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTb3VyY2U6IExvY2FsTGlzdERhdGFTb3VyY2U8VD47XG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiBJRGF0YUNvbnRleHQ8VD47XG5cblxuICBAQ29udGVudENoaWxkcmVuKEVsZGVyTG9jYWxpemVkVGV4dENvbHVtbkRpcmVjdGl2ZSlcbiAgcHVibGljIHRleHRDb2x1bW5zUXVlcnk6IFF1ZXJ5TGlzdDxFbGRlckxvY2FsaXplZFRleHRDb2x1bW5EaXJlY3RpdmU+O1xuICBwdWJsaWMgcmVhZG9ubHkgdGV4dENvbHVtbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbGRlckxvY2FsaXplZFRleHRDb2x1bW5EaXJlY3RpdmVbXT4oW10pO1xuXG4gIHB1YmxpYyByZWFkb25seSBkZWZhdWx0TGFuZ3VhZ2VUYWdzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TGFuZ3VhZ2VUYWdbXT4oW10pO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZW5zZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmbG9hdCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbWJlZGRlZCA9IGZhbHNlO1xuXG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdFNlcnZpY2U6IEVsZGVyVG9hc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGFuZ3VhZ2VTZXJ2aWNlOiBFbGRlckxhbmd1YWdlU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5kZWZhdWx0TGFuZ3VhZ2VUYWdzID0gbGFuZ3VhZ2VTZXJ2aWNlLmxhbmd1YWdlcztcblxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IExvY2FsTGlzdERhdGFTb3VyY2UuZnJvbShcbiAgICAgIFtdLFxuICAgICAgJ2xvY2FsZScsXG4gICAgICBTb3J0VXRpbC5zb3J0RGF0YSxcbiAgICAgIEZpbHRlclV0aWwuZmlsdGVyRGF0YVxuICAgICk7XG5cbiAgICBjb25zdCBsb2NhbGl6YWJsZXMkID0gY29tYmluZUxhdGVzdChcbiAgICAgIFtcbiAgICAgICAgdGhpcy52YWx1ZSQucGlwZShtYXAodmFsdWUgPT4gdmFsdWUgPz8gW10pKSxcbiAgICAgICAgdGhpcy5kZWZhdWx0TGFuZ3VhZ2VUYWdzJFxuICAgICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2xvY2FsaXphYmxlcywgZGVzaXJlZFRhZ3NdKSA9PiB0aGlzLmVuc3VyZURlc2lyZWRUYWdzUHJlc2VudChsb2NhbGl6YWJsZXMsIGRlc2lyZWRUYWdzKSlcbiAgICApO1xuXG4gICAgbG9jYWxpemFibGVzJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICB2YWx1ZXMgPT4gdGhpcy5kYXRhU291cmNlLmRhdGEgPSB2YWx1ZXNcbiAgICApO1xuXG4gICAgdGhpcy5kYXRhID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0PFQ+KClcbiAgICAgIC5yZWxvYWRPbkxvY2FsQ2hhbmdlcygpXG4gICAgICAuYnVpbGQodGhpcy5kYXRhU291cmNlKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEuc3RhcnQoW25ldyBTb3J0KCdsb2NhbGUnLCAnYXNjJyldKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgUXVlcnlMaXN0QmluZGluZ1xuICAgICAgLm9mKHRoaXMudGV4dENvbHVtbnNRdWVyeSlcbiAgICAgIC51cGRhdGVkKGNvbHVtbnMgPT4ge1xuICAgICAgICBpZiAoY29sdW1ucz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMudGV4dENvbHVtbnMkLm5leHQoY29sdW1ucyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuYmluZFVudGlsKHRoaXMuZGVzdHJveSQpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdGV4dENvbHVtbnMoY29sczogRWxkZXJMb2NhbGl6ZWRUZXh0Q29sdW1uRGlyZWN0aXZlW10pIHtcbiAgICB0aGlzLnRleHRDb2x1bW5zJC5uZXh0KGNvbHMpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkZWZhdWx0TGFuZ3VhZ2VUYWdzKHRhZ3M6IExhbmd1YWdlVGFnW10pIHtcbiAgICB0aGlzLmRlZmF1bHRMYW5ndWFnZVRhZ3MkLm5leHQodGFncyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlZmF1bHRMYW5ndWFnZVRhZ3MoKTogTGFuZ3VhZ2VUYWdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdExhbmd1YWdlVGFncyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBvbk5ld1JlcXVlc3RlZCgpIHtcbiAgICB0aGlzLnRvYXN0U2VydmljZS5pbmZvKCdBZGRpbmcgbmV3IFRyYW5zbGF0aW9ucyBub3QgeWV0IGltcGxlbWVudGVkIScpO1xuICB9XG5cbiAgcHVibGljIG9uUmVtb3ZlUmVxdWVzdGVkKHRvUmVtb3ZlOiBUW10pIHtcbiAgICBpZiAodG9SZW1vdmU/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHJlbW92ZUxvY2FsZXMgPSBuZXcgU2V0KHRvUmVtb3ZlLm1hcChyID0+IHIubG9jYWxlKSk7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICAgICAgdGhpcy52YWx1ZVxuICAgICAgICAgICAgLmZpbHRlcih2ID0+ICFyZW1vdmVMb2NhbGVzLmhhcyh2LmxvY2FsZSkpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ29sdW1uVGV4dFVwZGF0ZWQoXG4gICAgbG9jYWxpemVkOiBULFxuICAgIHRleHRDb2x1bW46IEVsZGVyTG9jYWxpemVkVGV4dENvbHVtbkRpcmVjdGl2ZSxcbiAgICBuZXdUZXh0VmFsdWU6IHN0cmluZyB8IGFueVxuICApOiB2b2lkIHtcbiAgICAoPGFueT5sb2NhbGl6ZWQpW3RleHRDb2x1bW4ubmFtZV0gPSBuZXdUZXh0VmFsdWU7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShbLi4udGhpcy5kYXRhLnNuYXBzaG90LmRhdGFdKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgZW5zdXJlRGVzaXJlZFRhZ3NQcmVzZW50KGxvY2FsaXphYmxlczogVFtdLCBkZXNpcmVkVGFnczogTGFuZ3VhZ2VUYWdbXSk6IFRbXSB7XG4gICAgY29uc3QgbWlzc2luZyA9IGRlc2lyZWRUYWdzLmZpbHRlcihcbiAgICAgIGRUID0+ICFsb2NhbGl6YWJsZXMuc29tZShsb2MgPT4gbG9jLmxvY2FsZSA9PT0gZFQpXG4gICAgKS5tYXAoXG4gICAgICBkVCA9PiA8TG9jYWxpemVkPntsb2NhbGU6IGRUfVxuICAgICk7XG4gICAgaWYgKG1pc3Npbmc/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGxvY2FsaXphYmxlcyA9IFsuLi5sb2NhbGl6YWJsZXMsIC4uLjxUW10+bWlzc2luZ107XG4gICAgfVxuICAgIHJldHVybiBsb2NhbGl6YWJsZXM7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGxcIj5cbiAgPGVsZGVyLXRhYmxlIG1hdFNvcnQgY2xhc3M9XCJmbGV4XCJcbiAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFcIlxuICAgICAgICAgICAgICAgW3NlbGVjdGlvblZpc2libGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICBbc2VsZWN0aW9uTXVsdGlFbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgW2RlbnNlXT1cImRlbnNlXCJcbiAgICAgICAgICAgICAgIFtmbG9hdF09XCJmbG9hdFwiXG4gICAgICAgICAgICAgICBbZW1iZWRkZWRdPVwiZW1iZWRkZWRcIlxuICA+XG5cbiAgICA8ZWxkZXItZGF0YS10b29sYmFyXG4gICAgICAqZWxkZXJUYWJsZVRvb2xiYXJcbiAgICAgIFtjYW5BZGRdPVwiIWlzTG9ja2VkXCJcbiAgICAgIFtjYW5SZW1vdmVdPVwiIWlzTG9ja2VkXCJcbiAgICAgIFtjYW5Nb3JlXT1cImZhbHNlXCJcbiAgICAgIChyZXF1ZXN0TmV3KT1cIm9uTmV3UmVxdWVzdGVkKClcIlxuICAgICAgKHJlcXVlc3RSZW1vdmUpPVwib25SZW1vdmVSZXF1ZXN0ZWQoJGV2ZW50KVwiXG4gICAgPlxuXG4gICAgICA8bmctdGVtcGxhdGUgZWxkZXJUb29sYmFyQ29udGVudD1cImxlZnQuYWN0aW9uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBwbGFjZS1zdGFydC1jZW50ZXJcIj5cbiAgICAgICAgICA8aDQgZWxkZXJDYXJkU3VidGl0bGUgc3R5bGU9XCJtYXJnaW46IDBcIj57e2xhYmVsID8/IHBsYWNlaG9sZGVyfX08L2g0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8L2VsZGVyLWRhdGEtdG9vbGJhcj5cblxuICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibG9jYWxlXCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIHN0eWxlPVwid2lkdGg6IDEwMHB4XCIgbWF0LXNvcnQtaGVhZGVyPkxvY2FsZTwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgbG9jYWxpemVkXCI+XG4gICAgICAgIDxtYXQtY2hpcC1zZXQ+PG1hdC1jaGlwPnt7bG9jYWxpemVkLmxvY2FsZX19PC9tYXQtY2hpcD48L21hdC1jaGlwLXNldD5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0ZXh0Q29sdW1uIG9mIHRleHRDb2x1bW5zJCB8IGFzeW5jXCIgbWF0Q29sdW1uRGVmPVwie3t0ZXh0Q29sdW1uLm5hbWV9fVwiPlxuICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj57e3RleHRDb2x1bW4udGl0bGUgfCB0cmFuc2xhdGV9fTwvdGg+XG4gICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgbG9jYWxpemVkXCI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2UtY2VudGVyLWNlbnRlclwiPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZ1bGwtd2lkdGhcIiBhcHBlYXJhbmNlPVwiZmlsbFwiIGVsZGVyRGVuc2U+XG4gICAgICAgICAgICA8IS0tXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7dGV4dENvbHVtbi50aXRsZSB8IHRyYW5zbGF0ZX19ICh7e2xvY2FsaXplZC5sb2NhbGV9fSk8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPCEtLVxuICAgICAgICAgICAgPHNwYW4gbWF0VGV4dFByZWZpeD57e3RleHRDb2x1bW4udGl0bGUgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgICAgIC0tPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgbmFtZT1cImkxOG4te3tsb2NhbGl6ZWQubG9jYWxlfX0te3t0ZXh0Q29sdW1uLm5hbWV9fVwiXG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cImxvY2FsaXplZFt0ZXh0Q29sdW1uLm5hbWVdXCIgW25nTW9kZWxPcHRpb25zXT1cInt1cGRhdGVPbjogJ2JsdXInfVwiXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQ29sdW1uVGV4dFVwZGF0ZWQobG9jYWxpemVkLCB0ZXh0Q29sdW1uLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkICYmIHRleHRDb2x1bW4ucmVxdWlyZWRcIlxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cblxuXG5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgPC9lbGRlci10YWJsZT5cbjwvZGl2PlxuIl19
@@ -12,10 +12,10 @@ export class ElderLocalizedTextColumnDirective {
12
12
  constructor() {
13
13
  this.required = false;
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLocalizedTextColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
16
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: ElderLocalizedTextColumnDirective, isStandalone: true, selector: "elder-localized-text-column", inputs: { name: "name", title: "title", required: "required" }, ngImport: i0 }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderLocalizedTextColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
16
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ElderLocalizedTextColumnDirective, isStandalone: true, selector: "elder-localized-text-column", inputs: { name: "name", title: "title", required: "required" }, ngImport: i0 }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLocalizedTextColumnDirective, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderLocalizedTextColumnDirective, decorators: [{
19
19
  type: Directive,
20
20
  args: [{
21
21
  selector: 'elder-localized-text-column',