@elderbyte/ngx-starter 15.9.9 → 15.10.1

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 (285) 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/theme-sizes.mjs +1 -1
  16. package/esm2020/lib/common/url/elder-router.service.mjs +3 -3
  17. package/esm2020/lib/common/url/elder-url-fragment-params.service.mjs +3 -3
  18. package/esm2020/lib/components/access-denied/elder-access-denied.component.mjs +3 -3
  19. package/esm2020/lib/components/access-denied/elder-access-denied.module.mjs +4 -4
  20. package/esm2020/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +3 -3
  21. package/esm2020/lib/components/auditing/elder-audit.module.mjs +4 -4
  22. package/esm2020/lib/components/badge/elder-badge/elder-badge.component.mjs +3 -3
  23. package/esm2020/lib/components/badge/elder-badge.directive.mjs +3 -3
  24. package/esm2020/lib/components/badge/elder-badge.module.mjs +4 -4
  25. package/esm2020/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -3
  26. package/esm2020/lib/components/button-group/elder-button-group.module.mjs +4 -4
  27. package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +3 -3
  28. package/esm2020/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +3 -3
  29. package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +3 -3
  30. package/esm2020/lib/components/card-organizer/elder-card-organizer.module.mjs +4 -4
  31. package/esm2020/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -3
  32. package/esm2020/lib/components/cards/elder-card/elder-card.component.mjs +18 -18
  33. package/esm2020/lib/components/cards/elder-card/elder-card.module.mjs +4 -4
  34. package/esm2020/lib/components/chips/elder-chip-label.directive.mjs +3 -3
  35. package/esm2020/lib/components/chips/elder-chips.module.mjs +4 -4
  36. package/esm2020/lib/components/connectivity/elder-connectivity.module.mjs +4 -4
  37. package/esm2020/lib/components/connectivity/elder-connectivity.service.mjs +3 -3
  38. package/esm2020/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +3 -3
  39. package/esm2020/lib/components/containers/elder-containers.module.mjs +4 -4
  40. package/esm2020/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +3 -3
  41. package/esm2020/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +3 -3
  42. package/esm2020/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +3 -3
  43. package/esm2020/lib/components/csv/elder-csv.module.mjs +4 -4
  44. package/esm2020/lib/components/currency/elder-currency.module.mjs +4 -4
  45. package/esm2020/lib/components/currency/elder-currency.pipe.mjs +3 -3
  46. package/esm2020/lib/components/data-transfer/elder-data-transfer.module.mjs +4 -4
  47. package/esm2020/lib/components/data-transfer/elder-data-transfer.service.mjs +3 -3
  48. package/esm2020/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +3 -3
  49. package/esm2020/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +3 -3
  50. package/esm2020/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
  51. package/esm2020/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +3 -3
  52. package/esm2020/lib/components/data-view/base/elder-data-view-base.mjs +3 -3
  53. package/esm2020/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +3 -3
  54. package/esm2020/lib/components/data-view/common/elder-data-common.module.mjs +4 -4
  55. package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +6 -6
  56. package/esm2020/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +3 -3
  57. package/esm2020/lib/components/data-view/common/selection/data-context-selection.directive.mjs +3 -3
  58. package/esm2020/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +3 -3
  59. package/esm2020/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +9 -9
  60. package/esm2020/lib/components/data-view/grid/elder-grid.module.mjs +4 -4
  61. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +3 -3
  62. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +4 -4
  63. package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +3 -3
  64. package/esm2020/lib/components/data-view/table/elder-number-cell.directive.mjs +3 -3
  65. package/esm2020/lib/components/data-view/table/elder-paginator-intl.mjs +3 -3
  66. package/esm2020/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +3 -3
  67. package/esm2020/lib/components/data-view/table/elder-table/elder-table.component.mjs +3 -3
  68. package/esm2020/lib/components/data-view/table/elder-table-column.directive.mjs +3 -3
  69. package/esm2020/lib/components/data-view/table/elder-table-extension.directive.mjs +3 -3
  70. package/esm2020/lib/components/data-view/table/elder-table-root.directive.mjs +3 -3
  71. package/esm2020/lib/components/data-view/table/elder-table-row.directive.mjs +3 -3
  72. package/esm2020/lib/components/data-view/table/elder-table-sort.directive.mjs +3 -3
  73. package/esm2020/lib/components/data-view/table/elder-table.module.mjs +4 -4
  74. package/esm2020/lib/components/data-view/table/model/elder-table-model.mjs +3 -3
  75. package/esm2020/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +3 -3
  76. package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +4 -4
  77. package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +3 -3
  78. package/esm2020/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +3 -3
  79. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +3 -3
  80. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +3 -3
  81. package/esm2020/lib/components/errors/elder-error.module.mjs +4 -4
  82. package/esm2020/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +3 -3
  83. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +3 -3
  84. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +4 -4
  85. package/esm2020/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -3
  86. package/esm2020/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +43 -0
  87. package/esm2020/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +56 -0
  88. package/esm2020/lib/components/files/elder-file-drop-zone.directive.mjs +48 -13
  89. package/esm2020/lib/components/files/elder-file-select.directive.mjs +3 -3
  90. package/esm2020/lib/components/files/elder-file.module.mjs +20 -12
  91. package/esm2020/lib/components/files/file-select/file-select.component.mjs +3 -3
  92. package/esm2020/lib/components/files/file-upload/file-upload.component.mjs +3 -3
  93. package/esm2020/lib/components/files/listing/file-entry.mjs +2 -2
  94. package/esm2020/lib/components/forms/clipboard/elder-clipboard.service.mjs +3 -3
  95. package/esm2020/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +3 -3
  96. package/esm2020/lib/components/forms/directives/elder-clipboard-put.directive.mjs +3 -3
  97. package/esm2020/lib/components/forms/directives/elder-delayed-focus.directive.mjs +3 -3
  98. package/esm2020/lib/components/forms/directives/elder-form-field-dense.directive.mjs +3 -3
  99. package/esm2020/lib/components/forms/directives/elder-form-field-label.directive.mjs +3 -3
  100. package/esm2020/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +3 -3
  101. package/esm2020/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +3 -3
  102. package/esm2020/lib/components/forms/directives/elder-forms-directives.module.mjs +4 -4
  103. package/esm2020/lib/components/forms/directives/elder-input-pattern.directive.mjs +3 -3
  104. package/esm2020/lib/components/forms/directives/elder-key-event.directive.mjs +3 -3
  105. package/esm2020/lib/components/forms/directives/elder-next-focusable.directive.mjs +3 -3
  106. package/esm2020/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +3 -3
  107. package/esm2020/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +3 -3
  108. package/esm2020/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +3 -3
  109. package/esm2020/lib/components/forms/directives/elder-touched.directive.mjs +3 -3
  110. package/esm2020/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +3 -3
  111. package/esm2020/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +3 -3
  112. package/esm2020/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +3 -3
  113. package/esm2020/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +3 -3
  114. package/esm2020/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +3 -3
  115. package/esm2020/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +3 -3
  116. package/esm2020/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +3 -3
  117. package/esm2020/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +3 -3
  118. package/esm2020/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +3 -3
  119. package/esm2020/lib/components/forms/elder-forms.module.mjs +4 -4
  120. package/esm2020/lib/components/forms/search/elder-search-context.directive.mjs +3 -3
  121. package/esm2020/lib/components/forms/search/elder-search-input.directive.mjs +3 -3
  122. package/esm2020/lib/components/forms/search/elder-search.module.mjs +4 -4
  123. package/esm2020/lib/components/forms/search/search-box/elder-search-box.component.mjs +3 -3
  124. package/esm2020/lib/components/forms/search/search-box/elder-search-panel.component.mjs +3 -3
  125. package/esm2020/lib/components/global-search/elder-global-search.component.mjs +3 -3
  126. package/esm2020/lib/components/global-search/elder-global-search.module.mjs +4 -4
  127. package/esm2020/lib/components/global-search/elder-global-search.service.mjs +3 -3
  128. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +3 -3
  129. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -4
  130. package/esm2020/lib/components/headers/elder-header/elder-header.component.mjs +3 -3
  131. package/esm2020/lib/components/headers/elder-header.module.mjs +4 -4
  132. package/esm2020/lib/components/http-support/elder-http-client.service.mjs +3 -3
  133. package/esm2020/lib/components/i18n/entities/elder-i18n-entities.module.mjs +4 -4
  134. package/esm2020/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +3 -3
  135. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +3 -3
  136. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +3 -3
  137. package/esm2020/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +3 -3
  138. package/esm2020/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +3 -3
  139. package/esm2020/lib/components/i18n/entities/elder-localized-texts.directive.mjs +3 -3
  140. package/esm2020/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +3 -3
  141. package/esm2020/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +3 -3
  142. package/esm2020/lib/components/i18n/entities/picker/localisation-picker.service.mjs +3 -3
  143. package/esm2020/lib/components/i18n/language/elder-language-interceptor.mjs +3 -3
  144. package/esm2020/lib/components/i18n/language/elder-language.module.mjs +4 -4
  145. package/esm2020/lib/components/i18n/language/elder-language.service.mjs +3 -3
  146. package/esm2020/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +3 -3
  147. package/esm2020/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +4 -4
  148. package/esm2020/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +3 -3
  149. package/esm2020/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +3 -3
  150. package/esm2020/lib/components/iframes/elder-iframe.module.mjs +4 -4
  151. package/esm2020/lib/components/iframes/iframe-close.directive.mjs +3 -3
  152. package/esm2020/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +3 -3
  153. package/esm2020/lib/components/iframes/iframe-host/iframe-host.component.mjs +3 -3
  154. package/esm2020/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +3 -3
  155. package/esm2020/lib/components/iframes/iframe.service.mjs +3 -3
  156. package/esm2020/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +3 -3
  157. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +3 -3
  158. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +7 -7
  159. package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +3 -3
  160. package/esm2020/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +3 -3
  161. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +3 -3
  162. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.module.mjs +4 -4
  163. package/esm2020/lib/components/labels/elder-labels.module.mjs +4 -4
  164. package/esm2020/lib/components/labels/labels-input/labels-input.component.mjs +3 -3
  165. package/esm2020/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +3 -3
  166. package/esm2020/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +3 -3
  167. package/esm2020/lib/components/measures/directives/elder-unit-select.directive.mjs +3 -3
  168. package/esm2020/lib/components/measures/elder-measures.module.mjs +8 -8
  169. package/esm2020/lib/components/measures/elder-quantity-transform.pipe.mjs +3 -3
  170. package/esm2020/lib/components/measures/elder-quantity.pipe.mjs +3 -3
  171. package/esm2020/lib/components/measures/elder-unit.service.mjs +3 -3
  172. package/esm2020/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +3 -3
  173. package/esm2020/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +3 -3
  174. package/esm2020/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +3 -3
  175. package/esm2020/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +3 -3
  176. package/esm2020/lib/components/measures/util/elder-quantity.service.mjs +3 -3
  177. package/esm2020/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +3 -3
  178. package/esm2020/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +4 -4
  179. package/esm2020/lib/components/navigation/nav/elder-nav.module.mjs +4 -4
  180. package/esm2020/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +3 -3
  181. package/esm2020/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +3 -3
  182. package/esm2020/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -3
  183. package/esm2020/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +3 -3
  184. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.module.mjs +4 -4
  185. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.service.mjs +3 -3
  186. package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +3 -3
  187. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +3 -3
  188. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +3 -3
  189. package/esm2020/lib/components/overlays/elder-overlay-origin.directive.mjs +3 -3
  190. package/esm2020/lib/components/overlays/elder-overlay-trigger.directive.mjs +3 -3
  191. package/esm2020/lib/components/overlays/elder-overlay.component.mjs +3 -3
  192. package/esm2020/lib/components/overlays/elder-overlay.module.mjs +4 -4
  193. package/esm2020/lib/components/panels/card-panel/elder-card-panel.component.mjs +3 -3
  194. package/esm2020/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +3 -3
  195. package/esm2020/lib/components/panels/elder-panel.module.mjs +4 -4
  196. package/esm2020/lib/components/panels/flat/elder-panel.component.mjs +3 -3
  197. package/esm2020/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +3 -3
  198. package/esm2020/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +9 -9
  199. package/esm2020/lib/components/scrollbar/elder-scrollbar.directive.mjs +3 -3
  200. package/esm2020/lib/components/scrollbar/elder-scrollbar.module.mjs +4 -4
  201. package/esm2020/lib/components/select/auto/elder-auto-select-first.directive.mjs +3 -3
  202. package/esm2020/lib/components/select/elder-select-base.mjs +3 -3
  203. package/esm2020/lib/components/select/elder-select-chip.directive.mjs +9 -9
  204. package/esm2020/lib/components/select/elder-select-on-tab.directive.mjs +3 -3
  205. package/esm2020/lib/components/select/elder-select-value.directive.mjs +3 -3
  206. package/esm2020/lib/components/select/elder-select.module.mjs +4 -4
  207. package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +3 -3
  208. package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +4 -4
  209. package/esm2020/lib/components/select/multi/elder-multi-select-form-field.mjs +3 -3
  210. package/esm2020/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +3 -3
  211. package/esm2020/lib/components/select/popup/selection-model-popup.directive.mjs +3 -3
  212. package/esm2020/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
  213. package/esm2020/lib/components/select/single/elder-clear-select.directive.mjs +3 -3
  214. package/esm2020/lib/components/select/single/elder-select/elder-select.component.mjs +3 -3
  215. package/esm2020/lib/components/select/single/elder-select-form-field.mjs +3 -3
  216. package/esm2020/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +4 -4
  217. package/esm2020/lib/components/select-chip-list/elder-chip-list-select.module.mjs +4 -4
  218. package/esm2020/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +3 -3
  219. package/esm2020/lib/components/shell/drawers/elder-router-outlet.service.mjs +3 -3
  220. package/esm2020/lib/components/shell/elder-shell-slot.directive.mjs +3 -3
  221. package/esm2020/lib/components/shell/elder-shell.module.mjs +4 -4
  222. package/esm2020/lib/components/shell/elder-shell.service.mjs +3 -3
  223. package/esm2020/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +3 -3
  224. package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +26 -23
  225. package/esm2020/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +3 -3
  226. package/esm2020/lib/components/tabs/elder-tab/elder-tab.directive.mjs +3 -3
  227. package/esm2020/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +3 -3
  228. package/esm2020/lib/components/tabs/elder-tab.module.mjs +4 -4
  229. package/esm2020/lib/components/theme/elder-theme-applier.directive.mjs +3 -3
  230. package/esm2020/lib/components/theme/elder-theme-preference.service.mjs +3 -3
  231. package/esm2020/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +3 -3
  232. package/esm2020/lib/components/theme/elder-theme.directive.mjs +3 -3
  233. package/esm2020/lib/components/theme/elder-theme.module.mjs +4 -4
  234. package/esm2020/lib/components/theme/elder-theme.service.mjs +3 -3
  235. package/esm2020/lib/components/time/date-adapters/custom-date-adapter.mjs +3 -3
  236. package/esm2020/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +3 -3
  237. package/esm2020/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +3 -3
  238. package/esm2020/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +3 -3
  239. package/esm2020/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +3 -3
  240. package/esm2020/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +3 -3
  241. package/esm2020/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +3 -3
  242. package/esm2020/lib/components/time/elder-time.module.mjs +4 -4
  243. package/esm2020/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +3 -3
  244. package/esm2020/lib/components/time/pipes/to-iso-date-string.pipe.mjs +3 -3
  245. package/esm2020/lib/components/toasts/elder-toast.module.mjs +7 -6
  246. package/esm2020/lib/components/toasts/elder-toast.service.mjs +3 -3
  247. package/esm2020/lib/components/toasts/standard-toast/standard-toast.component.mjs +3 -3
  248. package/esm2020/lib/components/url-fragment/elder-url-fragment.module.mjs +4 -4
  249. package/esm2020/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +3 -3
  250. package/esm2020/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +3 -3
  251. package/esm2020/lib/components/viewers/elder-viewers.module.mjs +4 -4
  252. package/esm2020/lib/features/event-source/elder-event-source.service.mjs +3 -3
  253. package/esm2020/lib/features/kafent/access-token-provider.mjs +3 -3
  254. package/esm2020/lib/features/kafent/kafent-config.mjs +3 -3
  255. package/esm2020/lib/features/kafent/kafent-event-stream.mjs +3 -3
  256. package/esm2020/lib/features/kafent/kafent-event.service.mjs +3 -3
  257. package/esm2020/lib/features/kafent/kafent.module.mjs +4 -4
  258. package/esm2020/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +3 -3
  259. package/esm2020/lib/pipes/bytes.pipe.mjs +3 -3
  260. package/esm2020/lib/pipes/elder-pipes.module.mjs +10 -10
  261. package/esm2020/lib/pipes/elder-repeat.pipe.mjs +3 -3
  262. package/esm2020/lib/pipes/elder-round.pipe.mjs +3 -3
  263. package/esm2020/lib/pipes/elder-safe-url.pipe.mjs +3 -3
  264. package/esm2020/lib/pipes/elder-truncate.pipe.mjs +3 -3
  265. package/esm2020/lib/pipes/iso-duration.pipe.mjs +3 -3
  266. package/esm2020/lib/pipes/iso-interval-parse.pipe.mjs +3 -3
  267. package/esm2020/lib/pipes/iso-interval.pipe.mjs +3 -3
  268. package/esm2020/lib/pipes/time-ago.pipe.mjs +3 -3
  269. package/esm2020/lib/pipes/time-duration.pipe.mjs +3 -3
  270. package/esm2020/lib/pipes/weight.pipe.mjs +3 -3
  271. package/fesm2015/elderbyte-ngx-starter.mjs +1061 -930
  272. package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
  273. package/fesm2020/elderbyte-ngx-starter.mjs +1061 -930
  274. package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
  275. package/lib/common/theme-sizes.d.ts +1 -1
  276. package/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.d.ts +24 -0
  277. package/lib/components/files/drag-n-drop/global-drag-drop.service.d.ts +40 -0
  278. package/lib/components/files/elder-file-drop-zone.directive.d.ts +16 -3
  279. package/lib/components/files/elder-file.module.d.ts +11 -7
  280. package/lib/components/files/listing/file-entry.d.ts +1 -1
  281. package/lib/components/shell/shell/elder-shell.component.d.ts +3 -1
  282. package/lib/components/toasts/elder-toast.module.d.ts +2 -1
  283. package/package.json +1 -1
  284. package/src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.scss +48 -0
  285. package/theming/_elder-common.scss +10 -0
@@ -6,23 +6,24 @@ import * as i0 from "@angular/core";
6
6
  import * as i1 from "../elder-shell.service";
7
7
  import * as i2 from "../drawers/elder-route-outlet-drawer.service";
8
8
  import * as i3 from "../../theme/elder-theme.service";
9
- import * as i4 from "@angular/common";
10
- import * as i5 from "@angular/router";
11
- import * as i6 from "@angular/material/sidenav";
12
- import * as i7 from "@angular/material/toolbar";
13
- import * as i8 from "@angular/material/icon";
14
- import * as i9 from "@angular/material/button";
15
- import * as i10 from "../../navigation/toolbar/toolbar/elder-toolbar.component";
16
- import * as i11 from "../../theme/elder-theme-applier.directive";
9
+ import * as i4 from "../../files/drag-n-drop/global-drag-drop.service";
10
+ import * as i5 from "@angular/common";
11
+ import * as i6 from "@angular/router";
12
+ import * as i7 from "@angular/material/sidenav";
13
+ import * as i8 from "@angular/material/toolbar";
14
+ import * as i9 from "@angular/material/icon";
15
+ import * as i10 from "@angular/material/button";
16
+ import * as i11 from "../../navigation/toolbar/toolbar/elder-toolbar.component";
17
+ import * as i12 from "../../theme/elder-theme-applier.directive";
17
18
  export class ElderShellSideLeftDirective {
18
19
  constructor(templateRef, viewContainer) {
19
20
  this.templateRef = templateRef;
20
21
  this.viewContainer = viewContainer;
21
22
  }
22
23
  }
23
- ElderShellSideLeftDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderShellSideLeftDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
24
- ElderShellSideLeftDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ElderShellSideLeftDirective, selector: "[elderShellSideLeft]", ngImport: i0 });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderShellSideLeftDirective, decorators: [{
24
+ ElderShellSideLeftDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderShellSideLeftDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
25
+ ElderShellSideLeftDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderShellSideLeftDirective, selector: "[elderShellSideLeft]", ngImport: i0 });
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderShellSideLeftDirective, decorators: [{
26
27
  type: Directive,
27
28
  args: [{ selector: '[elderShellSideLeft]' }]
28
29
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
@@ -32,9 +33,9 @@ export class ElderShellSideRightDirective {
32
33
  this.viewContainer = viewContainer;
33
34
  }
34
35
  }
35
- ElderShellSideRightDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderShellSideRightDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
36
- ElderShellSideRightDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ElderShellSideRightDirective, selector: "[elderShellSideRight]", ngImport: i0 });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderShellSideRightDirective, decorators: [{
36
+ ElderShellSideRightDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderShellSideRightDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
37
+ ElderShellSideRightDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderShellSideRightDirective, selector: "[elderShellSideRight]", ngImport: i0 });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderShellSideRightDirective, decorators: [{
38
39
  type: Directive,
39
40
  args: [{ selector: '[elderShellSideRight]' }]
40
41
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
@@ -44,9 +45,9 @@ export class ElderShellCenterDirective {
44
45
  this.viewContainer = viewContainer;
45
46
  }
46
47
  }
47
- ElderShellCenterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderShellCenterDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
48
- ElderShellCenterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ElderShellCenterDirective, selector: "[elderShellCenter]", ngImport: i0 });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderShellCenterDirective, decorators: [{
48
+ ElderShellCenterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderShellCenterDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
49
+ ElderShellCenterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderShellCenterDirective, selector: "[elderShellCenter]", ngImport: i0 });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderShellCenterDirective, decorators: [{
50
51
  type: Directive,
51
52
  args: [{ selector: '[elderShellCenter]' }]
52
53
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
@@ -56,11 +57,12 @@ export class ElderShellComponent {
56
57
  * Constructor *
57
58
  * *
58
59
  **************************************************************************/
59
- constructor(shellService, outletDrawerService, changeDetectorRef, themeService) {
60
+ constructor(shellService, outletDrawerService, changeDetectorRef, themeService, globalDragDropService) {
60
61
  this.shellService = shellService;
61
62
  this.outletDrawerService = outletDrawerService;
62
63
  this.changeDetectorRef = changeDetectorRef;
63
64
  this.themeService = themeService;
65
+ this.globalDragDropService = globalDragDropService;
64
66
  /***************************************************************************
65
67
  * *
66
68
  * Fields *
@@ -79,6 +81,7 @@ export class ElderShellComponent {
79
81
  this.headerTemplate$ = shellService.activeSlotTemplate('header').pipe(tap(() => this.checkSoon()));
80
82
  this.centerTemplate$ = shellService.activeSlotTemplate('center').pipe(tap(() => this.checkSoon()));
81
83
  this.footerTemplate$ = shellService.activeSlotTemplate('footer').pipe(tap(() => this.checkSoon()));
84
+ this.globalDragDropService.preventDefaultFileLoading();
82
85
  }
83
86
  /***************************************************************************
84
87
  * *
@@ -173,12 +176,12 @@ export class ElderShellComponent {
173
176
  }, 5);
174
177
  }
175
178
  }
176
- ElderShellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderShellComponent, deps: [{ token: i1.ElderShellService }, { token: i2.ElderRouteOutletDrawerService }, { token: i0.ChangeDetectorRef }, { token: i3.ElderThemeService }], target: i0.ɵɵFactoryTarget.Component });
177
- ElderShellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ElderShellComponent, selector: "elder-shell", inputs: { sideNavToggleEnabled: "sideNavToggleEnabled", leftSideAutoFocus: "leftSideAutoFocus", rightSideAutoFocus: "rightSideAutoFocus", color: "color", menuColor: "menuColor", menuIconColor: "menuIconColor" }, queries: [{ propertyName: "sideContentLeft", first: true, predicate: ElderShellSideLeftDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "sideContentRight", first: true, predicate: ElderShellSideRightDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "centerContent", first: true, predicate: ElderShellCenterDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "rightSideDrawer", first: true, predicate: ["rightSideDetail"], descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container\n elderThemeApplier\n class=\"full-width\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n\n <!-- Left Side Nav -->\n <mat-sidenav position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus\"\n [opened]=\"leftSideContentOpen$ | async\"\n (closed)=\"closeLeftSideContent()\">\n <div class=\"layout-col full elder-side-nav\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft;\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent;\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav mode=\"over\" #rightSideDetail id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus\"\n [disableClose]=\"true\" (keydown.escape)=\"onEscapeRightSide($event)\">\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight;\"></ng-container>\n </div>\n </mat-sidenav>\n\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div class=\"layout-col full\">\n\n <!-- Header -->\n <ng-container *ngTemplateOutlet=\"(headerTemplate$ | async) || defaultHeaderTemplate\"></ng-container>\n\n <!-- Center -->\n <ng-container *ngTemplateOutlet=\"(centerTemplate$ | async) || defaultCenterTemplate\"></ng-container>\n\n <!-- Footer -->\n <ng-container *ngTemplateOutlet=\"(footerTemplate$ | async) || defaultFooterTemplate\"></ng-container>\n\n </div>\n</ng-template>\n\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar [color]=\"color\" class=\"flex-none\" style=\"max-width: 100%; min-width: 100%\" >\n <!-- Toolbar Prefix: Sidenav Toggle -->\n <mat-toolbar *ngIf=\"sideNavToggleEnabled\"\n [color]=\"menuColor$ | async\"\n class=\"flex-none\" style=\"width: auto\"\n >\n <button mat-icon-button [color]=\"menuIconColor$ | async\" type=\"button\" (click)=\"toggleSideNav()\">\n <mat-icon>menu</mat-icon>\n </button>\n </mat-toolbar>\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav .elder-side-nav{min-width:350px}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i6.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i6.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i6.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.ElderToolbarComponent, selector: "elder-toolbar", inputs: ["color"] }, { kind: "directive", type: i11.ElderThemeApplierDirective, selector: "[elderThemeApplier]" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderShellComponent, decorators: [{
179
+ ElderShellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderShellComponent, deps: [{ token: i1.ElderShellService }, { token: i2.ElderRouteOutletDrawerService }, { token: i0.ChangeDetectorRef }, { token: i3.ElderThemeService }, { token: i4.GlobalDragDropService }], target: i0.ɵɵFactoryTarget.Component });
180
+ ElderShellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderShellComponent, selector: "elder-shell", inputs: { sideNavToggleEnabled: "sideNavToggleEnabled", leftSideAutoFocus: "leftSideAutoFocus", rightSideAutoFocus: "rightSideAutoFocus", color: "color", menuColor: "menuColor", menuIconColor: "menuIconColor" }, queries: [{ propertyName: "sideContentLeft", first: true, predicate: ElderShellSideLeftDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "sideContentRight", first: true, predicate: ElderShellSideRightDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "centerContent", first: true, predicate: ElderShellCenterDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "rightSideDrawer", first: true, predicate: ["rightSideDetail"], descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container\n elderThemeApplier\n class=\"full-width\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n\n <!-- Left Side Nav -->\n <mat-sidenav position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus\"\n [opened]=\"leftSideContentOpen$ | async\"\n (closed)=\"closeLeftSideContent()\">\n <div class=\"layout-col full elder-side-nav\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft;\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent;\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav mode=\"over\" #rightSideDetail id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus\"\n [disableClose]=\"true\" (keydown.escape)=\"onEscapeRightSide($event)\">\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight;\"></ng-container>\n </div>\n </mat-sidenav>\n\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div class=\"layout-col full\">\n\n <!-- Header -->\n <ng-container *ngTemplateOutlet=\"(headerTemplate$ | async) || defaultHeaderTemplate\"></ng-container>\n\n <!-- Center -->\n <ng-container *ngTemplateOutlet=\"(centerTemplate$ | async) || defaultCenterTemplate\"></ng-container>\n\n <!-- Footer -->\n <ng-container *ngTemplateOutlet=\"(footerTemplate$ | async) || defaultFooterTemplate\"></ng-container>\n\n </div>\n</ng-template>\n\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar [color]=\"color\" class=\"flex-none\" style=\"max-width: 100%; min-width: 100%\" >\n <!-- Toolbar Prefix: Sidenav Toggle -->\n <mat-toolbar *ngIf=\"sideNavToggleEnabled\"\n [color]=\"menuColor$ | async\"\n class=\"flex-none\" style=\"width: auto\"\n >\n <button mat-icon-button [color]=\"menuIconColor$ | async\" type=\"button\" (click)=\"toggleSideNav()\">\n <mat-icon>menu</mat-icon>\n </button>\n </mat-toolbar>\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav .elder-side-nav{min-width:350px}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i7.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "component", type: i7.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "component", type: i7.MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "component", type: i8.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i11.ElderToolbarComponent, selector: "elder-toolbar", inputs: ["color"] }, { kind: "directive", type: i12.ElderThemeApplierDirective, selector: "[elderThemeApplier]" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderShellComponent, decorators: [{
179
182
  type: Component,
180
183
  args: [{ selector: 'elder-shell', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-sidenav-container\n elderThemeApplier\n class=\"full-width\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n\n <!-- Left Side Nav -->\n <mat-sidenav position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus\"\n [opened]=\"leftSideContentOpen$ | async\"\n (closed)=\"closeLeftSideContent()\">\n <div class=\"layout-col full elder-side-nav\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft;\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent;\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav mode=\"over\" #rightSideDetail id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus\"\n [disableClose]=\"true\" (keydown.escape)=\"onEscapeRightSide($event)\">\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight;\"></ng-container>\n </div>\n </mat-sidenav>\n\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div class=\"layout-col full\">\n\n <!-- Header -->\n <ng-container *ngTemplateOutlet=\"(headerTemplate$ | async) || defaultHeaderTemplate\"></ng-container>\n\n <!-- Center -->\n <ng-container *ngTemplateOutlet=\"(centerTemplate$ | async) || defaultCenterTemplate\"></ng-container>\n\n <!-- Footer -->\n <ng-container *ngTemplateOutlet=\"(footerTemplate$ | async) || defaultFooterTemplate\"></ng-container>\n\n </div>\n</ng-template>\n\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar [color]=\"color\" class=\"flex-none\" style=\"max-width: 100%; min-width: 100%\" >\n <!-- Toolbar Prefix: Sidenav Toggle -->\n <mat-toolbar *ngIf=\"sideNavToggleEnabled\"\n [color]=\"menuColor$ | async\"\n class=\"flex-none\" style=\"width: auto\"\n >\n <button mat-icon-button [color]=\"menuIconColor$ | async\" type=\"button\" (click)=\"toggleSideNav()\">\n <mat-icon>menu</mat-icon>\n </button>\n </mat-toolbar>\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav .elder-side-nav{min-width:350px}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}\n"] }]
181
- }], ctorParameters: function () { return [{ type: i1.ElderShellService }, { type: i2.ElderRouteOutletDrawerService }, { type: i0.ChangeDetectorRef }, { type: i3.ElderThemeService }]; }, propDecorators: { sideNavToggleEnabled: [{
184
+ }], ctorParameters: function () { return [{ type: i1.ElderShellService }, { type: i2.ElderRouteOutletDrawerService }, { type: i0.ChangeDetectorRef }, { type: i3.ElderThemeService }, { type: i4.GlobalDragDropService }]; }, propDecorators: { sideNavToggleEnabled: [{
182
185
  type: Input
183
186
  }], leftSideAutoFocus: [{
184
187
  type: Input
@@ -203,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
203
206
  }], menuIconColor: [{
204
207
  type: Input
205
208
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2hlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zaGVsbC9zaGVsbC9lbGRlci1zaGVsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoZWxsL3NoZWxsL2VsZGVyLXNoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUdMLFdBQVcsRUFDWCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPOUMsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxZQUNTLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFBSSxDQUFDOzt3SEFIbEMsMkJBQTJCOzRHQUEzQiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFEdkMsU0FBUzttQkFBQyxFQUFDLFFBQVEsRUFBRSxzQkFBc0IsRUFBQzs7QUFRN0MsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxZQUNTLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FB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LHlCQUF5QiwyQkFBVSxXQUFXLDZLQzdFOUQsMjRGQXNGQTsyRkRuQ2EsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTTtvTkFjeEMsb0JBQW9CO3NCQUQxQixLQUFLO2dCQUlDLGlCQUFpQjtzQkFEdkIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsWUFBWTt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJdkUsZ0JBQWdCO3NCQUR0QixZQUFZO3VCQUFDLDRCQUE0QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl4RSxhQUFhO3NCQURuQixZQUFZO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlyRSxlQUFlO3NCQURyQixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFldkMsS0FBSztzQkFEWCxLQUFLO2dCQW1FSyxTQUFTO3NCQURuQixLQUFLO2dCQVVLLGFBQWE7c0JBRHZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RWxkZXJTaGVsbFNlcnZpY2V9IGZyb20gJy4uL2VsZGVyLXNoZWxsLnNlcnZpY2UnO1xuaW1wb3J0IHtNYXRTaWRlbmF2fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7RWxkZXJSb3V0ZU91dGxldERyYXdlclNlcnZpY2V9IGZyb20gJy4uL2RyYXdlcnMvZWxkZXItcm91dGUtb3V0bGV0LWRyYXdlci5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHt0YWtlVW50aWwsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUaGVtZVBhbGV0dGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtFbGRlclRoZW1lU2VydmljZX0gZnJvbSAnLi4vLi4vdGhlbWUvZWxkZXItdGhlbWUuc2VydmljZSc7XG5pbXBvcnQge1RoZW1lU3BlY30gZnJvbSAnLi4vLi4vdGhlbWUvdGhlbWUtc3BlYyc7XG5cblxuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICdbZWxkZXJTaGVsbFNpZGVMZWZ0XSd9KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2hlbGxTaWRlTGVmdERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikgeyB9XG59XG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnW2VsZGVyU2hlbGxTaWRlUmlnaHRdJ30pXG5leHBvcnQgY2xhc3MgRWxkZXJTaGVsbFNpZGVSaWdodERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikgeyB9XG59XG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnW2VsZGVyU2hlbGxDZW50ZXJdJ30pXG5leHBvcnQgY2xhc3MgRWxkZXJTaGVsbENlbnRlckRpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikgeyB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLXNoZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXNoZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItc2hlbGwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTaGVsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKCdFbGRlclNoZWxsQ29tcG9uZW50Jyk7XG5cbiAgLyoqIENvbnRyb2xzIGlmIHRoZSBTaWRlTmF2IHRvZ2dsZSBzaG91bGQgYmUgZGlzcGxheWVkLiBEZWZhdWx0OiB0cnVlICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaWRlTmF2VG9nZ2xlRW5hYmxlZCA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGxlZnRTaWRlQXV0b0ZvY3VzID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJpZ2h0U2lkZUF1dG9Gb2N1cyA9IGZhbHNlO1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTaGVsbFNpZGVMZWZ0RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHNpZGVDb250ZW50TGVmdDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKEVsZGVyU2hlbGxTaWRlUmlnaHREaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgc2lkZUNvbnRlbnRSaWdodDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKEVsZGVyU2hlbGxDZW50ZXJEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgY2VudGVyQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAVmlld0NoaWxkKCdyaWdodFNpZGVEZXRhaWwnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgcmlnaHRTaWRlRHJhd2VyOiBNYXRTaWRlbmF2O1xuXG4gIHB1YmxpYyByaWdodFNpZGVPdXRsZXROYW1lID0gJ3NpZGUnO1xuXG4gIHB1YmxpYyBsZWZ0U2lkZUNvbnRlbnRPcGVuJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuXG4gIHB1YmxpYyByZWFkb25seSBoZWFkZXJUZW1wbGF0ZSQ6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG4gIHB1YmxpYyByZWFkb25seSBjZW50ZXJUZW1wbGF0ZSQ6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG4gIHB1YmxpYyByZWFkb25seSBmb290ZXJUZW1wbGF0ZSQ6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbG9yOiBUaGVtZVBhbGV0dGUgPSAncHJpbWFyeSc7XG5cbiAgcHVibGljIHJlYWRvbmx5IG1lbnVDb2xvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZW1lUGFsZXR0ZT4oJ2FjY2VudCcpO1xuICBwdWJsaWMgcmVhZG9ubHkgbWVudUljb25Db2xvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZW1lUGFsZXR0ZT4odW5kZWZpbmVkKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNoZWxsU2VydmljZTogRWxkZXJTaGVsbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvdXRsZXREcmF3ZXJTZXJ2aWNlOiBFbGRlclJvdXRlT3V0bGV0RHJhd2VyU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRoZW1lU2VydmljZTogRWxkZXJUaGVtZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSQgPSBzaGVsbFNlcnZpY2UuYWN0aXZlU2xvdFRlbXBsYXRlKCdoZWFkZXInKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuY2hlY2tTb29uKCkpXG4gICAgKTtcbiAgICB0aGlzLmNlbnRlclRlbXBsYXRlJCA9IHNoZWxsU2VydmljZS5hY3RpdmVTbG90VGVtcGxhdGUoJ2NlbnRlcicpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5jaGVja1Nvb24oKSlcbiAgICApO1xuICAgIHRoaXMuZm9vdGVyVGVtcGxhdGUkID0gc2hlbGxTZXJ2aWNlLmFjdGl2ZVNsb3RUZW1wbGF0ZSgnZm9vdGVyJykucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmNoZWNrU29vbigpKVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vdXRsZXREcmF3ZXJTZXJ2aWNlLnJlZ2lzdGVyT3V0bGV0RHJhd2VyKFxuICAgICAgdGhpcy5yaWdodFNpZGVPdXRsZXROYW1lLFxuICAgICAgdGhpcy5yaWdodFNpZGVEcmF3ZXJcbiAgICApO1xuXG4gICAgdGhpcy5vdXRsZXREcmF3ZXJTZXJ2aWNlXG4gICAgICAuZHJhd2VyVmlzaWJpbGl0eUNoYW5nZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShkcmF3ZXIgPT4gIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpO1xuXG4gICAgdGhpcy5sZWZ0U2lkZUNvbnRlbnRPcGVuJCA9ICB0aGlzLnNoZWxsU2VydmljZS5uYXZpZ2F0aW9uT3BlbkNoYW5nZTtcblxuICAgIHRoaXMudGhlbWVTZXJ2aWNlLmFjdGl2ZVRoZW1lJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUodGhlbWUgPT4gdGhpcy5hZGp1c3RDb2xvcnNGb3JUaGVtZSh0aGVtZSkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWVudUNvbG9yKGM6IFRoZW1lUGFsZXR0ZSkge1xuICAgIHRoaXMubWVudUNvbG9yJC5uZXh0KGMpO1xuICB9XG5cbiAgcHVibGljIGdldCBtZW51Q29sb3IoKTogVGhlbWVQYWxldHRlIHtcbiAgICByZXR1cm4gdGhpcy5tZW51Q29sb3IkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1lbnVJY29uQ29sb3IoYzogVGhlbWVQYWxldHRlKSB7XG4gICAgdGhpcy5tZW51SWNvbkNvbG9yJC5uZXh0KGMpO1xuICB9XG5cbiAgcHVibGljIGdldCBtZW51SWNvbkNvbG9yKCk6IFRoZW1lUGFsZXR0ZSB7XG4gICAgcmV0dXJuIHRoaXMubWVudUljb25Db2xvciQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBjbG9zZUxlZnRTaWRlQ29udGVudCgpIHtcbiAgICB0aGlzLnNoZWxsU2VydmljZS5jbG9zZVNpZGVOYXYoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVTaWRlTmF2KCk6IHZvaWQge1xuICAgIHRoaXMuc2hlbGxTZXJ2aWNlLnRvZ2dsZVNpZGVuYXYoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkJhY2tkcm9wQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNoZWxsU2VydmljZS5pc1NpZGVDb250ZW50QWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuc2hlbGxTZXJ2aWNlLmNsb3NlU2lkZUNvbnRlbnQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Fc2NhcGVSaWdodFNpZGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0YXJnZXQgJiYgdGhpcy5pc0NvbnRhaW5lZCh0YXJnZXQsICdlbGRlci1yaWdodC1zaWRlLWRldGFpbCcpKSB7XG4gICAgICAvLyBFbnN1cmUgd2Ugb25seSByZWFjdCB0byBFc2MgRXZlbnRzIHRhcmdldGVkIGF0IG91ciBzaWRlIG5hdiFcbiAgICAgIGlmICh0aGlzLnNoZWxsU2VydmljZS5pc1NpZGVDb250ZW50QWN0aXZlKCkpIHtcbiAgICAgICAgdGhpcy5zaGVsbFNlcnZpY2UuY2xvc2VTaWRlQ29udGVudCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgYWRqdXN0Q29sb3JzRm9yVGhlbWUodGhlbWU6IFRoZW1lU3BlYyk6IHZvaWQge1xuICAgIHRoaXMubWVudUNvbG9yID0gdGhlbWU/LmRhcmsgPyB1bmRlZmluZWQgOiAnYWNjZW50JztcbiAgICB0aGlzLm1lbnVJY29uQ29sb3IgPSB0aGVtZT8uZGFyayA/ICdwcmltYXJ5JyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNDb250YWluZWQoY2hpbGQ6IEhUTUxFbGVtZW50LCBpZDogc3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgICBpZiAoY2hpbGQuaWQgPT09IGlkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgbWF4RGVwdGggPSAxO1xuICAgIGxldCBkZXB0aCA9IDA7XG4gICAgbGV0IG5vZGUgPSBjaGlsZC5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50O1xuICAgIHdoaWxlIChub2RlKSB7XG4gICAgICBpZiAobm9kZS5pZCA9PT0gaWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBub2RlID0gbm9kZS5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKG1heERlcHRoID49ICsrZGVwdGgpIHsgYnJlYWs7IH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1Nvb24oKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0sIDUpO1xuICB9XG59XG4iLCI8bWF0LXNpZGVuYXYtY29udGFpbmVyXG4gIGVsZGVyVGhlbWVBcHBsaWVyXG4gIGNsYXNzPVwiZnVsbC13aWR0aFwiXG4gIChiYWNrZHJvcENsaWNrKT1cIm9uQmFja2Ryb3BDbGljaygkZXZlbnQpXCJcbj5cblxuICA8IS0tIExlZnQgU2lkZSBOYXYgLS0+XG4gIDxtYXQtc2lkZW5hdiBwb3NpdGlvbj1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgIG1vZGU9XCJvdmVyXCJcbiAgICAgICAgICAgICAgIFtmaXhlZEluVmlld3BvcnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICBbYXV0b0ZvY3VzXT1cImxlZnRTaWRlQXV0b0ZvY3VzXCJcbiAgICAgICAgICAgICAgIFtvcGVuZWRdPVwibGVmdFNpZGVDb250ZW50T3BlbiQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAoY2xvc2VkKT1cImNsb3NlTGVmdFNpZGVDb250ZW50KClcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmdWxsIGVsZGVyLXNpZGUtbmF2XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2lkZUNvbnRlbnRMZWZ0IHx8IGZhbGxiYWNrU2lkZUNvbnRlbnRMZWZ0O1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L21hdC1zaWRlbmF2PlxuXG4gIDwhLS0gTWFpbiBDb250ZW50IC0tPlxuICA8bWF0LXNpZGVuYXYtY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmdWxsXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2VudGVyQ29udGVudCB8fCBmYWxsYmFja0NlbnRlckNvbnRlbnQ7XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbWF0LXNpZGVuYXYtY29udGVudD5cblxuICA8IS0tIFJpZ2h0IFNpZGUgRGV0YWlsIC0tPlxuICA8bWF0LXNpZGVuYXYgbW9kZT1cIm92ZXJcIiAjcmlnaHRTaWRlRGV0YWlsIGlkPVwiZWxkZXItcmlnaHQtc2lkZS1kZXRhaWxcIlxuICAgICAgICAgICAgICAgcG9zaXRpb249XCJlbmRcIlxuICAgICAgICAgICAgICAgW2ZpeGVkSW5WaWV3cG9ydF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgIFthdXRvRm9jdXNdPVwicmlnaHRTaWRlQXV0b0ZvY3VzXCJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlQ2xvc2VdPVwidHJ1ZVwiIChrZXlkb3duLmVzY2FwZSk9XCJvbkVzY2FwZVJpZ2h0U2lkZSgkZXZlbnQpXCI+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNpZGVDb250ZW50UmlnaHQgfHwgZmFsbGJhY2tTaWRlQ29udGVudFJpZ2h0O1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L21hdC1zaWRlbmF2PlxuXG48L21hdC1zaWRlbmF2LWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNmYWxsYmFja1NpZGVDb250ZW50TGVmdD5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZmxleFwiPlxuICAgIDxwIGNsYXNzPVwibm9zZWxlY3RcIj5ObyBMZWZ0IFNpZGUgQ29udGVudCBEZWZpbmVkITwvcD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZhbGxiYWNrU2lkZUNvbnRlbnRSaWdodD5cbiAgPHJvdXRlci1vdXRsZXQgbmFtZT1cInNpZGVcIiBjbGFzcz1cInJvdXRlci1mbGV4XCI+PC9yb3V0ZXItb3V0bGV0PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmYWxsYmFja0NlbnRlckNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGxcIj5cblxuICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIoaGVhZGVyVGVtcGxhdGUkIHwgYXN5bmMpIHx8IGRlZmF1bHRIZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBDZW50ZXIgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIihjZW50ZXJUZW1wbGF0ZSQgfCBhc3luYykgfHwgZGVmYXVsdENlbnRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIEZvb3RlciAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiKGZvb3RlclRlbXBsYXRlJCB8IGFzeW5jKSB8fCBkZWZhdWx0Rm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SGVhZGVyVGVtcGxhdGU+XG4gIDxlbGRlci10b29sYmFyIFtjb2xvcl09XCJjb2xvclwiIGNsYXNzPVwiZmxleC1ub25lXCIgc3R5bGU9XCJtYXgtd2lkdGg6IDEwMCU7IG1pbi13aWR0aDogMTAwJVwiID5cbiAgICA8IS0tIFRvb2xiYXIgUHJlZml4OiBTaWRlbmF2IFRvZ2dsZSAtLT5cbiAgICA8bWF0LXRvb2xiYXIgKm5nSWY9XCJzaWRlTmF2VG9nZ2xlRW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgIFtjb2xvcl09XCJtZW51Q29sb3IkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtbm9uZVwiIHN0eWxlPVwid2lkdGg6IGF1dG9cIlxuICAgID5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtjb2xvcl09XCJtZW51SWNvbkNvbG9yJCB8IGFzeW5jXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJ0b2dnbGVTaWRlTmF2KClcIj5cbiAgICAgICAgPG1hdC1pY29uPm1lbnU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9tYXQtdG9vbGJhcj5cbiAgPC9lbGRlci10b29sYmFyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2VudGVyVGVtcGxhdGU+XG4gIDwhLS0gUHJpbWFyeSBSb3V0ZXIgT3V0bGV0IC0tPlxuICA8cm91dGVyLW91dGxldCBjbGFzcz1cInJvdXRlci1mbGV4XCI+PC9yb3V0ZXItb3V0bGV0PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Rm9vdGVyVGVtcGxhdGU+XG4gIDwhLS0gRGVmYXVsdCBGb290ZXIgaXMgZW1wdHkgLS0+XG48L25nLXRlbXBsYXRlPlxuIl19
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2hlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zaGVsbC9zaGVsbC9lbGRlci1zaGVsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoZWxsL3NoZWxsL2VsZGVyLXNoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUdMLFdBQVcsRUFDWCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUTlDLE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsWUFDUyxXQUE2QixFQUM3QixhQUErQjtRQUQvQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO0lBQUksQ0FBQzs7d0hBSGxDLDJCQUEyQjs0R0FBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkI7a0JBRHZDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsc0JBQXNCLEVBQUM7O0FBUTdDLE1BQU0sT0FBTyw0QkFBNEI7SUFDdkMsWUFDUyxXQUE2QixFQUM3QixhQUErQjtRQUQvQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENB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Q0FBQzs7Z0hBak1VLG1CQUFtQjtvR0FBbkIsbUJBQW1CLG9UQW9CaEIsMkJBQTJCLDJCQUFVLFdBQVcsOEVBR2hELDRCQUE0QiwyQkFBVSxXQUFXLDJFQUdqRCx5QkFBeUIsMkJBQVUsV0FBVyw2S0M5RTlELDI0RkFzRkE7MkZEbENhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU07d1BBY3hDLG9CQUFvQjtzQkFEMUIsS0FBSztnQkFJQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXZFLGdCQUFnQjtzQkFEdEIsWUFBWTt1QkFBQyw0QkFBNEIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJeEUsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJckUsZUFBZTtzQkFEckIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBZXZDLEtBQUs7c0JBRFgsS0FBSztnQkFzRUssU0FBUztzQkFEbkIsS0FBSztnQkFVSyxhQUFhO3NCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyU2hlbGxTZXJ2aWNlfSBmcm9tICcuLi9lbGRlci1zaGVsbC5zZXJ2aWNlJztcbmltcG9ydCB7TWF0U2lkZW5hdn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQge0VsZGVyUm91dGVPdXRsZXREcmF3ZXJTZXJ2aWNlfSBmcm9tICcuLi9kcmF3ZXJzL2VsZGVyLXJvdXRlLW91dGxldC1kcmF3ZXIuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VGhlbWVQYWxldHRlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7RWxkZXJUaGVtZVNlcnZpY2V9IGZyb20gJy4uLy4uL3RoZW1lL2VsZGVyLXRoZW1lLnNlcnZpY2UnO1xuaW1wb3J0IHtUaGVtZVNwZWN9IGZyb20gJy4uLy4uL3RoZW1lL3RoZW1lLXNwZWMnO1xuaW1wb3J0IHtHbG9iYWxEcmFnRHJvcFNlcnZpY2V9IGZyb20gJy4uLy4uL2ZpbGVzL2RyYWctbi1kcm9wL2dsb2JhbC1kcmFnLWRyb3Auc2VydmljZSc7XG5cblxuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICdbZWxkZXJTaGVsbFNpZGVMZWZ0XSd9KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2hlbGxTaWRlTGVmdERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikgeyB9XG59XG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnW2VsZGVyU2hlbGxTaWRlUmlnaHRdJ30pXG5leHBvcnQgY2xhc3MgRWxkZXJTaGVsbFNpZGVSaWdodERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikgeyB9XG59XG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnW2VsZGVyU2hlbGxDZW50ZXJdJ30pXG5leHBvcnQgY2xhc3MgRWxkZXJTaGVsbENlbnRlckRpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikgeyB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLXNoZWxsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXNoZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItc2hlbGwuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTaGVsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKCdFbGRlclNoZWxsQ29tcG9uZW50Jyk7XG5cbiAgLyoqIENvbnRyb2xzIGlmIHRoZSBTaWRlTmF2IHRvZ2dsZSBzaG91bGQgYmUgZGlzcGxheWVkLiBEZWZhdWx0OiB0cnVlICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaWRlTmF2VG9nZ2xlRW5hYmxlZCA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGxlZnRTaWRlQXV0b0ZvY3VzID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJpZ2h0U2lkZUF1dG9Gb2N1cyA9IGZhbHNlO1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTaGVsbFNpZGVMZWZ0RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHNpZGVDb250ZW50TGVmdDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKEVsZGVyU2hlbGxTaWRlUmlnaHREaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgc2lkZUNvbnRlbnRSaWdodDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKEVsZGVyU2hlbGxDZW50ZXJEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgY2VudGVyQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAVmlld0NoaWxkKCdyaWdodFNpZGVEZXRhaWwnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgcmlnaHRTaWRlRHJhd2VyOiBNYXRTaWRlbmF2O1xuXG4gIHB1YmxpYyByaWdodFNpZGVPdXRsZXROYW1lID0gJ3NpZGUnO1xuXG4gIHB1YmxpYyBsZWZ0U2lkZUNvbnRlbnRPcGVuJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuXG4gIHB1YmxpYyByZWFkb25seSBoZWFkZXJUZW1wbGF0ZSQ6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG4gIHB1YmxpYyByZWFkb25seSBjZW50ZXJUZW1wbGF0ZSQ6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG4gIHB1YmxpYyByZWFkb25seSBmb290ZXJUZW1wbGF0ZSQ6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55Pj47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbG9yOiBUaGVtZVBhbGV0dGUgPSAncHJpbWFyeSc7XG5cbiAgcHVibGljIHJlYWRvbmx5IG1lbnVDb2xvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZW1lUGFsZXR0ZT4oJ2FjY2VudCcpO1xuICBwdWJsaWMgcmVhZG9ubHkgbWVudUljb25Db2xvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZW1lUGFsZXR0ZT4odW5kZWZpbmVkKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNoZWxsU2VydmljZTogRWxkZXJTaGVsbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBvdXRsZXREcmF3ZXJTZXJ2aWNlOiBFbGRlclJvdXRlT3V0bGV0RHJhd2VyU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRoZW1lU2VydmljZTogRWxkZXJUaGVtZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBnbG9iYWxEcmFnRHJvcFNlcnZpY2U6IEdsb2JhbERyYWdEcm9wU2VydmljZVxuICApIHtcbiAgICB0aGlzLmhlYWRlclRlbXBsYXRlJCA9IHNoZWxsU2VydmljZS5hY3RpdmVTbG90VGVtcGxhdGUoJ2hlYWRlcicpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5jaGVja1Nvb24oKSlcbiAgICApO1xuICAgIHRoaXMuY2VudGVyVGVtcGxhdGUkID0gc2hlbGxTZXJ2aWNlLmFjdGl2ZVNsb3RUZW1wbGF0ZSgnY2VudGVyJykucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmNoZWNrU29vbigpKVxuICAgICk7XG4gICAgdGhpcy5mb290ZXJUZW1wbGF0ZSQgPSBzaGVsbFNlcnZpY2UuYWN0aXZlU2xvdFRlbXBsYXRlKCdmb290ZXInKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuY2hlY2tTb29uKCkpXG4gICAgKTtcblxuICAgIHRoaXMuZ2xvYmFsRHJhZ0Ryb3BTZXJ2aWNlLnByZXZlbnREZWZhdWx0RmlsZUxvYWRpbmcoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm91dGxldERyYXdlclNlcnZpY2UucmVnaXN0ZXJPdXRsZXREcmF3ZXIoXG4gICAgICB0aGlzLnJpZ2h0U2lkZU91dGxldE5hbWUsXG4gICAgICB0aGlzLnJpZ2h0U2lkZURyYXdlclxuICAgICk7XG5cbiAgICB0aGlzLm91dGxldERyYXdlclNlcnZpY2VcbiAgICAgIC5kcmF3ZXJWaXNpYmlsaXR5Q2hhbmdlXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGRyYXdlciA9PiAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSk7XG5cbiAgICB0aGlzLmxlZnRTaWRlQ29udGVudE9wZW4kID0gIHRoaXMuc2hlbGxTZXJ2aWNlLm5hdmlnYXRpb25PcGVuQ2hhbmdlO1xuXG4gICAgdGhpcy50aGVtZVNlcnZpY2UuYWN0aXZlVGhlbWUkLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICApLnN1YnNjcmliZSh0aGVtZSA9PiB0aGlzLmFkanVzdENvbG9yc0ZvclRoZW1lKHRoZW1lKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtZW51Q29sb3IoYzogVGhlbWVQYWxldHRlKSB7XG4gICAgdGhpcy5tZW51Q29sb3IkLm5leHQoYyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbnVDb2xvcigpOiBUaGVtZVBhbGV0dGUge1xuICAgIHJldHVybiB0aGlzLm1lbnVDb2xvciQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWVudUljb25Db2xvcihjOiBUaGVtZVBhbGV0dGUpIHtcbiAgICB0aGlzLm1lbnVJY29uQ29sb3IkLm5leHQoYyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lbnVJY29uQ29sb3IoKTogVGhlbWVQYWxldHRlIHtcbiAgICByZXR1cm4gdGhpcy5tZW51SWNvbkNvbG9yJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGNsb3NlTGVmdFNpZGVDb250ZW50KCkge1xuICAgIHRoaXMuc2hlbGxTZXJ2aWNlLmNsb3NlU2lkZU5hdigpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVNpZGVOYXYoKTogdm9pZCB7XG4gICAgdGhpcy5zaGVsbFNlcnZpY2UudG9nZ2xlU2lkZW5hdigpO1xuICB9XG5cbiAgcHVibGljIG9uQmFja2Ryb3BDbGljayhldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hlbGxTZXJ2aWNlLmlzU2lkZUNvbnRlbnRBY3RpdmUoKSkge1xuICAgICAgdGhpcy5zaGVsbFNlcnZpY2UuY2xvc2VTaWRlQ29udGVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkVzY2FwZVJpZ2h0U2lkZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKHRhcmdldCAmJiB0aGlzLmlzQ29udGFpbmVkKHRhcmdldCwgJ2VsZGVyLXJpZ2h0LXNpZGUtZGV0YWlsJykpIHtcbiAgICAgIC8vIEVuc3VyZSB3ZSBvbmx5IHJlYWN0IHRvIEVzYyBFdmVudHMgdGFyZ2V0ZWQgYXQgb3VyIHNpZGUgbmF2IVxuICAgICAgaWYgKHRoaXMuc2hlbGxTZXJ2aWNlLmlzU2lkZUNvbnRlbnRBY3RpdmUoKSkge1xuICAgICAgICB0aGlzLnNoZWxsU2VydmljZS5jbG9zZVNpZGVDb250ZW50KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBhZGp1c3RDb2xvcnNGb3JUaGVtZSh0aGVtZTogVGhlbWVTcGVjKTogdm9pZCB7XG4gICAgdGhpcy5tZW51Q29sb3IgPSB0aGVtZT8uZGFyayA/IHVuZGVmaW5lZCA6ICdhY2NlbnQnO1xuICAgIHRoaXMubWVudUljb25Db2xvciA9IHRoZW1lPy5kYXJrID8gJ3ByaW1hcnknIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbnRhaW5lZChjaGlsZDogSFRNTEVsZW1lbnQsIGlkOiBzdHJpbmcpOiBib29sZWFuIHtcblxuICAgIGlmIChjaGlsZC5pZCA9PT0gaWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCBtYXhEZXB0aCA9IDE7XG4gICAgbGV0IGRlcHRoID0gMDtcbiAgICBsZXQgbm9kZSA9IGNoaWxkLnBhcmVudE5vZGUgYXMgSFRNTEVsZW1lbnQ7XG4gICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLmlkID09PSBpZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGUgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBpZiAobWF4RGVwdGggPj0gKytkZXB0aCkgeyBicmVhazsgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrU29vbigpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSwgNSk7XG4gIH1cbn1cbiIsIjxtYXQtc2lkZW5hdi1jb250YWluZXJcbiAgZWxkZXJUaGVtZUFwcGxpZXJcbiAgY2xhc3M9XCJmdWxsLXdpZHRoXCJcbiAgKGJhY2tkcm9wQ2xpY2spPVwib25CYWNrZHJvcENsaWNrKCRldmVudClcIlxuPlxuXG4gIDwhLS0gTGVmdCBTaWRlIE5hdiAtLT5cbiAgPG1hdC1zaWRlbmF2IHBvc2l0aW9uPVwic3RhcnRcIlxuICAgICAgICAgICAgICAgbW9kZT1cIm92ZXJcIlxuICAgICAgICAgICAgICAgW2ZpeGVkSW5WaWV3cG9ydF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgIFthdXRvRm9jdXNdPVwibGVmdFNpZGVBdXRvRm9jdXNcIlxuICAgICAgICAgICAgICAgW29wZW5lZF09XCJsZWZ0U2lkZUNvbnRlbnRPcGVuJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgIChjbG9zZWQpPVwiY2xvc2VMZWZ0U2lkZUNvbnRlbnQoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGwgZWxkZXItc2lkZS1uYXZcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaWRlQ29udGVudExlZnQgfHwgZmFsbGJhY2tTaWRlQ29udGVudExlZnQ7XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbWF0LXNpZGVuYXY+XG5cbiAgPCEtLSBNYWluIENvbnRlbnQgLS0+XG4gIDxtYXQtc2lkZW5hdi1jb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGxcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjZW50ZXJDb250ZW50IHx8IGZhbGxiYWNrQ2VudGVyQ29udGVudDtcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtc2lkZW5hdi1jb250ZW50PlxuXG4gIDwhLS0gUmlnaHQgU2lkZSBEZXRhaWwgLS0+XG4gIDxtYXQtc2lkZW5hdiBtb2RlPVwib3ZlclwiICNyaWdodFNpZGVEZXRhaWwgaWQ9XCJlbGRlci1yaWdodC1zaWRlLWRldGFpbFwiXG4gICAgICAgICAgICAgICBwb3NpdGlvbj1cImVuZFwiXG4gICAgICAgICAgICAgICBbZml4ZWRJblZpZXdwb3J0XT1cInRydWVcIlxuICAgICAgICAgICAgICAgW2F1dG9Gb2N1c109XCJyaWdodFNpZGVBdXRvRm9jdXNcIlxuICAgICAgICAgICAgICAgW2Rpc2FibGVDbG9zZV09XCJ0cnVlXCIgKGtleWRvd24uZXNjYXBlKT1cIm9uRXNjYXBlUmlnaHRTaWRlKCRldmVudClcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmdWxsXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2lkZUNvbnRlbnRSaWdodCB8fCBmYWxsYmFja1NpZGVDb250ZW50UmlnaHQ7XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbWF0LXNpZGVuYXY+XG5cbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2ZhbGxiYWNrU2lkZUNvbnRlbnRMZWZ0PlxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmbGV4XCI+XG4gICAgPHAgY2xhc3M9XCJub3NlbGVjdFwiPk5vIExlZnQgU2lkZSBDb250ZW50IERlZmluZWQhPC9wPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZmFsbGJhY2tTaWRlQ29udGVudFJpZ2h0PlxuICA8cm91dGVyLW91dGxldCBuYW1lPVwic2lkZVwiIGNsYXNzPVwicm91dGVyLWZsZXhcIj48L3JvdXRlci1vdXRsZXQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZhbGxiYWNrQ2VudGVyQ29udGVudD5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbFwiPlxuXG4gICAgPCEtLSBIZWFkZXIgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIihoZWFkZXJUZW1wbGF0ZSQgfCBhc3luYykgfHwgZGVmYXVsdEhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIENlbnRlciAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiKGNlbnRlclRlbXBsYXRlJCB8IGFzeW5jKSB8fCBkZWZhdWx0Q2VudGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gRm9vdGVyIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIoZm9vdGVyVGVtcGxhdGUkIHwgYXN5bmMpIHx8IGRlZmF1bHRGb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRIZWFkZXJUZW1wbGF0ZT5cbiAgPGVsZGVyLXRvb2xiYXIgW2NvbG9yXT1cImNvbG9yXCIgY2xhc3M9XCJmbGV4LW5vbmVcIiBzdHlsZT1cIm1heC13aWR0aDogMTAwJTsgbWluLXdpZHRoOiAxMDAlXCIgPlxuICAgIDwhLS0gVG9vbGJhciBQcmVmaXg6IFNpZGVuYXYgVG9nZ2xlIC0tPlxuICAgIDxtYXQtdG9vbGJhciAqbmdJZj1cInNpZGVOYXZUb2dnbGVFbmFibGVkXCJcbiAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIm1lbnVDb2xvciQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ub25lXCIgc3R5bGU9XCJ3aWR0aDogYXV0b1wiXG4gICAgPlxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW2NvbG9yXT1cIm1lbnVJY29uQ29sb3IkIHwgYXN5bmNcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVNpZGVOYXYoKVwiPlxuICAgICAgICA8bWF0LWljb24+bWVudTwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L21hdC10b29sYmFyPlxuICA8L2VsZGVyLXRvb2xiYXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRDZW50ZXJUZW1wbGF0ZT5cbiAgPCEtLSBQcmltYXJ5IFJvdXRlciBPdXRsZXQgLS0+XG4gIDxyb3V0ZXItb3V0bGV0IGNsYXNzPVwicm91dGVyLWZsZXhcIj48L3JvdXRlci1vdXRsZXQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRGb290ZXJUZW1wbGF0ZT5cbiAgPCEtLSBEZWZhdWx0IEZvb3RlciBpcyBlbXB0eSAtLT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -124,9 +124,9 @@ export class ElderShellNavigationToggleComponent {
124
124
  return parts.join('/');
125
125
  }
126
126
  }
127
- ElderShellNavigationToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderShellNavigationToggleComponent, deps: [{ token: i1.Router }, { token: i2.ElderShellService }], target: i0.ɵɵFactoryTarget.Component });
128
- ElderShellNavigationToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ElderShellNavigationToggleComponent, selector: "elder-shell-nav-toggle", inputs: { roots: "roots", hide: "hide" }, ngImport: i0, template: "\n<button mat-icon-button type=\"button\" (click)=\"onClick()\" *ngIf=\"showComponent()\">\n <mat-icon>{{icon | async}}</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderShellNavigationToggleComponent, decorators: [{
127
+ ElderShellNavigationToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderShellNavigationToggleComponent, deps: [{ token: i1.Router }, { token: i2.ElderShellService }], target: i0.ɵɵFactoryTarget.Component });
128
+ ElderShellNavigationToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderShellNavigationToggleComponent, selector: "elder-shell-nav-toggle", inputs: { roots: "roots", hide: "hide" }, ngImport: i0, template: "\n<button mat-icon-button type=\"button\" (click)=\"onClick()\" *ngIf=\"showComponent()\">\n <mat-icon>{{icon | async}}</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderShellNavigationToggleComponent, decorators: [{
130
130
  type: Component,
131
131
  args: [{ selector: 'elder-shell-nav-toggle', template: "\n<button mat-icon-button type=\"button\" (click)=\"onClick()\" *ngIf=\"showComponent()\">\n <mat-icon>{{icon | async}}</mat-icon>\n</button>\n" }]
132
132
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.ElderShellService }]; }, propDecorators: { roots: [{
@@ -11,9 +11,9 @@ export class ElderTabDirective {
11
11
  this.tab = tab;
12
12
  }
13
13
  }
14
- ElderTabDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTabDirective, deps: [{ token: i1.MatTab }], target: i0.ɵɵFactoryTarget.Directive });
15
- ElderTabDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ElderTabDirective, selector: "[elderTab]", inputs: { id: ["elderTab", "id"] }, ngImport: i0 });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTabDirective, decorators: [{
14
+ ElderTabDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTabDirective, deps: [{ token: i1.MatTab }], target: i0.ɵɵFactoryTarget.Directive });
15
+ ElderTabDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderTabDirective, selector: "[elderTab]", inputs: { id: ["elderTab", "id"] }, ngImport: i0 });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTabDirective, decorators: [{
17
17
  type: Directive,
18
18
  args: [{
19
19
  selector: '[elderTab]'
@@ -235,9 +235,9 @@ export class ElderTabGroupRoutingDirective {
235
235
  * Prefix used to indicate and index-based tab marker.
236
236
  */
237
237
  ElderTabGroupRoutingDirective.TAB_INDEX_PREFIX = 'idx:';
238
- ElderTabGroupRoutingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTabGroupRoutingDirective, deps: [{ token: i1.ElderUrlFragmentParamsService }, { token: i2.MatTabGroup }], target: i0.ɵɵFactoryTarget.Directive });
239
- ElderTabGroupRoutingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ElderTabGroupRoutingDirective, selector: "[elderTabGroupRouting]", inputs: { tabGroupQueryParamKey: ["elderTabGroupRouting", "tabGroupQueryParamKey"] }, queries: [{ propertyName: "tabs", predicate: MatTab }, { propertyName: "elderTabs", predicate: ElderTabDirective }], exportAs: ["elderTabGroupRouting"], ngImport: i0 });
240
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTabGroupRoutingDirective, decorators: [{
238
+ ElderTabGroupRoutingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTabGroupRoutingDirective, deps: [{ token: i1.ElderUrlFragmentParamsService }, { token: i2.MatTabGroup }], target: i0.ɵɵFactoryTarget.Directive });
239
+ ElderTabGroupRoutingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderTabGroupRoutingDirective, selector: "[elderTabGroupRouting]", inputs: { tabGroupQueryParamKey: ["elderTabGroupRouting", "tabGroupQueryParamKey"] }, queries: [{ propertyName: "tabs", predicate: MatTab }, { propertyName: "elderTabs", predicate: ElderTabDirective }], exportAs: ["elderTabGroupRouting"], ngImport: i0 });
240
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTabGroupRoutingDirective, decorators: [{
241
241
  type: Directive,
242
242
  args: [{
243
243
  selector: '[elderTabGroupRouting]',
@@ -8,12 +8,12 @@ export * from './elder-tab/elder-tab.directive';
8
8
  export * from './elder-tab-group-routing/elder-tab-group-routing.directive';
9
9
  export class ElderTabModule {
10
10
  }
11
- ElderTabModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTabModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- ElderTabModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0", ngImport: i0, type: ElderTabModule, declarations: [ElderTabDirective,
11
+ ElderTabModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTabModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ ElderTabModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: ElderTabModule, declarations: [ElderTabDirective,
13
13
  ElderTabGroupRoutingDirective], imports: [CommonModule, MatCommonModule], exports: [ElderTabDirective,
14
14
  ElderTabGroupRoutingDirective] });
15
- ElderTabModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTabModule, imports: [CommonModule, MatCommonModule] });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTabModule, decorators: [{
15
+ ElderTabModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTabModule, imports: [CommonModule, MatCommonModule] });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTabModule, decorators: [{
17
17
  type: NgModule,
18
18
  args: [{
19
19
  imports: [
@@ -51,9 +51,9 @@ export class ElderThemeApplierDirective {
51
51
  }
52
52
  }
53
53
  }
54
- ElderThemeApplierDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderThemeApplierDirective, deps: [{ token: i1.ElderThemeService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
55
- ElderThemeApplierDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ElderThemeApplierDirective, selector: "[elderThemeApplier]", ngImport: i0 });
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderThemeApplierDirective, decorators: [{
54
+ ElderThemeApplierDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderThemeApplierDirective, deps: [{ token: i1.ElderThemeService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
55
+ ElderThemeApplierDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderThemeApplierDirective, selector: "[elderThemeApplier]", ngImport: i0 });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderThemeApplierDirective, decorators: [{
57
57
  type: Directive,
58
58
  args: [{
59
59
  selector: '[elderThemeApplier]'
@@ -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.2.0", 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.2.0", ngImport: i0, type: ElderThemePreferenceService, providedIn: 'root' });
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderThemePreferenceService, decorators: [{
66
+ ElderThemePreferenceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", 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.2.7", ngImport: i0, type: ElderThemePreferenceService, providedIn: 'root' });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", 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.2.0", 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.2.0", 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.2.0", ngImport: i0, type: ElderThemeToggleComponent, decorators: [{
66
+ ElderThemeToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", 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.2.7", 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.2.7", 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.2.0", 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.2.0", type: ElderThemeDirective, selector: "[elderTheme]", ngImport: i0 });
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderThemeDirective, decorators: [{
49
+ ElderThemeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", 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.2.7", type: ElderThemeDirective, selector: "[elderTheme]", ngImport: i0 });
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", 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.2.0", ngImport: i0, type: ElderThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
- ElderThemeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.0", ngImport: i0, type: ElderThemeModule, declarations: [ElderThemeApplierDirective,
25
+ ElderThemeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
+ ElderThemeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", 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.2.0", ngImport: i0, type: ElderThemeModule, providers: [
34
+ ElderThemeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", 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.2.0", ngImport: i0, type: ElderThemeModule, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderThemeModule, decorators: [{
46
46
  type: NgModule,
47
47
  args: [{
48
48
  imports: [
@@ -112,9 +112,9 @@ export class ElderThemeService {
112
112
  }
113
113
  }
114
114
  }
115
- ElderThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
116
- ElderThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderThemeService, providedIn: 'root' });
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderThemeService, decorators: [{
115
+ ElderThemeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderThemeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
116
+ ElderThemeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderThemeService, providedIn: 'root' });
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", 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.2.0", ngImport: i0, type: CustomDateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
19
- CustomDateAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: CustomDateAdapter });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: CustomDateAdapter, decorators: [{
18
+ CustomDateAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CustomDateAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
19
+ CustomDateAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CustomDateAdapter });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", 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.2.0", 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.2.0", 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.2.7", 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.2.7", 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.2.0", ngImport: i0, type: ElderDurationInputComponent, decorators: [{
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", 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 },
@@ -70,9 +70,9 @@ export class ElderDateSwitcherComponent extends FormFieldBaseComponent {
70
70
  : a === b;
71
71
  }
72
72
  }
73
- ElderDateSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderDateSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
74
- ElderDateSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ElderDateSwitcherComponent, selector: "elder-date-switcher", inputs: { datePickerEnabled: "datePickerEnabled", datePickerTouchUi: "datePickerTouchUi", dense: "dense", date: "date" }, outputs: { dateChange: "dateChange" }, host: { classAttribute: "elder-form-field-host" }, providers: buildFormIntegrationProviders(ElderDateSwitcherComponent), usesInheritance: true, ngImport: i0, template: "<mat-form-field subscriptSizing=\"dynamic\" class=\"flex full\" [elderDense]=\"dense\">\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n <elder-local-date-input\n arrows today autoDatePicker datePickerTouchUi\n [datePickerEnabled]=\"false\"\n [datePickerTouchUi]=\"datePickerTouchUi\"\n [value]=\"value$ | async\"\n (valueUpdated)=\"updateValue($event)\"\n >\n </elder-local-date-input>\n</mat-form-field>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "component", type: i4.ElderLocalDateInputComponent, selector: "elder-local-date-input", inputs: ["zone", "autoDatePicker", "arrows", "today", "center", "datePickerTouchUi", "allowNull", "datePickerEnabled", "isoValue", "dateValue", "isoDateValue"], outputs: ["blurred", "valueUpdatedBlur", "isoValueChange", "dateValueChange", "isoDateValueChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], viewProviders: [ViewProviders.ParentControlContainer], changeDetection: i0.ChangeDetectionStrategy.OnPush });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderDateSwitcherComponent, decorators: [{
73
+ ElderDateSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderDateSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
74
+ ElderDateSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderDateSwitcherComponent, selector: "elder-date-switcher", inputs: { datePickerEnabled: "datePickerEnabled", datePickerTouchUi: "datePickerTouchUi", dense: "dense", date: "date" }, outputs: { dateChange: "dateChange" }, host: { classAttribute: "elder-form-field-host" }, providers: buildFormIntegrationProviders(ElderDateSwitcherComponent), usesInheritance: true, ngImport: i0, template: "<mat-form-field subscriptSizing=\"dynamic\" class=\"flex full\" [elderDense]=\"dense\">\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n <elder-local-date-input\n arrows today autoDatePicker datePickerTouchUi\n [datePickerEnabled]=\"false\"\n [datePickerTouchUi]=\"datePickerTouchUi\"\n [value]=\"value$ | async\"\n (valueUpdated)=\"updateValue($event)\"\n >\n </elder-local-date-input>\n</mat-form-field>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "component", type: i4.ElderLocalDateInputComponent, selector: "elder-local-date-input", inputs: ["zone", "autoDatePicker", "arrows", "today", "center", "datePickerTouchUi", "allowNull", "datePickerEnabled", "isoValue", "dateValue", "isoDateValue"], outputs: ["blurred", "valueUpdatedBlur", "isoValueChange", "dateValueChange", "isoDateValueChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], viewProviders: [ViewProviders.ParentControlContainer], changeDetection: i0.ChangeDetectionStrategy.OnPush });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderDateSwitcherComponent, decorators: [{
76
76
  type: Component,
77
77
  args: [{ selector: 'elder-date-switcher', changeDetection: ChangeDetectionStrategy.OnPush, host: { 'class': 'elder-form-field-host' }, providers: buildFormIntegrationProviders(ElderDateSwitcherComponent), viewProviders: [ViewProviders.ParentControlContainer], template: "<mat-form-field subscriptSizing=\"dynamic\" class=\"flex full\" [elderDense]=\"dense\">\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n <elder-local-date-input\n arrows today autoDatePicker datePickerTouchUi\n [datePickerEnabled]=\"false\"\n [datePickerTouchUi]=\"datePickerTouchUi\"\n [value]=\"value$ | async\"\n (valueUpdated)=\"updateValue($event)\"\n >\n </elder-local-date-input>\n</mat-form-field>\n" }]
78
78
  }], ctorParameters: function () { return []; }, propDecorators: { datePickerEnabled: [{
@@ -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.2.0", 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.2.0", 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.2.7", 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.2.7", 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.2.0", ngImport: i0, type: ElderDateTimeInputComponent, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", 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,11 +148,11 @@ export class ElderIntervalInputComponent extends ElderFormFieldControlBase {
148
148
  }));
149
149
  }
150
150
  }
151
- ElderIntervalInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", 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.2.0", 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.2.7", 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.2.7", type: ElderIntervalInputComponent, selector: "elder-interval-input", inputs: { zone: "zone", mode: "mode", isoValue: "isoValue" }, outputs: { isoValueChange: "isoValueChange" }, providers: [
153
153
  { provide: MatFormFieldControl, useExisting: ElderIntervalInputComponent },
154
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.2.0", ngImport: i0, type: ElderIntervalInputComponent, decorators: [{
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", 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 },