@elderbyte/ngx-starter 18.12.2 → 18.12.3

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 (319) hide show
  1. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +3 -3
  2. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +3 -3
  3. package/esm2022/lib/common/forms/elder-from-field-base.mjs +3 -3
  4. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +3 -3
  5. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +3 -3
  6. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +3 -3
  7. package/esm2022/lib/common/forms/form-field-base.component.mjs +3 -3
  8. package/esm2022/lib/common/forms/multi-model-base.component.mjs +3 -3
  9. package/esm2022/lib/common/forms/template-composite-control.mjs +3 -3
  10. package/esm2022/lib/common/forms/value-accessor-base.mjs +3 -3
  11. package/esm2022/lib/common/http/http-client-builder.service.mjs +3 -3
  12. package/esm2022/lib/common/http/http-client-pristine.mjs +3 -3
  13. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +3 -3
  14. package/esm2022/lib/common/time/temporal-util.mjs +13 -1
  15. package/esm2022/lib/common/url/elder-router.service.mjs +3 -3
  16. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +3 -3
  17. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +3 -3
  18. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +4 -4
  19. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +3 -3
  20. package/esm2022/lib/components/auditing/elder-audit.module.mjs +4 -4
  21. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +9 -9
  22. package/esm2022/lib/components/badge/elder-badge.directive.mjs +3 -3
  23. package/esm2022/lib/components/badge/elder-badge.module.mjs +4 -4
  24. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -3
  25. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +4 -4
  26. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +3 -3
  27. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +3 -3
  28. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +3 -3
  29. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +4 -4
  30. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -3
  31. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +18 -18
  32. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +4 -4
  33. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +3 -3
  34. package/esm2022/lib/components/chips/elder-chips.module.mjs +4 -4
  35. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +4 -4
  36. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +3 -3
  37. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +3 -3
  38. package/esm2022/lib/components/containers/elder-containers.module.mjs +4 -4
  39. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +3 -3
  40. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +3 -3
  41. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +3 -3
  42. package/esm2022/lib/components/csv/elder-csv.module.mjs +4 -4
  43. package/esm2022/lib/components/currency/elder-currency.module.mjs +4 -4
  44. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +3 -3
  45. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +4 -4
  46. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +3 -3
  47. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +3 -3
  48. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +3 -3
  49. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
  50. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +3 -3
  51. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +3 -3
  52. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-dc.directive.mjs +3 -3
  53. package/esm2022/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.mjs +3 -3
  54. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +3 -3
  55. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +4 -4
  56. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +6 -6
  57. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +3 -3
  58. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +3 -3
  59. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +3 -3
  60. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +9 -9
  61. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +4 -4
  62. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +3 -3
  63. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +3 -3
  64. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +3 -3
  65. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +3 -3
  66. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +4 -4
  67. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +3 -3
  68. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +3 -3
  69. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +3 -3
  70. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +4 -4
  71. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +3 -3
  72. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +3 -3
  73. package/esm2022/lib/components/data-view/table/elder-center-cell.directive.mjs +3 -3
  74. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +3 -3
  75. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +3 -3
  76. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +3 -3
  77. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +3 -3
  78. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +3 -3
  79. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +3 -3
  80. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +3 -3
  81. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +3 -3
  82. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +3 -3
  83. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +4 -4
  84. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +3 -3
  85. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +3 -3
  86. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +4 -4
  87. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +3 -3
  88. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +3 -3
  89. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +3 -3
  90. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +3 -3
  91. package/esm2022/lib/components/errors/elder-error.module.mjs +4 -4
  92. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +3 -3
  93. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +3 -3
  94. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +4 -4
  95. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -3
  96. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +3 -3
  97. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +3 -3
  98. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +3 -3
  99. package/esm2022/lib/components/files/elder-file-select.directive.mjs +3 -3
  100. package/esm2022/lib/components/files/elder-file.module.mjs +4 -4
  101. package/esm2022/lib/components/files/file-select/file-select.component.mjs +3 -3
  102. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +3 -3
  103. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +3 -3
  104. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +3 -3
  105. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +3 -3
  106. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +3 -3
  107. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +3 -3
  108. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +3 -3
  109. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +3 -3
  110. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +3 -3
  111. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +4 -4
  112. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +3 -3
  113. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +3 -3
  114. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +3 -3
  115. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +3 -3
  116. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +3 -3
  117. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +3 -3
  118. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +3 -3
  119. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +3 -3
  120. package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +3 -3
  121. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +3 -3
  122. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +3 -3
  123. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +3 -3
  124. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +3 -3
  125. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +3 -3
  126. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +3 -3
  127. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +3 -3
  128. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +3 -3
  129. package/esm2022/lib/components/forms/elder-forms.module.mjs +4 -4
  130. package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +3 -3
  131. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +3 -3
  132. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +3 -3
  133. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +3 -3
  134. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +3 -3
  135. package/esm2022/lib/components/forms/search/elder-search.module.mjs +4 -4
  136. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +3 -3
  137. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +3 -3
  138. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +3 -3
  139. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +4 -4
  140. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +3 -3
  141. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +3 -3
  142. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -4
  143. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +3 -3
  144. package/esm2022/lib/components/headers/elder-header.module.mjs +4 -4
  145. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +3 -3
  146. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +4 -4
  147. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +3 -3
  148. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +3 -3
  149. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +3 -3
  150. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +3 -3
  151. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +3 -3
  152. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +3 -3
  153. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +3 -3
  154. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +3 -3
  155. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +3 -3
  156. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +3 -3
  157. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +4 -4
  158. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +3 -3
  159. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +3 -3
  160. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +4 -4
  161. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +3 -3
  162. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +3 -3
  163. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +4 -4
  164. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +3 -3
  165. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +3 -3
  166. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +3 -3
  167. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +3 -3
  168. package/esm2022/lib/components/iframes/iframe.service.mjs +3 -3
  169. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +3 -3
  170. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +3 -3
  171. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +4 -4
  172. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +3 -3
  173. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +3 -3
  174. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +3 -3
  175. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +4 -4
  176. package/esm2022/lib/components/labels/elder-labels.module.mjs +4 -4
  177. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +3 -3
  178. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +3 -3
  179. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +3 -3
  180. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +3 -3
  181. package/esm2022/lib/components/measures/elder-measures.module.mjs +8 -8
  182. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +3 -3
  183. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +3 -3
  184. package/esm2022/lib/components/measures/elder-unit.service.mjs +3 -3
  185. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +3 -3
  186. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +3 -3
  187. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +3 -3
  188. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +3 -3
  189. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +3 -3
  190. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +3 -3
  191. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +4 -4
  192. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +4 -4
  193. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +3 -3
  194. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +3 -3
  195. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -3
  196. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +3 -3
  197. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +4 -4
  198. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +3 -3
  199. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +3 -3
  200. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +3 -3
  201. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +3 -3
  202. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +3 -3
  203. package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +3 -3
  204. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +3 -3
  205. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +3 -3
  206. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +4 -4
  207. package/esm2022/lib/components/page/exit-guard/page-exit-guard.module.mjs +4 -4
  208. package/esm2022/lib/components/page/exit-guard/page-exit-guard.service.mjs +3 -3
  209. package/esm2022/lib/components/page/exit-guard/page-exit-lock/page-exit-lock.component.mjs +3 -3
  210. package/esm2022/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.mjs +3 -3
  211. package/esm2022/lib/components/page/exit-guard/page-exit-lock-overview/page-exit-lock-overview.component.mjs +3 -3
  212. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +3 -3
  213. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +3 -3
  214. package/esm2022/lib/components/panels/elder-panel.module.mjs +4 -4
  215. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +3 -3
  216. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +3 -3
  217. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +9 -9
  218. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +3 -3
  219. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +4 -4
  220. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +3 -3
  221. package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +3 -3
  222. package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +3 -3
  223. package/esm2022/lib/components/select/elder-select-base.mjs +3 -3
  224. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +9 -9
  225. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +3 -3
  226. package/esm2022/lib/components/select/elder-select-value.directive.mjs +3 -3
  227. package/esm2022/lib/components/select/elder-select.module.mjs +4 -4
  228. package/esm2022/lib/components/select/filter/elder-chips-include-exclude.directive.mjs +3 -3
  229. package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +3 -3
  230. package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +3 -3
  231. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +3 -3
  232. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +3 -3
  233. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +3 -3
  234. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +3 -3
  235. package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +3 -3
  236. package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +3 -3
  237. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +3 -3
  238. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +3 -3
  239. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
  240. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +3 -3
  241. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +3 -3
  242. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +3 -3
  243. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +3 -3
  244. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +4 -4
  245. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +3 -3
  246. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +3 -3
  247. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +3 -3
  248. package/esm2022/lib/components/shell/elder-shell.module.mjs +4 -4
  249. package/esm2022/lib/components/shell/elder-shell.service.mjs +3 -3
  250. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +3 -3
  251. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +12 -12
  252. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +3 -3
  253. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +3 -3
  254. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +3 -3
  255. package/esm2022/lib/components/tabs/elder-tab.module.mjs +4 -4
  256. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +3 -3
  257. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +3 -3
  258. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +3 -3
  259. package/esm2022/lib/components/theme/elder-theme.directive.mjs +3 -3
  260. package/esm2022/lib/components/theme/elder-theme.module.mjs +4 -4
  261. package/esm2022/lib/components/theme/elder-theme.service.mjs +3 -3
  262. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +3 -3
  263. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +3 -3
  264. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +3 -3
  265. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +3 -3
  266. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +3 -3
  267. package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker-binding.directive.mjs +7 -12
  268. package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker-toggle/elder-interval-picker-toggle.component.mjs +83 -81
  269. package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.component.mjs +82 -99
  270. package/esm2022/lib/components/time/elder-interval-picker/model/interval-picker-model-editor.mjs +284 -0
  271. package/esm2022/lib/components/time/elder-interval-picker/model/interval-picker-model.mjs +445 -0
  272. package/esm2022/lib/components/time/elder-interval-picker/model/plain-date-interval-message-renderer.mjs +37 -0
  273. package/esm2022/lib/components/time/elder-interval-picker/model/plain-temporal-duration-message-renderer.mjs +25 -0
  274. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +3 -3
  275. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +3 -3
  276. package/esm2022/lib/components/time/elder-time.module.mjs +4 -4
  277. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +3 -3
  278. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +3 -3
  279. package/esm2022/lib/components/toasts/elder-toast.module.mjs +4 -4
  280. package/esm2022/lib/components/toasts/elder-toast.service.mjs +3 -3
  281. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +3 -3
  282. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +4 -4
  283. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +3 -3
  284. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +3 -3
  285. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +4 -4
  286. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +3 -3
  287. package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +3 -3
  288. package/esm2022/lib/features/kafent/access-token-provider.mjs +3 -3
  289. package/esm2022/lib/features/kafent/kafent-config.mjs +3 -3
  290. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +3 -3
  291. package/esm2022/lib/features/kafent/kafent-event.service.mjs +3 -3
  292. package/esm2022/lib/features/kafent/kafent.module.mjs +4 -4
  293. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +3 -3
  294. package/esm2022/lib/pipes/bytes.pipe.mjs +3 -3
  295. package/esm2022/lib/pipes/elder-pipes.module.mjs +10 -10
  296. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +3 -3
  297. package/esm2022/lib/pipes/elder-round.pipe.mjs +3 -3
  298. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +3 -3
  299. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +3 -3
  300. package/esm2022/lib/pipes/iso-duration.pipe.mjs +3 -3
  301. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +3 -3
  302. package/esm2022/lib/pipes/iso-interval.pipe.mjs +3 -3
  303. package/esm2022/lib/pipes/time-ago.pipe.mjs +3 -3
  304. package/esm2022/lib/pipes/time-duration.pipe.mjs +3 -3
  305. package/esm2022/lib/pipes/weight.pipe.mjs +3 -3
  306. package/fesm2022/elderbyte-ngx-starter.mjs +1643 -1575
  307. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  308. package/lib/common/time/temporal-util.d.ts +2 -0
  309. package/lib/components/time/elder-interval-picker/elder-interval-picker-binding.directive.d.ts +3 -6
  310. package/lib/components/time/elder-interval-picker/elder-interval-picker-toggle/elder-interval-picker-toggle.component.d.ts +25 -18
  311. package/lib/components/time/elder-interval-picker/elder-interval-picker.component.d.ts +19 -25
  312. package/lib/components/time/elder-interval-picker/model/interval-picker-model-editor.d.ts +77 -0
  313. package/lib/components/time/elder-interval-picker/model/interval-picker-model.d.ts +113 -0
  314. package/lib/components/time/elder-interval-picker/model/plain-date-interval-message-renderer.d.ts +7 -0
  315. package/lib/components/time/elder-interval-picker/model/plain-temporal-duration-message-renderer.d.ts +4 -0
  316. package/package.json +1 -1
  317. package/src/assets/i18n/fr.json +123 -0
  318. package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.service.mjs +0 -708
  319. package/lib/components/time/elder-interval-picker/elder-interval-picker.service.d.ts +0 -132
@@ -0,0 +1,445 @@
1
+ import { computed, effect, EventEmitter, Injectable, signal, untracked } from '@angular/core';
2
+ import { DateRange } from '@angular/material/datepicker';
3
+ import { LoggerFactory } from '@elderbyte/ts-logger';
4
+ import { Temporal } from '@js-temporal/polyfill';
5
+ import { Interval } from '../../../../common/time/interval';
6
+ import { TemporalPlainDateInterval } from '../../../../common/time/temporal-plain-date-interval';
7
+ import { TemporalUtil } from '../../../../common/time/temporal-util';
8
+ import { TimeUtil } from '../../../../common/time/time-util';
9
+ import { IntervalPickerModelEditor } from './interval-picker-model-editor';
10
+ import { PlainDateIntervalMessageRenderer } from './plain-date-interval-message-renderer';
11
+ import { PlainTemporalDurationMessageRenderer } from './plain-temporal-duration-message-renderer';
12
+ import * as i0 from "@angular/core";
13
+ const defaultCalendarMode = 'days';
14
+ export class IntervalPickerModel {
15
+ /***************************************************************************
16
+ * *
17
+ * Constructor *
18
+ * *
19
+ **************************************************************************/
20
+ constructor() {
21
+ /***************************************************************************
22
+ * *
23
+ * Fields *
24
+ * *
25
+ **************************************************************************/
26
+ this.log = LoggerFactory.getLogger(this.constructor.name);
27
+ this._dateChangeEmitter = new EventEmitter();
28
+ this.calendarMode = signal(defaultCalendarMode);
29
+ this._startDate = signal(null);
30
+ this._endDate = signal(null);
31
+ this._startTime = signal(Temporal.PlainTime.from('00:00'));
32
+ this._endTime = signal(Temporal.PlainTime.from('00:00'));
33
+ // Anchor
34
+ this.baseReferenceDate = signal(Temporal.Now.plainDateISO());
35
+ this.baseReferenceTime = signal(Temporal.Now.plainTimeISO());
36
+ this.fixedAnchorDate = signal(null);
37
+ this.fixedAnchorTime = signal(Temporal.PlainTime.from('00:00'));
38
+ this.isEmittingOnChange = signal(true);
39
+ this.isUpdatingIntervalOnAnchorChange = signal(false);
40
+ this._isInitialized = false;
41
+ this.isFixedAnchorDateSet = computed(() => {
42
+ return !!this.fixedAnchorDate();
43
+ });
44
+ this.anchorDate = computed(() => {
45
+ if (this.fixedAnchorDate()) {
46
+ return this.fixedAnchorDate();
47
+ }
48
+ return this.baseReferenceDate();
49
+ });
50
+ this.anchorTime = computed(() => {
51
+ if (this.fixedAnchorDate() && this.fixedAnchorTime()) {
52
+ return this.fixedAnchorTime();
53
+ }
54
+ return this.baseReferenceTime();
55
+ });
56
+ this.anchorDateTime = computed(() => {
57
+ return this.anchorDate().toPlainDateTime(this.anchorTime());
58
+ });
59
+ this.dateRange = computed(() => {
60
+ if (!this.isStartAndEndDatesSet()) {
61
+ return null;
62
+ }
63
+ return new TemporalPlainDateInterval(this.startDate(), this.endDate());
64
+ });
65
+ this.dateRangeForCalendar = computed(() => {
66
+ if (!this.isStartAndEndDatesSet()) {
67
+ return null;
68
+ }
69
+ const startDate = TemporalUtil.getJSDateFromPlainDateTime(this.startDate());
70
+ const endDate = TemporalUtil.getJSDateFromPlainDateTime(this.endDate());
71
+ return new DateRange(startDate, endDate);
72
+ });
73
+ this.isStartAndEndDatesEmpty = computed(() => {
74
+ return !this.startDate() && !this.endDate();
75
+ });
76
+ this.isStartAndEndDatesSet = computed(() => {
77
+ return !!(this.startDate() && this.endDate());
78
+ });
79
+ this.isRangeNotSet = computed(() => {
80
+ return !this.isStartAndEndDatesSet();
81
+ });
82
+ this.startDateTime = computed(() => {
83
+ if (!this.startDate()) {
84
+ return null;
85
+ }
86
+ if (this.startTime()) {
87
+ return this.startDate().toPlainDateTime(this.startTime());
88
+ }
89
+ return this.startDate();
90
+ });
91
+ this.endDateTime = computed(() => {
92
+ if (!this.endDate()) {
93
+ return null;
94
+ }
95
+ if (this.endTime()) {
96
+ return this.endDate().toPlainDateTime(this.endTime());
97
+ }
98
+ return this.endDate();
99
+ });
100
+ this.startDateAsJSDate = computed(() => {
101
+ if (!this.startDate()) {
102
+ return null;
103
+ }
104
+ return TemporalUtil.getJSDateFromPlainDateTime(this.startDate());
105
+ });
106
+ this.endDateAsJSDate = computed(() => {
107
+ if (!this.endDate()) {
108
+ return null;
109
+ }
110
+ return TemporalUtil.getJSDateFromPlainDateTime(this.endDate());
111
+ });
112
+ this.startDateTimeAsJSDate = computed(() => {
113
+ if (!this.startDateTime()) {
114
+ return null;
115
+ }
116
+ return TemporalUtil.getJSDateFromPlainDateTime(this.startDateTime());
117
+ });
118
+ this.endDateTimeAsJSDate = computed(() => {
119
+ if (!this.endDateTime()) {
120
+ return null;
121
+ }
122
+ return TemporalUtil.getJSDateFromPlainDateTime(this.endDateTime());
123
+ });
124
+ this.viewIntervalMessage = computed(() => PlainDateIntervalMessageRenderer.toMessage(this.calendarMode(), this.dateRange()));
125
+ this.deltaHumanReadable = computed(() => {
126
+ if (this.isStartAndEndDatesEmpty()) {
127
+ return '';
128
+ }
129
+ const duration = this.deltaAsTemporalDuration(this.startDateTime(), this.endDateTime());
130
+ return PlainTemporalDurationMessageRenderer.toMessage(duration);
131
+ });
132
+ this.getStartTimeString = computed(() => {
133
+ return TemporalUtil.getHtmlTimeStringFromPlainTime(this.startTime());
134
+ });
135
+ this.getEndTimeString = computed(() => {
136
+ return TemporalUtil.getHtmlTimeStringFromPlainTime(this.endTime());
137
+ });
138
+ this.getAnchorTimeString = computed(() => {
139
+ return TemporalUtil.getHtmlTimeStringFromPlainTime(this.fixedAnchorTime());
140
+ });
141
+ this.getAnchorPointAsLocaleDate = computed(() => {
142
+ const anchorPoint = this.fixedAnchorDate();
143
+ if (!anchorPoint) {
144
+ return null;
145
+ }
146
+ const jsDate = TemporalUtil.getJSDateFromPlainDateTime(anchorPoint);
147
+ const localeDate = TimeUtil.dateToLocalDate(jsDate);
148
+ return localeDate;
149
+ });
150
+ this.startDateHtmlString = computed(() => {
151
+ return TemporalUtil.getHtmlDateString(this.startDateTime());
152
+ });
153
+ this.endDateHtmlString = computed(() => {
154
+ return TemporalUtil.getHtmlDateString(this.endDateTime());
155
+ });
156
+ this.isStartTimeSetAndNotMidnight = computed(() => {
157
+ if (!this.startTime()) {
158
+ return false;
159
+ }
160
+ return (this.startTime().hour !== 0 || this.startTime().minute !== 0 || this.startTime().second !== 0);
161
+ });
162
+ this.isEndTimeSetAndNotMidnight = computed(() => {
163
+ if (!this.endTime()) {
164
+ return false;
165
+ }
166
+ return this.endTime().hour !== 0 || this.endTime().minute !== 0 || this.endTime().second !== 0;
167
+ });
168
+ this.isFixedAnchorTimeSetAndNotMidnight = computed(() => {
169
+ if (!this.fixedAnchorTime()) {
170
+ return false;
171
+ }
172
+ return (this.fixedAnchorTime().hour !== 0 ||
173
+ this.fixedAnchorTime().minute !== 0 ||
174
+ this.fixedAnchorTime().second !== 0);
175
+ });
176
+ this.editor = new IntervalPickerModelEditor(this);
177
+ effect(() => {
178
+ const startDateTime = this.startDateTime();
179
+ const endDateTime = this.endDateTime();
180
+ if (this.isEmittingOnChange()) {
181
+ this.emitMainDates(); // TODO Only emit if changed
182
+ }
183
+ });
184
+ }
185
+ /***************************************************************************
186
+ * *
187
+ * Properties *
188
+ * *
189
+ **************************************************************************/
190
+ startDate() {
191
+ return this._startDate();
192
+ }
193
+ endDate() {
194
+ return this._endDate();
195
+ }
196
+ startTime() {
197
+ return this._startTime();
198
+ }
199
+ endTime() {
200
+ return this._endTime();
201
+ }
202
+ /***************************************************************************
203
+ * *
204
+ * Public API *
205
+ * *
206
+ **************************************************************************/
207
+ setInitialized() {
208
+ this._isInitialized = true;
209
+ }
210
+ setStartDate(value) {
211
+ const current = untracked(this._startDate);
212
+ if (!TemporalUtil.equalPlainDates(current, value)) {
213
+ this._startDate.set(value);
214
+ }
215
+ }
216
+ setEndDate(value) {
217
+ const current = untracked(this._endDate);
218
+ if (!TemporalUtil.equalPlainDates(current, value)) {
219
+ this._endDate.set(value);
220
+ }
221
+ }
222
+ setStartTime(value) {
223
+ const current = untracked(this._startTime);
224
+ if (!TemporalUtil.equalPlainTimes(current, value)) {
225
+ this._startTime.set(value);
226
+ }
227
+ }
228
+ setEndTime(value) {
229
+ const current = untracked(this._endTime);
230
+ if (!TemporalUtil.equalPlainTimes(current, value)) {
231
+ this._endTime.set(value);
232
+ }
233
+ }
234
+ setStartDateFromHtmlString(htmlString) {
235
+ const date = TemporalUtil.getPlainDateFromHtmlDateString(htmlString);
236
+ if (!date) {
237
+ return;
238
+ }
239
+ this.calendarMode.set('days');
240
+ this.setStartDate(date);
241
+ }
242
+ setEndDateFromHtmlString(htmlString) {
243
+ const date = TemporalUtil.getPlainDateFromHtmlDateString(htmlString);
244
+ if (!date) {
245
+ return;
246
+ }
247
+ this.calendarMode.set('days');
248
+ this.setEndDate(date);
249
+ }
250
+ setInterval(value) {
251
+ this.setDateTimesFromElderInterval(value);
252
+ }
253
+ setAnchorDateTime(value) {
254
+ this.setAnchorDateTimeFromJsDate(value);
255
+ }
256
+ setupEventEmitter(e) {
257
+ this._dateChangeEmitter = e;
258
+ }
259
+ setStartTimeFromString(timeStr) {
260
+ const time = TemporalUtil.getPlainTimeFromHtmlTimeString(timeStr);
261
+ if (time) {
262
+ this.setStartTime(time);
263
+ }
264
+ if (!untracked(this._startDate)) {
265
+ this.setStartDate(Temporal.Now.plainDateISO());
266
+ }
267
+ this.calendarMode.set('days');
268
+ }
269
+ setEndTimeFromString(timeStr) {
270
+ const time = TemporalUtil.getPlainTimeFromHtmlTimeString(timeStr);
271
+ if (time) {
272
+ this.setEndTime(time);
273
+ }
274
+ if (!untracked(this._endDate)) {
275
+ this.setEndDate(Temporal.Now.plainDateISO());
276
+ }
277
+ this.calendarMode.set('days');
278
+ }
279
+ resetCalendarMode() {
280
+ this.calendarMode.set(defaultCalendarMode);
281
+ }
282
+ setAnchorDateTimeFromJsDate(dateTime) {
283
+ if (!dateTime) {
284
+ return;
285
+ }
286
+ const date = TemporalUtil.getPlainDateFromJSDate(dateTime);
287
+ const time = TemporalUtil.getPlainTimeFromJSDate(dateTime);
288
+ this.fixedAnchorDate.set(date);
289
+ this.fixedAnchorTime.set(time);
290
+ }
291
+ setFixedAnchorPointToStartDateTime() {
292
+ if (!this.startDate()) {
293
+ this.resetFixedAnchorPoint();
294
+ return;
295
+ }
296
+ if (this.startDate()) {
297
+ this.fixedAnchorDate.set(this.startDate());
298
+ }
299
+ if (this.startTime()) {
300
+ this.fixedAnchorTime.set(this.startTime());
301
+ }
302
+ }
303
+ setFixedAnchorPointToEndDateTime() {
304
+ if (!this.endDate()) {
305
+ this.resetFixedAnchorPoint();
306
+ return;
307
+ }
308
+ if (this.endDate()) {
309
+ this.fixedAnchorDate.set(this.endDate());
310
+ }
311
+ if (this.endTime()) {
312
+ this.fixedAnchorTime.set(this.endTime());
313
+ }
314
+ }
315
+ resetFixedAnchorPoint() {
316
+ this.fixedAnchorDate.set(null);
317
+ this.fixedAnchorTime.set(Temporal.PlainTime.from('00:00'));
318
+ if (this.isUpdatingIntervalOnAnchorChange() && this.isStartAndEndDatesSet()) {
319
+ this.shiftRangeEndToToday();
320
+ }
321
+ }
322
+ setAnchorDateFromForm(dateArg) {
323
+ if (!dateArg) {
324
+ this.fixedAnchorDate.set(null);
325
+ return;
326
+ }
327
+ const jsDate = TimeUtil.localDateToDate(dateArg);
328
+ const plainDate = TemporalUtil.getPlainDateFromJSDate(jsDate);
329
+ if (!plainDate) {
330
+ this.log.warn('Invalid date', plainDate);
331
+ return;
332
+ }
333
+ this.fixedAnchorDate.set(plainDate);
334
+ if (!this.isUpdatingIntervalOnAnchorChange()) {
335
+ return;
336
+ }
337
+ if (this.fixedAnchorDate()) {
338
+ this.editor.shiftSelectionToAnchorDate();
339
+ }
340
+ }
341
+ clearStartDateTime() {
342
+ this.setStartDate(null);
343
+ this.setStartTime(null);
344
+ }
345
+ clearEndDateTime() {
346
+ this.setEndDate(null);
347
+ this.setEndTime(null);
348
+ }
349
+ clearStartTime() {
350
+ this.setStartTime(null);
351
+ }
352
+ clearEndTime() {
353
+ this.setEndTime(null);
354
+ }
355
+ resetFixedAnchorTime() {
356
+ this.fixedAnchorTime.set(Temporal.PlainTime.from('00:00'));
357
+ }
358
+ setAnchorTimeFromForm(htmlString) {
359
+ const time = TemporalUtil.getPlainTimeFromHtmlTimeString(htmlString);
360
+ if (!time) {
361
+ return;
362
+ }
363
+ if (!this.fixedAnchorDate()) {
364
+ this.fixedAnchorDate.set(Temporal.Now.plainDateISO());
365
+ }
366
+ this.fixedAnchorTime.set(time);
367
+ if (!this.isUpdatingIntervalOnAnchorChange()) {
368
+ return;
369
+ }
370
+ if (this.fixedAnchorTime()) {
371
+ this.editor.shiftSelectionToAnchorTime();
372
+ }
373
+ }
374
+ emitMainDates() {
375
+ if (!this._isInitialized) {
376
+ return;
377
+ }
378
+ const interval = this.createElderInterval();
379
+ this._dateChangeEmitter.emit(interval);
380
+ }
381
+ /***************************************************************************
382
+ * *
383
+ * Private methods *
384
+ * *
385
+ **************************************************************************/
386
+ setDateTimesFromElderInterval(interval) {
387
+ if (!interval) {
388
+ this.setStartDate(null);
389
+ this.setEndDate(null);
390
+ return;
391
+ }
392
+ if (interval.start) {
393
+ const startDateAsJSDate = TimeUtil.date(interval.start);
394
+ this.setStartDate(TemporalUtil.getPlainDateFromJSDate(startDateAsJSDate));
395
+ this.setStartTime(TemporalUtil.getPlainTimeFromJSDate(startDateAsJSDate));
396
+ }
397
+ else {
398
+ this.setStartDate(null);
399
+ }
400
+ if (interval.end) {
401
+ const endDateAsJSDate = TimeUtil.date(interval.end);
402
+ this.setEndDate(TemporalUtil.getPlainDateFromJSDate(endDateAsJSDate));
403
+ this.setEndTime(TemporalUtil.getPlainTimeFromJSDate(endDateAsJSDate));
404
+ }
405
+ else {
406
+ this.setEndDate(null);
407
+ }
408
+ this.log.debug('Applied interval to picker model:', interval);
409
+ }
410
+ createElderInterval() {
411
+ let start, end = null;
412
+ if (this.startDateTime()) {
413
+ const jsDate = TemporalUtil.getJSDateFromPlainDateTime(this.startDateTime());
414
+ start = TimeUtil.instant(jsDate);
415
+ }
416
+ if (this.endDateTime()) {
417
+ const jsDate = TemporalUtil.getJSDateFromPlainDateTime(this.endDateTime());
418
+ end = TimeUtil.instant(jsDate);
419
+ }
420
+ if (!start && !end) {
421
+ return new Interval(null, null);
422
+ }
423
+ return new Interval(start, end);
424
+ }
425
+ shiftRangeEndToToday() {
426
+ if (!this.isStartAndEndDatesSet()) {
427
+ return;
428
+ }
429
+ const duration = this.startDate().until(this.endDate());
430
+ this.setEndDate(Temporal.Now.plainDateISO());
431
+ this.setStartDate(this.endDate().subtract(duration));
432
+ }
433
+ deltaAsTemporalDuration(startDateTime, endDateTime) {
434
+ if (!startDateTime || !endDateTime) {
435
+ return null;
436
+ }
437
+ return startDateTime.until(endDateTime);
438
+ }
439
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: IntervalPickerModel, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
440
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: IntervalPickerModel }); }
441
+ }
442
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: IntervalPickerModel, decorators: [{
443
+ type: Injectable
444
+ }], ctorParameters: () => [] });
445
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJ2YWwtcGlja2VyLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90aW1lL2VsZGVyLWludGVydmFsLXBpY2tlci9tb2RlbC9pbnRlcnZhbC1waWNrZXItbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzdGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUN4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUMzRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQTtBQUNoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQzVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQzFFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ3pGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDRDQUE0QyxDQUFBOztBQUdqRyxNQUFNLG1CQUFtQixHQUFpQixNQUFNLENBQUE7QUFHaEQsTUFBTSxPQUFPLG1CQUFtQjtJQXNNOUI7Ozs7Z0ZBSTRFO0lBRTVFO1FBM01BOzs7O29GQUk0RTtRQUUzRCxRQUFHLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJ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QyxDQUFBO0lBQ3RELENBQUM7SUFFTyx1QkFBdUIsQ0FDN0IsYUFBMEQsRUFDMUQsV0FBd0Q7UUFFeEQsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25DLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUN6QyxDQUFDOzhHQTFnQlUsbUJBQW1CO2tIQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgZWZmZWN0LCBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IERhdGVSYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInXG5pbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInXG5pbXBvcnQgeyBMb2NhbERhdGUgfSBmcm9tICdAanMtam9kYS9jb3JlJ1xuaW1wb3J0IHsgVGVtcG9yYWwgfSBmcm9tICdAanMtdGVtcG9yYWwvcG9seWZpbGwnXG5pbXBvcnQgeyBJbnRlcnZhbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi90aW1lL2ludGVydmFsJ1xuaW1wb3J0IHsgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi90aW1lL3RlbXBvcmFsLXBsYWluLWRhdGUtaW50ZXJ2YWwnXG5pbXBvcnQgeyBUZW1wb3JhbFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdGltZS90ZW1wb3JhbC11dGlsJ1xuaW1wb3J0IHsgVGltZVV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdGltZS90aW1lLXV0aWwnXG5pbXBvcnQgeyBJbnRlcnZhbFBpY2tlck1vZGVsRWRpdG9yIH0gZnJvbSAnLi9pbnRlcnZhbC1waWNrZXItbW9kZWwtZWRpdG9yJ1xuaW1wb3J0IHsgUGxhaW5EYXRlSW50ZXJ2YWxNZXNzYWdlUmVuZGVyZXIgfSBmcm9tICcuL3BsYWluLWRhdGUtaW50ZXJ2YWwtbWVzc2FnZS1yZW5kZXJlcidcbmltcG9ydCB7IFBsYWluVGVtcG9yYWxEdXJhdGlvbk1lc3NhZ2VSZW5kZXJlciB9IGZyb20gJy4vcGxhaW4tdGVtcG9yYWwtZHVyYXRpb24tbWVzc2FnZS1yZW5kZXJlcidcblxuZXhwb3J0IHR5cGUgQ2FsZW5kYXJNb2RlID0gJ2RheXMnIHwgJ3dlZWtzJyB8ICdtb250aHMnIHwgJ3F1YXJ0ZXJzJyB8ICd5ZWFycydcbmNvbnN0IGRlZmF1bHRDYWxlbmRhck1vZGU6IENhbGVuZGFyTW9kZSA9ICdkYXlzJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSW50ZXJ2YWxQaWNrZXJNb2RlbCB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIHByaXZhdGUgX2RhdGVDaGFuZ2VFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxJbnRlcnZhbD4oKVxuXG4gIHJlYWRvbmx5IGNhbGVuZGFyTW9kZSA9IHNpZ25hbDxDYWxlbmRhck1vZGU+KGRlZmF1bHRDYWxlbmRhck1vZGUpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhcnREYXRlID0gc2lnbmFsPFRlbXBvcmFsLlBsYWluRGF0ZT4obnVsbClcbiAgcHJpdmF0ZSByZWFkb25seSBfZW5kRGF0ZSA9IHNpZ25hbDxUZW1wb3JhbC5QbGFpbkRhdGU+KG51bGwpXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXJ0VGltZSA9IHNpZ25hbChUZW1wb3JhbC5QbGFpblRpbWUuZnJvbSgnMDA6MDAnKSlcbiAgcHJpdmF0ZSByZWFkb25seSBfZW5kVGltZSA9IHNpZ25hbChUZW1wb3JhbC5QbGFpblRpbWUuZnJvbSgnMDA6MDAnKSlcblxuICAvLyBBbmNob3JcbiAgcmVhZG9ubHkgYmFzZVJlZmVyZW5jZURhdGUgPSBzaWduYWwoVGVtcG9yYWwuTm93LnBsYWluRGF0ZUlTTygpKVxuICByZWFkb25seSBiYXNlUmVmZXJlbmNlVGltZSA9IHNpZ25hbChUZW1wb3JhbC5Ob3cucGxhaW5UaW1lSVNPKCkpXG4gIHJlYWRvbmx5IGZpeGVkQW5jaG9yRGF0ZSA9IHNpZ25hbDxUZW1wb3JhbC5QbGFpbkRhdGU+KG51bGwpXG4gIHJlYWRvbmx5IGZpeGVkQW5jaG9yVGltZSA9IHNpZ25hbChUZW1wb3JhbC5QbGFpblRpbWUuZnJvbSgnMDA6MDAnKSlcblxuICByZWFkb25seSBpc0VtaXR0aW5nT25DaGFuZ2UgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSlcbiAgcmVhZG9ubHkgaXNVcGRhdGluZ0ludGVydmFsT25BbmNob3JDaGFuZ2UgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpXG5cbiAgcHJpdmF0ZSBfaXNJbml0aWFsaXplZCA9IGZhbHNlXG5cbiAgcmVhZG9ubHkgaXNGaXhlZEFuY2hvckRhdGVTZXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuICEhdGhpcy5maXhlZEFuY2hvckRhdGUoKVxuICB9KVxuXG4gIHJlYWRvbmx5IGFuY2hvckRhdGUgPSBjb21wdXRlZDxUZW1wb3JhbC5QbGFpbkRhdGU+KCgpID0+IHtcbiAgICBpZiAodGhpcy5maXhlZEFuY2hvckRhdGUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZml4ZWRBbmNob3JEYXRlKClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYmFzZVJlZmVyZW5jZURhdGUoKVxuICB9KVxuXG4gIHJlYWRvbmx5IGFuY2hvclRpbWUgPSBjb21wdXRlZDxUZW1wb3JhbC5QbGFpblRpbWU+KCgpID0+IHtcbiAgICBpZiAodGhpcy5maXhlZEFuY2hvckRhdGUoKSAmJiB0aGlzLmZpeGVkQW5jaG9yVGltZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5maXhlZEFuY2hvclRpbWUoKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5iYXNlUmVmZXJlbmNlVGltZSgpXG4gIH0pXG5cbiAgcmVhZG9ubHkgYW5jaG9yRGF0ZVRpbWUgPSBjb21wdXRlZDxUZW1wb3JhbC5QbGFpbkRhdGVUaW1lPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYW5jaG9yRGF0ZSgpLnRvUGxhaW5EYXRlVGltZSh0aGlzLmFuY2hvclRpbWUoKSlcbiAgfSlcblxuICByZWFkb25seSBkYXRlUmFuZ2UgPSBjb21wdXRlZDxUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsIHwgbnVsbD4oKCkgPT4ge1xuICAgIGlmICghdGhpcy5pc1N0YXJ0QW5kRW5kRGF0ZXNTZXQoKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKHRoaXMuc3RhcnREYXRlKCksIHRoaXMuZW5kRGF0ZSgpKVxuICB9KVxuXG4gIHJlYWRvbmx5IGRhdGVSYW5nZUZvckNhbGVuZGFyID0gY29tcHV0ZWQ8RGF0ZVJhbmdlPERhdGU+IHwgbnVsbD4oKCkgPT4ge1xuICAgIGlmICghdGhpcy5pc1N0YXJ0QW5kRW5kRGF0ZXNTZXQoKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgY29uc3Qgc3RhcnREYXRlID0gVGVtcG9yYWxVdGlsLmdldEpTRGF0ZUZyb21QbGFpbkRhdGVUaW1lKHRoaXMuc3RhcnREYXRlKCkpXG4gICAgY29uc3QgZW5kRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXRKU0RhdGVGcm9tUGxhaW5EYXRlVGltZSh0aGlzLmVuZERhdGUoKSlcbiAgICByZXR1cm4gbmV3IERhdGVSYW5nZShzdGFydERhdGUsIGVuZERhdGUpXG4gIH0pXG5cbiAgcmVhZG9ubHkgaXNTdGFydEFuZEVuZERhdGVzRW1wdHkgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgcmV0dXJuICF0aGlzLnN0YXJ0RGF0ZSgpICYmICF0aGlzLmVuZERhdGUoKVxuICB9KVxuXG4gIHJlYWRvbmx5IGlzU3RhcnRBbmRFbmREYXRlc1NldCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICByZXR1cm4gISEodGhpcy5zdGFydERhdGUoKSAmJiB0aGlzLmVuZERhdGUoKSlcbiAgfSlcblxuICByZWFkb25seSBpc1JhbmdlTm90U2V0ID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiAhdGhpcy5pc1N0YXJ0QW5kRW5kRGF0ZXNTZXQoKVxuICB9KVxuXG4gIHJlYWRvbmx5IHN0YXJ0RGF0ZVRpbWUgPSBjb21wdXRlZDxUZW1wb3JhbC5QbGFpbkRhdGUgfCBUZW1wb3JhbC5QbGFpbkRhdGVUaW1lPigoKSA9PiB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0RGF0ZSgpKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICBpZiAodGhpcy5zdGFydFRpbWUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhcnREYXRlKCkudG9QbGFpbkRhdGVUaW1lKHRoaXMuc3RhcnRUaW1lKCkpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0YXJ0RGF0ZSgpXG4gIH0pXG5cbiAgcmVhZG9ubHkgZW5kRGF0ZVRpbWUgPSBjb21wdXRlZDxUZW1wb3JhbC5QbGFpbkRhdGUgfCBUZW1wb3JhbC5QbGFpbkRhdGVUaW1lPigoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmVuZERhdGUoKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgaWYgKHRoaXMuZW5kVGltZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbmREYXRlKCkudG9QbGFpbkRhdGVUaW1lKHRoaXMuZW5kVGltZSgpKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbmREYXRlKClcbiAgfSlcblxuICByZWFkb25seSBzdGFydERhdGVBc0pTRGF0ZSA9IGNvbXB1dGVkPERhdGUgfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0RGF0ZSgpKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEpTRGF0ZUZyb21QbGFpbkRhdGVUaW1lKHRoaXMuc3RhcnREYXRlKCkpXG4gIH0pXG5cbiAgcmVhZG9ubHkgZW5kRGF0ZUFzSlNEYXRlID0gY29tcHV0ZWQ8RGF0ZSB8IG51bGw+KCgpID0+IHtcbiAgICBpZiAoIXRoaXMuZW5kRGF0ZSgpKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEpTRGF0ZUZyb21QbGFpbkRhdGVUaW1lKHRoaXMuZW5kRGF0ZSgpKVxuICB9KVxuXG4gIHJlYWRvbmx5IHN0YXJ0RGF0ZVRpbWVBc0pTRGF0ZSA9IGNvbXB1dGVkPERhdGUgfCBudWxsPigoKSA9PiB7XG4gICAgaWYgKCF0aGlzLnN0YXJ0RGF0ZVRpbWUoKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgcmV0dXJuIFRlbXBvcmFsVXRpbC5nZXRKU0RhdGVGcm9tUGxhaW5EYXRlVGltZSh0aGlzLnN0YXJ0RGF0ZVRpbWUoKSlcbiAgfSlcblxuICByZWFkb25seSBlbmREYXRlVGltZUFzSlNEYXRlID0gY29tcHV0ZWQ8RGF0ZSB8IG51bGw+KCgpID0+IHtcbiAgICBpZiAoIXRoaXMuZW5kRGF0ZVRpbWUoKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgcmV0dXJuIFRlbXBvcmFsVXRpbC5nZXRKU0RhdGVGcm9tUGxhaW5EYXRlVGltZSh0aGlzLmVuZERhdGVUaW1lKCkpXG4gIH0pXG5cbiAgcmVhZG9ubHkgdmlld0ludGVydmFsTWVzc2FnZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT5cbiAgICBQbGFpbkRhdGVJbnRlcnZhbE1lc3NhZ2VSZW5kZXJlci50b01lc3NhZ2UodGhpcy5jYWxlbmRhck1vZGUoKSwgdGhpcy5kYXRlUmFuZ2UoKSlcbiAgKVxuXG4gIHJlYWRvbmx5IGRlbHRhSHVtYW5SZWFkYWJsZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIGlmICh0aGlzLmlzU3RhcnRBbmRFbmREYXRlc0VtcHR5KCkpIHtcbiAgICAgIHJldHVybiAnJ1xuICAgIH1cbiAgICBjb25zdCBkdXJhdGlvbiA9IHRoaXMuZGVsdGFBc1RlbXBvcmFsRHVyYXRpb24odGhpcy5zdGFydERhdGVUaW1lKCksIHRoaXMuZW5kRGF0ZVRpbWUoKSlcbiAgICByZXR1cm4gUGxhaW5UZW1wb3JhbER1cmF0aW9uTWVzc2FnZVJlbmRlcmVyLnRvTWVzc2FnZShkdXJhdGlvbilcbiAgfSlcblxuICByZWFkb25seSBnZXRTdGFydFRpbWVTdHJpbmcgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEh0bWxUaW1lU3RyaW5nRnJvbVBsYWluVGltZSh0aGlzLnN0YXJ0VGltZSgpKVxuICB9KVxuXG4gIHJlYWRvbmx5IGdldEVuZFRpbWVTdHJpbmcgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEh0bWxUaW1lU3RyaW5nRnJvbVBsYWluVGltZSh0aGlzLmVuZFRpbWUoKSlcbiAgfSlcblxuICByZWFkb25seSBnZXRBbmNob3JUaW1lU3RyaW5nID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgcmV0dXJuIFRlbXBvcmFsVXRpbC5nZXRIdG1sVGltZVN0cmluZ0Zyb21QbGFpblRpbWUodGhpcy5maXhlZEFuY2hvclRpbWUoKSlcbiAgfSlcblxuICByZWFkb25seSBnZXRBbmNob3JQb2ludEFzTG9jYWxlRGF0ZSA9IGNvbXB1dGVkPExvY2FsRGF0ZT4oKCkgPT4ge1xuICAgIGNvbnN0IGFuY2hvclBvaW50ID0gdGhpcy5maXhlZEFuY2hvckRhdGUoKVxuICAgIGlmICghYW5jaG9yUG9pbnQpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIGNvbnN0IGpzRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXRKU0RhdGVGcm9tUGxhaW5EYXRlVGltZShhbmNob3JQb2ludClcbiAgICBjb25zdCBsb2NhbGVEYXRlID0gVGltZVV0aWwuZGF0ZVRvTG9jYWxEYXRlKGpzRGF0ZSlcbiAgICByZXR1cm4gbG9jYWxlRGF0ZVxuICB9KVxuXG4gIHJlYWRvbmx5IHN0YXJ0RGF0ZUh0bWxTdHJpbmcgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcbiAgICByZXR1cm4gVGVtcG9yYWxVdGlsLmdldEh0bWxEYXRlU3RyaW5nKHRoaXMuc3RhcnREYXRlVGltZSgpKVxuICB9KVxuXG4gIHJlYWRvbmx5IGVuZERhdGVIdG1sU3RyaW5nID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XG4gICAgcmV0dXJuIFRlbXBvcmFsVXRpbC5nZXRIdG1sRGF0ZVN0cmluZyh0aGlzLmVuZERhdGVUaW1lKCkpXG4gIH0pXG5cbiAgcmVhZG9ubHkgaXNTdGFydFRpbWVTZXRBbmROb3RNaWRuaWdodCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICBpZiAoIXRoaXMuc3RhcnRUaW1lKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5zdGFydFRpbWUoKS5ob3VyICE9PSAwIHx8IHRoaXMuc3RhcnRUaW1lKCkubWludXRlICE9PSAwIHx8IHRoaXMuc3RhcnRUaW1lKCkuc2Vjb25kICE9PSAwXG4gICAgKVxuICB9KVxuXG4gIHJlYWRvbmx5IGlzRW5kVGltZVNldEFuZE5vdE1pZG5pZ2h0ID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4ge1xuICAgIGlmICghdGhpcy5lbmRUaW1lKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5lbmRUaW1lKCkuaG91ciAhPT0gMCB8fCB0aGlzLmVuZFRpbWUoKS5taW51dGUgIT09IDAgfHwgdGhpcy5lbmRUaW1lKCkuc2Vjb25kICE9PSAwXG4gIH0pXG5cbiAgcmVhZG9ubHkgaXNGaXhlZEFuY2hvclRpbWVTZXRBbmROb3RNaWRuaWdodCA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcbiAgICBpZiAoIXRoaXMuZml4ZWRBbmNob3JUaW1lKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5maXhlZEFuY2hvclRpbWUoKS5ob3VyICE9PSAwIHx8XG4gICAgICB0aGlzLmZpeGVkQW5jaG9yVGltZSgpLm1pbnV0ZSAhPT0gMCB8fFxuICAgICAgdGhpcy5maXhlZEFuY2hvclRpbWUoKS5zZWNvbmQgIT09IDBcbiAgICApXG4gIH0pXG5cbiAgcHVibGljIHJlYWRvbmx5IGVkaXRvcjogSW50ZXJ2YWxQaWNrZXJNb2RlbEVkaXRvclxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZWRpdG9yID0gbmV3IEludGVydmFsUGlja2VyTW9kZWxFZGl0b3IodGhpcylcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBzdGFydERhdGVUaW1lID0gdGhpcy5zdGFydERhdGVUaW1lKClcbiAgICAgIGNvbnN0IGVuZERhdGVUaW1lID0gdGhpcy5lbmREYXRlVGltZSgpXG5cbiAgICAgIGlmICh0aGlzLmlzRW1pdHRpbmdPbkNoYW5nZSgpKSB7XG4gICAgICAgIHRoaXMuZW1pdE1haW5EYXRlcygpIC8vIFRPRE8gT25seSBlbWl0IGlmIGNoYW5nZWRcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN0YXJ0RGF0ZSgpOiBUZW1wb3JhbC5QbGFpbkRhdGUge1xuICAgIHJldHVybiB0aGlzLl9zdGFydERhdGUoKVxuICB9XG5cbiAgcHVibGljIGVuZERhdGUoKTogVGVtcG9yYWwuUGxhaW5EYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fZW5kRGF0ZSgpXG4gIH1cblxuICBwdWJsaWMgc3RhcnRUaW1lKCk6IFRlbXBvcmFsLlBsYWluVGltZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0VGltZSgpXG4gIH1cblxuICBwdWJsaWMgZW5kVGltZSgpOiBUZW1wb3JhbC5QbGFpblRpbWUge1xuICAgIHJldHVybiB0aGlzLl9lbmRUaW1lKClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBzZXRJbml0aWFsaXplZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9pc0luaXRpYWxpemVkID0gdHJ1ZVxuICB9XG5cbiAgcHVibGljIHNldFN0YXJ0RGF0ZSh2YWx1ZTogVGVtcG9yYWwuUGxhaW5EYXRlKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudCA9IHVudHJhY2tlZCh0aGlzLl9zdGFydERhdGUpXG4gICAgaWYgKCFUZW1wb3JhbFV0aWwuZXF1YWxQbGFpbkRhdGVzKGN1cnJlbnQsIHZhbHVlKSkge1xuICAgICAgdGhpcy5fc3RhcnREYXRlLnNldCh2YWx1ZSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0RW5kRGF0ZSh2YWx1ZTogVGVtcG9yYWwuUGxhaW5EYXRlKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudCA9IHVudHJhY2tlZCh0aGlzLl9lbmREYXRlKVxuICAgIGlmICghVGVtcG9yYWxVdGlsLmVxdWFsUGxhaW5EYXRlcyhjdXJyZW50LCB2YWx1ZSkpIHtcbiAgICAgIHRoaXMuX2VuZERhdGUuc2V0KHZhbHVlKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRTdGFydFRpbWUodmFsdWU6IFRlbXBvcmFsLlBsYWluVGltZSk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB1bnRyYWNrZWQodGhpcy5fc3RhcnRUaW1lKVxuICAgIGlmICghVGVtcG9yYWxVdGlsLmVxdWFsUGxhaW5UaW1lcyhjdXJyZW50LCB2YWx1ZSkpIHtcbiAgICAgIHRoaXMuX3N0YXJ0VGltZS5zZXQodmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEVuZFRpbWUodmFsdWU6IFRlbXBvcmFsLlBsYWluVGltZSk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB1bnRyYWNrZWQodGhpcy5fZW5kVGltZSlcbiAgICBpZiAoIVRlbXBvcmFsVXRpbC5lcXVhbFBsYWluVGltZXMoY3VycmVudCwgdmFsdWUpKSB7XG4gICAgICB0aGlzLl9lbmRUaW1lLnNldCh2YWx1ZSlcbiAgICB9XG4gIH1cblxuICBzZXRTdGFydERhdGVGcm9tSHRtbFN0cmluZyhodG1sU3RyaW5nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRlID0gVGVtcG9yYWxVdGlsLmdldFBsYWluRGF0ZUZyb21IdG1sRGF0ZVN0cmluZyhodG1sU3RyaW5nKVxuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMuY2FsZW5kYXJNb2RlLnNldCgnZGF5cycpXG4gICAgdGhpcy5zZXRTdGFydERhdGUoZGF0ZSlcbiAgfVxuXG4gIHNldEVuZERhdGVGcm9tSHRtbFN0cmluZyhodG1sU3RyaW5nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRlID0gVGVtcG9yYWxVdGlsLmdldFBsYWluRGF0ZUZyb21IdG1sRGF0ZVN0cmluZyhodG1sU3RyaW5nKVxuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMuY2FsZW5kYXJNb2RlLnNldCgnZGF5cycpXG4gICAgdGhpcy5zZXRFbmREYXRlKGRhdGUpXG4gIH1cblxuICBwdWJsaWMgc2V0SW50ZXJ2YWwodmFsdWU6IEludGVydmFsKTogdm9pZCB7XG4gICAgdGhpcy5zZXREYXRlVGltZXNGcm9tRWxkZXJJbnRlcnZhbCh2YWx1ZSlcbiAgfVxuXG4gIHB1YmxpYyBzZXRBbmNob3JEYXRlVGltZSh2YWx1ZTogRGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuc2V0QW5jaG9yRGF0ZVRpbWVGcm9tSnNEYXRlKHZhbHVlKVxuICB9XG5cbiAgc2V0dXBFdmVudEVtaXR0ZXIoZTogRXZlbnRFbWl0dGVyPEludGVydmFsPik6IHZvaWQge1xuICAgIHRoaXMuX2RhdGVDaGFuZ2VFbWl0dGVyID0gZVxuICB9XG5cbiAgc2V0U3RhcnRUaW1lRnJvbVN0cmluZyh0aW1lU3RyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB0aW1lID0gVGVtcG9yYWxVdGlsLmdldFBsYWluVGltZUZyb21IdG1sVGltZVN0cmluZyh0aW1lU3RyKVxuICAgIGlmICh0aW1lKSB7XG4gICAgICB0aGlzLnNldFN0YXJ0VGltZSh0aW1lKVxuICAgIH1cbiAgICBpZiAoIXVudHJhY2tlZCh0aGlzLl9zdGFydERhdGUpKSB7XG4gICAgICB0aGlzLnNldFN0YXJ0RGF0ZShUZW1wb3JhbC5Ob3cucGxhaW5EYXRlSVNPKCkpXG4gICAgfVxuICAgIHRoaXMuY2FsZW5kYXJNb2RlLnNldCgnZGF5cycpXG4gIH1cblxuICBzZXRFbmRUaW1lRnJvbVN0cmluZyh0aW1lU3RyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB0aW1lID0gVGVtcG9yYWxVdGlsLmdldFBsYWluVGltZUZyb21IdG1sVGltZVN0cmluZyh0aW1lU3RyKVxuXG4gICAgaWYgKHRpbWUpIHtcbiAgICAgIHRoaXMuc2V0RW5kVGltZSh0aW1lKVxuICAgIH1cblxuICAgIGlmICghdW50cmFja2VkKHRoaXMuX2VuZERhdGUpKSB7XG4gICAgICB0aGlzLnNldEVuZERhdGUoVGVtcG9yYWwuTm93LnBsYWluRGF0ZUlTTygpKVxuICAgIH1cblxuICAgIHRoaXMuY2FsZW5kYXJNb2RlLnNldCgnZGF5cycpXG4gIH1cblxuICByZXNldENhbGVuZGFyTW9kZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGVuZGFyTW9kZS5zZXQoZGVmYXVsdENhbGVuZGFyTW9kZSlcbiAgfVxuXG4gIHNldEFuY2hvckRhdGVUaW1lRnJvbUpzRGF0ZShkYXRlVGltZTogRGF0ZSk6IHZvaWQge1xuICAgIGlmICghZGF0ZVRpbWUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCBkYXRlID0gVGVtcG9yYWxVdGlsLmdldFBsYWluRGF0ZUZyb21KU0RhdGUoZGF0ZVRpbWUpXG4gICAgY29uc3QgdGltZSA9IFRlbXBvcmFsVXRpbC5nZXRQbGFpblRpbWVGcm9tSlNEYXRlKGRhdGVUaW1lKVxuICAgIHRoaXMuZml4ZWRBbmNob3JEYXRlLnNldChkYXRlKVxuICAgIHRoaXMuZml4ZWRBbmNob3JUaW1lLnNldCh0aW1lKVxuICB9XG5cbiAgc2V0Rml4ZWRBbmNob3JQb2ludFRvU3RhcnREYXRlVGltZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3RhcnREYXRlKCkpIHtcbiAgICAgIHRoaXMucmVzZXRGaXhlZEFuY2hvclBvaW50KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAodGhpcy5zdGFydERhdGUoKSkge1xuICAgICAgdGhpcy5maXhlZEFuY2hvckRhdGUuc2V0KHRoaXMuc3RhcnREYXRlKCkpXG4gICAgfVxuICAgIGlmICh0aGlzLnN0YXJ0VGltZSgpKSB7XG4gICAgICB0aGlzLmZpeGVkQW5jaG9yVGltZS5zZXQodGhpcy5zdGFydFRpbWUoKSlcbiAgICB9XG4gIH1cblxuICBzZXRGaXhlZEFuY2hvclBvaW50VG9FbmREYXRlVGltZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZW5kRGF0ZSgpKSB7XG4gICAgICB0aGlzLnJlc2V0Rml4ZWRBbmNob3JQb2ludCgpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgaWYgKHRoaXMuZW5kRGF0ZSgpKSB7XG4gICAgICB0aGlzLmZpeGVkQW5jaG9yRGF0ZS5zZXQodGhpcy5lbmREYXRlKCkpXG4gICAgfVxuICAgIGlmICh0aGlzLmVuZFRpbWUoKSkge1xuICAgICAgdGhpcy5maXhlZEFuY2hvclRpbWUuc2V0KHRoaXMuZW5kVGltZSgpKVxuICAgIH1cbiAgfVxuXG4gIHJlc2V0Rml4ZWRBbmNob3JQb2ludCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpeGVkQW5jaG9yRGF0ZS5zZXQobnVsbClcbiAgICB0aGlzLmZpeGVkQW5jaG9yVGltZS5zZXQoVGVtcG9yYWwuUGxhaW5UaW1lLmZyb20oJzAwOjAwJykpXG4gICAgaWYgKHRoaXMuaXNVcGRhdGluZ0ludGVydmFsT25BbmNob3JDaGFuZ2UoKSAmJiB0aGlzLmlzU3RhcnRBbmRFbmREYXRlc1NldCgpKSB7XG4gICAgICB0aGlzLnNoaWZ0UmFuZ2VFbmRUb1RvZGF5KClcbiAgICB9XG4gIH1cblxuICBzZXRBbmNob3JEYXRlRnJvbUZvcm0oZGF0ZUFyZzogTG9jYWxEYXRlKTogdm9pZCB7XG4gICAgaWYgKCFkYXRlQXJnKSB7XG4gICAgICB0aGlzLmZpeGVkQW5jaG9yRGF0ZS5zZXQobnVsbClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGpzRGF0ZSA9IFRpbWVVdGlsLmxvY2FsRGF0ZVRvRGF0ZShkYXRlQXJnKVxuICAgIGNvbnN0IHBsYWluRGF0ZSA9IFRlbXBvcmFsVXRpbC5nZXRQbGFpbkRhdGVGcm9tSlNEYXRlKGpzRGF0ZSlcblxuICAgIGlmICghcGxhaW5EYXRlKSB7XG4gICAgICB0aGlzLmxvZy53YXJuKCdJbnZhbGlkIGRhdGUnLCBwbGFpbkRhdGUpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLmZpeGVkQW5jaG9yRGF0ZS5zZXQocGxhaW5EYXRlKVxuXG4gICAgaWYgKCF0aGlzLmlzVXBkYXRpbmdJbnRlcnZhbE9uQW5jaG9yQ2hhbmdlKCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICh0aGlzLmZpeGVkQW5jaG9yRGF0ZSgpKSB7XG4gICAgICB0aGlzLmVkaXRvci5zaGlmdFNlbGVjdGlvblRvQW5jaG9yRGF0ZSgpXG4gICAgfVxuICB9XG5cbiAgY2xlYXJTdGFydERhdGVUaW1lKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0U3RhcnREYXRlKG51bGwpXG4gICAgdGhpcy5zZXRTdGFydFRpbWUobnVsbClcbiAgfVxuXG4gIGNsZWFyRW5kRGF0ZVRpbWUoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRFbmREYXRlKG51bGwpXG4gICAgdGhpcy5zZXRFbmRUaW1lKG51bGwpXG4gIH1cblxuICBjbGVhclN0YXJ0VGltZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFN0YXJ0VGltZShudWxsKVxuICB9XG5cbiAgY2xlYXJFbmRUaW1lKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RW5kVGltZShudWxsKVxuICB9XG5cbiAgcmVzZXRGaXhlZEFuY2hvclRpbWUoKTogdm9pZCB7XG4gICAgdGhpcy5maXhlZEFuY2hvclRpbWUuc2V0KFRlbXBvcmFsLlBsYWluVGltZS5mcm9tKCcwMDowMCcpKVxuICB9XG5cbiAgc2V0QW5jaG9yVGltZUZyb21Gb3JtKGh0bWxTdHJpbmc6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHRpbWUgPSBUZW1wb3JhbFV0aWwuZ2V0UGxhaW5UaW1lRnJvbUh0bWxUaW1lU3RyaW5nKGh0bWxTdHJpbmcpXG4gICAgaWYgKCF0aW1lKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZml4ZWRBbmNob3JEYXRlKCkpIHtcbiAgICAgIHRoaXMuZml4ZWRBbmNob3JEYXRlLnNldChUZW1wb3JhbC5Ob3cucGxhaW5EYXRlSVNPKCkpXG4gICAgfVxuXG4gICAgdGhpcy5maXhlZEFuY2hvclRpbWUuc2V0KHRpbWUpXG5cbiAgICBpZiAoIXRoaXMuaXNVcGRhdGluZ0ludGVydmFsT25BbmNob3JDaGFuZ2UoKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZml4ZWRBbmNob3JUaW1lKCkpIHtcbiAgICAgIHRoaXMuZWRpdG9yLnNoaWZ0U2VsZWN0aW9uVG9BbmNob3JUaW1lKClcbiAgICB9XG4gIH1cblxuICBlbWl0TWFpbkRhdGVzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNJbml0aWFsaXplZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IGludGVydmFsID0gdGhpcy5jcmVhdGVFbGRlckludGVydmFsKClcbiAgICB0aGlzLl9kYXRlQ2hhbmdlRW1pdHRlci5lbWl0KGludGVydmFsKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzZXREYXRlVGltZXNGcm9tRWxkZXJJbnRlcnZhbChpbnRlcnZhbDogSW50ZXJ2YWwpOiB2b2lkIHtcbiAgICBpZiAoIWludGVydmFsKSB7XG4gICAgICB0aGlzLnNldFN0YXJ0RGF0ZShudWxsKVxuICAgICAgdGhpcy5zZXRFbmREYXRlKG51bGwpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoaW50ZXJ2YWwuc3RhcnQpIHtcbiAgICAgIGNvbnN0IHN0YXJ0RGF0ZUFzSlNEYXRlID0gVGltZVV0aWwuZGF0ZShpbnRlcnZhbC5zdGFydClcbiAgICAgIHRoaXMuc2V0U3RhcnREYXRlKFRlbXBvcmFsVXRpbC5nZXRQbGFpbkRhdGVGcm9tSlNEYXRlKHN0YXJ0RGF0ZUFzSlNEYXRlKSlcbiAgICAgIHRoaXMuc2V0U3RhcnRUaW1lKFRlbXBvcmFsVXRpbC5nZXRQbGFpblRpbWVGcm9tSlNEYXRlKHN0YXJ0RGF0ZUFzSlNEYXRlKSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRTdGFydERhdGUobnVsbClcbiAgICB9XG5cbiAgICBpZiAoaW50ZXJ2YWwuZW5kKSB7XG4gICAgICBjb25zdCBlbmREYXRlQXNKU0RhdGUgPSBUaW1lVXRpbC5kYXRlKGludGVydmFsLmVuZClcbiAgICAgIHRoaXMuc2V0RW5kRGF0ZShUZW1wb3JhbFV0aWwuZ2V0UGxhaW5EYXRlRnJvbUpTRGF0ZShlbmREYXRlQXNKU0RhdGUpKVxuICAgICAgdGhpcy5zZXRFbmRUaW1lKFRlbXBvcmFsVXRpbC5nZXRQbGFpblRpbWVGcm9tSlNEYXRlKGVuZERhdGVBc0pTRGF0ZSkpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0RW5kRGF0ZShudWxsKVxuICAgIH1cblxuICAgIHRoaXMubG9nLmRlYnVnKCdBcHBsaWVkIGludGVydmFsIHRvIHBpY2tlciBtb2RlbDonLCBpbnRlcnZhbClcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRWxkZXJJbnRlcnZhbCgpOiBJbnRlcnZhbCB7XG4gICAgbGV0IHN0YXJ0LFxuICAgICAgZW5kID0gbnVsbFxuICAgIGlmICh0aGlzLnN0YXJ0RGF0ZVRpbWUoKSkge1xuICAgICAgY29uc3QganNEYXRlID0gVGVtcG9yYWxVdGlsLmdldEpTRGF0ZUZyb21QbGFpbkRhdGVUaW1lKHRoaXMuc3RhcnREYXRlVGltZSgpKVxuICAgICAgc3RhcnQgPSBUaW1lVXRpbC5pbnN0YW50KGpzRGF0ZSlcbiAgICB9XG4gICAgaWYgKHRoaXMuZW5kRGF0ZVRpbWUoKSkge1xuICAgICAgY29uc3QganNEYXRlID0gVGVtcG9yYWxVdGlsLmdldEpTRGF0ZUZyb21QbGFpbkRhdGVUaW1lKHRoaXMuZW5kRGF0ZVRpbWUoKSlcbiAgICAgIGVuZCA9IFRpbWVVdGlsLmluc3RhbnQoanNEYXRlKVxuICAgIH1cbiAgICBpZiAoIXN0YXJ0ICYmICFlbmQpIHtcbiAgICAgIHJldHVybiBuZXcgSW50ZXJ2YWwobnVsbCwgbnVsbClcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbnRlcnZhbChzdGFydCwgZW5kKVxuICB9XG5cbiAgcHJpdmF0ZSBzaGlmdFJhbmdlRW5kVG9Ub2RheSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNTdGFydEFuZEVuZERhdGVzU2V0KCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCBkdXJhdGlvbiA9IHRoaXMuc3RhcnREYXRlKCkudW50aWwodGhpcy5lbmREYXRlKCkpXG4gICAgdGhpcy5zZXRFbmREYXRlKFRlbXBvcmFsLk5vdy5wbGFpbkRhdGVJU08oKSlcbiAgICB0aGlzLnNldFN0YXJ0RGF0ZSh0aGlzLmVuZERhdGUoKS5zdWJ0cmFjdChkdXJhdGlvbikpXG4gIH1cblxuICBwcml2YXRlIGRlbHRhQXNUZW1wb3JhbER1cmF0aW9uKFxuICAgIHN0YXJ0RGF0ZVRpbWU6IFRlbXBvcmFsLlBsYWluRGF0ZSB8IFRlbXBvcmFsLlBsYWluRGF0ZVRpbWUsXG4gICAgZW5kRGF0ZVRpbWU6IFRlbXBvcmFsLlBsYWluRGF0ZSB8IFRlbXBvcmFsLlBsYWluRGF0ZVRpbWVcbiAgKTogVGVtcG9yYWwuRHVyYXRpb24ge1xuICAgIGlmICghc3RhcnREYXRlVGltZSB8fCAhZW5kRGF0ZVRpbWUpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIHJldHVybiBzdGFydERhdGVUaW1lLnVudGlsKGVuZERhdGVUaW1lKVxuICB9XG59XG4iXX0=
@@ -0,0 +1,37 @@
1
+ import { TemporalUtil } from '../../../../common/time/temporal-util';
2
+ export class PlainDateIntervalMessageRenderer {
3
+ static toMessage(mode, dateInterval) {
4
+ if (!dateInterval) {
5
+ return '-';
6
+ }
7
+ const startDate = dateInterval.start;
8
+ const endDate = dateInterval.end;
9
+ switch (mode) {
10
+ case 'years':
11
+ return `1y (${startDate.year})`;
12
+ case 'quarters':
13
+ return `Q${TemporalUtil.getQuarterForDate(startDate)}, ${startDate.year}`;
14
+ case 'months':
15
+ return `1m (${startDate.monthCode}, ${startDate.year})`;
16
+ case 'weeks':
17
+ return `1w (CW ${this.calendarWeek(startDate)}, ${endDate.year})`;
18
+ case 'days':
19
+ return `${this.dateRangeInDays(dateInterval)}d`;
20
+ default:
21
+ return '?';
22
+ }
23
+ }
24
+ static calendarWeek(date) {
25
+ if (!date) {
26
+ return null;
27
+ }
28
+ return date.weekOfYear;
29
+ }
30
+ static dateRangeInDays(dateInterval) {
31
+ if (!dateInterval) {
32
+ return 0;
33
+ }
34
+ return dateInterval.getDurationInDays();
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhaW4tZGF0ZS1pbnRlcnZhbC1tZXNzYWdlLXJlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90aW1lL2VsZGVyLWludGVydmFsLXBpY2tlci9tb2RlbC9wbGFpbi1kYXRlLWludGVydmFsLW1lc3NhZ2UtcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVDQUF1QyxDQUFBO0FBR3BFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDcEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFrQixFQUFFLFlBQXVDO1FBQ2pGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLEdBQUcsQ0FBQTtRQUNaLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFBO1FBQ3BDLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUE7UUFFaEMsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssT0FBTztnQkFDVixPQUFPLE9BQU8sU0FBUyxDQUFDLElBQUksR0FBRyxDQUFBO1lBQ2pDLEtBQUssVUFBVTtnQkFDYixPQUFPLElBQUksWUFBWSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUMzRSxLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxPQUFPLFNBQVMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLElBQUksR0FBRyxDQUFBO1lBQ3pELEtBQUssT0FBTztnQkFDVixPQUFPLFVBQVUsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUE7WUFDbkUsS0FBSyxNQUFNO2dCQUNULE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUE7WUFDakQ7Z0JBQ0UsT0FBTyxHQUFHLENBQUE7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBd0I7UUFDbEQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFBO0lBQ3hCLENBQUM7SUFFTyxNQUFNLENBQUMsZUFBZSxDQUFDLFlBQXVDO1FBQ3BFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsQ0FBQTtRQUNWLENBQUM7UUFDRCxPQUFPLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxDQUFBO0lBQ3pDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBvcmFsIH0gZnJvbSAnQGpzLXRlbXBvcmFsL3BvbHlmaWxsJ1xuaW1wb3J0IHsgQ2FsZW5kYXJNb2RlIH0gZnJvbSAnLi9pbnRlcnZhbC1waWNrZXItbW9kZWwnXG5pbXBvcnQgeyBUZW1wb3JhbFV0aWwgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdGltZS90ZW1wb3JhbC11dGlsJ1xuaW1wb3J0IHsgVGVtcG9yYWxQbGFpbkRhdGVJbnRlcnZhbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi90aW1lL3RlbXBvcmFsLXBsYWluLWRhdGUtaW50ZXJ2YWwnXG5cbmV4cG9ydCBjbGFzcyBQbGFpbkRhdGVJbnRlcnZhbE1lc3NhZ2VSZW5kZXJlciB7XG4gIHB1YmxpYyBzdGF0aWMgdG9NZXNzYWdlKG1vZGU6IENhbGVuZGFyTW9kZSwgZGF0ZUludGVydmFsOiBUZW1wb3JhbFBsYWluRGF0ZUludGVydmFsKTogc3RyaW5nIHtcbiAgICBpZiAoIWRhdGVJbnRlcnZhbCkge1xuICAgICAgcmV0dXJuICctJ1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0RGF0ZSA9IGRhdGVJbnRlcnZhbC5zdGFydFxuICAgIGNvbnN0IGVuZERhdGUgPSBkYXRlSW50ZXJ2YWwuZW5kXG5cbiAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgIGNhc2UgJ3llYXJzJzpcbiAgICAgICAgcmV0dXJuIGAxeSAoJHtzdGFydERhdGUueWVhcn0pYFxuICAgICAgY2FzZSAncXVhcnRlcnMnOlxuICAgICAgICByZXR1cm4gYFEke1RlbXBvcmFsVXRpbC5nZXRRdWFydGVyRm9yRGF0ZShzdGFydERhdGUpfSwgJHtzdGFydERhdGUueWVhcn1gXG4gICAgICBjYXNlICdtb250aHMnOlxuICAgICAgICByZXR1cm4gYDFtICgke3N0YXJ0RGF0ZS5tb250aENvZGV9LCAke3N0YXJ0RGF0ZS55ZWFyfSlgXG4gICAgICBjYXNlICd3ZWVrcyc6XG4gICAgICAgIHJldHVybiBgMXcgKENXICR7dGhpcy5jYWxlbmRhcldlZWsoc3RhcnREYXRlKX0sICR7ZW5kRGF0ZS55ZWFyfSlgXG4gICAgICBjYXNlICdkYXlzJzpcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZGF0ZVJhbmdlSW5EYXlzKGRhdGVJbnRlcnZhbCl9ZGBcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnPydcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjYWxlbmRhcldlZWsoZGF0ZTogVGVtcG9yYWwuUGxhaW5EYXRlKTogbnVtYmVyIHtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIHJldHVybiBkYXRlLndlZWtPZlllYXJcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGRhdGVSYW5nZUluRGF5cyhkYXRlSW50ZXJ2YWw6IFRlbXBvcmFsUGxhaW5EYXRlSW50ZXJ2YWwpOiBudW1iZXIge1xuICAgIGlmICghZGF0ZUludGVydmFsKSB7XG4gICAgICByZXR1cm4gMFxuICAgIH1cbiAgICByZXR1cm4gZGF0ZUludGVydmFsLmdldER1cmF0aW9uSW5EYXlzKClcbiAgfVxufVxuIl19
@@ -0,0 +1,25 @@
1
+ export class PlainTemporalDurationMessageRenderer {
2
+ static toMessage(duration) {
3
+ if (!duration) {
4
+ return '∞';
5
+ }
6
+ const tmp = [];
7
+ if (duration.days) {
8
+ tmp.push(`${duration.days}d`);
9
+ }
10
+ if (duration.hours) {
11
+ tmp.push(`${duration.hours}h`);
12
+ }
13
+ if (duration.minutes) {
14
+ tmp.push(`${duration.minutes}min`);
15
+ }
16
+ if (duration.seconds) {
17
+ tmp.push(`${duration.seconds}s`);
18
+ }
19
+ if (!tmp.length) {
20
+ return '0s';
21
+ }
22
+ return tmp.join(', ');
23
+ }
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhaW4tdGVtcG9yYWwtZHVyYXRpb24tbWVzc2FnZS1yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZS9lbGRlci1pbnRlcnZhbC1waWNrZXIvbW9kZWwvcGxhaW4tdGVtcG9yYWwtZHVyYXRpb24tbWVzc2FnZS1yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sb0NBQW9DO0lBQ3hDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBMkI7UUFDakQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxHQUFHLENBQUE7UUFDWixDQUFDO1FBQ0QsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFBO1FBQ2QsSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFBO1FBQy9CLENBQUM7UUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUE7UUFDaEMsQ0FBQztRQUNELElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQTtRQUNwQyxDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFBO1FBQ2xDLENBQUM7UUFFRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wb3JhbCB9IGZyb20gJ0Bqcy10ZW1wb3JhbC9wb2x5ZmlsbCdcblxuZXhwb3J0IGNsYXNzIFBsYWluVGVtcG9yYWxEdXJhdGlvbk1lc3NhZ2VSZW5kZXJlciB7XG4gIHB1YmxpYyBzdGF0aWMgdG9NZXNzYWdlKGR1cmF0aW9uOiBUZW1wb3JhbC5EdXJhdGlvbik6IHN0cmluZyB7XG4gICAgaWYgKCFkdXJhdGlvbikge1xuICAgICAgcmV0dXJuICfiiJ4nXG4gICAgfVxuICAgIGNvbnN0IHRtcCA9IFtdXG4gICAgaWYgKGR1cmF0aW9uLmRheXMpIHtcbiAgICAgIHRtcC5wdXNoKGAke2R1cmF0aW9uLmRheXN9ZGApXG4gICAgfVxuICAgIGlmIChkdXJhdGlvbi5ob3Vycykge1xuICAgICAgdG1wLnB1c2goYCR7ZHVyYXRpb24uaG91cnN9aGApXG4gICAgfVxuICAgIGlmIChkdXJhdGlvbi5taW51dGVzKSB7XG4gICAgICB0bXAucHVzaChgJHtkdXJhdGlvbi5taW51dGVzfW1pbmApXG4gICAgfVxuICAgIGlmIChkdXJhdGlvbi5zZWNvbmRzKSB7XG4gICAgICB0bXAucHVzaChgJHtkdXJhdGlvbi5zZWNvbmRzfXNgKVxuICAgIH1cblxuICAgIGlmICghdG1wLmxlbmd0aCkge1xuICAgICAgcmV0dXJuICcwcydcbiAgICB9XG5cbiAgICByZXR1cm4gdG1wLmpvaW4oJywgJylcbiAgfVxufVxuIl19
@@ -207,10 +207,10 @@ export class ElderLocalDateInputComponent extends ElderFormFieldControlBase {
207
207
  valuesEquals(a, b) {
208
208
  return a && b ? a.equals(b) : a === b;
209
209
  }
210
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderLocalDateInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
211
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ElderLocalDateInputComponent, isStandalone: true, selector: "elder-local-date-input", inputs: { zone: "zone", autoDatePicker: "autoDatePicker", arrows: "arrows", today: "today", center: "center", datePickerTouchUi: "datePickerTouchUi", allowNull: "allowNull", datePickerEnabled: "datePickerEnabled", isoValue: "isoValue", dateValue: "dateValue", isoDateValue: "isoDateValue" }, outputs: { blurred: "blurred", valueUpdatedBlur: "valueUpdatedBlur", isoValueChange: "isoValueChange", dateValueChange: "dateValueChange", isoDateValueChange: "isoDateValueChange" }, providers: [{ provide: MatFormFieldControl, useExisting: ElderLocalDateInputComponent }], viewQueries: [{ propertyName: "picker", first: true, predicate: MatDatepicker, descendants: true, static: true }, { propertyName: "inputRef", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"layout-row place-start-center elder-flex-control\">\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"arrows\"\n class=\"elder-control-icon-button\"\n [disabled]=\"isLocked || !value\"\n (click)=\"previousDay()\"\n >\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n\n <input\n matInput\n elderNoSpinner\n class=\"flex elder-mdc-input-fix elder-local-date-input\"\n #input\n type=\"date\"\n [name]=\"ngControl?.name + '-inner-input'\"\n [required]=\"!!required\"\n [readonly]=\"readonly || autoDatePicker\"\n [disabled]=\"!!disabled\"\n [placeholder]=\"placeholder | translate\"\n [ngModel]=\"date$ | async | date: 'yyyy-MM-dd'\"\n (ngModelChange)=\"onDateInputChanged($event)\"\n (blur)=\"blurred.next($event)\"\n [class.elder-auto-date-picker]=\"autoDatePicker\"\n [class.noselect]=\"autoDatePicker\"\n [class.center]=\"center || arrows\"\n (click)=\"onDateInputClicked($event)\"\n />\n <input\n style=\"display: none\"\n [matDatepicker]=\"picker\"\n (dateChange)=\"onDatepickerInputChange($event)\"\n />\n\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"arrows\"\n class=\"elder-control-icon-button\"\n [disabled]=\"isLocked || !value\"\n (click)=\"nextDay()\"\n >\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"today\"\n class=\"elder-control-icon-button\"\n style=\"margin-left: 4px\"\n [disabled]=\"isLocked\"\n (click)=\"currentDay()\"\n >\n <mat-icon>today</mat-icon>\n </button>\n\n <mat-datepicker-toggle\n class=\"elder-control-icon-button\"\n *ngIf=\"datePickerEnabled && (!allowNull || (value$ | async) === null)\"\n [disabled]=\"isLocked\"\n [for]=\"picker\"\n >\n <mat-icon matDatepickerToggleIcon>calendar_month</mat-icon>\n </mat-datepicker-toggle>\n\n <button\n mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button\"\n *ngIf=\"allowNull && (value$ | async)\"\n [disabled]=\"isLocked\"\n (click)=\"clear($event)\"\n aria-label=\"Clear\"\n elderStopEventPropagation\n >\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-datepicker [touchUi]=\"datePickerTouchUi\" #picker></mat-datepicker>\n</div>\n", styles: ["input::-webkit-calendar-picker-indicator{display:none}.elder-auto-date-picker{cursor:pointer}.elder-local-date-input.center{text-align:center}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: 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: "directive", type: ElderFormFieldNoSpinnerDirective, selector: "input[elderNoSpinner]", inputs: ["elderNoSpinner"] }, { 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: MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "directive", type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "component", type: MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
210
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderLocalDateInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
211
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: ElderLocalDateInputComponent, isStandalone: true, selector: "elder-local-date-input", inputs: { zone: "zone", autoDatePicker: "autoDatePicker", arrows: "arrows", today: "today", center: "center", datePickerTouchUi: "datePickerTouchUi", allowNull: "allowNull", datePickerEnabled: "datePickerEnabled", isoValue: "isoValue", dateValue: "dateValue", isoDateValue: "isoDateValue" }, outputs: { blurred: "blurred", valueUpdatedBlur: "valueUpdatedBlur", isoValueChange: "isoValueChange", dateValueChange: "dateValueChange", isoDateValueChange: "isoDateValueChange" }, providers: [{ provide: MatFormFieldControl, useExisting: ElderLocalDateInputComponent }], viewQueries: [{ propertyName: "picker", first: true, predicate: MatDatepicker, descendants: true, static: true }, { propertyName: "inputRef", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"layout-row place-start-center elder-flex-control\">\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"arrows\"\n class=\"elder-control-icon-button\"\n [disabled]=\"isLocked || !value\"\n (click)=\"previousDay()\"\n >\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n\n <input\n matInput\n elderNoSpinner\n class=\"flex elder-mdc-input-fix elder-local-date-input\"\n #input\n type=\"date\"\n [name]=\"ngControl?.name + '-inner-input'\"\n [required]=\"!!required\"\n [readonly]=\"readonly || autoDatePicker\"\n [disabled]=\"!!disabled\"\n [placeholder]=\"placeholder | translate\"\n [ngModel]=\"date$ | async | date: 'yyyy-MM-dd'\"\n (ngModelChange)=\"onDateInputChanged($event)\"\n (blur)=\"blurred.next($event)\"\n [class.elder-auto-date-picker]=\"autoDatePicker\"\n [class.noselect]=\"autoDatePicker\"\n [class.center]=\"center || arrows\"\n (click)=\"onDateInputClicked($event)\"\n />\n <input\n style=\"display: none\"\n [matDatepicker]=\"picker\"\n (dateChange)=\"onDatepickerInputChange($event)\"\n />\n\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"arrows\"\n class=\"elder-control-icon-button\"\n [disabled]=\"isLocked || !value\"\n (click)=\"nextDay()\"\n >\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n\n <button\n mat-icon-button\n type=\"button\"\n *ngIf=\"today\"\n class=\"elder-control-icon-button\"\n style=\"margin-left: 4px\"\n [disabled]=\"isLocked\"\n (click)=\"currentDay()\"\n >\n <mat-icon>today</mat-icon>\n </button>\n\n <mat-datepicker-toggle\n class=\"elder-control-icon-button\"\n *ngIf=\"datePickerEnabled && (!allowNull || (value$ | async) === null)\"\n [disabled]=\"isLocked\"\n [for]=\"picker\"\n >\n <mat-icon matDatepickerToggleIcon>calendar_month</mat-icon>\n </mat-datepicker-toggle>\n\n <button\n mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button\"\n *ngIf=\"allowNull && (value$ | async)\"\n [disabled]=\"isLocked\"\n (click)=\"clear($event)\"\n aria-label=\"Clear\"\n elderStopEventPropagation\n >\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-datepicker [touchUi]=\"datePickerTouchUi\" #picker></mat-datepicker>\n</div>\n", styles: ["input::-webkit-calendar-picker-indicator{display:none}.elder-auto-date-picker{cursor:pointer}.elder-local-date-input.center{text-align:center}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: 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: "directive", type: ElderFormFieldNoSpinnerDirective, selector: "input[elderNoSpinner]", inputs: ["elderNoSpinner"] }, { 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: MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "directive", type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "component", type: MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
212
212
  }
213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderLocalDateInputComponent, decorators: [{
213
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ElderLocalDateInputComponent, decorators: [{
214
214
  type: Component,
215
215
  args: [{ selector: 'elder-local-date-input', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: MatFormFieldControl, useExisting: ElderLocalDateInputComponent }], standalone: true, imports: [
216
216
  NgIf,