@elderbyte/ngx-starter 15.2.3 → 15.3.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 (275) hide show
  1. package/_index.scss +2 -0
  2. package/esm2020/lib/common/enums/elder-enum-translation.service.mjs +3 -3
  3. package/esm2020/lib/common/forms/elder-form-field-control-base.directive.mjs +3 -3
  4. package/esm2020/lib/common/forms/elder-from-field-base.mjs +3 -3
  5. package/esm2020/lib/common/forms/elder-from-field-customizable-base.mjs +3 -3
  6. package/esm2020/lib/common/forms/elder-from-field-entity-base.mjs +3 -3
  7. package/esm2020/lib/common/forms/elder-from-field-multi-entity-base.mjs +3 -3
  8. package/esm2020/lib/common/forms/form-field-base.component.mjs +3 -3
  9. package/esm2020/lib/common/forms/multi-model-base.component.mjs +3 -3
  10. package/esm2020/lib/common/forms/template-composite-control.mjs +3 -3
  11. package/esm2020/lib/common/forms/value-accessor-base.mjs +3 -3
  12. package/esm2020/lib/common/http/http-client-builder.service.mjs +3 -3
  13. package/esm2020/lib/common/http/http-client-pristine.mjs +3 -3
  14. package/esm2020/lib/common/http/transfer/data-transfer-factory.mjs +3 -3
  15. package/esm2020/lib/common/url/elder-router.service.mjs +3 -3
  16. package/esm2020/lib/common/url/elder-url-fragment-params.service.mjs +3 -3
  17. package/esm2020/lib/components/access-denied/elder-access-denied.component.mjs +3 -3
  18. package/esm2020/lib/components/access-denied/elder-access-denied.module.mjs +4 -4
  19. package/esm2020/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +3 -3
  20. package/esm2020/lib/components/auditing/elder-audit.module.mjs +4 -4
  21. package/esm2020/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -3
  22. package/esm2020/lib/components/button-group/elder-button-group.module.mjs +4 -4
  23. package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +3 -3
  24. package/esm2020/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +3 -3
  25. package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +3 -3
  26. package/esm2020/lib/components/card-organizer/elder-card-organizer.module.mjs +4 -4
  27. package/esm2020/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -3
  28. package/esm2020/lib/components/cards/elder-card/elder-card.component.mjs +18 -18
  29. package/esm2020/lib/components/cards/elder-card/elder-card.module.mjs +4 -4
  30. package/esm2020/lib/components/chips/elder-chip-label.directive.mjs +120 -0
  31. package/esm2020/lib/components/chips/elder-chips.module.mjs +48 -0
  32. package/esm2020/lib/components/connectivity/elder-connectivity.module.mjs +4 -4
  33. package/esm2020/lib/components/connectivity/elder-connectivity.service.mjs +3 -3
  34. package/esm2020/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +3 -3
  35. package/esm2020/lib/components/containers/elder-containers.module.mjs +4 -4
  36. package/esm2020/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +3 -3
  37. package/esm2020/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +3 -3
  38. package/esm2020/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +3 -3
  39. package/esm2020/lib/components/csv/elder-csv.module.mjs +4 -4
  40. package/esm2020/lib/components/currency/elder-currency.module.mjs +4 -4
  41. package/esm2020/lib/components/currency/elder-currency.pipe.mjs +3 -3
  42. package/esm2020/lib/components/data-transfer/elder-data-transfer.module.mjs +4 -4
  43. package/esm2020/lib/components/data-transfer/elder-data-transfer.service.mjs +3 -3
  44. package/esm2020/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +53 -29
  45. package/esm2020/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +3 -3
  46. package/esm2020/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
  47. package/esm2020/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +4 -11
  48. package/esm2020/lib/components/data-view/base/elder-data-view-base.mjs +3 -3
  49. package/esm2020/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +3 -3
  50. package/esm2020/lib/components/data-view/common/elder-data-common.module.mjs +4 -4
  51. package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +6 -6
  52. package/esm2020/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +3 -3
  53. package/esm2020/lib/components/data-view/common/selection/data-context-selection.directive.mjs +3 -3
  54. package/esm2020/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +3 -3
  55. package/esm2020/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +9 -9
  56. package/esm2020/lib/components/data-view/grid/elder-grid.module.mjs +4 -4
  57. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +3 -3
  58. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +4 -4
  59. package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +3 -3
  60. package/esm2020/lib/components/data-view/table/elder-number-cell.directive.mjs +3 -3
  61. package/esm2020/lib/components/data-view/table/elder-paginator-intl.mjs +3 -3
  62. package/esm2020/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +3 -3
  63. package/esm2020/lib/components/data-view/table/elder-table/elder-table.component.mjs +3 -3
  64. package/esm2020/lib/components/data-view/table/elder-table-column.directive.mjs +3 -3
  65. package/esm2020/lib/components/data-view/table/elder-table-extension.directive.mjs +3 -3
  66. package/esm2020/lib/components/data-view/table/elder-table-root.directive.mjs +3 -3
  67. package/esm2020/lib/components/data-view/table/elder-table-row.directive.mjs +3 -3
  68. package/esm2020/lib/components/data-view/table/elder-table-sort.directive.mjs +3 -3
  69. package/esm2020/lib/components/data-view/table/elder-table.module.mjs +4 -4
  70. package/esm2020/lib/components/data-view/table/model/elder-table-model.mjs +3 -3
  71. package/esm2020/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +3 -3
  72. package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +4 -4
  73. package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +3 -3
  74. package/esm2020/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +3 -3
  75. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +3 -3
  76. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +3 -3
  77. package/esm2020/lib/components/errors/elder-error.module.mjs +4 -4
  78. package/esm2020/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +3 -3
  79. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +3 -3
  80. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +4 -4
  81. package/esm2020/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -3
  82. package/esm2020/lib/components/files/elder-file-drop-zone.directive.mjs +3 -3
  83. package/esm2020/lib/components/files/elder-file-select.directive.mjs +3 -3
  84. package/esm2020/lib/components/files/elder-file.module.mjs +4 -4
  85. package/esm2020/lib/components/files/file-select/file-select.component.mjs +3 -3
  86. package/esm2020/lib/components/files/file-upload/file-upload.component.mjs +3 -3
  87. package/esm2020/lib/components/forms/clipboard/elder-clipboard.service.mjs +3 -3
  88. package/esm2020/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +3 -3
  89. package/esm2020/lib/components/forms/directives/elder-clipboard-put.directive.mjs +3 -3
  90. package/esm2020/lib/components/forms/directives/elder-delayed-focus.directive.mjs +3 -3
  91. package/esm2020/lib/components/forms/directives/elder-form-field-dense.directive.mjs +3 -3
  92. package/esm2020/lib/components/forms/directives/elder-form-field-label.directive.mjs +3 -3
  93. package/esm2020/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +3 -3
  94. package/esm2020/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +3 -3
  95. package/esm2020/lib/components/forms/directives/elder-forms-directives.module.mjs +4 -4
  96. package/esm2020/lib/components/forms/directives/elder-input-pattern.directive.mjs +3 -3
  97. package/esm2020/lib/components/forms/directives/elder-key-event.directive.mjs +3 -3
  98. package/esm2020/lib/components/forms/directives/elder-next-focusable.directive.mjs +3 -3
  99. package/esm2020/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +3 -3
  100. package/esm2020/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +3 -3
  101. package/esm2020/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +3 -3
  102. package/esm2020/lib/components/forms/directives/elder-touched.directive.mjs +3 -3
  103. package/esm2020/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +3 -3
  104. package/esm2020/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +3 -3
  105. package/esm2020/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +3 -3
  106. package/esm2020/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +3 -3
  107. package/esm2020/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +3 -3
  108. package/esm2020/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +3 -3
  109. package/esm2020/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +3 -3
  110. package/esm2020/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +3 -3
  111. package/esm2020/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +3 -3
  112. package/esm2020/lib/components/forms/elder-forms.module.mjs +4 -4
  113. package/esm2020/lib/components/forms/search/elder-search-context.directive.mjs +3 -3
  114. package/esm2020/lib/components/forms/search/elder-search-input.directive.mjs +3 -3
  115. package/esm2020/lib/components/forms/search/elder-search.module.mjs +4 -4
  116. package/esm2020/lib/components/forms/search/search-box/elder-search-box.component.mjs +3 -3
  117. package/esm2020/lib/components/forms/search/search-box/elder-search-panel.component.mjs +3 -3
  118. package/esm2020/lib/components/global-search/elder-global-search.component.mjs +3 -3
  119. package/esm2020/lib/components/global-search/elder-global-search.module.mjs +4 -4
  120. package/esm2020/lib/components/global-search/elder-global-search.service.mjs +3 -3
  121. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +3 -3
  122. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -4
  123. package/esm2020/lib/components/headers/elder-header/elder-header.component.mjs +3 -3
  124. package/esm2020/lib/components/headers/elder-header.module.mjs +4 -4
  125. package/esm2020/lib/components/http-support/elder-http-client.service.mjs +3 -3
  126. package/esm2020/lib/components/i18n/entities/elder-i18n-entities.module.mjs +4 -4
  127. package/esm2020/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +3 -3
  128. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +3 -3
  129. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +3 -3
  130. package/esm2020/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +3 -3
  131. package/esm2020/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +3 -3
  132. package/esm2020/lib/components/i18n/entities/elder-localized-texts.directive.mjs +3 -3
  133. package/esm2020/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +3 -3
  134. package/esm2020/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +3 -3
  135. package/esm2020/lib/components/i18n/entities/picker/localisation-picker.service.mjs +3 -3
  136. package/esm2020/lib/components/i18n/language/elder-language-interceptor.mjs +3 -3
  137. package/esm2020/lib/components/i18n/language/elder-language.module.mjs +4 -4
  138. package/esm2020/lib/components/i18n/language/elder-language.service.mjs +3 -3
  139. package/esm2020/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +3 -3
  140. package/esm2020/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +4 -4
  141. package/esm2020/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +3 -3
  142. package/esm2020/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +3 -3
  143. package/esm2020/lib/components/iframes/elder-iframe.module.mjs +4 -4
  144. package/esm2020/lib/components/iframes/iframe-close.directive.mjs +3 -3
  145. package/esm2020/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +3 -3
  146. package/esm2020/lib/components/iframes/iframe-host/iframe-host.component.mjs +3 -3
  147. package/esm2020/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +3 -3
  148. package/esm2020/lib/components/iframes/iframe.service.mjs +3 -3
  149. package/esm2020/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +3 -3
  150. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +3 -3
  151. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +7 -7
  152. package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +3 -3
  153. package/esm2020/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +3 -3
  154. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +3 -3
  155. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.module.mjs +4 -4
  156. package/esm2020/lib/components/labels/elder-labels.module.mjs +4 -4
  157. package/esm2020/lib/components/labels/labels-input/labels-input.component.mjs +3 -3
  158. package/esm2020/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +3 -3
  159. package/esm2020/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +3 -3
  160. package/esm2020/lib/components/measures/directives/elder-unit-select.directive.mjs +3 -3
  161. package/esm2020/lib/components/measures/elder-measures.module.mjs +8 -8
  162. package/esm2020/lib/components/measures/elder-quantity-transform.pipe.mjs +3 -3
  163. package/esm2020/lib/components/measures/elder-quantity.pipe.mjs +3 -3
  164. package/esm2020/lib/components/measures/elder-unit.service.mjs +3 -3
  165. package/esm2020/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +3 -3
  166. package/esm2020/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +3 -3
  167. package/esm2020/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +3 -3
  168. package/esm2020/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +3 -3
  169. package/esm2020/lib/components/measures/util/elder-quantity.service.mjs +3 -3
  170. package/esm2020/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +3 -3
  171. package/esm2020/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +4 -4
  172. package/esm2020/lib/components/navigation/nav/elder-nav.module.mjs +4 -4
  173. package/esm2020/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +3 -3
  174. package/esm2020/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +3 -3
  175. package/esm2020/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -3
  176. package/esm2020/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +3 -3
  177. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.module.mjs +4 -4
  178. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.service.mjs +3 -3
  179. package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +3 -3
  180. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +3 -3
  181. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +3 -3
  182. package/esm2020/lib/components/overlays/elder-overlay-origin.directive.mjs +3 -3
  183. package/esm2020/lib/components/overlays/elder-overlay-trigger.directive.mjs +3 -3
  184. package/esm2020/lib/components/overlays/elder-overlay.component.mjs +3 -3
  185. package/esm2020/lib/components/overlays/elder-overlay.module.mjs +4 -4
  186. package/esm2020/lib/components/panels/card-panel/elder-card-panel.component.mjs +3 -3
  187. package/esm2020/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +3 -3
  188. package/esm2020/lib/components/panels/elder-panel.module.mjs +4 -4
  189. package/esm2020/lib/components/panels/flat/elder-panel.component.mjs +3 -3
  190. package/esm2020/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +3 -3
  191. package/esm2020/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +9 -9
  192. package/esm2020/lib/components/public_api.mjs +2 -1
  193. package/esm2020/lib/components/select/auto/elder-auto-select-first.directive.mjs +3 -3
  194. package/esm2020/lib/components/select/elder-select-base.mjs +3 -3
  195. package/esm2020/lib/components/select/elder-select-chip.directive.mjs +9 -9
  196. package/esm2020/lib/components/select/elder-select-on-tab.directive.mjs +3 -3
  197. package/esm2020/lib/components/select/elder-select-value.directive.mjs +3 -3
  198. package/esm2020/lib/components/select/elder-select.module.mjs +4 -4
  199. package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +3 -3
  200. package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +3 -3
  201. package/esm2020/lib/components/select/multi/elder-multi-select-form-field.mjs +3 -3
  202. package/esm2020/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +3 -3
  203. package/esm2020/lib/components/select/popup/selection-model-popup.directive.mjs +3 -3
  204. package/esm2020/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
  205. package/esm2020/lib/components/select/single/elder-clear-select.directive.mjs +3 -3
  206. package/esm2020/lib/components/select/single/elder-select/elder-select.component.mjs +3 -3
  207. package/esm2020/lib/components/select/single/elder-select-form-field.mjs +3 -3
  208. package/esm2020/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +3 -3
  209. package/esm2020/lib/components/select-chip-list/elder-chip-list-select.module.mjs +4 -4
  210. package/esm2020/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +3 -3
  211. package/esm2020/lib/components/shell/drawers/elder-router-outlet.service.mjs +3 -3
  212. package/esm2020/lib/components/shell/elder-shell-slot.directive.mjs +3 -3
  213. package/esm2020/lib/components/shell/elder-shell.module.mjs +4 -4
  214. package/esm2020/lib/components/shell/elder-shell.service.mjs +3 -3
  215. package/esm2020/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +3 -3
  216. package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +12 -12
  217. package/esm2020/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +3 -3
  218. package/esm2020/lib/components/tabs/elder-tab/elder-tab.directive.mjs +3 -3
  219. package/esm2020/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +3 -3
  220. package/esm2020/lib/components/tabs/elder-tab.module.mjs +4 -4
  221. package/esm2020/lib/components/theme/elder-theme-applier.directive.mjs +3 -3
  222. package/esm2020/lib/components/theme/elder-theme-preference.service.mjs +3 -3
  223. package/esm2020/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +3 -3
  224. package/esm2020/lib/components/theme/elder-theme.directive.mjs +3 -3
  225. package/esm2020/lib/components/theme/elder-theme.module.mjs +5 -5
  226. package/esm2020/lib/components/theme/elder-theme.service.mjs +3 -3
  227. package/esm2020/lib/components/time/date-adapters/custom-date-adapter.mjs +3 -3
  228. package/esm2020/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +3 -3
  229. package/esm2020/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +12 -7
  230. package/esm2020/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +3 -3
  231. package/esm2020/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +6 -6
  232. package/esm2020/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +3 -3
  233. package/esm2020/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +3 -3
  234. package/esm2020/lib/components/time/elder-time.module.mjs +8 -8
  235. package/esm2020/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +3 -3
  236. package/esm2020/lib/components/toasts/elder-toast.module.mjs +4 -4
  237. package/esm2020/lib/components/toasts/elder-toast.service.mjs +3 -3
  238. package/esm2020/lib/components/toasts/standard-toast/standard-toast.component.mjs +3 -3
  239. package/esm2020/lib/components/url-fragment/elder-url-fragment.module.mjs +4 -4
  240. package/esm2020/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +4 -4
  241. package/esm2020/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +3 -3
  242. package/esm2020/lib/components/viewers/elder-viewers.module.mjs +4 -4
  243. package/esm2020/lib/features/event-source/elder-event-source.service.mjs +3 -3
  244. package/esm2020/lib/features/kafent/access-token-provider.mjs +3 -3
  245. package/esm2020/lib/features/kafent/kafent-config.mjs +3 -3
  246. package/esm2020/lib/features/kafent/kafent-event-stream.mjs +3 -3
  247. package/esm2020/lib/features/kafent/kafent-event.service.mjs +3 -3
  248. package/esm2020/lib/features/kafent/kafent.module.mjs +4 -4
  249. package/esm2020/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +3 -3
  250. package/esm2020/lib/pipes/bytes.pipe.mjs +3 -3
  251. package/esm2020/lib/pipes/elder-pipes.module.mjs +10 -10
  252. package/esm2020/lib/pipes/elder-repeat.pipe.mjs +3 -3
  253. package/esm2020/lib/pipes/elder-round.pipe.mjs +3 -3
  254. package/esm2020/lib/pipes/elder-safe-url.pipe.mjs +3 -3
  255. package/esm2020/lib/pipes/elder-truncate.pipe.mjs +3 -3
  256. package/esm2020/lib/pipes/iso-duration.pipe.mjs +3 -3
  257. package/esm2020/lib/pipes/iso-interval-parse.pipe.mjs +3 -3
  258. package/esm2020/lib/pipes/iso-interval.pipe.mjs +3 -3
  259. package/esm2020/lib/pipes/time-ago.pipe.mjs +3 -3
  260. package/esm2020/lib/pipes/time-duration.pipe.mjs +3 -3
  261. package/esm2020/lib/pipes/weight.pipe.mjs +3 -3
  262. package/fesm2015/elderbyte-ngx-starter.mjs +1096 -916
  263. package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
  264. package/fesm2020/elderbyte-ngx-starter.mjs +1092 -916
  265. package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
  266. package/lib/components/chips/elder-chip-label.directive.d.ts +40 -0
  267. package/lib/components/chips/elder-chips.module.d.ts +12 -0
  268. package/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.d.ts +15 -3
  269. package/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.d.ts +2 -9
  270. package/lib/components/public_api.d.ts +1 -0
  271. package/lib/components/time/elder-date-switcher/elder-date-switcher.component.d.ts +3 -1
  272. package/package.json +1 -1
  273. package/src/lib/components/time/_elder-time-input.theme.scss +7 -0
  274. package/theming/_elder-chip-theme.scss +160 -0
  275. package/theming/_elder-mdc-support.scss +20 -13
@@ -63,9 +63,9 @@ export class ElderThemePreferenceService {
63
63
  return initialTheme;
64
64
  }
65
65
  }
66
- ElderThemePreferenceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderThemePreferenceService, deps: [{ token: i1.ElderThemeService }, { token: i2.WebLocalStorage }], target: i0.ɵɵFactoryTarget.Injectable });
67
- ElderThemePreferenceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderThemePreferenceService, providedIn: 'root' });
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderThemePreferenceService, decorators: [{
66
+ ElderThemePreferenceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderThemePreferenceService, deps: [{ token: i1.ElderThemeService }, { token: i2.WebLocalStorage }], target: i0.ɵɵFactoryTarget.Injectable });
67
+ ElderThemePreferenceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderThemePreferenceService, providedIn: 'root' });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderThemePreferenceService, decorators: [{
69
69
  type: Injectable,
70
70
  args: [{
71
71
  providedIn: 'root'
@@ -63,9 +63,9 @@ export class ElderThemeToggleComponent {
63
63
  }
64
64
  }
65
65
  }
66
- ElderThemeToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderThemeToggleComponent, deps: [{ token: i1.ElderThemeService }, { token: i2.ElderThemePreferenceService }], target: i0.ɵɵFactoryTarget.Component });
67
- ElderThemeToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: ElderThemeToggleComponent, selector: "elder-theme-toggle", inputs: { color: "color" }, ngImport: i0, template: "<div class=\"layout-row place-start-center\" *ngIf=\"activeToggleTheme$ | async as activeToggleTheme\">\n <mat-slide-toggle [ngModel]=\"activeToggleTheme !== 'default'\"\n (ngModelChange)=\"onToggle($event)\"\n [color]=\"color\"\n >\n </mat-slide-toggle>\n <mat-icon [color]=\"color\">\n {{activeToggleTheme === 'default' ? 'light_mode' : 'brightness_2'}}\n </mat-icon>\n</div>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderThemeToggleComponent, decorators: [{
66
+ ElderThemeToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderThemeToggleComponent, deps: [{ token: i1.ElderThemeService }, { token: i2.ElderThemePreferenceService }], target: i0.ɵɵFactoryTarget.Component });
67
+ ElderThemeToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ElderThemeToggleComponent, selector: "elder-theme-toggle", inputs: { color: "color" }, ngImport: i0, template: "<div class=\"layout-row place-start-center\" *ngIf=\"activeToggleTheme$ | async as activeToggleTheme\">\n <mat-slide-toggle [ngModel]=\"activeToggleTheme !== 'default'\"\n (ngModelChange)=\"onToggle($event)\"\n [color]=\"color\"\n >\n </mat-slide-toggle>\n <mat-icon [color]=\"color\">\n {{activeToggleTheme === 'default' ? 'light_mode' : 'brightness_2'}}\n </mat-icon>\n</div>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderThemeToggleComponent, decorators: [{
69
69
  type: Component,
70
70
  args: [{ selector: 'elder-theme-toggle', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-row place-start-center\" *ngIf=\"activeToggleTheme$ | async as activeToggleTheme\">\n <mat-slide-toggle [ngModel]=\"activeToggleTheme !== 'default'\"\n (ngModelChange)=\"onToggle($event)\"\n [color]=\"color\"\n >\n </mat-slide-toggle>\n <mat-icon [color]=\"color\">\n {{activeToggleTheme === 'default' ? 'light_mode' : 'brightness_2'}}\n </mat-icon>\n</div>\n\n" }]
71
71
  }], ctorParameters: function () { return [{ type: i1.ElderThemeService }, { type: i2.ElderThemePreferenceService }]; }, propDecorators: { color: [{
@@ -46,9 +46,9 @@ export class ElderThemeDirective {
46
46
  }
47
47
  }
48
48
  }
49
- ElderThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderThemeDirective, deps: [{ token: i1.MatToolbar, host: true, optional: true }, { token: i2.ElderThemeService }], target: i0.ɵɵFactoryTarget.Directive });
50
- ElderThemeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: ElderThemeDirective, selector: "[elderTheme]", ngImport: i0 });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderThemeDirective, decorators: [{
49
+ ElderThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderThemeDirective, deps: [{ token: i1.MatToolbar, host: true, optional: true }, { token: i2.ElderThemeService }], target: i0.ɵɵFactoryTarget.Directive });
50
+ ElderThemeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: ElderThemeDirective, selector: "[elderTheme]", ngImport: i0 });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderThemeDirective, decorators: [{
52
52
  type: Directive,
53
53
  args: [{
54
54
  selector: '[elderTheme]'
@@ -22,8 +22,8 @@ export function themeInit(thpref) {
22
22
  }
23
23
  export class ElderThemeModule {
24
24
  }
25
- ElderThemeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
- ElderThemeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: ElderThemeModule, declarations: [ElderThemeApplierDirective,
25
+ ElderThemeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
+ ElderThemeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.2", ngImport: i0, type: ElderThemeModule, declarations: [ElderThemeApplierDirective,
27
27
  ElderThemeToggleComponent,
28
28
  ElderThemeDirective], imports: [CommonModule,
29
29
  MatSlideToggleModule,
@@ -31,7 +31,7 @@ ElderThemeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
31
31
  FormsModule], exports: [ElderThemeApplierDirective,
32
32
  ElderThemeToggleComponent,
33
33
  ElderThemeDirective] });
34
- ElderThemeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderThemeModule, providers: [
34
+ ElderThemeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderThemeModule, providers: [
35
35
  {
36
36
  provide: APP_INITIALIZER,
37
37
  useFactory: themeInit,
@@ -42,7 +42,7 @@ ElderThemeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
42
42
  MatSlideToggleModule,
43
43
  MatIconModule,
44
44
  FormsModule] });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderThemeModule, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderThemeModule, decorators: [{
46
46
  type: NgModule,
47
47
  args: [{
48
48
  imports: [
@@ -71,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
71
71
  ]
72
72
  }]
73
73
  }] });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGhlbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90aGVtZS9lbGRlci10aGVtZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGVBQWUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRTlELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDNUYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFNUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxNQUFtQztJQUMzRCxPQUFPLEdBQUcsRUFBRTtRQUNWLDZEQUE2RDtJQUMvRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBNEJELE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkFsQnpCLDBCQUEwQjtRQUMxQix5QkFBeUI7UUFDekIsbUJBQW1CLGFBUm5CLFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsYUFBYTtRQUNiLFdBQVcsYUFRWCwwQkFBMEI7UUFDMUIseUJBQXlCO1FBQ3pCLG1CQUFtQjs4R0FXVixnQkFBZ0IsYUFUaEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLElBQUksRUFBRSxDQUFDLDJCQUEyQixDQUFDO1lBQ25DLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixZQXRCQyxZQUFZO1FBQ1osb0JBQW9CO1FBQ3BCLGFBQWE7UUFDYixXQUFXOzJGQXFCRixnQkFBZ0I7a0JBMUI1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixXQUFXO3FCQUNaO29CQUNELFlBQVksRUFBRTt3QkFDWiwwQkFBMEI7d0JBQzFCLHlCQUF5Qjt3QkFDekIsbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixVQUFVLEVBQUUsU0FBUzs0QkFDckIsSUFBSSxFQUFFLENBQUMsMkJBQTJCLENBQUM7NEJBQ25DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFbGRlclRoZW1lQXBwbGllckRpcmVjdGl2ZSB9IGZyb20gJy4vZWxkZXItdGhlbWUtYXBwbGllci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWxkZXJUaGVtZVRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vZWxkZXItdGhlbWUtdG9nZ2xlL2VsZGVyLXRoZW1lLXRvZ2dsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRTbGlkZVRvZ2dsZU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0VsZGVyVGhlbWVQcmVmZXJlbmNlU2VydmljZX0gZnJvbSAnLi9lbGRlci10aGVtZS1wcmVmZXJlbmNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWxkZXJUaGVtZURpcmVjdGl2ZSB9IGZyb20gJy4vZWxkZXItdGhlbWUuZGlyZWN0aXZlJztcblxuZXhwb3J0IHtUaGVtZVNwZWN9IGZyb20gJy4vdGhlbWUtc3BlYyc7XG5leHBvcnQge0tub3duRWxkZXJUaGVtZXN9IGZyb20gJy4va25vd24tZWxkZXItdGhlbWVzJztcbmV4cG9ydCB7RWxkZXJUaGVtZVNlcnZpY2V9IGZyb20gJy4vZWxkZXItdGhlbWUuc2VydmljZSc7XG5leHBvcnQge0VsZGVyVGhlbWVQcmVmZXJlbmNlU2VydmljZX0gZnJvbSAnLi9lbGRlci10aGVtZS1wcmVmZXJlbmNlLnNlcnZpY2UnO1xuZXhwb3J0IHtFbGRlclRoZW1lQXBwbGllckRpcmVjdGl2ZX0gZnJvbSAnLi9lbGRlci10aGVtZS1hcHBsaWVyLmRpcmVjdGl2ZSc7XG5leHBvcnQge0VsZGVyVGhlbWVUb2dnbGVDb21wb25lbnR9IGZyb20gJy4vZWxkZXItdGhlbWUtdG9nZ2xlL2VsZGVyLXRoZW1lLXRvZ2dsZS5jb21wb25lbnQnO1xuZXhwb3J0IHtFbGRlclRoZW1lRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLXRoZW1lLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0aGVtZUluaXQodGhwcmVmOiBFbGRlclRoZW1lUHJlZmVyZW5jZVNlcnZpY2UpIHtcbiAgcmV0dXJuICgpID0+IHtcbiAgICAvLyBSZXF1aXJlZCBzbyB0aGUgRWxkZXJUaGVtZVByZWZlcmVuY2VTZXJ2aWNlIGlzIGluaXRpYWxpemVkXG4gIH07XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBFbGRlclRoZW1lQXBwbGllckRpcmVjdGl2ZSxcbiAgICBFbGRlclRoZW1lVG9nZ2xlQ29tcG9uZW50LFxuICAgIEVsZGVyVGhlbWVEaXJlY3RpdmVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEVsZGVyVGhlbWVBcHBsaWVyRGlyZWN0aXZlLFxuICAgIEVsZGVyVGhlbWVUb2dnbGVDb21wb25lbnQsXG4gICAgRWxkZXJUaGVtZURpcmVjdGl2ZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiB0aGVtZUluaXQsXG4gICAgICBkZXBzOiBbRWxkZXJUaGVtZVByZWZlcmVuY2VTZXJ2aWNlXSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVGhlbWVNb2R1bGUgeyB9XG5cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGhlbWUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90aGVtZS9lbGRlci10aGVtZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGVBQWUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRzlELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDdkMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDN0UsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDNUYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFNUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxNQUFtQztJQUMzRCxPQUFPLEdBQUcsRUFBRTtRQUNWLDZEQUE2RDtJQUMvRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBNEJELE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkFsQnpCLDBCQUEwQjtRQUMxQix5QkFBeUI7UUFDekIsbUJBQW1CLGFBUm5CLFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsYUFBYTtRQUNiLFdBQVcsYUFRWCwwQkFBMEI7UUFDMUIseUJBQXlCO1FBQ3pCLG1CQUFtQjs4R0FXVixnQkFBZ0IsYUFUaEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLElBQUksRUFBRSxDQUFDLDJCQUEyQixDQUFDO1lBQ25DLEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixZQXRCQyxZQUFZO1FBQ1osb0JBQW9CO1FBQ3BCLGFBQWE7UUFDYixXQUFXOzJGQXFCRixnQkFBZ0I7a0JBMUI1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixXQUFXO3FCQUNaO29CQUNELFlBQVksRUFBRTt3QkFDWiwwQkFBMEI7d0JBQzFCLHlCQUF5Qjt3QkFDekIsbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxlQUFlOzRCQUN4QixVQUFVLEVBQUUsU0FBUzs0QkFDckIsSUFBSSxFQUFFLENBQUMsMkJBQTJCLENBQUM7NEJBQ25DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFbGRlclRoZW1lQXBwbGllckRpcmVjdGl2ZSB9IGZyb20gJy4vZWxkZXItdGhlbWUtYXBwbGllci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWxkZXJUaGVtZVRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vZWxkZXItdGhlbWUtdG9nZ2xlL2VsZGVyLXRoZW1lLXRvZ2dsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRTbGlkZVRvZ2dsZU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0VsZGVyVGhlbWVQcmVmZXJlbmNlU2VydmljZX0gZnJvbSAnLi9lbGRlci10aGVtZS1wcmVmZXJlbmNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWxkZXJUaGVtZURpcmVjdGl2ZSB9IGZyb20gJy4vZWxkZXItdGhlbWUuZGlyZWN0aXZlJztcbmltcG9ydCB7RWxkZXJDaGlwTGFiZWxEaXJlY3RpdmV9IGZyb20gJy4uL2NoaXBzL2VsZGVyLWNoaXAtbGFiZWwuZGlyZWN0aXZlJztcblxuZXhwb3J0IHtUaGVtZVNwZWN9IGZyb20gJy4vdGhlbWUtc3BlYyc7XG5leHBvcnQge0tub3duRWxkZXJUaGVtZXN9IGZyb20gJy4va25vd24tZWxkZXItdGhlbWVzJztcbmV4cG9ydCB7RWxkZXJUaGVtZVNlcnZpY2V9IGZyb20gJy4vZWxkZXItdGhlbWUuc2VydmljZSc7XG5leHBvcnQge0VsZGVyVGhlbWVQcmVmZXJlbmNlU2VydmljZX0gZnJvbSAnLi9lbGRlci10aGVtZS1wcmVmZXJlbmNlLnNlcnZpY2UnO1xuZXhwb3J0IHtFbGRlclRoZW1lQXBwbGllckRpcmVjdGl2ZX0gZnJvbSAnLi9lbGRlci10aGVtZS1hcHBsaWVyLmRpcmVjdGl2ZSc7XG5leHBvcnQge0VsZGVyVGhlbWVUb2dnbGVDb21wb25lbnR9IGZyb20gJy4vZWxkZXItdGhlbWUtdG9nZ2xlL2VsZGVyLXRoZW1lLXRvZ2dsZS5jb21wb25lbnQnO1xuZXhwb3J0IHtFbGRlclRoZW1lRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLXRoZW1lLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0aGVtZUluaXQodGhwcmVmOiBFbGRlclRoZW1lUHJlZmVyZW5jZVNlcnZpY2UpIHtcbiAgcmV0dXJuICgpID0+IHtcbiAgICAvLyBSZXF1aXJlZCBzbyB0aGUgRWxkZXJUaGVtZVByZWZlcmVuY2VTZXJ2aWNlIGlzIGluaXRpYWxpemVkXG4gIH07XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBFbGRlclRoZW1lQXBwbGllckRpcmVjdGl2ZSxcbiAgICBFbGRlclRoZW1lVG9nZ2xlQ29tcG9uZW50LFxuICAgIEVsZGVyVGhlbWVEaXJlY3RpdmVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEVsZGVyVGhlbWVBcHBsaWVyRGlyZWN0aXZlLFxuICAgIEVsZGVyVGhlbWVUb2dnbGVDb21wb25lbnQsXG4gICAgRWxkZXJUaGVtZURpcmVjdGl2ZVxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiB0aGVtZUluaXQsXG4gICAgICBkZXBzOiBbRWxkZXJUaGVtZVByZWZlcmVuY2VTZXJ2aWNlXSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVGhlbWVNb2R1bGUgeyB9XG5cbiJdfQ==
@@ -112,9 +112,9 @@ export class ElderThemeService {
112
112
  }
113
113
  }
114
114
  }
115
- ElderThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
116
- ElderThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderThemeService, providedIn: 'root' });
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderThemeService, decorators: [{
115
+ ElderThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
116
+ ElderThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderThemeService, providedIn: 'root' });
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderThemeService, decorators: [{
118
118
  type: Injectable,
119
119
  args: [{
120
120
  providedIn: 'root'
@@ -15,9 +15,9 @@ export class CustomDateAdapter extends NativeDateAdapter {
15
15
  return 1;
16
16
  }
17
17
  }
18
- CustomDateAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CustomDateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
19
- CustomDateAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CustomDateAdapter });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CustomDateAdapter, decorators: [{
18
+ CustomDateAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: CustomDateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
19
+ CustomDateAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: CustomDateAdapter });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: CustomDateAdapter, decorators: [{
21
21
  type: Injectable
22
22
  }] });
23
23
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRhdGUtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZS9kYXRlLWFkYXB0ZXJzL2N1c3RvbS1kYXRlLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0ZBQXdGO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDOztBQUVuRDs7R0FFRztBQUVILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxpQkFBaUI7SUFEeEQ7O1FBR21CLFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7S0FzQjFFO0lBcEJDLGlCQUFpQjtRQUNmLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7OEdBTlUsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBBZGFwdHMgdGhlIG5hdGl2ZSBKUyBEYXRlIGZvciB1c2Ugd2l0aCBjZGstYmFzZWQgY29tcG9uZW50cyB0aGF0IHdvcmsgd2l0aCBkYXRlcy4gKi9cbmltcG9ydCB7IE5hdGl2ZURhdGVBZGFwdGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcblxuLyoqXG4gKiBNYWtlcyB3ZWVrIHN0YXJ0aW5nIGF0IG1vbmRheS4gRm9yIGV4YW1wbGUgTWF0RGF0ZVBpY2tlci5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEN1c3RvbURhdGVBZGFwdGVyIGV4dGVuZHMgTmF0aXZlRGF0ZUFkYXB0ZXIge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBnZXRGaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xuICAgIHJldHVybiAxO1xuICB9XG5cbiAgLypcbiAgcGFyc2UodmFsdWU6IGFueSk6IERhdGUgfCBudWxsIHtcblxuICAgIGlmICh2YWx1ZSkge1xuXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbmV3IERhdGUodmFsdWUpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignRmFpbGVkIHRvIHBhcnNlIGRhdGUgJyArIHZhbHVlLCBlcnIpO1xuICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfSovXG5cbn1cbiJdfQ==
@@ -97,11 +97,11 @@ export class ElderDurationInputComponent extends ElderFormFieldControlBase {
97
97
  : a === b;
98
98
  }
99
99
  }
100
- ElderDurationInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", 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 });
101
- ElderDurationInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: ElderDurationInputComponent, selector: "elder-duration-input", inputs: { isoValue: "isoValue", format: "format", durationFormat: "durationFormat" }, outputs: { isoValueChange: "isoValueChange" }, providers: [
100
+ ElderDurationInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", 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 });
101
+ ElderDurationInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ElderDurationInputComponent, selector: "elder-duration-input", inputs: { isoValue: "isoValue", format: "format", durationFormat: "durationFormat" }, outputs: { isoValueChange: "isoValueChange" }, providers: [
102
102
  { provide: MatFormFieldControl, useExisting: ElderDurationInputComponent },
103
103
  ], 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 });
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderDurationInputComponent, decorators: [{
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderDurationInputComponent, decorators: [{
105
105
  type: Component,
106
106
  args: [{ selector: 'elder-duration-input', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
107
107
  { provide: MatFormFieldControl, useExisting: ElderDurationInputComponent },
@@ -9,8 +9,9 @@ import { map } from 'rxjs/operators';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@angular/common";
11
11
  import * as i2 from "@angular/material/form-field";
12
- import * as i3 from "../elder-local-date-input/elder-local-date-input.component";
13
- import * as i4 from "@ngx-translate/core";
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";
14
15
  export class ElderDateSwitcherComponent extends FormFieldBaseComponent {
15
16
  /***************************************************************************
16
17
  * *
@@ -29,6 +30,8 @@ export class ElderDateSwitcherComponent extends FormFieldBaseComponent {
29
30
  this.datePickerEnabled = true;
30
31
  /** If true, touch optimized mode of date picker is enabled. */
31
32
  this.datePickerTouchUi = false;
33
+ /** If true, elderDense on mat-form-field is enabled. */
34
+ this.dense = false;
32
35
  this.updateValue(LocalDate.now());
33
36
  }
34
37
  /***************************************************************************
@@ -67,18 +70,20 @@ export class ElderDateSwitcherComponent extends FormFieldBaseComponent {
67
70
  : a === b;
68
71
  }
69
72
  }
70
- ElderDateSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderDateSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
71
- ElderDateSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: ElderDateSwitcherComponent, selector: "elder-date-switcher", inputs: { datePickerEnabled: "datePickerEnabled", datePickerTouchUi: "datePickerTouchUi", 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\">\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: "component", type: i3.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: i4.TranslatePipe, name: "translate" }], viewProviders: [ViewProviders.ParentControlContainer], changeDetection: i0.ChangeDetectionStrategy.OnPush });
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderDateSwitcherComponent, decorators: [{
73
+ ElderDateSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderDateSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
74
+ ElderDateSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", 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"] }, { 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 });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderDateSwitcherComponent, decorators: [{
73
76
  type: Component,
74
- 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\">\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" }]
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" }]
75
78
  }], ctorParameters: function () { return []; }, propDecorators: { datePickerEnabled: [{
76
79
  type: Input
77
80
  }], datePickerTouchUi: [{
78
81
  type: Input
82
+ }], dense: [{
83
+ type: Input
79
84
  }], dateChange: [{
80
85
  type: Output
81
86
  }], date: [{
82
87
  type: Input
83
88
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGF0ZS1zd2l0Y2hlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3RpbWUvZWxkZXItZGF0ZS1zd2l0Y2hlci9lbGRlci1kYXRlLXN3aXRjaGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZS9lbGRlci1kYXRlLXN3aXRjaGVyL2VsZGVyLWRhdGUtc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUN2RixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUVuRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFZbkMsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHNCQUFpQztJQWtCL0U7Ozs7Z0ZBSTRFO0lBRTVFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUF2QlY7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekUscURBQXFEO1FBRTlDLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUVoQywrREFBK0Q7UUFFeEQsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBVS9CLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxRQUFRLEtBQVUsQ0FBQztJQUUxQjs7OztnRkFJNEU7SUFFNUU7OztPQUdHO0lBQ0gsSUFDVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQzFCLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQ3pFLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFDVyxJQUFJLENBQUMsSUFBVTtRQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzVELENBQUM7SUFFRDs7OztnRkFJNEU7SUFFbEUsWUFBWSxDQUFDLENBQVksRUFBRSxDQUFZO1FBQy9DLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDZCxDQUFDOzt1SEF6RVUsMEJBQTBCOzJHQUExQiwwQkFBMEIsa1BBSDFCLDZCQUE2QixDQUFDLDBCQUEwQixDQUFDLGlEQ2pCdEUscWFBV0EseTNCRE9pQixDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQzsyRkFFMUMsMEJBQTBCO2tCQVZ0QyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLFFBRXpDLEVBQUMsT0FBTyxFQUFFLHVCQUF1QixFQUFDLGFBQzdCLDZCQUE2Qiw0QkFBNEIsaUJBQ3JELENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDOzBFQWM5QyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBS0MsaUJBQWlCO3NCQUR2QixLQUFLO2dCQWlDSyxVQUFVO3NCQURwQixNQUFNO2dCQVlJLElBQUk7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtGb3JtRmllbGRCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9jb21tb24vZm9ybXMvZm9ybS1maWVsZC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQge0xvY2FsRGF0ZX0gZnJvbSAnQGpzLWpvZGEvY29yZSc7XG5pbXBvcnQge2J1aWxkRm9ybUludGVncmF0aW9uUHJvdmlkZXJzfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZm9ybXMvdGVtcGxhdGUtY29tcG9zaXRlLWNvbnRyb2wnO1xuaW1wb3J0IHtWaWV3UHJvdmlkZXJzfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZm9ybXMvdmlldy1wcm92aWRlcnMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7VGltZVV0aWx9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi90aW1lL3RpbWUtdXRpbCc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1kYXRlLXN3aXRjaGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLWRhdGUtc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1kYXRlLXN3aXRjaGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDogeydjbGFzcyc6ICdlbGRlci1mb3JtLWZpZWxkLWhvc3QnfSxcbiAgcHJvdmlkZXJzOiBidWlsZEZvcm1JbnRlZ3JhdGlvblByb3ZpZGVycyhFbGRlckRhdGVTd2l0Y2hlckNvbXBvbmVudCksXG4gIHZpZXdQcm92aWRlcnM6IFtWaWV3UHJvdmlkZXJzLlBhcmVudENvbnRyb2xDb250YWluZXJdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRGF0ZVN3aXRjaGVyQ29tcG9uZW50IGV4dGVuZHMgRm9ybUZpZWxkQmFzZUNvbXBvbmVudDxMb2NhbERhdGU+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgLyoqIElmIHRydWUsIGRhdGUgcGlja2VyIGZ1bmN0aW9uYWxpdHkgaXMgZW5hYmxlZC4gKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRhdGVQaWNrZXJFbmFibGVkID0gdHJ1ZTtcblxuICAvKiogSWYgdHJ1ZSwgdG91Y2ggb3B0aW1pemVkIG1vZGUgb2YgZGF0ZSBwaWNrZXIgaXMgZW5hYmxlZC4gKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRhdGVQaWNrZXJUb3VjaFVpID0gZmFsc2U7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKExvY2FsRGF0ZS5ub3coKSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBFbWl0cyBkYXRlIHVwb24gaW50ZXJuYWwgZGF0ZSBjaGFuZ2UuXG4gICAqIEBkZXByZWNhdGVkIE1pZ3JhdGUgeW91ciBjb2RlIHRvIHVzZSBMb2NhbERhdGVcbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGRhdGVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxEYXRlPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcChsb2NhbERhdGUgPT4gbG9jYWxEYXRlID8gVGltZVV0aWwubG9jYWxEYXRlVG9EYXRlKGxvY2FsRGF0ZSkgOiBudWxsKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIGRhdGVcbiAgICogQGRlcHJlY2F0ZWQgTWlncmF0ZSB5b3VyIGNvZGUgdG8gdXNlIExvY2FsRGF0ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkYXRlKGRhdGU6IERhdGUpIHtcbiAgICB0aGlzLnZhbHVlID0gZGF0ZSA/IFRpbWVVdGlsLmRhdGVUb0xvY2FsRGF0ZShkYXRlKSA6IG51bGw7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgdmFsdWVzRXF1YWxzKGE6IExvY2FsRGF0ZSwgYjogTG9jYWxEYXRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChhICYmIGIpXG4gICAgICA/IGEuZXF1YWxzKGIpXG4gICAgICA6IGEgPT09IGI7XG4gIH1cblxuXG59XG4iLCI8bWF0LWZvcm0tZmllbGQgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiIGNsYXNzPVwiZmxleCBmdWxsXCI+XG4gIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICA8ZWxkZXItbG9jYWwtZGF0ZS1pbnB1dFxuICAgIGFycm93cyB0b2RheSBhdXRvRGF0ZVBpY2tlciBkYXRlUGlja2VyVG91Y2hVaVxuICAgIFtkYXRlUGlja2VyRW5hYmxlZF09XCJmYWxzZVwiXG4gICAgW2RhdGVQaWNrZXJUb3VjaFVpXT1cImRhdGVQaWNrZXJUb3VjaFVpXCJcbiAgICBbdmFsdWVdPVwidmFsdWUkIHwgYXN5bmNcIlxuICAgICh2YWx1ZVVwZGF0ZWQpPVwidXBkYXRlVmFsdWUoJGV2ZW50KVwiXG4gID5cbiAgPC9lbGRlci1sb2NhbC1kYXRlLWlucHV0PlxuPC9tYXQtZm9ybS1maWVsZD5cbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGF0ZS1zd2l0Y2hlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3RpbWUvZWxkZXItZGF0ZS1zd2l0Y2hlci9lbGRlci1kYXRlLXN3aXRjaGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZS9lbGRlci1kYXRlLXN3aXRjaGVyL2VsZGVyLWRhdGUtc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUN2RixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUVuRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBWW5DLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxzQkFBaUM7SUFzQi9FOzs7O2dGQUk0RTtJQUU1RTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBM0JWOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpFLHFEQUFxRDtRQUU5QyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFFaEMsK0RBQStEO1FBRXhELHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUVqQyx3REFBd0Q7UUFFakQsVUFBSyxHQUFHLEtBQUssQ0FBQztRQVVuQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsUUFBUSxLQUFVLENBQUM7SUFFMUI7Ozs7Z0ZBSTRFO0lBRTVFOzs7T0FHRztJQUNILElBQ1csVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ1csSUFBSSxDQUFDLElBQVU7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRWxFLFlBQVksQ0FBQyxDQUFZLEVBQUUsQ0FBWTtRQUMvQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2QsQ0FBQzs7dUhBN0VVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLGtRQUgxQiw2QkFBNkIsQ0FBQywwQkFBMEIsQ0FBQyxpRENqQnRFLDRiQVdBLHUvQkRPaUIsQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUM7MkZBRTFDLDBCQUEwQjtrQkFWdEMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxRQUV6QyxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBQyxhQUM3Qiw2QkFBNkIsNEJBQTRCLGlCQUNyRCxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQzswRUFjOUMsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUtDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFLQyxLQUFLO3NCQURYLEtBQUs7Z0JBaUNLLFVBQVU7c0JBRHBCLE1BQU07Z0JBWUksSUFBSTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0Zvcm1GaWVsZEJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy9mb3JtLWZpZWxkLWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7TG9jYWxEYXRlfSBmcm9tICdAanMtam9kYS9jb3JlJztcbmltcG9ydCB7YnVpbGRGb3JtSW50ZWdyYXRpb25Qcm92aWRlcnN9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy90ZW1wbGF0ZS1jb21wb3NpdGUtY29udHJvbCc7XG5pbXBvcnQge1ZpZXdQcm92aWRlcnN9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy92aWV3LXByb3ZpZGVycyc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUaW1lVXRpbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3RpbWUvdGltZS11dGlsJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWRhdGUtc3dpdGNoZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItZGF0ZS1zd2l0Y2hlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLWRhdGUtc3dpdGNoZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eVxuICBob3N0OiB7J2NsYXNzJzogJ2VsZGVyLWZvcm0tZmllbGQtaG9zdCd9LFxuICBwcm92aWRlcnM6IGJ1aWxkRm9ybUludGVncmF0aW9uUHJvdmlkZXJzKEVsZGVyRGF0ZVN3aXRjaGVyQ29tcG9uZW50KSxcbiAgdmlld1Byb3ZpZGVyczogW1ZpZXdQcm92aWRlcnMuUGFyZW50Q29udHJvbENvbnRhaW5lcl1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJEYXRlU3dpdGNoZXJDb21wb25lbnQgZXh0ZW5kcyBGb3JtRmllbGRCYXNlQ29tcG9uZW50PExvY2FsRGF0ZT4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICAvKiogSWYgdHJ1ZSwgZGF0ZSBwaWNrZXIgZnVuY3Rpb25hbGl0eSBpcyBlbmFibGVkLiAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0ZVBpY2tlckVuYWJsZWQgPSB0cnVlO1xuXG4gIC8qKiBJZiB0cnVlLCB0b3VjaCBvcHRpbWl6ZWQgbW9kZSBvZiBkYXRlIHBpY2tlciBpcyBlbmFibGVkLiAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0ZVBpY2tlclRvdWNoVWkgPSBmYWxzZTtcblxuICAvKiogSWYgdHJ1ZSwgZWxkZXJEZW5zZSBvbiBtYXQtZm9ybS1maWVsZCBpcyBlbmFibGVkLiAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGVuc2UgPSBmYWxzZTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudXBkYXRlVmFsdWUoTG9jYWxEYXRlLm5vdygpKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEVtaXRzIGRhdGUgdXBvbiBpbnRlcm5hbCBkYXRlIGNoYW5nZS5cbiAgICogQGRlcHJlY2F0ZWQgTWlncmF0ZSB5b3VyIGNvZGUgdG8gdXNlIExvY2FsRGF0ZVxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgZGF0ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPERhdGU+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUNoYW5nZS5waXBlKFxuICAgICAgbWFwKGxvY2FsRGF0ZSA9PiBsb2NhbERhdGUgPyBUaW1lVXRpbC5sb2NhbERhdGVUb0RhdGUobG9jYWxEYXRlKSA6IG51bGwpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gZGF0ZVxuICAgKiBAZGVwcmVjYXRlZCBNaWdyYXRlIHlvdXIgY29kZSB0byB1c2UgTG9jYWxEYXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGUoZGF0ZTogRGF0ZSkge1xuICAgIHRoaXMudmFsdWUgPSBkYXRlID8gVGltZVV0aWwuZGF0ZVRvTG9jYWxEYXRlKGRhdGUpIDogbnVsbDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCB2YWx1ZXNFcXVhbHMoYTogTG9jYWxEYXRlLCBiOiBMb2NhbERhdGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKGEgJiYgYilcbiAgICAgID8gYS5lcXVhbHMoYilcbiAgICAgIDogYSA9PT0gYjtcbiAgfVxuXG5cbn1cbiIsIjxtYXQtZm9ybS1maWVsZCBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgY2xhc3M9XCJmbGV4IGZ1bGxcIiBbZWxkZXJEZW5zZV09XCJkZW5zZVwiPlxuICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxcIj57e2xhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgPGVsZGVyLWxvY2FsLWRhdGUtaW5wdXRcbiAgICBhcnJvd3MgdG9kYXkgYXV0b0RhdGVQaWNrZXIgZGF0ZVBpY2tlclRvdWNoVWlcbiAgICBbZGF0ZVBpY2tlckVuYWJsZWRdPVwiZmFsc2VcIlxuICAgIFtkYXRlUGlja2VyVG91Y2hVaV09XCJkYXRlUGlja2VyVG91Y2hVaVwiXG4gICAgW3ZhbHVlXT1cInZhbHVlJCB8IGFzeW5jXCJcbiAgICAodmFsdWVVcGRhdGVkKT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxuICA+XG4gIDwvZWxkZXItbG9jYWwtZGF0ZS1pbnB1dD5cbjwvbWF0LWZvcm0tZmllbGQ+XG4iXX0=
@@ -82,11 +82,11 @@ export class ElderDateTimeInputComponent extends ElderFormFieldControlBase {
82
82
  : a === b;
83
83
  }
84
84
  }
85
- ElderDateTimeInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderDateTimeInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
86
- ElderDateTimeInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: ElderDateTimeInputComponent, selector: "elder-date-time-input", inputs: { center: "center", isoValue: "isoValue" }, outputs: { isoValueChange: "isoValueChange" }, providers: [
85
+ ElderDateTimeInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderDateTimeInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
86
+ ElderDateTimeInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ElderDateTimeInputComponent, selector: "elder-date-time-input", inputs: { center: "center", isoValue: "isoValue" }, outputs: { isoValueChange: "isoValueChange" }, providers: [
87
87
  { provide: MatFormFieldControl, useExisting: ElderDateTimeInputComponent },
88
88
  ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"layout-row place-start-baseline elder-flex-control\"\n>\n <input matInput class=\"flex-grow elder-mdc-input-fix elder-datetime-local-input\" #input\n [name]=\"ngControl?.name + '-inner-input'\"\n type=\"datetime-local\"\n [required]=\"!!required\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n [placeholder]=\"placeholder | translate\"\n [ngModel]=\"valueDate$ | async | date:'yyyy-MM-ddTHH:mm'\"\n (ngModelChange)=\"onDateTimeChanged($event)\"\n [class.center]=\"center\"\n >\n</div>\n", styles: [".elder-datetime-local-input.center{text-align:center}\n"], dependencies: [{ kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.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: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderDateTimeInputComponent, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderDateTimeInputComponent, decorators: [{
90
90
  type: Component,
91
91
  args: [{ selector: 'elder-date-time-input', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
92
92
  { provide: MatFormFieldControl, useExisting: ElderDateTimeInputComponent },
@@ -148,15 +148,15 @@ export class ElderIntervalInputComponent extends ElderFormFieldControlBase {
148
148
  }));
149
149
  }
150
150
  }
151
- ElderIntervalInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderIntervalInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
152
- ElderIntervalInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: ElderIntervalInputComponent, selector: "elder-interval-input", inputs: { zone: "zone", mode: "mode", isoValue: "isoValue" }, outputs: { isoValueChange: "isoValueChange" }, providers: [
151
+ ElderIntervalInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderIntervalInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
152
+ ElderIntervalInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ElderIntervalInputComponent, selector: "elder-interval-input", inputs: { zone: "zone", mode: "mode", isoValue: "isoValue" }, outputs: { isoValueChange: "isoValueChange" }, providers: [
153
153
  { provide: MatFormFieldControl, useExisting: ElderIntervalInputComponent },
154
- ], usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"mode\">\n\n <!-- DATE_TIME_RANGE -->\n <div *ngSwitchCase=\"'date-time-range'\"\n class=\"layout-row\">\n <elder-date-time-input class=\"flex\" center\n [value]=\"(value$ | async)?.start\"\n (valueUpdated)=\"onStartChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.from' | translate)\"\n ></elder-date-time-input>\n <span class=\"mat-date-range-input-separator flex-none\">\u2013</span>\n <elder-date-time-input class=\"flex\" center\n [value]=\"(value$ | async)?.end\"\n (valueUpdated)=\"onEndChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.to' | translate)\"\n ></elder-date-time-input>\n </div>\n\n <!-- DAY_TIME_RANGE -->\n <div *ngSwitchCase=\"'day-time-range'\"\n class=\"layout-row gap-xs elder-flex-interval-control\">\n\n <!-- [name]=\"name + '-day-start'\" -->\n <elder-date-time-input\n [value]=\"(value$ | async)?.start\"\n (valueUpdated)=\"onDayTimeStartChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.from' | translate)\"\n ></elder-date-time-input>\n\n <!-- [name]=\"name + '-day-end'\" -->\n <elder-local-time-input\n [value]=\"endTime$ | async\"\n (valueUpdated)=\"onDayTimeEndTimeChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.to' | translate)\"\n ></elder-local-time-input>\n </div>\n\n <!-- DATE_RANGE -->\n <div *ngSwitchCase=\"'date-range'\"\n class=\"layout-row gap-xs elder-flex-interval-control\">\n\n <mat-date-range-input\n [rangePicker]=\"picker\"\n [disabled]=\"!!disabled\"\n >\n <input matStartDate\n placeholder=\"dd.mm.yyy\"\n [ngModel]=\"startDate$ | async\" name=\"date-range.start\"\n [ngModelOptions]=\"{ standalone: true, updateOn: 'blur'}\"\n (ngModelChange)=\"onStartDateChanged($event)\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n >\n <input matEndDate\n placeholder=\"dd.mm.yyy\"\n [ngModel]=\"endDate$ | async\" name=\"date-range.end\"\n [ngModelOptions]=\"{ standalone: true, updateOn: 'blur'}\"\n (ngModelChange)=\"onEndDateChanged($event)\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n >\n </mat-date-range-input>\n <mat-datepicker-toggle class=\"elder-control-icon-button\"\n [disabled]=\"isLocked\"\n [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon>calendar_month</mat-icon>\n </mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n\n <!--\n <elder-local-date-input\n [value]=\"startDate$ | async\"\n (valueUpdated)=\"onStartDateChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.from' | translate)\"\n ></elder-local-date-input>\n <elder-local-date-input\n [value]=\"endDate$ | async\"\n (valueUpdated)=\"onEndDateChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.to' | translate)\"\n ></elder-local-date-input>\n -->\n </div>\n\n <!-- SINGLE_DAY -->\n <div *ngSwitchCase=\"'single-day'\"\n class=\"layout-row elder-flex-control\">\n\n <!-- [name]=\"name\" -->\n <elder-local-date-input class=\"flex\" center\n [value]=\"startLocalDate$ | async\"\n (valueUpdated)=\"onSingleDayDateChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '')\"\n ></elder-local-date-input>\n </div>\n\n</ng-container>\n\n\n\n", styles: [".elder-flex-interval-control{flex:1 1 auto;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i5.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i5.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i5.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i5.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i5.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.ElderDateTimeInputComponent, selector: "elder-date-time-input", inputs: ["center", "isoValue"], outputs: ["isoValueChange"] }, { kind: "component", type: i8.ElderLocalTimeInputComponent, selector: "elder-local-time-input", inputs: ["isoValue"], outputs: ["isoValueChange"] }, { kind: "component", type: i9.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: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderIntervalInputComponent, decorators: [{
154
+ ], usesInheritance: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"mode\">\n\n <!-- DATE_TIME_RANGE -->\n <div *ngSwitchCase=\"'date-time-range'\"\n class=\"layout-row\">\n <elder-date-time-input class=\"flex\" center\n [value]=\"(value$ | async)?.start\"\n (valueUpdated)=\"onStartChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.from' | translate)\"\n ></elder-date-time-input>\n <span class=\"mat-date-range-input-separator flex-none\">\u2013</span>\n <elder-date-time-input class=\"flex\" center\n [value]=\"(value$ | async)?.end\"\n (valueUpdated)=\"onEndChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.to' | translate)\"\n ></elder-date-time-input>\n </div>\n\n <!-- DAY_TIME_RANGE -->\n <div *ngSwitchCase=\"'day-time-range'\"\n class=\"layout-row gap-xs elder-flex-interval-control\">\n\n <!-- [name]=\"name + '-day-start'\" -->\n <elder-date-time-input\n [value]=\"(value$ | async)?.start\"\n (valueUpdated)=\"onDayTimeStartChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.from' | translate)\"\n ></elder-date-time-input>\n\n <!-- [name]=\"name + '-day-end'\" -->\n <elder-local-time-input\n [value]=\"endTime$ | async\"\n (valueUpdated)=\"onDayTimeEndTimeChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.to' | translate)\"\n ></elder-local-time-input>\n </div>\n\n <!-- DATE_RANGE -->\n <div *ngSwitchCase=\"'date-range'\"\n class=\"layout-row gap-xs elder-flex-interval-control\">\n\n <mat-date-range-input\n class=\"mdc-text-field__input\"\n [rangePicker]=\"picker\"\n [disabled]=\"!!disabled\"\n >\n <input matStartDate\n placeholder=\"dd.mm.yyyy\"\n [ngModel]=\"startDate$ | async\" name=\"date-range.start\"\n [ngModelOptions]=\"{ standalone: true, updateOn: 'blur'}\"\n (ngModelChange)=\"onStartDateChanged($event)\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n >\n <input matEndDate\n placeholder=\"dd.mm.yyyy\"\n [ngModel]=\"endDate$ | async\" name=\"date-range.end\"\n [ngModelOptions]=\"{ standalone: true, updateOn: 'blur'}\"\n (ngModelChange)=\"onEndDateChanged($event)\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n >\n </mat-date-range-input>\n <mat-datepicker-toggle class=\"elder-control-icon-button\"\n [disabled]=\"isLocked\"\n [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon>calendar_month</mat-icon>\n </mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n </div>\n\n <!-- SINGLE_DAY -->\n <div *ngSwitchCase=\"'single-day'\"\n class=\"layout-row elder-flex-control\">\n\n <!-- [name]=\"name\" -->\n <elder-local-date-input class=\"flex\" center\n [value]=\"startLocalDate$ | async\"\n (valueUpdated)=\"onSingleDayDateChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '')\"\n ></elder-local-date-input>\n </div>\n\n</ng-container>\n\n\n\n", styles: [".elder-flex-interval-control{flex:1 1 auto;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i5.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i5.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i5.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i5.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i5.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.ElderDateTimeInputComponent, selector: "elder-date-time-input", inputs: ["center", "isoValue"], outputs: ["isoValueChange"] }, { kind: "component", type: i8.ElderLocalTimeInputComponent, selector: "elder-local-time-input", inputs: ["isoValue"], outputs: ["isoValueChange"] }, { kind: "component", type: i9.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: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderIntervalInputComponent, decorators: [{
156
156
  type: Component,
157
157
  args: [{ selector: 'elder-interval-input', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
158
158
  { provide: MatFormFieldControl, useExisting: ElderIntervalInputComponent },
159
- ], template: "<ng-container [ngSwitch]=\"mode\">\n\n <!-- DATE_TIME_RANGE -->\n <div *ngSwitchCase=\"'date-time-range'\"\n class=\"layout-row\">\n <elder-date-time-input class=\"flex\" center\n [value]=\"(value$ | async)?.start\"\n (valueUpdated)=\"onStartChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.from' | translate)\"\n ></elder-date-time-input>\n <span class=\"mat-date-range-input-separator flex-none\">\u2013</span>\n <elder-date-time-input class=\"flex\" center\n [value]=\"(value$ | async)?.end\"\n (valueUpdated)=\"onEndChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.to' | translate)\"\n ></elder-date-time-input>\n </div>\n\n <!-- DAY_TIME_RANGE -->\n <div *ngSwitchCase=\"'day-time-range'\"\n class=\"layout-row gap-xs elder-flex-interval-control\">\n\n <!-- [name]=\"name + '-day-start'\" -->\n <elder-date-time-input\n [value]=\"(value$ | async)?.start\"\n (valueUpdated)=\"onDayTimeStartChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.from' | translate)\"\n ></elder-date-time-input>\n\n <!-- [name]=\"name + '-day-end'\" -->\n <elder-local-time-input\n [value]=\"endTime$ | async\"\n (valueUpdated)=\"onDayTimeEndTimeChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.to' | translate)\"\n ></elder-local-time-input>\n </div>\n\n <!-- DATE_RANGE -->\n <div *ngSwitchCase=\"'date-range'\"\n class=\"layout-row gap-xs elder-flex-interval-control\">\n\n <mat-date-range-input\n [rangePicker]=\"picker\"\n [disabled]=\"!!disabled\"\n >\n <input matStartDate\n placeholder=\"dd.mm.yyy\"\n [ngModel]=\"startDate$ | async\" name=\"date-range.start\"\n [ngModelOptions]=\"{ standalone: true, updateOn: 'blur'}\"\n (ngModelChange)=\"onStartDateChanged($event)\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n >\n <input matEndDate\n placeholder=\"dd.mm.yyy\"\n [ngModel]=\"endDate$ | async\" name=\"date-range.end\"\n [ngModelOptions]=\"{ standalone: true, updateOn: 'blur'}\"\n (ngModelChange)=\"onEndDateChanged($event)\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n >\n </mat-date-range-input>\n <mat-datepicker-toggle class=\"elder-control-icon-button\"\n [disabled]=\"isLocked\"\n [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon>calendar_month</mat-icon>\n </mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n\n <!--\n <elder-local-date-input\n [value]=\"startDate$ | async\"\n (valueUpdated)=\"onStartDateChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.from' | translate)\"\n ></elder-local-date-input>\n <elder-local-date-input\n [value]=\"endDate$ | async\"\n (valueUpdated)=\"onEndDateChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.to' | translate)\"\n ></elder-local-date-input>\n -->\n </div>\n\n <!-- SINGLE_DAY -->\n <div *ngSwitchCase=\"'single-day'\"\n class=\"layout-row elder-flex-control\">\n\n <!-- [name]=\"name\" -->\n <elder-local-date-input class=\"flex\" center\n [value]=\"startLocalDate$ | async\"\n (valueUpdated)=\"onSingleDayDateChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '')\"\n ></elder-local-date-input>\n </div>\n\n</ng-container>\n\n\n\n", styles: [".elder-flex-interval-control{flex:1 1 auto;overflow:hidden}\n"] }]
159
+ ], template: "<ng-container [ngSwitch]=\"mode\">\n\n <!-- DATE_TIME_RANGE -->\n <div *ngSwitchCase=\"'date-time-range'\"\n class=\"layout-row\">\n <elder-date-time-input class=\"flex\" center\n [value]=\"(value$ | async)?.start\"\n (valueUpdated)=\"onStartChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.from' | translate)\"\n ></elder-date-time-input>\n <span class=\"mat-date-range-input-separator flex-none\">\u2013</span>\n <elder-date-time-input class=\"flex\" center\n [value]=\"(value$ | async)?.end\"\n (valueUpdated)=\"onEndChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.to' | translate)\"\n ></elder-date-time-input>\n </div>\n\n <!-- DAY_TIME_RANGE -->\n <div *ngSwitchCase=\"'day-time-range'\"\n class=\"layout-row gap-xs elder-flex-interval-control\">\n\n <!-- [name]=\"name + '-day-start'\" -->\n <elder-date-time-input\n [value]=\"(value$ | async)?.start\"\n (valueUpdated)=\"onDayTimeStartChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.from' | translate)\"\n ></elder-date-time-input>\n\n <!-- [name]=\"name + '-day-end'\" -->\n <elder-local-time-input\n [value]=\"endTime$ | async\"\n (valueUpdated)=\"onDayTimeEndTimeChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '') + ' ' + ('interval.to' | translate)\"\n ></elder-local-time-input>\n </div>\n\n <!-- DATE_RANGE -->\n <div *ngSwitchCase=\"'date-range'\"\n class=\"layout-row gap-xs elder-flex-interval-control\">\n\n <mat-date-range-input\n class=\"mdc-text-field__input\"\n [rangePicker]=\"picker\"\n [disabled]=\"!!disabled\"\n >\n <input matStartDate\n placeholder=\"dd.mm.yyyy\"\n [ngModel]=\"startDate$ | async\" name=\"date-range.start\"\n [ngModelOptions]=\"{ standalone: true, updateOn: 'blur'}\"\n (ngModelChange)=\"onStartDateChanged($event)\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n >\n <input matEndDate\n placeholder=\"dd.mm.yyyy\"\n [ngModel]=\"endDate$ | async\" name=\"date-range.end\"\n [ngModelOptions]=\"{ standalone: true, updateOn: 'blur'}\"\n (ngModelChange)=\"onEndDateChanged($event)\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n >\n </mat-date-range-input>\n <mat-datepicker-toggle class=\"elder-control-icon-button\"\n [disabled]=\"isLocked\"\n [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon>calendar_month</mat-icon>\n </mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n </div>\n\n <!-- SINGLE_DAY -->\n <div *ngSwitchCase=\"'single-day'\"\n class=\"layout-row elder-flex-control\">\n\n <!-- [name]=\"name\" -->\n <elder-local-date-input class=\"flex\" center\n [value]=\"startLocalDate$ | async\"\n (valueUpdated)=\"onSingleDayDateChanged($event)\"\n [required]=\"required\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [placeholder]=\"(placeholder || '')\"\n ></elder-local-date-input>\n </div>\n\n</ng-container>\n\n\n\n", styles: [".elder-flex-interval-control{flex:1 1 auto;overflow:hidden}\n"] }]
160
160
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.NgControl, decorators: [{
161
161
  type: Optional
162
162
  }, {
@@ -170,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
170
170
  }], isoValue: [{
171
171
  type: Input
172
172
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItaW50ZXJ2YWwtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90aW1lL2VsZGVyLWludGVydmFsLWlucHV0L2VsZGVyLWludGVydmFsLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZS9lbGRlci1pbnRlcnZhbC1pbnB1dC9lbGRlci1pbnRlcnZhbC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3ZELE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQVUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFJeEcsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7OztBQXVDeEQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHlCQUFtQztJQXVCbEY7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Q2QsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUM1RCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN4RCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7d0hBdE9VLDJCQUEyQjs0R0FBM0IsMkJBQTJCLDRKQUozQjtRQUNULEVBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBQztLQUN6RSxpRENoREgsMHNJQXdIQTsyRkR0RWEsMkJBQTJCO2tCQVR2QyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNULEVBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsNkJBQTZCLEVBQUM7cUJBQ3pFOzswQkFvQ0UsUUFBUTs7MEJBQUksSUFBSTs0Q0FyQlosSUFBSTtzQkFEVixLQUFLO2dCQXlESyxJQUFJO3NCQURkLEtBQUs7Z0JBV0ssY0FBYztzQkFEeEIsTUFBTTtnQkFRSSxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgTmdab25lLCBPcHRpb25hbCwgT3V0cHV0LCBTZWxmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtJbnRlcnZhbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3RpbWUvaW50ZXJ2YWwnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtJbnN0YW50LCBMb2NhbERhdGUsIExvY2FsVGltZSwgWm9uZUlkfSBmcm9tICdAanMtam9kYS9jb3JlJztcbmltcG9ydCB7RWxkZXJGb3JtRmllbGRDb250cm9sQmFzZX0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Zvcm1zL2VsZGVyLWZvcm0tZmllbGQtY29udHJvbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0ZvY3VzTW9uaXRvcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hdEZvcm1GaWVsZENvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtUaW1lVXRpbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3RpbWUvdGltZS11dGlsJztcblxuZXhwb3J0IHR5cGUgSW50ZXJ2YWxJbnB1dE1vZGUgPVxuXG4vKipcbiAqIFN1cHBvcnRzIHRoZSBzZWxlY3Rpb24gb2YgYSBzaW5nbGUgKGZ1bGwpIGRheTpcbiAqIDEyLjEyLjIwMjBcbiAqL1xuICAnc2luZ2xlLWRheScgfFxuXG4gIC8qKlxuICAgKiBTdXBwb3J0cyBhIHRpbWUgaW50ZXJ2YWwgaW4gYSBkYXk6XG4gICAqIDEyLjEyLjIwMjAgMTM6MDAgLSAxODowMFxuICAgKi9cbiAgJ2RheS10aW1lLXJhbmdlJyB8XG5cbiAgLyoqXG4gICAqIFN1cHBvcnRzIGEgZGF0ZSBpbnRlcnZhbCB3aXRob3V0IHRpbWVcbiAgICogMTIuMTIuMjAyMCAtIDIyLjA2LjIwMjFcbiAgICovXG4gICdkYXRlLXJhbmdlJyB8XG5cbiAgLyoqXG4gICAqIFN1cHBvcnRzIGEgZGF0ZS10aW1lIHRvIGRhdGUtdGltZSBpbnRlcnZhbFxuICAgKiAxMi4xMi4yMDIwIDg6MDAgLSAyMi4wNi4yMDIxIDE3OjAwXG4gICAqIFRoaXMgaXMgdGhlIGRlZmF1bHQgYXMgaXQgc3VwcG9ydHMgdGhlIG1vc3QgZGV0YWlsZWQgaW5wdXQuXG4gICAqL1xuICAnZGF0ZS10aW1lLXJhbmdlJ1xuICA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWludGVydmFsLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLWludGVydmFsLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItaW50ZXJ2YWwtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRWxkZXJJbnRlcnZhbElucHV0Q29tcG9uZW50fSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckludGVydmFsSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBFbGRlckZvcm1GaWVsZENvbnRyb2xCYXNlPEludGVydmFsPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgX21vZGU6IEludGVydmFsSW5wdXRNb2RlID0gJ2RhdGUtdGltZS1yYW5nZSc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHpvbmUgPSBab25lSWQuc3lzdGVtRGVmYXVsdCgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbmRUaW1lJDogT2JzZXJ2YWJsZTxMb2NhbFRpbWU+O1xuXG4gIHB1YmxpYyByZWFkb25seSBzdGFydExvY2FsRGF0ZSQ6IE9ic2VydmFibGU8TG9jYWxEYXRlPjtcbiAgcHVibGljIHJlYWRvbmx5IGVuZExvY2FsRGF0ZSQ6IE9ic2VydmFibGU8TG9jYWxEYXRlPjtcblxuICBwdWJsaWMgcmVhZG9ubHkgc3RhcnREYXRlJDogT2JzZXJ2YWJsZTxEYXRlPjtcbiAgcHVibGljIHJlYWRvbmx5IGVuZERhdGUkOiBPYnNlcnZhYmxlPERhdGU+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGhvc3RSZWY6IEVsZW1lbnRSZWYsXG4gICAgem9uZTogTmdab25lLFxuICAgIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgaG9zdFJlZixcbiAgICAgICdpbnRlcnZhbC1pbnB1dCcsIC8vID0+IG1hdC1tZGMtZm9ybS1maWVsZC10eXBlLWludGVydmFsLWlucHV0XG4gICAgICBmb2N1c01vbml0b3IsXG4gICAgICB0cmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgbmdDb250cm9sXG4gICAgKTtcblxuICAgIHRoaXMuY29udHJvbFR5cGUgPSB0aGlzLl9tb2RlO1xuXG4gICAgdGhpcy5lbmRUaW1lJCA9IHRoaXMudmFsdWUkLnBpcGUoXG4gICAgICBtYXAoaW50ZXJ2YWwgPT4gaW50ZXJ2YWw/LmVuZCA/IExvY2FsVGltZS5mcm9tKGludGVydmFsLmVuZC5hdFpvbmUodGhpcy56b25lKSkgOiBudWxsKVxuICAgICk7XG5cbiAgICB0aGlzLnN0YXJ0TG9jYWxEYXRlJCA9IHRoaXMudmFsdWUkLnBpcGUoXG4gICAgICBtYXAoaW50ZXJ2YWwgPT4gaW50ZXJ2YWw/LnN0YXJ0ID8gTG9jYWxEYXRlLmZyb20oaW50ZXJ2YWwuc3RhcnQuYXRab25lKHRoaXMuem9uZSkpIDogbnVsbClcbiAgICApO1xuXG4gICAgdGhpcy5lbmRMb2NhbERhdGUkID0gdGhpcy52YWx1ZSQucGlwZShcbiAgICAgIG1hcChpbnRlcnZhbCA9PiBpbnRlcnZhbD8uZW5kID8gTG9jYWxEYXRlLmZyb20oaW50ZXJ2YWwuZW5kLmF0Wm9uZSh0aGlzLnpvbmUpKSA6IG51bGwpXG4gICAgKTtcblxuICAgIHRoaXMuc3RhcnREYXRlJCA9IHRoaXMubWFwSWdub3JlRXJyb3JPYnNlcnZhYmxlKHRoaXMuc3RhcnRMb2NhbERhdGUkLCAoZDogTG9jYWxEYXRlKSA9PiBUaW1lVXRpbC5sb2NhbERhdGVUb0RhdGUoZCkpO1xuICAgIHRoaXMuZW5kRGF0ZSQgPSB0aGlzLm1hcElnbm9yZUVycm9yT2JzZXJ2YWJsZSh0aGlzLmVuZExvY2FsRGF0ZSQsIChkOiBMb2NhbERhdGUpID0+IFRpbWVVdGlsLmxvY2FsRGF0ZVRvRGF0ZShkKSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1vZGUobW9kZTogSW50ZXJ2YWxJbnB1dE1vZGUpIHtcbiAgICB0aGlzLl9tb2RlID0gbW9kZTtcbiAgICB0aGlzLmNvbnRyb2xUeXBlID0gbW9kZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kZSgpOiBJbnRlcnZhbElucHV0TW9kZSB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGU7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBpc29WYWx1ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUNoYW5nZS5waXBlKFxuICAgICAgbWFwKGludGVydmFsID0+IGludGVydmFsID8gaW50ZXJ2YWwudG9JbnN0YW50U3RyaW5nKCkgOiBudWxsKVxuICAgICk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGlzb1ZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8gSW50ZXJ2YWwucGFyc2UodmFsdWUpIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgcHVibGljIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLmxvZ2dlci53YXJuKCdmb2N1cygpIG5vdCB5ZXQgc3VwcG9ydGVkIScpXG4gICAgLy8gdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgYmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmxvZ2dlci53YXJuKCdibHVyKCkgbm90IHlldCBzdXBwb3J0ZWQhJylcbiAgICAvLyB0aGlzLmlucHV0UmVmPy5uYXRpdmVFbGVtZW50Py5ibHVyKCk7XG4gIH1cblxuICBwdWJsaWMgb25EYXlUaW1lU3RhcnRDaGFuZ2VkKHN0YXJ0OiBJbnN0YW50KSB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgIEludGVydmFsLm9mKFxuICAgICAgICBzdGFydCxcbiAgICAgICAgdGhpcy5pbnN0YW50QXRFbmRPZkRheShzdGFydClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG9uRGF5VGltZUVuZFRpbWVDaGFuZ2VkKGVuZFRpbWU6IExvY2FsVGltZSk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy52YWx1ZS5zdGFydDtcbiAgICBjb25zdCBlbmQgPSB0aGlzLmluc3RhbnRXaXRoVGltZShzdGFydCwgZW5kVGltZSk7XG5cbiAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgSW50ZXJ2YWwub2YoXG4gICAgICAgIHN0YXJ0LFxuICAgICAgICAhZW5kLmlzQWZ0ZXIoc3RhcnQpID8gdGhpcy5pbnN0YW50QXRFbmRPZkRheShzdGFydCkgOiBlbmRcbiAgICAgIClcbiAgICApO1xuXG4gIH1cblxuICBwdWJsaWMgb25TdGFydENoYW5nZWQoc3RhcnQ6IEluc3RhbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgSW50ZXJ2YWwub2YoXG4gICAgICAgIHN0YXJ0LFxuICAgICAgICB0aGlzLnZhbHVlLmVuZFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25FbmRDaGFuZ2VkKGVuZDogSW5zdGFudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICBJbnRlcnZhbC5vZihcbiAgICAgICAgdGhpcy52YWx1ZS5zdGFydCxcbiAgICAgICAgZW5kXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvblN0YXJ0RGF0ZUNoYW5nZWQodmFsdWU6IERhdGUgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgZGF0ZSA9IHRoaXMudG9Mb2NhbERhdGUodmFsdWUpO1xuICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICBJbnRlcnZhbC5vZihcbiAgICAgICAgdGhpcy5sb2NhbERhdGVUb0luc3RhbnQoZGF0ZSksXG4gICAgICAgIHRoaXMudmFsdWU/LmVuZFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25FbmREYXRlQ2hhbmdlZCh2YWx1ZTogRGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRlID0gdGhpcy50b0xvY2FsRGF0ZSh2YWx1ZSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgIEludGVydmFsLm9mKFxuICAgICAgICB0aGlzLnZhbHVlPy5zdGFydCxcbiAgICAgICAgdGhpcy5sb2NhbERhdGVUb0luc3RhbnQoZGF0ZSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG9uU2luZ2xlRGF5RGF0ZUNoYW5nZWQoZGF0ZTogTG9jYWxEYXRlKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgIEludGVydmFsLm9mRGF5KGRhdGUsIHRoaXMuem9uZSlcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBpbnN0YW50QXRTdGFydE9mRGF5Tm93KCk6IEluc3RhbnQge1xuICAgIHJldHVybiBMb2NhbERhdGUubm93KCkuYXRTdGFydE9mRGF5KCkuYXRab25lKHRoaXMuem9uZSkudG9JbnN0YW50KCk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbnRBdEVuZE9mRGF5KGluc3RhbnQ6IEluc3RhbnQpOiBJbnN0YW50IHtcbiAgICByZXR1cm4gTG9jYWxEYXRlLm9mSW5zdGFudChpbnN0YW50KS5hdFN0YXJ0T2ZEYXkoKS5wbHVzRGF5cygxKS5hdFpvbmUodGhpcy56b25lKS50b0luc3RhbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9jYWxEYXRlVG9JbnN0YW50KGRhdGU6IExvY2FsRGF0ZSk6IEluc3RhbnQgfCB1bmRlZmluZWQge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICByZXR1cm4gZGF0ZS5hdFN0YXJ0T2ZEYXkoKS5hdFpvbmUodGhpcy56b25lKS50b0luc3RhbnQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgdmFsdWVzRXF1YWxzKGE6IEludGVydmFsLCBiOiBJbnRlcnZhbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoYSAmJiBiKVxuICAgICAgPyBhLmVxdWFscyhiKVxuICAgICAgOiBhID09PSBiO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnN0YW50V2l0aFRpbWUoaW5zdGFudDogSW5zdGFudCwgdGltZTogTG9jYWxUaW1lKTogSW5zdGFudCB7XG4gICAgcmV0dXJuIGluc3RhbnRcbiAgICAgIC5hdFpvbmUodGhpcy56b25lKVxuICAgICAgLndpdGhIb3VyKHRpbWUuaG91cigpKVxuICAgICAgLndpdGhNaW51dGUodGltZS5taW51dGUoKSlcbiAgICAgIC50b0luc3RhbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9Mb2NhbERhdGUodmFsdWU6IERhdGUpOiBMb2NhbERhdGUgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHZhbHVlID8gVGltZVV0aWwuZGF0ZVRvTG9jYWxEYXRlKHZhbHVlKSA6IG51bGw7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKCdGYWlsZWQgdG8gYXBwbHkgdmFsdWUgdG8gZGF0ZVZhbHVlOiAnICsgdmFsdWUsIGVycik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1hcElnbm9yZUVycm9yT2JzZXJ2YWJsZTxUPihkYXRlOiBPYnNlcnZhYmxlPExvY2FsRGF0ZT4sIGNvbnZlcnNpb25GbjogKGQ6IExvY2FsRGF0ZSkgPT4gVCk6IE9ic2VydmFibGU8VCB8IG51bGw+IHtcbiAgICByZXR1cm4gZGF0ZS5waXBlKFxuICAgICAgbWFwKGxvY2FsRGF0ZSA9PiBsb2NhbERhdGUgPyBjb252ZXJzaW9uRm4obG9jYWxEYXRlKSA6IG51bGwpLFxuICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignRmFpbGVkIHRvIGNvbnZlcnQgbG9jYWwgZGF0ZSEnLCBlcnIpO1xuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIm1vZGVcIj5cblxuICA8IS0tIERBVEVfVElNRV9SQU5HRSAtLT5cbiAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUtdGltZS1yYW5nZSdcIlxuICAgICAgIGNsYXNzPVwibGF5b3V0LXJvd1wiPlxuICAgIDxlbGRlci1kYXRlLXRpbWUtaW5wdXQgY2xhc3M9XCJmbGV4XCIgY2VudGVyXG4gICAgICBbdmFsdWVdPVwiKHZhbHVlJCB8IGFzeW5jKT8uc3RhcnRcIlxuICAgICAgKHZhbHVlVXBkYXRlZCk9XCJvblN0YXJ0Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXIgfHwgJycpICsgJyAnICsgKCdpbnRlcnZhbC5mcm9tJyB8IHRyYW5zbGF0ZSlcIlxuICAgID48L2VsZGVyLWRhdGUtdGltZS1pbnB1dD5cbiAgICA8c3BhbiBjbGFzcz1cIm1hdC1kYXRlLXJhbmdlLWlucHV0LXNlcGFyYXRvciBmbGV4LW5vbmVcIj7igJM8L3NwYW4+XG4gICAgPGVsZGVyLWRhdGUtdGltZS1pbnB1dCBjbGFzcz1cImZsZXhcIiBjZW50ZXJcbiAgICAgIFt2YWx1ZV09XCIodmFsdWUkIHwgYXN5bmMpPy5lbmRcIlxuICAgICAgKHZhbHVlVXBkYXRlZCk9XCJvbkVuZENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiKHBsYWNlaG9sZGVyIHx8ICcnKSArICcgJyArICgnaW50ZXJ2YWwudG8nIHwgdHJhbnNsYXRlKVwiXG4gICAgPjwvZWxkZXItZGF0ZS10aW1lLWlucHV0PlxuICA8L2Rpdj5cblxuICA8IS0tIERBWV9USU1FX1JBTkdFIC0tPlxuICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInZGF5LXRpbWUtcmFuZ2UnXCJcbiAgICAgICBjbGFzcz1cImxheW91dC1yb3cgZ2FwLXhzIGVsZGVyLWZsZXgtaW50ZXJ2YWwtY29udHJvbFwiPlxuXG4gICAgPCEtLSAgW25hbWVdPVwibmFtZSArICctZGF5LXN0YXJ0J1wiIC0tPlxuICAgIDxlbGRlci1kYXRlLXRpbWUtaW5wdXRcbiAgICAgIFt2YWx1ZV09XCIodmFsdWUkIHwgYXN5bmMpPy5zdGFydFwiXG4gICAgICAodmFsdWVVcGRhdGVkKT1cIm9uRGF5VGltZVN0YXJ0Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXIgfHwgJycpICsgJyAnICsgKCdpbnRlcnZhbC5mcm9tJyB8IHRyYW5zbGF0ZSlcIlxuICAgID48L2VsZGVyLWRhdGUtdGltZS1pbnB1dD5cblxuICAgIDwhLS0gW25hbWVdPVwibmFtZSArICctZGF5LWVuZCdcIiAtLT5cbiAgICA8ZWxkZXItbG9jYWwtdGltZS1pbnB1dFxuICAgICAgW3ZhbHVlXT1cImVuZFRpbWUkIHwgYXN5bmNcIlxuICAgICAgKHZhbHVlVXBkYXRlZCk9XCJvbkRheVRpbWVFbmRUaW1lQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXIgfHwgJycpICsgJyAnICsgKCdpbnRlcnZhbC50bycgfCB0cmFuc2xhdGUpXCJcbiAgICA+PC9lbGRlci1sb2NhbC10aW1lLWlucHV0PlxuICA8L2Rpdj5cblxuICA8IS0tIERBVEVfUkFOR0UgLS0+XG4gIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidkYXRlLXJhbmdlJ1wiXG4gICAgICAgY2xhc3M9XCJsYXlvdXQtcm93IGdhcC14cyBlbGRlci1mbGV4LWludGVydmFsLWNvbnRyb2xcIj5cblxuICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dFxuICAgICAgW3JhbmdlUGlja2VyXT1cInBpY2tlclwiXG4gICAgICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZFwiXG4gICAgPlxuICAgICAgPGlucHV0IG1hdFN0YXJ0RGF0ZVxuICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiZGQubW0ueXl5XCJcbiAgICAgICAgICAgICBbbmdNb2RlbF09XCJzdGFydERhdGUkIHwgYXN5bmNcIiBuYW1lPVwiZGF0ZS1yYW5nZS5zdGFydFwiXG4gICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSwgdXBkYXRlT246ICdibHVyJ31cIlxuICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uU3RhcnREYXRlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhIWRpc2FibGVkXCJcbiAgICAgID5cbiAgICAgIDxpbnB1dCBtYXRFbmREYXRlXG4gICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJkZC5tbS55eXlcIlxuICAgICAgICAgICAgIFtuZ01vZGVsXT1cImVuZERhdGUkIHwgYXN5bmNcIiBuYW1lPVwiZGF0ZS1yYW5nZS5lbmRcIlxuICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUsIHVwZGF0ZU9uOiAnYmx1cid9XCJcbiAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkVuZERhdGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhZGlzYWJsZWRcIlxuICAgICAgPlxuICAgIDwvbWF0LWRhdGUtcmFuZ2UtaW5wdXQ+XG4gICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBjbGFzcz1cImVsZGVyLWNvbnRyb2wtaWNvbi1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9ja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JdPVwicGlja2VyXCI+XG4gICAgICA8bWF0LWljb24gbWF0RGF0ZXBpY2tlclRvZ2dsZUljb24+Y2FsZW5kYXJfbW9udGg8L21hdC1pY29uPlxuICAgIDwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgIDxtYXQtZGF0ZS1yYW5nZS1waWNrZXIgI3BpY2tlcj48L21hdC1kYXRlLXJhbmdlLXBpY2tlcj5cblxuICAgIDwhLS1cbiAgICA8ZWxkZXItbG9jYWwtZGF0ZS1pbnB1dFxuICAgICAgW3ZhbHVlXT1cInN0YXJ0RGF0ZSQgfCBhc3luY1wiXG4gICAgICAodmFsdWVVcGRhdGVkKT1cIm9uU3RhcnREYXRlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXIgfHwgJycpICsgJyAnICsgKCdpbnRlcnZhbC5mcm9tJyB8IHRyYW5zbGF0ZSlcIlxuICAgID48L2VsZGVyLWxvY2FsLWRhdGUtaW5wdXQ+XG4gICAgPGVsZGVyLWxvY2FsLWRhdGUtaW5wdXRcbiAgICAgIFt2YWx1ZV09XCJlbmREYXRlJCB8IGFzeW5jXCJcbiAgICAgICh2YWx1ZVVwZGF0ZWQpPVwib25FbmREYXRlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXIgfHwgJycpICsgJyAnICsgKCdpbnRlcnZhbC50bycgfCB0cmFuc2xhdGUpXCJcbiAgICA+PC9lbGRlci1sb2NhbC1kYXRlLWlucHV0PlxuICAgIC0tPlxuICA8L2Rpdj5cblxuICA8IS0tIFNJTkdMRV9EQVkgLS0+XG4gIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidzaW5nbGUtZGF5J1wiXG4gICAgICAgY2xhc3M9XCJsYXlvdXQtcm93IGVsZGVyLWZsZXgtY29udHJvbFwiPlxuXG4gICAgPCEtLSBbbmFtZV09XCJuYW1lXCIgLS0+XG4gICAgPGVsZGVyLWxvY2FsLWRhdGUtaW5wdXQgY2xhc3M9XCJmbGV4XCIgY2VudGVyXG4gICAgICBbdmFsdWVdPVwic3RhcnRMb2NhbERhdGUkIHwgYXN5bmNcIlxuICAgICAgKHZhbHVlVXBkYXRlZCk9XCJvblNpbmdsZURheURhdGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIihwbGFjZWhvbGRlciB8fCAnJylcIlxuICAgID48L2VsZGVyLWxvY2FsLWRhdGUtaW5wdXQ+XG4gIDwvZGl2PlxuXG48L25nLWNvbnRhaW5lcj5cblxuXG5cbiJdfQ==
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItaW50ZXJ2YWwtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90aW1lL2VsZGVyLWludGVydmFsLWlucHV0L2VsZGVyLWludGVydmFsLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGltZS9lbGRlci1pbnRlcnZhbC1pbnB1dC9lbGRlci1pbnRlcnZhbC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3ZELE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQVUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFJeEcsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7Ozs7OztBQXVDeEQsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHlCQUFtQztJQXVCbEY7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ0UsT0FBbUIsRUFDbkIsSUFBWSxFQUNaLFlBQTBCLEVBQzFCLGdCQUFrQyxFQUNQLFNBQW9CO1FBRS9DLEtBQUssQ0FDSCxPQUFPLEVBQ1AsZ0JBQWdCLEVBQUUsNENBQTRDO1FBQzlELFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsU0FBUyxDQUNWLENBQUM7UUFSeUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQWhDakQ7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakUsVUFBSyxHQUFzQixpQkFBaUIsQ0FBQztRQUc5QyxTQUFJLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBK0JuQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDOUIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQ3ZGLENBQUM7UUFFRixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNyQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FDM0YsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ25DLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUN2RixDQUFDO1FBRUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQVksRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JILElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFZLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQ1csSUFBSSxDQUFDLElBQXVCO1FBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQ1csY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQzlELENBQUM7SUFDSixDQUFDO0lBRUQsSUFDVyxRQUFRLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBR3JFLEtBQUssQ0FBQyxPQUFzQjtRQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO1FBQzlDLGdEQUFnRDtJQUNsRCxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUE7UUFDN0Msd0NBQXdDO0lBQzFDLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxLQUFjO1FBQ3pDLElBQUksQ0FBQyxXQUFXLENBQ2QsUUFBUSxDQUFDLEVBQUUsQ0FDVCxLQUFLLEVBQ0wsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUM5QixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sdUJBQXVCLENBQUMsT0FBa0I7UUFDL0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDL0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDLFdBQVcsQ0FDZCxRQUFRLENBQUMsRUFBRSxDQUNULEtBQUssRUFDTCxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUMxRCxDQUNGLENBQUM7SUFFSixDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FDZCxRQUFRLENBQUMsRUFBRSxDQUNULEtBQUssRUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDZixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sWUFBWSxDQUFDLEdBQVk7UUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FDZCxRQUFRLENBQUMsRUFBRSxDQUNULElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUNoQixHQUFHLENBQ0osQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQWtCO1FBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FDZCxRQUFRLENBQUMsRUFBRSxDQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFDN0IsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQ2hCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFrQjtRQUN4QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQ2QsUUFBUSxDQUFDLEVBQUUsQ0FDVCxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUM5QixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sc0JBQXNCLENBQUMsSUFBZTtRQUMzQyxJQUFJLENBQUMsV0FBVyxDQUNkLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsc0JBQXNCO1FBQzVCLE9BQU8sU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEUsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE9BQWdCO1FBQ3hDLE9BQU8sU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMvRixDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBZTtRQUN4QyxJQUFJLElBQUksRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDMUQ7YUFBTTtZQUNMLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUVTLFlBQVksQ0FBQyxDQUFXLEVBQUUsQ0FBVztRQUM3QyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVPLGVBQWUsQ0FBQyxPQUFnQixFQUFFLElBQWU7UUFDdkQsT0FBTyxPQUFPO2FBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDakIsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNyQixVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3pCLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTyxXQUFXLENBQUMsS0FBVztRQUM3QixJQUFJO1lBQ0YsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUN2RDtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3RFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRU8sd0JBQXdCLENBQUksSUFBMkIsRUFBRSxZQUFpQztRQUNoRyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQ2QsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUM1RCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN4RCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7d0hBdE9VLDJCQUEyQjs0R0FBM0IsMkJBQTJCLDRKQUozQjtRQUNULEVBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBQztLQUN6RSxpRENoREgsb2xIQXNHQTsyRkRwRGEsMkJBQTJCO2tCQVR2QyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNULEVBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsNkJBQTZCLEVBQUM7cUJBQ3pFOzswQkFvQ0UsUUFBUTs7MEJBQUksSUFBSTs0Q0FyQlosSUFBSTtzQkFEVixLQUFLO2dCQXlESyxJQUFJO3NCQURkLEtBQUs7Z0JBV0ssY0FBYztzQkFEeEIsTUFBTTtnQkFRSSxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgTmdab25lLCBPcHRpb25hbCwgT3V0cHV0LCBTZWxmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtJbnRlcnZhbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3RpbWUvaW50ZXJ2YWwnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtJbnN0YW50LCBMb2NhbERhdGUsIExvY2FsVGltZSwgWm9uZUlkfSBmcm9tICdAanMtam9kYS9jb3JlJztcbmltcG9ydCB7RWxkZXJGb3JtRmllbGRDb250cm9sQmFzZX0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Zvcm1zL2VsZGVyLWZvcm0tZmllbGQtY29udHJvbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0ZvY3VzTW9uaXRvcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hdEZvcm1GaWVsZENvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtUaW1lVXRpbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3RpbWUvdGltZS11dGlsJztcblxuZXhwb3J0IHR5cGUgSW50ZXJ2YWxJbnB1dE1vZGUgPVxuXG4vKipcbiAqIFN1cHBvcnRzIHRoZSBzZWxlY3Rpb24gb2YgYSBzaW5nbGUgKGZ1bGwpIGRheTpcbiAqIDEyLjEyLjIwMjBcbiAqL1xuICAnc2luZ2xlLWRheScgfFxuXG4gIC8qKlxuICAgKiBTdXBwb3J0cyBhIHRpbWUgaW50ZXJ2YWwgaW4gYSBkYXk6XG4gICAqIDEyLjEyLjIwMjAgMTM6MDAgLSAxODowMFxuICAgKi9cbiAgJ2RheS10aW1lLXJhbmdlJyB8XG5cbiAgLyoqXG4gICAqIFN1cHBvcnRzIGEgZGF0ZSBpbnRlcnZhbCB3aXRob3V0IHRpbWVcbiAgICogMTIuMTIuMjAyMCAtIDIyLjA2LjIwMjFcbiAgICovXG4gICdkYXRlLXJhbmdlJyB8XG5cbiAgLyoqXG4gICAqIFN1cHBvcnRzIGEgZGF0ZS10aW1lIHRvIGRhdGUtdGltZSBpbnRlcnZhbFxuICAgKiAxMi4xMi4yMDIwIDg6MDAgLSAyMi4wNi4yMDIxIDE3OjAwXG4gICAqIFRoaXMgaXMgdGhlIGRlZmF1bHQgYXMgaXQgc3VwcG9ydHMgdGhlIG1vc3QgZGV0YWlsZWQgaW5wdXQuXG4gICAqL1xuICAnZGF0ZS10aW1lLXJhbmdlJ1xuICA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWludGVydmFsLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLWludGVydmFsLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItaW50ZXJ2YWwtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRWxkZXJJbnRlcnZhbElucHV0Q29tcG9uZW50fSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckludGVydmFsSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBFbGRlckZvcm1GaWVsZENvbnRyb2xCYXNlPEludGVydmFsPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgX21vZGU6IEludGVydmFsSW5wdXRNb2RlID0gJ2RhdGUtdGltZS1yYW5nZSc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHpvbmUgPSBab25lSWQuc3lzdGVtRGVmYXVsdCgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbmRUaW1lJDogT2JzZXJ2YWJsZTxMb2NhbFRpbWU+O1xuXG4gIHB1YmxpYyByZWFkb25seSBzdGFydExvY2FsRGF0ZSQ6IE9ic2VydmFibGU8TG9jYWxEYXRlPjtcbiAgcHVibGljIHJlYWRvbmx5IGVuZExvY2FsRGF0ZSQ6IE9ic2VydmFibGU8TG9jYWxEYXRlPjtcblxuICBwdWJsaWMgcmVhZG9ubHkgc3RhcnREYXRlJDogT2JzZXJ2YWJsZTxEYXRlPjtcbiAgcHVibGljIHJlYWRvbmx5IGVuZERhdGUkOiBPYnNlcnZhYmxlPERhdGU+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGhvc3RSZWY6IEVsZW1lbnRSZWYsXG4gICAgem9uZTogTmdab25lLFxuICAgIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgaG9zdFJlZixcbiAgICAgICdpbnRlcnZhbC1pbnB1dCcsIC8vID0+IG1hdC1tZGMtZm9ybS1maWVsZC10eXBlLWludGVydmFsLWlucHV0XG4gICAgICBmb2N1c01vbml0b3IsXG4gICAgICB0cmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgbmdDb250cm9sXG4gICAgKTtcblxuICAgIHRoaXMuY29udHJvbFR5cGUgPSB0aGlzLl9tb2RlO1xuXG4gICAgdGhpcy5lbmRUaW1lJCA9IHRoaXMudmFsdWUkLnBpcGUoXG4gICAgICBtYXAoaW50ZXJ2YWwgPT4gaW50ZXJ2YWw/LmVuZCA/IExvY2FsVGltZS5mcm9tKGludGVydmFsLmVuZC5hdFpvbmUodGhpcy56b25lKSkgOiBudWxsKVxuICAgICk7XG5cbiAgICB0aGlzLnN0YXJ0TG9jYWxEYXRlJCA9IHRoaXMudmFsdWUkLnBpcGUoXG4gICAgICBtYXAoaW50ZXJ2YWwgPT4gaW50ZXJ2YWw/LnN0YXJ0ID8gTG9jYWxEYXRlLmZyb20oaW50ZXJ2YWwuc3RhcnQuYXRab25lKHRoaXMuem9uZSkpIDogbnVsbClcbiAgICApO1xuXG4gICAgdGhpcy5lbmRMb2NhbERhdGUkID0gdGhpcy52YWx1ZSQucGlwZShcbiAgICAgIG1hcChpbnRlcnZhbCA9PiBpbnRlcnZhbD8uZW5kID8gTG9jYWxEYXRlLmZyb20oaW50ZXJ2YWwuZW5kLmF0Wm9uZSh0aGlzLnpvbmUpKSA6IG51bGwpXG4gICAgKTtcblxuICAgIHRoaXMuc3RhcnREYXRlJCA9IHRoaXMubWFwSWdub3JlRXJyb3JPYnNlcnZhYmxlKHRoaXMuc3RhcnRMb2NhbERhdGUkLCAoZDogTG9jYWxEYXRlKSA9PiBUaW1lVXRpbC5sb2NhbERhdGVUb0RhdGUoZCkpO1xuICAgIHRoaXMuZW5kRGF0ZSQgPSB0aGlzLm1hcElnbm9yZUVycm9yT2JzZXJ2YWJsZSh0aGlzLmVuZExvY2FsRGF0ZSQsIChkOiBMb2NhbERhdGUpID0+IFRpbWVVdGlsLmxvY2FsRGF0ZVRvRGF0ZShkKSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1vZGUobW9kZTogSW50ZXJ2YWxJbnB1dE1vZGUpIHtcbiAgICB0aGlzLl9tb2RlID0gbW9kZTtcbiAgICB0aGlzLmNvbnRyb2xUeXBlID0gbW9kZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kZSgpOiBJbnRlcnZhbElucHV0TW9kZSB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGU7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBpc29WYWx1ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUNoYW5nZS5waXBlKFxuICAgICAgbWFwKGludGVydmFsID0+IGludGVydmFsID8gaW50ZXJ2YWwudG9JbnN0YW50U3RyaW5nKCkgOiBudWxsKVxuICAgICk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGlzb1ZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8gSW50ZXJ2YWwucGFyc2UodmFsdWUpIDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgcHVibGljIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLmxvZ2dlci53YXJuKCdmb2N1cygpIG5vdCB5ZXQgc3VwcG9ydGVkIScpXG4gICAgLy8gdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgYmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmxvZ2dlci53YXJuKCdibHVyKCkgbm90IHlldCBzdXBwb3J0ZWQhJylcbiAgICAvLyB0aGlzLmlucHV0UmVmPy5uYXRpdmVFbGVtZW50Py5ibHVyKCk7XG4gIH1cblxuICBwdWJsaWMgb25EYXlUaW1lU3RhcnRDaGFuZ2VkKHN0YXJ0OiBJbnN0YW50KSB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgIEludGVydmFsLm9mKFxuICAgICAgICBzdGFydCxcbiAgICAgICAgdGhpcy5pbnN0YW50QXRFbmRPZkRheShzdGFydClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG9uRGF5VGltZUVuZFRpbWVDaGFuZ2VkKGVuZFRpbWU6IExvY2FsVGltZSk6IHZvaWQge1xuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy52YWx1ZS5zdGFydDtcbiAgICBjb25zdCBlbmQgPSB0aGlzLmluc3RhbnRXaXRoVGltZShzdGFydCwgZW5kVGltZSk7XG5cbiAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgSW50ZXJ2YWwub2YoXG4gICAgICAgIHN0YXJ0LFxuICAgICAgICAhZW5kLmlzQWZ0ZXIoc3RhcnQpID8gdGhpcy5pbnN0YW50QXRFbmRPZkRheShzdGFydCkgOiBlbmRcbiAgICAgIClcbiAgICApO1xuXG4gIH1cblxuICBwdWJsaWMgb25TdGFydENoYW5nZWQoc3RhcnQ6IEluc3RhbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgSW50ZXJ2YWwub2YoXG4gICAgICAgIHN0YXJ0LFxuICAgICAgICB0aGlzLnZhbHVlLmVuZFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25FbmRDaGFuZ2VkKGVuZDogSW5zdGFudCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICBJbnRlcnZhbC5vZihcbiAgICAgICAgdGhpcy52YWx1ZS5zdGFydCxcbiAgICAgICAgZW5kXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvblN0YXJ0RGF0ZUNoYW5nZWQodmFsdWU6IERhdGUgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgZGF0ZSA9IHRoaXMudG9Mb2NhbERhdGUodmFsdWUpO1xuICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICBJbnRlcnZhbC5vZihcbiAgICAgICAgdGhpcy5sb2NhbERhdGVUb0luc3RhbnQoZGF0ZSksXG4gICAgICAgIHRoaXMudmFsdWU/LmVuZFxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25FbmREYXRlQ2hhbmdlZCh2YWx1ZTogRGF0ZSB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRlID0gdGhpcy50b0xvY2FsRGF0ZSh2YWx1ZSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgIEludGVydmFsLm9mKFxuICAgICAgICB0aGlzLnZhbHVlPy5zdGFydCxcbiAgICAgICAgdGhpcy5sb2NhbERhdGVUb0luc3RhbnQoZGF0ZSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG9uU2luZ2xlRGF5RGF0ZUNoYW5nZWQoZGF0ZTogTG9jYWxEYXRlKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShcbiAgICAgIEludGVydmFsLm9mRGF5KGRhdGUsIHRoaXMuem9uZSlcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBpbnN0YW50QXRTdGFydE9mRGF5Tm93KCk6IEluc3RhbnQge1xuICAgIHJldHVybiBMb2NhbERhdGUubm93KCkuYXRTdGFydE9mRGF5KCkuYXRab25lKHRoaXMuem9uZSkudG9JbnN0YW50KCk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbnRBdEVuZE9mRGF5KGluc3RhbnQ6IEluc3RhbnQpOiBJbnN0YW50IHtcbiAgICByZXR1cm4gTG9jYWxEYXRlLm9mSW5zdGFudChpbnN0YW50KS5hdFN0YXJ0T2ZEYXkoKS5wbHVzRGF5cygxKS5hdFpvbmUodGhpcy56b25lKS50b0luc3RhbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgbG9jYWxEYXRlVG9JbnN0YW50KGRhdGU6IExvY2FsRGF0ZSk6IEluc3RhbnQgfCB1bmRlZmluZWQge1xuICAgIGlmIChkYXRlKSB7XG4gICAgICByZXR1cm4gZGF0ZS5hdFN0YXJ0T2ZEYXkoKS5hdFpvbmUodGhpcy56b25lKS50b0luc3RhbnQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgdmFsdWVzRXF1YWxzKGE6IEludGVydmFsLCBiOiBJbnRlcnZhbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoYSAmJiBiKVxuICAgICAgPyBhLmVxdWFscyhiKVxuICAgICAgOiBhID09PSBiO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnN0YW50V2l0aFRpbWUoaW5zdGFudDogSW5zdGFudCwgdGltZTogTG9jYWxUaW1lKTogSW5zdGFudCB7XG4gICAgcmV0dXJuIGluc3RhbnRcbiAgICAgIC5hdFpvbmUodGhpcy56b25lKVxuICAgICAgLndpdGhIb3VyKHRpbWUuaG91cigpKVxuICAgICAgLndpdGhNaW51dGUodGltZS5taW51dGUoKSlcbiAgICAgIC50b0luc3RhbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9Mb2NhbERhdGUodmFsdWU6IERhdGUpOiBMb2NhbERhdGUgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHZhbHVlID8gVGltZVV0aWwuZGF0ZVRvTG9jYWxEYXRlKHZhbHVlKSA6IG51bGw7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKCdGYWlsZWQgdG8gYXBwbHkgdmFsdWUgdG8gZGF0ZVZhbHVlOiAnICsgdmFsdWUsIGVycik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1hcElnbm9yZUVycm9yT2JzZXJ2YWJsZTxUPihkYXRlOiBPYnNlcnZhYmxlPExvY2FsRGF0ZT4sIGNvbnZlcnNpb25GbjogKGQ6IExvY2FsRGF0ZSkgPT4gVCk6IE9ic2VydmFibGU8VCB8IG51bGw+IHtcbiAgICByZXR1cm4gZGF0ZS5waXBlKFxuICAgICAgbWFwKGxvY2FsRGF0ZSA9PiBsb2NhbERhdGUgPyBjb252ZXJzaW9uRm4obG9jYWxEYXRlKSA6IG51bGwpLFxuICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignRmFpbGVkIHRvIGNvbnZlcnQgbG9jYWwgZGF0ZSEnLCBlcnIpO1xuICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIm1vZGVcIj5cblxuICA8IS0tIERBVEVfVElNRV9SQU5HRSAtLT5cbiAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUtdGltZS1yYW5nZSdcIlxuICAgICAgIGNsYXNzPVwibGF5b3V0LXJvd1wiPlxuICAgIDxlbGRlci1kYXRlLXRpbWUtaW5wdXQgY2xhc3M9XCJmbGV4XCIgY2VudGVyXG4gICAgICBbdmFsdWVdPVwiKHZhbHVlJCB8IGFzeW5jKT8uc3RhcnRcIlxuICAgICAgKHZhbHVlVXBkYXRlZCk9XCJvblN0YXJ0Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXIgfHwgJycpICsgJyAnICsgKCdpbnRlcnZhbC5mcm9tJyB8IHRyYW5zbGF0ZSlcIlxuICAgID48L2VsZGVyLWRhdGUtdGltZS1pbnB1dD5cbiAgICA8c3BhbiBjbGFzcz1cIm1hdC1kYXRlLXJhbmdlLWlucHV0LXNlcGFyYXRvciBmbGV4LW5vbmVcIj7igJM8L3NwYW4+XG4gICAgPGVsZGVyLWRhdGUtdGltZS1pbnB1dCBjbGFzcz1cImZsZXhcIiBjZW50ZXJcbiAgICAgIFt2YWx1ZV09XCIodmFsdWUkIHwgYXN5bmMpPy5lbmRcIlxuICAgICAgKHZhbHVlVXBkYXRlZCk9XCJvbkVuZENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiKHBsYWNlaG9sZGVyIHx8ICcnKSArICcgJyArICgnaW50ZXJ2YWwudG8nIHwgdHJhbnNsYXRlKVwiXG4gICAgPjwvZWxkZXItZGF0ZS10aW1lLWlucHV0PlxuICA8L2Rpdj5cblxuICA8IS0tIERBWV9USU1FX1JBTkdFIC0tPlxuICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInZGF5LXRpbWUtcmFuZ2UnXCJcbiAgICAgICBjbGFzcz1cImxheW91dC1yb3cgZ2FwLXhzIGVsZGVyLWZsZXgtaW50ZXJ2YWwtY29udHJvbFwiPlxuXG4gICAgPCEtLSAgW25hbWVdPVwibmFtZSArICctZGF5LXN0YXJ0J1wiIC0tPlxuICAgIDxlbGRlci1kYXRlLXRpbWUtaW5wdXRcbiAgICAgIFt2YWx1ZV09XCIodmFsdWUkIHwgYXN5bmMpPy5zdGFydFwiXG4gICAgICAodmFsdWVVcGRhdGVkKT1cIm9uRGF5VGltZVN0YXJ0Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXIgfHwgJycpICsgJyAnICsgKCdpbnRlcnZhbC5mcm9tJyB8IHRyYW5zbGF0ZSlcIlxuICAgID48L2VsZGVyLWRhdGUtdGltZS1pbnB1dD5cblxuICAgIDwhLS0gW25hbWVdPVwibmFtZSArICctZGF5LWVuZCdcIiAtLT5cbiAgICA8ZWxkZXItbG9jYWwtdGltZS1pbnB1dFxuICAgICAgW3ZhbHVlXT1cImVuZFRpbWUkIHwgYXN5bmNcIlxuICAgICAgKHZhbHVlVXBkYXRlZCk9XCJvbkRheVRpbWVFbmRUaW1lQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXIgfHwgJycpICsgJyAnICsgKCdpbnRlcnZhbC50bycgfCB0cmFuc2xhdGUpXCJcbiAgICA+PC9lbGRlci1sb2NhbC10aW1lLWlucHV0PlxuICA8L2Rpdj5cblxuICA8IS0tIERBVEVfUkFOR0UgLS0+XG4gIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidkYXRlLXJhbmdlJ1wiXG4gICAgICAgY2xhc3M9XCJsYXlvdXQtcm93IGdhcC14cyBlbGRlci1mbGV4LWludGVydmFsLWNvbnRyb2xcIj5cblxuICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dFxuICAgICAgY2xhc3M9XCJtZGMtdGV4dC1maWVsZF9faW5wdXRcIlxuICAgICAgW3JhbmdlUGlja2VyXT1cInBpY2tlclwiXG4gICAgICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZFwiXG4gICAgPlxuICAgICAgPGlucHV0IG1hdFN0YXJ0RGF0ZVxuICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiZGQubW0ueXl5eVwiXG4gICAgICAgICAgICAgW25nTW9kZWxdPVwic3RhcnREYXRlJCB8IGFzeW5jXCIgbmFtZT1cImRhdGUtcmFuZ2Uuc3RhcnRcIlxuICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUsIHVwZGF0ZU9uOiAnYmx1cid9XCJcbiAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblN0YXJ0RGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZFwiXG4gICAgICA+XG4gICAgICA8aW5wdXQgbWF0RW5kRGF0ZVxuICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiZGQubW0ueXl5eVwiXG4gICAgICAgICAgICAgW25nTW9kZWxdPVwiZW5kRGF0ZSQgfCBhc3luY1wiIG5hbWU9XCJkYXRlLXJhbmdlLmVuZFwiXG4gICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSwgdXBkYXRlT246ICdibHVyJ31cIlxuICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRW5kRGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZFwiXG4gICAgICA+XG4gICAgPC9tYXQtZGF0ZS1yYW5nZS1pbnB1dD5cbiAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIGNsYXNzPVwiZWxkZXItY29udHJvbC1pY29uLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2NrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcl09XCJwaWNrZXJcIj5cbiAgICAgIDxtYXQtaWNvbiBtYXREYXRlcGlja2VyVG9nZ2xlSWNvbj5jYWxlbmRhcl9tb250aDwvbWF0LWljb24+XG4gICAgPC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgPG1hdC1kYXRlLXJhbmdlLXBpY2tlciAjcGlja2VyPjwvbWF0LWRhdGUtcmFuZ2UtcGlja2VyPlxuICA8L2Rpdj5cblxuICA8IS0tIFNJTkdMRV9EQVkgLS0+XG4gIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidzaW5nbGUtZGF5J1wiXG4gICAgICAgY2xhc3M9XCJsYXlvdXQtcm93IGVsZGVyLWZsZXgtY29udHJvbFwiPlxuXG4gICAgPCEtLSBbbmFtZV09XCJuYW1lXCIgLS0+XG4gICAgPGVsZGVyLWxvY2FsLWRhdGUtaW5wdXQgY2xhc3M9XCJmbGV4XCIgY2VudGVyXG4gICAgICBbdmFsdWVdPVwic3RhcnRMb2NhbERhdGUkIHwgYXN5bmNcIlxuICAgICAgKHZhbHVlVXBkYXRlZCk9XCJvblNpbmdsZURheURhdGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cIihwbGFjZWhvbGRlciB8fCAnJylcIlxuICAgID48L2VsZGVyLWxvY2FsLWRhdGUtaW5wdXQ+XG4gIDwvZGl2PlxuXG48L25nLWNvbnRhaW5lcj5cblxuXG5cbiJdfQ==
@@ -209,11 +209,11 @@ export class ElderLocalDateInputComponent extends ElderFormFieldControlBase {
209
209
  : a === b;
210
210
  }
211
211
  }
212
- ElderLocalDateInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderLocalDateInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
213
- ElderLocalDateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: ElderLocalDateInputComponent, selector: "elder-local-date-input", inputs: { zone: "zone", autoDatePicker: "autoDatePicker", arrows: "arrows", today: "today", center: "center", datePickerTouchUi: "datePickerTouchUi", allowNull: "allowNull", datePickerEnabled: "datePickerEnabled", isoValue: "isoValue", dateValue: "dateValue", isoDateValue: "isoDateValue" }, outputs: { blurred: "blurred", valueUpdatedBlur: "valueUpdatedBlur", isoValueChange: "isoValueChange", dateValueChange: "dateValueChange", isoDateValueChange: "isoDateValueChange" }, providers: [
212
+ ElderLocalDateInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderLocalDateInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
213
+ ElderLocalDateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ElderLocalDateInputComponent, selector: "elder-local-date-input", inputs: { zone: "zone", autoDatePicker: "autoDatePicker", arrows: "arrows", today: "today", center: "center", datePickerTouchUi: "datePickerTouchUi", allowNull: "allowNull", datePickerEnabled: "datePickerEnabled", isoValue: "isoValue", dateValue: "dateValue", isoDateValue: "isoDateValue" }, outputs: { blurred: "blurred", valueUpdatedBlur: "valueUpdatedBlur", isoValueChange: "isoValueChange", dateValueChange: "dateValueChange", isoDateValueChange: "isoDateValueChange" }, providers: [
214
214
  { provide: MatFormFieldControl, useExisting: ElderLocalDateInputComponent },
215
215
  ], viewQueries: [{ propertyName: "picker", first: true, predicate: MatDatepicker, descendants: true, static: true }, { propertyName: "inputRef", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"layout-row place-start-center elder-flex-control\"\n>\n\n <button mat-icon-button type=\"button\" *ngIf=\"arrows\"\n class=\"elder-control-icon-button\"\n [disabled]=\"isLocked || !value\"\n (click)=\"previousDay()\">\n <mat-icon>keyboard_arrow_left</mat-icon>\n </button>\n\n <input matInput elderNoSpinner class=\"flex elder-mdc-input-fix elder-local-date-input\" #input\n type=\"date\"\n [name]=\"ngControl?.name + '-inner-input'\"\n [required]=\"!!required\"\n [readonly]=\"readonly || autoDatePicker\"\n [disabled]=\"!!disabled\"\n [placeholder]=\"placeholder | translate\"\n [ngModel]=\"date$ | async | date: 'yyyy-MM-dd'\"\n (ngModelChange)=\"onDateInputChanged($event)\"\n (blur)=\"blurred.next($event)\"\n [class.elder-auto-date-picker]=\"autoDatePicker\"\n [class.noselect]=\"autoDatePicker\"\n [class.center]=\"center || arrows\"\n (click)=\"onDateInputClicked($event)\"\n >\n <input style=\"display: none\" [matDatepicker]=\"picker\" (dateChange)=\"onDatepickerInputChange($event)\">\n\n <button mat-icon-button type=\"button\" *ngIf=\"arrows\"\n class=\"elder-control-icon-button\"\n [disabled]=\"isLocked || !value\"\n (click)=\"nextDay()\">\n <mat-icon>keyboard_arrow_right</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\" *ngIf=\"today\"\n class=\"elder-control-icon-button\" style=\"margin-left: 4px\"\n [disabled]=\"isLocked\"\n (click)=\"currentDay()\">\n <mat-icon>today</mat-icon>\n </button>\n\n <mat-datepicker-toggle class=\"elder-control-icon-button\"\n *ngIf=\"datePickerEnabled && (!allowNull || (value$ | async) === null)\"\n [disabled]=\"isLocked\"\n [for]=\"picker\">\n <mat-icon matDatepickerToggleIcon>calendar_month</mat-icon>\n </mat-datepicker-toggle>\n\n <button mat-icon-button type=\"button\" class=\"elder-control-icon-button\"\n *ngIf=\"allowNull && (value$ | async)\"\n [disabled]=\"isLocked\"\n (click)=\"clear($event)\" aria-label=\"Clear\"\n elderStopEventPropagation\n >\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-datepicker [touchUi]=\"datePickerTouchUi\" #picker></mat-datepicker>\n\n</div>\n\n\n\n", styles: ["input::-webkit-calendar-picker-indicator{display:none}.elder-auto-date-picker{cursor:pointer}.elder-local-date-input.center{text-align:center}\n"], dependencies: [{ kind: "directive", type: 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.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: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i6.MatDatepickerToggleIcon, selector: "[matDatepickerToggleIcon]" }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "directive", type: i10.ElderFormFieldNoSpinnerDirective, selector: "input[elderNoSpinner]", inputs: ["elderNoSpinner"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.DatePipe, name: "date" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderLocalDateInputComponent, decorators: [{
216
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderLocalDateInputComponent, decorators: [{
217
217
  type: Component,
218
218
  args: [{ selector: 'elder-local-date-input', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
219
219
  { provide: MatFormFieldControl, useExisting: ElderLocalDateInputComponent },
@@ -71,11 +71,11 @@ export class ElderLocalTimeInputComponent extends ElderFormFieldControlBase {
71
71
  : a === b;
72
72
  }
73
73
  }
74
- ElderLocalTimeInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderLocalTimeInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
75
- ElderLocalTimeInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: ElderLocalTimeInputComponent, selector: "elder-local-time-input", inputs: { isoValue: "isoValue" }, outputs: { isoValueChange: "isoValueChange" }, providers: [
74
+ ElderLocalTimeInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderLocalTimeInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
75
+ ElderLocalTimeInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: ElderLocalTimeInputComponent, selector: "elder-local-time-input", inputs: { isoValue: "isoValue" }, outputs: { isoValueChange: "isoValueChange" }, providers: [
76
76
  { provide: MatFormFieldControl, useExisting: ElderLocalTimeInputComponent },
77
77
  ], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"layout-row place-start-baseline elder-flex-control\"\n>\n <input matInput class=\"flex-grow elder-mdc-input-fix\" #input\n [name]=\"ngControl?.name + '-inner-input'\"\n [placeholder]=\"placeholder | translate\"\n type=\"time\"\n [required]=\"!!required\"\n [readonly]=\"readonly\"\n [disabled]=\"!!disabled\"\n [ngModel]=\"hourMinuteStr$ | async\"\n (ngModelChange)=\"onHourMinuteChanged($event)\">\n</div>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.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: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ElderLocalTimeInputComponent, decorators: [{
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: ElderLocalTimeInputComponent, decorators: [{
79
79
  type: Component,
80
80
  args: [{ selector: 'elder-local-time-input', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
81
81
  { provide: MatFormFieldControl, useExisting: ElderLocalTimeInputComponent },