@elderbyte/ngx-starter 14.12.0-beta4 → 15.0.0-mdc

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 (467) hide show
  1. package/_index.scss +4 -3
  2. package/esm2020/lib/common/enums/elder-enum-translation.service.mjs +4 -4
  3. package/esm2020/lib/common/forms/elder-form-field-control-base.directive.mjs +4 -4
  4. package/esm2020/lib/common/forms/elder-from-field-base.mjs +4 -4
  5. package/esm2020/lib/common/forms/elder-from-field-customizable-base.mjs +52 -0
  6. package/esm2020/lib/common/forms/elder-from-field-entity-base.mjs +4 -4
  7. package/esm2020/lib/common/forms/elder-from-field-multi-entity-base.mjs +4 -4
  8. package/esm2020/lib/common/forms/form-field-base.component.mjs +10 -4
  9. package/esm2020/lib/common/forms/multi-model-base.component.mjs +4 -4
  10. package/esm2020/lib/common/forms/template-composite-control.mjs +4 -4
  11. package/esm2020/lib/common/forms/value-accessor-base.mjs +4 -4
  12. package/esm2020/lib/common/http/http-client-builder.service.mjs +4 -4
  13. package/esm2020/lib/common/http/http-client-pristine.mjs +4 -4
  14. package/esm2020/lib/common/http/transfer/data-transfer-factory.mjs +4 -4
  15. package/esm2020/lib/common/url/elder-router.service.mjs +4 -4
  16. package/esm2020/lib/common/url/elder-url-fragment-params.service.mjs +4 -4
  17. package/esm2020/lib/components/access-denied/elder-access-denied.component.mjs +5 -5
  18. package/esm2020/lib/components/access-denied/elder-access-denied.module.mjs +5 -5
  19. package/esm2020/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +6 -6
  20. package/esm2020/lib/components/auditing/elder-audit.module.mjs +5 -5
  21. package/esm2020/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +4 -4
  22. package/esm2020/lib/components/button-group/elder-button-group.module.mjs +5 -5
  23. package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +4 -4
  24. package/esm2020/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +5 -5
  25. package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +5 -5
  26. package/esm2020/lib/components/card-organizer/elder-card-organizer.module.mjs +5 -5
  27. package/esm2020/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +4 -4
  28. package/esm2020/lib/components/cards/elder-card/elder-card.component.mjs +40 -51
  29. package/esm2020/lib/components/cards/elder-card/elder-card.module.mjs +9 -8
  30. package/esm2020/lib/components/connectivity/elder-connectivity.module.mjs +5 -5
  31. package/esm2020/lib/components/connectivity/elder-connectivity.service.mjs +4 -4
  32. package/esm2020/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +4 -4
  33. package/esm2020/lib/components/containers/elder-containers.module.mjs +5 -5
  34. package/esm2020/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +4 -4
  35. package/esm2020/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +4 -4
  36. package/esm2020/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +4 -4
  37. package/esm2020/lib/components/csv/elder-csv.module.mjs +5 -5
  38. package/esm2020/lib/components/currency/elder-currency.module.mjs +5 -5
  39. package/esm2020/lib/components/currency/elder-currency.pipe.mjs +4 -4
  40. package/esm2020/lib/components/data-transfer/elder-data-transfer.module.mjs +5 -5
  41. package/esm2020/lib/components/data-transfer/elder-data-transfer.service.mjs +4 -4
  42. package/esm2020/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +5 -5
  43. package/esm2020/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +4 -4
  44. package/esm2020/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +4 -4
  45. package/esm2020/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +5 -5
  46. package/esm2020/lib/components/data-view/base/elder-data-view-base.mjs +17 -10
  47. package/esm2020/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +5 -5
  48. package/esm2020/lib/components/data-view/common/elder-data-common.module.mjs +5 -5
  49. package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +8 -8
  50. package/esm2020/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +5 -5
  51. package/esm2020/lib/components/data-view/common/selection/data-context-selection.directive.mjs +4 -4
  52. package/esm2020/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +5 -5
  53. package/esm2020/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +13 -12
  54. package/esm2020/lib/components/data-view/grid/elder-grid.module.mjs +9 -8
  55. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +4 -4
  56. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +5 -5
  57. package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +4 -4
  58. package/esm2020/lib/components/data-view/table/elder-number-cell.directive.mjs +4 -4
  59. package/esm2020/lib/components/data-view/table/elder-paginator-intl.mjs +4 -4
  60. package/esm2020/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +4 -4
  61. package/esm2020/lib/components/data-view/table/elder-table/elder-table.component.mjs +9 -8
  62. package/esm2020/lib/components/data-view/table/elder-table-column.directive.mjs +4 -4
  63. package/esm2020/lib/components/data-view/table/elder-table-extension.directive.mjs +4 -4
  64. package/esm2020/lib/components/data-view/table/elder-table-root.directive.mjs +4 -4
  65. package/esm2020/lib/components/data-view/table/elder-table-row.directive.mjs +4 -4
  66. package/esm2020/lib/components/data-view/table/elder-table-sort.directive.mjs +4 -4
  67. package/esm2020/lib/components/data-view/table/elder-table.module.mjs +9 -8
  68. package/esm2020/lib/components/data-view/table/model/elder-table-model.mjs +4 -4
  69. package/esm2020/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +5 -5
  70. package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +6 -26
  71. package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +5 -5
  72. package/esm2020/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +7 -7
  73. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +4 -4
  74. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +4 -4
  75. package/esm2020/lib/components/errors/elder-error.module.mjs +5 -5
  76. package/esm2020/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +6 -6
  77. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +5 -5
  78. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +5 -5
  79. package/esm2020/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +4 -4
  80. package/esm2020/lib/components/files/elder-file-drop-zone.directive.mjs +4 -4
  81. package/esm2020/lib/components/files/elder-file-select.directive.mjs +4 -4
  82. package/esm2020/lib/components/files/elder-file.module.mjs +5 -5
  83. package/esm2020/lib/components/files/file-select/file-select.component.mjs +5 -5
  84. package/esm2020/lib/components/files/file-upload/file-upload.component.mjs +11 -12
  85. package/esm2020/lib/components/forms/clipboard/elder-clipboard.service.mjs +4 -4
  86. package/esm2020/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +4 -4
  87. package/esm2020/lib/components/forms/directives/elder-clipboard-put.directive.mjs +4 -4
  88. package/esm2020/lib/components/forms/directives/elder-delayed-focus.directive.mjs +4 -4
  89. package/esm2020/lib/components/forms/directives/elder-form-field-dense.directive.mjs +17 -6
  90. package/esm2020/lib/components/forms/directives/elder-form-field-label.directive.mjs +5 -4
  91. package/esm2020/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +11 -6
  92. package/esm2020/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +4 -4
  93. package/esm2020/lib/components/forms/directives/elder-forms-directives.module.mjs +44 -71
  94. package/esm2020/lib/components/forms/directives/elder-input-pattern.directive.mjs +4 -4
  95. package/esm2020/lib/components/forms/directives/elder-key-event.directive.mjs +4 -4
  96. package/esm2020/lib/components/forms/directives/elder-next-focusable.directive.mjs +4 -4
  97. package/esm2020/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +4 -4
  98. package/esm2020/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +4 -4
  99. package/esm2020/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +4 -4
  100. package/esm2020/lib/components/forms/directives/elder-touched.directive.mjs +4 -4
  101. package/esm2020/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +4 -4
  102. package/esm2020/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +85 -0
  103. package/esm2020/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +47 -0
  104. package/esm2020/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +48 -0
  105. package/esm2020/lib/components/forms/directives/validation/strategies/fallback-validation-message-strategy.mjs +6 -0
  106. package/esm2020/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +55 -0
  107. package/esm2020/lib/components/forms/directives/validation/validation-message-strategy.mjs +2 -0
  108. package/esm2020/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +40 -0
  109. package/esm2020/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +40 -0
  110. package/esm2020/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +96 -0
  111. package/esm2020/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +68 -0
  112. package/esm2020/lib/components/forms/elder-forms.module.mjs +5 -5
  113. package/esm2020/lib/components/forms/search/elder-search-context.directive.mjs +4 -4
  114. package/esm2020/lib/components/forms/search/elder-search-input.directive.mjs +4 -4
  115. package/esm2020/lib/components/forms/search/elder-search.module.mjs +5 -5
  116. package/esm2020/lib/components/forms/search/search-box/elder-search-box.component.mjs +9 -7
  117. package/esm2020/lib/components/forms/search/search-box/elder-search-panel.component.mjs +4 -4
  118. package/esm2020/lib/components/global-search/elder-global-search.component.mjs +7 -7
  119. package/esm2020/lib/components/global-search/elder-global-search.module.mjs +5 -5
  120. package/esm2020/lib/components/global-search/elder-global-search.service.mjs +4 -4
  121. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +7 -7
  122. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +5 -5
  123. package/esm2020/lib/components/headers/elder-header/elder-header.component.mjs +4 -4
  124. package/esm2020/lib/components/headers/elder-header.module.mjs +5 -5
  125. package/esm2020/lib/components/http-support/elder-http-client.service.mjs +4 -4
  126. package/esm2020/lib/components/i18n/entities/elder-i18n-entities.module.mjs +5 -5
  127. package/esm2020/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +6 -6
  128. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +4 -4
  129. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +4 -4
  130. package/esm2020/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +9 -8
  131. package/esm2020/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +4 -4
  132. package/esm2020/lib/components/i18n/entities/elder-localized-texts.directive.mjs +4 -4
  133. package/esm2020/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +4 -4
  134. package/esm2020/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +4 -4
  135. package/esm2020/lib/components/i18n/entities/picker/localisation-picker.service.mjs +4 -4
  136. package/esm2020/lib/components/i18n/language/elder-language-interceptor.mjs +4 -4
  137. package/esm2020/lib/components/i18n/language/elder-language.module.mjs +5 -5
  138. package/esm2020/lib/components/i18n/language/elder-language.service.mjs +4 -4
  139. package/esm2020/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +6 -6
  140. package/esm2020/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +5 -5
  141. package/esm2020/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +4 -4
  142. package/esm2020/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +4 -4
  143. package/esm2020/lib/components/iframes/elder-iframe.module.mjs +16 -8
  144. package/esm2020/lib/components/iframes/iframe-close.directive.mjs +4 -4
  145. package/esm2020/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +4 -4
  146. package/esm2020/lib/components/iframes/iframe-host/iframe-host.component.mjs +8 -6
  147. package/esm2020/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +4 -4
  148. package/esm2020/lib/components/iframes/iframe.service.mjs +4 -4
  149. package/esm2020/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +4 -4
  150. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +4 -4
  151. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +8 -8
  152. package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +4 -4
  153. package/esm2020/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +4 -4
  154. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +4 -4
  155. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.module.mjs +5 -5
  156. package/esm2020/lib/components/labels/elder-labels.module.mjs +5 -5
  157. package/esm2020/lib/components/labels/labels-input/labels-input.component.mjs +8 -9
  158. package/esm2020/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +273 -0
  159. package/esm2020/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +91 -0
  160. package/esm2020/lib/components/measures/directives/elder-unit-select.directive.mjs +4 -4
  161. package/esm2020/lib/components/measures/elder-measures.module.mjs +44 -20
  162. package/esm2020/lib/components/measures/elder-quantity-transform.pipe.mjs +4 -4
  163. package/esm2020/lib/components/measures/elder-quantity.pipe.mjs +4 -4
  164. package/esm2020/lib/components/measures/elder-unit.service.mjs +4 -4
  165. package/esm2020/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +33 -0
  166. package/esm2020/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +176 -0
  167. package/esm2020/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +87 -0
  168. package/esm2020/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +76 -0
  169. package/esm2020/lib/components/measures/util/elder-quantity.service.mjs +4 -4
  170. package/esm2020/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +4 -4
  171. package/esm2020/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +5 -5
  172. package/esm2020/lib/components/navigation/nav/elder-nav.module.mjs +10 -8
  173. package/esm2020/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +52 -18
  174. package/esm2020/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +115 -32
  175. package/esm2020/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +64 -8
  176. package/esm2020/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +5 -5
  177. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.module.mjs +5 -5
  178. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.service.mjs +4 -4
  179. package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +5 -5
  180. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +5 -5
  181. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +4 -4
  182. package/esm2020/lib/components/overlays/elder-overlay-origin.directive.mjs +4 -4
  183. package/esm2020/lib/components/overlays/elder-overlay-trigger.directive.mjs +4 -4
  184. package/esm2020/lib/components/overlays/elder-overlay.component.mjs +4 -4
  185. package/esm2020/lib/components/overlays/elder-overlay.module.mjs +5 -5
  186. package/esm2020/lib/components/panels/card-panel/elder-card-panel.component.mjs +4 -4
  187. package/esm2020/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +4 -4
  188. package/esm2020/lib/components/panels/elder-panel.module.mjs +5 -5
  189. package/esm2020/lib/components/panels/flat/elder-panel.component.mjs +4 -4
  190. package/esm2020/lib/components/public_api.mjs +1 -2
  191. package/esm2020/lib/components/select/auto/elder-auto-select-first.directive.mjs +4 -4
  192. package/esm2020/lib/components/select/elder-select-base.mjs +4 -4
  193. package/esm2020/lib/components/select/elder-select-chip.directive.mjs +10 -10
  194. package/esm2020/lib/components/select/elder-select-on-tab.directive.mjs +4 -4
  195. package/esm2020/lib/components/select/elder-select-value.directive.mjs +4 -4
  196. package/esm2020/lib/components/select/elder-select.module.mjs +5 -5
  197. package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +4 -4
  198. package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +44 -21
  199. package/esm2020/lib/components/select/multi/elder-multi-select-form-field.mjs +37 -13
  200. package/esm2020/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +4 -4
  201. package/esm2020/lib/components/select/popup/selection-model-popup.directive.mjs +4 -4
  202. package/esm2020/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +4 -4
  203. package/esm2020/lib/components/select/single/elder-clear-select.directive.mjs +4 -4
  204. package/esm2020/lib/components/select/single/elder-select/elder-select.component.mjs +9 -8
  205. package/esm2020/lib/components/select/single/elder-select-form-field.mjs +4 -4
  206. package/esm2020/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +10 -13
  207. package/esm2020/lib/components/select-chip-list/elder-chip-list-select.module.mjs +5 -5
  208. package/esm2020/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +4 -4
  209. package/esm2020/lib/components/shell/drawers/elder-router-outlet.service.mjs +4 -4
  210. package/esm2020/lib/components/shell/elder-shell-slot.directive.mjs +4 -4
  211. package/esm2020/lib/components/shell/elder-shell.module.mjs +5 -5
  212. package/esm2020/lib/components/shell/elder-shell.service.mjs +4 -4
  213. package/esm2020/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +4 -4
  214. package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +17 -17
  215. package/esm2020/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +4 -4
  216. package/esm2020/lib/components/tabs/elder-tab/elder-tab.directive.mjs +4 -4
  217. package/esm2020/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +4 -4
  218. package/esm2020/lib/components/tabs/elder-tab.module.mjs +5 -5
  219. package/esm2020/lib/components/theme/elder-theme-applier.directive.mjs +4 -4
  220. package/esm2020/lib/components/theme/elder-theme-preference.service.mjs +4 -4
  221. package/esm2020/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +4 -4
  222. package/esm2020/lib/components/theme/elder-theme.directive.mjs +4 -4
  223. package/esm2020/lib/components/theme/elder-theme.module.mjs +5 -5
  224. package/esm2020/lib/components/theme/elder-theme.service.mjs +4 -4
  225. package/esm2020/lib/components/time/date-adapters/custom-date-adapter.mjs +4 -4
  226. package/esm2020/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +6 -6
  227. package/esm2020/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +5 -5
  228. package/esm2020/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +6 -6
  229. package/esm2020/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +4 -4
  230. package/esm2020/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +6 -6
  231. package/esm2020/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +8 -8
  232. package/esm2020/lib/components/time/elder-time.module.mjs +9 -9
  233. package/esm2020/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +6 -6
  234. package/esm2020/lib/components/toasts/elder-toast.module.mjs +5 -5
  235. package/esm2020/lib/components/toasts/elder-toast.service.mjs +5 -31
  236. package/esm2020/lib/components/toasts/standard-toast/standard-toast.component.mjs +6 -6
  237. package/esm2020/lib/components/url-fragment/elder-url-fragment.module.mjs +5 -5
  238. package/esm2020/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +4 -4
  239. package/esm2020/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +4 -4
  240. package/esm2020/lib/components/viewers/elder-viewers.module.mjs +5 -5
  241. package/esm2020/lib/features/event-source/elder-event-source.service.mjs +4 -4
  242. package/esm2020/lib/features/kafent/access-token-provider.mjs +4 -4
  243. package/esm2020/lib/features/kafent/kafent-config.mjs +4 -4
  244. package/esm2020/lib/features/kafent/kafent-event-stream.mjs +4 -4
  245. package/esm2020/lib/features/kafent/kafent-event.service.mjs +4 -4
  246. package/esm2020/lib/features/kafent/kafent.module.mjs +5 -5
  247. package/esm2020/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +4 -4
  248. package/esm2020/lib/pipes/bytes.pipe.mjs +4 -4
  249. package/esm2020/lib/pipes/elder-pipes.module.mjs +11 -11
  250. package/esm2020/lib/pipes/elder-repeat.pipe.mjs +4 -4
  251. package/esm2020/lib/pipes/elder-round.pipe.mjs +4 -4
  252. package/esm2020/lib/pipes/elder-safe-url.pipe.mjs +4 -4
  253. package/esm2020/lib/pipes/elder-truncate.pipe.mjs +4 -4
  254. package/esm2020/lib/pipes/iso-duration.pipe.mjs +4 -4
  255. package/esm2020/lib/pipes/iso-interval-parse.pipe.mjs +4 -4
  256. package/esm2020/lib/pipes/iso-interval.pipe.mjs +4 -4
  257. package/esm2020/lib/pipes/time-ago.pipe.mjs +4 -4
  258. package/esm2020/lib/pipes/time-duration.pipe.mjs +4 -4
  259. package/esm2020/lib/pipes/weight.pipe.mjs +4 -4
  260. package/fesm2015/elderbyte-ngx-starter.mjs +2600 -2012
  261. package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
  262. package/fesm2020/elderbyte-ngx-starter.mjs +2604 -2024
  263. package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
  264. package/lib/common/forms/elder-form-field-control-base.directive.d.ts +1 -1
  265. package/lib/common/forms/elder-from-field-base.d.ts +1 -1
  266. package/lib/common/forms/elder-from-field-customizable-base.d.ts +36 -0
  267. package/lib/common/forms/elder-from-field-entity-base.d.ts +1 -1
  268. package/lib/common/forms/elder-from-field-multi-entity-base.d.ts +1 -1
  269. package/lib/common/forms/form-field-base.component.d.ts +7 -1
  270. package/lib/common/forms/multi-model-base.component.d.ts +1 -1
  271. package/lib/common/forms/template-composite-control.d.ts +1 -1
  272. package/lib/common/forms/value-accessor-base.d.ts +1 -1
  273. package/lib/components/access-denied/elder-access-denied.component.d.ts +1 -1
  274. package/lib/components/auditing/audited-entity/elder-audited-entity.component.d.ts +1 -1
  275. package/lib/components/button-group/elder-button-group/elder-button-group.component.d.ts +1 -1
  276. package/lib/components/card-organizer/card-organizer/elder-card-organizer.component.d.ts +1 -1
  277. package/lib/components/card-organizer/card-organizer/elder-stack-card.directive.d.ts +1 -1
  278. package/lib/components/card-organizer/card-stack/elder-card-stack.component.d.ts +1 -1
  279. package/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.d.ts +1 -1
  280. package/lib/components/cards/elder-card/elder-card.component.d.ts +18 -20
  281. package/lib/components/cards/elder-card/elder-card.module.d.ts +2 -1
  282. package/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.d.ts +1 -1
  283. package/lib/components/containers/elder-scroll-container/elder-scroll-container.component.d.ts +1 -1
  284. package/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.d.ts +1 -1
  285. package/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.d.ts +1 -1
  286. package/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.d.ts +1 -1
  287. package/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.d.ts +1 -1
  288. package/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.d.ts +1 -1
  289. package/lib/components/data-view/base/elder-data-view-base.d.ts +11 -6
  290. package/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.d.ts +1 -1
  291. package/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.d.ts +2 -2
  292. package/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.d.ts +1 -1
  293. package/lib/components/data-view/common/selection/data-context-selection.directive.d.ts +1 -1
  294. package/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.d.ts +1 -1
  295. package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +3 -3
  296. package/lib/components/data-view/grid/elder-grid.module.d.ts +2 -1
  297. package/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.d.ts +1 -1
  298. package/lib/components/data-view/table/activation/elder-table-activation.directive.d.ts +1 -1
  299. package/lib/components/data-view/table/elder-number-cell.directive.d.ts +1 -1
  300. package/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.d.ts +1 -1
  301. package/lib/components/data-view/table/elder-table/elder-table.component.d.ts +1 -1
  302. package/lib/components/data-view/table/elder-table-column.directive.d.ts +1 -1
  303. package/lib/components/data-view/table/elder-table-extension.directive.d.ts +1 -1
  304. package/lib/components/data-view/table/elder-table-root.directive.d.ts +1 -1
  305. package/lib/components/data-view/table/elder-table-row.directive.d.ts +1 -1
  306. package/lib/components/data-view/table/elder-table-sort.directive.d.ts +1 -1
  307. package/lib/components/data-view/table/elder-table.module.d.ts +2 -1
  308. package/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.d.ts +1 -1
  309. package/lib/components/dialogs/elder-dialog.module.d.ts +0 -10
  310. package/lib/components/dialogs/question-dialog/elder-question-dialog.component.d.ts +1 -1
  311. package/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.d.ts +1 -1
  312. package/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.d.ts +1 -1
  313. package/lib/components/errors/exception-detail/elder-exception-detail.component.d.ts +1 -1
  314. package/lib/components/expand-toggle-button/elder-expand-toggle-button.component.d.ts +1 -1
  315. package/lib/components/files/blob-viewer/elder-blob-viewer.component.d.ts +1 -1
  316. package/lib/components/files/elder-file-drop-zone.directive.d.ts +1 -1
  317. package/lib/components/files/elder-file-select.directive.d.ts +1 -1
  318. package/lib/components/files/file-select/file-select.component.d.ts +1 -1
  319. package/lib/components/files/file-upload/file-upload.component.d.ts +1 -1
  320. package/lib/components/forms/directives/base/elder-class-hostbinding-base.d.ts +1 -1
  321. package/lib/components/forms/directives/elder-clipboard-put.directive.d.ts +1 -1
  322. package/lib/components/forms/directives/elder-delayed-focus.directive.d.ts +1 -1
  323. package/lib/components/forms/directives/elder-form-field-dense.directive.d.ts +12 -3
  324. package/lib/components/forms/directives/elder-form-field-label.directive.d.ts +1 -1
  325. package/lib/components/forms/directives/elder-form-field-no-hint.directive.d.ts +7 -3
  326. package/lib/components/forms/directives/elder-form-field-no-spinner.directive.d.ts +1 -1
  327. package/lib/components/forms/directives/elder-forms-directives.module.d.ts +13 -35
  328. package/lib/components/forms/directives/elder-input-pattern.directive.d.ts +1 -1
  329. package/lib/components/forms/directives/elder-key-event.directive.d.ts +1 -1
  330. package/lib/components/forms/directives/elder-next-focusable.directive.d.ts +1 -1
  331. package/lib/components/forms/directives/elder-plug-parent-form.directive.d.ts +1 -1
  332. package/lib/components/forms/directives/elder-stop-event-propagation.directive.d.ts +1 -1
  333. package/lib/components/forms/directives/elder-tab-focus-trap.directive.d.ts +1 -1
  334. package/lib/components/forms/directives/elder-touched.directive.d.ts +1 -1
  335. package/lib/components/forms/directives/elder-triple-state-checkbox.directive.d.ts +1 -1
  336. package/lib/components/forms/directives/validation/elder-validation-error.directive.d.ts +44 -0
  337. package/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.d.ts +26 -0
  338. package/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.d.ts +36 -0
  339. package/lib/components/forms/directives/validation/strategies/fallback-validation-message-strategy.d.ts +5 -0
  340. package/lib/components/forms/directives/validation/validation-message-renderer.service.d.ts +28 -0
  341. package/lib/components/forms/directives/validation/validation-message-strategy.d.ts +4 -0
  342. package/lib/components/forms/directives/validation/validators/elder-max.validator.d.ts +11 -0
  343. package/lib/components/forms/directives/validation/validators/elder-min.validator.d.ts +11 -0
  344. package/lib/components/forms/directives/validation/{elder-multiple-of.validator.d.ts → validators/elder-multiple-of.validator.d.ts} +17 -2
  345. package/lib/components/forms/directives/validation/{elder-required-ignore-zero.validator.d.ts → validators/elder-required-ignore-zero.validator.d.ts} +1 -1
  346. package/lib/components/forms/search/elder-search-context.directive.d.ts +1 -1
  347. package/lib/components/forms/search/elder-search-input.directive.d.ts +1 -1
  348. package/lib/components/forms/search/search-box/elder-search-box.component.d.ts +3 -1
  349. package/lib/components/forms/search/search-box/elder-search-panel.component.d.ts +1 -1
  350. package/lib/components/global-search/elder-global-search.component.d.ts +1 -1
  351. package/lib/components/graph/elder-progress-bar/elder-progress-bar.component.d.ts +1 -1
  352. package/lib/components/headers/elder-header/elder-header.component.d.ts +1 -1
  353. package/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.d.ts +1 -1
  354. package/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.d.ts +1 -1
  355. package/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.d.ts +1 -1
  356. package/lib/components/i18n/entities/elder-localized-text-column.directive.d.ts +1 -1
  357. package/lib/components/i18n/entities/elder-localized-texts.directive.d.ts +1 -1
  358. package/lib/components/i18n/language/language-switcher/elder-language-switcher.component.d.ts +1 -1
  359. package/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.d.ts +1 -1
  360. package/lib/components/iframes/data-view/data-view-iframe-adapter.directive.d.ts +1 -1
  361. package/lib/components/iframes/elder-iframe.module.d.ts +3 -1
  362. package/lib/components/iframes/iframe-close.directive.d.ts +1 -1
  363. package/lib/components/iframes/iframe-dialog/iframe-dialog.component.d.ts +1 -1
  364. package/lib/components/iframes/iframe-host/iframe-host.component.d.ts +1 -1
  365. package/lib/components/iframes/iframe-side-content/iframe-side-content.component.d.ts +1 -1
  366. package/lib/components/infinitescroll/elder-infinite-autocomplete.directive.d.ts +1 -1
  367. package/lib/components/infinitescroll/elder-infinite-scroll.directive.d.ts +1 -1
  368. package/lib/components/infinitescroll/elder-infinite-scroll.module.d.ts +1 -1
  369. package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.d.ts +1 -1
  370. package/lib/components/input/autocomplete/elder-autocomplete-many.directive.d.ts +1 -1
  371. package/lib/components/input/autocomplete/elder-autocomplete.directive.d.ts +1 -1
  372. package/lib/components/labels/labels-input/labels-input.component.d.ts +1 -2
  373. package/lib/components/measures/{dimensions-input → dimensions/dimensions-input}/elder-dimensions-input.component.d.ts +41 -30
  374. package/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.d.ts +37 -0
  375. package/lib/components/measures/directives/elder-unit-select.directive.d.ts +1 -1
  376. package/lib/components/measures/elder-measures.module.d.ts +20 -12
  377. package/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.d.ts +20 -0
  378. package/lib/components/measures/quantity-input/{elder-quantity-input.component.d.ts → quantity-input-control/elder-quantity-input-control.component.d.ts} +27 -42
  379. package/lib/components/{select-list/select-list/elder-select-list.component.d.ts → measures/quantity-input/validation/elder-quantity-range.validator.d.ts} +22 -32
  380. package/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.d.ts +36 -0
  381. package/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.d.ts +1 -1
  382. package/lib/components/navigation/nav/elder-nav.module.d.ts +3 -1
  383. package/lib/components/navigation/nav/nav-group/elder-nav-group.component.d.ts +23 -9
  384. package/lib/components/navigation/nav/nav-link/elder-nav-link.component.d.ts +69 -13
  385. package/lib/components/navigation/nav/nav-list/elder-nav-list.component.d.ts +43 -3
  386. package/lib/components/navigation/toolbar/elder-toolbar-column.directive.d.ts +1 -1
  387. package/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.d.ts +1 -1
  388. package/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.d.ts +1 -1
  389. package/lib/components/overlays/elder-overlay-origin.directive.d.ts +1 -1
  390. package/lib/components/overlays/elder-overlay-trigger.directive.d.ts +1 -1
  391. package/lib/components/overlays/elder-overlay.component.d.ts +1 -1
  392. package/lib/components/panels/card-panel/elder-card-panel.component.d.ts +1 -1
  393. package/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.d.ts +1 -1
  394. package/lib/components/panels/flat/elder-panel.component.d.ts +1 -1
  395. package/lib/components/public_api.d.ts +0 -1
  396. package/lib/components/select/auto/elder-auto-select-first.directive.d.ts +1 -1
  397. package/lib/components/select/elder-select-base.d.ts +1 -1
  398. package/lib/components/select/elder-select-chip.directive.d.ts +3 -3
  399. package/lib/components/select/elder-select-on-tab.directive.d.ts +1 -1
  400. package/lib/components/select/elder-select-value.directive.d.ts +1 -1
  401. package/lib/components/select/multi/elder-multi-select-base.d.ts +1 -1
  402. package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +13 -7
  403. package/lib/components/select/multi/elder-multi-select-form-field.d.ts +10 -5
  404. package/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.d.ts +1 -1
  405. package/lib/components/select/popup/selection-model-popup.directive.d.ts +1 -1
  406. package/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.d.ts +1 -1
  407. package/lib/components/select/single/elder-clear-select.directive.d.ts +1 -1
  408. package/lib/components/select/single/elder-select/elder-select.component.d.ts +3 -2
  409. package/lib/components/select/single/elder-select-form-field.d.ts +1 -1
  410. package/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.d.ts +5 -10
  411. package/lib/components/shell/elder-shell-slot.directive.d.ts +1 -1
  412. package/lib/components/shell/header/elder-app-header/elder-app-header.component.d.ts +1 -1
  413. package/lib/components/shell/shell/elder-shell.component.d.ts +4 -4
  414. package/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.d.ts +1 -1
  415. package/lib/components/tabs/elder-tab/elder-tab.directive.d.ts +1 -1
  416. package/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.d.ts +1 -1
  417. package/lib/components/theme/elder-theme-applier.directive.d.ts +1 -1
  418. package/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.d.ts +1 -1
  419. package/lib/components/theme/elder-theme.directive.d.ts +1 -1
  420. package/lib/components/time/duration/elder-duration-input/elder-duration-input.component.d.ts +1 -1
  421. package/lib/components/time/elder-date-switcher/elder-date-switcher.component.d.ts +1 -1
  422. package/lib/components/time/elder-date-time-input/elder-date-time-input.component.d.ts +1 -1
  423. package/lib/components/time/elder-interval-input/elder-interval-input.component.d.ts +1 -1
  424. package/lib/components/time/elder-local-date-input/elder-local-date-input.component.d.ts +1 -1
  425. package/lib/components/time/elder-local-time-input/elder-local-time-input.component.d.ts +1 -1
  426. package/lib/components/time/period/elder-period-input/elder-period-input.component.d.ts +1 -1
  427. package/lib/components/toasts/elder-toast.service.d.ts +0 -14
  428. package/lib/components/toasts/standard-toast/standard-toast.component.d.ts +3 -2
  429. package/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.d.ts +1 -1
  430. package/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.d.ts +1 -1
  431. package/package.json +5 -5
  432. package/src/lib/components/cards/elder-card/elder-card.component.scss +1 -9
  433. package/src/lib/components/data-view/grid/elder-grid/elder-grid.component.scss +1 -2
  434. package/src/lib/components/data-view/table/elder-table/elder-table.component.scss +9 -8
  435. package/src/lib/components/forms/search/search-box/elder-search-box.component.scss +7 -0
  436. package/src/lib/components/iframes/iframe-host/iframe-host.component.scss +7 -4
  437. package/src/lib/components/measures/{dimensions-input → dimensions/dimensions-input}/elder-dimensions-input.component.scss +0 -0
  438. package/src/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.scss +0 -0
  439. package/src/lib/components/measures/quantity-input/{elder-quantity-input.component.scss → quantity-input-control/elder-quantity-input-control.component.scss} +0 -3
  440. package/src/lib/components/navigation/nav/_elder-nav-theme.scss +68 -0
  441. package/src/lib/components/navigation/nav/nav-group/elder-nav-group.component.scss +12 -32
  442. package/src/lib/components/navigation/nav/nav-link/elder-nav-link.component.scss +12 -42
  443. package/src/lib/components/navigation/nav/nav-list/elder-nav-list.component.scss +1 -1
  444. package/src/lib/components/panels/flat/_elder-panel-theme.scss +3 -2
  445. package/src/lib/components/select/_elder-select-base.scss +15 -92
  446. package/src/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.scss +0 -8
  447. package/theming/_elder-common.scss +114 -19
  448. package/theming/_elder-flex-layout.scss +1 -0
  449. package/theming/_elder-mdc-support.scss +147 -0
  450. package/theming/_elder-style-fixes.scss +35 -2
  451. package/theming/_elder-toast-theme.scss +2 -1
  452. package/theming/_mat-icon-button-size.scss +29 -0
  453. package/esm2020/lib/components/forms/directives/elder-max.directive.mjs +0 -39
  454. package/esm2020/lib/components/forms/directives/elder-min.directive.mjs +0 -39
  455. package/esm2020/lib/components/forms/directives/validation/elder-multiple-of.validator.mjs +0 -57
  456. package/esm2020/lib/components/forms/directives/validation/elder-required-ignore-zero.validator.mjs +0 -68
  457. package/esm2020/lib/components/measures/dimensions-input/elder-dimensions-input.component.mjs +0 -229
  458. package/esm2020/lib/components/measures/quantity-input/elder-quantity-input.component.mjs +0 -189
  459. package/esm2020/lib/components/select-list/elder-select-list.module.mjs +0 -36
  460. package/esm2020/lib/components/select-list/select-list/elder-select-list.component.mjs +0 -75
  461. package/esm2020/lib/components/select-list/select-list-item/elder-select-list-item.component.mjs +0 -118
  462. package/lib/components/forms/directives/elder-max.directive.d.ts +0 -11
  463. package/lib/components/forms/directives/elder-min.directive.d.ts +0 -11
  464. package/lib/components/select-list/elder-select-list.module.d.ts +0 -15
  465. package/lib/components/select-list/select-list-item/elder-select-list-item.component.d.ts +0 -57
  466. package/src/lib/components/select-list/select-list/elder-select-list.component.scss +0 -19
  467. package/src/lib/components/select-list/select-list-item/elder-select-list-item.component.scss +0 -37
@@ -0,0 +1,87 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { LoggerFactory } from '@elderbyte/ts-logger';
3
+ import { NG_VALIDATORS } from '@angular/forms';
4
+ import { coerceNumberProperty } from '@angular/cdk/coercion';
5
+ import * as i0 from "@angular/core";
6
+ // eslint-disable-next-line @angular-eslint/directive-class-suffix
7
+ export class ElderQuantityRangeValidator {
8
+ constructor() {
9
+ /***************************************************************************
10
+ * *
11
+ * Fields *
12
+ * *
13
+ **************************************************************************/
14
+ this.log = LoggerFactory.getLogger(this.constructor.name);
15
+ }
16
+ /***************************************************************************
17
+ * *
18
+ * Properties *
19
+ * *
20
+ **************************************************************************/
21
+ // TODO Maybe support minQuantity / maxQuantity
22
+ /**
23
+ * Minimum number allowed.
24
+ */
25
+ set min(value) {
26
+ this._min = coerceNumberProperty(value);
27
+ }
28
+ get min() {
29
+ return this._min;
30
+ }
31
+ /**
32
+ * Maximum number allowed.
33
+ */
34
+ set max(value) {
35
+ this._max = coerceNumberProperty(value);
36
+ }
37
+ get max() {
38
+ return this._max;
39
+ }
40
+ /***************************************************************************
41
+ * *
42
+ * Public API *
43
+ * *
44
+ **************************************************************************/
45
+ validate(c) {
46
+ let result = {};
47
+ const qty = c.value;
48
+ if (this._min != null && !this.isAtLeast(qty, this._min)) {
49
+ result = Object.assign(result, { min: { min: this._min, actual: qty?.value } });
50
+ }
51
+ if (this._max != null && !this.isAtMost(qty, this._max)) {
52
+ result = Object.assign(result, { max: { max: this._max, actual: qty?.value } });
53
+ }
54
+ return result;
55
+ }
56
+ /***************************************************************************
57
+ * *
58
+ * Private Methods *
59
+ * *
60
+ **************************************************************************/
61
+ isAtLeast(quantity, minValue) {
62
+ return quantity?.value >= minValue;
63
+ }
64
+ isAtMost(quantity, maxValue) {
65
+ return quantity?.value <= maxValue;
66
+ }
67
+ }
68
+ ElderQuantityRangeValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderQuantityRangeValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
69
+ ElderQuantityRangeValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ElderQuantityRangeValidator, selector: "elder-quantity-input[min][formControl],elder-quantity-input[min][formControlName],elder-quantity-input[min][ngModel],elder-quantity-input[max][formControl],elder-quantity-input[max][formControlName],elder-quantity-input[max][ngModel]", inputs: { min: "min", max: "max" }, providers: [
70
+ { provide: NG_VALIDATORS, useExisting: ElderQuantityRangeValidator, multi: true }
71
+ ], ngImport: i0 });
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderQuantityRangeValidator, decorators: [{
73
+ type: Directive,
74
+ args: [{
75
+ // eslint-disable-next-line @angular-eslint/directive-selector
76
+ selector: 'elder-quantity-input[min][formControl],elder-quantity-input[min][formControlName],elder-quantity-input[min][ngModel],' +
77
+ 'elder-quantity-input[max][formControl],elder-quantity-input[max][formControlName],elder-quantity-input[max][ngModel]',
78
+ providers: [
79
+ { provide: NG_VALIDATORS, useExisting: ElderQuantityRangeValidator, multi: true }
80
+ ]
81
+ }]
82
+ }], propDecorators: { min: [{
83
+ type: Input
84
+ }], max: [{
85
+ type: Input
86
+ }] } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcXVhbnRpdHktcmFuZ2UudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9tZWFzdXJlcy9xdWFudGl0eS1pbnB1dC92YWxpZGF0aW9uL2VsZGVyLXF1YW50aXR5LXJhbmdlLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFrQixhQUFhLEVBQThCLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0YsT0FBTyxFQUFDLG9CQUFvQixFQUFjLE1BQU0sdUJBQXVCLENBQUM7O0FBV3hFLGtFQUFrRTtBQUNsRSxNQUFNLE9BQU8sMkJBQTJCO0lBVnhDO1FBV0U7Ozs7b0ZBSTRFO1FBRTNELFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7S0F1RXZFO0lBbEVDOzs7O2dGQUk0RTtJQUU1RSwrQ0FBK0M7SUFFL0M7O09BRUc7SUFDSCxJQUNXLEdBQUcsQ0FBQyxLQUFrQjtRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDVyxHQUFHLENBQUMsS0FBa0I7UUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsUUFBUSxDQUFDLENBQWtCO1FBRWhDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBaUIsQ0FBQztRQUVoQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hELE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxFQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFDLEVBQUMsQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2RCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsRUFBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBQyxFQUFDLENBQUMsQ0FBQztTQUM3RTtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsU0FBUyxDQUFDLFFBQWtCLEVBQUUsUUFBZ0I7UUFDcEQsT0FBTyxRQUFRLEVBQUUsS0FBSyxJQUFJLFFBQVEsQ0FBQztJQUNyQyxDQUFDO0lBRU8sUUFBUSxDQUFDLFFBQWtCLEVBQUUsUUFBZ0I7UUFDbkQsT0FBTyxRQUFRLEVBQUUsS0FBSyxJQUFJLFFBQVEsQ0FBQztJQUNyQyxDQUFDOzt3SEE3RVUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsd1NBTDNCO1FBQ1QsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO0tBQ2xGOzJGQUdVLDJCQUEyQjtrQkFWdkMsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFDTix1SEFBdUg7d0JBQ3ZILHNIQUFzSDtvQkFDeEgsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLDZCQUE2QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7cUJBQ2xGO2lCQUNGOzhCQTBCWSxHQUFHO3NCQURiLEtBQUs7Z0JBYUssR0FBRztzQkFEYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtRdWFudGl0eX0gZnJvbSAnLi4vLi4vbW9kZWwvcXVhbnRpdHknO1xuaW1wb3J0IHtjb2VyY2VOdW1iZXJQcm9wZXJ0eSwgTnVtYmVySW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjpcbiAgICAnZWxkZXItcXVhbnRpdHktaW5wdXRbbWluXVtmb3JtQ29udHJvbF0sZWxkZXItcXVhbnRpdHktaW5wdXRbbWluXVtmb3JtQ29udHJvbE5hbWVdLGVsZGVyLXF1YW50aXR5LWlucHV0W21pbl1bbmdNb2RlbF0sJyArXG4gICAgJ2VsZGVyLXF1YW50aXR5LWlucHV0W21heF1bZm9ybUNvbnRyb2xdLGVsZGVyLXF1YW50aXR5LWlucHV0W21heF1bZm9ybUNvbnRyb2xOYW1lXSxlbGRlci1xdWFudGl0eS1pbnB1dFttYXhdW25nTW9kZWxdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogRWxkZXJRdWFudGl0eVJhbmdlVmFsaWRhdG9yLCBtdWx0aTogdHJ1ZSB9XG4gIF1cbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBjbGFzcyBFbGRlclF1YW50aXR5UmFuZ2VWYWxpZGF0b3IgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSBfbWluOiBudW1iZXI7XG4gIHByaXZhdGUgX21heDogbnVtYmVyO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8vIFRPRE8gTWF5YmUgc3VwcG9ydCBtaW5RdWFudGl0eSAvIG1heFF1YW50aXR5XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gbnVtYmVyIGFsbG93ZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1pbih2YWx1ZTogTnVtYmVySW5wdXQpIHtcbiAgICB0aGlzLl9taW4gPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1pbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9taW47XG4gIH1cblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgYWxsb3dlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWF4KHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgIHRoaXMuX21heCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWF4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21heDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgYW55IHtcblxuICAgIGxldCByZXN1bHQgPSB7fTtcbiAgICBjb25zdCBxdHkgPSBjLnZhbHVlIGFzIFF1YW50aXR5O1xuXG4gICAgaWYgKHRoaXMuX21pbiAhPSBudWxsICYmICF0aGlzLmlzQXRMZWFzdChxdHksIHRoaXMuX21pbikpIHtcbiAgICAgIHJlc3VsdCA9IE9iamVjdC5hc3NpZ24ocmVzdWx0LCB7bWluOiB7bWluOiB0aGlzLl9taW4sIGFjdHVhbDogcXR5Py52YWx1ZX19KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX21heCAhPSBudWxsICYmICF0aGlzLmlzQXRNb3N0KHF0eSwgdGhpcy5fbWF4KSkge1xuICAgICAgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbihyZXN1bHQsIHttYXg6IHttYXg6IHRoaXMuX21heCwgYWN0dWFsOiBxdHk/LnZhbHVlfX0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGlzQXRMZWFzdChxdWFudGl0eTogUXVhbnRpdHksIG1pblZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcXVhbnRpdHk/LnZhbHVlID49IG1pblZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0F0TW9zdChxdWFudGl0eTogUXVhbnRpdHksIG1heFZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcXVhbnRpdHk/LnZhbHVlIDw9IG1heFZhbHVlO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,76 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { NG_VALIDATORS } from '@angular/forms';
3
+ import { LoggerFactory } from '@elderbyte/ts-logger';
4
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
5
+ import * as i0 from "@angular/core";
6
+ export class ElderRequiredQuantityValidator {
7
+ constructor() {
8
+ /***************************************************************************
9
+ * *
10
+ * Fields *
11
+ * *
12
+ **************************************************************************/
13
+ this.log = LoggerFactory.getLogger(this.constructor.name);
14
+ this._requiredIgnoreZero = false;
15
+ }
16
+ /***************************************************************************
17
+ * *
18
+ * Properties *
19
+ * *
20
+ **************************************************************************/
21
+ set requiredIgnoreZero(value) {
22
+ this._requiredIgnoreZero = coerceBooleanProperty(value);
23
+ }
24
+ get requiredIgnoreZero() {
25
+ return this._requiredIgnoreZero;
26
+ }
27
+ set required(value) {
28
+ this._required = coerceBooleanProperty(value);
29
+ }
30
+ get required() {
31
+ return this._required;
32
+ }
33
+ /***************************************************************************
34
+ * *
35
+ * Public API *
36
+ * *
37
+ **************************************************************************/
38
+ validate(c) {
39
+ let result = {};
40
+ if (this.required && !this.isQuantityDefined(c.value)) {
41
+ result = Object.assign(result, { required: { valid: false } });
42
+ }
43
+ // this.log.info('"' + c.value + '" --> validate result: ' + JSON.stringify(result), c);
44
+ return result;
45
+ }
46
+ /***************************************************************************
47
+ * *
48
+ * Private Methods *
49
+ * *
50
+ **************************************************************************/
51
+ isQuantityDefined(qty) {
52
+ if (qty?.value != null && qty?.unit != null) {
53
+ return !(this._requiredIgnoreZero && qty.value === 0);
54
+ }
55
+ return false;
56
+ }
57
+ }
58
+ ElderRequiredQuantityValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderRequiredQuantityValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
59
+ ElderRequiredQuantityValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ElderRequiredQuantityValidator, selector: "elder-quantity-input[required][formControl],elder-quantity-input[required][formControlName],elder-quantity-input[required][ngModel]", inputs: { requiredIgnoreZero: "requiredIgnoreZero", required: "required" }, providers: [
60
+ { provide: NG_VALIDATORS, useExisting: ElderRequiredQuantityValidator, multi: true }
61
+ ], ngImport: i0 });
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderRequiredQuantityValidator, decorators: [{
63
+ type: Directive,
64
+ args: [{
65
+ // eslint-disable-next-line @angular-eslint/directive-selector
66
+ selector: 'elder-quantity-input[required][formControl],elder-quantity-input[required][formControlName],elder-quantity-input[required][ngModel]',
67
+ providers: [
68
+ { provide: NG_VALIDATORS, useExisting: ElderRequiredQuantityValidator, multi: true }
69
+ ]
70
+ }]
71
+ }], propDecorators: { requiredIgnoreZero: [{
72
+ type: Input
73
+ }], required: [{
74
+ type: Input
75
+ }] } });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcmVxdWlyZWQtcXVhbnRpdHkudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9tZWFzdXJlcy9xdWFudGl0eS1pbnB1dC92YWxpZGF0aW9uL2VsZGVyLXJlcXVpcmVkLXF1YW50aXR5LnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWtCLGFBQWEsRUFBOEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFlLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7O0FBVTFFLE1BQU0sT0FBTyw4QkFBOEI7SUFQM0M7UUFTRTs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUc5RCx3QkFBbUIsR0FBWSxLQUFLLENBQUM7S0F3RDlDO0lBdERDOzs7O2dGQUk0RTtJQUU1RSxJQUNXLGtCQUFrQixDQUFDLEtBQW1CO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQ1csUUFBUSxDQUFDLEtBQW1CO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxRQUFRLENBQUMsQ0FBa0I7UUFFaEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDckQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNoRTtRQUNELHdGQUF3RjtRQUN4RixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXBFLGlCQUFpQixDQUFDLEdBQWE7UUFDckMsSUFBRyxHQUFHLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBQztZQUN6QyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztTQUN2RDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7MkhBakVVLDhCQUE4QjsrR0FBOUIsOEJBQThCLDBPQUo5QjtRQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsOEJBQThCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtLQUNyRjsyRkFFVSw4QkFBOEI7a0JBUDFDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUscUlBQXFJO29CQUMvSSxTQUFTLEVBQUU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsZ0NBQWdDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtxQkFDckY7aUJBQ0Y7OEJBcUJZLGtCQUFrQjtzQkFENUIsS0FBSztnQkFVSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBOR19WQUxJREFUT1JTLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7UXVhbnRpdHl9IGZyb20gJy4uLy4uL21vZGVsL3F1YW50aXR5JztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnZWxkZXItcXVhbnRpdHktaW5wdXRbcmVxdWlyZWRdW2Zvcm1Db250cm9sXSxlbGRlci1xdWFudGl0eS1pbnB1dFtyZXF1aXJlZF1bZm9ybUNvbnRyb2xOYW1lXSxlbGRlci1xdWFudGl0eS1pbnB1dFtyZXF1aXJlZF1bbmdNb2RlbF0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBFbGRlclJlcXVpcmVkUXVhbnRpdHlWYWxpZGF0b3IsIG11bHRpOiB0cnVlIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclJlcXVpcmVkUXVhbnRpdHlWYWxpZGF0b3IgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfcmVxdWlyZWRJZ25vcmVaZXJvOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByZXF1aXJlZElnbm9yZVplcm8odmFsdWU6IEJvb2xlYW5JbnB1dCl7XG4gICAgdGhpcy5fcmVxdWlyZWRJZ25vcmVaZXJvID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWRJZ25vcmVaZXJvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZElnbm9yZVplcm87XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgYW55IHtcblxuICAgIGxldCByZXN1bHQgPSB7fTtcblxuICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICF0aGlzLmlzUXVhbnRpdHlEZWZpbmVkKGMudmFsdWUpKSB7XG4gICAgICByZXN1bHQgPSBPYmplY3QuYXNzaWduKHJlc3VsdCwgeyByZXF1aXJlZDogeyB2YWxpZDogZmFsc2UgfSB9KTtcbiAgICB9XG4gICAgLy8gdGhpcy5sb2cuaW5mbygnXCInICsgYy52YWx1ZSArICdcIiAtLT4gdmFsaWRhdGUgcmVzdWx0OiAnICsgSlNPTi5zdHJpbmdpZnkocmVzdWx0KSwgYyk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgaXNRdWFudGl0eURlZmluZWQocXR5OiBRdWFudGl0eSk6IGJvb2xlYW4ge1xuICAgIGlmKHF0eT8udmFsdWUgIT0gbnVsbCAmJiBxdHk/LnVuaXQgIT0gbnVsbCl7XG4gICAgICByZXR1cm4gISh0aGlzLl9yZXF1aXJlZElnbm9yZVplcm8gJiYgcXR5LnZhbHVlID09PSAwKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbn1cbiJdfQ==
@@ -226,12 +226,12 @@ export class ElderQuantityService {
226
226
  return quantity.value + '-' + quantity.unit;
227
227
  }
228
228
  }
229
- ElderQuantityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderQuantityService, deps: [{ token: i1.ElderUnitService }], target: i0.ɵɵFactoryTarget.Injectable });
230
- ElderQuantityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderQuantityService, providedIn: 'root' });
231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderQuantityService, decorators: [{
229
+ ElderQuantityService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderQuantityService, deps: [{ token: i1.ElderUnitService }], target: i0.ɵɵFactoryTarget.Injectable });
230
+ ElderQuantityService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderQuantityService, providedIn: 'root' });
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderQuantityService, decorators: [{
232
232
  type: Injectable,
233
233
  args: [{
234
234
  providedIn: 'root'
235
235
  }]
236
236
  }], ctorParameters: function () { return [{ type: i1.ElderUnitService }]; } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcXVhbnRpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbWVhc3VyZXMvdXRpbC9lbGRlci1xdWFudGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7OztBQUtuRCxNQUFNLE9BQU8sb0JBQW9CO0lBd0MvQjs7OztnRkFJNEU7SUFFNUUsWUFDbUIsV0FBNkI7UUFBN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBN0NoRDs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4RCx3QkFBbUIsR0FBRyxHQUFHLENBQUM7UUFDMUIsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztJQXNDOUQsQ0FBQztJQXBDRDs7OztnRkFJNEU7SUFFckUsVUFBVSxDQUFDLE1BQWdCLEVBQUUsS0FBZTtRQUNqRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FDMUIsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDM0IsQ0FBQztJQUNKLENBQUM7SUFFTSxnQkFBZ0IsQ0FDckIsTUFBZ0IsRUFDaEIsS0FBZSxFQUNmLE1BQWdCO1FBRWhCLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FDcEIsTUFBTSxDQUFDLElBQUksRUFDWCxN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QUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1VuaXR9IGZyb20gJy4uL21vZGVsL3VuaXQnO1xuaW1wb3J0IHtRdWFudGl0eX0gZnJvbSAnLi4vbW9kZWwvcXVhbnRpdHknO1xuaW1wb3J0IHtVbml0SW5mb30gZnJvbSAnLi4vbW9kZWwvdW5pdC1yZWdpc3RyeSc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbGRlclVuaXRTZXJ2aWNlfSBmcm9tICcuLi9lbGRlci11bml0LnNlcnZpY2UnO1xuaW1wb3J0IHtEaW1lbnNpb25zfSBmcm9tICcuLi9tb2RlbC9kaW1lbnNpb25zJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFbGRlclF1YW50aXR5U2VydmljZSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgUVVBTlRJVFlfQ0FDSEVfU0laRSA9IDUwMDtcbiAgcHJpdmF0ZSByZWFkb25seSBRVUFOVElUWV9DQUNIRSA9IG5ldyBNYXA8c3RyaW5nLCBRdWFudGl0eT4oKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQnVpbGRlciBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY3JlYXRlQXJlYShsZW5ndGg6IFF1YW50aXR5LCB3aWR0aDogUXVhbnRpdHkpOiBEaW1lbnNpb25zIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVEaW1lbnNpb25zKFxuICAgICAgbGVuZ3RoLFxuICAgICAgd2lkdGgsXG4gICAgICBRdWFudGl0eS56ZXJvKGxlbmd0aC51bml0KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlRGltZW5zaW9ucyhcbiAgICBsZW5ndGg6IFF1YW50aXR5LFxuICAgIHdpZHRoOiBRdWFudGl0eSxcbiAgICBoZWlnaHQ6IFF1YW50aXR5XG4gICk6IERpbWVuc2lvbnMge1xuICAgIHJldHVybiBEaW1lbnNpb25zLmZyb20oXG4gICAgICBsZW5ndGgudW5pdCxcbiAgICAgIGxlbmd0aC52YWx1ZSxcbiAgICAgIHRoaXMuY29udmVydFRvVW5pdCh3aWR0aCwgbGVuZ3RoLnVuaXQpLnZhbHVlLFxuICAgICAgdGhpcy5jb252ZXJ0VG9Vbml0KGhlaWdodCwgbGVuZ3RoLnVuaXQpLnZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdW5pdFNlcnZpY2U6IEVsZGVyVW5pdFNlcnZpY2VcbiAgKSB7XG4gIH1cblxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB3aXRoVW5pdChxdWFudGl0eTogUXVhbnRpdHksIHVuaXQ6IFVuaXQpIHtcbiAgICByZXR1cm4gUXVhbnRpdHkuZnJvbSh1bml0LCBxdWFudGl0eS52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgd2l0aFZhbHVlKHF1YW50aXR5OiBRdWFudGl0eSwgdmFsdWU6IG51bWJlcikge1xuICAgIHJldHVybiBRdWFudGl0eS5mcm9tKHF1YW50aXR5LnVuaXQsIHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjYWNoZUxvb2t1cChsb29rdXA6IFF1YW50aXR5KTogUXVhbnRpdHkge1xuICAgIHJldHVybiB0aGlzLlFVQU5USVRZX0NBQ0hFLmdldCh0aGlzLmdldFF1YW50aXR5SWRlbnRpZmllcihsb29rdXApKTtcbiAgfVxuXG4gIHB1YmxpYyBjYWNoZVVwZGF0ZShrZXk6IFF1YW50aXR5LCB2YWx1ZTogUXVhbnRpdHkpIHtcbiAgICBpZiAodGhpcy5RVUFOVElUWV9DQUNIRS5zaXplID49IHRoaXMuUVVBTlRJVFlfQ0FDSEVfU0laRSkge1xuICAgICAgdGhpcy5RVUFOVElUWV9DQUNIRS5jbGVhcigpO1xuICAgIH1cbiAgICB0aGlzLlFVQU5USVRZX0NBQ0hFLnNldCh0aGlzLmdldFF1YW50aXR5SWRlbnRpZmllcihrZXkpLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogTXVsdGlwbGllcyBhIHF1YW50aXR5IHdpdGggYSBtdWx0aXBsaWVyIGFuZCByZXR1cm5zIGEgcXVhbnRpdHkuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqIFF1YW50aXR5KDEwLCdrZycpICogMyA9IFF1YW50aXR5KDMwMDAwLCdnJylcbiAgICpcbiAgICogQHBhcmFtIHF1YW50aXR5XG4gICAqIEBwYXJhbSBtdWx0aXBsaWVyXG4gICAqL1xuXG4gIHB1YmxpYyBtdWx0aXBseShxdWFudGl0eTogUXVhbnRpdHksIG11bHRpcGxpZXI6IG51bWJlcik6IFF1YW50aXR5IHtcblxuICAgIGlmICghcXVhbnRpdHkgfHwgIW11bHRpcGxpZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gUXVhbnRpdHkuZnJvbShcbiAgICAgIHF1YW50aXR5LnVuaXQsXG4gICAgICBxdWFudGl0eS52YWx1ZSAqIG11bHRpcGxpZXJcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERpdmlkZXMgYSBxdWFudGl0eSBieSBhbm90aGVyIHF1YW50aXR5IGFuZCByZXR1cm5zIGEgc2NhbGFyLlxuICAgKlxuICAgKiBFeGFtcGxlczpcbiAgICogUXVhbnRpdHkoMTAsJ2tnJykgLyBRdWFudGl0eSg1LCdrZycpID0gMlxuICAgKiBRdWFudGl0eSgxMCwna2cnKSAvIFF1YW50aXR5KDUsJ2cnKSA9IDIwMDBcbiAgICpcbiAgICogQHBhcmFtIGRpdmlkZW5kXG4gICAqIEBwYXJhbSBkaXZpc29yXG4gICAqL1xuICBwdWJsaWMgZGl2aWRlQnlRdWFudGl0eShkaXZpZGVuZDogUXVhbnRpdHksIGRpdmlzb3I6IFF1YW50aXR5KTogbnVtYmVyIHtcblxuICAgIGlmICghZGl2aWRlbmQgfHwgIWRpdmlzb3IpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBkaXZpZGVuZE5vcm1hbCA9ICB0aGlzLnRvQmFzZVVuaXRWYWx1ZShkaXZpZGVuZCk7XG4gICAgY29uc3QgZGl2aXNvck5vcm1hbCA9ICB0aGlzLnRvQmFzZVVuaXRWYWx1ZShkaXZpc29yKTtcbiAgICByZXR1cm4gZGl2aWRlbmROb3JtYWwgLyBkaXZpc29yTm9ybWFsO1xuICB9XG5cblxuICAvKipcbiAgICogU3VtcyB1cCBRdWFudGl0aWVzIGFuZCByZXR1cm5zIGEgUXVhbnRpdHkuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqIFF1YW50aXR5KDEwLCdrZycpICsgUXVhbnRpdHkoNSwna2cnKSArIFF1YW50aXR5KDUsJ2cnKSA9IFF1YW50aXR5KDE1MDA1LCAnZycpXG4gICAqXG4gICAqIEBwYXJhbSBxdWFudGl0aWVzXG4gICAqL1xuICBwdWJsaWMgc3VtKHF1YW50aXRpZXM6IFF1YW50aXR5W10pOiBRdWFudGl0eSB7XG4gICAgaWYgKCFxdWFudGl0aWVzIHx8IHF1YW50aXRpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXRVbml0ID0gcXVhbnRpdGllc1swXS51bml0O1xuXG4gICAgcmV0dXJuIFF1YW50aXR5LmZyb20oXG4gICAgICB0YXJnZXRVbml0LFxuICAgICAgcXVhbnRpdGllcy5yZWR1Y2UoXG4gICAgICAgICh0b3RhbCwgYWRkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRvdGFsICsgdGhpcy5jb252ZXJ0VG9Vbml0KGFkZCwgdGFyZ2V0VW5pdCkudmFsdWU7XG4gICAgICAgIH0sIDBcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnRyYWN0cyBhIHF1YW50aXR5IGZyb20gYW5vdGhlciBxdWFudGl0eSBhbmQgcmV0dXJucyBhIHF1YW50aXR5LlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKiBRdWFudGl0eSgxMCwna2cnKSAtIFF1YW50aXR5KDUsJ2cnKSA9IFF1YW50aXR5KDk5OTUsICdnJylcbiAgICpcbiAgICogQHBhcmFtIG1pbnVlbmRcbiAgICogQHBhcmFtIHN1YnRyYWhlbmRcbiAgICovXG4gIHB1YmxpYyBzdWJ0cmFjdChtaW51ZW5kOiBRdWFudGl0eSwgc3VidHJhaGVuZDogUXVhbnRpdHkpOiBRdWFudGl0eSB7XG4gICAgaWYgKCFtaW51ZW5kIHx8ICFzdWJ0cmFoZW5kKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIFF1YW50aXR5LmZyb20oXG4gICAgICBtaW51ZW5kLnVuaXQsXG4gICAgICBtaW51ZW5kLnZhbHVlIC0gdGhpcy5jb252ZXJ0VG9Vbml0KHN1YnRyYWhlbmQsIG1pbnVlbmQudW5pdCkudmFsdWVcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnRyYWN0cyBhIHF1YW50aXR5IGZyb20gYW5vdGhlciBxdWFudGl0eSBhbmQgcmV0dXJucyBhIHF1YW50aXR5LlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKiBRdWFudGl0eSgxMCwna2cnKSArIFF1YW50aXR5KDUwMCwnZycpID0gUXVhbnRpdHkoMTAuNSwgJ2tnJylcbiAgICpcbiAgICogQHBhcmFtIGxlZnRcbiAgICogQHBhcmFtIHJpZ2h0XG4gICAqL1xuICBwdWJsaWMgYWRkKGxlZnQ6IFF1YW50aXR5LCByaWdodDogUXVhbnRpdHkpOiBRdWFudGl0eSB7XG4gICAgaWYgKCFsZWZ0IHx8ICFyaWdodCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBRdWFudGl0eS5mcm9tKFxuICAgICAgbGVmdC51bml0LFxuICAgICAgbGVmdC52YWx1ZSAtIHRoaXMuY29udmVydFRvVW5pdChyaWdodCwgbGVmdC51bml0KS52YWx1ZVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtcyBhIHF1YW50aXR5IHRvIGFub3RoZXIgcXVhbnRpdHkgb2YgdGhlIHNhbWUgZGltZW5zaW9uIGJ5IHRhcmdldC1TSVxuICAgKlxuICAgKiBAcGFyYW0gcXVhbnRpdHlcbiAgICogQHBhcmFtIHRhcmdldFVuaXRcbiAgICovXG4gIHB1YmxpYyBjb252ZXJ0VG9Vbml0KHF1YW50aXR5OiBRdWFudGl0eSwgdGFyZ2V0VW5pdDogVW5pdCk6IFF1YW50aXR5IHtcbiAgICBpZiAoIXF1YW50aXR5IHx8ICF0YXJnZXRVbml0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAocXVhbnRpdHkudW5pdCA9PT0gdGFyZ2V0VW5pdCkge1xuICAgICAgcmV0dXJuIFF1YW50aXR5LmZyb20ocXVhbnRpdHkudW5pdCwgcXVhbnRpdHkudmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldEJhc2VGYWN0b3IgPSB0aGlzLnVuaXRTZXJ2aWNlLmdldFRvQmFzZUZhY3Rvcih0YXJnZXRVbml0KTtcblxuICAgIGlmICh0YXJnZXRCYXNlRmFjdG9yID4gMCkge1xuICAgICAgcmV0dXJuIFF1YW50aXR5LmZyb20oXG4gICAgICAgIHRhcmdldFVuaXQsXG4gICAgICAgIHRoaXMudG9CYXNlVW5pdFZhbHVlKHF1YW50aXR5KSAvIHRhcmdldEJhc2VGYWN0b3JcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ0ZhaWxlZCB0byBjb252ZXJ0IHF1YW50aXR5IHRvIHRhcmdldCB1bml0OicgKyB0YXJnZXRVbml0ICsgJy4gUXVhbnRpdHk6ICcsIHF1YW50aXR5KTtcbiAgICAgIHJldHVybiBxdWFudGl0eTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdG9CYXNlVW5pdFZhbHVlKHF1YW50aXR5OiBRdWFudGl0eSk6IG51bWJlciB7XG4gICAgY29uc3QgdGFyZ2V0QmFzZUZhY3RvciA9IHRoaXMudW5pdFNlcnZpY2UuZ2V0VG9CYXNlRmFjdG9yKHF1YW50aXR5LnVuaXQpO1xuICAgIHJldHVybiBxdWFudGl0eS52YWx1ZSAqIHRhcmdldEJhc2VGYWN0b3I7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHF1YW50aXR5IGluIGEgbm9ybWFsaXplZCBmb3JtLlxuICAgKiBBIGNhY2hlIGlzIHVzZWQgdG8gcmVkdWNlIGNhbGN1bGF0aW9ucy5cbiAgICpcbiAgICogODUwMCBrZyAtPiA4LjUgdFxuICAgKiA5MDAwMDAwIG1tIC0+IDkga21cbiAgICogMTIxNSBtIC0+IDEuMiBrbVxuICAgKlxuICAgKiBAcGFyYW0gcXVhbnRpdHlcbiAgICovXG4gIHB1YmxpYyBub3JtYWxpemUocXVhbnRpdHk6IFF1YW50aXR5KTogUXVhbnRpdHkge1xuXG4gICAgLy8gQ2hlY2sgY2FjaGVcbiAgICBjb25zdCBjYWNoZWRJdGVtID0gdGhpcy5jYWNoZUxvb2t1cChxdWFudGl0eSk7XG5cbiAgICAvLyBWYWx1ZSBpcyBpbiBjYWNoZVxuICAgIGlmIChjYWNoZWRJdGVtKSB7XG4gICAgICByZXR1cm4gY2FjaGVkSXRlbTtcbiAgICB9IGVsc2Uge1xuXG4gICAgICBjb25zdCB0YXJnZXRRdWFudGl0eSA9IHRoaXMubm9ybWFsaXplSW50ZXJuYWwocXVhbnRpdHkpO1xuXG4gICAgICAvLyBVcGRhdGUgY2FjaGVcbiAgICAgIHRoaXMuY2FjaGVVcGRhdGUocXVhbnRpdHksIHRhcmdldFF1YW50aXR5KTtcblxuICAgICAgcmV0dXJuIHRhcmdldFF1YW50aXR5O1xuXG4gICAgfVxuICB9XG5cblxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgbm9ybWFsaXplSW50ZXJuYWwocXVhbnRpdHk6IFF1YW50aXR5KTogUXVhbnRpdHkge1xuXG4gICAgLy8gR2l2ZW4gcXVhbnRpdHkgdmFsdWUgaW4gYmFzZSB1bml0XG5cbiAgICBjb25zdCBkaW1lbnNpb24gPSB0aGlzLnVuaXRTZXJ2aWNlLmdldFVuaXREaW1lbnNpb24ocXVhbnRpdHkudW5pdCk7XG5cbiAgICBpZiAoIWRpbWVuc2lvbikgeyByZXR1cm4gcXVhbnRpdHk7IH1cblxuICAgIGNvbnN0IGJhc2VWYWx1ZSA9IHRoaXMudG9CYXNlVW5pdFZhbHVlKHF1YW50aXR5KTtcblxuICAgIGxldCBzdWl0YWJsZVVuaXQ6IFVuaXRJbmZvO1xuXG4gICAgY29uc3QgZGltZW5zaW9uVW5pdHMgPSB0aGlzLnVuaXRTZXJ2aWNlLmdldFVuaXRJbmZvc0J5RGltZW5zaW9uKGRpbWVuc2lvbik7XG5cbiAgICBpZiAoZGltZW5zaW9uVW5pdHMpIHtcblxuICAgICAgY29uc3QgZmFjdG9yU29ydGVkVW5pdHMgPSBkaW1lbnNpb25Vbml0cy5zb3J0KChhLCBiKSA9PiBiLnRvQmFzZUZhY3RvciAtIGEudG9CYXNlRmFjdG9yKTtcblxuICAgICAgZm9yIChjb25zdCB1bml0SW5mbyBvZiBmYWN0b3JTb3J0ZWRVbml0cykge1xuICAgICAgICBjb25zdCBzaWduZWRCYXNlVmFsdWUgPSAoKGJhc2VWYWx1ZSA8IDApID8gYmFzZVZhbHVlICogLTEgOiBiYXNlVmFsdWUpO1xuICAgICAgICBpZiAodW5pdEluZm8udG9CYXNlRmFjdG9yIDw9IHNpZ25lZEJhc2VWYWx1ZSkge1xuICAgICAgICAgIHN1aXRhYmxlVW5pdCA9IHVuaXRJbmZvO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdDb3VsZCBub3QgZmluZCBEaW1lbnNpb24gaW5mbyBmb3IgJyArIGRpbWVuc2lvbiArICcuICgnICsgcXVhbnRpdHkudW5pdCArICcgLS0+ICcgKyBkaW1lbnNpb24gKyAnKScpO1xuICAgIH1cblxuICAgIGlmICghc3VpdGFibGVVbml0KSB7XG4gICAgICByZXR1cm4gcXVhbnRpdHk7XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudFRvQmFzZSA9IHRoaXMudW5pdFNlcnZpY2UuZ2V0VG9CYXNlRmFjdG9yKHF1YW50aXR5LnVuaXQpO1xuXG4gICAgLy8gRW5zdXJlIHdlIHByZWZlciB0aGUgaW5pdGlhbCB1bml0IGlmIHRoZSBhY3R1YWwgdmFsdWUgaXMgbm90IGFmZmVjdGVkLlxuICAgIC8vIFRoaXMgaGVscHMgdG8gYmUgY29uc2lzdGVudCBhbmQgZGlzcGxheSB0aGUgYWN0dWFsIHVuaXQgaW4gcmFyZSBjYXNlcyB3aGVuIG11bHRpcGxlIHVuaXQgYWx0ZXJuYXRpdmVzIGV4aXN0IChzYW1lIGZhY3RvcilcbiAgICBpZiAoc3VpdGFibGVVbml0LnRvQmFzZUZhY3RvciA9PT0gY3VycmVudFRvQmFzZSkge1xuICAgICAgcmV0dXJuIHF1YW50aXR5O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9Vbml0KHF1YW50aXR5LCBzdWl0YWJsZVVuaXQudW5pdCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRRdWFudGl0eUlkZW50aWZpZXIocXVhbnRpdHk6IFF1YW50aXR5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gcXVhbnRpdHkudmFsdWUgKyAnLScgKyBxdWFudGl0eS51bml0O1xuICB9XG5cbn1cbiJdfQ==
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcXVhbnRpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbWVhc3VyZXMvdXRpbC9lbGRlci1xdWFudGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUUzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7OztBQUtuRCxNQUFNLE9BQU8sb0JBQW9CO0lBd0MvQjs7OztnRkFJNEU7SUFFNUUsWUFDbUIsV0FBNkI7UUFBN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBN0NoRDs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4RCx3QkFBbUIsR0FBRyxHQUFHLENBQUM7UUFDMUIsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztJQXNDOUQsQ0FBQztJQXBDRDs7OztnRkFJNEU7SUFFckUsVUFBVSxDQUFDLE1BQWdCLEVBQUUsS0FBZTtRQUNqRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FDMUIsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDM0IsQ0FBQztJQUNKLENBQUM7SUFFTSxnQkFBZ0IsQ0FDckIsTUFBZ0IsRUFDaEIsS0FBZSxFQUNmLE1BQWdCO1FBRWhCLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FDcEIsTUFBTSxDQUFDLElBQUksRUFDWCxN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QUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1VuaXR9IGZyb20gJy4uL21vZGVsL3VuaXQnO1xuaW1wb3J0IHtRdWFudGl0eX0gZnJvbSAnLi4vbW9kZWwvcXVhbnRpdHknO1xuaW1wb3J0IHtVbml0SW5mb30gZnJvbSAnLi4vbW9kZWwvdW5pdC1yZWdpc3RyeSc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbGRlclVuaXRTZXJ2aWNlfSBmcm9tICcuLi9lbGRlci11bml0LnNlcnZpY2UnO1xuaW1wb3J0IHtEaW1lbnNpb25zfSBmcm9tICcuLi9tb2RlbC9kaW1lbnNpb25zJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFbGRlclF1YW50aXR5U2VydmljZSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgUVVBTlRJVFlfQ0FDSEVfU0laRSA9IDUwMDtcbiAgcHJpdmF0ZSByZWFkb25seSBRVUFOVElUWV9DQUNIRSA9IG5ldyBNYXA8c3RyaW5nLCBRdWFudGl0eT4oKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQnVpbGRlciBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY3JlYXRlQXJlYShsZW5ndGg6IFF1YW50aXR5LCB3aWR0aDogUXVhbnRpdHkpOiBEaW1lbnNpb25zIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVEaW1lbnNpb25zKFxuICAgICAgbGVuZ3RoLFxuICAgICAgd2lkdGgsXG4gICAgICBRdWFudGl0eS56ZXJvKGxlbmd0aC51bml0KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlRGltZW5zaW9ucyhcbiAgICBsZW5ndGg6IFF1YW50aXR5LFxuICAgIHdpZHRoOiBRdWFudGl0eSxcbiAgICBoZWlnaHQ6IFF1YW50aXR5XG4gICk6IERpbWVuc2lvbnMge1xuICAgIHJldHVybiBEaW1lbnNpb25zLmZyb20oXG4gICAgICBsZW5ndGgudW5pdCxcbiAgICAgIGxlbmd0aC52YWx1ZSxcbiAgICAgIHRoaXMuY29udmVydFRvVW5pdCh3aWR0aCwgbGVuZ3RoLnVuaXQpLnZhbHVlLFxuICAgICAgdGhpcy5jb252ZXJ0VG9Vbml0KGhlaWdodCwgbGVuZ3RoLnVuaXQpLnZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdW5pdFNlcnZpY2U6IEVsZGVyVW5pdFNlcnZpY2VcbiAgKSB7XG4gIH1cblxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB3aXRoVW5pdChxdWFudGl0eTogUXVhbnRpdHksIHVuaXQ6IFVuaXQpIHtcbiAgICByZXR1cm4gUXVhbnRpdHkuZnJvbSh1bml0LCBxdWFudGl0eS52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgd2l0aFZhbHVlKHF1YW50aXR5OiBRdWFudGl0eSwgdmFsdWU6IG51bWJlcikge1xuICAgIHJldHVybiBRdWFudGl0eS5mcm9tKHF1YW50aXR5LnVuaXQsIHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjYWNoZUxvb2t1cChsb29rdXA6IFF1YW50aXR5KTogUXVhbnRpdHkge1xuICAgIHJldHVybiB0aGlzLlFVQU5USVRZX0NBQ0hFLmdldCh0aGlzLmdldFF1YW50aXR5SWRlbnRpZmllcihsb29rdXApKTtcbiAgfVxuXG4gIHB1YmxpYyBjYWNoZVVwZGF0ZShrZXk6IFF1YW50aXR5LCB2YWx1ZTogUXVhbnRpdHkpIHtcbiAgICBpZiAodGhpcy5RVUFOVElUWV9DQUNIRS5zaXplID49IHRoaXMuUVVBTlRJVFlfQ0FDSEVfU0laRSkge1xuICAgICAgdGhpcy5RVUFOVElUWV9DQUNIRS5jbGVhcigpO1xuICAgIH1cbiAgICB0aGlzLlFVQU5USVRZX0NBQ0hFLnNldCh0aGlzLmdldFF1YW50aXR5SWRlbnRpZmllcihrZXkpLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogTXVsdGlwbGllcyBhIHF1YW50aXR5IHdpdGggYSBtdWx0aXBsaWVyIGFuZCByZXR1cm5zIGEgcXVhbnRpdHkuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqIFF1YW50aXR5KDEwLCdrZycpICogMyA9IFF1YW50aXR5KDMwMDAwLCdnJylcbiAgICpcbiAgICogQHBhcmFtIHF1YW50aXR5XG4gICAqIEBwYXJhbSBtdWx0aXBsaWVyXG4gICAqL1xuXG4gIHB1YmxpYyBtdWx0aXBseShxdWFudGl0eTogUXVhbnRpdHksIG11bHRpcGxpZXI6IG51bWJlcik6IFF1YW50aXR5IHtcblxuICAgIGlmICghcXVhbnRpdHkgfHwgIW11bHRpcGxpZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gUXVhbnRpdHkuZnJvbShcbiAgICAgIHF1YW50aXR5LnVuaXQsXG4gICAgICBxdWFudGl0eS52YWx1ZSAqIG11bHRpcGxpZXJcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERpdmlkZXMgYSBxdWFudGl0eSBieSBhbm90aGVyIHF1YW50aXR5IGFuZCByZXR1cm5zIGEgc2NhbGFyLlxuICAgKlxuICAgKiBFeGFtcGxlczpcbiAgICogUXVhbnRpdHkoMTAsJ2tnJykgLyBRdWFudGl0eSg1LCdrZycpID0gMlxuICAgKiBRdWFudGl0eSgxMCwna2cnKSAvIFF1YW50aXR5KDUsJ2cnKSA9IDIwMDBcbiAgICpcbiAgICogQHBhcmFtIGRpdmlkZW5kXG4gICAqIEBwYXJhbSBkaXZpc29yXG4gICAqL1xuICBwdWJsaWMgZGl2aWRlQnlRdWFudGl0eShkaXZpZGVuZDogUXVhbnRpdHksIGRpdmlzb3I6IFF1YW50aXR5KTogbnVtYmVyIHtcblxuICAgIGlmICghZGl2aWRlbmQgfHwgIWRpdmlzb3IpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBkaXZpZGVuZE5vcm1hbCA9ICB0aGlzLnRvQmFzZVVuaXRWYWx1ZShkaXZpZGVuZCk7XG4gICAgY29uc3QgZGl2aXNvck5vcm1hbCA9ICB0aGlzLnRvQmFzZVVuaXRWYWx1ZShkaXZpc29yKTtcbiAgICByZXR1cm4gZGl2aWRlbmROb3JtYWwgLyBkaXZpc29yTm9ybWFsO1xuICB9XG5cblxuICAvKipcbiAgICogU3VtcyB1cCBRdWFudGl0aWVzIGFuZCByZXR1cm5zIGEgUXVhbnRpdHkuXG4gICAqXG4gICAqIEV4YW1wbGU6XG4gICAqIFF1YW50aXR5KDEwLCdrZycpICsgUXVhbnRpdHkoNSwna2cnKSArIFF1YW50aXR5KDUsJ2cnKSA9IFF1YW50aXR5KDE1MDA1LCAnZycpXG4gICAqXG4gICAqIEBwYXJhbSBxdWFudGl0aWVzXG4gICAqL1xuICBwdWJsaWMgc3VtKHF1YW50aXRpZXM6IFF1YW50aXR5W10pOiBRdWFudGl0eSB7XG4gICAgaWYgKCFxdWFudGl0aWVzIHx8IHF1YW50aXRpZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXRVbml0ID0gcXVhbnRpdGllc1swXS51bml0O1xuXG4gICAgcmV0dXJuIFF1YW50aXR5LmZyb20oXG4gICAgICB0YXJnZXRVbml0LFxuICAgICAgcXVhbnRpdGllcy5yZWR1Y2UoXG4gICAgICAgICh0b3RhbCwgYWRkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRvdGFsICsgdGhpcy5jb252ZXJ0VG9Vbml0KGFkZCwgdGFyZ2V0VW5pdCkudmFsdWU7XG4gICAgICAgIH0sIDBcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnRyYWN0cyBhIHF1YW50aXR5IGZyb20gYW5vdGhlciBxdWFudGl0eSBhbmQgcmV0dXJucyBhIHF1YW50aXR5LlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKiBRdWFudGl0eSgxMCwna2cnKSAtIFF1YW50aXR5KDUsJ2cnKSA9IFF1YW50aXR5KDk5OTUsICdnJylcbiAgICpcbiAgICogQHBhcmFtIG1pbnVlbmRcbiAgICogQHBhcmFtIHN1YnRyYWhlbmRcbiAgICovXG4gIHB1YmxpYyBzdWJ0cmFjdChtaW51ZW5kOiBRdWFudGl0eSwgc3VidHJhaGVuZDogUXVhbnRpdHkpOiBRdWFudGl0eSB7XG4gICAgaWYgKCFtaW51ZW5kIHx8ICFzdWJ0cmFoZW5kKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIFF1YW50aXR5LmZyb20oXG4gICAgICBtaW51ZW5kLnVuaXQsXG4gICAgICBtaW51ZW5kLnZhbHVlIC0gdGhpcy5jb252ZXJ0VG9Vbml0KHN1YnRyYWhlbmQsIG1pbnVlbmQudW5pdCkudmFsdWVcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnRyYWN0cyBhIHF1YW50aXR5IGZyb20gYW5vdGhlciBxdWFudGl0eSBhbmQgcmV0dXJucyBhIHF1YW50aXR5LlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKiBRdWFudGl0eSgxMCwna2cnKSArIFF1YW50aXR5KDUwMCwnZycpID0gUXVhbnRpdHkoMTAuNSwgJ2tnJylcbiAgICpcbiAgICogQHBhcmFtIGxlZnRcbiAgICogQHBhcmFtIHJpZ2h0XG4gICAqL1xuICBwdWJsaWMgYWRkKGxlZnQ6IFF1YW50aXR5LCByaWdodDogUXVhbnRpdHkpOiBRdWFudGl0eSB7XG4gICAgaWYgKCFsZWZ0IHx8ICFyaWdodCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBRdWFudGl0eS5mcm9tKFxuICAgICAgbGVmdC51bml0LFxuICAgICAgbGVmdC52YWx1ZSAtIHRoaXMuY29udmVydFRvVW5pdChyaWdodCwgbGVmdC51bml0KS52YWx1ZVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNmb3JtcyBhIHF1YW50aXR5IHRvIGFub3RoZXIgcXVhbnRpdHkgb2YgdGhlIHNhbWUgZGltZW5zaW9uIGJ5IHRhcmdldC1TSVxuICAgKlxuICAgKiBAcGFyYW0gcXVhbnRpdHlcbiAgICogQHBhcmFtIHRhcmdldFVuaXRcbiAgICovXG4gIHB1YmxpYyBjb252ZXJ0VG9Vbml0KHF1YW50aXR5OiBRdWFudGl0eSwgdGFyZ2V0VW5pdDogVW5pdCk6IFF1YW50aXR5IHtcbiAgICBpZiAoIXF1YW50aXR5IHx8ICF0YXJnZXRVbml0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAocXVhbnRpdHkudW5pdCA9PT0gdGFyZ2V0VW5pdCkge1xuICAgICAgcmV0dXJuIFF1YW50aXR5LmZyb20ocXVhbnRpdHkudW5pdCwgcXVhbnRpdHkudmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldEJhc2VGYWN0b3IgPSB0aGlzLnVuaXRTZXJ2aWNlLmdldFRvQmFzZUZhY3Rvcih0YXJnZXRVbml0KTtcblxuICAgIGlmICh0YXJnZXRCYXNlRmFjdG9yID4gMCkge1xuICAgICAgcmV0dXJuIFF1YW50aXR5LmZyb20oXG4gICAgICAgIHRhcmdldFVuaXQsXG4gICAgICAgIHRoaXMudG9CYXNlVW5pdFZhbHVlKHF1YW50aXR5KSAvIHRhcmdldEJhc2VGYWN0b3JcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ0ZhaWxlZCB0byBjb252ZXJ0IHF1YW50aXR5IHRvIHRhcmdldCB1bml0OicgKyB0YXJnZXRVbml0ICsgJy4gUXVhbnRpdHk6ICcsIHF1YW50aXR5KTtcbiAgICAgIHJldHVybiBxdWFudGl0eTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdG9CYXNlVW5pdFZhbHVlKHF1YW50aXR5OiBRdWFudGl0eSk6IG51bWJlciB7XG4gICAgY29uc3QgdGFyZ2V0QmFzZUZhY3RvciA9IHRoaXMudW5pdFNlcnZpY2UuZ2V0VG9CYXNlRmFjdG9yKHF1YW50aXR5LnVuaXQpO1xuICAgIHJldHVybiBxdWFudGl0eS52YWx1ZSAqIHRhcmdldEJhc2VGYWN0b3I7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHF1YW50aXR5IGluIGEgbm9ybWFsaXplZCBmb3JtLlxuICAgKiBBIGNhY2hlIGlzIHVzZWQgdG8gcmVkdWNlIGNhbGN1bGF0aW9ucy5cbiAgICpcbiAgICogODUwMCBrZyAtPiA4LjUgdFxuICAgKiA5MDAwMDAwIG1tIC0+IDkga21cbiAgICogMTIxNSBtIC0+IDEuMiBrbVxuICAgKlxuICAgKiBAcGFyYW0gcXVhbnRpdHlcbiAgICovXG4gIHB1YmxpYyBub3JtYWxpemUocXVhbnRpdHk6IFF1YW50aXR5KTogUXVhbnRpdHkge1xuXG4gICAgLy8gQ2hlY2sgY2FjaGVcbiAgICBjb25zdCBjYWNoZWRJdGVtID0gdGhpcy5jYWNoZUxvb2t1cChxdWFudGl0eSk7XG5cbiAgICAvLyBWYWx1ZSBpcyBpbiBjYWNoZVxuICAgIGlmIChjYWNoZWRJdGVtKSB7XG4gICAgICByZXR1cm4gY2FjaGVkSXRlbTtcbiAgICB9IGVsc2Uge1xuXG4gICAgICBjb25zdCB0YXJnZXRRdWFudGl0eSA9IHRoaXMubm9ybWFsaXplSW50ZXJuYWwocXVhbnRpdHkpO1xuXG4gICAgICAvLyBVcGRhdGUgY2FjaGVcbiAgICAgIHRoaXMuY2FjaGVVcGRhdGUocXVhbnRpdHksIHRhcmdldFF1YW50aXR5KTtcblxuICAgICAgcmV0dXJuIHRhcmdldFF1YW50aXR5O1xuXG4gICAgfVxuICB9XG5cblxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgbm9ybWFsaXplSW50ZXJuYWwocXVhbnRpdHk6IFF1YW50aXR5KTogUXVhbnRpdHkge1xuXG4gICAgLy8gR2l2ZW4gcXVhbnRpdHkgdmFsdWUgaW4gYmFzZSB1bml0XG5cbiAgICBjb25zdCBkaW1lbnNpb24gPSB0aGlzLnVuaXRTZXJ2aWNlLmdldFVuaXREaW1lbnNpb24ocXVhbnRpdHkudW5pdCk7XG5cbiAgICBpZiAoIWRpbWVuc2lvbikgeyByZXR1cm4gcXVhbnRpdHk7IH1cblxuICAgIGNvbnN0IGJhc2VWYWx1ZSA9IHRoaXMudG9CYXNlVW5pdFZhbHVlKHF1YW50aXR5KTtcblxuICAgIGxldCBzdWl0YWJsZVVuaXQ6IFVuaXRJbmZvO1xuXG4gICAgY29uc3QgZGltZW5zaW9uVW5pdHMgPSB0aGlzLnVuaXRTZXJ2aWNlLmdldFVuaXRJbmZvc0J5RGltZW5zaW9uKGRpbWVuc2lvbik7XG5cbiAgICBpZiAoZGltZW5zaW9uVW5pdHMpIHtcblxuICAgICAgY29uc3QgZmFjdG9yU29ydGVkVW5pdHMgPSBkaW1lbnNpb25Vbml0cy5zb3J0KChhLCBiKSA9PiBiLnRvQmFzZUZhY3RvciAtIGEudG9CYXNlRmFjdG9yKTtcblxuICAgICAgZm9yIChjb25zdCB1bml0SW5mbyBvZiBmYWN0b3JTb3J0ZWRVbml0cykge1xuICAgICAgICBjb25zdCBzaWduZWRCYXNlVmFsdWUgPSAoKGJhc2VWYWx1ZSA8IDApID8gYmFzZVZhbHVlICogLTEgOiBiYXNlVmFsdWUpO1xuICAgICAgICBpZiAodW5pdEluZm8udG9CYXNlRmFjdG9yIDw9IHNpZ25lZEJhc2VWYWx1ZSkge1xuICAgICAgICAgIHN1aXRhYmxlVW5pdCA9IHVuaXRJbmZvO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdDb3VsZCBub3QgZmluZCBEaW1lbnNpb24gaW5mbyBmb3IgJyArIGRpbWVuc2lvbiArICcuICgnICsgcXVhbnRpdHkudW5pdCArICcgLS0+ICcgKyBkaW1lbnNpb24gKyAnKScpO1xuICAgIH1cblxuICAgIGlmICghc3VpdGFibGVVbml0KSB7XG4gICAgICByZXR1cm4gcXVhbnRpdHk7XG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudFRvQmFzZSA9IHRoaXMudW5pdFNlcnZpY2UuZ2V0VG9CYXNlRmFjdG9yKHF1YW50aXR5LnVuaXQpO1xuXG4gICAgLy8gRW5zdXJlIHdlIHByZWZlciB0aGUgaW5pdGlhbCB1bml0IGlmIHRoZSBhY3R1YWwgdmFsdWUgaXMgbm90IGFmZmVjdGVkLlxuICAgIC8vIFRoaXMgaGVscHMgdG8gYmUgY29uc2lzdGVudCBhbmQgZGlzcGxheSB0aGUgYWN0dWFsIHVuaXQgaW4gcmFyZSBjYXNlcyB3aGVuIG11bHRpcGxlIHVuaXQgYWx0ZXJuYXRpdmVzIGV4aXN0IChzYW1lIGZhY3RvcilcbiAgICBpZiAoc3VpdGFibGVVbml0LnRvQmFzZUZhY3RvciA9PT0gY3VycmVudFRvQmFzZSkge1xuICAgICAgcmV0dXJuIHF1YW50aXR5O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0VG9Vbml0KHF1YW50aXR5LCBzdWl0YWJsZVVuaXQudW5pdCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRRdWFudGl0eUlkZW50aWZpZXIocXVhbnRpdHk6IFF1YW50aXR5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gcXVhbnRpdHkudmFsdWUgKyAnLScgKyBxdWFudGl0eS51bml0O1xuICB9XG5cbn1cbiJdfQ==
@@ -138,9 +138,9 @@ export class ElderBreadCrumbsComponent {
138
138
  return nodes;
139
139
  }
140
140
  }
141
- ElderBreadCrumbsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderBreadCrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
142
- ElderBreadCrumbsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ElderBreadCrumbsComponent, selector: "elder-bread-crumbs", inputs: { root: "root", rootTranslation: "rootTranslation", rootIcon: "rootIcon", backgroundColor: "backgroundColor", editModeEnabled: "editModeEnabled", path: "path" }, outputs: { pathChange: "pathChange" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<!-- main container-->\n<div class=\"layout-row place-start-center full breadcrumb-bar\"\n [style.background-color]=\"backgroundColor\"\n *ngIf=\"{enabled: editMode$ | async} as editMode\"\n>\n\n <!-- path container -->\n <form #breadCrumbForm=\"ngForm\"\n class=\"layout-row place-start-center flex breadcrumb-path\"\n (click)=\"enableEditMode()\"\n >\n <!-- path edit control (if editMode:enabled) -->\n <mat-form-field class=\"flex\" *ngIf=\"editMode.enabled\" elderDense >\n {{ pathInput.focus() }}\n <input matInput type=\"text\" name=\"pathInput\" #pathInput\n [ngModel]=\"path\" (ngModelChange)=\"onPathInputChange($event)\"\n (blur)=\"onPathEditBlur($event)\"\n elderKeyEvent [elderKeyEventFilter]=\"'Enter'\" (onElderKeyEvent)=\"onEnter()\">\n </mat-form-field>\n\n <!-- navigation control (if editMode:disabled) -->\n <ng-container *ngIf=\"!editMode.enabled\">\n <div class=\"layout-row place-center-center flex-none\"\n *ngFor=\"let node of nodes$ | async;let isFirst = first;let isLast = last\">\n\n <!-- arrow right icon as path element delimiter -->\n <mat-icon *ngIf=\"!isFirst\" class=\"noselect breadcrumb-arrow\">keyboard_arrow_right</mat-icon>\n\n <!-- root element (case root icon) -->\n <a *ngIf=\"isFirst && rootIcon\"\n mat-icon-button class=\"breadcrumb\"\n (click)=\"goToPath(node)\" elderStopEventPropagation\n >\n <mat-icon>{{rootIcon}}</mat-icon>\n </a>\n\n <!-- intermediate elements (not last and (not first or root icon)) -->\n <a *ngIf=\"!isLast && (!isFirst || !rootIcon)\"\n mat-button class=\"breadcrumb\"\n (click)=\"goToPath(node)\" elderStopEventPropagation\n >\n <span>{{node.name}}</span>\n </a>\n\n <!-- last element (is last and (not first or root icon)) -->\n <a mat-button class=\"breadcrumb\" *ngIf=\"isLast && (!isFirst || !rootIcon)\"\n (click)=\"null\" elderStopEventPropagation\n >\n {{node.name}}\n <mat-icon>arrow_drop_down</mat-icon>\n </a>\n\n </div>\n </ng-container>\n\n </form>\n\n <!-- bread crumb action menu button -->\n <button mat-icon-button type=\"button\" [matMenuTriggerFor]=\"menu\">\n\n <mat-icon style=\"font-size: 22px\">arrow_drop_down</mat-icon>\n\n <mat-menu #menu=\"matMenu\">\n\n <button mat-menu-item type=\"button\" [elderClipboardPut]=\"path\">\n <mat-icon>content_copy</mat-icon>\n <span>{{'Pfad kopieren'}}</span>\n </button>\n\n <button mat-menu-item type=\"button\" (click)=\"onMenuEditPathClick($event)\" elderStopEventPropagation>\n <mat-icon *ngIf=\"!editMode.enabled\">edit</mat-icon>\n <mat-icon *ngIf=\"editMode.enabled\">done</mat-icon>\n <span *ngIf=\"!editMode.enabled\">{{'Pfad editieren'}}</span>\n <span *ngIf=\"editMode.enabled\">{{'Pfad best\u00E4tigen'}}</span>\n </button>\n\n </mat-menu>\n\n </button>\n</div>\n\n\n", styles: [".breadcrumb-path{padding:0 8px}.breadcrumb{padding-left:4px;padding-right:4px;font-size:18px;font-weight:400}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i8.ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "directive", type: i9.ElderKeyEventDirective, selector: "[elderKeyEvent]", inputs: ["elderKeyEventFilter", "elderKeyEventDown", "elderKeyEventChildren", "elderKeyEventCallback"], outputs: ["onElderKeyEvent"] }, { kind: "directive", type: i10.ElderClipboardPutDirective, selector: "[elderClipboardPut]", inputs: ["elderClipboardPut"], outputs: ["clipboardCopied"] }, { kind: "directive", type: i11.ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderBreadCrumbsComponent, decorators: [{
141
+ ElderBreadCrumbsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderBreadCrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
142
+ ElderBreadCrumbsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ElderBreadCrumbsComponent, selector: "elder-bread-crumbs", inputs: { root: "root", rootTranslation: "rootTranslation", rootIcon: "rootIcon", backgroundColor: "backgroundColor", editModeEnabled: "editModeEnabled", path: "path" }, outputs: { pathChange: "pathChange" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<!-- main container-->\n<div class=\"layout-row place-start-center full breadcrumb-bar\"\n [style.background-color]=\"backgroundColor\"\n *ngIf=\"{enabled: editMode$ | async} as editMode\"\n>\n\n <!-- path container -->\n <form #breadCrumbForm=\"ngForm\"\n class=\"layout-row place-start-center flex breadcrumb-path\"\n (click)=\"enableEditMode()\"\n >\n <!-- path edit control (if editMode:enabled) -->\n <mat-form-field class=\"flex\" *ngIf=\"editMode.enabled\" elderDense >\n {{ pathInput.focus() }}\n <input matInput type=\"text\" name=\"pathInput\" #pathInput\n [ngModel]=\"path\" (ngModelChange)=\"onPathInputChange($event)\"\n (blur)=\"onPathEditBlur($event)\"\n elderKeyEvent [elderKeyEventFilter]=\"'Enter'\" (onElderKeyEvent)=\"onEnter()\">\n </mat-form-field>\n\n <!-- navigation control (if editMode:disabled) -->\n <ng-container *ngIf=\"!editMode.enabled\">\n <div class=\"layout-row place-center-center flex-none\"\n *ngFor=\"let node of nodes$ | async;let isFirst = first;let isLast = last\">\n\n <!-- arrow right icon as path element delimiter -->\n <mat-icon *ngIf=\"!isFirst\" class=\"noselect breadcrumb-arrow\">keyboard_arrow_right</mat-icon>\n\n <!-- root element (case root icon) -->\n <a *ngIf=\"isFirst && rootIcon\"\n mat-icon-button class=\"breadcrumb\"\n (click)=\"goToPath(node)\" elderStopEventPropagation\n >\n <mat-icon>{{rootIcon}}</mat-icon>\n </a>\n\n <!-- intermediate elements (not last and (not first or root icon)) -->\n <a *ngIf=\"!isLast && (!isFirst || !rootIcon)\"\n mat-button class=\"breadcrumb\"\n (click)=\"goToPath(node)\" elderStopEventPropagation\n >\n <span>{{node.name}}</span>\n </a>\n\n <!-- last element (is last and (not first or root icon)) -->\n <a mat-button class=\"breadcrumb\" *ngIf=\"isLast && (!isFirst || !rootIcon)\"\n (click)=\"null\" elderStopEventPropagation\n >\n {{node.name}}\n <mat-icon>arrow_drop_down</mat-icon>\n </a>\n\n </div>\n </ng-container>\n\n </form>\n\n <!-- bread crumb action menu button -->\n <button mat-icon-button type=\"button\" [matMenuTriggerFor]=\"menu\">\n\n <mat-icon style=\"font-size: 22px\">arrow_drop_down</mat-icon>\n\n <mat-menu #menu=\"matMenu\">\n\n <button mat-menu-item type=\"button\" [elderClipboardPut]=\"path\">\n <mat-icon>content_copy</mat-icon>\n <span>{{'Pfad kopieren'}}</span>\n </button>\n\n <button mat-menu-item type=\"button\" (click)=\"onMenuEditPathClick($event)\" elderStopEventPropagation>\n <mat-icon *ngIf=\"!editMode.enabled\">edit</mat-icon>\n <mat-icon *ngIf=\"editMode.enabled\">done</mat-icon>\n <span *ngIf=\"!editMode.enabled\">{{'Pfad editieren'}}</span>\n <span *ngIf=\"editMode.enabled\">{{'Pfad best\u00E4tigen'}}</span>\n </button>\n\n </mat-menu>\n\n </button>\n</div>\n\n\n", styles: [".breadcrumb-path{padding:0 8px}.breadcrumb{padding-left:4px;padding-right:4px;font-size:18px;font-weight:400}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIconAnchor, selector: "a[mat-icon-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i8.ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "directive", type: i9.ElderKeyEventDirective, selector: "[elderKeyEvent]", inputs: ["elderKeyEventFilter", "elderKeyEventDown", "elderKeyEventChildren", "elderKeyEventCallback"], outputs: ["onElderKeyEvent"] }, { kind: "directive", type: i10.ElderClipboardPutDirective, selector: "[elderClipboardPut]", inputs: ["elderClipboardPut"], outputs: ["clipboardCopied"] }, { kind: "directive", type: i11.ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderBreadCrumbsComponent, decorators: [{
144
144
  type: Component,
145
145
  args: [{ selector: 'elder-bread-crumbs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- main container-->\n<div class=\"layout-row place-start-center full breadcrumb-bar\"\n [style.background-color]=\"backgroundColor\"\n *ngIf=\"{enabled: editMode$ | async} as editMode\"\n>\n\n <!-- path container -->\n <form #breadCrumbForm=\"ngForm\"\n class=\"layout-row place-start-center flex breadcrumb-path\"\n (click)=\"enableEditMode()\"\n >\n <!-- path edit control (if editMode:enabled) -->\n <mat-form-field class=\"flex\" *ngIf=\"editMode.enabled\" elderDense >\n {{ pathInput.focus() }}\n <input matInput type=\"text\" name=\"pathInput\" #pathInput\n [ngModel]=\"path\" (ngModelChange)=\"onPathInputChange($event)\"\n (blur)=\"onPathEditBlur($event)\"\n elderKeyEvent [elderKeyEventFilter]=\"'Enter'\" (onElderKeyEvent)=\"onEnter()\">\n </mat-form-field>\n\n <!-- navigation control (if editMode:disabled) -->\n <ng-container *ngIf=\"!editMode.enabled\">\n <div class=\"layout-row place-center-center flex-none\"\n *ngFor=\"let node of nodes$ | async;let isFirst = first;let isLast = last\">\n\n <!-- arrow right icon as path element delimiter -->\n <mat-icon *ngIf=\"!isFirst\" class=\"noselect breadcrumb-arrow\">keyboard_arrow_right</mat-icon>\n\n <!-- root element (case root icon) -->\n <a *ngIf=\"isFirst && rootIcon\"\n mat-icon-button class=\"breadcrumb\"\n (click)=\"goToPath(node)\" elderStopEventPropagation\n >\n <mat-icon>{{rootIcon}}</mat-icon>\n </a>\n\n <!-- intermediate elements (not last and (not first or root icon)) -->\n <a *ngIf=\"!isLast && (!isFirst || !rootIcon)\"\n mat-button class=\"breadcrumb\"\n (click)=\"goToPath(node)\" elderStopEventPropagation\n >\n <span>{{node.name}}</span>\n </a>\n\n <!-- last element (is last and (not first or root icon)) -->\n <a mat-button class=\"breadcrumb\" *ngIf=\"isLast && (!isFirst || !rootIcon)\"\n (click)=\"null\" elderStopEventPropagation\n >\n {{node.name}}\n <mat-icon>arrow_drop_down</mat-icon>\n </a>\n\n </div>\n </ng-container>\n\n </form>\n\n <!-- bread crumb action menu button -->\n <button mat-icon-button type=\"button\" [matMenuTriggerFor]=\"menu\">\n\n <mat-icon style=\"font-size: 22px\">arrow_drop_down</mat-icon>\n\n <mat-menu #menu=\"matMenu\">\n\n <button mat-menu-item type=\"button\" [elderClipboardPut]=\"path\">\n <mat-icon>content_copy</mat-icon>\n <span>{{'Pfad kopieren'}}</span>\n </button>\n\n <button mat-menu-item type=\"button\" (click)=\"onMenuEditPathClick($event)\" elderStopEventPropagation>\n <mat-icon *ngIf=\"!editMode.enabled\">edit</mat-icon>\n <mat-icon *ngIf=\"editMode.enabled\">done</mat-icon>\n <span *ngIf=\"!editMode.enabled\">{{'Pfad editieren'}}</span>\n <span *ngIf=\"editMode.enabled\">{{'Pfad best\u00E4tigen'}}</span>\n </button>\n\n </mat-menu>\n\n </button>\n</div>\n\n\n", styles: [".breadcrumb-path{padding:0 8px}.breadcrumb{padding-left:4px;padding-right:4px;font-size:18px;font-weight:400}\n"] }]
146
146
  }], ctorParameters: function () { return []; }, propDecorators: { pathChange: [{
@@ -161,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
161
161
  }], path: [{
162
162
  type: Input
163
163
  }] } });
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYnJlYWQtY3J1bWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9icmVhZC1jcnVtYnMvYnJlYWQtY3J1bWJzL2VsZGVyLWJyZWFkLWNydW1icy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL25hdmlnYXRpb24vYnJlYWQtY3J1bWJzL2JyZWFkLWNydW1icy9lbGRlci1icmVhZC1jcnVtYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7O0FBUXRELE1BQU0sT0FBTyx5QkFBeUI7SUFzQ3BDOzs7O2dGQUk0RTtJQUU1RTtRQTFDQTs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyRCxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFJcEMsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRS9DLHVCQUFrQixHQUFvQixJQUFJLE9BQU8sRUFBVSxDQUFDO1FBRzdELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBR2pELFNBQUksR0FBRyxHQUFHLENBQUM7UUFHWCxvQkFBZSxHQUFXLElBQUksQ0FBQztRQVd0QixXQUFNLEdBQUcsSUFBSSxlQUFlLENBQWEsRUFBRSxDQUFDLENBQUM7SUFROUMsQ0FBQztJQUVoQjs7OztnRkFJNEU7SUFFckUsUUFBUTtRQUViLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQzFCLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQzVCLG9CQUFvQixFQUFFLEVBQUUsc0RBQXNEO1FBQzlFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FDbEIsQ0FBQyxTQUFTLENBQ1QsS0FBSyxDQUFDLEVBQUU7WUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQ1csZUFBZSxDQUFDLEtBQWM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQ1csSUFBSSxDQUFDLElBQVk7UUFDMUIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksRUFBRTtZQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLE9BQU87UUFDWixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFZO1FBQ2hDLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUdNLGlCQUFpQixDQUFDLEtBQWE7UUFDcEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBVTtRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBYztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQy9DLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7OztnRkFJNEU7SUFHcEUsVUFBVSxDQUFDLElBQVk7UUFFN0IsTUFBTSxLQUFLLEdBQWUsRUFBRSxDQUFDO1FBRTdCLEtBQUssQ0FBQyxJQUFJLENBQ1IsSUFBSSxRQUFRLENBQ1YsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUNsRSxDQUNGLENBQUM7UUFFRixJQUFJLElBQUksRUFBRTtZQUVSLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFFekUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDO1lBRWhDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFOUIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUV2QixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtnQkFFeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFBRSxTQUFTO2lCQUFFO2dCQUdwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBRXBELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQ3JCLE9BQU8sRUFDUCxJQUFJLENBQ0wsQ0FBQyxDQUFDO2dCQUVILE1BQU0sR0FBRyxPQUFPLENBQUM7YUFDbEI7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7dUhBbk1VLHlCQUF5QjsyR0FBekIseUJBQXlCLG9UQWlDekIsY0FBYyxnREN2RDNCLG1sR0FrRkE7NEZENURhLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTswRUFxQi9CLFVBQVU7c0JBRHpCLE1BQU07Z0JBSUEsSUFBSTtzQkFEVixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixTQUFTO3VCQUFDLGNBQWM7Z0JBNkNkLGVBQWU7c0JBRHpCLEtBQUs7Z0JBVUssSUFBSTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge1BhdGhOb2RlfSBmcm9tICcuLi9wYXRoL3BhdGgnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TWF0TWVudVRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1icmVhZC1jcnVtYnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItYnJlYWQtY3J1bWJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItYnJlYWQtY3J1bWJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQnJlYWRDcnVtYnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9wYXRoOiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVkaXRNb2RlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BhdGhJbnB1dENoYW5nZWQkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBwYXRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJvb3QgPSAnLyc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJvb3RUcmFuc2xhdGlvbjogc3RyaW5nID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcm9vdEljb246IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcilcbiAgcHVibGljIHRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyO1xuXG4gIHB1YmxpYyByZWFkb25seSBub2RlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhdGhOb2RlW10+KFtdKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgdGhpcy5fcGF0aElucHV0Q2hhbmdlZCQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCAvLyBvbmx5IGVtaXQgaWYgdmFsdWUgaXMgZGlmZmVyZW50IGZyb20gcHJldmlvdXMgdmFsdWVcbiAgICAgIGRlYm91bmNlVGltZSgyNTApLFxuICAgICkuc3Vic2NyaWJlKFxuICAgICAgdmFsdWUgPT4ge1xuICAgICAgICB0aGlzLmxvZy5pbmZvKHZhbHVlKTtcbiAgICAgICAgdGhpcy5wYXRoQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fdW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuX3Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVkaXRNb2RlRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZWRpdE1vZGUkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCBlZGl0TW9kZUVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdE1vZGUkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBhdGgocGF0aDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuX3BhdGggIT09IHBhdGgpIHtcbiAgICAgIHRoaXMuX3BhdGggPSBwYXRoO1xuICAgICAgdGhpcy5ub2RlcyQubmV4dCh0aGlzLmJ1aWxkTm9kZXModGhpcy5fcGF0aCkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcm9vdFJhd0Rpc3BsYXkoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJ0cyA9IHRoaXMucm9vdC5zcGxpdCgnLycpO1xuICAgIGNvbnN0IHZhbCA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xuICAgIHJldHVybiB2YWwgPyB2YWwgOiAnSG9tZSc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGF0aDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBvbkVudGVyKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUVkaXRNb2RlKCk7XG4gIH1cblxuICBwdWJsaWMgb25QYXRoRWRpdEJsdXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gdGhpcy5sb2cuZGVidWcoJ2JsdXJyZWQnLCBldmVudCk7XG4gICAgdGhpcy5kaXNhYmxlRWRpdE1vZGUoKTtcbiAgfVxuXG5cbiAgcHVibGljIG9uUGF0aElucHV0Q2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wYXRoSW5wdXRDaGFuZ2VkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1lbnVFZGl0UGF0aENsaWNrKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnRyaWdnZXIuY2xvc2VNZW51KCk7XG4gICAgdGhpcy50b2dnbGVFZGl0TW9kZSgpO1xuICB9XG5cbiAgcHVibGljIGdvVG9Sb290KCkge1xuICAgIHRoaXMuZ29Ub1BhdGgobmV3IFBhdGhOb2RlKHRoaXMucm9vdCwgJycpKTtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvUGF0aChub2RlOiBQYXRoTm9kZSkge1xuICAgIHRoaXMucGF0aCA9IG5vZGUuaWQ7XG4gICAgdGhpcy5wYXRoQ2hhbmdlLm5leHQodGhpcy5fcGF0aCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlRWRpdE1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0TW9kZUVuYWJsZWQgPSAhdGhpcy5lZGl0TW9kZUVuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlRWRpdE1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0TW9kZUVuYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGRpc2FibGVFZGl0TW9kZSgpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRNb2RlRW5hYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICBwcml2YXRlIGJ1aWxkTm9kZXMocGF0aDogc3RyaW5nKTogUGF0aE5vZGVbXSB7XG5cbiAgICBjb25zdCBub2RlczogUGF0aE5vZGVbXSA9IFtdO1xuXG4gICAgbm9kZXMucHVzaChcbiAgICAgIG5ldyBQYXRoTm9kZShcbiAgICAgICAgdGhpcy5yb290LFxuICAgICAgICB0aGlzLnJvb3RUcmFuc2xhdGlvbiA/IHRoaXMucm9vdFRyYW5zbGF0aW9uIDogdGhpcy5yb290UmF3RGlzcGxheVxuICAgICAgKVxuICAgICk7XG5cbiAgICBpZiAocGF0aCkge1xuXG4gICAgICBwYXRoID0gcGF0aC5zdGFydHNXaXRoKHRoaXMucm9vdCkgPyBwYXRoLnN1YnN0cih0aGlzLnJvb3QubGVuZ3RoKSA6IHBhdGg7XG5cbiAgICAgIHRoaXMubG9nLmRlYnVnKCdwYXRoOiAnICsgcGF0aCk7XG5cbiAgICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLycpO1xuXG4gICAgICBsZXQgcGFyZW50ID0gdGhpcy5yb290O1xuXG4gICAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcblxuICAgICAgICBpZiAocGFydC5sZW5ndGggPT09IDApIHsgY29udGludWU7IH1cblxuXG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBwYXJlbnQgPyBwYXJlbnQgKyAnLycgKyBwYXJ0IDogcGFydDtcblxuICAgICAgICBub2Rlcy5wdXNoKG5ldyBQYXRoTm9kZShcbiAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgIHBhcnRcbiAgICAgICAgKSk7XG5cbiAgICAgICAgcGFyZW50ID0gY3VycmVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZXM7XG4gIH1cblxuXG59XG4iLCI8IS0tIG1haW4gY29udGFpbmVyLS0+XG48ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXIgZnVsbCBicmVhZGNydW1iLWJhclwiXG4gICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJhY2tncm91bmRDb2xvclwiXG4gICAgICpuZ0lmPVwie2VuYWJsZWQ6IGVkaXRNb2RlJCB8IGFzeW5jfSBhcyBlZGl0TW9kZVwiXG4+XG5cbiAgPCEtLSBwYXRoIGNvbnRhaW5lciAtLT5cbiAgPGZvcm0gI2JyZWFkQ3J1bWJGb3JtPVwibmdGb3JtXCJcbiAgICAgICBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtY2VudGVyIGZsZXggYnJlYWRjcnVtYi1wYXRoXCJcbiAgICAgICAoY2xpY2spPVwiZW5hYmxlRWRpdE1vZGUoKVwiXG4gID5cbiAgICAgIDwhLS0gcGF0aCBlZGl0IGNvbnRyb2wgKGlmIGVkaXRNb2RlOmVuYWJsZWQpIC0tPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiICpuZ0lmPVwiZWRpdE1vZGUuZW5hYmxlZFwiIGVsZGVyRGVuc2UgPlxuICAgICAgICB7eyBwYXRoSW5wdXQuZm9jdXMoKSB9fVxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwicGF0aElucHV0XCIgI3BhdGhJbnB1dFxuICAgICAgICAgICAgICAgW25nTW9kZWxdPVwicGF0aFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uUGF0aElucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgKGJsdXIpPVwib25QYXRoRWRpdEJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICBlbGRlcktleUV2ZW50IFtlbGRlcktleUV2ZW50RmlsdGVyXT1cIidFbnRlcidcIiAob25FbGRlcktleUV2ZW50KT1cIm9uRW50ZXIoKVwiPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPCEtLSBuYXZpZ2F0aW9uIGNvbnRyb2wgKGlmIGVkaXRNb2RlOmRpc2FibGVkKSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZWRpdE1vZGUuZW5hYmxlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1jZW50ZXItY2VudGVyIGZsZXgtbm9uZVwiXG4gICAgICAgICAgICAgKm5nRm9yPVwibGV0IG5vZGUgb2Ygbm9kZXMkIHwgYXN5bmM7bGV0IGlzRmlyc3QgPSBmaXJzdDtsZXQgaXNMYXN0ID0gbGFzdFwiPlxuXG4gICAgICAgICAgPCEtLSBhcnJvdyByaWdodCBpY29uIGFzIHBhdGggZWxlbWVudCBkZWxpbWl0ZXIgLS0+XG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiIWlzRmlyc3RcIiBjbGFzcz1cIm5vc2VsZWN0IGJyZWFkY3J1bWItYXJyb3dcIj5rZXlib2FyZF9hcnJvd19yaWdodDwvbWF0LWljb24+XG5cbiAgICAgICAgICA8IS0tIHJvb3QgZWxlbWVudCAoY2FzZSByb290IGljb24pIC0tPlxuICAgICAgICAgIDxhICpuZ0lmPVwiaXNGaXJzdCAmJiByb290SWNvblwiXG4gICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiYnJlYWRjcnVtYlwiXG4gICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9QYXRoKG5vZGUpXCIgZWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvblxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtaWNvbj57e3Jvb3RJY29ufX08L21hdC1pY29uPlxuICAgICAgICAgIDwvYT5cblxuICAgICAgICAgIDwhLS0gaW50ZXJtZWRpYXRlIGVsZW1lbnRzIChub3QgbGFzdCBhbmQgKG5vdCBmaXJzdCBvciByb290IGljb24pKSAtLT5cbiAgICAgICAgICA8YSAqbmdJZj1cIiFpc0xhc3QgJiYgKCFpc0ZpcnN0IHx8ICFyb290SWNvbilcIlxuICAgICAgICAgICAgIG1hdC1idXR0b24gY2xhc3M9XCJicmVhZGNydW1iXCJcbiAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub1BhdGgobm9kZSlcIiBlbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3tub2RlLm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICA8L2E+XG5cbiAgICAgICAgICA8IS0tIGxhc3QgZWxlbWVudCAoaXMgbGFzdCBhbmQgKG5vdCBmaXJzdCBvciByb290IGljb24pKSAtLT5cbiAgICAgICAgICA8YSBtYXQtYnV0dG9uIGNsYXNzPVwiYnJlYWRjcnVtYlwiICpuZ0lmPVwiaXNMYXN0ICYmICghaXNGaXJzdCB8fCAhcm9vdEljb24pXCJcbiAgICAgICAgICAgICAoY2xpY2spPVwibnVsbFwiIGVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7e25vZGUubmFtZX19XG4gICAgICAgICAgICA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2E+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICA8L2Zvcm0+XG5cbiAgPCEtLSBicmVhZCBjcnVtYiBhY3Rpb24gbWVudSBidXR0b24gLS0+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiPlxuXG4gICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOiAyMnB4XCI+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cblxuICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cblxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIHR5cGU9XCJidXR0b25cIiBbZWxkZXJDbGlwYm9hcmRQdXRdPVwicGF0aFwiPlxuICAgICAgICA8bWF0LWljb24+Y29udGVudF9jb3B5PC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4+e3snUGZhZCBrb3BpZXJlbid9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbk1lbnVFZGl0UGF0aENsaWNrKCRldmVudClcIiBlbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhZWRpdE1vZGUuZW5hYmxlZFwiPmVkaXQ8L21hdC1pY29uPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJlZGl0TW9kZS5lbmFibGVkXCI+ZG9uZTwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWVkaXRNb2RlLmVuYWJsZWRcIj57eydQZmFkIGVkaXRpZXJlbid9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJlZGl0TW9kZS5lbmFibGVkXCI+e3snUGZhZCBiZXN0w6R0aWdlbid9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgPC9tYXQtbWVudT5cblxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG5cbiJdfQ==
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYnJlYWQtY3J1bWJzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9icmVhZC1jcnVtYnMvYnJlYWQtY3J1bWJzL2VsZGVyLWJyZWFkLWNydW1icy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL25hdmlnYXRpb24vYnJlYWQtY3J1bWJzL2JyZWFkLWNydW1icy9lbGRlci1icmVhZC1jcnVtYnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7O0FBUXRELE1BQU0sT0FBTyx5QkFBeUI7SUFzQ3BDOzs7O2dGQUk0RTtJQUU1RTtRQTFDQTs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyRCxpQkFBWSxHQUFH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RUFBRTtvQkFBRSxTQUFTO2lCQUFFO2dCQUdwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBRXBELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQ3JCLE9BQU8sRUFDUCxJQUFJLENBQ0wsQ0FBQyxDQUFDO2dCQUVILE1BQU0sR0FBRyxPQUFPLENBQUM7YUFDbEI7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7c0hBbk1VLHlCQUF5QjswR0FBekIseUJBQXlCLG9UQWlDekIsY0FBYyxnREN2RDNCLG1sR0FrRkE7MkZENURhLHlCQUF5QjtrQkFOckMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTswRUFxQi9CLFVBQVU7c0JBRHpCLE1BQU07Z0JBSUEsSUFBSTtzQkFEVixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixTQUFTO3VCQUFDLGNBQWM7Z0JBNkNkLGVBQWU7c0JBRHpCLEtBQUs7Z0JBVUssSUFBSTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge1BhdGhOb2RlfSBmcm9tICcuLi9wYXRoL3BhdGgnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TWF0TWVudVRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1icmVhZC1jcnVtYnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItYnJlYWQtY3J1bWJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItYnJlYWQtY3J1bWJzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQnJlYWRDcnVtYnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9wYXRoOiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVkaXRNb2RlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BhdGhJbnB1dENoYW5nZWQkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBwYXRoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJvb3QgPSAnLyc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJvb3RUcmFuc2xhdGlvbjogc3RyaW5nID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcm9vdEljb246IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZChNYXRNZW51VHJpZ2dlcilcbiAgcHVibGljIHRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyO1xuXG4gIHB1YmxpYyByZWFkb25seSBub2RlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhdGhOb2RlW10+KFtdKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgdGhpcy5fcGF0aElucHV0Q2hhbmdlZCQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCAvLyBvbmx5IGVtaXQgaWYgdmFsdWUgaXMgZGlmZmVyZW50IGZyb20gcHJldmlvdXMgdmFsdWVcbiAgICAgIGRlYm91bmNlVGltZSgyNTApLFxuICAgICkuc3Vic2NyaWJlKFxuICAgICAgdmFsdWUgPT4ge1xuICAgICAgICB0aGlzLmxvZy5pbmZvKHZhbHVlKTtcbiAgICAgICAgdGhpcy5wYXRoQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fdW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuX3Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVkaXRNb2RlRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZWRpdE1vZGUkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCBlZGl0TW9kZUVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdE1vZGUkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBhdGgocGF0aDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuX3BhdGggIT09IHBhdGgpIHtcbiAgICAgIHRoaXMuX3BhdGggPSBwYXRoO1xuICAgICAgdGhpcy5ub2RlcyQubmV4dCh0aGlzLmJ1aWxkTm9kZXModGhpcy5fcGF0aCkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcm9vdFJhd0Rpc3BsYXkoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJ0cyA9IHRoaXMucm9vdC5zcGxpdCgnLycpO1xuICAgIGNvbnN0IHZhbCA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xuICAgIHJldHVybiB2YWwgPyB2YWwgOiAnSG9tZSc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGF0aDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBvbkVudGVyKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUVkaXRNb2RlKCk7XG4gIH1cblxuICBwdWJsaWMgb25QYXRoRWRpdEJsdXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gdGhpcy5sb2cuZGVidWcoJ2JsdXJyZWQnLCBldmVudCk7XG4gICAgdGhpcy5kaXNhYmxlRWRpdE1vZGUoKTtcbiAgfVxuXG5cbiAgcHVibGljIG9uUGF0aElucHV0Q2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wYXRoSW5wdXRDaGFuZ2VkJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk1lbnVFZGl0UGF0aENsaWNrKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnRyaWdnZXIuY2xvc2VNZW51KCk7XG4gICAgdGhpcy50b2dnbGVFZGl0TW9kZSgpO1xuICB9XG5cbiAgcHVibGljIGdvVG9Sb290KCkge1xuICAgIHRoaXMuZ29Ub1BhdGgobmV3IFBhdGhOb2RlKHRoaXMucm9vdCwgJycpKTtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvUGF0aChub2RlOiBQYXRoTm9kZSkge1xuICAgIHRoaXMucGF0aCA9IG5vZGUuaWQ7XG4gICAgdGhpcy5wYXRoQ2hhbmdlLm5leHQodGhpcy5fcGF0aCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlRWRpdE1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0TW9kZUVuYWJsZWQgPSAhdGhpcy5lZGl0TW9kZUVuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlRWRpdE1vZGUoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0TW9kZUVuYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGRpc2FibGVFZGl0TW9kZSgpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRNb2RlRW5hYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICBwcml2YXRlIGJ1aWxkTm9kZXMocGF0aDogc3RyaW5nKTogUGF0aE5vZGVbXSB7XG5cbiAgICBjb25zdCBub2RlczogUGF0aE5vZGVbXSA9IFtdO1xuXG4gICAgbm9kZXMucHVzaChcbiAgICAgIG5ldyBQYXRoTm9kZShcbiAgICAgICAgdGhpcy5yb290LFxuICAgICAgICB0aGlzLnJvb3RUcmFuc2xhdGlvbiA/IHRoaXMucm9vdFRyYW5zbGF0aW9uIDogdGhpcy5yb290UmF3RGlzcGxheVxuICAgICAgKVxuICAgICk7XG5cbiAgICBpZiAocGF0aCkge1xuXG4gICAgICBwYXRoID0gcGF0aC5zdGFydHNXaXRoKHRoaXMucm9vdCkgPyBwYXRoLnN1YnN0cih0aGlzLnJvb3QubGVuZ3RoKSA6IHBhdGg7XG5cbiAgICAgIHRoaXMubG9nLmRlYnVnKCdwYXRoOiAnICsgcGF0aCk7XG5cbiAgICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdCgnLycpO1xuXG4gICAgICBsZXQgcGFyZW50ID0gdGhpcy5yb290O1xuXG4gICAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcblxuICAgICAgICBpZiAocGFydC5sZW5ndGggPT09IDApIHsgY29udGludWU7IH1cblxuXG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSBwYXJlbnQgPyBwYXJlbnQgKyAnLycgKyBwYXJ0IDogcGFydDtcblxuICAgICAgICBub2Rlcy5wdXNoKG5ldyBQYXRoTm9kZShcbiAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgIHBhcnRcbiAgICAgICAgKSk7XG5cbiAgICAgICAgcGFyZW50ID0gY3VycmVudDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZXM7XG4gIH1cblxuXG59XG4iLCI8IS0tIG1haW4gY29udGFpbmVyLS0+XG48ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXIgZnVsbCBicmVhZGNydW1iLWJhclwiXG4gICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJhY2tncm91bmRDb2xvclwiXG4gICAgICpuZ0lmPVwie2VuYWJsZWQ6IGVkaXRNb2RlJCB8IGFzeW5jfSBhcyBlZGl0TW9kZVwiXG4+XG5cbiAgPCEtLSBwYXRoIGNvbnRhaW5lciAtLT5cbiAgPGZvcm0gI2JyZWFkQ3J1bWJGb3JtPVwibmdGb3JtXCJcbiAgICAgICBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtY2VudGVyIGZsZXggYnJlYWRjcnVtYi1wYXRoXCJcbiAgICAgICAoY2xpY2spPVwiZW5hYmxlRWRpdE1vZGUoKVwiXG4gID5cbiAgICAgIDwhLS0gcGF0aCBlZGl0IGNvbnRyb2wgKGlmIGVkaXRNb2RlOmVuYWJsZWQpIC0tPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiICpuZ0lmPVwiZWRpdE1vZGUuZW5hYmxlZFwiIGVsZGVyRGVuc2UgPlxuICAgICAgICB7eyBwYXRoSW5wdXQuZm9jdXMoKSB9fVxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwicGF0aElucHV0XCIgI3BhdGhJbnB1dFxuICAgICAgICAgICAgICAgW25nTW9kZWxdPVwicGF0aFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uUGF0aElucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgKGJsdXIpPVwib25QYXRoRWRpdEJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICBlbGRlcktleUV2ZW50IFtlbGRlcktleUV2ZW50RmlsdGVyXT1cIidFbnRlcidcIiAob25FbGRlcktleUV2ZW50KT1cIm9uRW50ZXIoKVwiPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPCEtLSBuYXZpZ2F0aW9uIGNvbnRyb2wgKGlmIGVkaXRNb2RlOmRpc2FibGVkKSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZWRpdE1vZGUuZW5hYmxlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1jZW50ZXItY2VudGVyIGZsZXgtbm9uZVwiXG4gICAgICAgICAgICAgKm5nRm9yPVwibGV0IG5vZGUgb2Ygbm9kZXMkIHwgYXN5bmM7bGV0IGlzRmlyc3QgPSBmaXJzdDtsZXQgaXNMYXN0ID0gbGFzdFwiPlxuXG4gICAgICAgICAgPCEtLSBhcnJvdyByaWdodCBpY29uIGFzIHBhdGggZWxlbWVudCBkZWxpbWl0ZXIgLS0+XG4gICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiIWlzRmlyc3RcIiBjbGFzcz1cIm5vc2VsZWN0IGJyZWFkY3J1bWItYXJyb3dcIj5rZXlib2FyZF9hcnJvd19yaWdodDwvbWF0LWljb24+XG5cbiAgICAgICAgICA8IS0tIHJvb3QgZWxlbWVudCAoY2FzZSByb290IGljb24pIC0tPlxuICAgICAgICAgIDxhICpuZ0lmPVwiaXNGaXJzdCAmJiByb290SWNvblwiXG4gICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uIGNsYXNzPVwiYnJlYWRjcnVtYlwiXG4gICAgICAgICAgICAgKGNsaWNrKT1cImdvVG9QYXRoKG5vZGUpXCIgZWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvblxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtaWNvbj57e3Jvb3RJY29ufX08L21hdC1pY29uPlxuICAgICAgICAgIDwvYT5cblxuICAgICAgICAgIDwhLS0gaW50ZXJtZWRpYXRlIGVsZW1lbnRzIChub3QgbGFzdCBhbmQgKG5vdCBmaXJzdCBvciByb290IGljb24pKSAtLT5cbiAgICAgICAgICA8YSAqbmdJZj1cIiFpc0xhc3QgJiYgKCFpc0ZpcnN0IHx8ICFyb290SWNvbilcIlxuICAgICAgICAgICAgIG1hdC1idXR0b24gY2xhc3M9XCJicmVhZGNydW1iXCJcbiAgICAgICAgICAgICAoY2xpY2spPVwiZ29Ub1BhdGgobm9kZSlcIiBlbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4+e3tub2RlLm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgICA8L2E+XG5cbiAgICAgICAgICA8IS0tIGxhc3QgZWxlbWVudCAoaXMgbGFzdCBhbmQgKG5vdCBmaXJzdCBvciByb290IGljb24pKSAtLT5cbiAgICAgICAgICA8YSBtYXQtYnV0dG9uIGNsYXNzPVwiYnJlYWRjcnVtYlwiICpuZ0lmPVwiaXNMYXN0ICYmICghaXNGaXJzdCB8fCAhcm9vdEljb24pXCJcbiAgICAgICAgICAgICAoY2xpY2spPVwibnVsbFwiIGVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7e25vZGUubmFtZX19XG4gICAgICAgICAgICA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2E+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICA8L2Zvcm0+XG5cbiAgPCEtLSBicmVhZCBjcnVtYiBhY3Rpb24gbWVudSBidXR0b24gLS0+XG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiPlxuXG4gICAgPG1hdC1pY29uIHN0eWxlPVwiZm9udC1zaXplOiAyMnB4XCI+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cblxuICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cblxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIHR5cGU9XCJidXR0b25cIiBbZWxkZXJDbGlwYm9hcmRQdXRdPVwicGF0aFwiPlxuICAgICAgICA8bWF0LWljb24+Y29udGVudF9jb3B5PC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4+e3snUGZhZCBrb3BpZXJlbid9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbk1lbnVFZGl0UGF0aENsaWNrKCRldmVudClcIiBlbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhZWRpdE1vZGUuZW5hYmxlZFwiPmVkaXQ8L21hdC1pY29uPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJlZGl0TW9kZS5lbmFibGVkXCI+ZG9uZTwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiIWVkaXRNb2RlLmVuYWJsZWRcIj57eydQZmFkIGVkaXRpZXJlbid9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJlZGl0TW9kZS5lbmFibGVkXCI+e3snUGZhZCBiZXN0w6R0aWdlbid9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgPC9tYXQtbWVudT5cblxuICA8L2J1dHRvbj5cbjwvZGl2PlxuXG5cbiJdfQ==
@@ -14,8 +14,8 @@ export * from './bread-crumbs/elder-bread-crumbs.component';
14
14
  export * from './path/path';
15
15
  export class ElderBreadCrumbsModule {
16
16
  }
17
- ElderBreadCrumbsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderBreadCrumbsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
- ElderBreadCrumbsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: ElderBreadCrumbsModule, declarations: [ElderBreadCrumbsComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule,
17
+ ElderBreadCrumbsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderBreadCrumbsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
+ ElderBreadCrumbsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: ElderBreadCrumbsModule, declarations: [ElderBreadCrumbsComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule,
19
19
  TranslateModule,
20
20
  MatFormFieldModule,
21
21
  MatIconModule,
@@ -23,7 +23,7 @@ ElderBreadCrumbsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
23
23
  MatInputModule,
24
24
  MatMenuModule,
25
25
  ElderFormsDirectivesModule], exports: [ElderBreadCrumbsComponent] });
26
- ElderBreadCrumbsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderBreadCrumbsModule, imports: [CommonModule, FormsModule, ReactiveFormsModule,
26
+ ElderBreadCrumbsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderBreadCrumbsModule, imports: [CommonModule, FormsModule, ReactiveFormsModule,
27
27
  TranslateModule,
28
28
  MatFormFieldModule,
29
29
  MatIconModule,
@@ -31,7 +31,7 @@ ElderBreadCrumbsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
31
31
  MatInputModule,
32
32
  MatMenuModule,
33
33
  ElderFormsDirectivesModule] });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderBreadCrumbsModule, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderBreadCrumbsModule, decorators: [{
35
35
  type: NgModule,
36
36
  args: [{
37
37
  imports: [
@@ -52,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
52
52
  ]
53
53
  }]
54
54
  }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYnJlYWQtY3J1bWJzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9icmVhZC1jcnVtYnMvZWxkZXItYnJlYWQtY3J1bWJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFckQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGFBQWEsQ0FBQztBQXVCNUIsTUFBTSxPQUFPLHNCQUFzQjs7b0hBQXRCLHNCQUFzQjtxSEFBdEIsc0JBQXNCLGlCQU4vQix5QkFBeUIsYUFiekIsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUI7UUFFOUMsZUFBZTtRQUVmLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2IsZUFBZTtRQUNmLGNBQWM7UUFDZCxhQUFhO1FBRWIsMEJBQTBCLGFBTTFCLHlCQUF5QjtxSEFHaEIsc0JBQXNCLFlBbkIvQixZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQjtRQUU5QyxlQUFlO1FBRWYsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixlQUFlO1FBQ2YsY0FBYztRQUNkLGFBQWE7UUFFYiwwQkFBMEI7NEZBU2pCLHNCQUFzQjtrQkFyQmxDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CO3dCQUU5QyxlQUFlO3dCQUVmLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFFYiwwQkFBMEI7cUJBQzNCO29CQUNELFlBQVksRUFBRTt3QkFDWix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDUCx5QkFBeUI7cUJBQzFCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFbGRlckJyZWFkQ3J1bWJzQ29tcG9uZW50IH0gZnJvbSAnLi9icmVhZC1jcnVtYnMvZWxkZXItYnJlYWQtY3J1bWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0VsZGVyRm9ybXNEaXJlY3RpdmVzTW9kdWxlfSBmcm9tICcuLi8uLi9mb3Jtcy9kaXJlY3RpdmVzL2VsZGVyLWZvcm1zLWRpcmVjdGl2ZXMubW9kdWxlJztcbmltcG9ydCB7TWF0TWVudU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYnJlYWQtY3J1bWJzL2VsZGVyLWJyZWFkLWNydW1icy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXRoL3BhdGgnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSxcblxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcblxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuXG4gICAgRWxkZXJGb3Jtc0RpcmVjdGl2ZXNNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRWxkZXJCcmVhZENydW1ic0NvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRWxkZXJCcmVhZENydW1ic0NvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQnJlYWRDcnVtYnNNb2R1bGUgeyB9XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYnJlYWQtY3J1bWJzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9icmVhZC1jcnVtYnMvZWxkZXItYnJlYWQtY3J1bWJzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFckQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGFBQWEsQ0FBQztBQXVCNUIsTUFBTSxPQUFPLHNCQUFzQjs7bUhBQXRCLHNCQUFzQjtvSEFBdEIsc0JBQXNCLGlCQU4vQix5QkFBeUIsYUFiekIsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUI7UUFFOUMsZUFBZTtRQUVmLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2IsZUFBZTtRQUNmLGNBQWM7UUFDZCxhQUFhO1FBRWIsMEJBQTBCLGFBTTFCLHlCQUF5QjtvSEFHaEIsc0JBQXNCLFlBbkIvQixZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQjtRQUU5QyxlQUFlO1FBRWYsa0JBQWtCO1FBQ2xCLGFBQWE7UUFDYixlQUFlO1FBQ2YsY0FBYztRQUNkLGFBQWE7UUFFYiwwQkFBMEI7MkZBU2pCLHNCQUFzQjtrQkFyQmxDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CO3dCQUU5QyxlQUFlO3dCQUVmLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFFYiwwQkFBMEI7cUJBQzNCO29CQUNELFlBQVksRUFBRTt3QkFDWix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRTt3QkFDUCx5QkFBeUI7cUJBQzFCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFbGRlckJyZWFkQ3J1bWJzQ29tcG9uZW50IH0gZnJvbSAnLi9icmVhZC1jcnVtYnMvZWxkZXItYnJlYWQtY3J1bWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0VsZGVyRm9ybXNEaXJlY3RpdmVzTW9kdWxlfSBmcm9tICcuLi8uLi9mb3Jtcy9kaXJlY3RpdmVzL2VsZGVyLWZvcm1zLWRpcmVjdGl2ZXMubW9kdWxlJztcbmltcG9ydCB7TWF0TWVudU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYnJlYWQtY3J1bWJzL2VsZGVyLWJyZWFkLWNydW1icy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXRoL3BhdGgnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSxcblxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcblxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuXG4gICAgRWxkZXJGb3Jtc0RpcmVjdGl2ZXNNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRWxkZXJCcmVhZENydW1ic0NvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRWxkZXJCcmVhZENydW1ic0NvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQnJlYWRDcnVtYnNNb2R1bGUgeyB9XG4iXX0=
@@ -8,26 +8,28 @@ import { RouterModule } from '@angular/router';
8
8
  import { TranslateModule } from '@ngx-translate/core';
9
9
  import { A11yModule } from '@angular/cdk/a11y';
10
10
  import { ElderNavGroupComponent } from './nav-group/elder-nav-group.component';
11
+ import { MatListModule } from '@angular/material/list';
12
+ import { MatRippleModule } from '@angular/material/core';
11
13
  import * as i0 from "@angular/core";
12
14
  export { ElderNavListComponent } from './nav-list/elder-nav-list.component';
13
15
  export { ElderNavLinkComponent } from './nav-link/elder-nav-link.component';
14
16
  export { ElderNavGroupComponent } from './nav-group/elder-nav-group.component';
15
17
  export class ElderNavModule {
16
18
  }
17
- ElderNavModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
18
- ElderNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: ElderNavModule, declarations: [ElderNavListComponent,
19
+ ElderNavModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
20
+ ElderNavModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: ElderNavModule, declarations: [ElderNavListComponent,
19
21
  ElderNavLinkComponent,
20
22
  ElderNavGroupComponent], imports: [CommonModule, RouterModule,
21
23
  MatIconModule, MatButtonModule,
22
24
  A11yModule,
23
- TranslateModule], exports: [ElderNavListComponent,
25
+ TranslateModule, MatListModule, MatRippleModule], exports: [ElderNavListComponent,
24
26
  ElderNavLinkComponent,
25
27
  ElderNavGroupComponent] });
26
- ElderNavModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderNavModule, imports: [CommonModule, RouterModule,
28
+ ElderNavModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderNavModule, imports: [CommonModule, RouterModule,
27
29
  MatIconModule, MatButtonModule,
28
30
  A11yModule,
29
- TranslateModule] });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ElderNavModule, decorators: [{
31
+ TranslateModule, MatListModule, MatRippleModule] });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderNavModule, decorators: [{
31
33
  type: NgModule,
32
34
  args: [{
33
35
  declarations: [
@@ -44,8 +46,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
44
46
  CommonModule, RouterModule,
45
47
  MatIconModule, MatButtonModule,
46
48
  A11yModule,
47
- TranslateModule
49
+ TranslateModule, MatListModule, MatRippleModule
48
50
  ]
49
51
  }]
50
52
  }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbmF2Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXYvZWxkZXItbmF2Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQUUvRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQXFCN0UsTUFBTSxPQUFPLGNBQWM7OzRHQUFkLGNBQWM7NkdBQWQsY0FBYyxpQkFqQnZCLHFCQUFxQjtRQUNyQixxQkFBcUI7UUFDckIsc0JBQXNCLGFBUXRCLFlBQVksRUFBRSxZQUFZO1FBQzFCLGFBQWEsRUFBRSxlQUFlO1FBQzlCLFVBQVU7UUFFVixlQUFlLGFBVGYscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQixzQkFBc0I7NkdBVWIsY0FBYyxZQVB2QixZQUFZLEVBQUUsWUFBWTtRQUMxQixhQUFhLEVBQUUsZUFBZTtRQUM5QixVQUFVO1FBRVYsZUFBZTs0RkFHTixjQUFjO2tCQW5CMUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1oscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZLEVBQUUsWUFBWTt3QkFDMUIsYUFBYSxFQUFFLGVBQWU7d0JBQzlCLFVBQVU7d0JBRVYsZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RWxkZXJOYXZMaXN0Q29tcG9uZW50fSBmcm9tICcuL25hdi1saXN0L2VsZGVyLW5hdi1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbGRlck5hdkxpbmtDb21wb25lbnQgfSBmcm9tICcuL25hdi1saW5rL2VsZGVyLW5hdi1saW5rLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0ExMXlNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEVsZGVyTmF2R3JvdXBDb21wb25lbnQgfSBmcm9tICcuL25hdi1ncm91cC9lbGRlci1uYXYtZ3JvdXAuY29tcG9uZW50JztcblxuZXhwb3J0IHtFbGRlck5hdkxpc3RDb21wb25lbnR9IGZyb20gJy4vbmF2LWxpc3QvZWxkZXItbmF2LWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCB7RWxkZXJOYXZMaW5rQ29tcG9uZW50fSBmcm9tICcuL25hdi1saW5rL2VsZGVyLW5hdi1saW5rLmNvbXBvbmVudCc7XG5leHBvcnQge0VsZGVyTmF2R3JvdXBDb21wb25lbnR9IGZyb20gJy4vbmF2LWdyb3VwL2VsZGVyLW5hdi1ncm91cC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBFbGRlck5hdkxpc3RDb21wb25lbnQsXG4gICAgRWxkZXJOYXZMaW5rQ29tcG9uZW50LFxuICAgIEVsZGVyTmF2R3JvdXBDb21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEVsZGVyTmF2TGlzdENvbXBvbmVudCxcbiAgICBFbGRlck5hdkxpbmtDb21wb25lbnQsXG4gICAgRWxkZXJOYXZHcm91cENvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLFxuICAgIEExMXlNb2R1bGUsXG5cbiAgICBUcmFuc2xhdGVNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlck5hdk1vZHVsZSB7IH1cbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbmF2Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXYvZWxkZXItbmF2Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7O0FBRXZELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBcUI3RSxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQWpCdkIscUJBQXFCO1FBQ3JCLHFCQUFxQjtRQUNyQixzQkFBc0IsYUFRdEIsWUFBWSxFQUFFLFlBQVk7UUFDMUIsYUFBYSxFQUFFLGVBQWU7UUFDOUIsVUFBVTtRQUVWLGVBQWUsRUFBRSxhQUFhLEVBQUUsZUFBZSxhQVQvQyxxQkFBcUI7UUFDckIscUJBQXFCO1FBQ3JCLHNCQUFzQjs0R0FVYixjQUFjLFlBUHZCLFlBQVksRUFBRSxZQUFZO1FBQzFCLGFBQWEsRUFBRSxlQUFlO1FBQzlCLFVBQVU7UUFFVixlQUFlLEVBQUUsYUFBYSxFQUFFLGVBQWU7MkZBR3RDLGNBQWM7a0JBbkIxQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3FCQUN2QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AscUJBQXFCO3dCQUNyQixxQkFBcUI7d0JBQ3JCLHNCQUFzQjtxQkFDdkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVksRUFBRSxZQUFZO3dCQUMxQixhQUFhLEVBQUUsZUFBZTt3QkFDOUIsVUFBVTt3QkFFVixlQUFlLEVBQUUsYUFBYSxFQUFFLGVBQWU7cUJBQ2hEO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0VsZGVyTmF2TGlzdENvbXBvbmVudH0gZnJvbSAnLi9uYXYtbGlzdC9lbGRlci1uYXYtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWxkZXJOYXZMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9uYXYtbGluay9lbGRlci1uYXYtbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtBMTF5TW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBFbGRlck5hdkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9uYXYtZ3JvdXAvZWxkZXItbmF2LWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQge01hdExpc3RNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHtNYXRSaXBwbGVNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuXG5leHBvcnQge0VsZGVyTmF2TGlzdENvbXBvbmVudH0gZnJvbSAnLi9uYXYtbGlzdC9lbGRlci1uYXYtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0IHtFbGRlck5hdkxpbmtDb21wb25lbnR9IGZyb20gJy4vbmF2LWxpbmsvZWxkZXItbmF2LWxpbmsuY29tcG9uZW50JztcbmV4cG9ydCB7RWxkZXJOYXZHcm91cENvbXBvbmVudH0gZnJvbSAnLi9uYXYtZ3JvdXAvZWxkZXItbmF2LWdyb3VwLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEVsZGVyTmF2TGlzdENvbXBvbmVudCxcbiAgICBFbGRlck5hdkxpbmtDb21wb25lbnQsXG4gICAgRWxkZXJOYXZHcm91cENvbXBvbmVudFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRWxkZXJOYXZMaXN0Q29tcG9uZW50LFxuICAgIEVsZGVyTmF2TGlua0NvbXBvbmVudCxcbiAgICBFbGRlck5hdkdyb3VwQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsXG4gICAgQTExeU1vZHVsZSxcblxuICAgIFRyYW5zbGF0ZU1vZHVsZSwgTWF0TGlzdE1vZHVsZSwgTWF0UmlwcGxlTW9kdWxlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJOYXZNb2R1bGUgeyB9XG4iXX0=