@elderbyte/ngx-starter 15.19.3 → 16.0.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 (949) hide show
  1. package/esm2022/lib/common/async/refreshing-entity.mjs +86 -0
  2. package/esm2022/lib/common/csv/csv-spec.mjs +99 -0
  3. package/esm2022/lib/common/data/data-context/data-context-auto-starter.mjs +76 -0
  4. package/esm2022/lib/common/data/data-context/data-context-builder.mjs +247 -0
  5. package/esm2022/lib/common/data/data-context/data-context-status.mjs +46 -0
  6. package/esm2022/lib/common/data/data-context/mat-table-data-context-binding.mjs +139 -0
  7. package/esm2022/lib/common/data/datasource/data-source-adapter.mjs +55 -0
  8. package/esm2022/lib/common/data/datasource/data-source-change-event.mjs +24 -0
  9. package/esm2022/lib/common/data/datasource/data-source-processor.mjs +199 -0
  10. package/esm2022/lib/common/data/datasource/fetcher/delegate-data-source.mjs +127 -0
  11. package/esm2022/lib/common/data/datasource/local/local-list-data-source.mjs +141 -0
  12. package/esm2022/lib/common/data/datasource/local/local-paged-data-source.mjs +73 -0
  13. package/esm2022/lib/common/data/entity-set-patch.mjs +164 -0
  14. package/esm2022/lib/common/data/field-comparator.mjs +99 -0
  15. package/esm2022/lib/common/data/http-params-builder.mjs +118 -0
  16. package/esm2022/lib/common/data/sort.mjs +11 -0
  17. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +81 -0
  18. package/esm2022/lib/common/format/bytes-format.mjs +22 -0
  19. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +181 -0
  20. package/esm2022/lib/common/forms/elder-from-field-base.mjs +94 -0
  21. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +52 -0
  22. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +39 -0
  23. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +47 -0
  24. package/esm2022/lib/common/forms/form-field-base.component.mjs +112 -0
  25. package/esm2022/lib/common/forms/multi-model-base.component.mjs +32 -0
  26. package/esm2022/lib/common/forms/template-composite-control.mjs +133 -0
  27. package/esm2022/lib/common/forms/value-accessor-base.mjs +146 -0
  28. package/esm2022/lib/common/forms/view-providers.mjs +30 -0
  29. package/esm2022/lib/common/http/http-client-builder.service.mjs +14 -0
  30. package/esm2022/lib/common/http/http-client-pristine.mjs +21 -0
  31. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +95 -0
  32. package/esm2022/lib/common/http/transfer/data-transfer-progress-aggregate.mjs +49 -0
  33. package/esm2022/lib/common/http/transfer/data-transfer-progress.mjs +17 -0
  34. package/esm2022/lib/common/http/transfer/data-transfer-state.mjs +82 -0
  35. package/esm2022/lib/common/http/transfer/http-data-transfer.mjs +132 -0
  36. package/esm2022/lib/common/i18n/entity/impl/i18n-text.mjs +16 -0
  37. package/esm2022/lib/common/i18n/entity/locale.mjs +12 -0
  38. package/esm2022/lib/common/i18n/entity/localisation-picker.mjs +30 -0
  39. package/esm2022/lib/common/objects.mjs +41 -0
  40. package/esm2022/lib/common/selection/selection-model.mjs +212 -0
  41. package/esm2022/lib/common/suggestion-provider.mjs +12 -0
  42. package/esm2022/lib/common/time/date-util.mjs +93 -0
  43. package/esm2022/lib/common/time/time-util.mjs +41 -0
  44. package/esm2022/lib/common/url/elder-router.service.mjs +54 -0
  45. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +119 -0
  46. package/esm2022/lib/common/url/url-query-params.mjs +133 -0
  47. package/esm2022/lib/common/utils/collection-util.mjs +109 -0
  48. package/esm2022/lib/common/utils/filter-util.mjs +52 -0
  49. package/esm2022/lib/common/utils/focus-util.mjs +23 -0
  50. package/esm2022/lib/common/utils/query-list-binding.mjs +67 -0
  51. package/esm2022/lib/common/utils/url-builder.mjs +275 -0
  52. package/esm2022/lib/common/utils/value-wrapper.mjs +19 -0
  53. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +16 -0
  54. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +30 -0
  55. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +39 -0
  56. package/esm2022/lib/components/auditing/elder-audit.module.mjs +42 -0
  57. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +39 -0
  58. package/esm2022/lib/components/badge/elder-badge.directive.mjs +48 -0
  59. package/esm2022/lib/components/badge/elder-badge.module.mjs +40 -0
  60. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +15 -0
  61. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +35 -0
  62. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +123 -0
  63. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +15 -0
  64. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +211 -0
  65. package/esm2022/lib/components/card-organizer/card-stack.mjs +176 -0
  66. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +49 -0
  67. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +17 -0
  68. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +145 -0
  69. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +66 -0
  70. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +170 -0
  71. package/esm2022/lib/components/chips/elder-chips.module.mjs +48 -0
  72. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +56 -0
  73. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +63 -0
  74. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +46 -0
  75. package/esm2022/lib/components/containers/elder-containers.module.mjs +25 -0
  76. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +24 -0
  77. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +77 -0
  78. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +38 -0
  79. package/esm2022/lib/components/csv/elder-csv-stream-exporter.mjs +114 -0
  80. package/esm2022/lib/components/csv/elder-csv.module.mjs +37 -0
  81. package/esm2022/lib/components/currency/elder-currency.module.mjs +24 -0
  82. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +33 -0
  83. package/esm2022/lib/components/currency/model/currency-unit.mjs +10 -0
  84. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +76 -0
  85. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +91 -0
  86. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +91 -0
  87. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +34 -0
  88. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +47 -0
  89. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +26 -0
  90. package/esm2022/lib/components/data-view/base/data-view-options-provider-binding.mjs +67 -0
  91. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +266 -0
  92. package/esm2022/lib/components/data-view/base/elder-data-view-options.mjs +45 -0
  93. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +45 -0
  94. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +90 -0
  95. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +137 -0
  96. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +89 -0
  97. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +98 -0
  98. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +38 -0
  99. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +307 -0
  100. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +82 -0
  101. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +69 -0
  102. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +49 -0
  103. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +76 -0
  104. package/esm2022/lib/components/data-view/master-detail/elder-master-detail-provider.mjs +20 -0
  105. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +125 -0
  106. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +116 -0
  107. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +88 -0
  108. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +22 -0
  109. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +19 -0
  110. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +78 -0
  111. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +113 -0
  112. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +299 -0
  113. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +29 -0
  114. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +72 -0
  115. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +18 -0
  116. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +325 -0
  117. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +17 -0
  118. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +96 -0
  119. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +29 -0
  120. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +153 -0
  121. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +20 -0
  122. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +146 -0
  123. package/esm2022/lib/components/data-view/table/model/elder-column-layout.mjs +110 -0
  124. package/esm2022/lib/components/data-view/table/model/elder-table-model-cdk-table-binding.mjs +81 -0
  125. package/esm2022/lib/components/data-view/table/model/elder-table-model-provider.mjs +40 -0
  126. package/esm2022/lib/components/data-view/table/model/elder-table-model-query-group.mjs +87 -0
  127. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +165 -0
  128. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +25 -0
  129. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +64 -0
  130. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +202 -0
  131. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +43 -0
  132. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +43 -0
  133. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +46 -0
  134. package/esm2022/lib/components/errors/elder-error.module.mjs +41 -0
  135. package/esm2022/lib/components/errors/error-util.mjs +94 -0
  136. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +66 -0
  137. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +55 -0
  138. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +28 -0
  139. package/esm2022/lib/components/files/blob-url.mjs +10 -0
  140. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +225 -0
  141. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +43 -0
  142. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +84 -0
  143. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +144 -0
  144. package/esm2022/lib/components/files/elder-file-select.directive.mjs +166 -0
  145. package/esm2022/lib/components/files/elder-file.module.mjs +77 -0
  146. package/esm2022/lib/components/files/file-select/file-select.component.mjs +55 -0
  147. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +67 -0
  148. package/esm2022/lib/components/files/listing/file-entry.mjs +76 -0
  149. package/esm2022/lib/components/files/listing/file-listing-rx.mjs +104 -0
  150. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +51 -0
  151. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +34 -0
  152. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +35 -0
  153. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +42 -0
  154. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +82 -0
  155. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +83 -0
  156. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +41 -0
  157. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +34 -0
  158. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +132 -0
  159. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +77 -0
  160. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +111 -0
  161. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +101 -0
  162. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +36 -0
  163. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +29 -0
  164. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +157 -0
  165. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +27 -0
  166. package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +108 -0
  167. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +85 -0
  168. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +47 -0
  169. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +48 -0
  170. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +55 -0
  171. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +40 -0
  172. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +40 -0
  173. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +96 -0
  174. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +68 -0
  175. package/esm2022/lib/components/forms/elder-forms.module.mjs +22 -0
  176. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +146 -0
  177. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +185 -0
  178. package/esm2022/lib/components/forms/search/elder-search.module.mjs +66 -0
  179. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +125 -0
  180. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +16 -0
  181. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +126 -0
  182. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +32 -0
  183. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +93 -0
  184. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +90 -0
  185. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +26 -0
  186. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +28 -0
  187. package/esm2022/lib/components/headers/elder-header.module.mjs +43 -0
  188. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +68 -0
  189. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +123 -0
  190. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +144 -0
  191. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +29 -0
  192. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +30 -0
  193. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +152 -0
  194. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +28 -0
  195. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +56 -0
  196. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +39 -0
  197. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +30 -0
  198. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +74 -0
  199. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +69 -0
  200. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +72 -0
  201. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +121 -0
  202. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +65 -0
  203. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +53 -0
  204. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +130 -0
  205. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +138 -0
  206. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +103 -0
  207. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +41 -0
  208. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +51 -0
  209. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +136 -0
  210. package/esm2022/lib/components/iframes/iframe-messages.mjs +5 -0
  211. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +78 -0
  212. package/esm2022/lib/components/iframes/iframe.service.mjs +52 -0
  213. package/esm2022/lib/components/iframes/typed-event-message.mjs +42 -0
  214. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +61 -0
  215. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +158 -0
  216. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +29 -0
  217. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +186 -0
  218. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +197 -0
  219. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +114 -0
  220. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +58 -0
  221. package/esm2022/lib/components/labels/elder-labels.module.mjs +30 -0
  222. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +229 -0
  223. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +273 -0
  224. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +91 -0
  225. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +64 -0
  226. package/esm2022/lib/components/measures/elder-measures.module.mjs +140 -0
  227. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +41 -0
  228. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +73 -0
  229. package/esm2022/lib/components/measures/elder-unit.service.mjs +115 -0
  230. package/esm2022/lib/components/measures/model/unit-registry.mjs +81 -0
  231. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +33 -0
  232. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +176 -0
  233. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +87 -0
  234. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +76 -0
  235. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +237 -0
  236. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +164 -0
  237. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +55 -0
  238. package/esm2022/lib/components/navigation/bread-crumbs/path/path.mjs +37 -0
  239. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +53 -0
  240. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +127 -0
  241. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +161 -0
  242. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +68 -0
  243. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +46 -0
  244. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +76 -0
  245. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +68 -0
  246. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +66 -0
  247. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +39 -0
  248. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +85 -0
  249. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +43 -0
  250. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +72 -0
  251. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +204 -0
  252. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +41 -0
  253. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +12 -0
  254. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +12 -0
  255. package/esm2022/lib/components/panels/elder-panel.module.mjs +58 -0
  256. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +26 -0
  257. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +69 -0
  258. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +68 -0
  259. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +62 -0
  260. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +17 -0
  261. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +77 -0
  262. package/esm2022/lib/components/select/auto/elder-select-first-util.mjs +62 -0
  263. package/esm2022/lib/components/select/elder-select-base.mjs +284 -0
  264. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +45 -0
  265. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +133 -0
  266. package/esm2022/lib/components/select/elder-select-value.directive.mjs +15 -0
  267. package/esm2022/lib/components/select/elder-select.module.mjs +146 -0
  268. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +350 -0
  269. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +287 -0
  270. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +91 -0
  271. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +86 -0
  272. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +126 -0
  273. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +47 -0
  274. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +57 -0
  275. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +443 -0
  276. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +45 -0
  277. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +149 -0
  278. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +48 -0
  279. package/esm2022/lib/components/shell/drawers/drawer-outlet-binding.mjs +60 -0
  280. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +117 -0
  281. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +128 -0
  282. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +46 -0
  283. package/esm2022/lib/components/shell/elder-shell.module.mjs +96 -0
  284. package/esm2022/lib/components/shell/elder-shell.service.mjs +145 -0
  285. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +73 -0
  286. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +209 -0
  287. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +137 -0
  288. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +25 -0
  289. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +256 -0
  290. package/esm2022/lib/components/tabs/elder-tab.module.mjs +32 -0
  291. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +62 -0
  292. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +74 -0
  293. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +74 -0
  294. package/esm2022/lib/components/theme/elder-theme.directive.mjs +61 -0
  295. package/esm2022/lib/components/theme/elder-theme.module.mjs +74 -0
  296. package/esm2022/lib/components/theme/elder-theme.service.mjs +123 -0
  297. package/esm2022/lib/components/theme/known-elder-themes.mjs +6 -0
  298. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +23 -0
  299. package/esm2022/lib/components/time/duration/duration-format.mjs +271 -0
  300. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +122 -0
  301. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +89 -0
  302. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +108 -0
  303. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +173 -0
  304. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +264 -0
  305. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +95 -0
  306. package/esm2022/lib/components/time/elder-time.module.mjs +120 -0
  307. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +131 -0
  308. package/esm2022/lib/components/time/period/period-format.mjs +89 -0
  309. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +38 -0
  310. package/esm2022/lib/components/toasts/elder-toast.module.mjs +23 -0
  311. package/esm2022/lib/components/toasts/elder-toast.service.mjs +171 -0
  312. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +74 -0
  313. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +54 -0
  314. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +84 -0
  315. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +65 -0
  316. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +25 -0
  317. package/esm2022/lib/features/event-source/elder-event-source.service.mjs +56 -0
  318. package/esm2022/lib/features/event-source/reactive-event-source.mjs +198 -0
  319. package/esm2022/lib/features/kafent/access-token-provider.mjs +20 -0
  320. package/esm2022/lib/features/kafent/kafent-config.mjs +24 -0
  321. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +25 -0
  322. package/esm2022/lib/features/kafent/kafent-event.service.mjs +107 -0
  323. package/esm2022/lib/features/kafent/kafent.module.mjs +61 -0
  324. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +128 -0
  325. package/esm2022/lib/pipes/bytes.pipe.mjs +24 -0
  326. package/esm2022/lib/pipes/elder-pipes.module.mjs +67 -0
  327. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +21 -0
  328. package/esm2022/lib/pipes/elder-round.pipe.mjs +35 -0
  329. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +20 -0
  330. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +40 -0
  331. package/esm2022/lib/pipes/iso-duration.pipe.mjs +58 -0
  332. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +49 -0
  333. package/esm2022/lib/pipes/iso-interval.pipe.mjs +110 -0
  334. package/esm2022/lib/pipes/time-ago.pipe.mjs +104 -0
  335. package/esm2022/lib/pipes/time-duration.pipe.mjs +98 -0
  336. package/esm2022/lib/pipes/weight.pipe.mjs +56 -0
  337. package/fesm2022/elderbyte-ngx-starter.mjs +30269 -0
  338. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -0
  339. package/lib/common/data/field-comparator.d.ts +1 -1
  340. package/lib/common/forms/elder-form-field-control-base.directive.d.ts +1 -1
  341. package/lib/common/forms/elder-from-field-base.d.ts +1 -1
  342. package/lib/common/forms/elder-from-field-customizable-base.d.ts +1 -1
  343. package/lib/common/forms/form-field-base.component.d.ts +1 -1
  344. package/lib/common/forms/template-composite-control.d.ts +1 -1
  345. package/lib/common/forms/value-accessor-base.d.ts +1 -1
  346. package/lib/common/i18n/entity/language-tag.d.ts +1 -1
  347. package/lib/common/i18n/entity/translated.d.ts +1 -1
  348. package/lib/common/json-map.d.ts +1 -1
  349. package/lib/common/selection/selection-model.d.ts +1 -1
  350. package/lib/common/theme-sizes.d.ts +1 -1
  351. package/lib/common/time/date-util.d.ts +1 -1
  352. package/lib/common/time/interval.d.ts +1 -1
  353. package/lib/components/auditing/audited-entity/elder-audited-entity.component.d.ts +1 -1
  354. package/lib/components/badge/elder-badge/elder-badge.component.d.ts +1 -1
  355. package/lib/components/badge/elder-badge.directive.d.ts +1 -1
  356. package/lib/components/card-organizer/card-organizer/elder-card-organizer.component.d.ts +1 -1
  357. package/lib/components/card-organizer/card-stack/elder-card-stack.component.d.ts +1 -1
  358. package/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.d.ts +1 -1
  359. package/lib/components/cards/elder-card/elder-card.component.d.ts +3 -3
  360. package/lib/components/chips/elder-chip-label.directive.d.ts +4 -4
  361. package/lib/components/containers/elder-scroll-container/elder-scroll-container.component.d.ts +2 -2
  362. package/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.d.ts +1 -1
  363. package/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.d.ts +1 -1
  364. package/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.d.ts +1 -1
  365. package/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.d.ts +1 -1
  366. package/lib/components/data-view/base/elder-data-view-base.d.ts +1 -1
  367. package/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.d.ts +1 -1
  368. package/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.d.ts +3 -3
  369. package/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.d.ts +1 -1
  370. package/lib/components/data-view/common/selection/data-context-selection.directive.d.ts +1 -1
  371. package/lib/components/data-view/elder-data-view-interaction-mode.d.ts +1 -1
  372. package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +1 -1
  373. package/lib/components/data-view/master-detail/elder-master-detail-mode.d.ts +1 -1
  374. package/lib/components/data-view/master-detail/elder-master-detail.component.d.ts +1 -1
  375. package/lib/components/data-view/table/activation/elder-delete-active.directive.d.ts +1 -1
  376. package/lib/components/data-view/table/activation/elder-table-activation-options.d.ts +2 -2
  377. package/lib/components/data-view/table/activation/elder-table-activation.directive.d.ts +1 -1
  378. package/lib/components/data-view/table/elder-table/elder-table.component.d.ts +1 -1
  379. package/lib/components/data-view/table/elder-table-extension.directive.d.ts +1 -1
  380. package/lib/components/data-view/table/elder-table-row.directive.d.ts +1 -1
  381. package/lib/components/data-view/table/model/elder-column-layout.d.ts +1 -1
  382. package/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.d.ts +1 -1
  383. package/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.d.ts +1 -1
  384. package/lib/components/errors/exception-detail/elder-exception-detail.component.d.ts +1 -1
  385. package/lib/components/expand-toggle-button/elder-expand-toggle-button.component.d.ts +1 -1
  386. package/lib/components/files/blob-viewer/elder-blob-viewer.component.d.ts +1 -1
  387. package/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.d.ts +1 -1
  388. package/lib/components/files/elder-file-drop-zone.directive.d.ts +1 -1
  389. package/lib/components/files/elder-file-select.directive.d.ts +1 -1
  390. package/lib/components/files/file-select/file-select.component.d.ts +1 -1
  391. package/lib/components/files/file-upload/file-upload.component.d.ts +1 -1
  392. package/lib/components/forms/directives/elder-clipboard-put.directive.d.ts +1 -1
  393. package/lib/components/forms/directives/elder-delayed-focus.directive.d.ts +1 -1
  394. package/lib/components/forms/directives/elder-form-field-dense.directive.d.ts +1 -1
  395. package/lib/components/forms/directives/elder-form-field-label.directive.d.ts +1 -1
  396. package/lib/components/forms/directives/elder-form-field-no-hint.directive.d.ts +1 -1
  397. package/lib/components/forms/directives/elder-form-field-no-spinner.directive.d.ts +1 -1
  398. package/lib/components/forms/directives/elder-input-pattern.directive.d.ts +1 -1
  399. package/lib/components/forms/directives/elder-key-event.directive.d.ts +1 -1
  400. package/lib/components/forms/directives/elder-next-focusable.directive.d.ts +1 -1
  401. package/lib/components/forms/directives/elder-tab-focus-trap.directive.d.ts +1 -1
  402. package/lib/components/forms/directives/validation/validators/elder-max.validator.d.ts +1 -1
  403. package/lib/components/forms/directives/validation/validators/elder-min.validator.d.ts +1 -1
  404. package/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.d.ts +1 -1
  405. package/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.d.ts +1 -1
  406. package/lib/components/forms/search/elder-search-context.directive.d.ts +1 -1
  407. package/lib/components/forms/search/elder-search-input.directive.d.ts +1 -1
  408. package/lib/components/forms/search/search-box/elder-search-box.component.d.ts +1 -1
  409. package/lib/components/global-search/elder-global-search.component.d.ts +1 -1
  410. package/lib/components/graph/elder-progress-bar/elder-progress-bar.component.d.ts +1 -1
  411. package/lib/components/headers/elder-header/elder-header.component.d.ts +1 -1
  412. package/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.d.ts +1 -1
  413. package/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.d.ts +1 -1
  414. package/lib/components/i18n/entities/elder-localized-text-column.directive.d.ts +1 -1
  415. package/lib/components/i18n/language/language-switcher/elder-language-switcher.component.d.ts +1 -1
  416. package/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.d.ts +1 -1
  417. package/lib/components/iframes/iframe-close.directive.d.ts +1 -1
  418. package/lib/components/iframes/iframe-host/iframe-host.component.d.ts +2 -2
  419. package/lib/components/iframes/typed-event-message.d.ts +1 -1
  420. package/lib/components/infinitescroll/elder-infinite-scroll.directive.d.ts +1 -1
  421. package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.d.ts +2 -2
  422. package/lib/components/input/autocomplete/elder-autocomplete-many.directive.d.ts +1 -1
  423. package/lib/components/input/autocomplete/elder-autocomplete.directive.d.ts +1 -1
  424. package/lib/components/labels/labels-input/labels-input.component.d.ts +1 -1
  425. package/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.d.ts +2 -2
  426. package/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.d.ts +1 -1
  427. package/lib/components/measures/directives/elder-unit-select.directive.d.ts +1 -1
  428. package/lib/components/measures/model/unit.d.ts +1 -1
  429. package/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.d.ts +1 -1
  430. package/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.d.ts +1 -1
  431. package/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.d.ts +1 -1
  432. package/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.d.ts +1 -1
  433. package/lib/components/navigation/nav/nav-group/elder-nav-group.component.d.ts +1 -1
  434. package/lib/components/navigation/nav/nav-link/elder-nav-link.component.d.ts +1 -1
  435. package/lib/components/navigation/nav/nav-list/elder-nav-list.component.d.ts +1 -1
  436. package/lib/components/navigation/toolbar/elder-toolbar-column.directive.d.ts +1 -1
  437. package/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.d.ts +1 -1
  438. package/lib/components/navigation/toolbar/toolbar-column-position.d.ts +1 -1
  439. package/lib/components/overlays/elder-overlay-origin.directive.d.ts +1 -1
  440. package/lib/components/overlays/elder-overlay-trigger.directive.d.ts +1 -1
  441. package/lib/components/overlays/elder-overlay.component.d.ts +1 -1
  442. package/lib/components/panels/flat/elder-panel.component.d.ts +1 -1
  443. package/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.d.ts +1 -1
  444. package/lib/components/scrollbar/elder-scrollbar.directive.d.ts +1 -1
  445. package/lib/components/select/auto/elder-auto-select-first.directive.d.ts +1 -1
  446. package/lib/components/select/elder-select-base.d.ts +2 -2
  447. package/lib/components/select/multi/elder-multi-select-base.d.ts +1 -1
  448. package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +1 -1
  449. package/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.d.ts +1 -1
  450. package/lib/components/select/popup/selection-model-popup.directive.d.ts +1 -1
  451. package/lib/components/select/single/elder-select/elder-select.component.d.ts +1 -1
  452. package/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.d.ts +1 -1
  453. package/lib/components/shell/elder-shell-slot.directive.d.ts +1 -1
  454. package/lib/components/shell/header/elder-app-header/elder-app-header.component.d.ts +1 -1
  455. package/lib/components/shell/shell/elder-shell.component.d.ts +1 -1
  456. package/lib/components/shell/shell-content-slot.d.ts +1 -1
  457. package/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.d.ts +1 -1
  458. package/lib/components/tabs/elder-tab/elder-tab.directive.d.ts +1 -1
  459. package/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.d.ts +1 -1
  460. package/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.d.ts +2 -2
  461. package/lib/components/time/duration/elder-duration-input/elder-duration-input.component.d.ts +1 -1
  462. package/lib/components/time/duration/iso-duration-str.d.ts +1 -1
  463. package/lib/components/time/elder-date-switcher/elder-date-switcher.component.d.ts +1 -1
  464. package/lib/components/time/elder-date-time-input/elder-date-time-input.component.d.ts +1 -1
  465. package/lib/components/time/elder-interval-input/elder-interval-input.component.d.ts +2 -2
  466. package/lib/components/time/elder-local-date-input/elder-local-date-input.component.d.ts +1 -1
  467. package/lib/components/time/elder-local-time-input/elder-local-time-input.component.d.ts +1 -1
  468. package/lib/components/time/period/elder-period-input/elder-period-input.component.d.ts +1 -1
  469. package/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.d.ts +1 -1
  470. package/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.d.ts +1 -1
  471. package/lib/pipes/elder-truncate.pipe.d.ts +1 -1
  472. package/package.json +12 -18
  473. package/esm2020/lib/common/async/refreshing-entity.mjs +0 -86
  474. package/esm2020/lib/common/csv/csv-spec.mjs +0 -99
  475. package/esm2020/lib/common/data/data-context/data-context-auto-starter.mjs +0 -76
  476. package/esm2020/lib/common/data/data-context/data-context-builder.mjs +0 -247
  477. package/esm2020/lib/common/data/data-context/data-context-status.mjs +0 -46
  478. package/esm2020/lib/common/data/data-context/mat-table-data-context-binding.mjs +0 -139
  479. package/esm2020/lib/common/data/datasource/data-source-adapter.mjs +0 -55
  480. package/esm2020/lib/common/data/datasource/data-source-change-event.mjs +0 -24
  481. package/esm2020/lib/common/data/datasource/data-source-processor.mjs +0 -199
  482. package/esm2020/lib/common/data/datasource/fetcher/delegate-data-source.mjs +0 -127
  483. package/esm2020/lib/common/data/datasource/local/local-list-data-source.mjs +0 -141
  484. package/esm2020/lib/common/data/datasource/local/local-paged-data-source.mjs +0 -73
  485. package/esm2020/lib/common/data/entity-set-patch.mjs +0 -164
  486. package/esm2020/lib/common/data/field-comparator.mjs +0 -99
  487. package/esm2020/lib/common/data/http-params-builder.mjs +0 -118
  488. package/esm2020/lib/common/data/sort.mjs +0 -11
  489. package/esm2020/lib/common/enums/elder-enum-translation.service.mjs +0 -81
  490. package/esm2020/lib/common/format/bytes-format.mjs +0 -22
  491. package/esm2020/lib/common/forms/elder-form-field-control-base.directive.mjs +0 -181
  492. package/esm2020/lib/common/forms/elder-from-field-base.mjs +0 -94
  493. package/esm2020/lib/common/forms/elder-from-field-customizable-base.mjs +0 -52
  494. package/esm2020/lib/common/forms/elder-from-field-entity-base.mjs +0 -39
  495. package/esm2020/lib/common/forms/elder-from-field-multi-entity-base.mjs +0 -47
  496. package/esm2020/lib/common/forms/form-field-base.component.mjs +0 -112
  497. package/esm2020/lib/common/forms/multi-model-base.component.mjs +0 -32
  498. package/esm2020/lib/common/forms/template-composite-control.mjs +0 -133
  499. package/esm2020/lib/common/forms/value-accessor-base.mjs +0 -146
  500. package/esm2020/lib/common/forms/view-providers.mjs +0 -30
  501. package/esm2020/lib/common/http/http-client-builder.service.mjs +0 -14
  502. package/esm2020/lib/common/http/http-client-pristine.mjs +0 -21
  503. package/esm2020/lib/common/http/transfer/data-transfer-factory.mjs +0 -95
  504. package/esm2020/lib/common/http/transfer/data-transfer-progress-aggregate.mjs +0 -49
  505. package/esm2020/lib/common/http/transfer/data-transfer-progress.mjs +0 -17
  506. package/esm2020/lib/common/http/transfer/data-transfer-state.mjs +0 -82
  507. package/esm2020/lib/common/http/transfer/http-data-transfer.mjs +0 -132
  508. package/esm2020/lib/common/i18n/entity/impl/i18n-text.mjs +0 -16
  509. package/esm2020/lib/common/i18n/entity/locale.mjs +0 -12
  510. package/esm2020/lib/common/i18n/entity/localisation-picker.mjs +0 -30
  511. package/esm2020/lib/common/objects.mjs +0 -41
  512. package/esm2020/lib/common/selection/selection-model.mjs +0 -212
  513. package/esm2020/lib/common/suggestion-provider.mjs +0 -12
  514. package/esm2020/lib/common/time/date-util.mjs +0 -93
  515. package/esm2020/lib/common/time/time-util.mjs +0 -41
  516. package/esm2020/lib/common/url/elder-router.service.mjs +0 -54
  517. package/esm2020/lib/common/url/elder-url-fragment-params.service.mjs +0 -119
  518. package/esm2020/lib/common/url/url-query-params.mjs +0 -133
  519. package/esm2020/lib/common/utils/collection-util.mjs +0 -109
  520. package/esm2020/lib/common/utils/filter-util.mjs +0 -52
  521. package/esm2020/lib/common/utils/focus-util.mjs +0 -23
  522. package/esm2020/lib/common/utils/query-list-binding.mjs +0 -67
  523. package/esm2020/lib/common/utils/url-builder.mjs +0 -275
  524. package/esm2020/lib/common/utils/value-wrapper.mjs +0 -19
  525. package/esm2020/lib/components/access-denied/elder-access-denied.component.mjs +0 -16
  526. package/esm2020/lib/components/access-denied/elder-access-denied.module.mjs +0 -30
  527. package/esm2020/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +0 -39
  528. package/esm2020/lib/components/auditing/elder-audit.module.mjs +0 -42
  529. package/esm2020/lib/components/badge/elder-badge/elder-badge.component.mjs +0 -39
  530. package/esm2020/lib/components/badge/elder-badge.directive.mjs +0 -48
  531. package/esm2020/lib/components/badge/elder-badge.module.mjs +0 -40
  532. package/esm2020/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +0 -15
  533. package/esm2020/lib/components/button-group/elder-button-group.module.mjs +0 -35
  534. package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +0 -123
  535. package/esm2020/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +0 -15
  536. package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +0 -211
  537. package/esm2020/lib/components/card-organizer/card-stack.mjs +0 -176
  538. package/esm2020/lib/components/card-organizer/elder-card-organizer.module.mjs +0 -49
  539. package/esm2020/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +0 -17
  540. package/esm2020/lib/components/cards/elder-card/elder-card.component.mjs +0 -145
  541. package/esm2020/lib/components/cards/elder-card/elder-card.module.mjs +0 -66
  542. package/esm2020/lib/components/chips/elder-chip-label.directive.mjs +0 -170
  543. package/esm2020/lib/components/chips/elder-chips.module.mjs +0 -48
  544. package/esm2020/lib/components/connectivity/elder-connectivity.module.mjs +0 -56
  545. package/esm2020/lib/components/connectivity/elder-connectivity.service.mjs +0 -63
  546. package/esm2020/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +0 -46
  547. package/esm2020/lib/components/containers/elder-containers.module.mjs +0 -25
  548. package/esm2020/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +0 -24
  549. package/esm2020/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +0 -77
  550. package/esm2020/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +0 -38
  551. package/esm2020/lib/components/csv/elder-csv-stream-exporter.mjs +0 -114
  552. package/esm2020/lib/components/csv/elder-csv.module.mjs +0 -37
  553. package/esm2020/lib/components/currency/elder-currency.module.mjs +0 -24
  554. package/esm2020/lib/components/currency/elder-currency.pipe.mjs +0 -33
  555. package/esm2020/lib/components/currency/model/currency-unit.mjs +0 -10
  556. package/esm2020/lib/components/data-transfer/elder-data-transfer.module.mjs +0 -76
  557. package/esm2020/lib/components/data-transfer/elder-data-transfer.service.mjs +0 -91
  558. package/esm2020/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +0 -91
  559. package/esm2020/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +0 -34
  560. package/esm2020/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +0 -47
  561. package/esm2020/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +0 -26
  562. package/esm2020/lib/components/data-view/base/data-view-options-provider-binding.mjs +0 -67
  563. package/esm2020/lib/components/data-view/base/elder-data-view-base.mjs +0 -266
  564. package/esm2020/lib/components/data-view/base/elder-data-view-options.mjs +0 -45
  565. package/esm2020/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +0 -45
  566. package/esm2020/lib/components/data-view/common/elder-data-common.module.mjs +0 -90
  567. package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +0 -137
  568. package/esm2020/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +0 -89
  569. package/esm2020/lib/components/data-view/common/selection/data-context-selection.directive.mjs +0 -98
  570. package/esm2020/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +0 -38
  571. package/esm2020/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +0 -307
  572. package/esm2020/lib/components/data-view/grid/elder-grid.module.mjs +0 -82
  573. package/esm2020/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +0 -69
  574. package/esm2020/lib/components/data-view/master-detail/elder-detail.directive.mjs +0 -49
  575. package/esm2020/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +0 -76
  576. package/esm2020/lib/components/data-view/master-detail/elder-master-detail-provider.mjs +0 -20
  577. package/esm2020/lib/components/data-view/master-detail/elder-master-detail.component.mjs +0 -125
  578. package/esm2020/lib/components/data-view/master-detail/elder-master-detail.module.mjs +0 -116
  579. package/esm2020/lib/components/data-view/master-detail/elder-master-detail.service.mjs +0 -88
  580. package/esm2020/lib/components/data-view/master-detail/elder-master.directive.mjs +0 -22
  581. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +0 -19
  582. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +0 -78
  583. package/esm2020/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +0 -113
  584. package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +0 -299
  585. package/esm2020/lib/components/data-view/table/elder-number-cell.directive.mjs +0 -29
  586. package/esm2020/lib/components/data-view/table/elder-paginator-intl.mjs +0 -72
  587. package/esm2020/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +0 -18
  588. package/esm2020/lib/components/data-view/table/elder-table/elder-table.component.mjs +0 -325
  589. package/esm2020/lib/components/data-view/table/elder-table-column.directive.mjs +0 -17
  590. package/esm2020/lib/components/data-view/table/elder-table-extension.directive.mjs +0 -96
  591. package/esm2020/lib/components/data-view/table/elder-table-root.directive.mjs +0 -29
  592. package/esm2020/lib/components/data-view/table/elder-table-row.directive.mjs +0 -151
  593. package/esm2020/lib/components/data-view/table/elder-table-sort.directive.mjs +0 -20
  594. package/esm2020/lib/components/data-view/table/elder-table.module.mjs +0 -146
  595. package/esm2020/lib/components/data-view/table/model/elder-column-layout.mjs +0 -110
  596. package/esm2020/lib/components/data-view/table/model/elder-table-model-cdk-table-binding.mjs +0 -81
  597. package/esm2020/lib/components/data-view/table/model/elder-table-model-provider.mjs +0 -40
  598. package/esm2020/lib/components/data-view/table/model/elder-table-model-query-group.mjs +0 -87
  599. package/esm2020/lib/components/data-view/table/model/elder-table-model.mjs +0 -165
  600. package/esm2020/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +0 -25
  601. package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +0 -64
  602. package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +0 -202
  603. package/esm2020/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +0 -43
  604. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +0 -43
  605. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +0 -46
  606. package/esm2020/lib/components/errors/elder-error.module.mjs +0 -41
  607. package/esm2020/lib/components/errors/error-util.mjs +0 -94
  608. package/esm2020/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +0 -66
  609. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +0 -55
  610. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +0 -28
  611. package/esm2020/lib/components/files/blob-url.mjs +0 -10
  612. package/esm2020/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +0 -225
  613. package/esm2020/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +0 -43
  614. package/esm2020/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +0 -84
  615. package/esm2020/lib/components/files/elder-file-drop-zone.directive.mjs +0 -144
  616. package/esm2020/lib/components/files/elder-file-select.directive.mjs +0 -166
  617. package/esm2020/lib/components/files/elder-file.module.mjs +0 -77
  618. package/esm2020/lib/components/files/file-select/file-select.component.mjs +0 -55
  619. package/esm2020/lib/components/files/file-upload/file-upload.component.mjs +0 -67
  620. package/esm2020/lib/components/files/listing/file-entry.mjs +0 -76
  621. package/esm2020/lib/components/files/listing/file-listing-rx.mjs +0 -104
  622. package/esm2020/lib/components/forms/clipboard/elder-clipboard.service.mjs +0 -51
  623. package/esm2020/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +0 -34
  624. package/esm2020/lib/components/forms/directives/elder-clipboard-put.directive.mjs +0 -35
  625. package/esm2020/lib/components/forms/directives/elder-delayed-focus.directive.mjs +0 -42
  626. package/esm2020/lib/components/forms/directives/elder-form-field-dense.directive.mjs +0 -82
  627. package/esm2020/lib/components/forms/directives/elder-form-field-label.directive.mjs +0 -83
  628. package/esm2020/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +0 -41
  629. package/esm2020/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +0 -34
  630. package/esm2020/lib/components/forms/directives/elder-forms-directives.module.mjs +0 -132
  631. package/esm2020/lib/components/forms/directives/elder-input-pattern.directive.mjs +0 -77
  632. package/esm2020/lib/components/forms/directives/elder-key-event.directive.mjs +0 -111
  633. package/esm2020/lib/components/forms/directives/elder-next-focusable.directive.mjs +0 -101
  634. package/esm2020/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +0 -36
  635. package/esm2020/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +0 -29
  636. package/esm2020/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +0 -157
  637. package/esm2020/lib/components/forms/directives/elder-touched.directive.mjs +0 -27
  638. package/esm2020/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +0 -108
  639. package/esm2020/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +0 -85
  640. package/esm2020/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +0 -47
  641. package/esm2020/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +0 -48
  642. package/esm2020/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +0 -55
  643. package/esm2020/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +0 -40
  644. package/esm2020/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +0 -40
  645. package/esm2020/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +0 -96
  646. package/esm2020/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +0 -68
  647. package/esm2020/lib/components/forms/elder-forms.module.mjs +0 -22
  648. package/esm2020/lib/components/forms/search/elder-search-context.directive.mjs +0 -146
  649. package/esm2020/lib/components/forms/search/elder-search-input.directive.mjs +0 -185
  650. package/esm2020/lib/components/forms/search/elder-search.module.mjs +0 -66
  651. package/esm2020/lib/components/forms/search/search-box/elder-search-box.component.mjs +0 -125
  652. package/esm2020/lib/components/forms/search/search-box/elder-search-panel.component.mjs +0 -16
  653. package/esm2020/lib/components/global-search/elder-global-search.component.mjs +0 -126
  654. package/esm2020/lib/components/global-search/elder-global-search.module.mjs +0 -32
  655. package/esm2020/lib/components/global-search/elder-global-search.service.mjs +0 -93
  656. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +0 -90
  657. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +0 -26
  658. package/esm2020/lib/components/headers/elder-header/elder-header.component.mjs +0 -28
  659. package/esm2020/lib/components/headers/elder-header.module.mjs +0 -43
  660. package/esm2020/lib/components/http-support/elder-http-client.service.mjs +0 -68
  661. package/esm2020/lib/components/i18n/entities/elder-i18n-entities.module.mjs +0 -123
  662. package/esm2020/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +0 -144
  663. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +0 -29
  664. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +0 -30
  665. package/esm2020/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +0 -152
  666. package/esm2020/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +0 -28
  667. package/esm2020/lib/components/i18n/entities/elder-localized-texts.directive.mjs +0 -56
  668. package/esm2020/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +0 -39
  669. package/esm2020/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +0 -30
  670. package/esm2020/lib/components/i18n/entities/picker/localisation-picker.service.mjs +0 -74
  671. package/esm2020/lib/components/i18n/language/elder-language-interceptor.mjs +0 -69
  672. package/esm2020/lib/components/i18n/language/elder-language.module.mjs +0 -72
  673. package/esm2020/lib/components/i18n/language/elder-language.service.mjs +0 -121
  674. package/esm2020/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +0 -65
  675. package/esm2020/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +0 -53
  676. package/esm2020/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +0 -130
  677. package/esm2020/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +0 -138
  678. package/esm2020/lib/components/iframes/elder-iframe.module.mjs +0 -103
  679. package/esm2020/lib/components/iframes/iframe-close.directive.mjs +0 -41
  680. package/esm2020/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +0 -51
  681. package/esm2020/lib/components/iframes/iframe-host/iframe-host.component.mjs +0 -136
  682. package/esm2020/lib/components/iframes/iframe-messages.mjs +0 -5
  683. package/esm2020/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +0 -78
  684. package/esm2020/lib/components/iframes/iframe.service.mjs +0 -52
  685. package/esm2020/lib/components/iframes/typed-event-message.mjs +0 -42
  686. package/esm2020/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +0 -61
  687. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +0 -158
  688. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +0 -29
  689. package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +0 -186
  690. package/esm2020/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +0 -197
  691. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +0 -114
  692. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.module.mjs +0 -58
  693. package/esm2020/lib/components/labels/elder-labels.module.mjs +0 -30
  694. package/esm2020/lib/components/labels/labels-input/labels-input.component.mjs +0 -229
  695. package/esm2020/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +0 -273
  696. package/esm2020/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +0 -91
  697. package/esm2020/lib/components/measures/directives/elder-unit-select.directive.mjs +0 -64
  698. package/esm2020/lib/components/measures/elder-measures.module.mjs +0 -140
  699. package/esm2020/lib/components/measures/elder-quantity-transform.pipe.mjs +0 -41
  700. package/esm2020/lib/components/measures/elder-quantity.pipe.mjs +0 -73
  701. package/esm2020/lib/components/measures/elder-unit.service.mjs +0 -115
  702. package/esm2020/lib/components/measures/model/unit-registry.mjs +0 -81
  703. package/esm2020/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +0 -33
  704. package/esm2020/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +0 -176
  705. package/esm2020/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +0 -87
  706. package/esm2020/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +0 -76
  707. package/esm2020/lib/components/measures/util/elder-quantity.service.mjs +0 -237
  708. package/esm2020/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +0 -164
  709. package/esm2020/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +0 -55
  710. package/esm2020/lib/components/navigation/bread-crumbs/path/path.mjs +0 -37
  711. package/esm2020/lib/components/navigation/nav/elder-nav.module.mjs +0 -53
  712. package/esm2020/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +0 -127
  713. package/esm2020/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +0 -161
  714. package/esm2020/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +0 -68
  715. package/esm2020/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +0 -46
  716. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.module.mjs +0 -76
  717. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.service.mjs +0 -68
  718. package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +0 -66
  719. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +0 -39
  720. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +0 -85
  721. package/esm2020/lib/components/overlays/elder-overlay-origin.directive.mjs +0 -43
  722. package/esm2020/lib/components/overlays/elder-overlay-trigger.directive.mjs +0 -72
  723. package/esm2020/lib/components/overlays/elder-overlay.component.mjs +0 -204
  724. package/esm2020/lib/components/overlays/elder-overlay.module.mjs +0 -41
  725. package/esm2020/lib/components/panels/card-panel/elder-card-panel.component.mjs +0 -12
  726. package/esm2020/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +0 -12
  727. package/esm2020/lib/components/panels/elder-panel.module.mjs +0 -58
  728. package/esm2020/lib/components/panels/flat/elder-panel.component.mjs +0 -26
  729. package/esm2020/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +0 -69
  730. package/esm2020/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +0 -68
  731. package/esm2020/lib/components/scrollbar/elder-scrollbar.directive.mjs +0 -62
  732. package/esm2020/lib/components/scrollbar/elder-scrollbar.module.mjs +0 -17
  733. package/esm2020/lib/components/select/auto/elder-auto-select-first.directive.mjs +0 -77
  734. package/esm2020/lib/components/select/auto/elder-select-first-util.mjs +0 -62
  735. package/esm2020/lib/components/select/elder-select-base.mjs +0 -284
  736. package/esm2020/lib/components/select/elder-select-chip.directive.mjs +0 -45
  737. package/esm2020/lib/components/select/elder-select-on-tab.directive.mjs +0 -133
  738. package/esm2020/lib/components/select/elder-select-value.directive.mjs +0 -15
  739. package/esm2020/lib/components/select/elder-select.module.mjs +0 -146
  740. package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +0 -350
  741. package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +0 -287
  742. package/esm2020/lib/components/select/multi/elder-multi-select-form-field.mjs +0 -91
  743. package/esm2020/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +0 -86
  744. package/esm2020/lib/components/select/popup/selection-model-popup.directive.mjs +0 -126
  745. package/esm2020/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +0 -47
  746. package/esm2020/lib/components/select/single/elder-clear-select.directive.mjs +0 -57
  747. package/esm2020/lib/components/select/single/elder-select/elder-select.component.mjs +0 -443
  748. package/esm2020/lib/components/select/single/elder-select-form-field.mjs +0 -45
  749. package/esm2020/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +0 -149
  750. package/esm2020/lib/components/select-chip-list/elder-chip-list-select.module.mjs +0 -48
  751. package/esm2020/lib/components/shell/drawers/drawer-outlet-binding.mjs +0 -60
  752. package/esm2020/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +0 -117
  753. package/esm2020/lib/components/shell/drawers/elder-router-outlet.service.mjs +0 -128
  754. package/esm2020/lib/components/shell/elder-shell-slot.directive.mjs +0 -46
  755. package/esm2020/lib/components/shell/elder-shell.module.mjs +0 -96
  756. package/esm2020/lib/components/shell/elder-shell.service.mjs +0 -145
  757. package/esm2020/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +0 -73
  758. package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +0 -209
  759. package/esm2020/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +0 -137
  760. package/esm2020/lib/components/tabs/elder-tab/elder-tab.directive.mjs +0 -25
  761. package/esm2020/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +0 -256
  762. package/esm2020/lib/components/tabs/elder-tab.module.mjs +0 -32
  763. package/esm2020/lib/components/theme/elder-theme-applier.directive.mjs +0 -62
  764. package/esm2020/lib/components/theme/elder-theme-preference.service.mjs +0 -74
  765. package/esm2020/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +0 -74
  766. package/esm2020/lib/components/theme/elder-theme.directive.mjs +0 -61
  767. package/esm2020/lib/components/theme/elder-theme.module.mjs +0 -74
  768. package/esm2020/lib/components/theme/elder-theme.service.mjs +0 -123
  769. package/esm2020/lib/components/theme/known-elder-themes.mjs +0 -6
  770. package/esm2020/lib/components/time/date-adapters/custom-date-adapter.mjs +0 -23
  771. package/esm2020/lib/components/time/duration/duration-format.mjs +0 -271
  772. package/esm2020/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +0 -122
  773. package/esm2020/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +0 -89
  774. package/esm2020/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +0 -108
  775. package/esm2020/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +0 -173
  776. package/esm2020/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +0 -264
  777. package/esm2020/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +0 -95
  778. package/esm2020/lib/components/time/elder-time.module.mjs +0 -120
  779. package/esm2020/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +0 -131
  780. package/esm2020/lib/components/time/period/period-format.mjs +0 -89
  781. package/esm2020/lib/components/time/pipes/to-iso-date-string.pipe.mjs +0 -38
  782. package/esm2020/lib/components/toasts/elder-toast.module.mjs +0 -23
  783. package/esm2020/lib/components/toasts/elder-toast.service.mjs +0 -171
  784. package/esm2020/lib/components/toasts/standard-toast/standard-toast.component.mjs +0 -74
  785. package/esm2020/lib/components/url-fragment/elder-url-fragment.module.mjs +0 -54
  786. package/esm2020/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +0 -84
  787. package/esm2020/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +0 -65
  788. package/esm2020/lib/components/viewers/elder-viewers.module.mjs +0 -25
  789. package/esm2020/lib/features/event-source/elder-event-source.service.mjs +0 -56
  790. package/esm2020/lib/features/event-source/reactive-event-source.mjs +0 -198
  791. package/esm2020/lib/features/kafent/access-token-provider.mjs +0 -20
  792. package/esm2020/lib/features/kafent/kafent-config.mjs +0 -24
  793. package/esm2020/lib/features/kafent/kafent-event-stream.mjs +0 -25
  794. package/esm2020/lib/features/kafent/kafent-event.service.mjs +0 -107
  795. package/esm2020/lib/features/kafent/kafent.module.mjs +0 -61
  796. package/esm2020/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +0 -128
  797. package/esm2020/lib/pipes/bytes.pipe.mjs +0 -24
  798. package/esm2020/lib/pipes/elder-pipes.module.mjs +0 -67
  799. package/esm2020/lib/pipes/elder-repeat.pipe.mjs +0 -21
  800. package/esm2020/lib/pipes/elder-round.pipe.mjs +0 -35
  801. package/esm2020/lib/pipes/elder-safe-url.pipe.mjs +0 -20
  802. package/esm2020/lib/pipes/elder-truncate.pipe.mjs +0 -40
  803. package/esm2020/lib/pipes/iso-duration.pipe.mjs +0 -58
  804. package/esm2020/lib/pipes/iso-interval-parse.pipe.mjs +0 -49
  805. package/esm2020/lib/pipes/iso-interval.pipe.mjs +0 -110
  806. package/esm2020/lib/pipes/time-ago.pipe.mjs +0 -104
  807. package/esm2020/lib/pipes/time-duration.pipe.mjs +0 -98
  808. package/esm2020/lib/pipes/weight.pipe.mjs +0 -56
  809. package/fesm2015/elderbyte-ngx-starter.mjs +0 -30441
  810. package/fesm2015/elderbyte-ngx-starter.mjs.map +0 -1
  811. package/fesm2020/elderbyte-ngx-starter.mjs +0 -30267
  812. package/fesm2020/elderbyte-ngx-starter.mjs.map +0 -1
  813. /package/{esm2020 → esm2022}/elderbyte-ngx-starter.mjs +0 -0
  814. /package/{esm2020 → esm2022}/lib/common/arrays.mjs +0 -0
  815. /package/{esm2020 → esm2022}/lib/common/async/public_api.mjs +0 -0
  816. /package/{esm2020 → esm2022}/lib/common/csv/csv-serializer.mjs +0 -0
  817. /package/{esm2020 → esm2022}/lib/common/csv/public_api.mjs +0 -0
  818. /package/{esm2020 → esm2022}/lib/common/data/continuable-listing.mjs +0 -0
  819. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-active-page.mjs +0 -0
  820. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-base.mjs +0 -0
  821. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-continuable-base.mjs +0 -0
  822. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-continuable-paged.mjs +0 -0
  823. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-continuable-token.mjs +0 -0
  824. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-life-cycle-binding.mjs +0 -0
  825. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-simple.mjs +0 -0
  826. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-source-event-binding.mjs +0 -0
  827. /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context.mjs +0 -0
  828. /package/{esm2020 → esm2022}/lib/common/data/data-context/indexed-entities.mjs +0 -0
  829. /package/{esm2020 → esm2022}/lib/common/data/data-context/public_api.mjs +0 -0
  830. /package/{esm2020 → esm2022}/lib/common/data/datasource/data-source-base.mjs +0 -0
  831. /package/{esm2020 → esm2022}/lib/common/data/datasource/data-source.mjs +0 -0
  832. /package/{esm2020 → esm2022}/lib/common/data/datasource/entity-id-util.mjs +0 -0
  833. /package/{esm2020 → esm2022}/lib/common/data/datasource/public_api.mjs +0 -0
  834. /package/{esm2020 → esm2022}/lib/common/data/datasource/rest/public_api.mjs +0 -0
  835. /package/{esm2020 → esm2022}/lib/common/data/datasource/rest/rest-client.mjs +0 -0
  836. /package/{esm2020 → esm2022}/lib/common/data/filters/filter-context.mjs +0 -0
  837. /package/{esm2020 → esm2022}/lib/common/data/filters/filter.mjs +0 -0
  838. /package/{esm2020 → esm2022}/lib/common/data/page.mjs +0 -0
  839. /package/{esm2020 → esm2022}/lib/common/data/public_api.mjs +0 -0
  840. /package/{esm2020 → esm2022}/lib/common/data/required-filter-evaluator.mjs +0 -0
  841. /package/{esm2020 → esm2022}/lib/common/data/sort-context.mjs +0 -0
  842. /package/{esm2020 → esm2022}/lib/common/data/token-chunk-request.mjs +0 -0
  843. /package/{esm2020 → esm2022}/lib/common/enums/public_api.mjs +0 -0
  844. /package/{esm2020 → esm2022}/lib/common/errors/exception-detail.mjs +0 -0
  845. /package/{esm2020 → esm2022}/lib/common/errors/public_api.mjs +0 -0
  846. /package/{esm2020 → esm2022}/lib/common/errors/standard-error-detail.mjs +0 -0
  847. /package/{esm2020 → esm2022}/lib/common/format/bytes-per-second-format.mjs +0 -0
  848. /package/{esm2020 → esm2022}/lib/common/format/public_api.mjs +0 -0
  849. /package/{esm2020 → esm2022}/lib/common/forms/elder-entity-value-accessor.mjs +0 -0
  850. /package/{esm2020 → esm2022}/lib/common/forms/elder-multi-entity-value-accessor.mjs +0 -0
  851. /package/{esm2020 → esm2022}/lib/common/forms/public_api.mjs +0 -0
  852. /package/{esm2020 → esm2022}/lib/common/http/public_api.mjs +0 -0
  853. /package/{esm2020 → esm2022}/lib/common/http/transfer/data-transfer-base.mjs +0 -0
  854. /package/{esm2020 → esm2022}/lib/common/http/transfer/data-transfer-status.mjs +0 -0
  855. /package/{esm2020 → esm2022}/lib/common/http/transfer/data-transfer.mjs +0 -0
  856. /package/{esm2020 → esm2022}/lib/common/http/transfer/public_api.mjs +0 -0
  857. /package/{esm2020 → esm2022}/lib/common/http/upload/file-upload-client.mjs +0 -0
  858. /package/{esm2020 → esm2022}/lib/common/i18n/entity/impl/i18n-base.mjs +0 -0
  859. /package/{esm2020 → esm2022}/lib/common/i18n/entity/impl/translated.mjs +0 -0
  860. /package/{esm2020 → esm2022}/lib/common/i18n/entity/language-tag.mjs +0 -0
  861. /package/{esm2020 → esm2022}/lib/common/i18n/entity/localized.mjs +0 -0
  862. /package/{esm2020 → esm2022}/lib/common/i18n/entity/public_api.mjs +0 -0
  863. /package/{esm2020 → esm2022}/lib/common/i18n/entity/translated-converter.mjs +0 -0
  864. /package/{esm2020 → esm2022}/lib/common/i18n/entity/translated.mjs +0 -0
  865. /package/{esm2020 → esm2022}/lib/common/i18n/public_api.mjs +0 -0
  866. /package/{esm2020 → esm2022}/lib/common/json-map.mjs +0 -0
  867. /package/{esm2020 → esm2022}/lib/common/public_api.mjs +0 -0
  868. /package/{esm2020 → esm2022}/lib/common/reactive-map.mjs +0 -0
  869. /package/{esm2020 → esm2022}/lib/common/rxjs/operators/lazy-sample.mjs +0 -0
  870. /package/{esm2020 → esm2022}/lib/common/rxjs/public_api.mjs +0 -0
  871. /package/{esm2020 → esm2022}/lib/common/selection/public_api.mjs +0 -0
  872. /package/{esm2020 → esm2022}/lib/common/sets.mjs +0 -0
  873. /package/{esm2020 → esm2022}/lib/common/templates/template-slot-manager.mjs +0 -0
  874. /package/{esm2020 → esm2022}/lib/common/theme-sizes.mjs +0 -0
  875. /package/{esm2020 → esm2022}/lib/common/time/interval.mjs +0 -0
  876. /package/{esm2020 → esm2022}/lib/common/time/period-duration.mjs +0 -0
  877. /package/{esm2020 → esm2022}/lib/common/time/public_api.mjs +0 -0
  878. /package/{esm2020 → esm2022}/lib/common/url/public_api.mjs +0 -0
  879. /package/{esm2020 → esm2022}/lib/common/utils/batcher.mjs +0 -0
  880. /package/{esm2020 → esm2022}/lib/common/utils/next-number-util.mjs +0 -0
  881. /package/{esm2020 → esm2022}/lib/common/utils/ng-zone-utils.mjs +0 -0
  882. /package/{esm2020 → esm2022}/lib/common/utils/parse-util.mjs +0 -0
  883. /package/{esm2020 → esm2022}/lib/common/utils/property-path-util.mjs +0 -0
  884. /package/{esm2020 → esm2022}/lib/common/utils/public_api.mjs +0 -0
  885. /package/{esm2020 → esm2022}/lib/common/utils/sort-util.mjs +0 -0
  886. /package/{esm2020 → esm2022}/lib/common/utils/uuid-util.mjs +0 -0
  887. /package/{esm2020 → esm2022}/lib/components/auditing/i-audited-entity.mjs +0 -0
  888. /package/{esm2020 → esm2022}/lib/components/card-organizer/card-organizer-data.mjs +0 -0
  889. /package/{esm2020 → esm2022}/lib/components/connectivity/public_api.mjs +0 -0
  890. /package/{esm2020 → esm2022}/lib/components/containers/public_api.mjs +0 -0
  891. /package/{esm2020 → esm2022}/lib/components/csv/elder-csv-stream-exporter-builder.mjs +0 -0
  892. /package/{esm2020 → esm2022}/lib/components/currency/model/currency-code.mjs +0 -0
  893. /package/{esm2020 → esm2022}/lib/components/currency/model/currency-unit-registry.mjs +0 -0
  894. /package/{esm2020 → esm2022}/lib/components/currency/model/currency.mjs +0 -0
  895. /package/{esm2020 → esm2022}/lib/components/currency/public_api.mjs +0 -0
  896. /package/{esm2020 → esm2022}/lib/components/data-view/base/elder-data-view-options-provider.mjs +0 -0
  897. /package/{esm2020 → esm2022}/lib/components/data-view/base/elder-data-view.mjs +0 -0
  898. /package/{esm2020 → esm2022}/lib/components/data-view/base/public_api.mjs +0 -0
  899. /package/{esm2020 → esm2022}/lib/components/data-view/common/selection/master-selection-state.mjs +0 -0
  900. /package/{esm2020 → esm2022}/lib/components/data-view/elder-data-view-interaction-mode.mjs +0 -0
  901. /package/{esm2020 → esm2022}/lib/components/data-view/master-detail/elder-master-detail-mode.mjs +0 -0
  902. /package/{esm2020 → esm2022}/lib/components/data-view/master-detail/master-detail-activation-event.mjs +0 -0
  903. /package/{esm2020 → esm2022}/lib/components/data-view/public_api.mjs +0 -0
  904. /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/activation-event-source.mjs +0 -0
  905. /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/elder-activation-context.mjs +0 -0
  906. /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/elder-table-activation-options.mjs +0 -0
  907. /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/item-activation-event.mjs +0 -0
  908. /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/item-activation-options.mjs +0 -0
  909. /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/public_api.mjs +0 -0
  910. /package/{esm2020 → esm2022}/lib/components/dialogs/elder-dialog-config.mjs +0 -0
  911. /package/{esm2020 → esm2022}/lib/components/forms/directives/validation/strategies/fallback-validation-message-strategy.mjs +0 -0
  912. /package/{esm2020 → esm2022}/lib/components/forms/directives/validation/validation-message-strategy.mjs +0 -0
  913. /package/{esm2020 → esm2022}/lib/components/forms/public_api.mjs +0 -0
  914. /package/{esm2020 → esm2022}/lib/components/forms/search/model/search-input-state.mjs +0 -0
  915. /package/{esm2020 → esm2022}/lib/components/forms/search/model/search-input.mjs +0 -0
  916. /package/{esm2020 → esm2022}/lib/components/graph/elder-progress-bar/sub-bar.mjs +0 -0
  917. /package/{esm2020 → esm2022}/lib/components/graph/public_api.mjs +0 -0
  918. /package/{esm2020 → esm2022}/lib/components/http-support/public_api.mjs +0 -0
  919. /package/{esm2020 → esm2022}/lib/components/i18n/language/elder-language-config.mjs +0 -0
  920. /package/{esm2020 → esm2022}/lib/components/i18n/public_api.mjs +0 -0
  921. /package/{esm2020 → esm2022}/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +0 -0
  922. /package/{esm2020 → esm2022}/lib/components/input/autocomplete/many/word-position-finder.mjs +0 -0
  923. /package/{esm2020 → esm2022}/lib/components/input/public_api.mjs +0 -0
  924. /package/{esm2020 → esm2022}/lib/components/measures/model/dimensions.mjs +0 -0
  925. /package/{esm2020 → esm2022}/lib/components/measures/model/quantity.mjs +0 -0
  926. /package/{esm2020 → esm2022}/lib/components/measures/model/unit-dimension.mjs +0 -0
  927. /package/{esm2020 → esm2022}/lib/components/measures/model/unit.mjs +0 -0
  928. /package/{esm2020 → esm2022}/lib/components/measures/public_api.mjs +0 -0
  929. /package/{esm2020 → esm2022}/lib/components/navigation/public_api.mjs +0 -0
  930. /package/{esm2020 → esm2022}/lib/components/navigation/toolbar/toolbar-column-position.mjs +0 -0
  931. /package/{esm2020 → esm2022}/lib/components/public_api.mjs +0 -0
  932. /package/{esm2020 → esm2022}/lib/components/select/public_api.mjs +0 -0
  933. /package/{esm2020 → esm2022}/lib/components/shell/shell-content-slot.mjs +0 -0
  934. /package/{esm2020 → esm2022}/lib/components/theme/public_api.mjs +0 -0
  935. /package/{esm2020 → esm2022}/lib/components/theme/theme-spec.mjs +0 -0
  936. /package/{esm2020 → esm2022}/lib/components/time/duration/duration-bucket.mjs +0 -0
  937. /package/{esm2020 → esm2022}/lib/components/time/duration/iso-duration-str.mjs +0 -0
  938. /package/{esm2020 → esm2022}/lib/components/time/period/period-bucket.mjs +0 -0
  939. /package/{esm2020 → esm2022}/lib/components/time/public_api.mjs +0 -0
  940. /package/{esm2020 → esm2022}/lib/components/toasts/toast-type.mjs +0 -0
  941. /package/{esm2020 → esm2022}/lib/components/toasts/toast.mjs +0 -0
  942. /package/{esm2020 → esm2022}/lib/components/url-fragment/elder-url-fragment.mjs +0 -0
  943. /package/{esm2020 → esm2022}/lib/features/event-source/public_api.mjs +0 -0
  944. /package/{esm2020 → esm2022}/lib/features/kafent/kafent-event.mjs +0 -0
  945. /package/{esm2020 → esm2022}/lib/features/kafent/kafent-live-event-request.mjs +0 -0
  946. /package/{esm2020 → esm2022}/lib/features/kafent/sse/kafent-topic-sse.mjs +0 -0
  947. /package/{esm2020 → esm2022}/lib/features/public_api.mjs +0 -0
  948. /package/{esm2020 → esm2022}/lib/pipes/public_api.mjs +0 -0
  949. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -0,0 +1,271 @@
1
+ import { Duration, Period } from '@js-joda/core';
2
+ import { DurationBucket } from './duration-bucket';
3
+ import { PeriodDuration } from '../../../common/time/period-duration';
4
+ /**
5
+ * yyyy:MM:dd hh:mm:ss
6
+ */
7
+ export class DurationFormat {
8
+ /***************************************************************************
9
+ * *
10
+ * Static Builder *
11
+ * *
12
+ **************************************************************************/
13
+ static { this.FORMAT_DYNAMIC = 'dynamic'; }
14
+ static { this.FORMAT_HH_MM_SS = 'hh:mm:ss'; }
15
+ static { this.FORMAT_HH_MM = 'hh:mm'; }
16
+ static { this.DYNAMIC = new DurationFormat(DurationFormat.FORMAT_DYNAMIC, true, true, true, true, true, true, true); }
17
+ static { this.DEFAULT = DurationFormat.DYNAMIC; }
18
+ static parse(format) {
19
+ if (format) {
20
+ if (format === DurationFormat.FORMAT_DYNAMIC) {
21
+ return DurationFormat.DYNAMIC;
22
+ }
23
+ else {
24
+ return new DurationFormat(format, format.includes('nn'), format.includes('ss'), format.includes('mm'), format.includes('hh'), format.includes('dd'), format.includes('MM'), format.includes('yyyy'));
25
+ }
26
+ }
27
+ else {
28
+ return DurationFormat.DEFAULT;
29
+ }
30
+ }
31
+ /***************************************************************************
32
+ * *
33
+ * Constructor *
34
+ * *
35
+ **************************************************************************/
36
+ constructor(formatStr, nanos, seconds, minutes, hours, days, months, years) {
37
+ this.formatStr = formatStr;
38
+ this.nanos = nanos;
39
+ this.seconds = seconds;
40
+ this.minutes = minutes;
41
+ this.hours = hours;
42
+ this.days = days;
43
+ this.months = months;
44
+ this.years = years;
45
+ }
46
+ /***************************************************************************
47
+ * *
48
+ * Public API *
49
+ * *
50
+ **************************************************************************/
51
+ bucket(periodDuration) {
52
+ if (!periodDuration) {
53
+ periodDuration = PeriodDuration.ofDuration(Duration.ZERO);
54
+ }
55
+ let period = periodDuration.period ?? Period.ZERO;
56
+ let duration = periodDuration.duration ?? Duration.ZERO;
57
+ let actualYears = null;
58
+ let actualMonths = null;
59
+ let actualDays = null;
60
+ let actualHours = null;
61
+ let actualMinutes = null;
62
+ let actualSeconds = null;
63
+ let actualNanos = null;
64
+ if (this.years) {
65
+ actualYears = period.years();
66
+ period = period.minusYears(actualYears);
67
+ if (this.yearsIsLast()) {
68
+ actualYears += this.remainderToYears(period, duration);
69
+ }
70
+ }
71
+ if (this.months) {
72
+ actualMonths = period.months();
73
+ period = period.minusMonths(actualMonths);
74
+ if (this.monthsIsLast()) {
75
+ actualMonths += this.remainderToMonths(period, duration);
76
+ }
77
+ }
78
+ if (this.days) {
79
+ const pdays = period.days();
80
+ const dDays = duration.toDays();
81
+ actualDays = pdays + dDays;
82
+ duration = duration.minusDays(dDays);
83
+ if (this.daysIsLast()) {
84
+ actualDays += this.remainderToDays(duration);
85
+ }
86
+ }
87
+ else {
88
+ duration = duration.plusDays(period.days()); // Transfer from Period to duration
89
+ }
90
+ if (this.hours) {
91
+ actualHours = duration.toHours();
92
+ duration = duration.minusHours(actualHours);
93
+ if (this.hoursIsLast()) {
94
+ actualHours += this.remainderToHours(duration);
95
+ }
96
+ }
97
+ if (this.minutes) {
98
+ actualMinutes = duration.toMinutes();
99
+ duration = duration.minusMinutes(actualMinutes);
100
+ if (this.minutesIsLast()) {
101
+ actualMinutes += this.remainderToMinutes(duration);
102
+ }
103
+ }
104
+ if (this.seconds) {
105
+ actualSeconds = duration.seconds();
106
+ duration = duration.minusSeconds(actualSeconds);
107
+ if (this.secondsIsLast()) {
108
+ actualSeconds += this.remainderToSeconds(duration);
109
+ duration = Duration.ZERO;
110
+ }
111
+ }
112
+ if (this.nanos) {
113
+ actualNanos = duration.toNanos();
114
+ }
115
+ return new DurationBucket(actualNanos, actualSeconds, actualMinutes, actualHours, actualDays, actualMonths, actualYears);
116
+ }
117
+ format(duration) {
118
+ return this.formatDynamic(duration);
119
+ }
120
+ /***************************************************************************
121
+ * *
122
+ * Private methods *
123
+ * *
124
+ **************************************************************************/
125
+ secondsIsLast() {
126
+ return !this.nanos;
127
+ }
128
+ minutesIsLast() {
129
+ return this.secondsIsLast() && !this.seconds;
130
+ }
131
+ hoursIsLast() {
132
+ return this.minutesIsLast() && !this.minutes;
133
+ }
134
+ daysIsLast() {
135
+ return this.hoursIsLast() && !this.hours;
136
+ }
137
+ monthsIsLast() {
138
+ return this.daysIsLast() && !this.days;
139
+ }
140
+ yearsIsLast() {
141
+ return this.monthsIsLast() && !this.months;
142
+ }
143
+ remainderToSeconds(duration) {
144
+ let seconds = 0;
145
+ const nanos = duration?.toNanos();
146
+ if (nanos) {
147
+ seconds += nanos / 1000000000;
148
+ }
149
+ return seconds;
150
+ }
151
+ remainderToMinutes(duration) {
152
+ let minutes = 0;
153
+ const seconds = duration?.seconds();
154
+ if (seconds) {
155
+ minutes += seconds / 60;
156
+ duration = duration.minusSeconds(seconds);
157
+ }
158
+ minutes += this.remainderToSeconds(duration) / 60;
159
+ return minutes;
160
+ }
161
+ remainderToHours(duration) {
162
+ let hours = 0;
163
+ const minutes = duration?.toMinutes();
164
+ if (minutes) {
165
+ hours += minutes / 60;
166
+ duration = duration.minusMinutes(minutes);
167
+ }
168
+ hours += this.remainderToMinutes(duration) / 60;
169
+ return hours;
170
+ }
171
+ remainderToDays(duration) {
172
+ let days = 0;
173
+ const hours = duration?.toMinutes();
174
+ if (hours) {
175
+ days += hours / 24;
176
+ duration = duration.minusHours(hours);
177
+ }
178
+ days += this.remainderToHours(duration) / 24;
179
+ return days;
180
+ }
181
+ remainderToMonths(period, duration) {
182
+ let months = 0;
183
+ const pDays = period?.days();
184
+ if (pDays) {
185
+ months += pDays / 30; // Approximation
186
+ }
187
+ const dDays = duration?.toDays();
188
+ if (dDays) {
189
+ months += dDays / 30; // Approximation
190
+ duration = duration.minusDays(dDays);
191
+ }
192
+ months += this.remainderToDays(duration) / 30; // Approximation
193
+ return months;
194
+ }
195
+ remainderToYears(period, duration) {
196
+ let years = 0;
197
+ const months = period?.months();
198
+ if (months) {
199
+ years += months / 12;
200
+ period = period.minusMonths(months);
201
+ }
202
+ years += this.remainderToMonths(period, duration) / 12;
203
+ return years;
204
+ }
205
+ formatDynamic(duration) {
206
+ const bucket = this.bucket(duration);
207
+ const time = this.formatTime(bucket);
208
+ const period = this.formatPeriod(bucket);
209
+ if (period && time) {
210
+ return period + ' and ' + time;
211
+ }
212
+ else if (period) {
213
+ return period;
214
+ }
215
+ else if (time) {
216
+ return time;
217
+ }
218
+ else {
219
+ return '-';
220
+ }
221
+ }
222
+ formatPeriod(bucket) {
223
+ const parts = [];
224
+ if (bucket.years) {
225
+ parts.push(this.ceilAndFormatNumber(bucket.years) + 'yr');
226
+ }
227
+ if (bucket.months) {
228
+ parts.push(this.ceilAndFormatNumber(bucket.months) + 'mo');
229
+ }
230
+ if (bucket.days) {
231
+ parts.push(this.ceilAndFormatNumber(bucket.days) + 'd');
232
+ }
233
+ return parts.join(', ');
234
+ }
235
+ formatTime(bucket) {
236
+ const parts = [];
237
+ if (bucket.hours) {
238
+ parts.push(this.ceilAndFormatNumber(bucket.hours) + 'h');
239
+ }
240
+ if (bucket.minutes) {
241
+ parts.push(this.ceilAndFormatNumber(bucket.minutes) + 'min');
242
+ }
243
+ if (bucket.seconds) {
244
+ parts.push(this.ceilAndFormatNumber(bucket.seconds) + 'sec');
245
+ }
246
+ if (bucket.nanos) {
247
+ parts.push(this.formatNanos(bucket.nanos));
248
+ }
249
+ return parts.join(' ');
250
+ }
251
+ ceilAndFormatNumber(number) {
252
+ return Math.ceil(number * 10) / 10;
253
+ }
254
+ formatNanos(nanoseconds) {
255
+ const microseconds = nanoseconds / 1000;
256
+ const milliseconds = microseconds / 1000;
257
+ if (nanoseconds <= 999) {
258
+ return this.formatNumber(nanoseconds, 0) + ' ns';
259
+ }
260
+ else if (microseconds <= 999) {
261
+ return this.formatNumber(microseconds, 0) + ' µs';
262
+ }
263
+ else if (milliseconds <= 999) {
264
+ return this.formatNumber(milliseconds, 0) + ' ms';
265
+ }
266
+ }
267
+ formatNumber(value, precision) {
268
+ return +value.toFixed(precision);
269
+ }
270
+ }
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24tZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90aW1lL2R1cmF0aW9uL2R1cmF0aW9uLWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBRXBFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFFekI7Ozs7Z0ZBSTRFO2FBRXJELG1CQUFjLEdBQUcsU0FBUyxDQUFDO2FBRTNCLG9CQUFlLEdBQUcsVUFBVSxDQUFDO2FBQzdCLGlCQUFZLEdBQUcsT0FBTyxDQUFDO2FBRWhDLFlBQU8sR0FBRyxJQUFJLGNBQWMsQ0FDeEMsY0FBYyxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQ3hFLENBQUM7YUFFWSxZQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUV4QyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQWM7UUFDaEMsSUFBSSxNQUFNLEVBQUU7WUFFVixJQUFJLE1BQU0sS0FBSyxjQUFjLENBQUMsY0FBYyxFQUFFO2dCQUM1QyxPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUM7YUFDL0I7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLGNBQWMsQ0FDdkIsTUFBTSxFQUNOLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQ3JCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQ3JCLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxD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QUM7SUFFTyxZQUFZLENBQUMsS0FBYSxFQUFFLFNBQWlCO1FBQ25ELE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0R1cmF0aW9uLCBQZXJpb2R9IGZyb20gJ0Bqcy1qb2RhL2NvcmUnO1xuaW1wb3J0IHtEdXJhdGlvbkJ1Y2tldH0gZnJvbSAnLi9kdXJhdGlvbi1idWNrZXQnO1xuaW1wb3J0IHtQZXJpb2REdXJhdGlvbn0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3RpbWUvcGVyaW9kLWR1cmF0aW9uJztcblxuLyoqXG4gKiB5eXl5Ok1NOmRkIGhoOm1tOnNzXG4gKi9cbmV4cG9ydCBjbGFzcyBEdXJhdGlvbkZvcm1hdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN0YXRpYyBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBGT1JNQVRfRFlOQU1JQyA9ICdkeW5hbWljJztcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZPUk1BVF9ISF9NTV9TUyA9ICdoaDptbTpzcyc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRk9STUFUX0hIX01NID0gJ2hoOm1tJztcblxuICBwdWJsaWMgc3RhdGljIERZTkFNSUMgPSBuZXcgRHVyYXRpb25Gb3JtYXQoXG4gICAgRHVyYXRpb25Gb3JtYXQuRk9STUFUX0RZTkFNSUMsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWVcbiAgKTtcblxuICBwdWJsaWMgc3RhdGljIERFRkFVTFQgPSBEdXJhdGlvbkZvcm1hdC5EWU5BTUlDO1xuXG4gIHB1YmxpYyBzdGF0aWMgcGFyc2UoZm9ybWF0OiBzdHJpbmcpOiBEdXJhdGlvbkZvcm1hdCB7XG4gICAgaWYgKGZvcm1hdCkge1xuXG4gICAgICBpZiAoZm9ybWF0ID09PSBEdXJhdGlvbkZvcm1hdC5GT1JNQVRfRFlOQU1JQykge1xuICAgICAgICByZXR1cm4gRHVyYXRpb25Gb3JtYXQuRFlOQU1JQztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXcgRHVyYXRpb25Gb3JtYXQoXG4gICAgICAgICAgZm9ybWF0LFxuICAgICAgICAgIGZvcm1hdC5pbmNsdWRlcygnbm4nKSxcbiAgICAgICAgICBmb3JtYXQuaW5jbHVkZXMoJ3NzJyksXG4gICAgICAgICAgZm9ybWF0LmluY2x1ZGVzKCdtbScpLFxuICAgICAgICAgIGZvcm1hdC5pbmNsdWRlcygnaGgnKSxcbiAgICAgICAgICBmb3JtYXQuaW5jbHVkZXMoJ2RkJyksXG4gICAgICAgICAgZm9ybWF0LmluY2x1ZGVzKCdNTScpLFxuICAgICAgICAgIGZvcm1hdC5pbmNsdWRlcygneXl5eScpLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gRHVyYXRpb25Gb3JtYXQuREVGQVVMVDtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybWF0U3RyOiBzdHJpbmcsXG4gICAgcHVibGljIHJlYWRvbmx5IG5hbm9zOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSBzZWNvbmRzOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSBtaW51dGVzOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSBob3VyczogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGF5czogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9udGhzOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSB5ZWFyczogYm9vbGVhbixcbiAgKSB7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgYnVja2V0KHBlcmlvZER1cmF0aW9uOiBQZXJpb2REdXJhdGlvbik6IER1cmF0aW9uQnVja2V0IHtcblxuICAgIGlmICghcGVyaW9kRHVyYXRpb24pIHtcbiAgICAgIHBlcmlvZER1cmF0aW9uID0gUGVyaW9kRHVyYXRpb24ub2ZEdXJhdGlvbihEdXJhdGlvbi5aRVJPKTtcbiAgICB9XG5cbiAgICBsZXQgcGVyaW9kID0gcGVyaW9kRHVyYXRpb24ucGVyaW9kID8/IFBlcmlvZC5aRVJPO1xuICAgIGxldCBkdXJhdGlvbiA9IHBlcmlvZER1cmF0aW9uLmR1cmF0aW9uID8/IER1cmF0aW9uLlpFUk87XG5cbiAgICBsZXQgYWN0dWFsWWVhcnM6IG51bWJlciA9IG51bGw7XG4gICAgbGV0IGFjdHVhbE1vbnRoczogbnVtYmVyID0gbnVsbDtcbiAgICBsZXQgYWN0dWFsRGF5czogbnVtYmVyID0gbnVsbDtcbiAgICBsZXQgYWN0dWFsSG91cnM6IG51bWJlciA9IG51bGw7XG4gICAgbGV0IGFjdHVhbE1pbnV0ZXM6IG51bWJlciA9IG51bGw7XG4gICAgbGV0IGFjdHVhbFNlY29uZHM6IG51bWJlciA9IG51bGw7XG4gICAgbGV0IGFjdHVhbE5hbm9zOiBudW1iZXIgPSBudWxsO1xuXG4gICAgaWYgKHRoaXMueWVhcnMpIHtcbiAgICAgIGFjdHVhbFllYXJzID0gcGVyaW9kLnllYXJzKCk7XG4gICAgICBwZXJpb2QgPSBwZXJpb2QubWludXNZZWFycyhhY3R1YWxZZWFycyk7XG5cbiAgICAgIGlmICh0aGlzLnllYXJzSXNMYXN0KCkpIHtcbiAgICAgICAgYWN0dWFsWWVhcnMgKz0gdGhpcy5yZW1haW5kZXJUb1llYXJzKHBlcmlvZCwgZHVyYXRpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLm1vbnRocykge1xuICAgICAgYWN0dWFsTW9udGhzID0gcGVyaW9kLm1vbnRocygpO1xuICAgICAgcGVyaW9kID0gcGVyaW9kLm1pbnVzTW9udGhzKGFjdHVhbE1vbnRocyk7XG5cbiAgICAgIGlmICh0aGlzLm1vbnRoc0lzTGFzdCgpKSB7XG4gICAgICAgIGFjdHVhbE1vbnRocyArPSB0aGlzLnJlbWFpbmRlclRvTW9udGhzKHBlcmlvZCwgZHVyYXRpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmRheXMpIHtcbiAgICAgIGNvbnN0IHBkYXlzID0gcGVyaW9kLmRheXMoKTtcbiAgICAgIGNvbnN0IGREYXlzID0gZHVyYXRpb24udG9EYXlzKCk7XG4gICAgICBhY3R1YWxEYXlzID0gcGRheXMgKyBkRGF5cztcbiAgICAgIGR1cmF0aW9uID0gZHVyYXRpb24ubWludXNEYXlzKGREYXlzKTtcblxuICAgICAgaWYgKHRoaXMuZGF5c0lzTGFzdCgpKSB7XG4gICAgICAgIGFjdHVhbERheXMgKz0gdGhpcy5yZW1haW5kZXJUb0RheXMoZHVyYXRpb24pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkdXJhdGlvbiA9IGR1cmF0aW9uLnBsdXNEYXlzKHBlcmlvZC5kYXlzKCkpOyAvLyBUcmFuc2ZlciBmcm9tIFBlcmlvZCB0byBkdXJhdGlvblxuICAgIH1cblxuICAgIGlmICh0aGlzLmhvdXJzKSB7XG4gICAgICBhY3R1YWxIb3VycyA9IGR1cmF0aW9uLnRvSG91cnMoKTtcbiAgICAgIGR1cmF0aW9uID0gZHVyYXRpb24ubWludXNIb3VycyhhY3R1YWxIb3Vycyk7XG5cbiAgICAgIGlmICh0aGlzLmhvdXJzSXNMYXN0KCkpIHtcbiAgICAgICAgYWN0dWFsSG91cnMgKz0gdGhpcy5yZW1haW5kZXJUb0hvdXJzKGR1cmF0aW9uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5taW51dGVzKSB7XG4gICAgICBhY3R1YWxNaW51dGVzID0gZHVyYXRpb24udG9NaW51dGVzKCk7XG4gICAgICBkdXJhdGlvbiA9IGR1cmF0aW9uLm1pbnVzTWludXRlcyhhY3R1YWxNaW51dGVzKTtcblxuICAgICAgaWYgKHRoaXMubWludXRlc0lzTGFzdCgpKSB7XG4gICAgICAgIGFjdHVhbE1pbnV0ZXMgKz0gdGhpcy5yZW1haW5kZXJUb01pbnV0ZXMoZHVyYXRpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnNlY29uZHMpIHtcbiAgICAgIGFjdHVhbFNlY29uZHMgPSBkdXJhdGlvbi5zZWNvbmRzKCk7XG4gICAgICBkdXJhdGlvbiA9IGR1cmF0aW9uLm1pbnVzU2Vjb25kcyhhY3R1YWxTZWNvbmRzKTtcblxuICAgICAgaWYgKHRoaXMuc2Vjb25kc0lzTGFzdCgpKSB7XG4gICAgICAgIGFjdHVhbFNlY29uZHMgKz0gdGhpcy5yZW1haW5kZXJUb1NlY29uZHMoZHVyYXRpb24pO1xuICAgICAgICBkdXJhdGlvbiA9IER1cmF0aW9uLlpFUk87XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICBpZiAodGhpcy5uYW5vcykge1xuICAgICAgYWN0dWFsTmFub3MgPSBkdXJhdGlvbi50b05hbm9zKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBEdXJhdGlvbkJ1Y2tldChcbiAgICAgIGFjdHVhbE5hbm9zLFxuICAgICAgYWN0dWFsU2Vjb25kcyxcbiAgICAgIGFjdHVhbE1pbnV0ZXMsXG4gICAgICBhY3R1YWxIb3VycyxcbiAgICAgIGFjdHVhbERheXMsXG4gICAgICBhY3R1YWxNb250aHMsXG4gICAgICBhY3R1YWxZZWFyc1xuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZm9ybWF0KGR1cmF0aW9uOiBQZXJpb2REdXJhdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0RHluYW1pYyhkdXJhdGlvbik7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHNlY29uZHNJc0xhc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLm5hbm9zO1xuICB9XG5cbiAgcHJpdmF0ZSBtaW51dGVzSXNMYXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlY29uZHNJc0xhc3QoKSAmJiAhdGhpcy5zZWNvbmRzO1xuICB9XG5cbiAgcHJpdmF0ZSBob3Vyc0lzTGFzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5taW51dGVzSXNMYXN0KCkgJiYgIXRoaXMubWludXRlcztcbiAgfVxuXG4gIHByaXZhdGUgZGF5c0lzTGFzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ob3Vyc0lzTGFzdCgpICYmICF0aGlzLmhvdXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBtb250aHNJc0xhc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF5c0lzTGFzdCgpICYmICF0aGlzLmRheXM7XG4gIH1cblxuICBwcml2YXRlIHllYXJzSXNMYXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1vbnRoc0lzTGFzdCgpICYmICF0aGlzLm1vbnRocztcbiAgfVxuXG4gIHByaXZhdGUgcmVtYWluZGVyVG9TZWNvbmRzKGR1cmF0aW9uOiBEdXJhdGlvbik6IG51bWJlciB7XG4gICAgbGV0IHNlY29uZHMgPSAwO1xuICAgIGNvbnN0IG5hbm9zID0gZHVyYXRpb24/LnRvTmFub3MoKTtcbiAgICBpZiAobmFub3MpIHtcbiAgICAgIHNlY29uZHMgKz0gbmFub3MgLyAxMDAwMDAwMDAwO1xuICAgIH1cbiAgICByZXR1cm4gc2Vjb25kcztcbiAgfVxuXG4gIHByaXZhdGUgcmVtYWluZGVyVG9NaW51dGVzKGR1cmF0aW9uOiBEdXJhdGlvbik6IG51bWJlciB7XG4gICAgbGV0IG1pbnV0ZXMgPSAwO1xuICAgIGNvbnN0IHNlY29uZHMgPSBkdXJhdGlvbj8uc2Vjb25kcygpO1xuICAgIGlmIChzZWNvbmRzKSB7XG4gICAgICBtaW51dGVzICs9IHNlY29uZHMgLyA2MDtcbiAgICAgIGR1cmF0aW9uID0gZHVyYXRpb24ubWludXNTZWNvbmRzKHNlY29uZHMpO1xuICAgIH1cbiAgICBtaW51dGVzICs9IHRoaXMucmVtYWluZGVyVG9TZWNvbmRzKGR1cmF0aW9uKSAvIDYwO1xuICAgIHJldHVybiBtaW51dGVzO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1haW5kZXJUb0hvdXJzKGR1cmF0aW9uOiBEdXJhdGlvbik6IG51bWJlciB7XG4gICAgbGV0IGhvdXJzID0gMDtcbiAgICBjb25zdCBtaW51dGVzID0gZHVyYXRpb24/LnRvTWludXRlcygpO1xuICAgIGlmIChtaW51dGVzKSB7XG4gICAgICBob3VycyArPSBtaW51dGVzIC8gNjA7XG4gICAgICBkdXJhdGlvbiA9IGR1cmF0aW9uLm1pbnVzTWludXRlcyhtaW51dGVzKTtcbiAgICB9XG4gICAgaG91cnMgKz0gdGhpcy5yZW1haW5kZXJUb01pbnV0ZXMoZHVyYXRpb24pIC8gNjA7XG4gICAgcmV0dXJuIGhvdXJzO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1haW5kZXJUb0RheXMoZHVyYXRpb246IER1cmF0aW9uKTogbnVtYmVyIHtcbiAgICBsZXQgZGF5cyA9IDA7XG4gICAgY29uc3QgaG91cnMgPSBkdXJhdGlvbj8udG9NaW51dGVzKCk7XG4gICAgaWYgKGhvdXJzKSB7XG4gICAgICBkYXlzICs9IGhvdXJzIC8gMjQ7XG4gICAgICBkdXJhdGlvbiA9IGR1cmF0aW9uLm1pbnVzSG91cnMoaG91cnMpO1xuICAgIH1cbiAgICBkYXlzICs9IHRoaXMucmVtYWluZGVyVG9Ib3VycyhkdXJhdGlvbikgLyAyNDtcbiAgICByZXR1cm4gZGF5cztcbiAgfVxuXG4gIHByaXZhdGUgcmVtYWluZGVyVG9Nb250aHMocGVyaW9kOiBQZXJpb2QsIGR1cmF0aW9uOiBEdXJhdGlvbik6IG51bWJlciB7XG4gICAgbGV0IG1vbnRocyA9IDA7XG4gICAgY29uc3QgcERheXMgPSBwZXJpb2Q/LmRheXMoKTtcbiAgICBpZiAocERheXMpIHtcbiAgICAgIG1vbnRocyArPSBwRGF5cyAvIDMwOyAvLyBBcHByb3hpbWF0aW9uXG4gICAgfVxuICAgIGNvbnN0IGREYXlzID0gZHVyYXRpb24/LnRvRGF5cygpO1xuICAgIGlmIChkRGF5cykge1xuICAgICAgbW9udGhzICs9IGREYXlzIC8gMzA7IC8vIEFwcHJveGltYXRpb25cbiAgICAgIGR1cmF0aW9uID0gZHVyYXRpb24ubWludXNEYXlzKGREYXlzKTtcbiAgICB9XG4gICAgbW9udGhzICs9IHRoaXMucmVtYWluZGVyVG9EYXlzKGR1cmF0aW9uKSAvIDMwOyAvLyBBcHByb3hpbWF0aW9uXG4gICAgcmV0dXJuIG1vbnRocztcbiAgfVxuXG4gIHByaXZhdGUgcmVtYWluZGVyVG9ZZWFycyhwZXJpb2Q6IFBlcmlvZCwgZHVyYXRpb246IER1cmF0aW9uKTogbnVtYmVyIHtcbiAgICBsZXQgeWVhcnMgPSAwO1xuICAgIGNvbnN0IG1vbnRocyA9IHBlcmlvZD8ubW9udGhzKCk7XG4gICAgaWYgKG1vbnRocykge1xuICAgICAgeWVhcnMgKz0gbW9udGhzIC8gMTI7XG4gICAgICBwZXJpb2QgPSBwZXJpb2QubWludXNNb250aHMobW9udGhzKTtcbiAgICB9XG4gICAgeWVhcnMgKz0gdGhpcy5yZW1haW5kZXJUb01vbnRocyhwZXJpb2QsIGR1cmF0aW9uKSAvIDEyO1xuICAgIHJldHVybiB5ZWFycztcbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0RHluYW1pYyhkdXJhdGlvbjogUGVyaW9kRHVyYXRpb24pOiBzdHJpbmcge1xuXG4gICAgY29uc3QgYnVja2V0ID0gdGhpcy5idWNrZXQoZHVyYXRpb24pO1xuXG4gICAgY29uc3QgdGltZSA9IHRoaXMuZm9ybWF0VGltZShidWNrZXQpO1xuICAgIGNvbnN0IHBlcmlvZCA9IHRoaXMuZm9ybWF0UGVyaW9kKGJ1Y2tldCk7XG5cbiAgICBpZiAocGVyaW9kICYmIHRpbWUpIHtcbiAgICAgIHJldHVybiBwZXJpb2QgKyAnIGFuZCAnICsgdGltZTtcbiAgICB9IGVsc2UgaWYgKHBlcmlvZCkge1xuICAgICAgcmV0dXJuIHBlcmlvZDtcbiAgICB9IGVsc2UgaWYgKHRpbWUpIHtcbiAgICAgIHJldHVybiB0aW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJy0nO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9ybWF0UGVyaW9kKGJ1Y2tldDogRHVyYXRpb25CdWNrZXQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuXG5cbiAgICBpZiAoYnVja2V0LnllYXJzKSB7XG4gICAgICBwYXJ0cy5wdXNoKHRoaXMuY2VpbEFuZEZvcm1hdE51bWJlcihidWNrZXQueWVhcnMpICsgJ3lyJyk7XG4gICAgfVxuXG4gICAgaWYgKGJ1Y2tldC5tb250aHMpIHtcbiAgICAgIHBhcnRzLnB1c2godGhpcy5jZWlsQW5kRm9ybWF0TnVtYmVyKGJ1Y2tldC5tb250aHMpICsgJ21vJyk7XG4gICAgfVxuXG4gICAgaWYgKGJ1Y2tldC5kYXlzKSB7XG4gICAgICBwYXJ0cy5wdXNoKHRoaXMuY2VpbEFuZEZvcm1hdE51bWJlcihidWNrZXQuZGF5cykgKyAnZCcpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJ0cy5qb2luKCcsICcpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRUaW1lKGJ1Y2tldDogRHVyYXRpb25CdWNrZXQpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgaWYgKGJ1Y2tldC5ob3Vycykge1xuICAgICAgcGFydHMucHVzaCh0aGlzLmNlaWxBbmRGb3JtYXROdW1iZXIoYnVja2V0LmhvdXJzKSArICdoJyk7XG4gICAgfVxuXG4gICAgaWYgKGJ1Y2tldC5taW51dGVzKSB7XG4gICAgICBwYXJ0cy5wdXNoKHRoaXMuY2VpbEFuZEZvcm1hdE51bWJlcihidWNrZXQubWludXRlcykgKyAnbWluJyk7XG4gICAgfVxuXG4gICAgaWYgKGJ1Y2tldC5zZWNvbmRzKSB7XG4gICAgICBwYXJ0cy5wdXNoKHRoaXMuY2VpbEFuZEZvcm1hdE51bWJlcihidWNrZXQuc2Vjb25kcykgKyAnc2VjJyk7XG4gICAgfVxuXG4gICAgaWYgKGJ1Y2tldC5uYW5vcykge1xuICAgICAgcGFydHMucHVzaCh0aGlzLmZvcm1hdE5hbm9zKGJ1Y2tldC5uYW5vcykpO1xuICAgIH1cbiAgICByZXR1cm4gcGFydHMuam9pbignICcpO1xuICB9XG5cbiAgcHJpdmF0ZSBjZWlsQW5kRm9ybWF0TnVtYmVyKG51bWJlcjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5jZWlsKG51bWJlciAqIDEwKSAvIDEwO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXROYW5vcyhuYW5vc2Vjb25kczogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBtaWNyb3NlY29uZHMgPSBuYW5vc2Vjb25kcyAvIDEwMDA7XG4gICAgY29uc3QgbWlsbGlzZWNvbmRzID0gbWljcm9zZWNvbmRzIC8gMTAwMDtcblxuICAgIGlmIChuYW5vc2Vjb25kcyA8PSA5OTkpIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1hdE51bWJlcihuYW5vc2Vjb25kcywgMCkgKyAnIG5zJztcbiAgICB9IGVsc2UgaWYgKG1pY3Jvc2Vjb25kcyA8PSA5OTkpIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1hdE51bWJlcihtaWNyb3NlY29uZHMsIDApICsgJyDCtXMnO1xuICAgIH0gZWxzZSBpZiAobWlsbGlzZWNvbmRzIDw9IDk5OSkge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0TnVtYmVyKG1pbGxpc2Vjb25kcywgMCkgKyAnIG1zJztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdE51bWJlcih2YWx1ZTogbnVtYmVyLCBwcmVjaXNpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuICt2YWx1ZS50b0ZpeGVkKHByZWNpc2lvbik7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,122 @@
1
+ import { Component, ChangeDetectionStrategy, Input, Output, Optional, Self } from '@angular/core';
2
+ import { Duration, Period } from '@js-joda/core';
3
+ import { LoggerFactory } from '@elderbyte/ts-logger';
4
+ import { map } from 'rxjs/operators';
5
+ import { BehaviorSubject, combineLatest } from 'rxjs';
6
+ import { DurationFormat } from '../duration-format';
7
+ import { PeriodDuration } from '../../../../common/time/period-duration';
8
+ import { ElderFormFieldControlBase } from '../../../../common/forms/elder-form-field-control-base.directive';
9
+ import { MatFormFieldControl } from '@angular/material/form-field';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/cdk/a11y";
12
+ import * as i2 from "@ngx-translate/core";
13
+ import * as i3 from "@angular/forms";
14
+ import * as i4 from "@angular/common";
15
+ import * as i5 from "@angular/material/input";
16
+ import * as i6 from "../../../forms/directives/elder-form-field-no-spinner.directive";
17
+ class DurationInputContext {
18
+ constructor(bucket, format) {
19
+ this.bucket = bucket;
20
+ this.format = format;
21
+ }
22
+ }
23
+ export class ElderDurationInputComponent extends ElderFormFieldControlBase {
24
+ /***************************************************************************
25
+ * *
26
+ * Constructor *
27
+ * *
28
+ **************************************************************************/
29
+ constructor(hostRef, zone, focusMonitor, translateService, ngControl) {
30
+ super(hostRef, 'duration-input', focusMonitor, translateService, ngControl);
31
+ this.ngControl = ngControl;
32
+ /***************************************************************************
33
+ * *
34
+ * Fields *
35
+ * *
36
+ **************************************************************************/
37
+ this.log = LoggerFactory.getLogger(this.constructor.name);
38
+ this.durationFormat$ = new BehaviorSubject(DurationFormat.DEFAULT);
39
+ this.durationContext$ = combineLatest([this.value$, this.durationFormat$]).pipe(map(([duration, format]) => {
40
+ return new DurationInputContext(format.bucket(PeriodDuration.ofDuration(duration)), format);
41
+ }));
42
+ }
43
+ /***************************************************************************
44
+ * *
45
+ * Properties *
46
+ * *
47
+ **************************************************************************/
48
+ get isoValueChange() {
49
+ return this.valueChange.pipe(map(duration => duration ? duration.toJSON() : null));
50
+ }
51
+ set isoValue(value) {
52
+ if (value) {
53
+ const pd = PeriodDuration.parse(value);
54
+ const duration = pd.duration ?? Duration.ZERO;
55
+ const period = pd.period ?? Period.ZERO;
56
+ this.value = duration.plusDays(period.days());
57
+ }
58
+ else {
59
+ this.value = null;
60
+ }
61
+ }
62
+ /**
63
+ * yyyy:MM:dd hh:mm:ss
64
+ * @param durationFormat
65
+ */
66
+ set format(durationFormat) {
67
+ this.durationFormat = DurationFormat.parse(durationFormat);
68
+ }
69
+ set durationFormat(format) {
70
+ this.durationFormat$.next(format);
71
+ }
72
+ get shouldLabelFloat() {
73
+ return true;
74
+ }
75
+ /***************************************************************************
76
+ * *
77
+ * Public API *
78
+ * *
79
+ **************************************************************************/
80
+ focus(options) {
81
+ this.log.warn('focus() not yet supported!');
82
+ // TODO this.inputRef?.nativeElement?.focus(options);
83
+ }
84
+ blur() {
85
+ this.log.warn('blur() not yet supported!');
86
+ // TODO this.inputRef?.nativeElement?.blur();
87
+ }
88
+ round(value) {
89
+ return Math.round(value);
90
+ }
91
+ onBucketChanged(bucket) {
92
+ this.value = bucket.toDuration();
93
+ }
94
+ valuesEquals(a, b) {
95
+ return (a && b)
96
+ ? a.equals(b)
97
+ : a === b;
98
+ }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: ElderDurationInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
100
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: ElderDurationInputComponent, selector: "elder-duration-input", inputs: { isoValue: "isoValue", format: "format", durationFormat: "durationFormat" }, outputs: { isoValueChange: "isoValueChange" }, providers: [
101
+ { provide: MatFormFieldControl, useExisting: ElderDurationInputComponent },
102
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"layout-row place-start-center flex-none\" *ngIf=\"durationContext$ | async as durationCtx\">\n\n <div class=\"layout-row place-start-baseline duration-field flex\" *ngIf=\"durationCtx.format.days\">\n <input matInput elderNoSpinner\n [name]=\"ngControl?.name + '-inner-days'\"\n type=\"number\" class=\"duration-input duration-input-days flex-auto\"\n [required]=\"!!required\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n [ngModel]=\"round(durationCtx?.bucket?.days)\"\n (ngModelChange)=\"onBucketChanged(durationCtx.bucket.withDays($event))\">\n <span class=\"mat-caption suffix flex-none noselect\">d</span>\n </div>\n\n <div class=\"layout-row place-start-baseline duration-field flex\" *ngIf=\"durationCtx.format.hours\">\n <input matInput elderNoSpinner\n [name]=\"ngControl?.name + '-inner-hours'\"\n type=\"number\" class=\"duration-input duration-input-hours flex-auto\"\n [required]=\"!!required\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n [ngModel]=\"round(durationCtx?.bucket?.hours)\"\n (ngModelChange)=\"onBucketChanged(durationCtx.bucket.withHours($event))\">\n <span class=\"mat-caption suffix flex-none noselect\">h</span>\n </div>\n\n <div class=\"layout-row place-start-baseline duration-field flex\" *ngIf=\"durationCtx.format.minutes\">\n <input matInput elderNoSpinner\n [name]=\"ngControl?.name + '-inner-minutes'\"\n type=\"number\" class=\"duration-input duration-input-minutes flex-auto\"\n [required]=\"!!required\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n [ngModel]=\"round(durationCtx?.bucket?.minutes)\"\n (ngModelChange)=\"onBucketChanged(durationCtx.bucket.withMinutes($event))\">\n <span class=\"mat-caption suffix flex-none noselect\">min</span>\n </div>\n\n <div class=\"layout-row place-start-baseline duration-field flex\" *ngIf=\"durationCtx.format.seconds\">\n <input matInput elderNoSpinner\n [name]=\"ngControl?.name + '-inner-seconds'\"\n type=\"number\" class=\"duration-input duration-input-seconds flex-auto\"\n [required]=\"!!required\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n [ngModel]=\"round(durationCtx?.bucket?.seconds)\"\n (ngModelChange)=\"onBucketChanged(durationCtx.bucket.withSeconds($event))\">\n <span class=\"mat-caption suffix flex-none noselect\">sec</span>\n </div>\n\n</div>\n", styles: [".suffix{opacity:.7}.duration-input{text-align:right}.duration-input-days{min-width:26px}.duration-input-hours{min-width:20px}.duration-input-minutes,.duration-input-seconds{min-width:26px}input.duration-input::-webkit-outer-spin-button,input.duration-input::-webkit-inner-spin-button{display:none}input.duration-input{-moz-appearance:textfield}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { 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: i5.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: i6.ElderFormFieldNoSpinnerDirective, selector: "input[elderNoSpinner]", inputs: ["elderNoSpinner"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
103
+ }
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: ElderDurationInputComponent, decorators: [{
105
+ type: Component,
106
+ args: [{ selector: 'elder-duration-input', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
107
+ { provide: MatFormFieldControl, useExisting: ElderDurationInputComponent },
108
+ ], template: "<div class=\"layout-row place-start-center flex-none\" *ngIf=\"durationContext$ | async as durationCtx\">\n\n <div class=\"layout-row place-start-baseline duration-field flex\" *ngIf=\"durationCtx.format.days\">\n <input matInput elderNoSpinner\n [name]=\"ngControl?.name + '-inner-days'\"\n type=\"number\" class=\"duration-input duration-input-days flex-auto\"\n [required]=\"!!required\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n [ngModel]=\"round(durationCtx?.bucket?.days)\"\n (ngModelChange)=\"onBucketChanged(durationCtx.bucket.withDays($event))\">\n <span class=\"mat-caption suffix flex-none noselect\">d</span>\n </div>\n\n <div class=\"layout-row place-start-baseline duration-field flex\" *ngIf=\"durationCtx.format.hours\">\n <input matInput elderNoSpinner\n [name]=\"ngControl?.name + '-inner-hours'\"\n type=\"number\" class=\"duration-input duration-input-hours flex-auto\"\n [required]=\"!!required\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n [ngModel]=\"round(durationCtx?.bucket?.hours)\"\n (ngModelChange)=\"onBucketChanged(durationCtx.bucket.withHours($event))\">\n <span class=\"mat-caption suffix flex-none noselect\">h</span>\n </div>\n\n <div class=\"layout-row place-start-baseline duration-field flex\" *ngIf=\"durationCtx.format.minutes\">\n <input matInput elderNoSpinner\n [name]=\"ngControl?.name + '-inner-minutes'\"\n type=\"number\" class=\"duration-input duration-input-minutes flex-auto\"\n [required]=\"!!required\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n [ngModel]=\"round(durationCtx?.bucket?.minutes)\"\n (ngModelChange)=\"onBucketChanged(durationCtx.bucket.withMinutes($event))\">\n <span class=\"mat-caption suffix flex-none noselect\">min</span>\n </div>\n\n <div class=\"layout-row place-start-baseline duration-field flex\" *ngIf=\"durationCtx.format.seconds\">\n <input matInput elderNoSpinner\n [name]=\"ngControl?.name + '-inner-seconds'\"\n type=\"number\" class=\"duration-input duration-input-seconds flex-auto\"\n [required]=\"!!required\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n [ngModel]=\"round(durationCtx?.bucket?.seconds)\"\n (ngModelChange)=\"onBucketChanged(durationCtx.bucket.withSeconds($event))\">\n <span class=\"mat-caption suffix flex-none noselect\">sec</span>\n </div>\n\n</div>\n", styles: [".suffix{opacity:.7}.duration-input{text-align:right}.duration-input-days{min-width:26px}.duration-input-hours{min-width:20px}.duration-input-minutes,.duration-input-seconds{min-width:26px}input.duration-input::-webkit-outer-spin-button,input.duration-input::-webkit-inner-spin-button{display:none}input.duration-input{-moz-appearance:textfield}\n"] }]
109
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.NgControl, decorators: [{
110
+ type: Optional
111
+ }, {
112
+ type: Self
113
+ }] }]; }, propDecorators: { isoValueChange: [{
114
+ type: Output
115
+ }], isoValue: [{
116
+ type: Input
117
+ }], format: [{
118
+ type: Input
119
+ }], durationFormat: [{
120
+ type: Input
121
+ }] } });
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZHVyYXRpb24taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90aW1lL2R1cmF0aW9uL2VsZGVyLWR1cmF0aW9uLWlucHV0L2VsZGVyLWR1cmF0aW9uLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZS9kdXJhdGlvbi9lbGRlci1kdXJhdGlvbi1pbnB1dC9lbGRlci1kdXJhdGlvbi1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQXNCLFFBQVEsRUFBRSxJQUFJLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUVoRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGtFQUFrRSxDQUFDO0FBQzNHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7OztBQUtqRSxNQUFNLG9CQUFvQjtJQUN4QixZQUNrQixN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QyxDQUFDO0lBQzNCLENBQUM7SUFFTSxlQUFlLENBQUMsTUFBc0I7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVTLFlBQVksQ0FBQyxDQUFXLEVBQUUsQ0FBVztRQUM3QyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2QsQ0FBQzs4R0F2SFUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsb0xBSjNCO1lBQ1QsRUFBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLDJCQUEyQixFQUFDO1NBQ3pFLGlEQzlCSCw4akZBbURBOzsyRkRuQmEsMkJBQTJCO2tCQVR2QyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNULEVBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsNkJBQTZCLEVBQUM7cUJBQ3pFOzswQkEyQkUsUUFBUTs7MEJBQUksSUFBSTs0Q0E0QlIsY0FBYztzQkFEeEIsTUFBTTtnQkFRSSxRQUFRO3NCQURsQixLQUFLO2dCQWlCSyxNQUFNO3NCQURoQixLQUFLO2dCQU1LLGNBQWM7c0JBRHhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIE91dHB1dCwgRWxlbWVudFJlZiwgTmdab25lLCBPcHRpb25hbCwgU2VsZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0R1cmF0aW9uLCBQZXJpb2R9IGZyb20gJ0Bqcy1qb2RhL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtEdXJhdGlvbkJ1Y2tldH0gZnJvbSAnLi4vZHVyYXRpb24tYnVja2V0JztcbmltcG9ydCB7RHVyYXRpb25Gb3JtYXR9IGZyb20gJy4uL2R1cmF0aW9uLWZvcm1hdCc7XG5pbXBvcnQge1BlcmlvZER1cmF0aW9ufSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdGltZS9wZXJpb2QtZHVyYXRpb24nO1xuaW1wb3J0IHtFbGRlckZvcm1GaWVsZENvbnRyb2xCYXNlfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZm9ybXMvZWxkZXItZm9ybS1maWVsZC1jb250cm9sLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQge0ZvY3VzTW9uaXRvcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmNsYXNzIER1cmF0aW9uSW5wdXRDb250ZXh0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGJ1Y2tldDogRHVyYXRpb25CdWNrZXQsXG4gICAgcHVibGljIHJlYWRvbmx5IGZvcm1hdDogRHVyYXRpb25Gb3JtYXQsXG4gICkge1xuICB9XG59XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItZHVyYXRpb24taW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItZHVyYXRpb24taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1kdXJhdGlvbi1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge3Byb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBFbGRlckR1cmF0aW9uSW5wdXRDb21wb25lbnR9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRHVyYXRpb25JbnB1dENvbXBvbmVudCBleHRlbmRzIEVsZGVyRm9ybUZpZWxkQ29udHJvbEJhc2U8RHVyYXRpb24+IHtcblxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZHVyYXRpb25Gb3JtYXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEdXJhdGlvbkZvcm1hdD4oRHVyYXRpb25Gb3JtYXQuREVGQVVMVCk7XG4gIHB1YmxpYyByZWFkb25seSBkdXJhdGlvbkNvbnRleHQkOiBPYnNlcnZhYmxlPER1cmF0aW9uSW5wdXRDb250ZXh0PjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBob3N0UmVmOiBFbGVtZW50UmVmLFxuICAgIHpvbmU6IE5nWm9uZSxcbiAgICBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIGhvc3RSZWYsXG4gICAgICAnZHVyYXRpb24taW5wdXQnLFxuICAgICAgZm9jdXNNb25pdG9yLFxuICAgICAgdHJhbnNsYXRlU2VydmljZSxcbiAgICAgIG5nQ29udHJvbFxuICAgICk7XG4gICAgdGhpcy5kdXJhdGlvbkNvbnRleHQkID0gY29tYmluZUxhdGVzdChbdGhpcy52YWx1ZSQsIHRoaXMuZHVyYXRpb25Gb3JtYXQkXSkucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgKFtkdXJhdGlvbiwgZm9ybWF0XSkgPT4ge1xuICAgICAgICAgIHJldHVybiBuZXcgRHVyYXRpb25JbnB1dENvbnRleHQoXG4gICAgICAgICAgICBmb3JtYXQuYnVja2V0KFBlcmlvZER1cmF0aW9uLm9mRHVyYXRpb24oZHVyYXRpb24pKSxcbiAgICAgICAgICAgIGZvcm1hdFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgaXNvVmFsdWVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcChkdXJhdGlvbiA9PiBkdXJhdGlvbiA/IGR1cmF0aW9uLnRvSlNPTigpIDogbnVsbClcbiAgICApO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpc29WYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc3QgcGQgPSBQZXJpb2REdXJhdGlvbi5wYXJzZSh2YWx1ZSk7XG4gICAgICBjb25zdCBkdXJhdGlvbiA9IHBkLmR1cmF0aW9uID8/IER1cmF0aW9uLlpFUk87XG4gICAgICBjb25zdCBwZXJpb2QgPSBwZC5wZXJpb2QgPz8gUGVyaW9kLlpFUk87XG4gICAgICB0aGlzLnZhbHVlID0gZHVyYXRpb24ucGx1c0RheXMocGVyaW9kLmRheXMoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiB5eXl5Ok1NOmRkIGhoOm1tOnNzXG4gICAqIEBwYXJhbSBkdXJhdGlvbkZvcm1hdFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmb3JtYXQoZHVyYXRpb25Gb3JtYXQ6IHN0cmluZykge1xuICAgIHRoaXMuZHVyYXRpb25Gb3JtYXQgPSBEdXJhdGlvbkZvcm1hdC5wYXJzZShkdXJhdGlvbkZvcm1hdCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGR1cmF0aW9uRm9ybWF0KGZvcm1hdDogRHVyYXRpb25Gb3JtYXQpIHtcbiAgICB0aGlzLmR1cmF0aW9uRm9ybWF0JC5uZXh0KGZvcm1hdCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNob3VsZExhYmVsRmxvYXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4gIHB1YmxpYyBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgdGhpcy5sb2cud2FybignZm9jdXMoKSBub3QgeWV0IHN1cHBvcnRlZCEnKVxuICAgIC8vIFRPRE8gdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgYmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmxvZy53YXJuKCdibHVyKCkgbm90IHlldCBzdXBwb3J0ZWQhJylcbiAgICAvLyBUT0RPIHRoaXMuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmJsdXIoKTtcbiAgfVxuXG5cbiAgcHVibGljIHJvdW5kKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLnJvdW5kKHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkJ1Y2tldENoYW5nZWQoYnVja2V0OiBEdXJhdGlvbkJ1Y2tldCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBidWNrZXQudG9EdXJhdGlvbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHZhbHVlc0VxdWFscyhhOiBEdXJhdGlvbiwgYjogRHVyYXRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKGEgJiYgYilcbiAgICAgID8gYS5lcXVhbHMoYilcbiAgICAgIDogYSA9PT0gYjtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXIgZmxleC1ub25lXCIgKm5nSWY9XCJkdXJhdGlvbkNvbnRleHQkIHwgYXN5bmMgYXMgZHVyYXRpb25DdHhcIj5cblxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1iYXNlbGluZSBkdXJhdGlvbi1maWVsZCBmbGV4XCIgKm5nSWY9XCJkdXJhdGlvbkN0eC5mb3JtYXQuZGF5c1wiPlxuICAgIDxpbnB1dCBtYXRJbnB1dCBlbGRlck5vU3Bpbm5lclxuICAgICAgICAgICBbbmFtZV09XCJuZ0NvbnRyb2w/Lm5hbWUgKyAnLWlubmVyLWRheXMnXCJcbiAgICAgICAgICAgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwiZHVyYXRpb24taW5wdXQgZHVyYXRpb24taW5wdXQtZGF5cyBmbGV4LWF1dG9cIlxuICAgICAgICAgICBbcmVxdWlyZWRdPVwiISFyZXF1aXJlZFwiXG4gICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgIFtkaXNhYmxlZF09XCIhIWRpc2FibGVkXCJcbiAgICAgICAgICAgW25nTW9kZWxdPVwicm91bmQoZHVyYXRpb25DdHg/LmJ1Y2tldD8uZGF5cylcIlxuICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkJ1Y2tldENoYW5nZWQoZHVyYXRpb25DdHguYnVja2V0LndpdGhEYXlzKCRldmVudCkpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJtYXQtY2FwdGlvbiBzdWZmaXggZmxleC1ub25lIG5vc2VsZWN0XCI+ZDwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtYmFzZWxpbmUgZHVyYXRpb24tZmllbGQgZmxleFwiICpuZ0lmPVwiZHVyYXRpb25DdHguZm9ybWF0LmhvdXJzXCI+XG4gICAgPGlucHV0IG1hdElucHV0IGVsZGVyTm9TcGlubmVyXG4gICAgICAgICAgIFtuYW1lXT1cIm5nQ29udHJvbD8ubmFtZSArICctaW5uZXItaG91cnMnXCJcbiAgICAgICAgICAgdHlwZT1cIm51bWJlclwiIGNsYXNzPVwiZHVyYXRpb24taW5wdXQgZHVyYXRpb24taW5wdXQtaG91cnMgZmxleC1hdXRvXCJcbiAgICAgICAgICAgW3JlcXVpcmVkXT1cIiEhcmVxdWlyZWRcIlxuICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZFwiXG4gICAgICAgICAgIFtuZ01vZGVsXT1cInJvdW5kKGR1cmF0aW9uQ3R4Py5idWNrZXQ/LmhvdXJzKVwiXG4gICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQnVja2V0Q2hhbmdlZChkdXJhdGlvbkN0eC5idWNrZXQud2l0aEhvdXJzKCRldmVudCkpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJtYXQtY2FwdGlvbiBzdWZmaXggZmxleC1ub25lIG5vc2VsZWN0XCI+aDwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtYmFzZWxpbmUgZHVyYXRpb24tZmllbGQgZmxleFwiICpuZ0lmPVwiZHVyYXRpb25DdHguZm9ybWF0Lm1pbnV0ZXNcIj5cbiAgICA8aW5wdXQgbWF0SW5wdXQgZWxkZXJOb1NwaW5uZXJcbiAgICAgICAgICAgW25hbWVdPVwibmdDb250cm9sPy5uYW1lICsgJy1pbm5lci1taW51dGVzJ1wiXG4gICAgICAgICAgIHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cImR1cmF0aW9uLWlucHV0IGR1cmF0aW9uLWlucHV0LW1pbnV0ZXMgZmxleC1hdXRvXCJcbiAgICAgICAgICAgW3JlcXVpcmVkXT1cIiEhcmVxdWlyZWRcIlxuICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZFwiXG4gICAgICAgICAgIFtuZ01vZGVsXT1cInJvdW5kKGR1cmF0aW9uQ3R4Py5idWNrZXQ/Lm1pbnV0ZXMpXCJcbiAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25CdWNrZXRDaGFuZ2VkKGR1cmF0aW9uQ3R4LmJ1Y2tldC53aXRoTWludXRlcygkZXZlbnQpKVwiPlxuICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb24gc3VmZml4IGZsZXgtbm9uZSBub3NlbGVjdFwiPm1pbjwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtYmFzZWxpbmUgZHVyYXRpb24tZmllbGQgZmxleFwiICpuZ0lmPVwiZHVyYXRpb25DdHguZm9ybWF0LnNlY29uZHNcIj5cbiAgICA8aW5wdXQgbWF0SW5wdXQgZWxkZXJOb1NwaW5uZXJcbiAgICAgICAgICAgW25hbWVdPVwibmdDb250cm9sPy5uYW1lICsgJy1pbm5lci1zZWNvbmRzJ1wiXG4gICAgICAgICAgIHR5cGU9XCJudW1iZXJcIiBjbGFzcz1cImR1cmF0aW9uLWlucHV0IGR1cmF0aW9uLWlucHV0LXNlY29uZHMgZmxleC1hdXRvXCJcbiAgICAgICAgICAgW3JlcXVpcmVkXT1cIiEhcmVxdWlyZWRcIlxuICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZFwiXG4gICAgICAgICAgIFtuZ01vZGVsXT1cInJvdW5kKGR1cmF0aW9uQ3R4Py5idWNrZXQ/LnNlY29uZHMpXCJcbiAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25CdWNrZXRDaGFuZ2VkKGR1cmF0aW9uQ3R4LmJ1Y2tldC53aXRoU2Vjb25kcygkZXZlbnQpKVwiPlxuICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb24gc3VmZml4IGZsZXgtbm9uZSBub3NlbGVjdFwiPnNlYzwvc3Bhbj5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
@@ -0,0 +1,89 @@
1
+ import { ChangeDetectionStrategy, Component, Input, Output } from '@angular/core';
2
+ import { LoggerFactory } from '@elderbyte/ts-logger';
3
+ import { FormFieldBaseComponent } from '../../../common/forms/form-field-base.component';
4
+ import { LocalDate } from '@js-joda/core';
5
+ import { buildFormIntegrationProviders } from '../../../common/forms/template-composite-control';
6
+ import { ViewProviders } from '../../../common/forms/view-providers';
7
+ import { TimeUtil } from '../../../common/time/time-util';
8
+ import { map } from 'rxjs/operators';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common";
11
+ import * as i2 from "@angular/material/form-field";
12
+ import * as i3 from "../../forms/directives/elder-form-field-dense.directive";
13
+ import * as i4 from "../elder-local-date-input/elder-local-date-input.component";
14
+ import * as i5 from "@ngx-translate/core";
15
+ export class ElderDateSwitcherComponent extends FormFieldBaseComponent {
16
+ /***************************************************************************
17
+ * *
18
+ * Constructor *
19
+ * *
20
+ **************************************************************************/
21
+ constructor() {
22
+ super();
23
+ /***************************************************************************
24
+ * *
25
+ * Fields *
26
+ * *
27
+ **************************************************************************/
28
+ this.logger = LoggerFactory.getLogger(this.constructor.name);
29
+ /** If true, date picker functionality is enabled. */
30
+ this.datePickerEnabled = true;
31
+ /** If true, touch optimized mode of date picker is enabled. */
32
+ this.datePickerTouchUi = false;
33
+ /** If true, elderDense on mat-form-field is enabled. */
34
+ this.dense = false;
35
+ this.updateValue(LocalDate.now());
36
+ }
37
+ /***************************************************************************
38
+ * *
39
+ * Life Cycle *
40
+ * *
41
+ **************************************************************************/
42
+ ngOnInit() { }
43
+ /***************************************************************************
44
+ * *
45
+ * Properties *
46
+ * *
47
+ **************************************************************************/
48
+ /**
49
+ * Emits date upon internal date change.
50
+ * @deprecated Migrate your code to use LocalDate
51
+ */
52
+ get dateChange() {
53
+ return this.valueChange.pipe(map(localDate => localDate ? TimeUtil.localDateToDate(localDate) : null));
54
+ }
55
+ /**
56
+ * @param date
57
+ * @deprecated Migrate your code to use LocalDate
58
+ */
59
+ set date(date) {
60
+ this.value = date ? TimeUtil.dateToLocalDate(date) : null;
61
+ }
62
+ /***************************************************************************
63
+ * *
64
+ * Private Methods *
65
+ * *
66
+ **************************************************************************/
67
+ valuesEquals(a, b) {
68
+ return (a && b)
69
+ ? a.equals(b)
70
+ : a === b;
71
+ }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: ElderDateSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: ElderDateSwitcherComponent, selector: "elder-date-switcher", inputs: { datePickerEnabled: "datePickerEnabled", datePickerTouchUi: "datePickerTouchUi", dense: "dense", date: "date" }, outputs: { dateChange: "dateChange" }, host: { classAttribute: "elder-form-field-host" }, providers: buildFormIntegrationProviders(ElderDateSwitcherComponent), usesInheritance: true, ngImport: i0, template: "<mat-form-field subscriptSizing=\"dynamic\" class=\"flex full\" [elderDense]=\"dense\">\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n <elder-local-date-input\n arrows today autoDatePicker datePickerTouchUi\n [datePickerEnabled]=\"false\"\n [datePickerTouchUi]=\"datePickerTouchUi\"\n [value]=\"value$ | async\"\n (valueUpdated)=\"updateValue($event)\"\n >\n </elder-local-date-input>\n</mat-form-field>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "component", type: i4.ElderLocalDateInputComponent, selector: "elder-local-date-input", inputs: ["zone", "autoDatePicker", "arrows", "today", "center", "datePickerTouchUi", "allowNull", "datePickerEnabled", "isoValue", "dateValue", "isoDateValue"], outputs: ["blurred", "valueUpdatedBlur", "isoValueChange", "dateValueChange", "isoDateValueChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], viewProviders: [ViewProviders.ParentControlContainer], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
+ }
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: ElderDateSwitcherComponent, decorators: [{
76
+ type: Component,
77
+ args: [{ selector: 'elder-date-switcher', changeDetection: ChangeDetectionStrategy.OnPush, host: { 'class': 'elder-form-field-host' }, providers: buildFormIntegrationProviders(ElderDateSwitcherComponent), viewProviders: [ViewProviders.ParentControlContainer], template: "<mat-form-field subscriptSizing=\"dynamic\" class=\"flex full\" [elderDense]=\"dense\">\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n <elder-local-date-input\n arrows today autoDatePicker datePickerTouchUi\n [datePickerEnabled]=\"false\"\n [datePickerTouchUi]=\"datePickerTouchUi\"\n [value]=\"value$ | async\"\n (valueUpdated)=\"updateValue($event)\"\n >\n </elder-local-date-input>\n</mat-form-field>\n" }]
78
+ }], ctorParameters: function () { return []; }, propDecorators: { datePickerEnabled: [{
79
+ type: Input
80
+ }], datePickerTouchUi: [{
81
+ type: Input
82
+ }], dense: [{
83
+ type: Input
84
+ }], dateChange: [{
85
+ type: Output
86
+ }], date: [{
87
+ type: Input
88
+ }] } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGF0ZS1zd2l0Y2hlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3RpbWUvZWxkZXItZGF0ZS1zd2l0Y2hlci9lbGRlci1kYXRlLXN3aXRjaGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZS9lbGRlci1kYXRlLXN3aXRjaGVyL2VsZGVyLWRhdGUtc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUN2RixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUVuRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBWW5DLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxzQkFBaUM7SUFzQi9FOzs7O2dGQUk0RTtJQUU1RTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBM0JWOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpFLHFEQUFxRDtRQUU5QyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFFaEMsK0RBQStEO1FBRXhELHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUVqQyx3REFBd0Q7UUFFakQsVUFBSyxHQUFHLEtBQUssQ0FBQztRQVVuQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsUUFBUSxLQUFVLENBQUM7SUFFMUI7Ozs7Z0ZBSTRFO0lBRTVFOzs7T0FHRztJQUNILElBQ1csVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ1csSUFBSSxDQUFDLElBQVU7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRWxFLFlBQVksQ0FBQyxDQUFZLEVBQUUsQ0FBWTtRQUMvQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2QsQ0FBQzs4R0E3RVUsMEJBQTBCO2tHQUExQiwwQkFBMEIsa1FBSDFCLDZCQUE2QixDQUFDLDBCQUEwQixDQUFDLGlEQ2pCdEUsNGJBV0Esd2hDRE9pQixDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQzs7MkZBRTFDLDBCQUEwQjtrQkFWdEMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxRQUV6QyxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBQyxhQUM3Qiw2QkFBNkIsNEJBQTRCLGlCQUNyRCxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQzswRUFjOUMsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUtDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFLQyxLQUFLO3NCQURYLEtBQUs7Z0JBaUNLLFVBQVU7c0JBRHBCLE1BQU07Z0JBWUksSUFBSTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0Zvcm1GaWVsZEJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy9mb3JtLWZpZWxkLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7TG9jYWxEYXRlfSBmcm9tICdAanMtam9kYS9jb3JlJztcbmltcG9ydCB7YnVpbGRGb3JtSW50ZWdyYXRpb25Qcm92aWRlcnN9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy90ZW1wbGF0ZS1jb21wb3NpdGUtY29udHJvbCc7XG5pbXBvcnQge1ZpZXdQcm92aWRlcnN9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy92aWV3LXByb3ZpZGVycyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUaW1lVXRpbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3RpbWUvdGltZS11dGlsJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWRhdGUtc3dpdGNoZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItZGF0ZS1zd2l0Y2hlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLWRhdGUtc3dpdGNoZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICBob3N0OiB7J2NsYXNzJzogJ2VsZGVyLWZvcm0tZmllbGQtaG9zdCd9LFxuICBwcm92aWRlcnM6IGJ1aWxkRm9ybUludGVncmF0aW9uUHJvdmlkZXJzKEVsZGVyRGF0ZVN3aXRjaGVyQ29tcG9uZW50KSxcbiAgdmlld1Byb3ZpZGVyczogW1ZpZXdQcm92aWRlcnMuUGFyZW50Q29udHJvbENvbnRhaW5lcl1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJEYXRlU3dpdGNoZXJDb21wb25lbnQgZXh0ZW5kcyBGb3JtRmllbGRCYXNlQ29tcG9uZW50PExvY2FsRGF0ZT4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICAvKiogSWYgdHJ1ZSwgZGF0ZSBwaWNrZXIgZnVuY3Rpb25hbGl0eSBpcyBlbmFibGVkLiAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0ZVBpY2tlckVuYWJsZWQgPSB0cnVlO1xuXG4gIC8qKiBJZiB0cnVlLCB0b3VjaCBvcHRpbWl6ZWQgbW9kZSBvZiBkYXRlIHBpY2tlciBpcyBlbmFibGVkLiAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0ZVBpY2tlclRvdWNoVWkgPSBmYWxzZTtcblxuICAvKiogSWYgdHJ1ZSwgZWxkZXJEZW5zZSBvbiBtYXQtZm9ybS1maWVsZCBpcyBlbmFibGVkLiAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGVuc2UgPSBmYWxzZTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudXBkYXRlVmFsdWUoTG9jYWxEYXRlLm5vdygpKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEVtaXRzIGRhdGUgdXBvbiBpbnRlcm5hbCBkYXRlIGNoYW5nZS5cbiAgICogQGRlcHJlY2F0ZWQgTWlncmF0ZSB5b3VyIGNvZGUgdG8gdXNlIExvY2FsRGF0ZVxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgZGF0ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPERhdGU+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUNoYW5nZS5waXBlKFxuICAgICAgbWFwKGxvY2FsRGF0ZSA9PiBsb2NhbERhdGUgPyBUaW1lVXRpbC5sb2NhbERhdGVUb0RhdGUobG9jYWxEYXRlKSA6IG51bGwpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKiBAZGVwcmVjYXRlZCBNaWdyYXRlIHlvdXIgY29kZSB0byB1c2UgTG9jYWxEYXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGUoZGF0ZTogRGF0ZSkge1xuICAgIHRoaXMudmFsdWUgPSBkYXRlID8gVGltZVV0aWwuZGF0ZVRvTG9jYWxEYXRlKGRhdGUpIDogbnVsbDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCB2YWx1ZXNFcXVhbHMoYTogTG9jYWxEYXRlLCBiOiBMb2NhbERhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKGEgJiYgYilcbiAgICAgID8gYS5lcXVhbHMoYilcbiAgICAgIDogYSA9PT0gYjtcbiAgfVxuXG5cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgY2xhc3M9XCJmbGV4IGZ1bGxcIiBbZWxkZXJEZW5zZV09XCJkZW5zZVwiPlxuICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxcIj57e2xhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgPGVsZGVyLWxvY2FsLWRhdGUtaW5wdXRcbiAgICBhcnJvd3MgdG9kYXkgYXV0b0RhdGVQaWNrZXIgZGF0ZVBpY2tlclRvdWNoVWlcbiAgICBbZGF0ZVBpY2tlckVuYWJsZWRdPVwiZmFsc2VcIlxuICAgIFtkYXRlUGlja2VyVG91Y2hVaV09XCJkYXRlUGlja2VyVG91Y2hVaVwiXG4gICAgW3ZhbHVlXT1cInZhbHVlJCB8IGFzeW5jXCJcbiAgICAodmFsdWVVcGRhdGVkKT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxuICA+XG4gIDwvZWxkZXItbG9jYWwtZGF0ZS1pbnB1dD5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=