@elderbyte/ngx-starter 18.11.0 → 18.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (629) hide show
  1. package/_index.scss +38 -33
  2. package/esm2022/lib/common/arrays.mjs +1 -1
  3. package/esm2022/lib/common/async/public_api.mjs +1 -1
  4. package/esm2022/lib/common/async/refreshing-entity.mjs +5 -3
  5. package/esm2022/lib/common/csv/csv-serializer.mjs +5 -5
  6. package/esm2022/lib/common/csv/csv-spec.mjs +2 -2
  7. package/esm2022/lib/common/csv/public_api.mjs +1 -1
  8. package/esm2022/lib/common/data/continuable-listing.mjs +1 -1
  9. package/esm2022/lib/common/data/data-context/data-context-active-page.mjs +5 -4
  10. package/esm2022/lib/common/data/data-context/data-context-auto-starter.mjs +7 -5
  11. package/esm2022/lib/common/data/data-context/data-context-base.mjs +19 -12
  12. package/esm2022/lib/common/data/data-context/data-context-builder.mjs +5 -7
  13. package/esm2022/lib/common/data/data-context/data-context-continuable-base.mjs +5 -7
  14. package/esm2022/lib/common/data/data-context/data-context-continuable-paged.mjs +2 -2
  15. package/esm2022/lib/common/data/data-context/data-context-continuable-token.mjs +17 -7
  16. package/esm2022/lib/common/data/data-context/data-context-life-cycle-binding.mjs +2 -2
  17. package/esm2022/lib/common/data/data-context/data-context-simple.mjs +5 -4
  18. package/esm2022/lib/common/data/data-context/data-context-source-event-binding.mjs +25 -8
  19. package/esm2022/lib/common/data/data-context/data-context-status.mjs +1 -1
  20. package/esm2022/lib/common/data/data-context/data-context.mjs +5 -5
  21. package/esm2022/lib/common/data/data-context/indexed-entities.mjs +2 -2
  22. package/esm2022/lib/common/data/data-context/mat-table-data-context-binding.mjs +14 -8
  23. package/esm2022/lib/common/data/data-context/public_api.mjs +1 -1
  24. package/esm2022/lib/common/data/datasource/data-source-adapter.mjs +9 -5
  25. package/esm2022/lib/common/data/datasource/data-source-base.mjs +1 -1
  26. package/esm2022/lib/common/data/datasource/data-source-change-event.mjs +20 -10
  27. package/esm2022/lib/common/data/datasource/data-source-processor.mjs +14 -15
  28. package/esm2022/lib/common/data/datasource/data-source.mjs +4 -4
  29. package/esm2022/lib/common/data/datasource/entity-id-util.mjs +2 -2
  30. package/esm2022/lib/common/data/datasource/fetcher/delegate-data-source.mjs +2 -2
  31. package/esm2022/lib/common/data/datasource/local/local-list-data-source.mjs +9 -11
  32. package/esm2022/lib/common/data/datasource/local/local-paged-data-source.mjs +4 -2
  33. package/esm2022/lib/common/data/datasource/patch/deep-partial-patcher.mjs +58 -0
  34. package/esm2022/lib/common/data/datasource/public_api.mjs +1 -1
  35. package/esm2022/lib/common/data/datasource/rest/public_api.mjs +1 -1
  36. package/esm2022/lib/common/data/datasource/rest/rest-client.mjs +44 -39
  37. package/esm2022/lib/common/data/entity-set-patch.mjs +6 -9
  38. package/esm2022/lib/common/data/field-comparator.mjs +2 -2
  39. package/esm2022/lib/common/data/filters/filter-commons.mjs +1 -1
  40. package/esm2022/lib/common/data/filters/filter-context.mjs +9 -9
  41. package/esm2022/lib/common/data/filters/filter-value.mjs +1 -1
  42. package/esm2022/lib/common/data/filters/filter.mjs +2 -2
  43. package/esm2022/lib/common/data/http-params-builder.mjs +5 -7
  44. package/esm2022/lib/common/data/page.mjs +1 -1
  45. package/esm2022/lib/common/data/public_api.mjs +1 -1
  46. package/esm2022/lib/common/data/required-filter-evaluator.mjs +7 -10
  47. package/esm2022/lib/common/data/sort-context.mjs +4 -6
  48. package/esm2022/lib/common/data/sort.mjs +1 -1
  49. package/esm2022/lib/common/data/token-chunk-request.mjs +1 -1
  50. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +9 -9
  51. package/esm2022/lib/common/enums/public_api.mjs +1 -1
  52. package/esm2022/lib/common/errors/exception-detail.mjs +1 -1
  53. package/esm2022/lib/common/errors/public_api.mjs +1 -1
  54. package/esm2022/lib/common/errors/standard-error-detail.mjs +1 -1
  55. package/esm2022/lib/common/format/bytes-format.mjs +2 -9
  56. package/esm2022/lib/common/format/bytes-per-second-format.mjs +1 -1
  57. package/esm2022/lib/common/format/curency-format-util.mjs +1 -1
  58. package/esm2022/lib/common/format/duration-format-util.mjs +1 -1
  59. package/esm2022/lib/common/format/iso-interval-format-util.mjs +6 -4
  60. package/esm2022/lib/common/format/public_api.mjs +1 -1
  61. package/esm2022/lib/common/forms/elder-entity-value-accessor.mjs +7 -7
  62. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +7 -7
  63. package/esm2022/lib/common/forms/elder-from-field-base.mjs +3 -3
  64. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +1 -1
  65. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +5 -5
  66. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +7 -7
  67. package/esm2022/lib/common/forms/elder-multi-entity-value-accessor.mjs +7 -7
  68. package/esm2022/lib/common/forms/form-field-base.component.mjs +3 -4
  69. package/esm2022/lib/common/forms/multi-model-base.component.mjs +2 -2
  70. package/esm2022/lib/common/forms/public_api.mjs +1 -1
  71. package/esm2022/lib/common/forms/template-composite-control.mjs +17 -13
  72. package/esm2022/lib/common/forms/value-accessor-base.mjs +3 -3
  73. package/esm2022/lib/common/forms/view-providers.mjs +1 -1
  74. package/esm2022/lib/common/http/http-client-builder.service.mjs +2 -2
  75. package/esm2022/lib/common/http/http-client-pristine.mjs +2 -2
  76. package/esm2022/lib/common/http/public_api.mjs +1 -1
  77. package/esm2022/lib/common/http/transfer/data-transfer-base.mjs +2 -2
  78. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +4 -4
  79. package/esm2022/lib/common/http/transfer/data-transfer-progress-aggregate.mjs +6 -5
  80. package/esm2022/lib/common/http/transfer/data-transfer-progress.mjs +1 -1
  81. package/esm2022/lib/common/http/transfer/data-transfer-state.mjs +1 -1
  82. package/esm2022/lib/common/http/transfer/data-transfer-status.mjs +1 -1
  83. package/esm2022/lib/common/http/transfer/data-transfer.mjs +1 -1
  84. package/esm2022/lib/common/http/transfer/http-data-transfer.mjs +9 -9
  85. package/esm2022/lib/common/http/transfer/public_api.mjs +1 -1
  86. package/esm2022/lib/common/http/upload/file-upload-client.mjs +2 -2
  87. package/esm2022/lib/common/i18n/entity/impl/i18n-base.mjs +1 -1
  88. package/esm2022/lib/common/i18n/entity/impl/i18n-text.mjs +1 -1
  89. package/esm2022/lib/common/i18n/entity/impl/translated.mjs +1 -1
  90. package/esm2022/lib/common/i18n/entity/language-tag.mjs +1 -1
  91. package/esm2022/lib/common/i18n/entity/locale.mjs +1 -1
  92. package/esm2022/lib/common/i18n/entity/localisation-picker.mjs +4 -4
  93. package/esm2022/lib/common/i18n/entity/localized.mjs +1 -1
  94. package/esm2022/lib/common/i18n/entity/public_api.mjs +1 -1
  95. package/esm2022/lib/common/i18n/entity/translated-converter.mjs +4 -4
  96. package/esm2022/lib/common/i18n/entity/translated.mjs +1 -1
  97. package/esm2022/lib/common/i18n/public_api.mjs +1 -1
  98. package/esm2022/lib/common/json-map.mjs +3 -4
  99. package/esm2022/lib/common/objects.mjs +1 -1
  100. package/esm2022/lib/common/public_api.mjs +1 -1
  101. package/esm2022/lib/common/reactive-map.mjs +5 -5
  102. package/esm2022/lib/common/rxjs/operators/lazy-sample.mjs +2 -2
  103. package/esm2022/lib/common/rxjs/public_api.mjs +1 -1
  104. package/esm2022/lib/common/selection/public_api.mjs +1 -1
  105. package/esm2022/lib/common/selection/selection-model.mjs +8 -8
  106. package/esm2022/lib/common/sets.mjs +3 -2
  107. package/esm2022/lib/common/suggestion-provider.mjs +1 -1
  108. package/esm2022/lib/common/templates/template-slot-manager.mjs +2 -2
  109. package/esm2022/lib/common/theme-sizes.mjs +1 -1
  110. package/esm2022/lib/common/time/date-util.mjs +8 -10
  111. package/esm2022/lib/common/time/interval-coerce.mjs +3 -3
  112. package/esm2022/lib/common/time/interval.mjs +19 -16
  113. package/esm2022/lib/common/time/period-duration.mjs +1 -1
  114. package/esm2022/lib/common/time/public_api.mjs +1 -1
  115. package/esm2022/lib/common/time/temporal-plain-date-interval.mjs +1 -1
  116. package/esm2022/lib/common/time/temporal-util.mjs +7 -1
  117. package/esm2022/lib/common/time/time-util.mjs +3 -6
  118. package/esm2022/lib/common/url/elder-router.service.mjs +2 -2
  119. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +4 -6
  120. package/esm2022/lib/common/url/public_api.mjs +1 -1
  121. package/esm2022/lib/common/url/url-query-params.mjs +2 -2
  122. package/esm2022/lib/common/utils/batcher.mjs +2 -2
  123. package/esm2022/lib/common/utils/collection-util.mjs +7 -5
  124. package/esm2022/lib/common/utils/filter-util.mjs +10 -8
  125. package/esm2022/lib/common/utils/focus-util.mjs +1 -1
  126. package/esm2022/lib/common/utils/input-utils.mjs +1 -1
  127. package/esm2022/lib/common/utils/next-number-util.mjs +4 -3
  128. package/esm2022/lib/common/utils/ng-zone-utils.mjs +2 -2
  129. package/esm2022/lib/common/utils/parse-util.mjs +1 -1
  130. package/esm2022/lib/common/utils/property-path-util.mjs +2 -2
  131. package/esm2022/lib/common/utils/public_api.mjs +1 -1
  132. package/esm2022/lib/common/utils/query-list-binding.mjs +5 -4
  133. package/esm2022/lib/common/utils/sort-util.mjs +2 -2
  134. package/esm2022/lib/common/utils/url-builder.mjs +1 -1
  135. package/esm2022/lib/common/utils/uuid-util.mjs +3 -4
  136. package/esm2022/lib/common/utils/value-wrapper.mjs +1 -1
  137. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +4 -5
  138. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +5 -15
  139. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +16 -6
  140. package/esm2022/lib/components/auditing/elder-audit.module.mjs +4 -6
  141. package/esm2022/lib/components/auditing/i-audited-entity.mjs +1 -1
  142. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +18 -12
  143. package/esm2022/lib/components/badge/elder-badge.directive.mjs +7 -7
  144. package/esm2022/lib/components/badge/elder-badge.module.mjs +4 -4
  145. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -5
  146. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +5 -20
  147. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +4 -5
  148. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +2 -2
  149. package/esm2022/lib/components/card-organizer/card-organizer-data.mjs +7 -7
  150. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +24 -12
  151. package/esm2022/lib/components/card-organizer/card-stack.mjs +3 -3
  152. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +18 -7
  153. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -3
  154. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +9 -9
  155. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +16 -10
  156. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +3 -3
  157. package/esm2022/lib/components/chips/elder-chips.module.mjs +3 -5
  158. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +9 -8
  159. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +10 -12
  160. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +3 -3
  161. package/esm2022/lib/components/connectivity/public_api.mjs +1 -1
  162. package/esm2022/lib/components/containers/elder-containers.module.mjs +4 -10
  163. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +4 -4
  164. package/esm2022/lib/components/containers/public_api.mjs +1 -1
  165. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +6 -6
  166. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.mjs +2 -4
  167. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +2 -2
  168. package/esm2022/lib/components/csv/elder-csv-stream-exporter.mjs +12 -12
  169. package/esm2022/lib/components/csv/elder-csv.module.mjs +6 -19
  170. package/esm2022/lib/components/currency/elder-currency.module.mjs +6 -18
  171. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +2 -2
  172. package/esm2022/lib/components/currency/model/currency-code.mjs +1 -1
  173. package/esm2022/lib/components/currency/model/currency-unit-registry.mjs +1 -1
  174. package/esm2022/lib/components/currency/model/currency-unit.mjs +1 -1
  175. package/esm2022/lib/components/currency/model/currency.mjs +1 -1
  176. package/esm2022/lib/components/currency/public_api.mjs +1 -1
  177. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +28 -16
  178. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +12 -10
  179. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +23 -12
  180. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +3 -3
  181. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +13 -3
  182. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +11 -3
  183. package/esm2022/lib/components/data-view/base/data-view-options-provider-binding.mjs +4 -2
  184. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +4 -5
  185. package/esm2022/lib/components/data-view/base/elder-data-view-options-provider.mjs +1 -1
  186. package/esm2022/lib/components/data-view/base/elder-data-view-options.mjs +1 -1
  187. package/esm2022/lib/components/data-view/base/elder-data-view.mjs +1 -1
  188. package/esm2022/lib/components/data-view/base/public_api.mjs +1 -1
  189. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-context.mjs +2 -2
  190. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-dc.directive.mjs +5 -7
  191. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort.mjs +4 -5
  192. package/esm2022/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.mjs +6 -6
  193. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +4 -5
  194. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +38 -20
  195. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +5 -13
  196. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +16 -6
  197. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +6 -4
  198. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +4 -5
  199. package/esm2022/lib/components/data-view/common/selection/master-selection-state.mjs +1 -1
  200. package/esm2022/lib/components/data-view/elder-data-view-interaction-mode.mjs +1 -1
  201. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +46 -26
  202. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +30 -21
  203. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +15 -9
  204. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +5 -7
  205. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +8 -6
  206. package/esm2022/lib/components/data-view/master-detail/elder-master-detail-provider.mjs +2 -2
  207. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +19 -25
  208. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +4 -4
  209. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +5 -4
  210. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +2 -2
  211. package/esm2022/lib/components/data-view/master-detail/master-detail-activation-event.mjs +1 -1
  212. package/esm2022/lib/components/data-view/public_api.mjs +1 -1
  213. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +4 -5
  214. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +41 -16
  215. package/esm2022/lib/components/data-view/table/activation/activation-event-source.mjs +1 -1
  216. package/esm2022/lib/components/data-view/table/activation/elder-activation-context.mjs +1 -1
  217. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +6 -6
  218. package/esm2022/lib/components/data-view/table/activation/elder-table-activation-options.mjs +1 -1
  219. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +23 -15
  220. package/esm2022/lib/components/data-view/table/activation/item-activation-event.mjs +1 -1
  221. package/esm2022/lib/components/data-view/table/activation/item-activation-options.mjs +1 -1
  222. package/esm2022/lib/components/data-view/table/activation/public_api.mjs +1 -1
  223. package/esm2022/lib/components/data-view/table/elder-center-cell.directive.mjs +4 -5
  224. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +3 -3
  225. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +8 -7
  226. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +2 -2
  227. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +54 -38
  228. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +2 -2
  229. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +6 -11
  230. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +4 -8
  231. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +8 -6
  232. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +2 -2
  233. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +57 -25
  234. package/esm2022/lib/components/data-view/table/model/elder-column-layout.mjs +7 -7
  235. package/esm2022/lib/components/data-view/table/model/elder-table-model-cdk-table-binding.mjs +15 -11
  236. package/esm2022/lib/components/data-view/table/model/elder-table-model-provider.mjs +4 -4
  237. package/esm2022/lib/components/data-view/table/model/elder-table-model-query-group.mjs +11 -9
  238. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +7 -5
  239. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +13 -3
  240. package/esm2022/lib/components/dialogs/elder-dialog-config.mjs +1 -1
  241. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +34 -13
  242. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +19 -22
  243. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +17 -5
  244. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +4 -5
  245. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +5 -5
  246. package/esm2022/lib/components/errors/elder-error.module.mjs +4 -6
  247. package/esm2022/lib/components/errors/error-util.mjs +4 -4
  248. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +17 -6
  249. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +3 -3
  250. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +15 -8
  251. package/esm2022/lib/components/files/blob-url.mjs +1 -1
  252. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +16 -11
  253. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +3 -3
  254. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +4 -4
  255. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +7 -7
  256. package/esm2022/lib/components/files/elder-file-select-input.mjs +3 -3
  257. package/esm2022/lib/components/files/elder-file-select.directive.mjs +14 -16
  258. package/esm2022/lib/components/files/elder-file.module.mjs +16 -10
  259. package/esm2022/lib/components/files/file-select/file-select.component.mjs +5 -6
  260. package/esm2022/lib/components/files/file-system-api.mjs +2 -2
  261. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +16 -3
  262. package/esm2022/lib/components/files/listing/file-entry.mjs +3 -3
  263. package/esm2022/lib/components/files/listing/file-listing-rx.mjs +5 -5
  264. package/esm2022/lib/components/files/listing/file-listing-system-handle.mjs +3 -3
  265. package/esm2022/lib/components/files/listing/file-listing-webkit.mjs +10 -11
  266. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +2 -2
  267. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +1 -1
  268. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +5 -3
  269. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +2 -2
  270. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +1 -1
  271. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +2 -2
  272. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +2 -2
  273. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +2 -2
  274. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +13 -6
  275. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +5 -5
  276. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +2 -2
  277. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +2 -2
  278. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +3 -3
  279. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +6 -6
  280. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +2 -2
  281. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +13 -10
  282. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +2 -2
  283. package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +4 -4
  284. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +5 -3
  285. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +2 -2
  286. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +2 -2
  287. package/esm2022/lib/components/forms/directives/validation/strategies/fallback-validation-message-strategy.mjs +1 -1
  288. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +4 -6
  289. package/esm2022/lib/components/forms/directives/validation/validation-message-strategy.mjs +1 -1
  290. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +4 -9
  291. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +4 -9
  292. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +12 -11
  293. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +4 -4
  294. package/esm2022/lib/components/forms/elder-forms.module.mjs +1 -1
  295. package/esm2022/lib/components/forms/public_api.mjs +1 -1
  296. package/esm2022/lib/components/forms/search/domain/context/search-context.mjs +7 -3
  297. package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +2 -2
  298. package/esm2022/lib/components/forms/search/domain/input/input-value.mjs +1 -1
  299. package/esm2022/lib/components/forms/search/domain/input/search-input-state.mjs +2 -2
  300. package/esm2022/lib/components/forms/search/domain/input/search-input.mjs +1 -1
  301. package/esm2022/lib/components/forms/search/domain/input/simple-search-input.mjs +1 -1
  302. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +14 -8
  303. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +15 -12
  304. package/esm2022/lib/components/forms/search/domain/url/search-query-params-parser.mjs +3 -3
  305. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +30 -25
  306. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +14 -19
  307. package/esm2022/lib/components/forms/search/elder-search.module.mjs +24 -13
  308. package/esm2022/lib/components/forms/search/filter/default-input-filter-converter.mjs +2 -4
  309. package/esm2022/lib/components/forms/search/filter/input-filter-converter.mjs +1 -1
  310. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +27 -8
  311. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +4 -4
  312. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +19 -10
  313. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +24 -6
  314. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +8 -6
  315. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +6 -6
  316. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -10
  317. package/esm2022/lib/components/graph/elder-progress-bar/sub-bar.mjs +1 -1
  318. package/esm2022/lib/components/graph/public_api.mjs +1 -1
  319. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +3 -3
  320. package/esm2022/lib/components/headers/elder-header.module.mjs +12 -14
  321. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +4 -9
  322. package/esm2022/lib/components/http-support/public_api.mjs +1 -1
  323. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +3 -3
  324. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +31 -20
  325. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +14 -5
  326. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +4 -4
  327. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +42 -19
  328. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +2 -2
  329. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +4 -5
  330. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +3 -3
  331. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +2 -2
  332. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +6 -6
  333. package/esm2022/lib/components/i18n/language/elder-language-config.mjs +1 -1
  334. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +8 -7
  335. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +11 -10
  336. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +3 -4
  337. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +17 -5
  338. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +7 -7
  339. package/esm2022/lib/components/i18n/public_api.mjs +1 -1
  340. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +13 -13
  341. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +13 -11
  342. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +4 -4
  343. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +2 -3
  344. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +3 -3
  345. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +12 -4
  346. package/esm2022/lib/components/iframes/iframe-messages.mjs +1 -1
  347. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +11 -9
  348. package/esm2022/lib/components/iframes/iframe.service.mjs +7 -5
  349. package/esm2022/lib/components/iframes/typed-event-message.mjs +1 -1
  350. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +10 -6
  351. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +12 -7
  352. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +4 -10
  353. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +1 -1
  354. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +26 -17
  355. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +11 -7
  356. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +8 -6
  357. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +9 -6
  358. package/esm2022/lib/components/input/autocomplete/many/word-position-finder.mjs +1 -1
  359. package/esm2022/lib/components/input/public_api.mjs +1 -1
  360. package/esm2022/lib/components/labels/elder-labels.module.mjs +26 -8
  361. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +28 -11
  362. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +22 -21
  363. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +4 -4
  364. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +2 -2
  365. package/esm2022/lib/components/measures/elder-measures.module.mjs +7 -19
  366. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +2 -2
  367. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +2 -2
  368. package/esm2022/lib/components/measures/elder-unit.service.mjs +4 -6
  369. package/esm2022/lib/components/measures/model/dimensions.mjs +1 -1
  370. package/esm2022/lib/components/measures/model/quantity.mjs +1 -1
  371. package/esm2022/lib/components/measures/model/unit-dimension.mjs +1 -1
  372. package/esm2022/lib/components/measures/model/unit-registry.mjs +1 -1
  373. package/esm2022/lib/components/measures/model/unit.mjs +1 -1
  374. package/esm2022/lib/components/measures/public_api.mjs +1 -1
  375. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +13 -3
  376. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +18 -16
  377. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +4 -8
  378. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +4 -8
  379. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +15 -10
  380. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +26 -6
  381. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +12 -8
  382. package/esm2022/lib/components/navigation/bread-crumbs/path/path.mjs +1 -1
  383. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +26 -20
  384. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +15 -21
  385. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +20 -7
  386. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -3
  387. package/esm2022/lib/components/navigation/public_api.mjs +1 -1
  388. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +2 -2
  389. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +26 -20
  390. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +2 -2
  391. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +12 -7
  392. package/esm2022/lib/components/navigation/toolbar/toolbar-column-position.mjs +1 -1
  393. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +4 -5
  394. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +5 -4
  395. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +2 -2
  396. package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +1 -1
  397. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +3 -3
  398. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +23 -14
  399. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +4 -10
  400. package/esm2022/lib/components/page/exit-guard/page-exit-guard.module.mjs +5 -12
  401. package/esm2022/lib/components/page/exit-guard/page-exit-guard.service.mjs +6 -6
  402. package/esm2022/lib/components/page/exit-guard/page-exit-lock/page-exit-lock.component.mjs +3 -5
  403. package/esm2022/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.mjs +3 -8
  404. package/esm2022/lib/components/page/exit-guard/page-exit-lock-overview/page-exit-lock-overview.component.mjs +3 -7
  405. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +3 -3
  406. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +3 -3
  407. package/esm2022/lib/components/panels/elder-panel.module.mjs +10 -7
  408. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +4 -4
  409. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +2 -2
  410. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +6 -6
  411. package/esm2022/lib/components/public_api.mjs +1 -1
  412. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +2 -2
  413. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +2 -2
  414. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +5 -8
  415. package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +1 -1
  416. package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +7 -9
  417. package/esm2022/lib/components/select/auto/elder-select-first-util.mjs +7 -4
  418. package/esm2022/lib/components/select/elder-select-base.mjs +12 -13
  419. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +4 -4
  420. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +10 -5
  421. package/esm2022/lib/components/select/elder-select-value.directive.mjs +2 -2
  422. package/esm2022/lib/components/select/elder-select.module.mjs +65 -29
  423. package/esm2022/lib/components/select/filter/elder-chip-filter-style-resolver.mjs +9 -9
  424. package/esm2022/lib/components/select/filter/elder-chips-include-exclude.directive.mjs +19 -15
  425. package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +3 -3
  426. package/esm2022/lib/components/select/filter/include-exclude-model-filter-adapter.mjs +6 -8
  427. package/esm2022/lib/components/select/filter/include-exclude-selection-model.mjs +7 -11
  428. package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +2 -3
  429. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +29 -27
  430. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/chip-options-provider.mjs +12 -10
  431. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +40 -29
  432. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/select-option-chip-spec.mjs +4 -4
  433. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +41 -21
  434. package/esm2022/lib/components/select/multi/elder-multi-select-chips/select-chip-spec.mjs +4 -4
  435. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +2 -2
  436. package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +7 -8
  437. package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +8 -10
  438. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +7 -5
  439. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +13 -13
  440. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +15 -5
  441. package/esm2022/lib/components/select/public_api.mjs +1 -1
  442. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +5 -3
  443. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +39 -29
  444. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +1 -1
  445. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +11 -12
  446. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +3 -5
  447. package/esm2022/lib/components/shell/drawers/drawer-outlet-binding.mjs +8 -4
  448. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +6 -4
  449. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +7 -7
  450. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +2 -2
  451. package/esm2022/lib/components/shell/elder-shell.module.mjs +10 -7
  452. package/esm2022/lib/components/shell/elder-shell.service.mjs +6 -9
  453. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +6 -6
  454. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +34 -14
  455. package/esm2022/lib/components/shell/shell-content-slot.mjs +1 -1
  456. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +5 -5
  457. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +2 -2
  458. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +12 -12
  459. package/esm2022/lib/components/tabs/elder-tab.module.mjs +4 -14
  460. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +5 -6
  461. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +3 -4
  462. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +6 -7
  463. package/esm2022/lib/components/theme/elder-theme.directive.mjs +5 -3
  464. package/esm2022/lib/components/theme/elder-theme.module.mjs +9 -15
  465. package/esm2022/lib/components/theme/elder-theme.service.mjs +7 -9
  466. package/esm2022/lib/components/theme/known-elder-themes.mjs +1 -1
  467. package/esm2022/lib/components/theme/public_api.mjs +1 -1
  468. package/esm2022/lib/components/theme/theme-spec.mjs +3 -7
  469. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +1 -1
  470. package/esm2022/lib/components/time/date-formats/locale-date-formats.mjs +2 -2
  471. package/esm2022/lib/components/time/duration/duration-bucket.mjs +3 -2
  472. package/esm2022/lib/components/time/duration/duration-format.mjs +1 -1
  473. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +6 -12
  474. package/esm2022/lib/components/time/duration/iso-duration-str.mjs +1 -1
  475. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +13 -7
  476. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +7 -13
  477. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +27 -27
  478. package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker-binding.directive.mjs +1 -1
  479. package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker-toggle/elder-interval-picker-toggle.component.mjs +15 -18
  480. package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.component.mjs +8 -11
  481. package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.service.mjs +16 -11
  482. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +22 -13
  483. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +7 -13
  484. package/esm2022/lib/components/time/elder-time.module.mjs +29 -21
  485. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +6 -12
  486. package/esm2022/lib/components/time/period/period-bucket.mjs +1 -1
  487. package/esm2022/lib/components/time/period/period-format.mjs +1 -1
  488. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +2 -2
  489. package/esm2022/lib/components/time/public_api.mjs +1 -1
  490. package/esm2022/lib/components/toasts/elder-toast.module.mjs +18 -4
  491. package/esm2022/lib/components/toasts/elder-toast.service.mjs +9 -10
  492. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +21 -14
  493. package/esm2022/lib/components/toasts/toast-type.mjs +1 -1
  494. package/esm2022/lib/components/toasts/toast.mjs +1 -1
  495. package/esm2022/lib/components/url-fragment/elder-url-fragment.mjs +1 -1
  496. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +3 -5
  497. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +16 -5
  498. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +3 -4
  499. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +4 -10
  500. package/esm2022/lib/features/event-source/fetch/public_api.mjs +1 -1
  501. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.mjs +14 -14
  502. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +2 -2
  503. package/esm2022/lib/features/event-source/public_api.mjs +1 -1
  504. package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +2 -2
  505. package/esm2022/lib/features/event-source/standard/public_api.mjs +1 -1
  506. package/esm2022/lib/features/event-source/standard/reactive-event-source.mjs +8 -7
  507. package/esm2022/lib/features/kafent/access-token-provider.mjs +1 -1
  508. package/esm2022/lib/features/kafent/kafent-config.mjs +1 -1
  509. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +1 -1
  510. package/esm2022/lib/features/kafent/kafent-event.mjs +1 -1
  511. package/esm2022/lib/features/kafent/kafent-event.service.mjs +16 -8
  512. package/esm2022/lib/features/kafent/kafent-live-event-request.mjs +1 -1
  513. package/esm2022/lib/features/kafent/kafent.module.mjs +10 -13
  514. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +12 -9
  515. package/esm2022/lib/features/kafent/sse/kafent-topic-sse.mjs +2 -3
  516. package/esm2022/lib/features/public_api.mjs +1 -1
  517. package/esm2022/lib/pipes/bytes.pipe.mjs +2 -2
  518. package/esm2022/lib/pipes/elder-pipes.module.mjs +52 -8
  519. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +2 -2
  520. package/esm2022/lib/pipes/elder-round.pipe.mjs +2 -2
  521. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +2 -2
  522. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +3 -3
  523. package/esm2022/lib/pipes/iso-duration.pipe.mjs +2 -2
  524. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +4 -5
  525. package/esm2022/lib/pipes/iso-interval.pipe.mjs +2 -2
  526. package/esm2022/lib/pipes/public_api.mjs +1 -1
  527. package/esm2022/lib/pipes/time-ago.pipe.mjs +12 -7
  528. package/esm2022/lib/pipes/time-duration.pipe.mjs +6 -4
  529. package/esm2022/lib/pipes/weight.pipe.mjs +4 -3
  530. package/esm2022/public_api.mjs +1 -1
  531. package/fesm2022/elderbyte-ngx-starter.mjs +3054 -2329
  532. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  533. package/lib/common/arrays.d.ts +1 -1
  534. package/lib/common/data/data-context/data-context-active-page.d.ts +1 -1
  535. package/lib/common/data/data-context/data-context-base.d.ts +1 -1
  536. package/lib/common/data/data-context/data-context-builder.d.ts +2 -2
  537. package/lib/common/data/data-context/data-context-continuable-base.d.ts +1 -1
  538. package/lib/common/data/data-context/data-context-continuable-paged.d.ts +1 -1
  539. package/lib/common/data/data-context/data-context-continuable-token.d.ts +1 -1
  540. package/lib/common/data/data-context/data-context-simple.d.ts +1 -1
  541. package/lib/common/data/data-context/data-context-source-event-binding.d.ts +2 -5
  542. package/lib/common/data/datasource/data-source-change-event.d.ts +14 -5
  543. package/lib/common/data/datasource/local/local-list-data-source.d.ts +3 -3
  544. package/lib/common/data/datasource/local/local-paged-data-source.d.ts +1 -1
  545. package/lib/common/data/datasource/patch/deep-partial-patcher.d.ts +28 -0
  546. package/lib/common/json-map.d.ts +1 -1
  547. package/lib/common/selection/selection-model.d.ts +2 -2
  548. package/lib/common/time/interval.d.ts +4 -4
  549. package/lib/common/time/temporal-util.d.ts +2 -0
  550. package/lib/common/utils/collection-util.d.ts +1 -1
  551. package/lib/components/card-organizer/card-organizer-data.d.ts +3 -3
  552. package/lib/components/card-organizer/card-stack.d.ts +2 -2
  553. package/lib/components/data-view/base/elder-data-view-options-provider.d.ts +1 -1
  554. package/lib/components/data-view/common/elder-data-common.module.d.ts +1 -1
  555. package/lib/components/data-view/elder-data-view-interaction-mode.d.ts +2 -2
  556. package/lib/components/data-view/grid/elder-grid.module.d.ts +1 -1
  557. package/lib/components/forms/search/elder-search-input.directive.d.ts +1 -1
  558. package/lib/components/navigation/toolbar/elder-toolbar.module.d.ts +1 -1
  559. package/lib/components/navigation/toolbar/toolbar-column-position.d.ts +3 -3
  560. package/lib/components/select/elder-select.module.d.ts +1 -1
  561. package/lib/components/time/elder-interval-input/elder-interval-input.component.d.ts +4 -4
  562. package/lib/components/time/elder-interval-picker/elder-interval-picker-toggle/elder-interval-picker-toggle.component.d.ts +2 -2
  563. package/lib/components/time/elder-interval-picker/elder-interval-picker.component.d.ts +2 -1
  564. package/lib/components/time/elder-interval-picker/elder-interval-picker.service.d.ts +4 -2
  565. package/package.json +1 -1
  566. package/src/assets/i18n/de.json +0 -1
  567. package/src/assets/i18n/en.json +0 -1
  568. package/src/lib/components/access-denied/elder-access-denied.component.scss +1 -5
  569. package/src/lib/components/auditing/audited-entity/elder-audited-entity.component.scss +0 -1
  570. package/src/lib/components/badge/elder-badge/elder-badge.component.scss +2 -7
  571. package/src/lib/components/card-organizer/card-organizer/elder-card-organizer.component.scss +0 -1
  572. package/src/lib/components/card-organizer/card-stack/elder-card-stack.component.scss +4 -14
  573. package/src/lib/components/cards/elder-card/elder-card.component.scss +3 -9
  574. package/src/lib/components/chips/_elder-chip-theme.scss +5 -9
  575. package/src/lib/components/containers/elder-scroll-container/elder-scroll-container.component.scss +0 -1
  576. package/src/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.scss +0 -1
  577. package/src/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.scss +0 -1
  578. package/src/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.scss +4 -5
  579. package/src/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.scss +1 -1
  580. package/src/lib/components/data-view/grid/elder-grid/elder-grid.component.scss +21 -13
  581. package/src/lib/components/data-view/table/elder-table/elder-table.component.scss +12 -21
  582. package/src/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.scss +2 -3
  583. package/src/lib/components/errors/exception-detail/elder-exception-detail.component.scss +2 -4
  584. package/src/lib/components/expand-toggle-button/elder-expand-toggle-button.component.scss +0 -4
  585. package/src/lib/components/files/blob-viewer/elder-blob-viewer.component.scss +2 -4
  586. package/src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.scss +2 -7
  587. package/src/lib/components/forms/search/search-box/elder-search-box.component.scss +0 -2
  588. package/src/lib/components/global-search/elder-global-search.component.scss +1 -2
  589. package/src/lib/components/graph/elder-progress-bar/elder-progress-bar.component.scss +0 -1
  590. package/src/lib/components/iframes/iframe-host/iframe-host.component.scss +0 -1
  591. package/src/lib/components/labels/labels-input/labels-input.component.scss +0 -2
  592. package/src/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.scss +0 -2
  593. package/src/lib/components/navigation/nav/_elder-nav-theme.scss +4 -8
  594. package/src/lib/components/navigation/nav/nav-group/elder-nav-group.component.scss +6 -6
  595. package/src/lib/components/navigation/nav/nav-list/elder-nav-list.component.scss +0 -1
  596. package/src/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.scss +1 -2
  597. package/src/lib/components/panels/card-panel/elder-card-panel.component.scss +0 -3
  598. package/src/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.scss +0 -1
  599. package/src/lib/components/panels/flat/_elder-panel-theme.scss +0 -2
  600. package/src/lib/components/panels/flat/elder-panel.component.scss +1 -2
  601. package/src/lib/components/select/_elder-select-base.scss +0 -1
  602. package/src/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.scss +7 -7
  603. package/src/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.scss +3 -4
  604. package/src/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.scss +7 -7
  605. package/src/lib/components/select/single/elder-select/elder-select.component.scss +1 -1
  606. package/src/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.scss +2 -3
  607. package/src/lib/components/shell/header/elder-app-header/elder-app-header.component.scss +1 -2
  608. package/src/lib/components/shell/shell/elder-shell.component.scss +0 -1
  609. package/src/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.scss +1 -2
  610. package/src/lib/components/time/_elder-time-input.theme.scss +2 -2
  611. package/src/lib/components/time/duration/elder-duration-input/elder-duration-input.component.scss +0 -4
  612. package/src/lib/components/time/elder-date-time-input/elder-date-time-input.component.scss +1 -3
  613. package/src/lib/components/time/elder-interval-input/elder-interval-input.component.scss +0 -1
  614. package/src/lib/components/time/elder-local-date-input/elder-local-date-input.component.scss +2 -5
  615. package/src/lib/components/time/period/elder-period-input/elder-period-input.component.scss +0 -4
  616. package/src/lib/components/toasts/standard-toast/standard-toast.component.scss +0 -1
  617. package/src/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.scss +0 -5
  618. package/src/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.scss +0 -1
  619. package/theming/_elder-common.scss +10 -11
  620. package/theming/_elder-defaults.scss +2 -4
  621. package/theming/_elder-flex-layout.scss +7 -8
  622. package/theming/_elder-mdc-support.scss +22 -19
  623. package/theming/_elder-palettes.scss +28 -25
  624. package/theming/_elder-scrollbar-theme.scss +0 -2
  625. package/theming/_elder-style-fixes.scss +10 -7
  626. package/theming/_elder-theme.scss +6 -1
  627. package/theming/_elder-toast-theme.scss +0 -2
  628. package/theming/_mat-icon-button-size.scss +3 -2
  629. package/theming/_mixins.scss +11 -9
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, ContentChild, Directive, Input, TemplateRef, ViewChild } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, ContentChild, Directive, Input, TemplateRef, ViewChild, } from '@angular/core';
2
2
  import { MatSidenav, MatSidenavContainer, MatSidenavContent } from '@angular/material/sidenav';
3
3
  import { LoggerFactory } from '@elderbyte/ts-logger';
4
4
  import { BehaviorSubject, Subject } from 'rxjs';
@@ -27,7 +27,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
27
27
  type: Directive,
28
28
  args: [{
29
29
  selector: '[elderShellSideLeft]',
30
- standalone: true
30
+ standalone: true,
31
31
  }]
32
32
  }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
33
33
  export class ElderShellSideRightDirective {
@@ -42,7 +42,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
42
42
  type: Directive,
43
43
  args: [{
44
44
  selector: '[elderShellSideRight]',
45
- standalone: true
45
+ standalone: true,
46
46
  }]
47
47
  }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
48
48
  export class ElderShellCenterDirective {
@@ -57,7 +57,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
57
57
  type: Directive,
58
58
  args: [{
59
59
  selector: '[elderShellCenter]',
60
- standalone: true
60
+ standalone: true,
61
61
  }]
62
62
  }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
63
63
  export class ElderShellComponent {
@@ -87,9 +87,15 @@ export class ElderShellComponent {
87
87
  this.color = 'primary';
88
88
  this.menuColor$ = new BehaviorSubject('accent');
89
89
  this.menuIconColor$ = new BehaviorSubject(undefined);
90
- this.headerTemplate$ = shellService.activeSlotTemplate('header').pipe(tap(() => this.checkSoon()));
91
- this.centerTemplate$ = shellService.activeSlotTemplate('center').pipe(tap(() => this.checkSoon()));
92
- this.footerTemplate$ = shellService.activeSlotTemplate('footer').pipe(tap(() => this.checkSoon()));
90
+ this.headerTemplate$ = shellService
91
+ .activeSlotTemplate('header')
92
+ .pipe(tap(() => this.checkSoon()));
93
+ this.centerTemplate$ = shellService
94
+ .activeSlotTemplate('center')
95
+ .pipe(tap(() => this.checkSoon()));
96
+ this.footerTemplate$ = shellService
97
+ .activeSlotTemplate('footer')
98
+ .pipe(tap(() => this.checkSoon()));
93
99
  this.globalDragDropService.preventDefaultFileLoading();
94
100
  }
95
101
  /***************************************************************************
@@ -99,12 +105,13 @@ export class ElderShellComponent {
99
105
  **************************************************************************/
100
106
  ngOnInit() {
101
107
  this.outletDrawerService.registerOutletDrawer(this.rightSideOutletName, this.rightSideDrawer);
102
- this.outletDrawerService
103
- .drawerVisibilityChange
108
+ this.outletDrawerService.drawerVisibilityChange
104
109
  .pipe(takeUntil(this.destroy$))
105
- .subscribe(drawer => this.changeDetectorRef.markForCheck());
110
+ .subscribe((drawer) => this.changeDetectorRef.markForCheck());
106
111
  this.leftSideContentOpen$ = this.shellService.navigationOpenChange;
107
- this.themeService.activeTheme$.pipe(takeUntil(this.destroy$)).subscribe(theme => this.adjustColorsForTheme(theme));
112
+ this.themeService.activeTheme$
113
+ .pipe(takeUntil(this.destroy$))
114
+ .subscribe((theme) => this.adjustColorsForTheme(theme));
108
115
  }
109
116
  ngOnDestroy() {
110
117
  this.destroy$.next();
@@ -185,11 +192,24 @@ export class ElderShellComponent {
185
192
  }, 5);
186
193
  }
187
194
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderShellComponent, deps: [{ token: i1.ElderShellService }, { token: i2.ElderRouteOutletDrawerService }, { token: i0.ChangeDetectorRef }, { token: i3.ElderThemeService }, { token: i4.GlobalDragDropService }], target: i0.ɵɵFactoryTarget.Component }); }
188
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ElderShellComponent, isStandalone: true, selector: "elder-shell", inputs: { sideNavToggleEnabled: "sideNavToggleEnabled", leftSideAutoFocus: "leftSideAutoFocus", rightSideAutoFocus: "rightSideAutoFocus", color: "color", menuColor: "menuColor", menuIconColor: "menuIconColor" }, queries: [{ propertyName: "sideContentLeft", first: true, predicate: ElderShellSideLeftDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "sideContentRight", first: true, predicate: ElderShellSideRightDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "centerContent", first: true, predicate: ElderShellCenterDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "rightSideDrawer", first: true, predicate: ["rightSideDetail"], descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container\n elderThemeApplier\n class=\"full-width\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n\n <!-- Left Side Nav -->\n <mat-sidenav position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus\"\n [opened]=\"leftSideContentOpen$ | async\"\n (closed)=\"closeLeftSideContent()\">\n <div class=\"layout-col full elder-side-nav\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft;\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent;\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav mode=\"over\" #rightSideDetail id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus\"\n [disableClose]=\"true\" (keydown.escape)=\"onEscapeRightSide($event)\">\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight;\"></ng-container>\n </div>\n </mat-sidenav>\n\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div class=\"layout-col full\">\n\n <!-- Header -->\n <ng-container *ngTemplateOutlet=\"(headerTemplate$ | async) || defaultHeaderTemplate\"></ng-container>\n\n <!-- Center -->\n <ng-container *ngTemplateOutlet=\"(centerTemplate$ | async) || defaultCenterTemplate\"></ng-container>\n\n <!-- Footer -->\n <ng-container *ngTemplateOutlet=\"(footerTemplate$ | async) || defaultFooterTemplate\"></ng-container>\n\n </div>\n</ng-template>\n\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar [color]=\"color\" class=\"flex-none\" style=\"max-width: 100%; min-width: 100%\" >\n <!-- Toolbar Prefix: Sidenav Toggle -->\n <mat-toolbar *ngIf=\"sideNavToggleEnabled\"\n [color]=\"menuColor$ | async\"\n class=\"flex-none\" style=\"width: auto\"\n >\n <button mat-icon-button [color]=\"menuIconColor$ | async\" type=\"button\" (click)=\"toggleSideNav()\">\n <mat-icon>menu</mat-icon>\n </button>\n </mat-toolbar>\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav .elder-side-nav{min-width:350px}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}\n"], dependencies: [{ kind: "component", type: MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "directive", type: ElderThemeApplierDirective, selector: "[elderThemeApplier]" }, { kind: "component", type: MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: ElderToolbarComponent, selector: "elder-toolbar", inputs: ["color"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
195
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ElderShellComponent, isStandalone: true, selector: "elder-shell", inputs: { sideNavToggleEnabled: "sideNavToggleEnabled", leftSideAutoFocus: "leftSideAutoFocus", rightSideAutoFocus: "rightSideAutoFocus", color: "color", menuColor: "menuColor", menuIconColor: "menuIconColor" }, queries: [{ propertyName: "sideContentLeft", first: true, predicate: ElderShellSideLeftDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "sideContentRight", first: true, predicate: ElderShellSideRightDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "centerContent", first: true, predicate: ElderShellCenterDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "rightSideDrawer", first: true, predicate: ["rightSideDetail"], descendants: true, static: true }], ngImport: i0, template: "<mat-sidenav-container\n elderThemeApplier\n class=\"full-width\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n <!-- Left Side Nav -->\n <mat-sidenav\n position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus\"\n [opened]=\"leftSideContentOpen$ | async\"\n (closed)=\"closeLeftSideContent()\"\n >\n <div class=\"layout-col full elder-side-nav\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav\n mode=\"over\"\n #rightSideDetail\n id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus\"\n [disableClose]=\"true\"\n (keydown.escape)=\"onEscapeRightSide($event)\"\n >\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight\"></ng-container>\n </div>\n </mat-sidenav>\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div class=\"layout-col full\">\n <!-- Header -->\n <ng-container\n *ngTemplateOutlet=\"(headerTemplate$ | async) || defaultHeaderTemplate\"\n ></ng-container>\n\n <!-- Center -->\n <ng-container\n *ngTemplateOutlet=\"(centerTemplate$ | async) || defaultCenterTemplate\"\n ></ng-container>\n\n <!-- Footer -->\n <ng-container\n *ngTemplateOutlet=\"(footerTemplate$ | async) || defaultFooterTemplate\"\n ></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar [color]=\"color\" class=\"flex-none\" style=\"max-width: 100%; min-width: 100%\">\n <!-- Toolbar Prefix: Sidenav Toggle -->\n <mat-toolbar\n *ngIf=\"sideNavToggleEnabled\"\n [color]=\"menuColor$ | async\"\n class=\"flex-none\"\n style=\"width: auto\"\n >\n <button\n mat-icon-button\n [color]=\"menuIconColor$ | async\"\n type=\"button\"\n (click)=\"toggleSideNav()\"\n >\n <mat-icon>menu</mat-icon>\n </button>\n </mat-toolbar>\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav .elder-side-nav{min-width:350px}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}\n"], dependencies: [{ kind: "component", type: MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { kind: "directive", type: ElderThemeApplierDirective, selector: "[elderThemeApplier]" }, { kind: "component", type: MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatSidenavContent, selector: "mat-sidenav-content" }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: ElderToolbarComponent, selector: "elder-toolbar", inputs: ["color"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
189
196
  }
190
197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderShellComponent, decorators: [{
191
198
  type: Component,
192
- args: [{ selector: 'elder-shell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatSidenavContainer, ElderThemeApplierDirective, MatSidenav, NgTemplateOutlet, MatSidenavContent, RouterOutlet, ElderToolbarComponent, NgIf, MatToolbar, MatIconButton, MatIcon, AsyncPipe], template: "<mat-sidenav-container\n elderThemeApplier\n class=\"full-width\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n\n <!-- Left Side Nav -->\n <mat-sidenav position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus\"\n [opened]=\"leftSideContentOpen$ | async\"\n (closed)=\"closeLeftSideContent()\">\n <div class=\"layout-col full elder-side-nav\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft;\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent;\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav mode=\"over\" #rightSideDetail id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus\"\n [disableClose]=\"true\" (keydown.escape)=\"onEscapeRightSide($event)\">\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight;\"></ng-container>\n </div>\n </mat-sidenav>\n\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div class=\"layout-col full\">\n\n <!-- Header -->\n <ng-container *ngTemplateOutlet=\"(headerTemplate$ | async) || defaultHeaderTemplate\"></ng-container>\n\n <!-- Center -->\n <ng-container *ngTemplateOutlet=\"(centerTemplate$ | async) || defaultCenterTemplate\"></ng-container>\n\n <!-- Footer -->\n <ng-container *ngTemplateOutlet=\"(footerTemplate$ | async) || defaultFooterTemplate\"></ng-container>\n\n </div>\n</ng-template>\n\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar [color]=\"color\" class=\"flex-none\" style=\"max-width: 100%; min-width: 100%\" >\n <!-- Toolbar Prefix: Sidenav Toggle -->\n <mat-toolbar *ngIf=\"sideNavToggleEnabled\"\n [color]=\"menuColor$ | async\"\n class=\"flex-none\" style=\"width: auto\"\n >\n <button mat-icon-button [color]=\"menuIconColor$ | async\" type=\"button\" (click)=\"toggleSideNav()\">\n <mat-icon>menu</mat-icon>\n </button>\n </mat-toolbar>\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav .elder-side-nav{min-width:350px}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}\n"] }]
199
+ args: [{ selector: 'elder-shell', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
200
+ MatSidenavContainer,
201
+ ElderThemeApplierDirective,
202
+ MatSidenav,
203
+ NgTemplateOutlet,
204
+ MatSidenavContent,
205
+ RouterOutlet,
206
+ ElderToolbarComponent,
207
+ NgIf,
208
+ MatToolbar,
209
+ MatIconButton,
210
+ MatIcon,
211
+ AsyncPipe,
212
+ ], template: "<mat-sidenav-container\n elderThemeApplier\n class=\"full-width\"\n (backdropClick)=\"onBackdropClick($event)\"\n>\n <!-- Left Side Nav -->\n <mat-sidenav\n position=\"start\"\n mode=\"over\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"leftSideAutoFocus\"\n [opened]=\"leftSideContentOpen$ | async\"\n (closed)=\"closeLeftSideContent()\"\n >\n <div class=\"layout-col full elder-side-nav\">\n <ng-container *ngTemplateOutlet=\"sideContentLeft || fallbackSideContentLeft\"></ng-container>\n </div>\n </mat-sidenav>\n\n <!-- Main Content -->\n <mat-sidenav-content>\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"centerContent || fallbackCenterContent\"></ng-container>\n </div>\n </mat-sidenav-content>\n\n <!-- Right Side Detail -->\n <mat-sidenav\n mode=\"over\"\n #rightSideDetail\n id=\"elder-right-side-detail\"\n position=\"end\"\n [fixedInViewport]=\"true\"\n [autoFocus]=\"rightSideAutoFocus\"\n [disableClose]=\"true\"\n (keydown.escape)=\"onEscapeRightSide($event)\"\n >\n <div class=\"layout-col full\">\n <ng-container *ngTemplateOutlet=\"sideContentRight || fallbackSideContentRight\"></ng-container>\n </div>\n </mat-sidenav>\n</mat-sidenav-container>\n\n<ng-template #fallbackSideContentLeft>\n <div class=\"layout-col flex\">\n <p class=\"noselect\">No Left Side Content Defined!</p>\n </div>\n</ng-template>\n\n<ng-template #fallbackSideContentRight>\n <router-outlet name=\"side\" class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #fallbackCenterContent>\n <div class=\"layout-col full\">\n <!-- Header -->\n <ng-container\n *ngTemplateOutlet=\"(headerTemplate$ | async) || defaultHeaderTemplate\"\n ></ng-container>\n\n <!-- Center -->\n <ng-container\n *ngTemplateOutlet=\"(centerTemplate$ | async) || defaultCenterTemplate\"\n ></ng-container>\n\n <!-- Footer -->\n <ng-container\n *ngTemplateOutlet=\"(footerTemplate$ | async) || defaultFooterTemplate\"\n ></ng-container>\n </div>\n</ng-template>\n\n<ng-template #defaultHeaderTemplate>\n <elder-toolbar [color]=\"color\" class=\"flex-none\" style=\"max-width: 100%; min-width: 100%\">\n <!-- Toolbar Prefix: Sidenav Toggle -->\n <mat-toolbar\n *ngIf=\"sideNavToggleEnabled\"\n [color]=\"menuColor$ | async\"\n class=\"flex-none\"\n style=\"width: auto\"\n >\n <button\n mat-icon-button\n [color]=\"menuIconColor$ | async\"\n type=\"button\"\n (click)=\"toggleSideNav()\"\n >\n <mat-icon>menu</mat-icon>\n </button>\n </mat-toolbar>\n </elder-toolbar>\n</ng-template>\n\n<ng-template #defaultCenterTemplate>\n <!-- Primary Router Outlet -->\n <router-outlet class=\"router-flex\"></router-outlet>\n</ng-template>\n\n<ng-template #defaultFooterTemplate>\n <!-- Default Footer is empty -->\n</ng-template>\n", styles: ["mat-sidenav{margin:0;height:100%;overflow:hidden}mat-sidenav .elder-side-nav{min-width:350px}mat-sidenav-container{margin:0;width:100%;height:100%;overflow:hidden}\n"] }]
193
213
  }], ctorParameters: () => [{ type: i1.ElderShellService }, { type: i2.ElderRouteOutletDrawerService }, { type: i0.ChangeDetectorRef }, { type: i3.ElderThemeService }, { type: i4.GlobalDragDropService }], propDecorators: { sideNavToggleEnabled: [{
194
214
  type: Input
195
215
  }], leftSideAutoFocus: [{
@@ -215,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
215
235
  }], menuIconColor: [{
216
236
  type: Input
217
237
  }] } });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2hlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zaGVsbC9zaGVsbC9lbGRlci1zaGVsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoZWxsL3NoZWxsL2VsZGVyLXNoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUdMLFdBQVcsRUFDWCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRTdGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUMsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSzlDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLFNB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RSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUM7c09BY2hNLG9CQUFvQjtzQkFEMUIsS0FBSztnQkFJQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBSXJFLGdCQUFnQjtzQkFEdEIsWUFBWTt1QkFBQyw0QkFBNEIsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJdEUsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJbkUsZUFBZTtzQkFEckIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBZXJDLEtBQUs7c0JBRFgsS0FBSztnQkFzRUssU0FBUztzQkFEbkIsS0FBSztnQkFVSyxhQUFhO3NCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyU2hlbGxTZXJ2aWNlfSBmcm9tICcuLi9lbGRlci1zaGVsbC5zZXJ2aWNlJztcbmltcG9ydCB7TWF0U2lkZW5hdiwgTWF0U2lkZW5hdkNvbnRhaW5lciwgTWF0U2lkZW5hdkNvbnRlbnR9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHtFbGRlclJvdXRlT3V0bGV0RHJhd2VyU2VydmljZX0gZnJvbSAnLi4vZHJhd2Vycy9lbGRlci1yb3V0ZS1vdXRsZXQtZHJhd2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1RoZW1lUGFsZXR0ZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge0VsZGVyVGhlbWVTZXJ2aWNlfSBmcm9tICcuLi8uLi90aGVtZS9lbGRlci10aGVtZS5zZXJ2aWNlJztcbmltcG9ydCB7VGhlbWVTcGVjfSBmcm9tICcuLi8uLi90aGVtZS90aGVtZS1zcGVjJztcbmltcG9ydCB7R2xvYmFsRHJhZ0Ryb3BTZXJ2aWNlfSBmcm9tICcuLi8uLi9maWxlcy9kcmFnLW4tZHJvcC9nbG9iYWwtZHJhZy1kcm9wLnNlcnZpY2UnO1xuaW1wb3J0IHtNYXRJY29ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0SWNvbkJ1dHRvbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7TWF0VG9vbGJhcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbGJhcic7XG5pbXBvcnQge0VsZGVyVG9vbGJhckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vbmF2aWdhdGlvbi90b29sYmFyL3Rvb2xiYXIvZWxkZXItdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtSb3V0ZXJPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge05nVGVtcGxhdGVPdXRsZXQsIE5nSWYsIEFzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RWxkZXJUaGVtZUFwcGxpZXJEaXJlY3RpdmV9IGZyb20gJy4uLy4uL3RoZW1lL2VsZGVyLXRoZW1lLWFwcGxpZXIuZGlyZWN0aXZlJztcblxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tlbGRlclNoZWxsU2lkZUxlZnRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2hlbGxTaWRlTGVmdERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikgeyB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VsZGVyU2hlbGxTaWRlUmlnaHRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2hlbGxTaWRlUmlnaHREaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHVibGljIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYpIHsgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tlbGRlclNoZWxsQ2VudGVyXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclNoZWxsQ2VudGVyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmKSB7IH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlbGRlci1zaGVsbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXNoZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lbGRlci1zaGVsbC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW01hdFNpZGVuYXZDb250YWluZXIsIEVsZGVyVGhlbWVBcHBsaWVyRGlyZWN0aXZlLCBNYXRTaWRlbmF2LCBOZ1RlbXBsYXRlT3V0bGV0LCBNYXRTaWRlbmF2Q29udGVudCwgUm91dGVyT3V0bGV0LCBFbGRlclRvb2xiYXJDb21wb25lbnQsIE5nSWYsIE1hdFRvb2xiYXIsIE1hdEljb25CdXR0b24sIE1hdEljb24sIEFzeW5jUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTaGVsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKCdFbGRlclNoZWxsQ29tcG9uZW50Jyk7XG5cbiAgLyoqIENvbnRyb2xzIGlmIHRoZSBTaWRlTmF2IHRvZ2dsZSBzaG91bGQgYmUgZGlzcGxheWVkLiBEZWZhdWx0OiB0cnVlICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaWRlTmF2VG9nZ2xlRW5hYmxlZCA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGxlZnRTaWRlQXV0b0ZvY3VzID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJpZ2h0U2lkZUF1dG9Gb2N1cyA9IGZhbHNlO1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTaGVsbFNpZGVMZWZ0RGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyBzaWRlQ29udGVudExlZnQ6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZChFbGRlclNoZWxsU2lkZVJpZ2h0RGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyBzaWRlQ29udGVudFJpZ2h0OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTaGVsbENlbnRlckRpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWV9KVxuICBwdWJsaWMgY2VudGVyQ29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAVmlld0NoaWxkKCdyaWdodFNpZGVEZXRhaWwnLCB7c3RhdGljOiB0cnVlfSlcbiAgcHVibGljIHJpZ2h0U2lkZURyYXdlcjogTWF0U2lkZW5hdjtcblxuICBwdWJsaWMgcmlnaHRTaWRlT3V0bGV0TmFtZSA9ICdzaWRlJztcblxuICBwdWJsaWMgbGVmdFNpZGVDb250ZW50T3BlbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cblxuICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyVGVtcGxhdGUkOiBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuICBwdWJsaWMgcmVhZG9ubHkgY2VudGVyVGVtcGxhdGUkOiBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuICBwdWJsaWMgcmVhZG9ubHkgZm9vdGVyVGVtcGxhdGUkOiBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb2xvcjogVGhlbWVQYWxldHRlID0gJ3ByaW1hcnknO1xuXG4gIHB1YmxpYyByZWFkb25seSBtZW51Q29sb3IkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUaGVtZVBhbGV0dGU+KCdhY2NlbnQnKTtcbiAgcHVibGljIHJlYWRvbmx5IG1lbnVJY29uQ29sb3IkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUaGVtZVBhbGV0dGU+KHVuZGVmaW5lZCk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzaGVsbFNlcnZpY2U6IEVsZGVyU2hlbGxTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3V0bGV0RHJhd2VyU2VydmljZTogRWxkZXJSb3V0ZU91dGxldERyYXdlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0aGVtZVNlcnZpY2U6IEVsZGVyVGhlbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2xvYmFsRHJhZ0Ryb3BTZXJ2aWNlOiBHbG9iYWxEcmFnRHJvcFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSQgPSBzaGVsbFNlcnZpY2UuYWN0aXZlU2xvdFRlbXBsYXRlKCdoZWFkZXInKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMuY2hlY2tTb29uKCkpXG4gICAgKTtcbiAgICB0aGlzLmNlbnRlclRlbXBsYXRlJCA9IHNoZWxsU2VydmljZS5hY3RpdmVTbG90VGVtcGxhdGUoJ2NlbnRlcicpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5jaGVja1Nvb24oKSlcbiAgICApO1xuICAgIHRoaXMuZm9vdGVyVGVtcGxhdGUkID0gc2hlbGxTZXJ2aWNlLmFjdGl2ZVNsb3RUZW1wbGF0ZSgnZm9vdGVyJykucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmNoZWNrU29vbigpKVxuICAgICk7XG5cbiAgICB0aGlzLmdsb2JhbERyYWdEcm9wU2VydmljZS5wcmV2ZW50RGVmYXVsdEZpbGVMb2FkaW5nKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vdXRsZXREcmF3ZXJTZXJ2aWNlLnJlZ2lzdGVyT3V0bGV0RHJhd2VyKFxuICAgICAgdGhpcy5yaWdodFNpZGVPdXRsZXROYW1lLFxuICAgICAgdGhpcy5yaWdodFNpZGVEcmF3ZXJcbiAgICApO1xuXG4gICAgdGhpcy5vdXRsZXREcmF3ZXJTZXJ2aWNlXG4gICAgICAuZHJhd2VyVmlzaWJpbGl0eUNoYW5nZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShkcmF3ZXIgPT4gIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpO1xuXG4gICAgdGhpcy5sZWZ0U2lkZUNvbnRlbnRPcGVuJCA9ICB0aGlzLnNoZWxsU2VydmljZS5uYXZpZ2F0aW9uT3BlbkNoYW5nZTtcblxuICAgIHRoaXMudGhlbWVTZXJ2aWNlLmFjdGl2ZVRoZW1lJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUodGhlbWUgPT4gdGhpcy5hZGp1c3RDb2xvcnNGb3JUaGVtZSh0aGVtZSkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWVudUNvbG9yKGM6IFRoZW1lUGFsZXR0ZSkge1xuICAgIHRoaXMubWVudUNvbG9yJC5uZXh0KGMpO1xuICB9XG5cbiAgcHVibGljIGdldCBtZW51Q29sb3IoKTogVGhlbWVQYWxldHRlIHtcbiAgICByZXR1cm4gdGhpcy5tZW51Q29sb3IkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1lbnVJY29uQ29sb3IoYzogVGhlbWVQYWxldHRlKSB7XG4gICAgdGhpcy5tZW51SWNvbkNvbG9yJC5uZXh0KGMpO1xuICB9XG5cbiAgcHVibGljIGdldCBtZW51SWNvbkNvbG9yKCk6IFRoZW1lUGFsZXR0ZSB7XG4gICAgcmV0dXJuIHRoaXMubWVudUljb25Db2xvciQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBjbG9zZUxlZnRTaWRlQ29udGVudCgpIHtcbiAgICB0aGlzLnNoZWxsU2VydmljZS5jbG9zZVNpZGVOYXYoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVTaWRlTmF2KCk6IHZvaWQge1xuICAgIHRoaXMuc2hlbGxTZXJ2aWNlLnRvZ2dsZVNpZGVuYXYoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkJhY2tkcm9wQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNoZWxsU2VydmljZS5pc1NpZGVDb250ZW50QWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuc2hlbGxTZXJ2aWNlLmNsb3NlU2lkZUNvbnRlbnQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Fc2NhcGVSaWdodFNpZGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICh0YXJnZXQgJiYgdGhpcy5pc0NvbnRhaW5lZCh0YXJnZXQsICdlbGRlci1yaWdodC1zaWRlLWRldGFpbCcpKSB7XG4gICAgICAvLyBFbnN1cmUgd2Ugb25seSByZWFjdCB0byBFc2MgRXZlbnRzIHRhcmdldGVkIGF0IG91ciBzaWRlIG5hdiFcbiAgICAgIGlmICh0aGlzLnNoZWxsU2VydmljZS5pc1NpZGVDb250ZW50QWN0aXZlKCkpIHtcbiAgICAgICAgdGhpcy5zaGVsbFNlcnZpY2UuY2xvc2VTaWRlQ29udGVudCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgYWRqdXN0Q29sb3JzRm9yVGhlbWUodGhlbWU6IFRoZW1lU3BlYyk6IHZvaWQge1xuICAgIHRoaXMubWVudUNvbG9yID0gdGhlbWU/LmRhcmsgPyB1bmRlZmluZWQgOiAnYWNjZW50JztcbiAgICB0aGlzLm1lbnVJY29uQ29sb3IgPSB0aGVtZT8uZGFyayA/ICdwcmltYXJ5JyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNDb250YWluZWQoY2hpbGQ6IEhUTUxFbGVtZW50LCBpZDogc3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgICBpZiAoY2hpbGQuaWQgPT09IGlkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgbWF4RGVwdGggPSAxO1xuICAgIGxldCBkZXB0aCA9IDA7XG4gICAgbGV0IG5vZGUgPSBjaGlsZC5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50O1xuICAgIHdoaWxlIChub2RlKSB7XG4gICAgICBpZiAobm9kZS5pZCA9PT0gaWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBub2RlID0gbm9kZS5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKG1heERlcHRoID49ICsrZGVwdGgpIHsgYnJlYWs7IH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1Nvb24oKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0sIDUpO1xuICB9XG59XG4iLCI8bWF0LXNpZGVuYXYtY29udGFpbmVyXG4gIGVsZGVyVGhlbWVBcHBsaWVyXG4gIGNsYXNzPVwiZnVsbC13aWR0aFwiXG4gIChiYWNrZHJvcENsaWNrKT1cIm9uQmFja2Ryb3BDbGljaygkZXZlbnQpXCJcbj5cblxuICA8IS0tIExlZnQgU2lkZSBOYXYgLS0+XG4gIDxtYXQtc2lkZW5hdiBwb3NpdGlvbj1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgIG1vZGU9XCJvdmVyXCJcbiAgICAgICAgICAgICAgIFtmaXhlZEluVmlld3BvcnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICBbYXV0b0ZvY3VzXT1cImxlZnRTaWRlQXV0b0ZvY3VzXCJcbiAgICAgICAgICAgICAgIFtvcGVuZWRdPVwibGVmdFNpZGVDb250ZW50T3BlbiQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAoY2xvc2VkKT1cImNsb3NlTGVmdFNpZGVDb250ZW50KClcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmdWxsIGVsZGVyLXNpZGUtbmF2XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2lkZUNvbnRlbnRMZWZ0IHx8IGZhbGxiYWNrU2lkZUNvbnRlbnRMZWZ0O1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L21hdC1zaWRlbmF2PlxuXG4gIDwhLS0gTWFpbiBDb250ZW50IC0tPlxuICA8bWF0LXNpZGVuYXYtY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmdWxsXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2VudGVyQ29udGVudCB8fCBmYWxsYmFja0NlbnRlckNvbnRlbnQ7XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbWF0LXNpZGVuYXYtY29udGVudD5cblxuICA8IS0tIFJpZ2h0IFNpZGUgRGV0YWlsIC0tPlxuICA8bWF0LXNpZGVuYXYgbW9kZT1cIm92ZXJcIiAjcmlnaHRTaWRlRGV0YWlsIGlkPVwiZWxkZXItcmlnaHQtc2lkZS1kZXRhaWxcIlxuICAgICAgICAgICAgICAgcG9zaXRpb249XCJlbmRcIlxuICAgICAgICAgICAgICAgW2ZpeGVkSW5WaWV3cG9ydF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgIFthdXRvRm9jdXNdPVwicmlnaHRTaWRlQXV0b0ZvY3VzXCJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlQ2xvc2VdPVwidHJ1ZVwiIChrZXlkb3duLmVzY2FwZSk9XCJvbkVzY2FwZVJpZ2h0U2lkZSgkZXZlbnQpXCI+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNpZGVDb250ZW50UmlnaHQgfHwgZmFsbGJhY2tTaWRlQ29udGVudFJpZ2h0O1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L21hdC1zaWRlbmF2PlxuXG48L21hdC1zaWRlbmF2LWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNmYWxsYmFja1NpZGVDb250ZW50TGVmdD5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZmxleFwiPlxuICAgIDxwIGNsYXNzPVwibm9zZWxlY3RcIj5ObyBMZWZ0IFNpZGUgQ29udGVudCBEZWZpbmVkITwvcD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZhbGxiYWNrU2lkZUNvbnRlbnRSaWdodD5cbiAgPHJvdXRlci1vdXRsZXQgbmFtZT1cInNpZGVcIiBjbGFzcz1cInJvdXRlci1mbGV4XCI+PC9yb3V0ZXItb3V0bGV0PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmYWxsYmFja0NlbnRlckNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGxcIj5cblxuICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCIoaGVhZGVyVGVtcGxhdGUkIHwgYXN5bmMpIHx8IGRlZmF1bHRIZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBDZW50ZXIgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIihjZW50ZXJUZW1wbGF0ZSQgfCBhc3luYykgfHwgZGVmYXVsdENlbnRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIEZvb3RlciAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiKGZvb3RlclRlbXBsYXRlJCB8IGFzeW5jKSB8fCBkZWZhdWx0Rm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SGVhZGVyVGVtcGxhdGU+XG4gIDxlbGRlci10b29sYmFyIFtjb2xvcl09XCJjb2xvclwiIGNsYXNzPVwiZmxleC1ub25lXCIgc3R5bGU9XCJtYXgtd2lkdGg6IDEwMCU7IG1pbi13aWR0aDogMTAwJVwiID5cbiAgICA8IS0tIFRvb2xiYXIgUHJlZml4OiBTaWRlbmF2IFRvZ2dsZSAtLT5cbiAgICA8bWF0LXRvb2xiYXIgKm5nSWY9XCJzaWRlTmF2VG9nZ2xlRW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgIFtjb2xvcl09XCJtZW51Q29sb3IkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtbm9uZVwiIHN0eWxlPVwid2lkdGg6IGF1dG9cIlxuICAgID5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtjb2xvcl09XCJtZW51SWNvbkNvbG9yJCB8IGFzeW5jXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJ0b2dnbGVTaWRlTmF2KClcIj5cbiAgICAgICAgPG1hdC1pY29uPm1lbnU8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9tYXQtdG9vbGJhcj5cbiAgPC9lbGRlci10b29sYmFyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2VudGVyVGVtcGxhdGU+XG4gIDwhLS0gUHJpbWFyeSBSb3V0ZXIgT3V0bGV0IC0tPlxuICA8cm91dGVyLW91dGxldCBjbGFzcz1cInJvdXRlci1mbGV4XCI+PC9yb3V0ZXItb3V0bGV0PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Rm9vdGVyVGVtcGxhdGU+XG4gIDwhLS0gRGVmYXVsdCBGb290ZXIgaXMgZW1wdHkgLS0+XG48L25nLXRlbXBsYXRlPlxuIl19
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2hlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zaGVsbC9zaGVsbC9lbGRlci1zaGVsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoZWxsL3NoZWxsL2VsZGVyLXNoZWxsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1QsS0FBSyxFQUdMLFdBQVcsRUFDWCxTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUE7QUFFdEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRTlGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBSy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFBO0FBQ2hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ25FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFBOzs7Ozs7QUFNdEYsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxZQUNTLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFDckMsQ0FBQzs4R0FKTywyQkFBMkI7a0dBQTNCLDJCQUEyQjs7MkZBQTNCLDJCQUEyQjtrQkFKdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7O0FBWUQsTUFBTSxPQUFPLDRCQUE0QjtJQUN2QyxZQUNTLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFDckMsQ0FBQzs4R0FKTyw0QkFBNEI7a0dBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFKeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7O0FBWUQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUNTLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7SUFDckMsQ0FBQzs4R0FKTyx5QkFBeUI7a0dBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7O0FBNkJELE1BQU0sT0FBTyxtQkFBbUI7SUErQzlCOzs7O2dGQUk0RTtJQUU1RSxZQUNVLFlBQStCLEVBQy9CLG1CQUFrRCxFQUNsRCxpQkFBb0MsRUFDcEMsWUFBK0IsRUFDL0IscUJBQTRDO1FBSjVDLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQUMvQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQStCO1FBQ2xELHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBQy9CLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUF6RHREOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1FBRXhFLHdFQUF3RTtRQUVqRSx5QkFBb0IsR0FBRyxJQUFJLENBQUE7UUFHM0Isc0JBQWlCLEdBQUcsS0FBSyxDQUFBO1FBR3pCLHVCQUFrQixHQUFHLEtBQUssQ0FBQTtRQWMxQix3QkFBbUIsR0FBRyxNQUFNLENBQUE7UUFRbEIsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUE7UUFHeEMsVUFBSyxHQUFpQixTQUFTLENBQUE7UUFFdEIsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFlLFFBQVEsQ0FBQyxDQUFBO1FBQ3hELG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQWUsU0FBUyxDQUFDLENBQUE7UUFlM0UsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZO2FBQ2hDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQzthQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZO2FBQ2hDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQzthQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZO2FBQ2hDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQzthQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFFcEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHlCQUF5QixFQUFFLENBQUE7SUFDeEQsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxRQUFRO1FBQ2IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7UUFFN0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHNCQUFzQjthQUM1QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFBO1FBRS9ELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLG9CQUFvQixDQUFBO1FBRWxFLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWTthQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQzNELENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUMxQixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQ1csU0FBUyxDQUFDLENBQWU7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVELElBQ1csYUFBYSxDQUFDLENBQWU7UUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDN0IsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDdkMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxvQkFBb0I7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUNsQyxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQ25DLENBQUM7SUFFTSxlQUFlLENBQUMsS0FBVTtRQUMvQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQVk7UUFDbkMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUE7UUFDMUMsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUseUJBQXlCLENBQUMsRUFBRSxDQUFDO1lBQ2xFLCtEQUErRDtZQUMvRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUE7WUFDdEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXBFLG9CQUFvQixDQUFDLEtBQWdCO1FBQzNDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUE7UUFDbkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtJQUMxRCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQWtCLEVBQUUsRUFBVTtRQUNoRCxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDcEIsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFBO1FBQ2xCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQTtRQUNiLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxVQUF5QixDQUFBO1FBQzFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sSUFBSSxDQUFBO1lBQ2IsQ0FBQztZQUNELElBQUksR0FBRyxJQUFJLENBQUMsVUFBeUIsQ0FBQTtZQUNyQyxJQUFJLFFBQVEsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUN4QixNQUFLO1lBQ1AsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFTyxTQUFTO1FBQ2YsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUN2QyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDUCxDQUFDOzhHQTFMVSxtQkFBbUI7a0dBQW5CLG1CQUFtQix3VUFtQmhCLDJCQUEyQiwyQkFBVSxXQUFXLDhFQUdoRCw0QkFBNEIsMkJBQVUsV0FBVywyRUFHakQseUJBQXlCLDJCQUFVLFdBQVcsNktDOUc5RCxzNEZBcUdBLCtORDlCSSxtQkFBbUIscUdBQ25CLDBCQUEwQixnRUFDMUIsVUFBVSxnSkFDVixnQkFBZ0Isb0pBQ2hCLGlCQUFpQixnRUFDakIsWUFBWSwySkFDWixxQkFBcUIsNkVBQ3JCLElBQUksNkZBQ0osVUFBVSxxR0FDVixhQUFhLDZGQUNiLE9BQU8sc0lBQ1AsU0FBUzs7MkZBR0EsbUJBQW1CO2tCQXJCL0IsU0FBUzsrQkFDRSxhQUFhLG1CQUdOLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLG1CQUFtQjt3QkFDbkIsMEJBQTBCO3dCQUMxQixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsSUFBSTt3QkFDSixVQUFVO3dCQUNWLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxTQUFTO3FCQUNWO3NPQWFNLG9CQUFvQjtzQkFEMUIsS0FBSztnQkFJQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXZFLGdCQUFnQjtzQkFEdEIsWUFBWTt1QkFBQyw0QkFBNEIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJeEUsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJckUsZUFBZTtzQkFEckIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBY3ZDLEtBQUs7c0JBRFgsS0FBSztnQkFnRUssU0FBUztzQkFEbkIsS0FBSztnQkFVSyxhQUFhO3NCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBFbGRlclNoZWxsU2VydmljZSB9IGZyb20gJy4uL2VsZGVyLXNoZWxsLnNlcnZpY2UnXG5pbXBvcnQgeyBNYXRTaWRlbmF2LCBNYXRTaWRlbmF2Q29udGFpbmVyLCBNYXRTaWRlbmF2Q29udGVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnXG5pbXBvcnQgeyBFbGRlclJvdXRlT3V0bGV0RHJhd2VyU2VydmljZSB9IGZyb20gJy4uL2RyYXdlcnMvZWxkZXItcm91dGUtb3V0bGV0LWRyYXdlci5zZXJ2aWNlJ1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJ1xuaW1wb3J0IHsgRWxkZXJUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi90aGVtZS9lbGRlci10aGVtZS5zZXJ2aWNlJ1xuaW1wb3J0IHsgVGhlbWVTcGVjIH0gZnJvbSAnLi4vLi4vdGhlbWUvdGhlbWUtc3BlYydcbmltcG9ydCB7IEdsb2JhbERyYWdEcm9wU2VydmljZSB9IGZyb20gJy4uLy4uL2ZpbGVzL2RyYWctbi1kcm9wL2dsb2JhbC1kcmFnLWRyb3Auc2VydmljZSdcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgTWF0SWNvbkJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbidcbmltcG9ydCB7IE1hdFRvb2xiYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sYmFyJ1xuaW1wb3J0IHsgRWxkZXJUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbmF2aWdhdGlvbi90b29sYmFyL3Rvb2xiYXIvZWxkZXItdG9vbGJhci5jb21wb25lbnQnXG5pbXBvcnQgeyBSb3V0ZXJPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0lmLCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBFbGRlclRoZW1lQXBwbGllckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3RoZW1lL2VsZGVyLXRoZW1lLWFwcGxpZXIuZGlyZWN0aXZlJ1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZWxkZXJTaGVsbFNpZGVMZWZ0XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2hlbGxTaWRlTGVmdERpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tlbGRlclNoZWxsU2lkZVJpZ2h0XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2hlbGxTaWRlUmlnaHREaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHVibGljIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZWxkZXJTaGVsbENlbnRlcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclNoZWxsQ2VudGVyRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItc2hlbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItc2hlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1zaGVsbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdFNpZGVuYXZDb250YWluZXIsXG4gICAgRWxkZXJUaGVtZUFwcGxpZXJEaXJlY3RpdmUsXG4gICAgTWF0U2lkZW5hdixcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIE1hdFNpZGVuYXZDb250ZW50LFxuICAgIFJvdXRlck91dGxldCxcbiAgICBFbGRlclRvb2xiYXJDb21wb25lbnQsXG4gICAgTmdJZixcbiAgICBNYXRUb29sYmFyLFxuICAgIE1hdEljb25CdXR0b24sXG4gICAgTWF0SWNvbixcbiAgICBBc3luY1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2hlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIoJ0VsZGVyU2hlbGxDb21wb25lbnQnKVxuXG4gIC8qKiBDb250cm9scyBpZiB0aGUgU2lkZU5hdiB0b2dnbGUgc2hvdWxkIGJlIGRpc3BsYXllZC4gRGVmYXVsdDogdHJ1ZSAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2lkZU5hdlRvZ2dsZUVuYWJsZWQgPSB0cnVlXG5cbiAgQElucHV0KClcbiAgcHVibGljIGxlZnRTaWRlQXV0b0ZvY3VzID0gZmFsc2VcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmlnaHRTaWRlQXV0b0ZvY3VzID0gZmFsc2VcblxuICBAQ29udGVudENoaWxkKEVsZGVyU2hlbGxTaWRlTGVmdERpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBzaWRlQ29udGVudExlZnQ6IFRlbXBsYXRlUmVmPGFueT5cblxuICBAQ29udGVudENoaWxkKEVsZGVyU2hlbGxTaWRlUmlnaHREaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgc2lkZUNvbnRlbnRSaWdodDogVGVtcGxhdGVSZWY8YW55PlxuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTaGVsbENlbnRlckRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBjZW50ZXJDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+XG5cbiAgQFZpZXdDaGlsZCgncmlnaHRTaWRlRGV0YWlsJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHJpZ2h0U2lkZURyYXdlcjogTWF0U2lkZW5hdlxuXG4gIHB1YmxpYyByaWdodFNpZGVPdXRsZXROYW1lID0gJ3NpZGUnXG5cbiAgcHVibGljIGxlZnRTaWRlQ29udGVudE9wZW4kOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG5cbiAgcHVibGljIHJlYWRvbmx5IGhlYWRlclRlbXBsYXRlJDogT2JzZXJ2YWJsZTxUZW1wbGF0ZVJlZjxhbnk+PlxuICBwdWJsaWMgcmVhZG9ubHkgY2VudGVyVGVtcGxhdGUkOiBPYnNlcnZhYmxlPFRlbXBsYXRlUmVmPGFueT4+XG4gIHB1YmxpYyByZWFkb25seSBmb290ZXJUZW1wbGF0ZSQ6IE9ic2VydmFibGU8VGVtcGxhdGVSZWY8YW55Pj5cblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb2xvcjogVGhlbWVQYWxldHRlID0gJ3ByaW1hcnknXG5cbiAgcHVibGljIHJlYWRvbmx5IG1lbnVDb2xvciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZW1lUGFsZXR0ZT4oJ2FjY2VudCcpXG4gIHB1YmxpYyByZWFkb25seSBtZW51SWNvbkNvbG9yJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGhlbWVQYWxldHRlPih1bmRlZmluZWQpXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzaGVsbFNlcnZpY2U6IEVsZGVyU2hlbGxTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3V0bGV0RHJhd2VyU2VydmljZTogRWxkZXJSb3V0ZU91dGxldERyYXdlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0aGVtZVNlcnZpY2U6IEVsZGVyVGhlbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2xvYmFsRHJhZ0Ryb3BTZXJ2aWNlOiBHbG9iYWxEcmFnRHJvcFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSQgPSBzaGVsbFNlcnZpY2VcbiAgICAgIC5hY3RpdmVTbG90VGVtcGxhdGUoJ2hlYWRlcicpXG4gICAgICAucGlwZSh0YXAoKCkgPT4gdGhpcy5jaGVja1Nvb24oKSkpXG4gICAgdGhpcy5jZW50ZXJUZW1wbGF0ZSQgPSBzaGVsbFNlcnZpY2VcbiAgICAgIC5hY3RpdmVTbG90VGVtcGxhdGUoJ2NlbnRlcicpXG4gICAgICAucGlwZSh0YXAoKCkgPT4gdGhpcy5jaGVja1Nvb24oKSkpXG4gICAgdGhpcy5mb290ZXJUZW1wbGF0ZSQgPSBzaGVsbFNlcnZpY2VcbiAgICAgIC5hY3RpdmVTbG90VGVtcGxhdGUoJ2Zvb3RlcicpXG4gICAgICAucGlwZSh0YXAoKCkgPT4gdGhpcy5jaGVja1Nvb24oKSkpXG5cbiAgICB0aGlzLmdsb2JhbERyYWdEcm9wU2VydmljZS5wcmV2ZW50RGVmYXVsdEZpbGVMb2FkaW5nKClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm91dGxldERyYXdlclNlcnZpY2UucmVnaXN0ZXJPdXRsZXREcmF3ZXIodGhpcy5yaWdodFNpZGVPdXRsZXROYW1lLCB0aGlzLnJpZ2h0U2lkZURyYXdlcilcblxuICAgIHRoaXMub3V0bGV0RHJhd2VyU2VydmljZS5kcmF3ZXJWaXNpYmlsaXR5Q2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChkcmF3ZXIpID0+IHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpXG5cbiAgICB0aGlzLmxlZnRTaWRlQ29udGVudE9wZW4kID0gdGhpcy5zaGVsbFNlcnZpY2UubmF2aWdhdGlvbk9wZW5DaGFuZ2VcblxuICAgIHRoaXMudGhlbWVTZXJ2aWNlLmFjdGl2ZVRoZW1lJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgodGhlbWUpID0+IHRoaXMuYWRqdXN0Q29sb3JzRm9yVGhlbWUodGhlbWUpKVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1lbnVDb2xvcihjOiBUaGVtZVBhbGV0dGUpIHtcbiAgICB0aGlzLm1lbnVDb2xvciQubmV4dChjKVxuICB9XG5cbiAgcHVibGljIGdldCBtZW51Q29sb3IoKTogVGhlbWVQYWxldHRlIHtcbiAgICByZXR1cm4gdGhpcy5tZW51Q29sb3IkLmdldFZhbHVlKClcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWVudUljb25Db2xvcihjOiBUaGVtZVBhbGV0dGUpIHtcbiAgICB0aGlzLm1lbnVJY29uQ29sb3IkLm5leHQoYylcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWVudUljb25Db2xvcigpOiBUaGVtZVBhbGV0dGUge1xuICAgIHJldHVybiB0aGlzLm1lbnVJY29uQ29sb3IkLmdldFZhbHVlKClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBjbG9zZUxlZnRTaWRlQ29udGVudCgpIHtcbiAgICB0aGlzLnNoZWxsU2VydmljZS5jbG9zZVNpZGVOYXYoKVxuICB9XG5cbiAgcHVibGljIHRvZ2dsZVNpZGVOYXYoKTogdm9pZCB7XG4gICAgdGhpcy5zaGVsbFNlcnZpY2UudG9nZ2xlU2lkZW5hdigpXG4gIH1cblxuICBwdWJsaWMgb25CYWNrZHJvcENsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaGVsbFNlcnZpY2UuaXNTaWRlQ29udGVudEFjdGl2ZSgpKSB7XG4gICAgICB0aGlzLnNoZWxsU2VydmljZS5jbG9zZVNpZGVDb250ZW50KClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Fc2NhcGVSaWdodFNpZGUoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50XG4gICAgaWYgKHRhcmdldCAmJiB0aGlzLmlzQ29udGFpbmVkKHRhcmdldCwgJ2VsZGVyLXJpZ2h0LXNpZGUtZGV0YWlsJykpIHtcbiAgICAgIC8vIEVuc3VyZSB3ZSBvbmx5IHJlYWN0IHRvIEVzYyBFdmVudHMgdGFyZ2V0ZWQgYXQgb3VyIHNpZGUgbmF2IVxuICAgICAgaWYgKHRoaXMuc2hlbGxTZXJ2aWNlLmlzU2lkZUNvbnRlbnRBY3RpdmUoKSkge1xuICAgICAgICB0aGlzLnNoZWxsU2VydmljZS5jbG9zZVNpZGVDb250ZW50KClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGFkanVzdENvbG9yc0ZvclRoZW1lKHRoZW1lOiBUaGVtZVNwZWMpOiB2b2lkIHtcbiAgICB0aGlzLm1lbnVDb2xvciA9IHRoZW1lPy5kYXJrID8gdW5kZWZpbmVkIDogJ2FjY2VudCdcbiAgICB0aGlzLm1lbnVJY29uQ29sb3IgPSB0aGVtZT8uZGFyayA/ICdwcmltYXJ5JyA6IHVuZGVmaW5lZFxuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbnRhaW5lZChjaGlsZDogSFRNTEVsZW1lbnQsIGlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoY2hpbGQuaWQgPT09IGlkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICBjb25zdCBtYXhEZXB0aCA9IDFcbiAgICBsZXQgZGVwdGggPSAwXG4gICAgbGV0IG5vZGUgPSBjaGlsZC5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50XG4gICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLmlkID09PSBpZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZSBhcyBIVE1MRWxlbWVudFxuICAgICAgaWYgKG1heERlcHRoID49ICsrZGVwdGgpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBwcml2YXRlIGNoZWNrU29vbigpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICB9LCA1KVxuICB9XG59XG4iLCI8bWF0LXNpZGVuYXYtY29udGFpbmVyXG4gIGVsZGVyVGhlbWVBcHBsaWVyXG4gIGNsYXNzPVwiZnVsbC13aWR0aFwiXG4gIChiYWNrZHJvcENsaWNrKT1cIm9uQmFja2Ryb3BDbGljaygkZXZlbnQpXCJcbj5cbiAgPCEtLSBMZWZ0IFNpZGUgTmF2IC0tPlxuICA8bWF0LXNpZGVuYXZcbiAgICBwb3NpdGlvbj1cInN0YXJ0XCJcbiAgICBtb2RlPVwib3ZlclwiXG4gICAgW2ZpeGVkSW5WaWV3cG9ydF09XCJ0cnVlXCJcbiAgICBbYXV0b0ZvY3VzXT1cImxlZnRTaWRlQXV0b0ZvY3VzXCJcbiAgICBbb3BlbmVkXT1cImxlZnRTaWRlQ29udGVudE9wZW4kIHwgYXN5bmNcIlxuICAgIChjbG9zZWQpPVwiY2xvc2VMZWZ0U2lkZUNvbnRlbnQoKVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmdWxsIGVsZGVyLXNpZGUtbmF2XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2lkZUNvbnRlbnRMZWZ0IHx8IGZhbGxiYWNrU2lkZUNvbnRlbnRMZWZ0XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvbWF0LXNpZGVuYXY+XG5cbiAgPCEtLSBNYWluIENvbnRlbnQgLS0+XG4gIDxtYXQtc2lkZW5hdi1jb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGxcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjZW50ZXJDb250ZW50IHx8IGZhbGxiYWNrQ2VudGVyQ29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L21hdC1zaWRlbmF2LWNvbnRlbnQ+XG5cbiAgPCEtLSBSaWdodCBTaWRlIERldGFpbCAtLT5cbiAgPG1hdC1zaWRlbmF2XG4gICAgbW9kZT1cIm92ZXJcIlxuICAgICNyaWdodFNpZGVEZXRhaWxcbiAgICBpZD1cImVsZGVyLXJpZ2h0LXNpZGUtZGV0YWlsXCJcbiAgICBwb3NpdGlvbj1cImVuZFwiXG4gICAgW2ZpeGVkSW5WaWV3cG9ydF09XCJ0cnVlXCJcbiAgICBbYXV0b0ZvY3VzXT1cInJpZ2h0U2lkZUF1dG9Gb2N1c1wiXG4gICAgW2Rpc2FibGVDbG9zZV09XCJ0cnVlXCJcbiAgICAoa2V5ZG93bi5lc2NhcGUpPVwib25Fc2NhcGVSaWdodFNpZGUoJGV2ZW50KVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmdWxsXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2lkZUNvbnRlbnRSaWdodCB8fCBmYWxsYmFja1NpZGVDb250ZW50UmlnaHRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtc2lkZW5hdj5cbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2ZhbGxiYWNrU2lkZUNvbnRlbnRMZWZ0PlxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmbGV4XCI+XG4gICAgPHAgY2xhc3M9XCJub3NlbGVjdFwiPk5vIExlZnQgU2lkZSBDb250ZW50IERlZmluZWQhPC9wPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZmFsbGJhY2tTaWRlQ29udGVudFJpZ2h0PlxuICA8cm91dGVyLW91dGxldCBuYW1lPVwic2lkZVwiIGNsYXNzPVwicm91dGVyLWZsZXhcIj48L3JvdXRlci1vdXRsZXQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZhbGxiYWNrQ2VudGVyQ29udGVudD5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbFwiPlxuICAgIDwhLS0gSGVhZGVyIC0tPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiKGhlYWRlclRlbXBsYXRlJCB8IGFzeW5jKSB8fCBkZWZhdWx0SGVhZGVyVGVtcGxhdGVcIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gQ2VudGVyIC0tPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiKGNlbnRlclRlbXBsYXRlJCB8IGFzeW5jKSB8fCBkZWZhdWx0Q2VudGVyVGVtcGxhdGVcIlxuICAgID48L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gRm9vdGVyIC0tPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiKGZvb3RlclRlbXBsYXRlJCB8IGFzeW5jKSB8fCBkZWZhdWx0Rm9vdGVyVGVtcGxhdGVcIlxuICAgID48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRIZWFkZXJUZW1wbGF0ZT5cbiAgPGVsZGVyLXRvb2xiYXIgW2NvbG9yXT1cImNvbG9yXCIgY2xhc3M9XCJmbGV4LW5vbmVcIiBzdHlsZT1cIm1heC13aWR0aDogMTAwJTsgbWluLXdpZHRoOiAxMDAlXCI+XG4gICAgPCEtLSBUb29sYmFyIFByZWZpeDogU2lkZW5hdiBUb2dnbGUgLS0+XG4gICAgPG1hdC10b29sYmFyXG4gICAgICAqbmdJZj1cInNpZGVOYXZUb2dnbGVFbmFibGVkXCJcbiAgICAgIFtjb2xvcl09XCJtZW51Q29sb3IkIHwgYXN5bmNcIlxuICAgICAgY2xhc3M9XCJmbGV4LW5vbmVcIlxuICAgICAgc3R5bGU9XCJ3aWR0aDogYXV0b1wiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgW2NvbG9yXT1cIm1lbnVJY29uQ29sb3IkIHwgYXN5bmNcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNpZGVOYXYoKVwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbj5tZW51PC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbWF0LXRvb2xiYXI+XG4gIDwvZWxkZXItdG9vbGJhcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENlbnRlclRlbXBsYXRlPlxuICA8IS0tIFByaW1hcnkgUm91dGVyIE91dGxldCAtLT5cbiAgPHJvdXRlci1vdXRsZXQgY2xhc3M9XCJyb3V0ZXItZmxleFwiPjwvcm91dGVyLW91dGxldD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEZvb3RlclRlbXBsYXRlPlxuICA8IS0tIERlZmF1bHQgRm9vdGVyIGlzIGVtcHR5IC0tPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtY29udGVudC1zbG90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zaGVsbC9zaGVsbC1jb250ZW50LXNsb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVmaW5lcyBhIGNvbnRlbnQgc2xvdCBpbiB0aGUgc2hlbGwgbGF5b3V0LlxuICovXG5leHBvcnQgdHlwZSBTaGVsbENvbnRlbnRTbG90ID1cbiAgJ2hlYWRlcicgfFxuICAnY2VudGVyJyB8XG4gICdmb290ZXInO1xuXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwtY29udGVudC1zbG90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zaGVsbC9zaGVsbC1jb250ZW50LXNsb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVmaW5lcyBhIGNvbnRlbnQgc2xvdCBpbiB0aGUgc2hlbGwgbGF5b3V0LlxuICovXG5leHBvcnQgdHlwZSBTaGVsbENvbnRlbnRTbG90ID0gJ2hlYWRlcicgfCAnY2VudGVyJyB8ICdmb290ZXInXG4iXX0=
@@ -90,10 +90,10 @@ export class ElderShellNavigationToggleComponent {
90
90
  this.router.navigate([rootUrl]);
91
91
  }
92
92
  isRootRoute(url) {
93
- return !!this.roots.find(r => r === url);
93
+ return !!this.roots.find((r) => r === url);
94
94
  }
95
95
  isPartOfHiddenRoute(url) {
96
- return !!this.hide.find(r => url.indexOf(r) >= 0);
96
+ return !!this.hide.find((r) => url.indexOf(r) >= 0);
97
97
  }
98
98
  /**
99
99
  * Find the parent root url of a given url:
@@ -124,14 +124,14 @@ export class ElderShellNavigationToggleComponent {
124
124
  return parts.join('/');
125
125
  }
126
126
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderShellNavigationToggleComponent, deps: [{ token: i1.Router }, { token: i2.ElderShellService }], target: i0.ɵɵFactoryTarget.Component }); }
127
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ElderShellNavigationToggleComponent, isStandalone: true, selector: "elder-shell-nav-toggle", inputs: { roots: "roots", hide: "hide" }, ngImport: i0, template: "\n<button mat-icon-button type=\"button\" (click)=\"onClick()\" *ngIf=\"showComponent()\">\n <mat-icon>{{icon | async}}</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
127
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ElderShellNavigationToggleComponent, isStandalone: true, selector: "elder-shell-nav-toggle", inputs: { roots: "roots", hide: "hide" }, ngImport: i0, template: "<button mat-icon-button type=\"button\" (click)=\"onClick()\" *ngIf=\"showComponent()\">\n <mat-icon>{{ icon | async }}</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
128
128
  }
129
129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderShellNavigationToggleComponent, decorators: [{
130
130
  type: Component,
131
- args: [{ selector: 'elder-shell-nav-toggle', standalone: true, imports: [NgIf, MatIconButton, MatIcon, AsyncPipe], template: "\n<button mat-icon-button type=\"button\" (click)=\"onClick()\" *ngIf=\"showComponent()\">\n <mat-icon>{{icon | async}}</mat-icon>\n</button>\n" }]
131
+ args: [{ selector: 'elder-shell-nav-toggle', standalone: true, imports: [NgIf, MatIconButton, MatIcon, AsyncPipe], template: "<button mat-icon-button type=\"button\" (click)=\"onClick()\" *ngIf=\"showComponent()\">\n <mat-icon>{{ icon | async }}</mat-icon>\n</button>\n" }]
132
132
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.ElderShellService }], propDecorators: { roots: [{
133
133
  type: Input
134
134
  }], hide: [{
135
135
  type: Input
136
136
  }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2hlbGwtbmF2aWdhdGlvbi10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zaGVsbC9zaGVsbC1uYXZpZ2F0aW9uLXRvZ2dsZS9lbGRlci1zaGVsbC1uYXZpZ2F0aW9uLXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoZWxsL3NoZWxsLW5hdmlnYXRpb24tdG9nZ2xlL2VsZGVyLXNoZWxsLW5hdmlnYXRpb24tdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUMsYUFBYSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFFdEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxlQUFlLEVBQTJCLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFDLElBQUksRUFBRSxTQUFTLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVNoRCxNQUFNLE9BQU8sbUNBQW1DO0lBb0I1Qzs7OztnRkFJNEU7SUFFNUUsWUFDWSxNQUFjLEVBQ2Qsa0JBQXFDO1FBRHJDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBMUJqRDs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFHLGFBQWEs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RFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRW5kLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0VsZGVyU2hlbGxTZXJ2aWNlfSBmcm9tICcuLi9lbGRlci1zaGVsbC5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge01hdEljb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtNYXRJY29uQnV0dG9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtOZ0lmLCBBc3luY1BpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWxkZXItc2hlbGwtbmF2LXRvZ2dsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXNoZWxsLW5hdmlnYXRpb24tdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lbGRlci1zaGVsbC1uYXZpZ2F0aW9uLXRvZ2dsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIE1hdEljb25CdXR0b24sIE1hdEljb24sIEFzeW5jUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTaGVsbE5hdmlnYXRpb25Ub2dnbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gICAgcHJpdmF0ZSBfaWNvbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignbWVudScpO1xuICAgIHByaXZhdGUgc3ViOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBfY3VycmVudFVybDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm9vdHM6IHN0cmluZ1tdID0gW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBoaWRlOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHNpZGVDb250ZW50U2VydmljZTogRWxkZXJTaGVsbFNlcnZpY2UsXG4gICAgKSB7IH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICAgICAgdGhpcy5zdWIgPSB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5hdkVuZCA9IGV2ZW50IGFzIE5hdmlnYXRpb25FbmQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudFVybCA9IG5hdkVuZC51cmw7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVJY29uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgcHVibGljIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNob3dOYXZpZ2F0ZUJhY2spIHtcbiAgICAgICAgICAgIHRoaXMuZ29CYWNrKHRoaXMuX2N1cnJlbnRVcmwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50b2dnbGVTaWRlQ29udGVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpY29uKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pY29uO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93Q29tcG9uZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5fY3VycmVudFVybCAmJiB0aGlzLmhpZGUgJiYgdGhpcy5oaWRlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5pc1BhcnRPZkhpZGRlblJvdXRlKHRoaXMuX2N1cnJlbnRVcmwpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBwcml2YXRlIHVwZGF0ZUljb24oKSB7XG4gICAgICAgIGNvbnN0IGljb24gPSB0aGlzLnNob3dOYXZpZ2F0ZUJhY2sgPyAnYXJyb3dfYmFjaycgOiAnbWVudSc7XG4gICAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKCd1cGRhdGluZyBpY29uIHRvICcgKyBpY29uKTtcbiAgICAgICAgdGhpcy5faWNvbi5uZXh0KGljb24pO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBnZXQgc2hvd05hdmlnYXRlQmFjaygpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRVcmwgJiYgdGhpcy5yb290cyAmJiB0aGlzLnJvb3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy5pc1Jvb3RSb3V0ZSh0aGlzLl9jdXJyZW50VXJsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIHRvZ2dsZVNpZGVDb250ZW50KCkge1xuICAgICAgICB0aGlzLnNpZGVDb250ZW50U2VydmljZS50b2dnbGVTaWRlbmF2KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnb0JhY2sodXJsOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgcm9vdFVybCA9IHRoaXMuZmluZFJvb3QodXJsKTtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3Jvb3RVcmxdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUm9vdFJvdXRlKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMucm9vdHMuZmluZChyID0+IHIgPT09IHVybCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1BhcnRPZkhpZGRlblJvdXRlKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaGlkZS5maW5kKHIgPT4gdXJsLmluZGV4T2YocikgPj0gMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZCB0aGUgcGFyZW50IHJvb3QgdXJsIG9mIGEgZ2l2ZW4gdXJsOlxuICAgICAqXG4gICAgICogL2FwcC9teS9zdWIvcm91dGVcbiAgICAgKlxuICAgICAqIHJvb3RzOiBbJy9hcHAvbXknLCAnL2FwcC9mb28nXVxuICAgICAqXG4gICAgICogLT4gL2FwcC9teVxuICAgICAqXG4gICAgICovXG4gICAgcHJpdmF0ZSBmaW5kUm9vdCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGlmICh1cmwgJiYgdXJsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUm9vdFJvdXRlKHVybCkpIHsgcmV0dXJuIHVybDsgfVxuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnQodXJsKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZpbmRSb290KHBhcmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJy8nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwYXJlbnQodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBwYXJ0cyA9IHVybC5zcGxpdCgnLycpO1xuICAgICAgICAvLyBSZW1vdmUgbGFzdCBwYXJ0XG4gICAgICAgIHBhcnRzLnNwbGljZShwYXJ0cy5sZW5ndGggLSAxLCAxKTtcbiAgICAgICAgcmV0dXJuIHBhcnRzLmpvaW4oJy8nKTtcbiAgICB9XG59XG4iLCJcbjxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25DbGljaygpXCIgKm5nSWY9XCJzaG93Q29tcG9uZW50KClcIj5cbiAgPG1hdC1pY29uPnt7aWNvbiB8IGFzeW5jfX08L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2hlbGwtbmF2aWdhdGlvbi10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zaGVsbC9zaGVsbC1uYXZpZ2F0aW9uLXRvZ2dsZS9lbGRlci1zaGVsbC1uYXZpZ2F0aW9uLXRvZ2dsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NoZWxsL3NoZWxsLW5hdmlnYXRpb24tdG9nZ2xlL2VsZGVyLXNoZWxsLW5hdmlnYXRpb24tdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQTtBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0saUJBQWlCLENBQUE7QUFFdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQTRCLE1BQU0sTUFBTSxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDeEQsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTs7OztBQVNqRCxNQUFNLE9BQU8sbUNBQW1DO0lBbUI5Qzs7OztnRkFJNEU7SUFFNUUsWUFDVSxNQUFjLEVBQ2Qsa0JBQXFDO1FBRHJDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBMUIvQzs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFHLGFBQWEs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QyxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBFbGRlclNoZWxsU2VydmljZSB9IGZyb20gJy4uL2VsZGVyLXNoZWxsLnNlcnZpY2UnXG5pbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdEljb25CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nXG5pbXBvcnQgeyBOZ0lmLCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLXNoZWxsLW5hdi10b2dnbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItc2hlbGwtbmF2aWdhdGlvbi10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1zaGVsbC1uYXZpZ2F0aW9uLXRvZ2dsZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgTWF0SWNvbkJ1dHRvbiwgTWF0SWNvbiwgQXN5bmNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTaGVsbE5hdmlnYXRpb25Ub2dnbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIHByaXZhdGUgX2ljb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJ21lbnUnKVxuICBwcml2YXRlIHN1YjogU3Vic2NyaXB0aW9uXG4gIHByaXZhdGUgX2N1cnJlbnRVcmw6IHN0cmluZ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByb290czogc3RyaW5nW10gPSBbXVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoaWRlOiBzdHJpbmdbXSA9IFtdXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHNpZGVDb250ZW50U2VydmljZTogRWxkZXJTaGVsbFNlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YiA9IHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgIGNvbnN0IG5hdkVuZCA9IGV2ZW50IGFzIE5hdmlnYXRpb25FbmRcbiAgICAgICAgdGhpcy5fY3VycmVudFVybCA9IG5hdkVuZC51cmxcbiAgICAgICAgdGhpcy51cGRhdGVJY29uKClcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBvbkNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3dOYXZpZ2F0ZUJhY2spIHtcbiAgICAgIHRoaXMuZ29CYWNrKHRoaXMuX2N1cnJlbnRVcmwpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9nZ2xlU2lkZUNvbnRlbnQoKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaWNvbigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9pY29uXG4gIH1cblxuICBwdWJsaWMgc2hvd0NvbXBvbmVudCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fY3VycmVudFVybCAmJiB0aGlzLmhpZGUgJiYgdGhpcy5oaWRlLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiAhdGhpcy5pc1BhcnRPZkhpZGRlblJvdXRlKHRoaXMuX2N1cnJlbnRVcmwpXG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHVwZGF0ZUljb24oKSB7XG4gICAgY29uc3QgaWNvbiA9IHRoaXMuc2hvd05hdmlnYXRlQmFjayA/ICdhcnJvd19iYWNrJyA6ICdtZW51J1xuICAgIHRoaXMubG9nZ2VyLnRyYWNlKCd1cGRhdGluZyBpY29uIHRvICcgKyBpY29uKVxuICAgIHRoaXMuX2ljb24ubmV4dChpY29uKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgc2hvd05hdmlnYXRlQmFjaygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fY3VycmVudFVybCAmJiB0aGlzLnJvb3RzICYmIHRoaXMucm9vdHMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuICF0aGlzLmlzUm9vdFJvdXRlKHRoaXMuX2N1cnJlbnRVcmwpXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVTaWRlQ29udGVudCgpIHtcbiAgICB0aGlzLnNpZGVDb250ZW50U2VydmljZS50b2dnbGVTaWRlbmF2KClcbiAgfVxuXG4gIHByaXZhdGUgZ29CYWNrKHVybDogc3RyaW5nKSB7XG4gICAgY29uc3Qgcm9vdFVybCA9IHRoaXMuZmluZFJvb3QodXJsKVxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtyb290VXJsXSlcbiAgfVxuXG4gIHByaXZhdGUgaXNSb290Um91dGUodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnJvb3RzLmZpbmQoKHIpID0+IHIgPT09IHVybClcbiAgfVxuXG4gIHByaXZhdGUgaXNQYXJ0T2ZIaWRkZW5Sb3V0ZSh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaGlkZS5maW5kKChyKSA9PiB1cmwuaW5kZXhPZihyKSA+PSAwKVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgdGhlIHBhcmVudCByb290IHVybCBvZiBhIGdpdmVuIHVybDpcbiAgICpcbiAgICogL2FwcC9teS9zdWIvcm91dGVcbiAgICpcbiAgICogcm9vdHM6IFsnL2FwcC9teScsICcvYXBwL2ZvbyddXG4gICAqXG4gICAqIC0+IC9hcHAvbXlcbiAgICpcbiAgICovXG4gIHByaXZhdGUgZmluZFJvb3QodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh1cmwgJiYgdXJsLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLmlzUm9vdFJvdXRlKHVybCkpIHtcbiAgICAgICAgcmV0dXJuIHVybFxuICAgICAgfVxuICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnQodXJsKVxuICAgICAgcmV0dXJuIHRoaXMuZmluZFJvb3QocGFyZW50KVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJy8nXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJlbnQodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcnRzID0gdXJsLnNwbGl0KCcvJylcbiAgICAvLyBSZW1vdmUgbGFzdCBwYXJ0XG4gICAgcGFydHMuc3BsaWNlKHBhcnRzLmxlbmd0aCAtIDEsIDEpXG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJy8nKVxuICB9XG59XG4iLCI8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ2xpY2soKVwiICpuZ0lmPVwic2hvd0NvbXBvbmVudCgpXCI+XG4gIDxtYXQtaWNvbj57eyBpY29uIHwgYXN5bmMgfX08L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
@@ -17,10 +17,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
17
17
  type: Directive,
18
18
  args: [{
19
19
  selector: '[elderTab]',
20
- standalone: true
20
+ standalone: true,
21
21
  }]
22
22
  }], ctorParameters: () => [{ type: i1.MatTab }], propDecorators: { id: [{
23
23
  type: Input,
24
24
  args: ['elderTab']
25
25
  }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGFicy9lbGRlci10YWIvZWxkZXItdGFiLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBTy9DLE1BQU0sT0FBTyxpQkFBaUI7SUFXNUI7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1MsR0FBVztRQUFYLFFBQUcsR0FBSCxHQUFHLENBQVE7SUFDaEIsQ0FBQzs4R0FuQk0saUJBQWlCO2tHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjsyRUFVUSxFQUFFO3NCQURSLEtBQUs7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01hdFRhYn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VsZGVyVGFiXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYkRpcmVjdGl2ZSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KCdlbGRlclRhYicpXG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0YWI6IE1hdFRhYlxuICApIHsgfVxuXG5cblxuXG59XG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGFicy9lbGRlci10YWIvZWxkZXItdGFiLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTs7O0FBT2hELE1BQU0sT0FBTyxpQkFBaUI7SUFVNUI7Ozs7Z0ZBSTRFO0lBRTVFLFlBQW1CLEdBQVc7UUFBWCxRQUFHLEdBQUgsR0FBRyxDQUFRO0lBQUcsQ0FBQzs4R0FoQnZCLGlCQUFpQjtrR0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7MkVBU1EsRUFBRTtzQkFEUixLQUFLO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdFRhYiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tlbGRlclRhYl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYkRpcmVjdGl2ZSB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgnZWxkZXJUYWInKVxuICBwdWJsaWMgaWQ6IHN0cmluZ1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0YWI6IE1hdFRhYikge31cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { ContentChildren, Directive, Input } from '@angular/core';
1
+ import { ContentChildren, Directive, Input, } from '@angular/core';
2
2
  import { takeUntil } from 'rxjs/operators';
3
3
  import { Subject } from 'rxjs';
4
4
  import { MatTab } from '@angular/material/tabs';
@@ -37,7 +37,7 @@ export class ElderTabGroupRoutingDirective {
37
37
  this._destroy$ = new Subject();
38
38
  this.tabGroup.selectedTabChange
39
39
  .pipe(takeUntil(this._destroy$))
40
- .subscribe(event => this.handleTabChangeEvent(event));
40
+ .subscribe((event) => this.handleTabChangeEvent(event));
41
41
  }
42
42
  /***************************************************************************
43
43
  * *
@@ -47,13 +47,11 @@ export class ElderTabGroupRoutingDirective {
47
47
  ngAfterViewInit() {
48
48
  this.fragmentParamsService.params$
49
49
  .pipe(takeUntil(this._destroy$))
50
- .subscribe(params => this.handleFragmentParamsChange(params));
51
- QueryListBinding
52
- .of(this.tabs)
50
+ .subscribe((params) => this.handleFragmentParamsChange(params));
51
+ QueryListBinding.of(this.tabs)
53
52
  .updated(() => this.retryLastFailedActivation())
54
53
  .bindUntil(this._destroy$);
55
- QueryListBinding
56
- .of(this.elderTabs)
54
+ QueryListBinding.of(this.elderTabs)
57
55
  .updated(() => this.retryLastFailedActivation())
58
56
  .bindUntil(this._destroy$);
59
57
  }
@@ -123,7 +121,9 @@ export class ElderTabGroupRoutingDirective {
123
121
  else {
124
122
  // If no elder tab found, clear active elder tab to ensure consistent state.
125
123
  this.activeElderTab = null;
126
- this._log.warn('Could not find tab with ID "' + tabId + '". Ensure elderTab directive is added to corresponding tab.');
124
+ this._log.warn('Could not find tab with ID "' +
125
+ tabId +
126
+ '". Ensure elderTab directive is added to corresponding tab.');
127
127
  return false;
128
128
  }
129
129
  }
@@ -169,7 +169,7 @@ export class ElderTabGroupRoutingDirective {
169
169
  return this.tabs.length > index;
170
170
  }
171
171
  findElderTabById(tabId) {
172
- return this.elderTabs.find(t => t.id === tabId);
172
+ return this.elderTabs.find((t) => t.id === tabId);
173
173
  }
174
174
  findElderTabByIndex(tabIndex) {
175
175
  const tab = this.findTabByIndex(tabIndex);
@@ -181,7 +181,7 @@ export class ElderTabGroupRoutingDirective {
181
181
  }
182
182
  }
183
183
  findElderTabByTab(tab) {
184
- return this.elderTabs.find(elderTab => elderTab.tab === tab);
184
+ return this.elderTabs.find((elderTab) => elderTab.tab === tab);
185
185
  }
186
186
  findTabByIndex(tabIndex) {
187
187
  if (this.tabs.length > tabIndex) {
@@ -242,7 +242,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
242
242
  args: [{
243
243
  selector: '[elderTabGroupRouting]',
244
244
  exportAs: 'elderTabGroupRouting',
245
- standalone: true
245
+ standalone: true,
246
246
  }]
247
247
  }], ctorParameters: () => [{ type: i1.ElderUrlFragmentParamsService }, { type: i2.MatTabGroup }], propDecorators: { tabGroupQueryParamKey: [{
248
248
  type: Input,
@@ -254,4 +254,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
254
254
  type: ContentChildren,
255
255
  args: [ElderTabDirective]
256
256
  }] } });
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFiLWdyb3VwLXJvdXRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90YWJzL2VsZGVyLXRhYi1ncm91cC1yb3V0aW5nL2VsZGVyLXRhYi1ncm91cC1yb3V0aW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLGVBQWUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUMsTUFBTSxFQUFpQyxNQUFNLHdCQUF3QixDQUFDO0FBQzlFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUduRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQUUxRTs7Ozs7O0dBTUc7QUFNSCxNQUFNLE9BQU8sNkJBQTZCO0lBRXhDOztPQUVHO2FBQ3FCLHFCQUFnQixHQUFHLE1BQU0sQUFBVCxDQUFVO0lBNENsRDs7OztnRkFJNEU7SUFFNUUsWUFDVSxxQkFBb0QsRUFDcEQsUUFBcUI7UUFEckIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUErQjtRQUNwRCxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBbEQvQjs7OztvRkFJNEU7UUFFM0QsU0FBSSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQTZDL0MsSUFB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LENBQUM7WUFDL0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNwRixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLEdBQUcsTUFBTSxHQUFHLG9DQUFvQyxDQUFDLENBQUM7UUFDdkcsQ0FBQztJQUNILENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxLQUFhO1FBQ3hDLE9BQU8sNkJBQTZCLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLENBQUM7OEdBelNVLDZCQUE2QjtrR0FBN0IsNkJBQTZCLDZMQWdDdkIsTUFBTSw0Q0FPTixpQkFBaUI7OzJGQXZDdkIsNkJBQTZCO2tCQUx6QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs0SEE0QlEscUJBQXFCO3NCQUQzQixLQUFLO3VCQUFDLHNCQUFzQjtnQkFPdEIsSUFBSTtzQkFEVixlQUFlO3VCQUFDLE1BQU07Z0JBUWhCLFNBQVM7c0JBRGYsZUFBZTt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbnRlbnRDaGlsZHJlbiwgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95LCBRdWVyeUxpc3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge01hdFRhYiwgTWF0VGFiQ2hhbmdlRXZlbnQsIE1hdFRhYkdyb3VwfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtFbGRlclRhYkRpcmVjdGl2ZX0gZnJvbSAnLi4vZWxkZXItdGFiL2VsZGVyLXRhYi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtFbGRlclVybEZyYWdtZW50UGFyYW1zU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3VybC9lbGRlci11cmwtZnJhZ21lbnQtcGFyYW1zLnNlcnZpY2UnO1xuaW1wb3J0IHtVcmxRdWVyeVBhcmFtc30gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3VybC91cmwtcXVlcnktcGFyYW1zJztcbmltcG9ydCB7UXVlcnlMaXN0QmluZGluZ30gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxzL3F1ZXJ5LWxpc3QtYmluZGluZyc7XG5cbi8qKlxuICogQWRkcyBvdXQtb2YtdGhlLWJveCB1cmwtZnJhZ21lbnQgYmFzZWQgdGFiIG5hdmlnYXRpb25cbiAqIHdpdGhpbiB0aGUgbWF0LXRhYi1ncm91cCBpdCBpcyBwbGFjZWQgdXBvbi5cbiAqXG4gKiBBZGQgZWxkZXJUYWIgZGlyZWN0aXZlIHRvIGVhY2ggdGFiIG9mIHRoZSBncm91cCB0b1xuICogc3VwcG9ydCBpZC1iYXNlZCB0YWIgbmF2aWdhdGlvbi5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZWxkZXJUYWJHcm91cFJvdXRpbmddJyxcbiAgICBleHBvcnRBczogJ2VsZGVyVGFiR3JvdXBSb3V0aW5nJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVGFiR3JvdXBSb3V0aW5nRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICAvKipcbiAgICogUHJlZml4IHVzZWQgdG8gaW5kaWNhdGUgYW5kIGluZGV4LWJhc2VkIHRhYiBtYXJrZXIuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBUQUJfSU5ERVhfUFJFRklYID0gJ2lkeDonO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKipcbiAgICogU3RvcmVzIHRoZSBsYXN0IHRhYiBtYXJrZXIgKGVpdGhlciBJRCBvciBpbmRleClcbiAgICogd2hpY2ggY291bGQgbm90IGJlIGFjdGl2YXRlZC4gVGhpcyBpcyB1c2VkIHRvIHJldHJ5XG4gICAqIGFjdGl2YXRpb24gb25jZSBjaGFuZ2VzIG9uIHRhYiBzdHJ1Y3R1cmUgb2NjdXIuXG4gICAqL1xuICBwcml2YXRlIGxhc3RGYWlsZWRUYWJNYXJrZXI6IHN0cmluZztcblxuICAvKipcbiAgICogU3RyaW5nIHRvIHVzZSBhcyBxdWVyeSBwYXJhbSBrZXkuXG4gICAqL1xuICBASW5wdXQoJ2VsZGVyVGFiR3JvdXBSb3V0aW5nJylcbiAgcHVibGljIHRhYkdyb3VwUXVlcnlQYXJhbUtleTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgdGFicyB3aXRoaW4gdGhpcyBuYXZpZ2F0aW9uIGNvbnRleHQuXG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKE1hdFRhYilcbiAgcHVibGljIHRhYnM6IFF1ZXJ5TGlzdDxNYXRUYWI+O1xuXG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgdGFicyB3aXRoaW4gdGhpcyBuYXZpZ2F0aW9uIGNvbnRleHRcbiAgICogbWFya2VkIHdpdGggdGhlIGVsZGVyVGFicyBkaXJlY3RpdmUuXG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKEVsZGVyVGFiRGlyZWN0aXZlKVxuICBwdWJsaWMgZWxkZXJUYWJzOiBRdWVyeUxpc3Q8RWxkZXJUYWJEaXJlY3RpdmU+O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFiIG1hcmtlZCB3aXRoIGVsZGVyVGFiIGRpcmVjdGl2ZSB3aGljaFxuICAgKiBpcyBjdXJyZW50bHkgYWN0aXZlLiBNYXkgYmUgbnVsbCBpZlxuICAgKiBlbGRlclRhYiBtYXJrZXJzIGFyZSBub3QgdXNlZC5cbiAgICovXG4gIHB1YmxpYyBhY3RpdmVFbGRlclRhYjogRWxkZXJUYWJEaXJlY3RpdmU7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmcmFnbWVudFBhcmFtc1NlcnZpY2U6IEVsZGVyVXJsRnJhZ21lbnRQYXJhbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGFiR3JvdXA6IE1hdFRhYkdyb3VwXG4gICkge1xuICAgIHRoaXMudGFiR3JvdXAuc2VsZWN0ZWRUYWJDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHRoaXMuaGFuZGxlVGFiQ2hhbmdlRXZlbnQoZXZlbnQpKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mcmFnbWVudFBhcmFtc1NlcnZpY2UucGFyYW1zJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUocGFyYW1zID0+IHRoaXMuaGFuZGxlRnJhZ21lbnRQYXJhbXNDaGFuZ2UocGFyYW1zKSk7XG5cbiAgICBRdWVyeUxpc3RCaW5kaW5nXG4gICAgICAub2YodGhpcy50YWJzKVxuICAgICAgLnVwZGF0ZWQoKCkgPT4gdGhpcy5yZXRyeUxhc3RGYWlsZWRBY3RpdmF0aW9uKCkpXG4gICAgICAuYmluZFVudGlsKHRoaXMuX2Rlc3Ryb3kkKTtcblxuICAgIFF1ZXJ5TGlzdEJpbmRpbmdcbiAgICAgIC5vZih0aGlzLmVsZGVyVGFicylcbiAgICAgIC51cGRhdGVkKCgpID0+IHRoaXMucmV0cnlMYXN0RmFpbGVkQWN0aXZhdGlvbigpKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLl9kZXN0cm95JCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVGcmFnbWVudFBhcmFtKCk7XG5cbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgYWN0aXZlVGFiSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVFbGRlclRhYj8uaWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGl2ZVRhYkluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudGFiR3JvdXAuc2VsZWN0ZWRJbmRleDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgaGFuZGxlRnJhZ21lbnRQYXJhbXNDaGFuZ2UocGFyYW1zOiBVcmxRdWVyeVBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IHRhYk1hcmtlciA9IHRoaXMuZ2V0VGFiTWFya2VyKHBhcmFtcyk7XG5cbiAgICBpZiAodGFiTWFya2VyKSB7XG4gICAgICB0aGlzLmFjdGl2YXRlVGFiQnlNYXJrZXIodGFiTWFya2VyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlVGFiQnlNYXJrZXIodGFiTWFya2VyOiBzdHJpbmcpOiB2b2lkIHtcblxuICAgIGxldCBzdWNjZXNzOiBib29sZWFuO1xuICAgIGlmICh0aGlzLmlzSW5kZXhNYXJrZXIodGFiTWFya2VyKSkge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnBhcnNlSW5kZXhNYXJrZXIodGFiTWFya2VyKTtcbiAgICAgIHN1Y2Nlc3MgPSB0aGlzLmFjdGl2YXRlVGFiQnlJbmRleChpbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGlmIG5vIGluZGV4IGlzIGdpdmVuIHdlIGFzc3VtZSB0aGUgbWFya2VyIGlzIHRoZSBpZCBvZiB0aGUgdGFiLlxuICAgICAgc3VjY2VzcyA9IHRoaXMuYWN0aXZhdGVUYWJCeUlkKHRhYk1hcmtlcik7XG4gICAgfVxuXG4gICAgLy8gcmVtZW1iZXIgdGFiIG1hcmtlciBpbiBjYXNlIG9mIGZhaWx1cmUgdG8gcmV0cnkgbGF0ZXIuXG4gICAgdGhpcy5sYXN0RmFpbGVkVGFiTWFya2VyID0gc3VjY2VzcyA/IG51bGwgOiB0YWJNYXJrZXI7XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlVGFiQnlJbmRleChpbmRleFRvQWN0aXZhdGU6IG51bWJlcik6IGJvb2xlYW4ge1xuXG4gICAgaWYgKGluZGV4VG9BY3RpdmF0ZSAhPT0gdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuICAgICAgdGhpcy5fbG9nLnRyYWNlKCdBY3RpdmF0aW5nIHRhYiBieSBpbmRleCAnLCBpbmRleFRvQWN0aXZhdGUpO1xuXG4gICAgICAvLyBGaXJzdCB0cnkgdG8gaWRlbnRpZnkgY29ycmVzcG9uZGluZyBlbGRlciB0YWIsIHNvIHRoYXQgd2UgbWF5IHdvcmsgd2l0aCBpdHMgSUQgaW5zdGVhZCBvZiBpbmRleC5cbiAgICAgIGNvbnN0IGVsZGVyVGFiID0gdGhpcy5maW5kRWxkZXJUYWJCeUluZGV4KGluZGV4VG9BY3RpdmF0ZSk7XG5cbiAgICAgIGlmIChlbGRlclRhYikge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmF0ZUVsZGVyVGFiKGVsZGVyVGFiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElmIG5vIGVsZGVyIHRhYiBmb3VuZCwgY2xlYXIgYWN0aXZlIGVsZGVyIHRhYiB0byBlbnN1cmUgY29uc2lzdGVudCBzdGF0ZS5cbiAgICAgICAgdGhpcy5hY3RpdmVFbGRlclRhYiA9IG51bGw7XG4gICAgICAgIHJldHVybiB0aGlzLnNldFNlbGVjdGVkSW5kZXgoaW5kZXhUb0FjdGl2YXRlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlVGFiQnlJZCh0YWJJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZWxkZXJUYWIgPSB0aGlzLmZpbmRFbGRlclRhYkJ5SWQodGFiSWQpO1xuXG4gICAgaWYgKGVsZGVyVGFiKSB7XG4gICAgICByZXR1cm4gdGhpcy5hY3RpdmF0ZUVsZGVyVGFiKGVsZGVyVGFiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgbm8gZWxkZXIgdGFiIGZvdW5kLCBjbGVhciBhY3RpdmUgZWxkZXIgdGFiIHRvIGVuc3VyZSBjb25zaXN0ZW50IHN0YXRlLlxuICAgICAgdGhpcy5hY3RpdmVFbGRlclRhYiA9IG51bGw7XG4gICAgICB0aGlzLl9sb2cud2FybignQ291bGQgbm90IGZpbmQgdGFiIHdpdGggSUQgXCInICsgdGFiSWQgKyAnXCIuIEVuc3VyZSBlbGRlclRhYiBkaXJlY3RpdmUgaXMgYWRkZWQgdG8gY29ycmVzcG9uZGluZyB0YWIuJyk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZUVsZGVyVGFiKGVsZGVyVGFiOiBFbGRlclRhYkRpcmVjdGl2ZSk6IGJvb2xlYW4ge1xuXG4gICAgaWYgKHRoaXMuYWN0aXZlRWxkZXJUYWIgIT09IGVsZGVyVGFiKSB7XG4gICAgICB0aGlzLmFjdGl2ZUVsZGVyVGFiID0gZWxkZXJUYWI7XG4gICAgICBjb25zdCBpbmRleFRvQWN0aXZhdGUgPSB0aGlzLmdldEluZGV4T2ZUYWIoZWxkZXJUYWIudGFiKTtcbiAgICAgIHJldHVybiB0aGlzLnNldFNlbGVjdGVkSW5kZXgoaW5kZXhUb0FjdGl2YXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVRhYkNoYW5nZUV2ZW50KHRhYkNoYW5nZUV2ZW50OiBNYXRUYWJDaGFuZ2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX2xvZy50cmFjZSgnSGFuZGxpbmcgdGFiQ2hhbmdlRXZlbnQ6ICcsIHRhYkNoYW5nZUV2ZW50KTtcbiAgICB0aGlzLmxhc3RGYWlsZWRUYWJNYXJrZXIgPSBudWxsO1xuICAgIHRoaXMuYWN0aXZlRWxkZXJUYWIgPSB0aGlzLmZpbmRFbGRlclRhYkJ5VGFiKHRhYkNoYW5nZUV2ZW50LnRhYik7XG4gICAgdGhpcy51cGRhdGVGcmFnbWVudFBhcmFtKCk7XG4gIH1cblxuICBwcml2YXRlIHJldHJ5TGFzdEZhaWxlZEFjdGl2YXRpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubGFzdEZhaWxlZFRhYk1hcmtlcikge1xuICAgICAgdGhpcy5fbG9nLnRyYWNlKCdSZXRyeWluZyB0byBhY3RpdmF0ZSB0YWIgYnkgbWFya2VyOicsIHRoaXMubGFzdEZhaWxlZFRhYk1hcmtlcik7XG4gICAgICB0aGlzLmFjdGl2YXRlVGFiQnlNYXJrZXIodGhpcy5sYXN0RmFpbGVkVGFiTWFya2VyKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFNlbGVjdGVkSW5kZXgoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmIChpbmRleCAhPT0gdGhpcy5hY3RpdmVUYWJJbmRleCkge1xuXG4gICAgICBpZiAodGhpcy5pc1ZhbGlkSW5kZXgoaW5kZXgpKSB7XG4gICAgICAgIHRoaXMuX2xvZy50cmFjZSgnQWN0aXZhdGluZyB0YWIgYnkgaW5kZXggJywgaW5kZXgpO1xuICAgICAgICB0aGlzLnRhYkdyb3VwLnNlbGVjdGVkSW5kZXggPSBpbmRleDtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9sb2cud2FybignQ291bGQgbm90IGZpbmQgdGFiIHdpdGggaW5kZXggXCInICsgaW5kZXggKyAnXCIuJyk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkSW5kZXgoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhYnMubGVuZ3RoID4gaW5kZXg7XG4gIH1cblxuICBwcml2YXRlIGZpbmRFbGRlclRhYkJ5SWQodGFiSWQ6IHN0cmluZyk6IEVsZGVyVGFiRGlyZWN0aXZlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZWxkZXJUYWJzLmZpbmQodCA9PiB0LmlkID09PSB0YWJJZCk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRFbGRlclRhYkJ5SW5kZXgodGFiSW5kZXg6IG51bWJlcik6IEVsZGVyVGFiRGlyZWN0aXZlIHwgbnVsbCB7XG4gICAgY29uc3QgdGFiID0gdGhpcy5maW5kVGFiQnlJbmRleCh0YWJJbmRleCk7XG4gICAgaWYgKHRhYikge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZEVsZGVyVGFiQnlUYWIodGFiKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaW5kRWxkZXJUYWJCeVRhYih0YWI6IE1hdFRhYik6IEVsZGVyVGFiRGlyZWN0aXZlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZWxkZXJUYWJzLmZpbmQoZWxkZXJUYWIgPT4gZWxkZXJUYWIudGFiID09PSB0YWIpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kVGFiQnlJbmRleCh0YWJJbmRleDogbnVtYmVyKTogTWF0VGFiIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMudGFicy5sZW5ndGggPiB0YWJJbmRleCkge1xuICAgICAgcmV0dXJuIHRoaXMudGFicy5nZXQodGFiSW5kZXgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEluZGV4T2ZUYWIodGFiOiBNYXRUYWIpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy50YWJzLnRvQXJyYXkoKS5pbmRleE9mKHRhYik7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUZyYWdtZW50UGFyYW0oKTogdm9pZCB7XG5cbiAgICBjb25zdCBjdXJyZW50VGFiTWFya2VyID0gdGhpcy5nZXRUYWJNYXJrZXIodGhpcy5mcmFnbWVudFBhcmFtc1NlcnZpY2UucGFyYW1zKTtcblxuICAgIC8vIElmIHBvc3NpYmxlLCB1c2UgdGFiIElEIGFzIG1hcmtlci4gSWYgbm90LCB1c2UgdGFiIGluZGV4IGFzIGZhbGxiYWNrLlxuICAgIGNvbnN0IG5ld1RhYk1hcmtlciA9IHRoaXMuYWN0aXZlVGFiSWRcbiAgICAgID8gdGhpcy5hY3RpdmVUYWJJZFxuICAgICAgOiB0aGlzLnNlcmlhbGl6ZUluZGV4TWFya2VyKHRoaXMuYWN0aXZlVGFiSW5kZXgpO1xuXG4gICAgaWYgKG5ld1RhYk1hcmtlciAhPT0gY3VycmVudFRhYk1hcmtlcikge1xuICAgICAgdGhpcy5zZXRGcmFnbWVudFBhcmFtKG5ld1RhYk1hcmtlcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRGcmFnbWVudFBhcmFtKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcblxuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZnJhZ21lbnRQYXJhbXNTZXJ2aWNlLnBhcmFtcztcbiAgICBwYXJhbXMuc2V0KHRoaXMudGFiR3JvdXBRdWVyeVBhcmFtS2V5LCB2YWx1ZSk7XG5cbiAgICB0aGlzLmZyYWdtZW50UGFyYW1zU2VydmljZS5zZXRQYXJhbXMocGFyYW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRnJhZ21lbnRQYXJhbSgpOiB2b2lkIHtcblxuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZnJhZ21lbnRQYXJhbXNTZXJ2aWNlLnBhcmFtcztcbiAgICBwYXJhbXMucmVtb3ZlKHRoaXMudGFiR3JvdXBRdWVyeVBhcmFtS2V5KTtcblxuICAgIHRoaXMuZnJhZ21lbnRQYXJhbXNTZXJ2aWNlLnNldFBhcmFtcyhwYXJhbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYWJNYXJrZXIocXVlcnlQYXJhbXM6IFVybFF1ZXJ5UGFyYW1zKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcXVlcnlQYXJhbXMuaGFzKHRoaXMudGFiR3JvdXBRdWVyeVBhcmFtS2V5KVxuICAgICAgPyBxdWVyeVBhcmFtcy5nZXQodGhpcy50YWJHcm91cFF1ZXJ5UGFyYW1LZXkpXG4gICAgICA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGlzSW5kZXhNYXJrZXIobWFya2VyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbWFya2VyICYmIG1hcmtlci5zdGFydHNXaXRoKEVsZGVyVGFiR3JvdXBSb3V0aW5nRGlyZWN0aXZlLlRBQl9JTkRFWF9QUkVGSVgpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUluZGV4TWFya2VyKG1hcmtlcjogc3RyaW5nKTogbnVtYmVyIHtcblxuICAgIGlmICh0aGlzLmlzSW5kZXhNYXJrZXIobWFya2VyKSkge1xuICAgICAgY29uc3QgaW5kZXhTdHIgPSBtYXJrZXIucmVwbGFjZShFbGRlclRhYkdyb3VwUm91dGluZ0RpcmVjdGl2ZS5UQUJfSU5ERVhfUFJFRklYLCAnJyk7XG4gICAgICByZXR1cm4gTnVtYmVyKGluZGV4U3RyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcGFyc2UgaW5kZXggZnJvbSBtYXJrZXIgIFwiJyArIG1hcmtlciArICdcIi4gQ2hlY2sgd2l0aCBpc0luZGV4TWFya2VyIGZpcnN0IScpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VyaWFsaXplSW5kZXhNYXJrZXIoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIEVsZGVyVGFiR3JvdXBSb3V0aW5nRGlyZWN0aXZlLlRBQl9JTkRFWF9QUkVGSVggKyBTdHJpbmcoaW5kZXgpO1xuICB9XG59XG4iXX0=
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFiLWdyb3VwLXJvdXRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy90YWJzL2VsZGVyLXRhYi1ncm91cC1yb3V0aW5nL2VsZGVyLXRhYi1ncm91cC1yb3V0aW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsZUFBZSxFQUNmLFNBQVMsRUFDVCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDOUIsT0FBTyxFQUFFLE1BQU0sRUFBa0MsTUFBTSx3QkFBd0IsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFHcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUE7Ozs7QUFFM0U7Ozs7OztHQU1HO0FBTUgsTUFBTSxPQUFPLDZCQUE2QjtJQUN4Qzs7T0FFRzthQUNxQixxQkFBZ0IsR0FBRyxNQUFNLEFBQVQsQ0FBUztJQTRDakQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1UscUJBQW9ELEVBQ3BELFFBQXFCO1FBRHJCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBK0I7UUFDcEQsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQWxEL0I7Ozs7b0ZBSTRFO1FBRTNELFNBQUksR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDckQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUE7UUE2QzlDLElBQUks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QWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQy9CLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUE7WUFDbkYsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDekIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUNiLG1DQUFtQyxHQUFHLE1BQU0sR0FBRyxvQ0FBb0MsQ0FDcEYsQ0FBQTtRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsS0FBYTtRQUN4QyxPQUFPLDZCQUE2QixDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUN2RSxDQUFDOzhHQWxTVSw2QkFBNkI7a0dBQTdCLDZCQUE2Qiw2TEErQnZCLE1BQU0sNENBT04saUJBQWlCOzsyRkF0Q3ZCLDZCQUE2QjtrQkFMekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7NEhBMkJRLHFCQUFxQjtzQkFEM0IsS0FBSzt1QkFBQyxzQkFBc0I7Z0JBT3RCLElBQUk7c0JBRFYsZUFBZTt1QkFBQyxNQUFNO2dCQVFoQixTQUFTO3NCQURmLGVBQWU7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBNYXRUYWIsIE1hdFRhYkNoYW5nZUV2ZW50LCBNYXRUYWJHcm91cCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnXG5pbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInXG5pbXBvcnQgeyBFbGRlclRhYkRpcmVjdGl2ZSB9IGZyb20gJy4uL2VsZGVyLXRhYi9lbGRlci10YWIuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRWxkZXJVcmxGcmFnbWVudFBhcmFtc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXJsL2VsZGVyLXVybC1mcmFnbWVudC1wYXJhbXMuc2VydmljZSdcbmltcG9ydCB7IFVybFF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3VybC91cmwtcXVlcnktcGFyYW1zJ1xuaW1wb3J0IHsgUXVlcnlMaXN0QmluZGluZyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlscy9xdWVyeS1saXN0LWJpbmRpbmcnXG5cbi8qKlxuICogQWRkcyBvdXQtb2YtdGhlLWJveCB1cmwtZnJhZ21lbnQgYmFzZWQgdGFiIG5hdmlnYXRpb25cbiAqIHdpdGhpbiB0aGUgbWF0LXRhYi1ncm91cCBpdCBpcyBwbGFjZWQgdXBvbi5cbiAqXG4gKiBBZGQgZWxkZXJUYWIgZGlyZWN0aXZlIHRvIGVhY2ggdGFiIG9mIHRoZSBncm91cCB0b1xuICogc3VwcG9ydCBpZC1iYXNlZCB0YWIgbmF2aWdhdGlvbi5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyVGFiR3JvdXBSb3V0aW5nXScsXG4gIGV4cG9ydEFzOiAnZWxkZXJUYWJHcm91cFJvdXRpbmcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYkdyb3VwUm91dGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBQcmVmaXggdXNlZCB0byBpbmRpY2F0ZSBhbmQgaW5kZXgtYmFzZWQgdGFiIG1hcmtlci5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFRBQl9JTkRFWF9QUkVGSVggPSAnaWR4OidcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIC8qKlxuICAgKiBTdG9yZXMgdGhlIGxhc3QgdGFiIG1hcmtlciAoZWl0aGVyIElEIG9yIGluZGV4KVxuICAgKiB3aGljaCBjb3VsZCBub3QgYmUgYWN0aXZhdGVkLiBUaGlzIGlzIHVzZWQgdG8gcmV0cnlcbiAgICogYWN0aXZhdGlvbiBvbmNlIGNoYW5nZXMgb24gdGFiIHN0cnVjdHVyZSBvY2N1ci5cbiAgICovXG4gIHByaXZhdGUgbGFzdEZhaWxlZFRhYk1hcmtlcjogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFN0cmluZyB0byB1c2UgYXMgcXVlcnkgcGFyYW0ga2V5LlxuICAgKi9cbiAgQElucHV0KCdlbGRlclRhYkdyb3VwUm91dGluZycpXG4gIHB1YmxpYyB0YWJHcm91cFF1ZXJ5UGFyYW1LZXk6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgdGFicyB3aXRoaW4gdGhpcyBuYXZpZ2F0aW9uIGNvbnRleHQuXG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKE1hdFRhYilcbiAgcHVibGljIHRhYnM6IFF1ZXJ5TGlzdDxNYXRUYWI+XG5cbiAgLyoqXG4gICAqIFRoZSBjaGlsZCB0YWJzIHdpdGhpbiB0aGlzIG5hdmlnYXRpb24gY29udGV4dFxuICAgKiBtYXJrZWQgd2l0aCB0aGUgZWxkZXJUYWJzIGRpcmVjdGl2ZS5cbiAgICovXG4gIEBDb250ZW50Q2hpbGRyZW4oRWxkZXJUYWJEaXJlY3RpdmUpXG4gIHB1YmxpYyBlbGRlclRhYnM6IFF1ZXJ5TGlzdDxFbGRlclRhYkRpcmVjdGl2ZT5cblxuICAvKipcbiAgICogVGhlIHRhYiBtYXJrZWQgd2l0aCBlbGRlclRhYiBkaXJlY3RpdmUgd2hpY2hcbiAgICogaXMgY3VycmVudGx5IGFjdGl2ZS4gTWF5IGJlIG51bGwgaWZcbiAgICogZWxkZXJUYWIgbWFya2VycyBhcmUgbm90IHVzZWQuXG4gICAqL1xuICBwdWJsaWMgYWN0aXZlRWxkZXJUYWI6IEVsZGVyVGFiRGlyZWN0aXZlXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmcmFnbWVudFBhcmFtc1NlcnZpY2U6IEVsZGVyVXJsRnJhZ21lbnRQYXJhbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGFiR3JvdXA6IE1hdFRhYkdyb3VwXG4gICkge1xuICAgIHRoaXMudGFiR3JvdXAuc2VsZWN0ZWRUYWJDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4gdGhpcy5oYW5kbGVUYWJDaGFuZ2VFdmVudChldmVudCkpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZnJhZ21lbnRQYXJhbXNTZXJ2aWNlLnBhcmFtcyRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChwYXJhbXMpID0+IHRoaXMuaGFuZGxlRnJhZ21lbnRQYXJhbXNDaGFuZ2UocGFyYW1zKSlcblxuICAgIFF1ZXJ5TGlzdEJpbmRpbmcub2YodGhpcy50YWJzKVxuICAgICAgLnVwZGF0ZWQoKCkgPT4gdGhpcy5yZXRyeUxhc3RGYWlsZWRBY3RpdmF0aW9uKCkpXG4gICAgICAuYmluZFVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuXG4gICAgUXVlcnlMaXN0QmluZGluZy5vZih0aGlzLmVsZGVyVGFicylcbiAgICAgIC51cGRhdGVkKCgpID0+IHRoaXMucmV0cnlMYXN0RmFpbGVkQWN0aXZhdGlvbigpKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZUZyYWdtZW50UGFyYW0oKVxuXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpXG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBhY3RpdmVUYWJJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUVsZGVyVGFiPy5pZFxuICB9XG5cbiAgcHVibGljIGdldCBhY3RpdmVUYWJJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRhYkdyb3VwLnNlbGVjdGVkSW5kZXhcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgaGFuZGxlRnJhZ21lbnRQYXJhbXNDaGFuZ2UocGFyYW1zOiBVcmxRdWVyeVBhcmFtcyk6IHZvaWQge1xuICAgIGNvbnN0IHRhYk1hcmtlciA9IHRoaXMuZ2V0VGFiTWFya2VyKHBhcmFtcylcblxuICAgIGlmICh0YWJNYXJrZXIpIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVUYWJCeU1hcmtlcih0YWJNYXJrZXIpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZVRhYkJ5TWFya2VyKHRhYk1hcmtlcjogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IHN1Y2Nlc3M6IGJvb2xlYW5cbiAgICBpZiAodGhpcy5pc0luZGV4TWFya2VyKHRhYk1hcmtlcikpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wYXJzZUluZGV4TWFya2VyKHRhYk1hcmtlcilcbiAgICAgIHN1Y2Nlc3MgPSB0aGlzLmFjdGl2YXRlVGFiQnlJbmRleChpbmRleClcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gaWYgbm8gaW5kZXggaXMgZ2l2ZW4gd2UgYXNzdW1lIHRoZSBtYXJrZXIgaXMgdGhlIGlkIG9mIHRoZSB0YWIuXG4gICAgICBzdWNjZXNzID0gdGhpcy5hY3RpdmF0ZVRhYkJ5SWQodGFiTWFya2VyKVxuICAgIH1cblxuICAgIC8vIHJlbWVtYmVyIHRhYiBtYXJrZXIgaW4gY2FzZSBvZiBmYWlsdXJlIHRvIHJldHJ5IGxhdGVyLlxuICAgIHRoaXMubGFzdEZhaWxlZFRhYk1hcmtlciA9IHN1Y2Nlc3MgPyBudWxsIDogdGFiTWFya2VyXG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlVGFiQnlJbmRleChpbmRleFRvQWN0aXZhdGU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmIChpbmRleFRvQWN0aXZhdGUgIT09IHRoaXMuYWN0aXZlVGFiSW5kZXgpIHtcbiAgICAgIHRoaXMuX2xvZy50cmFjZSgnQWN0aXZhdGluZyB0YWIgYnkgaW5kZXggJywgaW5kZXhUb0FjdGl2YXRlKVxuXG4gICAgICAvLyBGaXJzdCB0cnkgdG8gaWRlbnRpZnkgY29ycmVzcG9uZGluZyBlbGRlciB0YWIsIHNvIHRoYXQgd2UgbWF5IHdvcmsgd2l0aCBpdHMgSUQgaW5zdGVhZCBvZiBpbmRleC5cbiAgICAgIGNvbnN0IGVsZGVyVGFiID0gdGhpcy5maW5kRWxkZXJUYWJCeUluZGV4KGluZGV4VG9BY3RpdmF0ZSlcblxuICAgICAgaWYgKGVsZGVyVGFiKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2YXRlRWxkZXJUYWIoZWxkZXJUYWIpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiBubyBlbGRlciB0YWIgZm91bmQsIGNsZWFyIGFjdGl2ZSBlbGRlciB0YWIgdG8gZW5zdXJlIGNvbnNpc3RlbnQgc3RhdGUuXG4gICAgICAgIHRoaXMuYWN0aXZlRWxkZXJUYWIgPSBudWxsXG4gICAgICAgIHJldHVybiB0aGlzLnNldFNlbGVjdGVkSW5kZXgoaW5kZXhUb0FjdGl2YXRlKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVUYWJCeUlkKHRhYklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBlbGRlclRhYiA9IHRoaXMuZmluZEVsZGVyVGFiQnlJZCh0YWJJZClcblxuICAgIGlmIChlbGRlclRhYikge1xuICAgICAgcmV0dXJuIHRoaXMuYWN0aXZhdGVFbGRlclRhYihlbGRlclRhYilcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgbm8gZWxkZXIgdGFiIGZvdW5kLCBjbGVhciBhY3RpdmUgZWxkZXIgdGFiIHRvIGVuc3VyZSBjb25zaXN0ZW50IHN0YXRlLlxuICAgICAgdGhpcy5hY3RpdmVFbGRlclRhYiA9IG51bGxcbiAgICAgIHRoaXMuX2xvZy53YXJuKFxuICAgICAgICAnQ291bGQgbm90IGZpbmQgdGFiIHdpdGggSUQgXCInICtcbiAgICAgICAgICB0YWJJZCArXG4gICAgICAgICAgJ1wiLiBFbnN1cmUgZWxkZXJUYWIgZGlyZWN0aXZlIGlzIGFkZGVkIHRvIGNvcnJlc3BvbmRpbmcgdGFiLidcbiAgICAgIClcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVFbGRlclRhYihlbGRlclRhYjogRWxkZXJUYWJEaXJlY3RpdmUpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hY3RpdmVFbGRlclRhYiAhPT0gZWxkZXJUYWIpIHtcbiAgICAgIHRoaXMuYWN0aXZlRWxkZXJUYWIgPSBlbGRlclRhYlxuICAgICAgY29uc3QgaW5kZXhUb0FjdGl2YXRlID0gdGhpcy5nZXRJbmRleE9mVGFiKGVsZGVyVGFiLnRhYilcbiAgICAgIHJldHVybiB0aGlzLnNldFNlbGVjdGVkSW5kZXgoaW5kZXhUb0FjdGl2YXRlKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVGFiQ2hhbmdlRXZlbnQodGFiQ2hhbmdlRXZlbnQ6IE1hdFRhYkNoYW5nZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fbG9nLnRyYWNlKCdIYW5kbGluZyB0YWJDaGFuZ2VFdmVudDogJywgdGFiQ2hhbmdlRXZlbnQpXG4gICAgdGhpcy5sYXN0RmFpbGVkVGFiTWFya2VyID0gbnVsbFxuICAgIHRoaXMuYWN0aXZlRWxkZXJUYWIgPSB0aGlzLmZpbmRFbGRlclRhYkJ5VGFiKHRhYkNoYW5nZUV2ZW50LnRhYilcbiAgICB0aGlzLnVwZGF0ZUZyYWdtZW50UGFyYW0oKVxuICB9XG5cbiAgcHJpdmF0ZSByZXRyeUxhc3RGYWlsZWRBY3RpdmF0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxhc3RGYWlsZWRUYWJNYXJrZXIpIHtcbiAgICAgIHRoaXMuX2xvZy50cmFjZSgnUmV0cnlpbmcgdG8gYWN0aXZhdGUgdGFiIGJ5IG1hcmtlcjonLCB0aGlzLmxhc3RGYWlsZWRUYWJNYXJrZXIpXG4gICAgICB0aGlzLmFjdGl2YXRlVGFiQnlNYXJrZXIodGhpcy5sYXN0RmFpbGVkVGFiTWFya2VyKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0U2VsZWN0ZWRJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKGluZGV4ICE9PSB0aGlzLmFjdGl2ZVRhYkluZGV4KSB7XG4gICAgICBpZiAodGhpcy5pc1ZhbGlkSW5kZXgoaW5kZXgpKSB7XG4gICAgICAgIHRoaXMuX2xvZy50cmFjZSgnQWN0aXZhdGluZyB0YWIgYnkgaW5kZXggJywgaW5kZXgpXG4gICAgICAgIHRoaXMudGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9IGluZGV4XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9sb2cud2FybignQ291bGQgbm90IGZpbmQgdGFiIHdpdGggaW5kZXggXCInICsgaW5kZXggKyAnXCIuJylcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkSW5kZXgoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhYnMubGVuZ3RoID4gaW5kZXhcbiAgfVxuXG4gIHByaXZhdGUgZmluZEVsZGVyVGFiQnlJZCh0YWJJZDogc3RyaW5nKTogRWxkZXJUYWJEaXJlY3RpdmUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5lbGRlclRhYnMuZmluZCgodCkgPT4gdC5pZCA9PT0gdGFiSWQpXG4gIH1cblxuICBwcml2YXRlIGZpbmRFbGRlclRhYkJ5SW5kZXgodGFiSW5kZXg6IG51bWJlcik6IEVsZGVyVGFiRGlyZWN0aXZlIHwgbnVsbCB7XG4gICAgY29uc3QgdGFiID0gdGhpcy5maW5kVGFiQnlJbmRleCh0YWJJbmRleClcbiAgICBpZiAodGFiKSB7XG4gICAgICByZXR1cm4gdGhpcy5maW5kRWxkZXJUYWJCeVRhYih0YWIpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaW5kRWxkZXJUYWJCeVRhYih0YWI6IE1hdFRhYik6IEVsZGVyVGFiRGlyZWN0aXZlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZWxkZXJUYWJzLmZpbmQoKGVsZGVyVGFiKSA9PiBlbGRlclRhYi50YWIgPT09IHRhYilcbiAgfVxuXG4gIHByaXZhdGUgZmluZFRhYkJ5SW5kZXgodGFiSW5kZXg6IG51bWJlcik6IE1hdFRhYiB8IG51bGwge1xuICAgIGlmICh0aGlzLnRhYnMubGVuZ3RoID4gdGFiSW5kZXgpIHtcbiAgICAgIHJldHVybiB0aGlzLnRhYnMuZ2V0KHRhYkluZGV4KVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5kZXhPZlRhYih0YWI6IE1hdFRhYik6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnRhYnMudG9BcnJheSgpLmluZGV4T2YodGFiKVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGcmFnbWVudFBhcmFtKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRUYWJNYXJrZXIgPSB0aGlzLmdldFRhYk1hcmtlcih0aGlzLmZyYWdtZW50UGFyYW1zU2VydmljZS5wYXJhbXMpXG5cbiAgICAvLyBJZiBwb3NzaWJsZSwgdXNlIHRhYiBJRCBhcyBtYXJrZXIuIElmIG5vdCwgdXNlIHRhYiBpbmRleCBhcyBmYWxsYmFjay5cbiAgICBjb25zdCBuZXdUYWJNYXJrZXIgPSB0aGlzLmFjdGl2ZVRhYklkXG4gICAgICA/IHRoaXMuYWN0aXZlVGFiSWRcbiAgICAgIDogdGhpcy5zZXJpYWxpemVJbmRleE1hcmtlcih0aGlzLmFjdGl2ZVRhYkluZGV4KVxuXG4gICAgaWYgKG5ld1RhYk1hcmtlciAhPT0gY3VycmVudFRhYk1hcmtlcikge1xuICAgICAgdGhpcy5zZXRGcmFnbWVudFBhcmFtKG5ld1RhYk1hcmtlcilcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEZyYWdtZW50UGFyYW0odmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZnJhZ21lbnRQYXJhbXNTZXJ2aWNlLnBhcmFtc1xuICAgIHBhcmFtcy5zZXQodGhpcy50YWJHcm91cFF1ZXJ5UGFyYW1LZXksIHZhbHVlKVxuXG4gICAgdGhpcy5mcmFnbWVudFBhcmFtc1NlcnZpY2Uuc2V0UGFyYW1zKHBhcmFtcylcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRnJhZ21lbnRQYXJhbSgpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmZyYWdtZW50UGFyYW1zU2VydmljZS5wYXJhbXNcbiAgICBwYXJhbXMucmVtb3ZlKHRoaXMudGFiR3JvdXBRdWVyeVBhcmFtS2V5KVxuXG4gICAgdGhpcy5mcmFnbWVudFBhcmFtc1NlcnZpY2Uuc2V0UGFyYW1zKHBhcmFtcylcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGFiTWFya2VyKHF1ZXJ5UGFyYW1zOiBVcmxRdWVyeVBhcmFtcyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHF1ZXJ5UGFyYW1zLmhhcyh0aGlzLnRhYkdyb3VwUXVlcnlQYXJhbUtleSlcbiAgICAgID8gcXVlcnlQYXJhbXMuZ2V0KHRoaXMudGFiR3JvdXBRdWVyeVBhcmFtS2V5KVxuICAgICAgOiBudWxsXG4gIH1cblxuICBwcml2YXRlIGlzSW5kZXhNYXJrZXIobWFya2VyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbWFya2VyICYmIG1hcmtlci5zdGFydHNXaXRoKEVsZGVyVGFiR3JvdXBSb3V0aW5nRGlyZWN0aXZlLlRBQl9JTkRFWF9QUkVGSVgpXG4gIH1cblxuICBwcml2YXRlIHBhcnNlSW5kZXhNYXJrZXIobWFya2VyOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLmlzSW5kZXhNYXJrZXIobWFya2VyKSkge1xuICAgICAgY29uc3QgaW5kZXhTdHIgPSBtYXJrZXIucmVwbGFjZShFbGRlclRhYkdyb3VwUm91dGluZ0RpcmVjdGl2ZS5UQUJfSU5ERVhfUFJFRklYLCAnJylcbiAgICAgIHJldHVybiBOdW1iZXIoaW5kZXhTdHIpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nhbm5vdCBwYXJzZSBpbmRleCBmcm9tIG1hcmtlciAgXCInICsgbWFya2VyICsgJ1wiLiBDaGVjayB3aXRoIGlzSW5kZXhNYXJrZXIgZmlyc3QhJ1xuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VyaWFsaXplSW5kZXhNYXJrZXIoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIEVsZGVyVGFiR3JvdXBSb3V0aW5nRGlyZWN0aXZlLlRBQl9JTkRFWF9QUkVGSVggKyBTdHJpbmcoaW5kZXgpXG4gIH1cbn1cbiJdfQ==
@@ -8,24 +8,14 @@ export * from './elder-tab/elder-tab.directive';
8
8
  export * from './elder-tab-group-routing/elder-tab-group-routing.directive';
9
9
  export class ElderTabModule {
10
10
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderTabModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: ElderTabModule, imports: [CommonModule, MatCommonModule,
12
- ElderTabDirective,
13
- ElderTabGroupRoutingDirective], exports: [ElderTabDirective,
14
- ElderTabGroupRoutingDirective] }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: ElderTabModule, imports: [CommonModule, MatCommonModule, ElderTabDirective, ElderTabGroupRoutingDirective], exports: [ElderTabDirective, ElderTabGroupRoutingDirective] }); }
15
12
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderTabModule, imports: [CommonModule, MatCommonModule] }); }
16
13
  }
17
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderTabModule, decorators: [{
18
15
  type: NgModule,
19
16
  args: [{
20
- imports: [
21
- CommonModule, MatCommonModule,
22
- ElderTabDirective,
23
- ElderTabGroupRoutingDirective
24
- ],
25
- exports: [
26
- ElderTabDirective,
27
- ElderTabGroupRoutingDirective
28
- ]
17
+ imports: [CommonModule, MatCommonModule, ElderTabDirective, ElderTabGroupRoutingDirective],
18
+ exports: [ElderTabDirective, ElderTabGroupRoutingDirective],
29
19
  }]
30
20
  }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFiLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGFicy9lbGRlci10YWIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUMsNkJBQTZCLEVBQUMsTUFBTSw2REFBNkQsQ0FBQzs7QUFFMUcsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDZEQUE2RCxDQUFDO0FBYTVFLE1BQU0sT0FBTyxjQUFjOzhHQUFkLGNBQWM7K0dBQWQsY0FBYyxZQVRuQixZQUFZLEVBQUUsZUFBZTtZQUM3QixpQkFBaUI7WUFDakIsNkJBQTZCLGFBRzdCLGlCQUFpQjtZQUNqQiw2QkFBNkI7K0dBR3hCLGNBQWMsWUFUbkIsWUFBWSxFQUFFLGVBQWU7OzJGQVN4QixjQUFjO2tCQVgxQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZLEVBQUUsZUFBZTt3QkFDN0IsaUJBQWlCO3dCQUNqQiw2QkFBNkI7cUJBQ2hDO29CQUNELE9BQU8sRUFBRTt3QkFDTCxpQkFBaUI7d0JBQ2pCLDZCQUE2QjtxQkFDaEM7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtNYXRDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyVGFiRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLXRhYi9lbGRlci10YWIuZGlyZWN0aXZlJztcbmltcG9ydCB7RWxkZXJUYWJHcm91cFJvdXRpbmdEaXJlY3RpdmV9IGZyb20gJy4vZWxkZXItdGFiLWdyb3VwLXJvdXRpbmcvZWxkZXItdGFiLWdyb3VwLXJvdXRpbmcuZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9lbGRlci10YWIvZWxkZXItdGFiLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2VsZGVyLXRhYi1ncm91cC1yb3V0aW5nL2VsZGVyLXRhYi1ncm91cC1yb3V0aW5nLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsIE1hdENvbW1vbk1vZHVsZSxcbiAgICAgICAgRWxkZXJUYWJEaXJlY3RpdmUsXG4gICAgICAgIEVsZGVyVGFiR3JvdXBSb3V0aW5nRGlyZWN0aXZlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEVsZGVyVGFiRGlyZWN0aXZlLFxuICAgICAgICBFbGRlclRhYkdyb3VwUm91dGluZ0RpcmVjdGl2ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJUYWJNb2R1bGUgeyB9XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFiLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvdGFicy9lbGRlci10YWIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNuRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQTs7QUFFM0csY0FBYyxpQ0FBaUMsQ0FBQTtBQUMvQyxjQUFjLDZEQUE2RCxDQUFBO0FBTTNFLE1BQU0sT0FBTyxjQUFjOzhHQUFkLGNBQWM7K0dBQWQsY0FBYyxZQUhmLFlBQVksRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsNkJBQTZCLGFBQy9FLGlCQUFpQixFQUFFLDZCQUE2QjsrR0FFL0MsY0FBYyxZQUhmLFlBQVksRUFBRSxlQUFlOzsyRkFHNUIsY0FBYztrQkFKMUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLDZCQUE2QixDQUFDO29CQUMxRixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSw2QkFBNkIsQ0FBQztpQkFDNUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBNYXRDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJ1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRWxkZXJUYWJEaXJlY3RpdmUgfSBmcm9tICcuL2VsZGVyLXRhYi9lbGRlci10YWIuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRWxkZXJUYWJHcm91cFJvdXRpbmdEaXJlY3RpdmUgfSBmcm9tICcuL2VsZGVyLXRhYi1ncm91cC1yb3V0aW5nL2VsZGVyLXRhYi1ncm91cC1yb3V0aW5nLmRpcmVjdGl2ZSdcblxuZXhwb3J0ICogZnJvbSAnLi9lbGRlci10YWIvZWxkZXItdGFiLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZWxkZXItdGFiLWdyb3VwLXJvdXRpbmcvZWxkZXItdGFiLWdyb3VwLXJvdXRpbmcuZGlyZWN0aXZlJ1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRDb21tb25Nb2R1bGUsIEVsZGVyVGFiRGlyZWN0aXZlLCBFbGRlclRhYkdyb3VwUm91dGluZ0RpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtFbGRlclRhYkRpcmVjdGl2ZSwgRWxkZXJUYWJHcm91cFJvdXRpbmdEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYk1vZHVsZSB7fVxuIl19