@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,7 +1,7 @@
1
- import { ChangeDetectionStrategy, Component, Input, Output, ViewChild } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, Input, Output, ViewChild, } from '@angular/core';
2
2
  import { UntypedFormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
3
- import { MatAutocompleteTrigger, MatAutocomplete } from '@angular/material/autocomplete';
4
- import { MatChipGrid, MatChipRow, MatChipRemove, MatChipInput } from '@angular/material/chips';
3
+ import { MatAutocompleteTrigger, MatAutocomplete, } from '@angular/material/autocomplete';
4
+ import { MatChipGrid, MatChipRow, MatChipRemove, MatChipInput, } from '@angular/material/chips';
5
5
  import { LoggerFactory } from '@elderbyte/ts-logger';
6
6
  import { EMPTY } from 'rxjs';
7
7
  import { debounceTime, map, startWith, switchMap } from 'rxjs/operators';
@@ -49,7 +49,7 @@ export class ElderLabelInputComponent extends FormFieldBaseComponent {
49
49
  }
50
50
  set suggestionLoader(provider) {
51
51
  if (provider) {
52
- this.availableSuggestions$ = this.labelInputControl.valueChanges.pipe(startWith(null), debounceTime(150), switchMap((value) => provider.loadSuggestions(value)), map(labels => this.filterNotPresent(labels)));
52
+ this.availableSuggestions$ = this.labelInputControl.valueChanges.pipe(startWith(null), debounceTime(150), switchMap((value) => provider.loadSuggestions(value)), map((labels) => this.filterNotPresent(labels)));
53
53
  }
54
54
  else {
55
55
  this.logger.debug('Cant provide suggestions since no suggestion provider was registered!');
@@ -141,8 +141,7 @@ export class ElderLabelInputComponent extends FormFieldBaseComponent {
141
141
  this.addLabels([label]);
142
142
  }
143
143
  removeLabel(toRemove) {
144
- const remaining = this.value
145
- .filter(l => !this.areEqual(l, toRemove));
144
+ const remaining = this.value.filter((l) => !this.areEqual(l, toRemove));
146
145
  this.replaceWith(remaining);
147
146
  }
148
147
  replaceWith(labels) {
@@ -179,8 +178,8 @@ export class ElderLabelInputComponent extends FormFieldBaseComponent {
179
178
  if (suggestions) {
180
179
  if (this.value) {
181
180
  return suggestions
182
- .filter(l => l)
183
- .filter(l => !this.value.some(el => this.areEqual(el, l)));
181
+ .filter((l) => l)
182
+ .filter((l) => !this.value.some((el) => this.areEqual(el, l)));
184
183
  }
185
184
  else {
186
185
  return suggestions;
@@ -194,11 +193,29 @@ export class ElderLabelInputComponent extends FormFieldBaseComponent {
194
193
  return this._compareWith ? this._compareWith(a, b) : a === b;
195
194
  }
196
195
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderLabelInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
197
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ElderLabelInputComponent, isStandalone: true, selector: "elder-label-input", inputs: { labels: "labels", suggestionLoader: "suggestionLoader", allowNew: "allowNew", compareWith: "compareWith", colorResolver: "colorResolver", nameResolver: "nameResolver", labelBuilder: "labelBuilder" }, outputs: { labelsChanged: "labelsChanged" }, providers: buildFormIntegrationProviders(ElderLabelInputComponent), viewQueries: [{ propertyName: "inputControl", first: true, predicate: ["labelInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"full-width\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n>\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n\n <mat-chip-grid #chips>\n <mat-chip-row *ngFor=\"let label of currentLabels$ | async\"\n class=\"noselect\"\n [color]=\"labelColor(label)\" [disabled]=\"disabled\"\n [removable]=\"removable\"\n (removed)=\"removeLabel(label)\"\n >\n {{labelName(label)}}\n <mat-icon matChipRemove *ngIf=\"!readonly && removable\">cancel</mat-icon>\n </mat-chip-row>\n\n <input matInput type=\"text\"\n [matChipInputFor]=\"chips\"\n [matAutocomplete]=\"labelAutoComplete\"\n [formControl]=\"labelInputControl\"\n (matChipInputTokenEnd)=\"createNewLabels($event)\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n autocomplete=\"off\"\n #labelInput>\n </mat-chip-grid>\n\n <mat-autocomplete\n #labelAutoComplete=\"matAutocomplete\"\n panelWidth=\"auto\"\n (optionSelected)=\"labelSelected($event)\">\n <mat-option *ngFor=\"let suggestion of availableSuggestions$ | async\" [value]=\"suggestion\">\n {{labelName(suggestion)}}\n </mat-option>\n </mat-autocomplete>\n\n</mat-form-field>\n\n", styles: [".full-width{width:100%}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatChipRemove, selector: "[matChipRemove]" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
196
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ElderLabelInputComponent, isStandalone: true, selector: "elder-label-input", inputs: { labels: "labels", suggestionLoader: "suggestionLoader", allowNew: "allowNew", compareWith: "compareWith", colorResolver: "colorResolver", nameResolver: "nameResolver", labelBuilder: "labelBuilder" }, outputs: { labelsChanged: "labelsChanged" }, providers: buildFormIntegrationProviders(ElderLabelInputComponent), viewQueries: [{ propertyName: "inputControl", first: true, predicate: ["labelInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"full-width\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n>\n <mat-label *ngIf=\"label\">{{ label | translate }}</mat-label>\n\n <mat-chip-grid #chips>\n <mat-chip-row\n *ngFor=\"let label of currentLabels$ | async\"\n class=\"noselect\"\n [color]=\"labelColor(label)\"\n [disabled]=\"disabled\"\n [removable]=\"removable\"\n (removed)=\"removeLabel(label)\"\n >\n {{ labelName(label) }}\n <mat-icon matChipRemove *ngIf=\"!readonly && removable\">cancel</mat-icon>\n </mat-chip-row>\n\n <input\n matInput\n type=\"text\"\n [matChipInputFor]=\"chips\"\n [matAutocomplete]=\"labelAutoComplete\"\n [formControl]=\"labelInputControl\"\n (matChipInputTokenEnd)=\"createNewLabels($event)\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n autocomplete=\"off\"\n #labelInput\n />\n </mat-chip-grid>\n\n <mat-autocomplete\n #labelAutoComplete=\"matAutocomplete\"\n panelWidth=\"auto\"\n (optionSelected)=\"labelSelected($event)\"\n >\n <mat-option *ngFor=\"let suggestion of availableSuggestions$ | async\" [value]=\"suggestion\">\n {{ labelName(suggestion) }}\n </mat-option>\n </mat-autocomplete>\n</mat-form-field>\n", styles: [".full-width{width:100%}\n"], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "component", type: MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatChipRemove, selector: "[matChipRemove]" }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
198
197
  }
199
198
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderLabelInputComponent, decorators: [{
200
199
  type: Component,
201
- args: [{ selector: 'elder-label-input', providers: buildFormIntegrationProviders(ElderLabelInputComponent), changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatFormField, NgIf, MatLabel, MatChipGrid, NgFor, MatChipRow, MatIcon, MatChipRemove, MatInput, MatChipInput, MatAutocompleteTrigger, FormsModule, ReactiveFormsModule, MatAutocomplete, MatOption, AsyncPipe, TranslateModule], template: "<mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"full-width\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n>\n <mat-label *ngIf=\"label\">{{label | translate}}</mat-label>\n\n <mat-chip-grid #chips>\n <mat-chip-row *ngFor=\"let label of currentLabels$ | async\"\n class=\"noselect\"\n [color]=\"labelColor(label)\" [disabled]=\"disabled\"\n [removable]=\"removable\"\n (removed)=\"removeLabel(label)\"\n >\n {{labelName(label)}}\n <mat-icon matChipRemove *ngIf=\"!readonly && removable\">cancel</mat-icon>\n </mat-chip-row>\n\n <input matInput type=\"text\"\n [matChipInputFor]=\"chips\"\n [matAutocomplete]=\"labelAutoComplete\"\n [formControl]=\"labelInputControl\"\n (matChipInputTokenEnd)=\"createNewLabels($event)\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n autocomplete=\"off\"\n #labelInput>\n </mat-chip-grid>\n\n <mat-autocomplete\n #labelAutoComplete=\"matAutocomplete\"\n panelWidth=\"auto\"\n (optionSelected)=\"labelSelected($event)\">\n <mat-option *ngFor=\"let suggestion of availableSuggestions$ | async\" [value]=\"suggestion\">\n {{labelName(suggestion)}}\n </mat-option>\n </mat-autocomplete>\n\n</mat-form-field>\n\n", styles: [".full-width{width:100%}\n"] }]
200
+ args: [{ selector: 'elder-label-input', providers: buildFormIntegrationProviders(ElderLabelInputComponent), changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
201
+ MatFormField,
202
+ NgIf,
203
+ MatLabel,
204
+ MatChipGrid,
205
+ NgFor,
206
+ MatChipRow,
207
+ MatIcon,
208
+ MatChipRemove,
209
+ MatInput,
210
+ MatChipInput,
211
+ MatAutocompleteTrigger,
212
+ FormsModule,
213
+ ReactiveFormsModule,
214
+ MatAutocomplete,
215
+ MatOption,
216
+ AsyncPipe,
217
+ TranslateModule,
218
+ ], template: "<mat-form-field\n [floatLabel]=\"floatLabel\"\n class=\"full-width\"\n [appearance]=\"appearance\"\n [color]=\"color\"\n>\n <mat-label *ngIf=\"label\">{{ label | translate }}</mat-label>\n\n <mat-chip-grid #chips>\n <mat-chip-row\n *ngFor=\"let label of currentLabels$ | async\"\n class=\"noselect\"\n [color]=\"labelColor(label)\"\n [disabled]=\"disabled\"\n [removable]=\"removable\"\n (removed)=\"removeLabel(label)\"\n >\n {{ labelName(label) }}\n <mat-icon matChipRemove *ngIf=\"!readonly && removable\">cancel</mat-icon>\n </mat-chip-row>\n\n <input\n matInput\n type=\"text\"\n [matChipInputFor]=\"chips\"\n [matAutocomplete]=\"labelAutoComplete\"\n [formControl]=\"labelInputControl\"\n (matChipInputTokenEnd)=\"createNewLabels($event)\"\n [name]=\"name\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n autocomplete=\"off\"\n #labelInput\n />\n </mat-chip-grid>\n\n <mat-autocomplete\n #labelAutoComplete=\"matAutocomplete\"\n panelWidth=\"auto\"\n (optionSelected)=\"labelSelected($event)\"\n >\n <mat-option *ngFor=\"let suggestion of availableSuggestions$ | async\" [value]=\"suggestion\">\n {{ labelName(suggestion) }}\n </mat-option>\n </mat-autocomplete>\n</mat-form-field>\n", styles: [".full-width{width:100%}\n"] }]
202
219
  }], ctorParameters: () => [], propDecorators: { inputControl: [{
203
220
  type: ViewChild,
204
221
  args: ['labelInput', { static: true }]
@@ -219,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
219
236
  }], labelBuilder: [{
220
237
  type: Input
221
238
  }] } });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWxzLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbGFiZWxzL2xhYmVscy1pbnB1dC9sYWJlbHMtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9sYWJlbHMvbGFiZWxzLWlucHV0L2xhYmVscy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQStCLHNCQUFzQixFQUFFLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JILE9BQU8sRUFBb0IsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEgsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQy9GLE9BQU8sRUFBZSxTQUFTLEVBQUMsTUFB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QnRFLGs3Q0E0Q0EsbUZEcEJjLFlBQVksNExBQUUsSUFBSSw2RkFBRSxRQUFRLHNEQUFFLFdBQVcsNktBQUUsS0FBSyxtSEFBRSxVQUFVLDhKQUFFLE9BQU8sMklBQUUsYUFBYSw0REFBRSxRQUFRLGlVQUFFLFlBQVksNlFBQUUsc0JBQXNCLG9RQUFFLFdBQVcsbW5CQUFFLG1CQUFtQixrTkFBRSxlQUFlLHlXQUFFLFNBQVMsZ0pBQUUsU0FBUyw2Q0FBRSxlQUFlOzsyRkFFL04sd0JBQXdCO2tCQVRwQyxTQUFTOytCQUNJLG1CQUFtQixhQUdsQiw2QkFBNkIsMEJBQTBCLG1CQUNqRCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDO3dEQXlCbk8sWUFBWTtzQkFEbkIsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQTBCNUIsTUFBTTtzQkFEaEIsS0FBSztnQkFNSyxnQkFBZ0I7c0JBRDFCLEtBQUs7Z0JBZ0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBTUssYUFBYTtzQkFEdkIsTUFBTTtnQkFXSSxXQUFXO3NCQURyQixLQUFLO2dCQWFLLGFBQWE7c0JBRHZCLEtBQUs7Z0JBWUssWUFBWTtzQkFEdEIsS0FBSztnQkFZSyxZQUFZO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCwgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciwgTWF0QXV0b2NvbXBsZXRlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHtNYXRDaGlwSW5wdXRFdmVudCwgTWF0Q2hpcEdyaWQsIE1hdENoaXBSb3csIE1hdENoaXBSZW1vdmUsIE1hdENoaXBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VNUFRZLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0lTdWdnZXN0aW9uUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9zdWdnZXN0aW9uLXByb3ZpZGVyJztcbmltcG9ydCB7Rm9ybUZpZWxkQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Zvcm1zL2Zvcm0tZmllbGQtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHtidWlsZEZvcm1JbnRlZ3JhdGlvblByb3ZpZGVyc30gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Zvcm1zL3RlbXBsYXRlLWNvbXBvc2l0ZS1jb250cm9sJztcbmltcG9ydCB7VGhlbWVQYWxldHRlLCBNYXRPcHRpb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNYXRJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHtNYXRJY29ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TmdJZiwgTmdGb3IsIEFzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkLCBNYXRMYWJlbH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWxkZXItbGFiZWwtaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sYWJlbHMtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xhYmVscy1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogYnVpbGRGb3JtSW50ZWdyYXRpb25Qcm92aWRlcnMoRWxkZXJMYWJlbElucHV0Q29tcG9uZW50KSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtNYXRGb3JtRmllbGQsIE5nSWYsIE1hdExhYmVsLCBNYXRDaGlwR3JpZCwgTmdGb3IsIE1hdENoaXBSb3csIE1hdEljb24sIE1hdENoaXBSZW1vdmUsIE1hdElucHV0LCBNYXRDaGlwSW5wdXQsIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRBdXRvY29tcGxldGUsIE1hdE9wdGlvbiwgQXN5bmNQaXBlLCBUcmFuc2xhdGVNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyTGFiZWxJbnB1dENvbXBvbmVudDxUPiBleHRlbmRzIEZvcm1GaWVsZEJhc2VDb21wb25lbnQ8VFtdPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgX2NvbXBhcmVXaXRoOiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhbjtcbiAgcHJpdmF0ZSBfbmFtZVJlc29sdmVyOiAobzE6IGFueSkgPT4gc3RyaW5nO1xuICBwcml2YXRlIF9jb2xvclJlc29sdmVyOiAobzE6IGFueSkgPT4gVGhlbWVQYWxldHRlO1xuICBwcml2YXRlIF9sYWJlbEJ1aWxkZXI6IChyYXdpbnB1dDogc3RyaW5nKSA9PiBhbnlbXTtcblxuICBwcml2YXRlIF9hbGxvd0NyZWF0ZSA9IHRydWU7XG5cbiAgcHVibGljIHJlbW92YWJsZSA9IHRydWU7XG5cbiAgcHVibGljIHJlYWRvbmx5IGxhYmVsSW5wdXRDb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gIHB1YmxpYyBhdmFpbGFibGVTdWdnZXN0aW9ucyQ6IE9ic2VydmFibGU8YW55W10+ID0gRU1QVFk7XG5cbiAgQFZpZXdDaGlsZCgnbGFiZWxJbnB1dCcsIHtzdGF0aWM6IHRydWV9KVxuICBwcml2YXRlIGlucHV0Q29udHJvbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmZsb2F0TGFiZWwgPSAnYXV0byc7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRMYWJlbHMkKCk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUkO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBsYWJlbHModmFsdWU6IFRbXSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc3VnZ2VzdGlvbkxvYWRlcihwcm92aWRlcjogSVN1Z2dlc3Rpb25Qcm92aWRlcjxhbnk+KSB7XG4gICAgaWYgKHByb3ZpZGVyKSB7XG4gICAgICB0aGlzLmF2YWlsYWJsZVN1Z2dlc3Rpb25zJCA9IHRoaXMubGFiZWxJbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCg8c3RyaW5nPm51bGwpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTUwKSxcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4gcHJvdmlkZXIubG9hZFN1Z2dlc3Rpb25zKHZhbHVlKSksXG4gICAgICAgIG1hcChsYWJlbHMgPT4gdGhpcy5maWx0ZXJOb3RQcmVzZW50KGxhYmVscykpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2FudCBwcm92aWRlIHN1Z2dlc3Rpb25zIHNpbmNlIG5vIHN1Z2dlc3Rpb24gcHJvdmlkZXIgd2FzIHJlZ2lzdGVyZWQhJyk7XG4gICAgICB0aGlzLmF2YWlsYWJsZVN1Z2dlc3Rpb25zJCA9IEVNUFRZO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWxsb3dOZXcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hbGxvd0NyZWF0ZSA9IHZhbHVlO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgbGFiZWxzQ2hhbmdlZCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2U7XG4gIH1cblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0byBjb21wYXJlIHRoZSBvcHRpb24gdmFsdWVzIHdpdGggdGhlIHNlbGVjdGVkIHZhbHVlcy4gVGhlIGZpcnN0IGFyZ3VtZW50XG4gICAqIGlzIGEgdmFsdWUgZnJvbSBhbiBvcHRpb24uIFRoZSBzZWNvbmQgaXMgYSB2YWx1ZSBmcm9tIHRoZSBzZWxlY3Rpb24uIEEgYm9vbGVhblxuICAgKiBzaG91bGQgYmUgcmV0dXJuZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNvbXBhcmVXaXRoKGZuOiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhbikge1xuICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY29tcGFyZVdpdGggbXVzdCBiZSBhIGZ1bmN0aW9uIScpO1xuICAgIH1cbiAgICB0aGlzLl9jb21wYXJlV2l0aCA9IGZuO1xuICB9XG5cblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIHRoZSBjb2xvciBvZiBhIGdpdmVuIGxhYmVsIG9iamVjdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29sb3JSZXNvbHZlcihmbjogKG8xOiBhbnkpID0+IFRoZW1lUGFsZXR0ZSkge1xuICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY29sb3JSZXNvbHZlciBtdXN0IGJlIGEgZnVuY3Rpb24hJyk7XG4gICAgfVxuICAgIHRoaXMuX2NvbG9yUmVzb2x2ZXIgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgdGhlIGRpc3BsYXkgbmFtZSBvZiBhIGdpdmVuIGxhYmVsIG9iamVjdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZVJlc29sdmVyKGZuOiAobzE6IGFueSkgPT4gc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCduYW1lUmVzb2x2ZXIgbXVzdCBiZSBhIGZ1bmN0aW9uIScpO1xuICAgIH1cbiAgICB0aGlzLl9uYW1lUmVzb2x2ZXIgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgb25lIG9yIG1vcmUgbGFiZWxzIGZvciBhIGdpdmVuIHJhdyBzdHJpbmdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbGFiZWxCdWlsZGVyKGZuOiAocmF3aW5wdXQ6IHN0cmluZykgPT4gYW55W10pIHtcbiAgICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2xhYmVsQnVpbGRlciBtdXN0IGJlIGEgZnVuY3Rpb24hJyk7XG4gICAgfVxuICAgIHRoaXMuX2xhYmVsQnVpbGRlciA9IGZuO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUtQ3ljbGUgRXZlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQgeyB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGxhYmVsU2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcbiAgICBjb25zb2xlLmxvZygnbGFiZWxTZWxlY3RlZDonLCBldmVudCk7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gZXZlbnQub3B0aW9uLnZhbHVlO1xuICAgIGlmIChzZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMucmVzZXRJbnB1dCgpO1xuICAgICAgdGhpcy5hZGRMYWJlbChzZWxlY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVOZXdMYWJlbHMoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2FsbG93Q3JlYXRlKSB7XG5cbiAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQuaW5wdXQ7XG4gICAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnZhbHVlO1xuXG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgY29uc3QgbXlMYWJlbHMgPSB0aGlzLmJ1aWxkTGFiZWxzKHZhbHVlKTtcbiAgICAgICAgdGhpcy5hZGRMYWJlbHMobXlMYWJlbHMpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgLy8gaW5wdXQudmFsdWUgPSAnJzsgLy8gcmVzZXQgaW5wdXRcbiAgICAgICAgdGhpcy5yZXNldElucHV0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZExhYmVscyhsYWJlbHM6IFRbXSkge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6IFtdO1xuICAgIHRoaXMucmVwbGFjZVdpdGgoWy4uLmN1cnJlbnQsIC4uLmxhYmVsc10pO1xuICB9XG5cbiAgcHVibGljIGFkZExhYmVsKGxhYmVsOiBhbnkpIHtcbiAgICB0aGlzLmFkZExhYmVscyhbbGFiZWxdKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVMYWJlbCh0b1JlbW92ZTogVCk6IHZvaWQge1xuXG4gICAgY29uc3QgcmVtYWluaW5nID0gdGhpcy52YWx1ZVxuICAgICAgLmZpbHRlcihsID0+ICF0aGlzLmFyZUVxdWFsKGwsIHRvUmVtb3ZlKSk7XG5cbiAgICB0aGlzLnJlcGxhY2VXaXRoKHJlbWFpbmluZyk7XG4gIH1cblxuICBwdWJsaWMgcmVwbGFjZVdpdGgobGFiZWxzOiBUW10pOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKGxhYmVscyk7XG4gIH1cblxuICBwdWJsaWMgbGFiZWxOYW1lKGxhYmVsOiBUKTogc3RyaW5nIHtcbiAgICBpZiAobGFiZWwpIHtcbiAgICAgIHJldHVybiB0aGlzLl9uYW1lUmVzb2x2ZXIgPyAgdGhpcy5fbmFtZVJlc29sdmVyKGxhYmVsKSA6IGxhYmVsLnRvU3RyaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbGFiZWxDb2xvcihsYWJlbDogVCk6IFRoZW1lUGFsZXR0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbG9yUmVzb2x2ZXIgPyAgdGhpcy5fY29sb3JSZXNvbHZlcihsYWJlbCkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlc2V0SW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dENvbnRyb2wubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZExhYmVscyhyYXdOYW1lOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgaWYgKHRoaXMuX2xhYmVsQnVpbGRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsQnVpbGRlcihyYXdOYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtyYXdOYW1lXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbHRlck5vdFByZXNlbnQoc3VnZ2VzdGlvbnM6IGFueVtdKTogYW55W10ge1xuICAgIGlmIChzdWdnZXN0aW9ucykge1xuXG4gICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICByZXR1cm4gc3VnZ2VzdGlvbnNcbiAgICAgICAgICAuZmlsdGVyKGwgPT4gbClcbiAgICAgICAgICAuZmlsdGVyKGwgPT4gIXRoaXMudmFsdWUuc29tZShlbCA9PiB0aGlzLmFyZUVxdWFsKGVsLCBsKSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHN1Z2dlc3Rpb25zO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcmVFcXVhbChhOiBhbnksIGI6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jb21wYXJlV2l0aCA/IHRoaXMuX2NvbXBhcmVXaXRoKGEsIGIpIDogYSA9PT0gYjtcbiAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkXG4gIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxuICBjbGFzcz1cImZ1bGwtd2lkdGhcIlxuICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgW2NvbG9yXT1cImNvbG9yXCJcbj5cbiAgPG1hdC1sYWJlbCAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbCB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG5cbiAgPG1hdC1jaGlwLWdyaWQgI2NoaXBzPlxuICAgIDxtYXQtY2hpcC1yb3cgKm5nRm9yPVwibGV0IGxhYmVsIG9mIGN1cnJlbnRMYWJlbHMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm5vc2VsZWN0XCJcbiAgICAgICAgICAgICAgW2NvbG9yXT1cImxhYmVsQ29sb3IobGFiZWwpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJyZW1vdmFibGVcIlxuICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVMYWJlbChsYWJlbClcIlxuICAgID5cbiAgICAgIHt7bGFiZWxOYW1lKGxhYmVsKX19XG4gICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZSAqbmdJZj1cIiFyZWFkb25seSAmJiByZW1vdmFibGVcIj5jYW5jZWw8L21hdC1pY29uPlxuICAgIDwvbWF0LWNoaXAtcm93PlxuXG4gICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwc1wiXG4gICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwibGFiZWxBdXRvQ29tcGxldGVcIlxuICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwibGFiZWxJbnB1dENvbnRyb2xcIlxuICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiY3JlYXRlTmV3TGFiZWxzKCRldmVudClcIlxuICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgI2xhYmVsSW5wdXQ+XG4gIDwvbWF0LWNoaXAtZ3JpZD5cblxuICA8bWF0LWF1dG9jb21wbGV0ZVxuICAgICAgI2xhYmVsQXV0b0NvbXBsZXRlPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgIHBhbmVsV2lkdGg9XCJhdXRvXCJcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJsYWJlbFNlbGVjdGVkKCRldmVudClcIj5cbiAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgc3VnZ2VzdGlvbiBvZiBhdmFpbGFibGVTdWdnZXN0aW9ucyQgfCBhc3luY1wiIFt2YWx1ZV09XCJzdWdnZXN0aW9uXCI+XG4gICAgICB7e2xhYmVsTmFtZShzdWdnZXN0aW9uKX19XG4gICAgPC9tYXQtb3B0aW9uPlxuICA8L21hdC1hdXRvY29tcGxldGU+XG5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbiJdfQ==
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWxzLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbGFiZWxzL2xhYmVscy1pbnB1dC9sYWJlbHMtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9sYWJlbHMvbGFiZWxzLWlucHV0L2xhYmVscy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDckYsT0FBTyxFQUVMLHNCQUFzQixFQUN0QixlQUFlLEdBQ2hCLE1BQU0sZ0NBQWdDLENBQUE7QUFDdkMsT0FBTyxFQUVMLFdBQVcsRUFDWCxVQUFVLEVBQ1YsYUFBYSxFQUNiLFlBQVksR0FDYixNQUFNLHlCQUF5QixDQUFBO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV4RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQTtBQUN4RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQTtBQUNoRyxPQUFPLEVBQWdCLFNBQVMsRUFBRSxN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LDZCQUE2QixDQUFDLHdCQUF3QixDQUFDLDJLQ3ZDcEUsODNDQWdEQSxtRkRMSSxZQUFZLDRMQUNaLElBQUksNkZBQ0osUUFBUSxzREFDUixXQUFXLDZLQUNYLEtBQUssbUhBQ0wsVUFBVSw4SkFDVixPQUFPLDJJQUNQLGFBQWEsNERBQ2IsUUFBUSxpVUFDUixZQUFZLDZRQUNaLHNCQUFzQixvUUFDdEIsV0FBVyxtbkJBQ1gsbUJBQW1CLGtOQUNuQixlQUFlLHlXQUNmLFNBQVMsZ0pBQ1QsU0FBUyw2Q0FDVCxlQUFlOzsyRkFHTix3QkFBd0I7a0JBM0JwQyxTQUFTOytCQUNFLG1CQUFtQixhQUdsQiw2QkFBNkIsMEJBQTBCLG1CQUNqRCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLElBQUk7d0JBQ0osUUFBUTt3QkFDUixXQUFXO3dCQUNYLEtBQUs7d0JBQ0wsVUFBVTt3QkFDVixPQUFPO3dCQUNQLGFBQWE7d0JBQ2IsUUFBUTt3QkFDUixZQUFZO3dCQUNaLHNCQUFzQjt3QkFDdEIsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsU0FBUzt3QkFDVCxTQUFTO3dCQUNULGVBQWU7cUJBQ2hCO3dEQXdCTyxZQUFZO3NCQURuQixTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBeUI5QixNQUFNO3NCQURoQixLQUFLO2dCQU1LLGdCQUFnQjtzQkFEMUIsS0FBSztnQkFnQkssUUFBUTtzQkFEbEIsS0FBSztnQkFNSyxhQUFhO3NCQUR2QixNQUFNO2dCQVdJLFdBQVc7c0JBRHJCLEtBQUs7Z0JBWUssYUFBYTtzQkFEdkIsS0FBSztnQkFZSyxZQUFZO3NCQUR0QixLQUFLO2dCQVlLLFlBQVk7c0JBRHRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7XG4gIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsXG4gIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXG4gIE1hdEF1dG9jb21wbGV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJ1xuaW1wb3J0IHtcbiAgTWF0Q2hpcElucHV0RXZlbnQsXG4gIE1hdENoaXBHcmlkLFxuICBNYXRDaGlwUm93LFxuICBNYXRDaGlwUmVtb3ZlLFxuICBNYXRDaGlwSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJ1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJ1xuaW1wb3J0IHsgRU1QVFksIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBJU3VnZ2VzdGlvblByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3N1Z2dlc3Rpb24tcHJvdmlkZXInXG5pbXBvcnQgeyBGb3JtRmllbGRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Zvcm1zL2Zvcm0tZmllbGQtYmFzZS5jb21wb25lbnQnXG5pbXBvcnQgeyBidWlsZEZvcm1JbnRlZ3JhdGlvblByb3ZpZGVycyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy90ZW1wbGF0ZS1jb21wb3NpdGUtY29udHJvbCdcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSwgTWF0T3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSdcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0J1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQgeyBOZ0lmLCBOZ0ZvciwgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWxhYmVsLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xhYmVscy1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xhYmVscy1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IGJ1aWxkRm9ybUludGVncmF0aW9uUHJvdmlkZXJzKEVsZGVyTGFiZWxJbnB1dENvbXBvbmVudCksXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0Rm9ybUZpZWxkLFxuICAgIE5nSWYsXG4gICAgTWF0TGFiZWwsXG4gICAgTWF0Q2hpcEdyaWQsXG4gICAgTmdGb3IsXG4gICAgTWF0Q2hpcFJvdyxcbiAgICBNYXRJY29uLFxuICAgIE1hdENoaXBSZW1vdmUsXG4gICAgTWF0SW5wdXQsXG4gICAgTWF0Q2hpcElucHV0LFxuICAgIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRBdXRvY29tcGxldGUsXG4gICAgTWF0T3B0aW9uLFxuICAgIEFzeW5jUGlwZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyTGFiZWxJbnB1dENvbXBvbmVudDxUPiBleHRlbmRzIEZvcm1GaWVsZEJhc2VDb21wb25lbnQ8VFtdPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIHByaXZhdGUgX2NvbXBhcmVXaXRoOiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhblxuICBwcml2YXRlIF9uYW1lUmVzb2x2ZXI6IChvMTogYW55KSA9PiBzdHJpbmdcbiAgcHJpdmF0ZSBfY29sb3JSZXNvbHZlcjogKG8xOiBhbnkpID0+IFRoZW1lUGFsZXR0ZVxuICBwcml2YXRlIF9sYWJlbEJ1aWxkZXI6IChyYXdpbnB1dDogc3RyaW5nKSA9PiBhbnlbXVxuXG4gIHByaXZhdGUgX2FsbG93Q3JlYXRlID0gdHJ1ZVxuXG4gIHB1YmxpYyByZW1vdmFibGUgPSB0cnVlXG5cbiAgcHVibGljIHJlYWRvbmx5IGxhYmVsSW5wdXRDb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKClcbiAgcHVibGljIGF2YWlsYWJsZVN1Z2dlc3Rpb25zJDogT2JzZXJ2YWJsZTxhbnlbXT4gPSBFTVBUWVxuXG4gIEBWaWV3Q2hpbGQoJ2xhYmVsSW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIGlucHV0Q29udHJvbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PlxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmZsb2F0TGFiZWwgPSAnYXV0bydcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgY3VycmVudExhYmVscyQoKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSRcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbGFiZWxzKHZhbHVlOiBUW10pIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWVcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc3VnZ2VzdGlvbkxvYWRlcihwcm92aWRlcjogSVN1Z2dlc3Rpb25Qcm92aWRlcjxhbnk+KSB7XG4gICAgaWYgKHByb3ZpZGVyKSB7XG4gICAgICB0aGlzLmF2YWlsYWJsZVN1Z2dlc3Rpb25zJCA9IHRoaXMubGFiZWxJbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCg8c3RyaW5nPm51bGwpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTUwKSxcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4gcHJvdmlkZXIubG9hZFN1Z2dlc3Rpb25zKHZhbHVlKSksXG4gICAgICAgIG1hcCgobGFiZWxzKSA9PiB0aGlzLmZpbHRlck5vdFByZXNlbnQobGFiZWxzKSlcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0NhbnQgcHJvdmlkZSBzdWdnZXN0aW9ucyBzaW5jZSBubyBzdWdnZXN0aW9uIHByb3ZpZGVyIHdhcyByZWdpc3RlcmVkIScpXG4gICAgICB0aGlzLmF2YWlsYWJsZVN1Z2dlc3Rpb25zJCA9IEVNUFRZXG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhbGxvd05ldyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2FsbG93Q3JlYXRlID0gdmFsdWVcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGxhYmVsc0NoYW5nZWQoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlXG4gIH1cblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0byBjb21wYXJlIHRoZSBvcHRpb24gdmFsdWVzIHdpdGggdGhlIHNlbGVjdGVkIHZhbHVlcy4gVGhlIGZpcnN0IGFyZ3VtZW50XG4gICAqIGlzIGEgdmFsdWUgZnJvbSBhbiBvcHRpb24uIFRoZSBzZWNvbmQgaXMgYSB2YWx1ZSBmcm9tIHRoZSBzZWxlY3Rpb24uIEEgYm9vbGVhblxuICAgKiBzaG91bGQgYmUgcmV0dXJuZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNvbXBhcmVXaXRoKGZuOiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhbikge1xuICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY29tcGFyZVdpdGggbXVzdCBiZSBhIGZ1bmN0aW9uIScpXG4gICAgfVxuICAgIHRoaXMuX2NvbXBhcmVXaXRoID0gZm5cbiAgfVxuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgdGhlIGNvbG9yIG9mIGEgZ2l2ZW4gbGFiZWwgb2JqZWN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjb2xvclJlc29sdmVyKGZuOiAobzE6IGFueSkgPT4gVGhlbWVQYWxldHRlKSB7XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb2xvclJlc29sdmVyIG11c3QgYmUgYSBmdW5jdGlvbiEnKVxuICAgIH1cbiAgICB0aGlzLl9jb2xvclJlc29sdmVyID0gZm5cbiAgfVxuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgdGhlIGRpc3BsYXkgbmFtZSBvZiBhIGdpdmVuIGxhYmVsIG9iamVjdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZVJlc29sdmVyKGZuOiAobzE6IGFueSkgPT4gc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCduYW1lUmVzb2x2ZXIgbXVzdCBiZSBhIGZ1bmN0aW9uIScpXG4gICAgfVxuICAgIHRoaXMuX25hbWVSZXNvbHZlciA9IGZuXG4gIH1cblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIG9uZSBvciBtb3JlIGxhYmVscyBmb3IgYSBnaXZlbiByYXcgc3RyaW5nXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGxhYmVsQnVpbGRlcihmbjogKHJhd2lucHV0OiBzdHJpbmcpID0+IGFueVtdKSB7XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdsYWJlbEJ1aWxkZXIgbXVzdCBiZSBhIGZ1bmN0aW9uIScpXG4gICAgfVxuICAgIHRoaXMuX2xhYmVsQnVpbGRlciA9IGZuXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZS1DeWNsZSBFdmVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBsYWJlbFNlbGVjdGVkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XG4gICAgY29uc29sZS5sb2coJ2xhYmVsU2VsZWN0ZWQ6JywgZXZlbnQpXG4gICAgY29uc3Qgc2VsZWN0aW9uID0gZXZlbnQub3B0aW9uLnZhbHVlXG4gICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgdGhpcy5yZXNldElucHV0KClcbiAgICAgIHRoaXMuYWRkTGFiZWwoc2VsZWN0aW9uKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVOZXdMYWJlbHMoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2FsbG93Q3JlYXRlKSB7XG4gICAgICBjb25zdCBpbnB1dCA9IGV2ZW50LmlucHV0XG4gICAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnZhbHVlXG5cbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBjb25zdCBteUxhYmVscyA9IHRoaXMuYnVpbGRMYWJlbHModmFsdWUpXG4gICAgICAgIHRoaXMuYWRkTGFiZWxzKG15TGFiZWxzKVxuICAgICAgfVxuXG4gICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgLy8gaW5wdXQudmFsdWUgPSAnJzsgLy8gcmVzZXQgaW5wdXRcbiAgICAgICAgdGhpcy5yZXNldElucHV0KClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkTGFiZWxzKGxhYmVsczogVFtdKSB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogW11cbiAgICB0aGlzLnJlcGxhY2VXaXRoKFsuLi5jdXJyZW50LCAuLi5sYWJlbHNdKVxuICB9XG5cbiAgcHVibGljIGFkZExhYmVsKGxhYmVsOiBhbnkpIHtcbiAgICB0aGlzLmFkZExhYmVscyhbbGFiZWxdKVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUxhYmVsKHRvUmVtb3ZlOiBUKTogdm9pZCB7XG4gICAgY29uc3QgcmVtYWluaW5nID0gdGhpcy52YWx1ZS5maWx0ZXIoKGwpID0+ICF0aGlzLmFyZUVxdWFsKGwsIHRvUmVtb3ZlKSlcblxuICAgIHRoaXMucmVwbGFjZVdpdGgocmVtYWluaW5nKVxuICB9XG5cbiAgcHVibGljIHJlcGxhY2VXaXRoKGxhYmVsczogVFtdKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShsYWJlbHMpXG4gIH1cblxuICBwdWJsaWMgbGFiZWxOYW1lKGxhYmVsOiBUKTogc3RyaW5nIHtcbiAgICBpZiAobGFiZWwpIHtcbiAgICAgIHJldHVybiB0aGlzLl9uYW1lUmVzb2x2ZXIgPyB0aGlzLl9uYW1lUmVzb2x2ZXIobGFiZWwpIDogbGFiZWwudG9TdHJpbmcoKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbGFiZWxDb2xvcihsYWJlbDogVCk6IFRoZW1lUGFsZXR0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbG9yUmVzb2x2ZXIgPyB0aGlzLl9jb2xvclJlc29sdmVyKGxhYmVsKSA6IHVuZGVmaW5lZFxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZXNldElucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRDb250cm9sLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJ1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZExhYmVscyhyYXdOYW1lOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgaWYgKHRoaXMuX2xhYmVsQnVpbGRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsQnVpbGRlcihyYXdOYW1lKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW3Jhd05hbWVdXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXJOb3RQcmVzZW50KHN1Z2dlc3Rpb25zOiBhbnlbXSk6IGFueVtdIHtcbiAgICBpZiAoc3VnZ2VzdGlvbnMpIHtcbiAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiBzdWdnZXN0aW9uc1xuICAgICAgICAgIC5maWx0ZXIoKGwpID0+IGwpXG4gICAgICAgICAgLmZpbHRlcigobCkgPT4gIXRoaXMudmFsdWUuc29tZSgoZWwpID0+IHRoaXMuYXJlRXF1YWwoZWwsIGwpKSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBzdWdnZXN0aW9uc1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW11cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFyZUVxdWFsKGE6IGFueSwgYjogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbXBhcmVXaXRoID8gdGhpcy5fY29tcGFyZVdpdGgoYSwgYikgOiBhID09PSBiXG4gIH1cbn1cbiIsIjxtYXQtZm9ybS1maWVsZFxuICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcbiAgY2xhc3M9XCJmdWxsLXdpZHRoXCJcbiAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gIFtjb2xvcl09XCJjb2xvclwiXG4+XG4gIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFwiPnt7IGxhYmVsIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG5cbiAgPG1hdC1jaGlwLWdyaWQgI2NoaXBzPlxuICAgIDxtYXQtY2hpcC1yb3dcbiAgICAgICpuZ0Zvcj1cImxldCBsYWJlbCBvZiBjdXJyZW50TGFiZWxzJCB8IGFzeW5jXCJcbiAgICAgIGNsYXNzPVwibm9zZWxlY3RcIlxuICAgICAgW2NvbG9yXT1cImxhYmVsQ29sb3IobGFiZWwpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVtb3ZhYmxlXT1cInJlbW92YWJsZVwiXG4gICAgICAocmVtb3ZlZCk9XCJyZW1vdmVMYWJlbChsYWJlbClcIlxuICAgID5cbiAgICAgIHt7IGxhYmVsTmFtZShsYWJlbCkgfX1cbiAgICAgIDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlICpuZ0lmPVwiIXJlYWRvbmx5ICYmIHJlbW92YWJsZVwiPmNhbmNlbDwvbWF0LWljb24+XG4gICAgPC9tYXQtY2hpcC1yb3c+XG5cbiAgICA8aW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBzXCJcbiAgICAgIFttYXRBdXRvY29tcGxldGVdPVwibGFiZWxBdXRvQ29tcGxldGVcIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImxhYmVsSW5wdXRDb250cm9sXCJcbiAgICAgIChtYXRDaGlwSW5wdXRUb2tlbkVuZCk9XCJjcmVhdGVOZXdMYWJlbHMoJGV2ZW50KVwiXG4gICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgI2xhYmVsSW5wdXRcbiAgICAvPlxuICA8L21hdC1jaGlwLWdyaWQ+XG5cbiAgPG1hdC1hdXRvY29tcGxldGVcbiAgICAjbGFiZWxBdXRvQ29tcGxldGU9XCJtYXRBdXRvY29tcGxldGVcIlxuICAgIHBhbmVsV2lkdGg9XCJhdXRvXCJcbiAgICAob3B0aW9uU2VsZWN0ZWQpPVwibGFiZWxTZWxlY3RlZCgkZXZlbnQpXCJcbiAgPlxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdWdnZXN0aW9uIG9mIGF2YWlsYWJsZVN1Z2dlc3Rpb25zJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInN1Z2dlc3Rpb25cIj5cbiAgICAgIHt7IGxhYmVsTmFtZShzdWdnZXN0aW9uKSB9fVxuICAgIDwvbWF0LW9wdGlvbj5cbiAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuPC9tYXQtZm9ybS1maWVsZD5cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, Input, Optional, Output, Self, ViewEncapsulation } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, Input, Optional, Output, Self, ViewEncapsulation, } from '@angular/core';
2
2
  import { LoggerFactory } from '@elderbyte/ts-logger';
3
3
  import { MatFormFieldControl } from '@angular/material/form-field';
4
4
  import { Dimensions } from '../../model/dimensions';
@@ -16,11 +16,16 @@ import * as i3 from "@angular/forms";
16
16
  class DimensionsContext {
17
17
  static of(mode) {
18
18
  switch (mode) {
19
- case 'length': return new DimensionsContext(true, false, false);
20
- case 'width': return new DimensionsContext(false, true, false);
21
- case 'height': return new DimensionsContext(false, false, true);
22
- case 'area': return new DimensionsContext(true, true, false);
23
- case 'volume': return new DimensionsContext(true, true, true);
19
+ case 'length':
20
+ return new DimensionsContext(true, false, false);
21
+ case 'width':
22
+ return new DimensionsContext(false, true, false);
23
+ case 'height':
24
+ return new DimensionsContext(false, false, true);
25
+ case 'area':
26
+ return new DimensionsContext(true, true, false);
27
+ case 'volume':
28
+ return new DimensionsContext(true, true, true);
24
29
  }
25
30
  }
26
31
  constructor(lengthActive, widthActive, heightActive) {
@@ -115,7 +120,7 @@ export class ElderDimensionsInputComponent extends ElderFormFieldControlBase {
115
120
  return this._requiredHeight;
116
121
  }
117
122
  get unitChange() {
118
- return this.valueChange.pipe(map(d => d?.unit));
123
+ return this.valueChange.pipe(map((d) => d?.unit));
119
124
  }
120
125
  get unit() {
121
126
  return this.value?.unit;
@@ -129,7 +134,7 @@ export class ElderDimensionsInputComponent extends ElderFormFieldControlBase {
129
134
  }
130
135
  }
131
136
  get lengthValueChange() {
132
- return this.valueChange.pipe(map(d => d?.length));
137
+ return this.valueChange.pipe(map((d) => d?.length));
133
138
  }
134
139
  get lengthValue() {
135
140
  return this.value?.length;
@@ -143,7 +148,7 @@ export class ElderDimensionsInputComponent extends ElderFormFieldControlBase {
143
148
  }
144
149
  }
145
150
  get widthValueChange() {
146
- return this.valueChange.pipe(map(d => d?.width));
151
+ return this.valueChange.pipe(map((d) => d?.width));
147
152
  }
148
153
  get widthValue() {
149
154
  return this.value?.width;
@@ -157,7 +162,7 @@ export class ElderDimensionsInputComponent extends ElderFormFieldControlBase {
157
162
  }
158
163
  }
159
164
  get heightValueChange() {
160
- return this.valueChange.pipe(map(d => d?.height));
165
+ return this.valueChange.pipe(map((d) => d?.height));
161
166
  }
162
167
  get heightValue() {
163
168
  return this.value?.height;
@@ -199,10 +204,10 @@ export class ElderDimensionsInputComponent extends ElderFormFieldControlBase {
199
204
  if (a === b) {
200
205
  return true;
201
206
  }
202
- return a?.length === b?.length
203
- && a?.width === b?.width
204
- && a?.height === b?.height
205
- && a?.unit === b?.unit;
207
+ return (a?.length === b?.length &&
208
+ a?.width === b?.width &&
209
+ a?.height === b?.height &&
210
+ a?.unit === b?.unit);
206
211
  }
207
212
  /***************************************************************************
208
213
  * *
@@ -219,15 +224,11 @@ export class ElderDimensionsInputComponent extends ElderFormFieldControlBase {
219
224
  return Dimensions.from(this.unit, this.lengthValue, this.widthValue, value);
220
225
  }
221
226
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderDimensionsInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
222
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ElderDimensionsInputComponent, isStandalone: true, selector: "elder-dimensions-input", inputs: { name: "name", appearance: "appearance", color: "color", placeholderLength: "placeholderLength", placeholderWidth: "placeholderWidth", placeholderHeight: "placeholderHeight", displayFormat: "displayFormat", mode: "mode", requiredLength: "requiredLength", requiredWidth: "requiredWidth", requiredHeight: "requiredHeight", unit: "unit", lengthValue: "lengthValue", widthValue: "widthValue", heightValue: "heightValue" }, outputs: { unitChange: "unitChange", lengthValueChange: "lengthValueChange", widthValueChange: "widthValueChange", heightValueChange: "heightValueChange" }, providers: [
223
- { provide: MatFormFieldControl, useExisting: ElderDimensionsInputComponent },
224
- ], usesInheritance: true, ngImport: i0, template: "<div role=\"group\" class=\"layout-row place-start-baseline g-md full\"\n *ngIf=\"context$ | async as context\">\n\n <!-- elder-form-field-small -->\n <elder-quantity-input *ngIf=\"context.lengthActive\"\n [quantityValue]=\"lengthValue\"\n (quantityValueChange)=\"onLengthValueChanged($event)\"\n [unit]=\"unit\"\n [placeholder]=\"(placeholderLength ? placeholderLength : 'dimensions.length') | translate\"\n [displayFormat]=\"displayFormat\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [hideUnit]=\"!context.isLengthLast\"\n >\n </elder-quantity-input>\n\n <span class=\"noselect\" *ngIf=\"context.lengthActive && context.widthActive\">&times;</span>\n\n <elder-quantity-input *ngIf=\"context.widthActive\"\n [quantityValue]=\"widthValue\"\n (quantityValueChange)=\"onWidthValueChanged($event)\"\n [unit]=\"unit\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderWidth ? placeholderWidth : 'dimensions.width') | translate\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [hideUnit]=\"!context.isWidthLast\"\n >\n </elder-quantity-input>\n\n <span class=\"noselect\" *ngIf=\"context.widthActive && context.heightActive\">&times;</span>\n\n <elder-quantity-input *ngIf=\"context.heightActive\"\n [quantityValue]=\"heightValue\"\n (quantityValueChange)=\"onHeightValueChanged($event)\"\n [unit]=\"unit\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderHeight ? placeholderHeight : 'dimensions.height') | translate\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n <!--\n[requiredIgnoreZero]=\"requiredIgnoreZero\"\n [elderMultipleOf]=\"multipleOf\" ngModel\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredLength\"\n -->\n</div>\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ElderQuantityInputControlComponent, selector: "elder-quantity-input", inputs: ["displayFormat", "quantityValue", "unit", "hideUnit"], outputs: ["quantityValueChange", "unitChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
227
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: ElderDimensionsInputComponent, isStandalone: true, selector: "elder-dimensions-input", inputs: { name: "name", appearance: "appearance", color: "color", placeholderLength: "placeholderLength", placeholderWidth: "placeholderWidth", placeholderHeight: "placeholderHeight", displayFormat: "displayFormat", mode: "mode", requiredLength: "requiredLength", requiredWidth: "requiredWidth", requiredHeight: "requiredHeight", unit: "unit", lengthValue: "lengthValue", widthValue: "widthValue", heightValue: "heightValue" }, outputs: { unitChange: "unitChange", lengthValueChange: "lengthValueChange", widthValueChange: "widthValueChange", heightValueChange: "heightValueChange" }, providers: [{ provide: MatFormFieldControl, useExisting: ElderDimensionsInputComponent }], usesInheritance: true, ngImport: i0, template: "<div\n role=\"group\"\n class=\"layout-row place-start-baseline g-md full\"\n *ngIf=\"context$ | async as context\"\n>\n <!-- elder-form-field-small -->\n <elder-quantity-input\n *ngIf=\"context.lengthActive\"\n [quantityValue]=\"lengthValue\"\n (quantityValueChange)=\"onLengthValueChanged($event)\"\n [unit]=\"unit\"\n [placeholder]=\"(placeholderLength ? placeholderLength : 'dimensions.length') | translate\"\n [displayFormat]=\"displayFormat\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [hideUnit]=\"!context.isLengthLast\"\n >\n </elder-quantity-input>\n\n <span class=\"noselect\" *ngIf=\"context.lengthActive && context.widthActive\">&times;</span>\n\n <elder-quantity-input\n *ngIf=\"context.widthActive\"\n [quantityValue]=\"widthValue\"\n (quantityValueChange)=\"onWidthValueChanged($event)\"\n [unit]=\"unit\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderWidth ? placeholderWidth : 'dimensions.width') | translate\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [hideUnit]=\"!context.isWidthLast\"\n >\n </elder-quantity-input>\n\n <span class=\"noselect\" *ngIf=\"context.widthActive && context.heightActive\">&times;</span>\n\n <elder-quantity-input\n *ngIf=\"context.heightActive\"\n [quantityValue]=\"heightValue\"\n (quantityValueChange)=\"onHeightValueChanged($event)\"\n [unit]=\"unit\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderHeight ? placeholderHeight : 'dimensions.height') | translate\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n <!--\n[requiredIgnoreZero]=\"requiredIgnoreZero\"\n [elderMultipleOf]=\"multipleOf\" ngModel\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredLength\"\n -->\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ElderQuantityInputControlComponent, selector: "elder-quantity-input", inputs: ["displayFormat", "quantityValue", "unit", "hideUnit"], outputs: ["quantityValueChange", "unitChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
225
228
  }
226
229
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderDimensionsInputComponent, decorators: [{
227
230
  type: Component,
228
- args: [{ selector: 'elder-dimensions-input', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
229
- { provide: MatFormFieldControl, useExisting: ElderDimensionsInputComponent },
230
- ], standalone: true, imports: [NgIf, ElderQuantityInputControlComponent, AsyncPipe, TranslateModule], template: "<div role=\"group\" class=\"layout-row place-start-baseline g-md full\"\n *ngIf=\"context$ | async as context\">\n\n <!-- elder-form-field-small -->\n <elder-quantity-input *ngIf=\"context.lengthActive\"\n [quantityValue]=\"lengthValue\"\n (quantityValueChange)=\"onLengthValueChanged($event)\"\n [unit]=\"unit\"\n [placeholder]=\"(placeholderLength ? placeholderLength : 'dimensions.length') | translate\"\n [displayFormat]=\"displayFormat\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [hideUnit]=\"!context.isLengthLast\"\n >\n </elder-quantity-input>\n\n <span class=\"noselect\" *ngIf=\"context.lengthActive && context.widthActive\">&times;</span>\n\n <elder-quantity-input *ngIf=\"context.widthActive\"\n [quantityValue]=\"widthValue\"\n (quantityValueChange)=\"onWidthValueChanged($event)\"\n [unit]=\"unit\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderWidth ? placeholderWidth : 'dimensions.width') | translate\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [hideUnit]=\"!context.isWidthLast\"\n >\n </elder-quantity-input>\n\n <span class=\"noselect\" *ngIf=\"context.widthActive && context.heightActive\">&times;</span>\n\n <elder-quantity-input *ngIf=\"context.heightActive\"\n [quantityValue]=\"heightValue\"\n (quantityValueChange)=\"onHeightValueChanged($event)\"\n [unit]=\"unit\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderHeight ? placeholderHeight : 'dimensions.height') | translate\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n <!--\n[requiredIgnoreZero]=\"requiredIgnoreZero\"\n [elderMultipleOf]=\"multipleOf\" ngModel\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredLength\"\n -->\n</div>\n\n\n" }]
231
+ args: [{ selector: 'elder-dimensions-input', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: MatFormFieldControl, useExisting: ElderDimensionsInputComponent }], standalone: true, imports: [NgIf, ElderQuantityInputControlComponent, AsyncPipe, TranslateModule], template: "<div\n role=\"group\"\n class=\"layout-row place-start-baseline g-md full\"\n *ngIf=\"context$ | async as context\"\n>\n <!-- elder-form-field-small -->\n <elder-quantity-input\n *ngIf=\"context.lengthActive\"\n [quantityValue]=\"lengthValue\"\n (quantityValueChange)=\"onLengthValueChanged($event)\"\n [unit]=\"unit\"\n [placeholder]=\"(placeholderLength ? placeholderLength : 'dimensions.length') | translate\"\n [displayFormat]=\"displayFormat\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [hideUnit]=\"!context.isLengthLast\"\n >\n </elder-quantity-input>\n\n <span class=\"noselect\" *ngIf=\"context.lengthActive && context.widthActive\">&times;</span>\n\n <elder-quantity-input\n *ngIf=\"context.widthActive\"\n [quantityValue]=\"widthValue\"\n (quantityValueChange)=\"onWidthValueChanged($event)\"\n [unit]=\"unit\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderWidth ? placeholderWidth : 'dimensions.width') | translate\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [hideUnit]=\"!context.isWidthLast\"\n >\n </elder-quantity-input>\n\n <span class=\"noselect\" *ngIf=\"context.widthActive && context.heightActive\">&times;</span>\n\n <elder-quantity-input\n *ngIf=\"context.heightActive\"\n [quantityValue]=\"heightValue\"\n (quantityValueChange)=\"onHeightValueChanged($event)\"\n [unit]=\"unit\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderHeight ? placeholderHeight : 'dimensions.height') | translate\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n <!--\n[requiredIgnoreZero]=\"requiredIgnoreZero\"\n [elderMultipleOf]=\"multipleOf\" ngModel\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredLength\"\n -->\n</div>\n" }]
231
232
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.NgControl, decorators: [{
232
233
  type: Optional
233
234
  }, {
@@ -271,4 +272,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
271
272
  }], heightValue: [{
272
273
  type: Input
273
274
  }] } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL21lYXN1cmVzL2RpbWVuc2lvbnMvZGltZW5zaW9ucy1pbnB1dC9lbGRlci1kaW1lbnNpb25zLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbWVhc3VyZXMvZGltZW5zaW9ucy9kaW1lbnNpb25zLWlucHV0L2VsZGVyLWRpbWVuc2lvbnMtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUF5QixtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUUzRyxPQUFPLEVBQW1CLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxN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SztnQkFlSyxpQkFBaUI7c0JBRDNCLE1BQU07Z0JBWUksV0FBVztzQkFEckIsS0FBSztnQkFVSyxnQkFBZ0I7c0JBRDFCLE1BQU07Z0JBWUksVUFBVTtzQkFEcEIsS0FBSztnQkFVSyxpQkFBaUI7c0JBRDNCLE1BQU07Z0JBWUksV0FBVztzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2VsZixcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSwgTWF0Rm9ybUZpZWxkQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQge0RpbWVuc2lvbnN9IGZyb20gJy4uLy4uL21vZGVsL2RpbWVuc2lvbnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VW5pdH0gZnJvbSAnLi4vLi4vbW9kZWwvdW5pdCc7XG5pbXBvcnQge2NvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7VGhlbWVQYWxldHRlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7RWxkZXJGb3JtRmllbGRDb250cm9sQmFzZX0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2Zvcm1zL2VsZGVyLWZvcm0tZmllbGQtY29udHJvbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0ZvY3VzTW9uaXRvcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlLCBUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RWxkZXJRdWFudGl0eUlucHV0Q29udHJvbENvbXBvbmVudH0gZnJvbSAnLi4vLi4vcXVhbnRpdHktaW5wdXQvcXVhbnRpdHktaW5wdXQtY29udHJvbC9lbGRlci1xdWFudGl0eS1pbnB1dC1jb250cm9sLmNvbXBvbmVudCc7XG5pbXBvcnQge05nSWYsIEFzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxudHlwZSBEaW1lbnNpb25zTW9kZSA9ICdsZW5ndGgnIHwgJ3dpZHRoJyB8ICdoZWlnaHQnIHwgJ2FyZWEnIHwgJ3ZvbHVtZSc7XG5cbmNsYXNzIERpbWVuc2lvbnNDb250ZXh0IHtcblxuICBwdWJsaWMgc3RhdGljIG9mKG1vZGU6IERpbWVuc2lvbnNNb2RlKTogRGltZW5zaW9uc0NvbnRleHQge1xuICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgY2FzZSAnbGVuZ3RoJzogcmV0dXJuIG5ldyBEaW1lbnNpb25zQ29udGV4dCh0cnVlLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgY2FzZSAnd2lkdGgnOiByZXR1cm4gbmV3IERpbWVuc2lvbnNDb250ZXh0KGZhbHNlLCB0cnVlLCBmYWxzZSk7XG4gICAgICBjYXNlICdoZWlnaHQnOiByZXR1cm4gbmV3IERpbWVuc2lvbnNDb250ZXh0KGZhbHNlLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICBjYXNlICdhcmVhJzogcmV0dXJuIG5ldyBEaW1lbnNpb25zQ29udGV4dCh0cnVlLCB0cnVlLCBmYWxzZSk7XG4gICAgICBjYXNlICd2b2x1bWUnOiByZXR1cm4gbmV3IERpbWVuc2lvbnNDb250ZXh0KHRydWUsIHRydWUsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBsZW5ndGhBY3RpdmU6IGJvb2xlYW4sXG4gICAgcHVibGljIHJlYWRvbmx5IHdpZHRoQWN0aXZlOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSBoZWlnaHRBY3RpdmU6IGJvb2xlYW4sXG4gICkgeyB9XG5cbiAgcHVibGljIGdldCBpc0xlbmd0aExhc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGVuZ3RoQWN0aXZlICYmICF0aGlzLndpZHRoQWN0aXZlICYmICF0aGlzLmhlaWdodEFjdGl2ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzV2lkdGhMYXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLndpZHRoQWN0aXZlICYmICF0aGlzLmhlaWdodEFjdGl2ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzSGVpZ2h0TGFzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oZWlnaHRBY3RpdmU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzSGVpZ2h0Rmlyc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmxlbmd0aEFjdGl2ZSAmJiAhdGhpcy53aWR0aEFjdGl2ZSAmJiB0aGlzLmhlaWdodEFjdGl2ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzV2lkdGhGaXJzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMubGVuZ3RoQWN0aXZlICYmIHRoaXMud2lkdGhBY3RpdmU7XG4gIH1cbiAgcHVibGljIGdldCBpc0xlbmd0aEZpcnN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxlbmd0aEFjdGl2ZTtcbiAgfVxufVxuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWxkZXItZGltZW5zaW9ucy1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLWRpbWVuc2lvbnMtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2VsZGVyLWRpbWVuc2lvbnMtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IEVsZGVyRGltZW5zaW9uc0lucHV0Q29tcG9uZW50fSxcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIEVsZGVyUXVhbnRpdHlJbnB1dENvbnRyb2xDb21wb25lbnQsIEFzeW5jUGlwZSwgVHJhbnNsYXRlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckRpbWVuc2lvbnNJbnB1dENvbXBvbmVudCBleHRlbmRzIEVsZGVyRm9ybUZpZWxkQ29udHJvbEJhc2U8RGltZW5zaW9ucz4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIF9yZXF1aXJlZExlbmd0aCA9IGZhbHNlO1xuICBwcml2YXRlIF9yZXF1aXJlZFdpZHRoID0gZmFsc2U7XG4gIHByaXZhdGUgX3JlcXVpcmVkSGVpZ2h0ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG5hbWU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXBwZWFyYW5jZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29sb3I6IFRoZW1lUGFsZXR0ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGxhY2Vob2xkZXJMZW5ndGg6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGxhY2Vob2xkZXJXaWR0aDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwbGFjZWhvbGRlckhlaWdodDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IGZvcm1hdCBmb3IgdGhlIHF1YW50aXR5IHZhbHVlOlxuICAgKiB7bWluSW50ZWdlckRpZ2l0c30ue21pbkZyYWN0aW9uRGlnaXRzfS17bWF4RnJhY3Rpb25EaWdpdHN9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzcGxheUZvcm1hdDogc3RyaW5nID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRNb2RlOiBEaW1lbnNpb25zTW9kZSA9ICd2b2x1bWUnXG4gIHByaXZhdGUgcmVhZG9ubHkgbW9kZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERpbWVuc2lvbnNNb2RlPih0aGlzLmRlZmF1bHRNb2RlKTtcbiAgcmVhZG9ubHkgY29udGV4dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERpbWVuc2lvbnNDb250ZXh0PihEaW1lbnNpb25zQ29udGV4dC5vZih0aGlzLmRlZmF1bHRNb2RlKSk7XG5cbiAgcHJpdmF0ZSBhZnRlckluaXQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpbml0aWFsVW5pdDogVW5pdDtcbiAgcHJpdmF0ZSBpbml0aWFsTGVuZ3RoOiBudW1iZXI7XG4gIHByaXZhdGUgaW5pdGlhbFdpZHRoOiBudW1iZXI7XG4gIHByaXZhdGUgaW5pdGlhbEhlaWdodDogbnVtYmVyO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGhvc3RSZWY6IEVsZW1lbnRSZWYsXG4gICAgem9uZTogTmdab25lLFxuICAgIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgc3VwZXIoXG4gICAgICBob3N0UmVmLFxuICAgICAgJ2RpbWVuc2lvbnMtaW5wdXQnLFxuICAgICAgZm9jdXNNb25pdG9yLFxuICAgICAgdHJhbnNsYXRlU2VydmljZSxcbiAgICAgIG5nQ29udHJvbFxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IERpbWVuc2lvbnMuZnJvbShcbiAgICAgIHRoaXMuaW5pdGlhbFVuaXQsXG4gICAgICB0aGlzLmluaXRpYWxMZW5ndGgsXG4gICAgICB0aGlzLmluaXRpYWxXaWR0aCxcbiAgICAgIHRoaXMuaW5pdGlhbEhlaWdodFxuICAgICk7XG4gICAgdGhpcy5hZnRlckluaXQgPSB0cnVlO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbW9kZShtb2RlOiBEaW1lbnNpb25zTW9kZSl7XG4gICAgdGhpcy5tb2RlJC5uZXh0KG1vZGUgPz8gdGhpcy5kZWZhdWx0TW9kZSk7XG4gICAgdGhpcy5jb250ZXh0JC5uZXh0KERpbWVuc2lvbnNDb250ZXh0Lm9mKHRoaXMubW9kZSQuZ2V0VmFsdWUoKSkpXG4gIH1cblxuICBwdWJsaWMgZ2V0IG1vZGUoKTogRGltZW5zaW9uc01vZGUge1xuICAgIHJldHVybiB0aGlzLm1vZGUkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkTGVuZ3RoKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVxdWlyZWRMZW5ndGggPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCByZXF1aXJlZExlbmd0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWRMZW5ndGg7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkV2lkdGgodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZFdpZHRoID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWRXaWR0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWRXaWR0aDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWRIZWlnaHQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZEhlaWdodCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkSGVpZ2h0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZEhlaWdodDtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IHVuaXRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxVbml0IHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICBtYXAoZCA9PiBkPy51bml0KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHVuaXQoKTogVW5pdCB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU/LnVuaXQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHVuaXQodW5pdDogVW5pdCkge1xuICAgIGlmICh0aGlzLmFmdGVySW5pdCkge1xuICAgICAgdGhpcy52YWx1ZSA9IERpbWVuc2lvbnMuZnJvbShcbiAgICAgICAgdW5pdCxcbiAgICAgICAgdGhpcy52YWx1ZT8ubGVuZ3RoLFxuICAgICAgICB0aGlzLnZhbHVlPy53aWR0aCxcbiAgICAgICAgdGhpcy52YWx1ZT8uaGVpZ2h0XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXRpYWxVbml0ID0gdW5pdDtcbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBsZW5ndGhWYWx1ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUNoYW5nZS5waXBlKFxuICAgICAgbWFwKGQgPT4gZD8ubGVuZ3RoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxlbmd0aFZhbHVlKCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnZhbHVlPy5sZW5ndGg7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGxlbmd0aFZhbHVlKGxlbmd0aFZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuYWZ0ZXJJbml0KSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5kaW1lbnNpb25zT2ZMZW5ndGgobGVuZ3RoVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXRpYWxMZW5ndGggPSBsZW5ndGhWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCB3aWR0aFZhbHVlQ2hhbmdlKCk6IE9ic2VydmFibGU8bnVtYmVyIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICBtYXAoZCA9PiBkPy53aWR0aClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCB3aWR0aFZhbHVlKCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnZhbHVlPy53aWR0aDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgd2lkdGhWYWx1ZSh3aWR0aFZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuYWZ0ZXJJbml0KSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5kaW1lbnNpb25zT2ZXaWR0aCh3aWR0aFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsV2lkdGggPSB3aWR0aFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGhlaWdodFZhbHVlQ2hhbmdlKCk6IE9ic2VydmFibGU8bnVtYmVyIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICBtYXAoZCA9PiBkPy5oZWlnaHQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGVpZ2h0VmFsdWUoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU/LmhlaWdodDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgaGVpZ2h0VmFsdWUoaGVpZ2h0VmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5hZnRlckluaXQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmRpbWVuc2lvbnNPZkhlaWdodChoZWlnaHRWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdGlhbEhlaWdodCA9IGhlaWdodFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBvbkxlbmd0aFZhbHVlQ2hhbmdlZCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmRpbWVuc2lvbnNPZkxlbmd0aCh2YWx1ZSkpO1xuICB9XG5cbiAgcHVibGljIG9uV2lkdGhWYWx1ZUNoYW5nZWQodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5kaW1lbnNpb25zT2ZXaWR0aCh2YWx1ZSkpO1xuICB9XG5cbiAgcHVibGljIG9uSGVpZ2h0VmFsdWVDaGFuZ2VkKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuZGltZW5zaW9uc09mSGVpZ2h0KHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgYmx1cigpOiB2b2lkIHtcbiAgICAvLyBUT0RPIHRoaXMuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmJsdXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cyhvcHRpb25zOiBGb2N1c09wdGlvbnMgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAvLyBUT0RPIHRoaXMuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3RlY3RlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIHZhbHVlc0VxdWFscyhhOiBEaW1lbnNpb25zLCBiOiBEaW1lbnNpb25zKTogYm9vbGVhbiB7XG4gICAgaWYgKGEgPT09IGIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gYT8ubGVuZ3RoID09PSBiPy5sZW5ndGhcbiAgICAgICYmIGE/LndpZHRoID09PSBiPy53aWR0aFxuICAgICAgJiYgYT8uaGVpZ2h0ID09PSBiPy5oZWlnaHRcbiAgICAgICYmIGE/LnVuaXQgPT09IGI/LnVuaXQ7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGRpbWVuc2lvbnNPZkxlbmd0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIERpbWVuc2lvbnMuZnJvbShcbiAgICAgIHRoaXMudW5pdCxcbiAgICAgIHZhbHVlLFxuICAgICAgdGhpcy53aWR0aFZhbHVlLFxuICAgICAgdGhpcy5oZWlnaHRWYWx1ZVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGRpbWVuc2lvbnNPZldpZHRoKHZhbHVlOiBudW1iZXIpIHtcbiAgICByZXR1cm4gRGltZW5zaW9ucy5mcm9tKFxuICAgICAgdGhpcy51bml0LFxuICAgICAgdGhpcy5sZW5ndGhWYWx1ZSxcbiAgICAgIHZhbHVlLFxuICAgICAgdGhpcy5oZWlnaHRWYWx1ZVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGRpbWVuc2lvbnNPZkhlaWdodCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIERpbWVuc2lvbnMuZnJvbShcbiAgICAgIHRoaXMudW5pdCxcbiAgICAgIHRoaXMubGVuZ3RoVmFsdWUsXG4gICAgICB0aGlzLndpZHRoVmFsdWUsXG4gICAgICB2YWx1ZVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXYgcm9sZT1cImdyb3VwXCIgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWJhc2VsaW5lIGctbWQgZnVsbFwiXG4gICAgICpuZ0lmPVwiY29udGV4dCQgfCBhc3luYyBhcyBjb250ZXh0XCI+XG5cbiAgPCEtLSBlbGRlci1mb3JtLWZpZWxkLXNtYWxsIC0tPlxuICA8ZWxkZXItcXVhbnRpdHktaW5wdXQgKm5nSWY9XCJjb250ZXh0Lmxlbmd0aEFjdGl2ZVwiXG4gICAgW3F1YW50aXR5VmFsdWVdPVwibGVuZ3RoVmFsdWVcIlxuICAgIChxdWFudGl0eVZhbHVlQ2hhbmdlKT1cIm9uTGVuZ3RoVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgIFt1bml0XT1cInVuaXRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXJMZW5ndGggPyBwbGFjZWhvbGRlckxlbmd0aCA6ICdkaW1lbnNpb25zLmxlbmd0aCcpIHwgdHJhbnNsYXRlXCJcbiAgICBbZGlzcGxheUZvcm1hdF09XCJkaXNwbGF5Rm9ybWF0XCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2hpZGVVbml0XT1cIiFjb250ZXh0LmlzTGVuZ3RoTGFzdFwiXG4gID5cbiAgPC9lbGRlci1xdWFudGl0eS1pbnB1dD5cblxuICA8c3BhbiBjbGFzcz1cIm5vc2VsZWN0XCIgKm5nSWY9XCJjb250ZXh0Lmxlbmd0aEFjdGl2ZSAmJiBjb250ZXh0LndpZHRoQWN0aXZlXCI+JnRpbWVzOzwvc3Bhbj5cblxuICA8ZWxkZXItcXVhbnRpdHktaW5wdXQgKm5nSWY9XCJjb250ZXh0LndpZHRoQWN0aXZlXCJcbiAgICBbcXVhbnRpdHlWYWx1ZV09XCJ3aWR0aFZhbHVlXCJcbiAgICAocXVhbnRpdHlWYWx1ZUNoYW5nZSk9XCJvbldpZHRoVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgIFt1bml0XT1cInVuaXRcIlxuICAgIFtkaXNwbGF5Rm9ybWF0XT1cImRpc3BsYXlGb3JtYXRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXJXaWR0aCA/IHBsYWNlaG9sZGVyV2lkdGggOiAnZGltZW5zaW9ucy53aWR0aCcpIHwgdHJhbnNsYXRlXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2hpZGVVbml0XT1cIiFjb250ZXh0LmlzV2lkdGhMYXN0XCJcbiAgPlxuICA8L2VsZGVyLXF1YW50aXR5LWlucHV0PlxuXG4gIDxzcGFuIGNsYXNzPVwibm9zZWxlY3RcIiAqbmdJZj1cImNvbnRleHQud2lkdGhBY3RpdmUgJiYgY29udGV4dC5oZWlnaHRBY3RpdmVcIj4mdGltZXM7PC9zcGFuPlxuXG4gIDxlbGRlci1xdWFudGl0eS1pbnB1dCAqbmdJZj1cImNvbnRleHQuaGVpZ2h0QWN0aXZlXCJcbiAgICBbcXVhbnRpdHlWYWx1ZV09XCJoZWlnaHRWYWx1ZVwiXG4gICAgKHF1YW50aXR5VmFsdWVDaGFuZ2UpPVwib25IZWlnaHRWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgW3VuaXRdPVwidW5pdFwiXG4gICAgW2Rpc3BsYXlGb3JtYXRdPVwiZGlzcGxheUZvcm1hdFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIihwbGFjZWhvbGRlckhlaWdodCA/IHBsYWNlaG9sZGVySGVpZ2h0IDogJ2RpbWVuc2lvbnMuaGVpZ2h0JykgfCB0cmFuc2xhdGVcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgPlxuICA8L2VsZGVyLXF1YW50aXR5LWlucHV0PlxuXG4gIDwhLS1cbltyZXF1aXJlZElnbm9yZVplcm9dPVwicmVxdWlyZWRJZ25vcmVaZXJvXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZWxkZXJNdWx0aXBsZU9mXT1cIm11bHRpcGxlT2ZcIiBuZ01vZGVsXG4gICAgICAgICAgICAgICAgICAgICAgW21pbl09XCJtaW5cIlxuICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwibWF4XCJcbiAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRMZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICAgIC0tPlxuPC9kaXY+XG5cblxuIl19
275
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL21lYXN1cmVzL2RpbWVuc2lvbnMvZGltZW5zaW9ucy1pbnB1dC9lbGRlci1kaW1lbnNpb25zLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbWVhc3VyZXMvZGltZW5zaW9ucy9kaW1lbnNpb25zLWlucHV0L2VsZGVyLWRpbWVuc2lvbnMtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDcEQsT0FBTyxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQzFGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVwQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUU3RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQTtBQUU1RyxPQUFPLEVBQW9CLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRXZFLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxN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SyxpQkFBaUI7c0JBRDNCLE1BQU07Z0JBVUksV0FBVztzQkFEckIsS0FBSztnQkFVSyxnQkFBZ0I7c0JBRDFCLE1BQU07Z0JBVUksVUFBVTtzQkFEcEIsS0FBSztnQkFVSyxpQkFBaUI7c0JBRDNCLE1BQU07Z0JBVUksV0FBVztzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2VsZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRBcHBlYXJhbmNlLCBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCdcbmltcG9ydCB7IERpbWVuc2lvbnMgfSBmcm9tICcuLi8uLi9tb2RlbC9kaW1lbnNpb25zJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgVW5pdCB9IGZyb20gJy4uLy4uL21vZGVsL3VuaXQnXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQgeyBUaGVtZVBhbGV0dGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJ1xuaW1wb3J0IHsgRWxkZXJGb3JtRmllbGRDb250cm9sQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy9lbGRlci1mb3JtLWZpZWxkLWNvbnRyb2wtYmFzZS5kaXJlY3RpdmUnXG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSdcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IEVsZGVyUXVhbnRpdHlJbnB1dENvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuLi8uLi9xdWFudGl0eS1pbnB1dC9xdWFudGl0eS1pbnB1dC1jb250cm9sL2VsZGVyLXF1YW50aXR5LWlucHV0LWNvbnRyb2wuY29tcG9uZW50J1xuaW1wb3J0IHsgTmdJZiwgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuXG50eXBlIERpbWVuc2lvbnNNb2RlID0gJ2xlbmd0aCcgfCAnd2lkdGgnIHwgJ2hlaWdodCcgfCAnYXJlYScgfCAndm9sdW1lJ1xuXG5jbGFzcyBEaW1lbnNpb25zQ29udGV4dCB7XG4gIHB1YmxpYyBzdGF0aWMgb2YobW9kZTogRGltZW5zaW9uc01vZGUpOiBEaW1lbnNpb25zQ29udGV4dCB7XG4gICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICBjYXNlICdsZW5ndGgnOlxuICAgICAgICByZXR1cm4gbmV3IERpbWVuc2lvbnNDb250ZXh0KHRydWUsIGZhbHNlLCBmYWxzZSlcbiAgICAgIGNhc2UgJ3dpZHRoJzpcbiAgICAgICAgcmV0dXJuIG5ldyBEaW1lbnNpb25zQ29udGV4dChmYWxzZSwgdHJ1ZSwgZmFsc2UpXG4gICAgICBjYXNlICdoZWlnaHQnOlxuICAgICAgICByZXR1cm4gbmV3IERpbWVuc2lvbnNDb250ZXh0KGZhbHNlLCBmYWxzZSwgdHJ1ZSlcbiAgICAgIGNhc2UgJ2FyZWEnOlxuICAgICAgICByZXR1cm4gbmV3IERpbWVuc2lvbnNDb250ZXh0KHRydWUsIHRydWUsIGZhbHNlKVxuICAgICAgY2FzZSAndm9sdW1lJzpcbiAgICAgICAgcmV0dXJuIG5ldyBEaW1lbnNpb25zQ29udGV4dCh0cnVlLCB0cnVlLCB0cnVlKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBsZW5ndGhBY3RpdmU6IGJvb2xlYW4sXG4gICAgcHVibGljIHJlYWRvbmx5IHdpZHRoQWN0aXZlOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSBoZWlnaHRBY3RpdmU6IGJvb2xlYW5cbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgaXNMZW5ndGhMYXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxlbmd0aEFjdGl2ZSAmJiAhdGhpcy53aWR0aEFjdGl2ZSAmJiAhdGhpcy5oZWlnaHRBY3RpdmVcbiAgfVxuICBwdWJsaWMgZ2V0IGlzV2lkdGhMYXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLndpZHRoQWN0aXZlICYmICF0aGlzLmhlaWdodEFjdGl2ZVxuICB9XG4gIHB1YmxpYyBnZXQgaXNIZWlnaHRMYXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhlaWdodEFjdGl2ZVxuICB9XG5cbiAgcHVibGljIGdldCBpc0hlaWdodEZpcnN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5sZW5ndGhBY3RpdmUgJiYgIXRoaXMud2lkdGhBY3RpdmUgJiYgdGhpcy5oZWlnaHRBY3RpdmVcbiAgfVxuICBwdWJsaWMgZ2V0IGlzV2lkdGhGaXJzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMubGVuZ3RoQWN0aXZlICYmIHRoaXMud2lkdGhBY3RpdmVcbiAgfVxuICBwdWJsaWMgZ2V0IGlzTGVuZ3RoRmlyc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGVuZ3RoQWN0aXZlXG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItZGltZW5zaW9ucy1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1kaW1lbnNpb25zLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRWxkZXJEaW1lbnNpb25zSW5wdXRDb21wb25lbnQgfV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBFbGRlclF1YW50aXR5SW5wdXRDb250cm9sQ29tcG9uZW50LCBBc3luY1BpcGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRGltZW5zaW9uc0lucHV0Q29tcG9uZW50XG4gIGV4dGVuZHMgRWxkZXJGb3JtRmllbGRDb250cm9sQmFzZTxEaW1lbnNpb25zPlxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSlcblxuICBwcml2YXRlIF9yZXF1aXJlZExlbmd0aCA9IGZhbHNlXG4gIHByaXZhdGUgX3JlcXVpcmVkV2lkdGggPSBmYWxzZVxuICBwcml2YXRlIF9yZXF1aXJlZEhlaWdodCA9IGZhbHNlXG5cbiAgQElucHV0KClcbiAgcHVibGljIG5hbWU6IHN0cmluZ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcHBlYXJhbmNlOiBNYXRGb3JtRmllbGRBcHBlYXJhbmNlXG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbG9yOiBUaGVtZVBhbGV0dGVcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGxhY2Vob2xkZXJMZW5ndGg6IHN0cmluZ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwbGFjZWhvbGRlcldpZHRoOiBzdHJpbmdcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGxhY2Vob2xkZXJIZWlnaHQ6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IGZvcm1hdCBmb3IgdGhlIHF1YW50aXR5IHZhbHVlOlxuICAgKiB7bWluSW50ZWdlckRpZ2l0c30ue21pbkZyYWN0aW9uRGlnaXRzfS17bWF4RnJhY3Rpb25EaWdpdHN9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZGlzcGxheUZvcm1hdDogc3RyaW5nID0gbnVsbFxuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdE1vZGU6IERpbWVuc2lvbnNNb2RlID0gJ3ZvbHVtZSdcbiAgcHJpdmF0ZSByZWFkb25seSBtb2RlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGltZW5zaW9uc01vZGU+KHRoaXMuZGVmYXVsdE1vZGUpXG4gIHJlYWRvbmx5IGNvbnRleHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEaW1lbnNpb25zQ29udGV4dD4oRGltZW5zaW9uc0NvbnRleHQub2YodGhpcy5kZWZhdWx0TW9kZSkpXG5cbiAgcHJpdmF0ZSBhZnRlckluaXQgPSBmYWxzZVxuICBwcml2YXRlIGluaXRpYWxVbml0OiBVbml0XG4gIHByaXZhdGUgaW5pdGlhbExlbmd0aDogbnVtYmVyXG4gIHByaXZhdGUgaW5pdGlhbFdpZHRoOiBudW1iZXJcbiAgcHJpdmF0ZSBpbml0aWFsSGVpZ2h0OiBudW1iZXJcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBob3N0UmVmOiBFbGVtZW50UmVmLFxuICAgIHpvbmU6IE5nWm9uZSxcbiAgICBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sXG4gICkge1xuICAgIHN1cGVyKGhvc3RSZWYsICdkaW1lbnNpb25zLWlucHV0JywgZm9jdXNNb25pdG9yLCB0cmFuc2xhdGVTZXJ2aWNlLCBuZ0NvbnRyb2wpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IERpbWVuc2lvbnMuZnJvbShcbiAgICAgIHRoaXMuaW5pdGlhbFVuaXQsXG4gICAgICB0aGlzLmluaXRpYWxMZW5ndGgsXG4gICAgICB0aGlzLmluaXRpYWxXaWR0aCxcbiAgICAgIHRoaXMuaW5pdGlhbEhlaWdodFxuICAgIClcbiAgICB0aGlzLmFmdGVySW5pdCA9IHRydWVcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1vZGUobW9kZTogRGltZW5zaW9uc01vZGUpIHtcbiAgICB0aGlzLm1vZGUkLm5leHQobW9kZSA/PyB0aGlzLmRlZmF1bHRNb2RlKVxuICAgIHRoaXMuY29udGV4dCQubmV4dChEaW1lbnNpb25zQ29udGV4dC5vZih0aGlzLm1vZGUkLmdldFZhbHVlKCkpKVxuICB9XG5cbiAgcHVibGljIGdldCBtb2RlKCk6IERpbWVuc2lvbnNNb2RlIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlJC5nZXRWYWx1ZSgpXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkTGVuZ3RoKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVxdWlyZWRMZW5ndGggPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpXG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkTGVuZ3RoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZExlbmd0aFxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByZXF1aXJlZFdpZHRoKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcmVxdWlyZWRXaWR0aCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSlcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWRXaWR0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWRXaWR0aFxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByZXF1aXJlZEhlaWdodCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkSGVpZ2h0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKVxuICB9XG5cbiAgcHVibGljIGdldCByZXF1aXJlZEhlaWdodCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWRIZWlnaHRcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IHVuaXRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxVbml0IHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUobWFwKChkKSA9PiBkPy51bml0KSlcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdW5pdCgpOiBVbml0IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZT8udW5pdFxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB1bml0KHVuaXQ6IFVuaXQpIHtcbiAgICBpZiAodGhpcy5hZnRlckluaXQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBEaW1lbnNpb25zLmZyb20odW5pdCwgdGhpcy52YWx1ZT8ubGVuZ3RoLCB0aGlzLnZhbHVlPy53aWR0aCwgdGhpcy52YWx1ZT8uaGVpZ2h0KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXRpYWxVbml0ID0gdW5pdFxuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGxlbmd0aFZhbHVlQ2hhbmdlKCk6IE9ic2VydmFibGU8bnVtYmVyIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUobWFwKChkKSA9PiBkPy5sZW5ndGgpKVxuICB9XG5cbiAgcHVibGljIGdldCBsZW5ndGhWYWx1ZSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZT8ubGVuZ3RoXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGxlbmd0aFZhbHVlKGxlbmd0aFZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuYWZ0ZXJJbml0KSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5kaW1lbnNpb25zT2ZMZW5ndGgobGVuZ3RoVmFsdWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdGlhbExlbmd0aCA9IGxlbmd0aFZhbHVlXG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgd2lkdGhWYWx1ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPG51bWJlciB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUNoYW5nZS5waXBlKG1hcCgoZCkgPT4gZD8ud2lkdGgpKVxuICB9XG5cbiAgcHVibGljIGdldCB3aWR0aFZhbHVlKCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnZhbHVlPy53aWR0aFxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB3aWR0aFZhbHVlKHdpZHRoVmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5hZnRlckluaXQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmRpbWVuc2lvbnNPZldpZHRoKHdpZHRoVmFsdWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdGlhbFdpZHRoID0gd2lkdGhWYWx1ZVxuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGhlaWdodFZhbHVlQ2hhbmdlKCk6IE9ic2VydmFibGU8bnVtYmVyIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUobWFwKChkKSA9PiBkPy5oZWlnaHQpKVxuICB9XG5cbiAgcHVibGljIGdldCBoZWlnaHRWYWx1ZSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZT8uaGVpZ2h0XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGhlaWdodFZhbHVlKGhlaWdodFZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuYWZ0ZXJJbml0KSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5kaW1lbnNpb25zT2ZIZWlnaHQoaGVpZ2h0VmFsdWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdGlhbEhlaWdodCA9IGhlaWdodFZhbHVlXG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG9uTGVuZ3RoVmFsdWVDaGFuZ2VkKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuZGltZW5zaW9uc09mTGVuZ3RoKHZhbHVlKSlcbiAgfVxuXG4gIHB1YmxpYyBvbldpZHRoVmFsdWVDaGFuZ2VkKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuZGltZW5zaW9uc09mV2lkdGgodmFsdWUpKVxuICB9XG5cbiAgcHVibGljIG9uSGVpZ2h0VmFsdWVDaGFuZ2VkKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuZGltZW5zaW9uc09mSGVpZ2h0KHZhbHVlKSlcbiAgfVxuXG4gIHB1YmxpYyBibHVyKCk6IHZvaWQge1xuICAgIC8vIFRPRE8gdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uYmx1cigpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKG9wdGlvbnM6IEZvY3VzT3B0aW9ucyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIC8vIFRPRE8gdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvdGVjdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgdmFsdWVzRXF1YWxzKGE6IERpbWVuc2lvbnMsIGI6IERpbWVuc2lvbnMpOiBib29sZWFuIHtcbiAgICBpZiAoYSA9PT0gYikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIGE/Lmxlbmd0aCA9PT0gYj8ubGVuZ3RoICYmXG4gICAgICBhPy53aWR0aCA9PT0gYj8ud2lkdGggJiZcbiAgICAgIGE/LmhlaWdodCA9PT0gYj8uaGVpZ2h0ICYmXG4gICAgICBhPy51bml0ID09PSBiPy51bml0XG4gICAgKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBkaW1lbnNpb25zT2ZMZW5ndGgodmFsdWU6IG51bWJlcikge1xuICAgIHJldHVybiBEaW1lbnNpb25zLmZyb20odGhpcy51bml0LCB2YWx1ZSwgdGhpcy53aWR0aFZhbHVlLCB0aGlzLmhlaWdodFZhbHVlKVxuICB9XG5cbiAgcHJpdmF0ZSBkaW1lbnNpb25zT2ZXaWR0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIERpbWVuc2lvbnMuZnJvbSh0aGlzLnVuaXQsIHRoaXMubGVuZ3RoVmFsdWUsIHZhbHVlLCB0aGlzLmhlaWdodFZhbHVlKVxuICB9XG5cbiAgcHJpdmF0ZSBkaW1lbnNpb25zT2ZIZWlnaHQodmFsdWU6IG51bWJlcikge1xuICAgIHJldHVybiBEaW1lbnNpb25zLmZyb20odGhpcy51bml0LCB0aGlzLmxlbmd0aFZhbHVlLCB0aGlzLndpZHRoVmFsdWUsIHZhbHVlKVxuICB9XG59XG4iLCI8ZGl2XG4gIHJvbGU9XCJncm91cFwiXG4gIGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1iYXNlbGluZSBnLW1kIGZ1bGxcIlxuICAqbmdJZj1cImNvbnRleHQkIHwgYXN5bmMgYXMgY29udGV4dFwiXG4+XG4gIDwhLS0gZWxkZXItZm9ybS1maWVsZC1zbWFsbCAtLT5cbiAgPGVsZGVyLXF1YW50aXR5LWlucHV0XG4gICAgKm5nSWY9XCJjb250ZXh0Lmxlbmd0aEFjdGl2ZVwiXG4gICAgW3F1YW50aXR5VmFsdWVdPVwibGVuZ3RoVmFsdWVcIlxuICAgIChxdWFudGl0eVZhbHVlQ2hhbmdlKT1cIm9uTGVuZ3RoVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgIFt1bml0XT1cInVuaXRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXJMZW5ndGggPyBwbGFjZWhvbGRlckxlbmd0aCA6ICdkaW1lbnNpb25zLmxlbmd0aCcpIHwgdHJhbnNsYXRlXCJcbiAgICBbZGlzcGxheUZvcm1hdF09XCJkaXNwbGF5Rm9ybWF0XCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2hpZGVVbml0XT1cIiFjb250ZXh0LmlzTGVuZ3RoTGFzdFwiXG4gID5cbiAgPC9lbGRlci1xdWFudGl0eS1pbnB1dD5cblxuICA8c3BhbiBjbGFzcz1cIm5vc2VsZWN0XCIgKm5nSWY9XCJjb250ZXh0Lmxlbmd0aEFjdGl2ZSAmJiBjb250ZXh0LndpZHRoQWN0aXZlXCI+JnRpbWVzOzwvc3Bhbj5cblxuICA8ZWxkZXItcXVhbnRpdHktaW5wdXRcbiAgICAqbmdJZj1cImNvbnRleHQud2lkdGhBY3RpdmVcIlxuICAgIFtxdWFudGl0eVZhbHVlXT1cIndpZHRoVmFsdWVcIlxuICAgIChxdWFudGl0eVZhbHVlQ2hhbmdlKT1cIm9uV2lkdGhWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgW3VuaXRdPVwidW5pdFwiXG4gICAgW2Rpc3BsYXlGb3JtYXRdPVwiZGlzcGxheUZvcm1hdFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIihwbGFjZWhvbGRlcldpZHRoID8gcGxhY2Vob2xkZXJXaWR0aCA6ICdkaW1lbnNpb25zLndpZHRoJykgfCB0cmFuc2xhdGVcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbaGlkZVVuaXRdPVwiIWNvbnRleHQuaXNXaWR0aExhc3RcIlxuICA+XG4gIDwvZWxkZXItcXVhbnRpdHktaW5wdXQ+XG5cbiAgPHNwYW4gY2xhc3M9XCJub3NlbGVjdFwiICpuZ0lmPVwiY29udGV4dC53aWR0aEFjdGl2ZSAmJiBjb250ZXh0LmhlaWdodEFjdGl2ZVwiPiZ0aW1lczs8L3NwYW4+XG5cbiAgPGVsZGVyLXF1YW50aXR5LWlucHV0XG4gICAgKm5nSWY9XCJjb250ZXh0LmhlaWdodEFjdGl2ZVwiXG4gICAgW3F1YW50aXR5VmFsdWVdPVwiaGVpZ2h0VmFsdWVcIlxuICAgIChxdWFudGl0eVZhbHVlQ2hhbmdlKT1cIm9uSGVpZ2h0VmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgIFt1bml0XT1cInVuaXRcIlxuICAgIFtkaXNwbGF5Rm9ybWF0XT1cImRpc3BsYXlGb3JtYXRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCIocGxhY2Vob2xkZXJIZWlnaHQgPyBwbGFjZWhvbGRlckhlaWdodCA6ICdkaW1lbnNpb25zLmhlaWdodCcpIHwgdHJhbnNsYXRlXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gID5cbiAgPC9lbGRlci1xdWFudGl0eS1pbnB1dD5cblxuICA8IS0tXG5bcmVxdWlyZWRJZ25vcmVaZXJvXT1cInJlcXVpcmVkSWdub3JlWmVyb1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2VsZGVyTXVsdGlwbGVPZl09XCJtdWx0aXBsZU9mXCIgbmdNb2RlbFxuICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIm1heFwiXG4gICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkTGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgICAgICAtLT5cbjwvZGl2PlxuIl19
@@ -71,7 +71,7 @@ export class ElderRequiredDimensionsValidator {
71
71
  }
72
72
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderRequiredDimensionsValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
73
73
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: ElderRequiredDimensionsValidator, isStandalone: true, selector: "elder-dimensions-input[required][formControl],elder-dimensions-input[required][formControlName],elder-dimensions-input[required][ngModel]", inputs: { requiredIgnoreZero: "requiredIgnoreZero", required: "required" }, providers: [
74
- { provide: NG_VALIDATORS, useExisting: ElderRequiredDimensionsValidator, multi: true }
74
+ { provide: NG_VALIDATORS, useExisting: ElderRequiredDimensionsValidator, multi: true },
75
75
  ], ngImport: i0 }); }
76
76
  }
77
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ElderRequiredDimensionsValidator, decorators: [{
@@ -80,13 +80,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
80
80
  // eslint-disable-next-line @angular-eslint/directive-selector
81
81
  selector: 'elder-dimensions-input[required][formControl],elder-dimensions-input[required][formControlName],elder-dimensions-input[required][ngModel]',
82
82
  providers: [
83
- { provide: NG_VALIDATORS, useExisting: ElderRequiredDimensionsValidator, multi: true }
83
+ { provide: NG_VALIDATORS, useExisting: ElderRequiredDimensionsValidator, multi: true },
84
84
  ],
85
- standalone: true
85
+ standalone: true,
86
86
  }]
87
87
  }], propDecorators: { requiredIgnoreZero: [{
88
88
  type: Input
89
89
  }], required: [{
90
90
  type: Input
91
91
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcmVxdWlyZWQtZGltZW5zaW9ucy52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL21lYXN1cmVzL2RpbWVuc2lvbnMvdmFsaWRhdGlvbi9lbGRlci1yZXF1aXJlZC1kaW1lbnNpb25zLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWtCLGFBQWEsRUFBOEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFlLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7O0FBVzFFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFSN0M7UUFVRTs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUc5RCx3QkFBbUIsR0FBWSxLQUFLLENBQUM7S0F3RTlDO0lBdEVDOzs7O2dGQUk0RTtJQUU1RSxJQUNXLGtCQUFrQixDQUFDLEtBQW1CO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQ1csUUFBUSxDQUFDLEtBQW1CO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxRQUFRLENBQUMsQ0FBa0I7UUFFaEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBQyxRQUFRLEVBQUUsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLEVBQUMsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCx3RkFBd0Y7UUFDeEYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVwRSxtQkFBbUIsQ0FBQyxVQUFzQjtRQUNoRCxJQUFJLFVBQVUsRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQzVDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQWE7UUFDbEMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzhHQWpGVSxnQ0FBZ0M7a0dBQWhDLGdDQUFnQyxvUUFMOUI7WUFDUCxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGdDQUFnQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7U0FDdkY7OzJGQUdRLGdDQUFnQztrQkFSNUMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSwySUFBMkk7b0JBQ3JKLFNBQVMsRUFBRTt3QkFDUCxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxrQ0FBa0MsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO3FCQUN2RjtvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OEJBcUJZLGtCQUFrQjtzQkFENUIsS0FBSztnQkFVSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBOR19WQUxJREFUT1JTLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7RGltZW5zaW9uc30gZnJvbSAnLi4vLi4vbW9kZWwvZGltZW5zaW9ucyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdlbGRlci1kaW1lbnNpb25zLWlucHV0W3JlcXVpcmVkXVtmb3JtQ29udHJvbF0sZWxkZXItZGltZW5zaW9ucy1pbnB1dFtyZXF1aXJlZF1bZm9ybUNvbnRyb2xOYW1lXSxlbGRlci1kaW1lbnNpb25zLWlucHV0W3JlcXVpcmVkXVtuZ01vZGVsXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogRWxkZXJSZXF1aXJlZERpbWVuc2lvbnNWYWxpZGF0b3IsIG11bHRpOiB0cnVlfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclJlcXVpcmVkRGltZW5zaW9uc1ZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuO1xuICBwcml2YXRlIF9yZXF1aXJlZElnbm9yZVplcm86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkSWdub3JlWmVybyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fcmVxdWlyZWRJZ25vcmVaZXJvID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWRJZ25vcmVaZXJvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZElnbm9yZVplcm87XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgYW55IHtcblxuICAgIGxldCByZXN1bHQgPSB7fTtcblxuICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICF0aGlzLmlzRGltZW5zaW9uc0RlZmluZWQoYy52YWx1ZSkpIHtcbiAgICAgIHJlc3VsdCA9IE9iamVjdC5hc3NpZ24ocmVzdWx0LCB7cmVxdWlyZWQ6IHt2YWxpZDogZmFsc2V9fSk7XG4gICAgfVxuICAgIC8vIHRoaXMubG9nLmluZm8oJ1wiJyArIGMudmFsdWUgKyAnXCIgLS0+IHZhbGlkYXRlIHJlc3VsdDogJyArIEpTT04uc3RyaW5naWZ5KHJlc3VsdCksIGMpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGlzRGltZW5zaW9uc0RlZmluZWQoZGltZW5zaW9uczogRGltZW5zaW9ucyk6IGJvb2xlYW4ge1xuICAgIGlmIChkaW1lbnNpb25zPy51bml0ICE9IG51bGwpIHtcbiAgICAgIGlmICghdGhpcy5pc1ZhbHVlRGVmaW5lZChkaW1lbnNpb25zLmxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmlzVmFsdWVEZWZpbmVkKGRpbWVuc2lvbnMud2lkdGgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pc1ZhbHVlRGVmaW5lZChkaW1lbnNpb25zLmhlaWdodCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNWYWx1ZURlZmluZWQodmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gISh0aGlzLl9yZXF1aXJlZElnbm9yZVplcm8gJiYgdmFsdWUgPT09IDApO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxufVxuIl19
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcmVxdWlyZWQtZGltZW5zaW9ucy52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL21lYXN1cmVzL2RpbWVuc2lvbnMvdmFsaWRhdGlvbi9lbGRlci1yZXF1aXJlZC1kaW1lbnNpb25zLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNoRCxPQUFPLEVBQW1CLGFBQWEsRUFBK0IsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDcEQsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBOztBQVkzRSxNQUFNLE9BQU8sZ0NBQWdDO0lBVDdDO1FBVUU7Ozs7b0ZBSTRFO1FBRTNELFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7UUFHN0Qsd0JBQW1CLEdBQVksS0FBSyxDQUFBO0tBc0U3QztJQXBFQzs7OztnRkFJNEU7SUFFNUUsSUFDVyxrQkFBa0IsQ0FBQyxLQUFtQjtRQUMvQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDekQsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFBO0lBQ2pDLENBQUM7SUFFRCxJQUNXLFFBQVEsQ0FBQyxLQUFtQjtRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFBO0lBQ3ZCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsUUFBUSxDQUFDLENBQWtCO1FBQ2hDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQTtRQUVmLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4RCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ2hFLENBQUM7UUFDRCx3RkFBd0Y7UUFDeEYsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXBFLG1CQUFtQixDQUFDLFVBQXNCO1FBQ2hELElBQUksVUFBVSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxLQUFLLENBQUE7WUFDZCxDQUFDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzNDLE9BQU8sS0FBSyxDQUFBO1lBQ2QsQ0FBQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxPQUFPLEtBQUssQ0FBQTtZQUNkLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBYTtRQUNsQyxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQ25ELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7OEdBL0VVLGdDQUFnQztrR0FBaEMsZ0NBQWdDLG9RQUxoQztZQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZ0NBQWdDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtTQUN2Rjs7MkZBR1UsZ0NBQWdDO2tCQVQ1QyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUNOLDJJQUEySTtvQkFDN0ksU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLGtDQUFrQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7cUJBQ3ZGO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFvQlksa0JBQWtCO3NCQUQ1QixLQUFLO2dCQVVLLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTkdfVkFMSURBVE9SUywgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7IERpbWVuc2lvbnMgfSBmcm9tICcuLi8uLi9tb2RlbC9kaW1lbnNpb25zJ1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6XG4gICAgJ2VsZGVyLWRpbWVuc2lvbnMtaW5wdXRbcmVxdWlyZWRdW2Zvcm1Db250cm9sXSxlbGRlci1kaW1lbnNpb25zLWlucHV0W3JlcXVpcmVkXVtmb3JtQ29udHJvbE5hbWVdLGVsZGVyLWRpbWVuc2lvbnMtaW5wdXRbcmVxdWlyZWRdW25nTW9kZWxdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogRWxkZXJSZXF1aXJlZERpbWVuc2lvbnNWYWxpZGF0b3IsIG11bHRpOiB0cnVlIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyUmVxdWlyZWREaW1lbnNpb25zVmFsaWRhdG9yIGltcGxlbWVudHMgVmFsaWRhdG9yIHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpXG5cbiAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW5cbiAgcHJpdmF0ZSBfcmVxdWlyZWRJZ25vcmVaZXJvOiBib29sZWFuID0gZmFsc2VcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkSWdub3JlWmVybyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fcmVxdWlyZWRJZ25vcmVaZXJvID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKVxuICB9XG5cbiAgcHVibGljIGdldCByZXF1aXJlZElnbm9yZVplcm8oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkSWdub3JlWmVyb1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByZXF1aXJlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpXG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZFxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBhbnkge1xuICAgIGxldCByZXN1bHQgPSB7fVxuXG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIXRoaXMuaXNEaW1lbnNpb25zRGVmaW5lZChjLnZhbHVlKSkge1xuICAgICAgcmVzdWx0ID0gT2JqZWN0LmFzc2lnbihyZXN1bHQsIHsgcmVxdWlyZWQ6IHsgdmFsaWQ6IGZhbHNlIH0gfSlcbiAgICB9XG4gICAgLy8gdGhpcy5sb2cuaW5mbygnXCInICsgYy52YWx1ZSArICdcIiAtLT4gdmFsaWRhdGUgcmVzdWx0OiAnICsgSlNPTi5zdHJpbmdpZnkocmVzdWx0KSwgYyk7XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBpc0RpbWVuc2lvbnNEZWZpbmVkKGRpbWVuc2lvbnM6IERpbWVuc2lvbnMpOiBib29sZWFuIHtcbiAgICBpZiAoZGltZW5zaW9ucz8udW5pdCAhPSBudWxsKSB7XG4gICAgICBpZiAoIXRoaXMuaXNWYWx1ZURlZmluZWQoZGltZW5zaW9ucy5sZW5ndGgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmlzVmFsdWVEZWZpbmVkKGRpbWVuc2lvbnMud2lkdGgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmlzVmFsdWVEZWZpbmVkKGRpbWVuc2lvbnMuaGVpZ2h0KSkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbHVlRGVmaW5lZCh2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHtcbiAgICAgIHJldHVybiAhKHRoaXMuX3JlcXVpcmVkSWdub3JlWmVybyAmJiB2YWx1ZSA9PT0gMClcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cbiJdfQ==
@@ -55,11 +55,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
55
55
  type: Directive,
56
56
  args: [{
57
57
  selector: '[elderUnitSelect]',
58
- standalone: true
58
+ standalone: true,
59
59
  }]
60
60
  }], ctorParameters: () => [{ type: i1.ElderSelectComponent }, { type: i2.ElderUnitService }], propDecorators: { unitDimension: [{
61
61
  type: Input
62
62
  }], baseUnit: [{
63
63
  type: Input
64
64
  }] } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdW5pdC1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9tZWFzdXJlcy9kaXJlY3RpdmVzL2VsZGVyLXVuaXQtc2VsZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUcvQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUdqRyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDM0QsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7OztBQU03RCxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DOzs7O2dGQUk0RTtJQUU1RSxZQUNVLE1BQTRCLEVBQzVCLFdBQTZCO1FBRDdCLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUVyQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FDL0MsV0FBVyxDQUFDLGVBQWUsRUFBRSxFQUM3QixNQUFNLEVBQ04sUUFBUSxDQUFDLFFBQVEsRUFDakIsVUFBVSxDQUFDLFVBQVUsQ0FDdEIsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFDVyxhQUFhLENBQUMsYUFBNEI7UUFDbkQsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFDVyxRQUFRLENBQUMsUUFBYztRQUNoQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25FLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXBFLFlBQVk7UUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBdERVLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjt3SEE4QlksYUFBYTtzQkFEdkIsS0FBSztnQkFVSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RWxkZXJTZWxlY3RDb21wb25lbnR9IGZyb20gJy4uLy4uL3NlbGVjdC9zaW5nbGUvZWxkZXItc2VsZWN0L2VsZGVyLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtFbGRlclVuaXRTZXJ2aWNlfSBmcm9tICcuLi9lbGRlci11bml0LnNlcnZpY2UnO1xuaW1wb3J0IHtMb2NhbExpc3REYXRhU291cmNlfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhc291cmNlL2xvY2FsL2xvY2FsLWxpc3QtZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtVbml0fSBmcm9tICcuLi9tb2RlbC91bml0JztcbmltcG9ydCB7VW5pdERpbWVuc2lvbn0gZnJvbSAnLi4vbW9kZWwvdW5pdC1kaW1lbnNpb24nO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlcnMvZmlsdGVyJztcbmltcG9ydCB7U29ydFV0aWx9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlscy9zb3J0LXV0aWwnO1xuaW1wb3J0IHtGaWx0ZXJVdGlsfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbHMvZmlsdGVyLXV0aWwnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tlbGRlclVuaXRTZWxlY3RdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVW5pdFNlbGVjdERpcmVjdGl2ZSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZWxlY3Q6IEVsZGVyU2VsZWN0Q29tcG9uZW50LFxuICAgIHByaXZhdGUgdW5pdFNlcnZpY2U6IEVsZGVyVW5pdFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zZWxlY3QucGxhY2Vob2xkZXIgPSAnY29udGV4dC51bml0JztcbiAgICB0aGlzLnNlbGVjdC5kaXNwbGF5UHJvcGVydHkgPSAndW5pdFN5bWJvbCc7XG4gICAgdGhpcy5zZWxlY3QuZGF0YVNvdXJjZSA9IExvY2FsTGlzdERhdGFTb3VyY2UuZnJvbShcbiAgICAgIHVuaXRTZXJ2aWNlLmdldEFsbFVuaXRJbmZvcygpLFxuICAgICAgJ3VuaXQnLFxuICAgICAgU29ydFV0aWwuc29ydERhdGEsXG4gICAgICBGaWx0ZXJVdGlsLmZpbHRlckRhdGFcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB1bml0RGltZW5zaW9uKHVuaXREaW1lbnNpb246IFVuaXREaW1lbnNpb24pIHtcbiAgICBpZiAodW5pdERpbWVuc2lvbikge1xuICAgICAgdGhpcy5zZWxlY3QuZmlsdGVycyA9IFtuZXcgRmlsdGVyKCdkaW1lbnNpb24nLCB1bml0RGltZW5zaW9uKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBiYXNlVW5pdChiYXNlVW5pdDogVW5pdCkge1xuICAgIGlmIChiYXNlVW5pdCkge1xuICAgICAgdGhpcy51bml0RGltZW5zaW9uID0gdGhpcy51bml0U2VydmljZS5nZXRVbml0RGltZW5zaW9uKGJhc2VVbml0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXNldEZpbHRlcnMoKTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLnNlbGVjdC5maWx0ZXJzID0gW107XG4gIH1cblxufVxuIl19
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdW5pdC1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9tZWFzdXJlcy9kaXJlY3RpdmVzL2VsZGVyLXVuaXQtc2VsZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUdoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4REFBOEQsQ0FBQTtBQUdsRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQTs7OztBQU05RCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DOzs7O2dGQUk0RTtJQUU1RSxZQUNVLE1BQTRCLEVBQzVCLFdBQTZCO1FBRDdCLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUVyQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUE7UUFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFBO1FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FDL0MsV0FBVyxDQUFDLGVBQWUsRUFBRSxFQUM3QixNQUFNLEVBQ04sUUFBUSxDQUFDLFFBQVEsRUFDakIsVUFBVSxDQUFDLFVBQVUsQ0FDdEIsQ0FBQTtJQUNILENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFDVyxhQUFhLENBQUMsYUFBNEI7UUFDbkQsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFBO1FBQ2hFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFDVyxRQUFRLENBQUMsUUFBYztRQUNoQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ2xFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXBFLFlBQVk7UUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQzFCLENBQUM7OEdBckRVLHdCQUF3QjtrR0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUpwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjt3SEE2QlksYUFBYTtzQkFEdkIsS0FBSztnQkFVSyxRQUFRO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBFbGRlclNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NlbGVjdC9zaW5nbGUvZWxkZXItc2VsZWN0L2VsZGVyLXNlbGVjdC5jb21wb25lbnQnXG5pbXBvcnQgeyBFbGRlclVuaXRTZXJ2aWNlIH0gZnJvbSAnLi4vZWxkZXItdW5pdC5zZXJ2aWNlJ1xuaW1wb3J0IHsgTG9jYWxMaXN0RGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvbG9jYWwvbG9jYWwtbGlzdC1kYXRhLXNvdXJjZSdcbmltcG9ydCB7IFVuaXQgfSBmcm9tICcuLi9tb2RlbC91bml0J1xuaW1wb3J0IHsgVW5pdERpbWVuc2lvbiB9IGZyb20gJy4uL21vZGVsL3VuaXQtZGltZW5zaW9uJ1xuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2RhdGEvZmlsdGVycy9maWx0ZXInXG5pbXBvcnQgeyBTb3J0VXRpbCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlscy9zb3J0LXV0aWwnXG5pbXBvcnQgeyBGaWx0ZXJVdGlsIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxzL2ZpbHRlci11dGlsJ1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZWxkZXJVbml0U2VsZWN0XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVW5pdFNlbGVjdERpcmVjdGl2ZSB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2VsZWN0OiBFbGRlclNlbGVjdENvbXBvbmVudCxcbiAgICBwcml2YXRlIHVuaXRTZXJ2aWNlOiBFbGRlclVuaXRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc2VsZWN0LnBsYWNlaG9sZGVyID0gJ2NvbnRleHQudW5pdCdcbiAgICB0aGlzLnNlbGVjdC5kaXNwbGF5UHJvcGVydHkgPSAndW5pdFN5bWJvbCdcbiAgICB0aGlzLnNlbGVjdC5kYXRhU291cmNlID0gTG9jYWxMaXN0RGF0YVNvdXJjZS5mcm9tKFxuICAgICAgdW5pdFNlcnZpY2UuZ2V0QWxsVW5pdEluZm9zKCksXG4gICAgICAndW5pdCcsXG4gICAgICBTb3J0VXRpbC5zb3J0RGF0YSxcbiAgICAgIEZpbHRlclV0aWwuZmlsdGVyRGF0YVxuICAgIClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdW5pdERpbWVuc2lvbih1bml0RGltZW5zaW9uOiBVbml0RGltZW5zaW9uKSB7XG4gICAgaWYgKHVuaXREaW1lbnNpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0LmZpbHRlcnMgPSBbbmV3IEZpbHRlcignZGltZW5zaW9uJywgdW5pdERpbWVuc2lvbildXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzZXRGaWx0ZXJzKClcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGJhc2VVbml0KGJhc2VVbml0OiBVbml0KSB7XG4gICAgaWYgKGJhc2VVbml0KSB7XG4gICAgICB0aGlzLnVuaXREaW1lbnNpb24gPSB0aGlzLnVuaXRTZXJ2aWNlLmdldFVuaXREaW1lbnNpb24oYmFzZVVuaXQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzZXRGaWx0ZXJzKClcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLnNlbGVjdC5maWx0ZXJzID0gW11cbiAgfVxufVxuIl19