@elderbyte/ngx-starter 17.11.0 → 18.0.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 (452) hide show
  1. package/esm2022/lib/common/arrays.mjs +1 -1
  2. package/esm2022/lib/common/async/refreshing-entity.mjs +1 -1
  3. package/esm2022/lib/common/csv/csv-serializer.mjs +1 -1
  4. package/esm2022/lib/common/csv/csv-spec.mjs +1 -1
  5. package/esm2022/lib/common/data/data-context/data-context-active-page.mjs +1 -1
  6. package/esm2022/lib/common/data/data-context/data-context-auto-starter.mjs +1 -1
  7. package/esm2022/lib/common/data/data-context/data-context-base.mjs +1 -1
  8. package/esm2022/lib/common/data/data-context/data-context-builder.mjs +1 -1
  9. package/esm2022/lib/common/data/data-context/data-context-continuable-base.mjs +1 -1
  10. package/esm2022/lib/common/data/data-context/data-context-continuable-paged.mjs +1 -1
  11. package/esm2022/lib/common/data/data-context/data-context-continuable-token.mjs +1 -1
  12. package/esm2022/lib/common/data/data-context/data-context-life-cycle-binding.mjs +1 -1
  13. package/esm2022/lib/common/data/data-context/data-context-simple.mjs +1 -1
  14. package/esm2022/lib/common/data/data-context/data-context-source-event-binding.mjs +1 -1
  15. package/esm2022/lib/common/data/data-context/data-context.mjs +1 -1
  16. package/esm2022/lib/common/data/data-context/indexed-entities.mjs +1 -1
  17. package/esm2022/lib/common/data/data-context/mat-table-data-context-binding.mjs +1 -1
  18. package/esm2022/lib/common/data/datasource/data-source-adapter.mjs +1 -1
  19. package/esm2022/lib/common/data/datasource/data-source-processor.mjs +1 -1
  20. package/esm2022/lib/common/data/datasource/data-source.mjs +1 -1
  21. package/esm2022/lib/common/data/datasource/entity-id-util.mjs +1 -1
  22. package/esm2022/lib/common/data/datasource/fetcher/delegate-data-source.mjs +1 -1
  23. package/esm2022/lib/common/data/datasource/local/local-list-data-source.mjs +1 -1
  24. package/esm2022/lib/common/data/datasource/local/local-paged-data-source.mjs +1 -1
  25. package/esm2022/lib/common/data/datasource/rest/rest-client.mjs +1 -1
  26. package/esm2022/lib/common/data/entity-set-patch.mjs +1 -1
  27. package/esm2022/lib/common/data/field-comparator.mjs +1 -1
  28. package/esm2022/lib/common/data/filters/filter-commons.mjs +12 -0
  29. package/esm2022/lib/common/data/filters/filter-context.mjs +1 -1
  30. package/esm2022/lib/common/data/filters/filter-value.mjs +2 -0
  31. package/esm2022/lib/common/data/filters/filter.mjs +1 -1
  32. package/esm2022/lib/common/data/http-params-builder.mjs +1 -1
  33. package/esm2022/lib/common/data/page.mjs +1 -1
  34. package/esm2022/lib/common/data/required-filter-evaluator.mjs +1 -1
  35. package/esm2022/lib/common/data/sort-context.mjs +1 -1
  36. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +4 -4
  37. package/esm2022/lib/common/format/bytes-format.mjs +1 -1
  38. package/esm2022/lib/common/format/bytes-per-second-format.mjs +1 -1
  39. package/esm2022/lib/common/format/curency-format-util.mjs +1 -1
  40. package/esm2022/lib/common/format/duration-format-util.mjs +1 -1
  41. package/esm2022/lib/common/format/iso-interval-format-util.mjs +1 -1
  42. package/esm2022/lib/common/forms/elder-entity-value-accessor.mjs +1 -1
  43. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +4 -4
  44. package/esm2022/lib/common/forms/elder-from-field-base.mjs +4 -4
  45. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +4 -4
  46. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +4 -4
  47. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +4 -4
  48. package/esm2022/lib/common/forms/elder-multi-entity-value-accessor.mjs +1 -1
  49. package/esm2022/lib/common/forms/form-field-base.component.mjs +4 -4
  50. package/esm2022/lib/common/forms/multi-model-base.component.mjs +4 -4
  51. package/esm2022/lib/common/forms/template-composite-control.mjs +4 -4
  52. package/esm2022/lib/common/forms/value-accessor-base.mjs +4 -4
  53. package/esm2022/lib/common/http/http-client-builder.service.mjs +4 -4
  54. package/esm2022/lib/common/http/http-client-pristine.mjs +4 -4
  55. package/esm2022/lib/common/http/transfer/data-transfer-base.mjs +1 -1
  56. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +4 -4
  57. package/esm2022/lib/common/http/transfer/data-transfer-progress-aggregate.mjs +1 -1
  58. package/esm2022/lib/common/http/transfer/http-data-transfer.mjs +1 -1
  59. package/esm2022/lib/common/i18n/entity/localisation-picker.mjs +1 -1
  60. package/esm2022/lib/common/i18n/entity/translated-converter.mjs +1 -1
  61. package/esm2022/lib/common/objects.mjs +1 -1
  62. package/esm2022/lib/common/selection/selection-model.mjs +1 -1
  63. package/esm2022/lib/common/sets.mjs +1 -1
  64. package/esm2022/lib/common/templates/template-slot-manager.mjs +1 -1
  65. package/esm2022/lib/common/time/date-util.mjs +1 -1
  66. package/esm2022/lib/common/time/interval-coerce.mjs +1 -1
  67. package/esm2022/lib/common/time/interval.mjs +1 -1
  68. package/esm2022/lib/common/time/period-duration.mjs +1 -1
  69. package/esm2022/lib/common/time/time-util.mjs +1 -1
  70. package/esm2022/lib/common/url/elder-router.service.mjs +4 -4
  71. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +5 -5
  72. package/esm2022/lib/common/url/url-query-params.mjs +1 -1
  73. package/esm2022/lib/common/utils/batcher.mjs +1 -1
  74. package/esm2022/lib/common/utils/collection-util.mjs +1 -1
  75. package/esm2022/lib/common/utils/filter-util.mjs +1 -1
  76. package/esm2022/lib/common/utils/focus-util.mjs +1 -1
  77. package/esm2022/lib/common/utils/next-number-util.mjs +1 -1
  78. package/esm2022/lib/common/utils/parse-util.mjs +1 -1
  79. package/esm2022/lib/common/utils/property-path-util.mjs +1 -1
  80. package/esm2022/lib/common/utils/sort-util.mjs +1 -1
  81. package/esm2022/lib/common/utils/url-builder.mjs +1 -1
  82. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +4 -4
  83. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +5 -5
  84. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +4 -4
  85. package/esm2022/lib/components/auditing/elder-audit.module.mjs +5 -5
  86. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +10 -10
  87. package/esm2022/lib/components/badge/elder-badge.directive.mjs +4 -4
  88. package/esm2022/lib/components/badge/elder-badge.module.mjs +5 -5
  89. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +4 -4
  90. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +5 -5
  91. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +4 -4
  92. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +4 -4
  93. package/esm2022/lib/components/card-organizer/card-organizer-data.mjs +1 -1
  94. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +5 -5
  95. package/esm2022/lib/components/card-organizer/card-stack.mjs +1 -1
  96. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +5 -5
  97. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +4 -4
  98. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +19 -19
  99. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +5 -5
  100. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +4 -4
  101. package/esm2022/lib/components/chips/elder-chips.module.mjs +5 -5
  102. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +5 -5
  103. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +4 -4
  104. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +4 -4
  105. package/esm2022/lib/components/containers/elder-containers.module.mjs +5 -5
  106. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +4 -4
  107. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +4 -4
  108. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +4 -4
  109. package/esm2022/lib/components/csv/elder-csv-stream-exporter.mjs +3 -3
  110. package/esm2022/lib/components/csv/elder-csv.module.mjs +5 -5
  111. package/esm2022/lib/components/currency/elder-currency.module.mjs +5 -5
  112. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +4 -4
  113. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +5 -5
  114. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +4 -4
  115. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +4 -4
  116. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +4 -4
  117. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +4 -4
  118. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +4 -4
  119. package/esm2022/lib/components/data-view/base/data-view-options-provider-binding.mjs +1 -1
  120. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +4 -4
  121. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +4 -4
  122. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +5 -5
  123. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +7 -7
  124. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +4 -4
  125. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +4 -4
  126. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +4 -4
  127. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +12 -12
  128. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +5 -5
  129. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +4 -4
  130. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +4 -4
  131. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +4 -4
  132. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +4 -4
  133. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +5 -5
  134. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +4 -4
  135. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +4 -4
  136. package/esm2022/lib/components/data-view/master-detail/master-detail-activation-event.mjs +1 -1
  137. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +4 -4
  138. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +5 -5
  139. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +4 -4
  140. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +4 -4
  141. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +4 -4
  142. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +4 -4
  143. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +4 -4
  144. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +6 -6
  145. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +4 -4
  146. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +4 -4
  147. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +4 -4
  148. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +5 -5
  149. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +4 -4
  150. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +5 -5
  151. package/esm2022/lib/components/data-view/table/model/elder-column-layout.mjs +1 -1
  152. package/esm2022/lib/components/data-view/table/model/elder-table-model-cdk-table-binding.mjs +1 -1
  153. package/esm2022/lib/components/data-view/table/model/elder-table-model-query-group.mjs +1 -1
  154. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +4 -4
  155. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +4 -4
  156. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +5 -5
  157. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +4 -4
  158. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +4 -4
  159. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +4 -4
  160. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +4 -4
  161. package/esm2022/lib/components/errors/elder-error.module.mjs +5 -5
  162. package/esm2022/lib/components/errors/error-util.mjs +1 -1
  163. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +4 -4
  164. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +4 -4
  165. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +5 -5
  166. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +5 -5
  167. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +4 -4
  168. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +4 -4
  169. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +4 -4
  170. package/esm2022/lib/components/files/elder-file-select.directive.mjs +4 -4
  171. package/esm2022/lib/components/files/elder-file.module.mjs +5 -5
  172. package/esm2022/lib/components/files/file-select/file-select.component.mjs +4 -4
  173. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +4 -4
  174. package/esm2022/lib/components/files/listing/file-entry.mjs +1 -1
  175. package/esm2022/lib/components/files/listing/file-listing-rx.mjs +1 -1
  176. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +4 -4
  177. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +4 -4
  178. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +4 -4
  179. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +4 -4
  180. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +4 -4
  181. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +4 -4
  182. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +4 -4
  183. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +4 -4
  184. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +5 -5
  185. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +7 -17
  186. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +4 -4
  187. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +4 -4
  188. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +4 -4
  189. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +4 -4
  190. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +4 -4
  191. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +4 -4
  192. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +4 -4
  193. package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +4 -4
  194. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +4 -4
  195. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +4 -4
  196. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +4 -4
  197. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +4 -4
  198. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +4 -4
  199. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +4 -4
  200. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +4 -4
  201. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +4 -4
  202. package/esm2022/lib/components/forms/elder-forms.module.mjs +5 -5
  203. package/esm2022/lib/components/forms/search/domain/context/search-context.mjs +1 -1
  204. package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +4 -4
  205. package/esm2022/lib/components/forms/search/domain/input/input-value.mjs +2 -0
  206. package/esm2022/lib/components/forms/search/domain/input/search-input-state.mjs +14 -15
  207. package/esm2022/lib/components/forms/search/domain/input/search-input.mjs +1 -1
  208. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +4 -4
  209. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +4 -4
  210. package/esm2022/lib/components/forms/search/domain/url/search-query-params-parser.mjs +1 -1
  211. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +46 -35
  212. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +73 -48
  213. package/esm2022/lib/components/forms/search/elder-search.module.mjs +5 -5
  214. package/esm2022/lib/components/forms/search/filter/default-input-filter-converter.mjs +47 -0
  215. package/esm2022/lib/components/forms/search/filter/input-filter-converter.mjs +2 -0
  216. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +6 -6
  217. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +4 -4
  218. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +4 -4
  219. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +5 -5
  220. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +4 -4
  221. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +4 -4
  222. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +5 -5
  223. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +4 -4
  224. package/esm2022/lib/components/headers/elder-header.module.mjs +5 -5
  225. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +4 -4
  226. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +5 -5
  227. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +4 -4
  228. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +4 -4
  229. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +4 -4
  230. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +4 -4
  231. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +4 -4
  232. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +4 -4
  233. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +4 -4
  234. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +4 -4
  235. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +4 -4
  236. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +4 -4
  237. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +5 -5
  238. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +4 -4
  239. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +4 -4
  240. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +7 -7
  241. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +4 -4
  242. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +4 -4
  243. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +5 -5
  244. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +4 -4
  245. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +4 -4
  246. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +4 -4
  247. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +4 -4
  248. package/esm2022/lib/components/iframes/iframe.service.mjs +4 -4
  249. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +4 -4
  250. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +4 -4
  251. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +5 -5
  252. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +1 -1
  253. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +231 -0
  254. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +4 -4
  255. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +7 -4
  256. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +12 -12
  257. package/esm2022/lib/components/input/autocomplete/many/word-position-finder.mjs +1 -1
  258. package/esm2022/lib/components/labels/elder-labels.module.mjs +5 -5
  259. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +4 -4
  260. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +4 -4
  261. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +4 -4
  262. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +4 -4
  263. package/esm2022/lib/components/measures/elder-measures.module.mjs +9 -9
  264. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +4 -4
  265. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +4 -4
  266. package/esm2022/lib/components/measures/elder-unit.service.mjs +6 -6
  267. package/esm2022/lib/components/measures/model/unit-registry.mjs +1 -1
  268. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +4 -4
  269. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +4 -4
  270. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +4 -4
  271. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +4 -4
  272. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +4 -4
  273. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +4 -4
  274. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +5 -5
  275. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +5 -5
  276. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +4 -4
  277. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +4 -4
  278. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +4 -4
  279. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +8 -7
  280. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +5 -5
  281. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +4 -4
  282. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +4 -4
  283. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +4 -4
  284. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +4 -4
  285. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +4 -4
  286. package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +4 -4
  287. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +4 -4
  288. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +4 -4
  289. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +5 -5
  290. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +4 -4
  291. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +4 -4
  292. package/esm2022/lib/components/panels/elder-panel.module.mjs +5 -5
  293. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +4 -4
  294. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +4 -4
  295. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +10 -10
  296. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +4 -4
  297. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +5 -5
  298. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +27 -7
  299. package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +38 -0
  300. package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +66 -0
  301. package/esm2022/lib/components/select/auto/elder-select-first-util.mjs +4 -14
  302. package/esm2022/lib/components/select/elder-select-base.mjs +9 -9
  303. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +10 -10
  304. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +4 -4
  305. package/esm2022/lib/components/select/elder-select-value.directive.mjs +4 -4
  306. package/esm2022/lib/components/select/elder-select.module.mjs +36 -10
  307. package/esm2022/lib/components/select/filter/elder-chip-filter-style-resolver.mjs +74 -0
  308. package/esm2022/lib/components/select/filter/elder-chips-include-exclude.directive.mjs +144 -0
  309. package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +51 -0
  310. package/esm2022/lib/components/select/filter/include-exclude-model-filter-adapter.mjs +63 -0
  311. package/esm2022/lib/components/select/filter/include-exclude-selection-model.mjs +164 -0
  312. package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +4 -4
  313. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +4 -4
  314. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/chip-options-provider.mjs +1 -1
  315. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +10 -9
  316. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +16 -7
  317. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +4 -4
  318. package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +4 -4
  319. package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +148 -0
  320. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +4 -4
  321. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +4 -4
  322. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +4 -4
  323. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +4 -4
  324. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +9 -14
  325. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +4 -4
  326. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +4 -4
  327. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +5 -5
  328. package/esm2022/lib/components/shell/drawers/drawer-outlet-binding.mjs +1 -1
  329. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +4 -4
  330. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +4 -4
  331. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +4 -4
  332. package/esm2022/lib/components/shell/elder-shell.module.mjs +5 -5
  333. package/esm2022/lib/components/shell/elder-shell.service.mjs +4 -4
  334. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +4 -4
  335. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +13 -13
  336. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +4 -4
  337. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +4 -4
  338. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +4 -4
  339. package/esm2022/lib/components/tabs/elder-tab.module.mjs +5 -5
  340. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +4 -4
  341. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +4 -4
  342. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +4 -4
  343. package/esm2022/lib/components/theme/elder-theme.directive.mjs +4 -4
  344. package/esm2022/lib/components/theme/elder-theme.module.mjs +5 -5
  345. package/esm2022/lib/components/theme/elder-theme.service.mjs +4 -4
  346. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +4 -4
  347. package/esm2022/lib/components/time/date-formats/locale-date-formats.mjs +1 -1
  348. package/esm2022/lib/components/time/duration/duration-format.mjs +1 -1
  349. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +4 -4
  350. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +4 -4
  351. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +4 -4
  352. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +4 -4
  353. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +4 -4
  354. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +4 -4
  355. package/esm2022/lib/components/time/elder-time.module.mjs +5 -5
  356. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +4 -4
  357. package/esm2022/lib/components/time/period/period-format.mjs +1 -1
  358. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +4 -4
  359. package/esm2022/lib/components/toasts/elder-toast.module.mjs +5 -5
  360. package/esm2022/lib/components/toasts/elder-toast.service.mjs +4 -4
  361. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +5 -5
  362. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +5 -5
  363. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +4 -4
  364. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +4 -4
  365. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +5 -5
  366. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.mjs +1 -1
  367. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +4 -4
  368. package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +4 -4
  369. package/esm2022/lib/features/event-source/standard/reactive-event-source.mjs +1 -1
  370. package/esm2022/lib/features/kafent/access-token-provider.mjs +4 -4
  371. package/esm2022/lib/features/kafent/kafent-config.mjs +4 -4
  372. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +4 -4
  373. package/esm2022/lib/features/kafent/kafent-event.service.mjs +4 -4
  374. package/esm2022/lib/features/kafent/kafent.module.mjs +5 -5
  375. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +4 -4
  376. package/esm2022/lib/features/kafent/sse/kafent-topic-sse.mjs +1 -1
  377. package/esm2022/lib/pipes/bytes.pipe.mjs +4 -4
  378. package/esm2022/lib/pipes/elder-pipes.module.mjs +11 -11
  379. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +4 -4
  380. package/esm2022/lib/pipes/elder-round.pipe.mjs +4 -4
  381. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +4 -4
  382. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +4 -4
  383. package/esm2022/lib/pipes/iso-duration.pipe.mjs +4 -4
  384. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +4 -4
  385. package/esm2022/lib/pipes/iso-interval.pipe.mjs +4 -4
  386. package/esm2022/lib/pipes/time-ago.pipe.mjs +4 -4
  387. package/esm2022/lib/pipes/time-duration.pipe.mjs +4 -4
  388. package/esm2022/lib/pipes/weight.pipe.mjs +4 -4
  389. package/fesm2022/elderbyte-ngx-starter.mjs +5141 -4279
  390. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  391. package/lib/common/data/filters/filter-commons.d.ts +6 -0
  392. package/lib/common/data/filters/filter-value.d.ts +1 -0
  393. package/lib/components/forms/directives/elder-initial-value.directive.d.ts +1 -9
  394. package/lib/components/forms/search/domain/input/input-value.d.ts +1 -0
  395. package/lib/components/forms/search/domain/input/search-input-state.d.ts +11 -17
  396. package/lib/components/forms/search/domain/input/search-input.d.ts +4 -3
  397. package/lib/components/forms/search/elder-search-context.directive.d.ts +9 -4
  398. package/lib/components/forms/search/elder-search-input.directive.d.ts +28 -19
  399. package/lib/components/forms/search/filter/default-input-filter-converter.d.ts +31 -0
  400. package/lib/components/forms/search/filter/input-filter-converter.d.ts +16 -0
  401. package/lib/components/forms/search/search-box/elder-search-box.component.d.ts +2 -1
  402. package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.d.ts +3 -3
  403. package/lib/components/input/autocomplete/elder-autocomplete/{elder-autocomplete.component.d.ts → elder-suggestion-panel.component.d.ts} +17 -6
  404. package/lib/components/input/autocomplete/elder-autocomplete-many.directive.d.ts +3 -3
  405. package/lib/components/input/autocomplete/elder-autocomplete.directive.d.ts +3 -3
  406. package/lib/components/input/autocomplete/elder-autocomplete.module.d.ts +3 -3
  407. package/lib/components/navigation/toolbar/elder-toolbar-column.directive.d.ts +2 -3
  408. package/lib/components/select/auto/elder-auto-select-first.directive.d.ts +9 -1
  409. package/lib/components/select/auto/elder-auto-select-first.service.d.ts +23 -0
  410. package/lib/components/select/auto/elder-auto-select-suggest-first.directive.d.ts +32 -0
  411. package/lib/components/select/auto/elder-select-first-util.d.ts +2 -2
  412. package/lib/components/select/elder-select-base.d.ts +1 -1
  413. package/lib/components/select/elder-select.module.d.ts +10 -1
  414. package/lib/components/select/filter/elder-chip-filter-style-resolver.d.ts +19 -0
  415. package/lib/components/select/filter/elder-chips-include-exclude.directive.d.ts +50 -0
  416. package/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.d.ts +27 -0
  417. package/lib/components/select/filter/include-exclude-model-filter-adapter.d.ts +29 -0
  418. package/lib/components/select/filter/include-exclude-selection-model.d.ts +64 -0
  419. package/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.d.ts +1 -2
  420. package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +2 -0
  421. package/lib/components/select/multi/elder-search-include-exclude.directive.d.ts +78 -0
  422. package/lib/components/select/single/elder-select/elder-select.component.d.ts +0 -1
  423. package/package.json +1 -1
  424. package/src/lib/components/button-group/elder-button-group/elder-button-group.component.scss +1 -1
  425. package/src/lib/components/card-organizer/card-stack/elder-card-stack.component.scss +3 -3
  426. package/src/lib/components/cards/elder-card/elder-card.component.scss +2 -2
  427. package/src/lib/components/chips/_elder-chip-theme.scss +6 -6
  428. package/src/lib/components/data-view/grid/elder-grid/elder-grid.component.scss +8 -8
  429. package/src/lib/components/data-view/table/elder-table/elder-table.component.scss +6 -6
  430. package/src/lib/components/errors/exception-detail/elder-exception-detail.component.scss +1 -1
  431. package/src/lib/components/expand-toggle-button/elder-expand-toggle-button.component.scss +1 -1
  432. package/src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.scss +6 -6
  433. package/src/lib/components/navigation/nav/_elder-nav-theme.scss +11 -11
  434. package/src/lib/components/panels/card-panel/elder-card-panel.component.scss +2 -2
  435. package/src/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.scss +2 -2
  436. package/src/lib/components/panels/flat/_elder-panel-theme.scss +5 -5
  437. package/src/lib/components/select/_elder-select-base.scss +2 -2
  438. package/src/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.scss +95 -0
  439. package/src/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.scss +5 -5
  440. package/src/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.scss +5 -5
  441. package/src/lib/components/select/multi/elder-select-include-exclude-chip/elder-select-include-exclude-chip.component.scss +0 -0
  442. package/src/lib/components/select/single/elder-select/elder-select.component.scss +5 -5
  443. package/src/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.scss +2 -2
  444. package/src/lib/components/time/_elder-time-input.theme.scss +2 -2
  445. package/theming/_elder-mdc-support.scss +13 -13
  446. package/theming/_elder-palettes.scss +1 -1
  447. package/theming/_elder-scrollbar-theme.scss +2 -2
  448. package/theming/_elder-theme.scss +1 -1
  449. package/theming/_elder-toast-theme.scss +3 -3
  450. package/theming/_elder-typography-utils.scss +2 -2
  451. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +0 -186
  452. /package/src/lib/components/input/autocomplete/elder-autocomplete/{elder-autocomplete.component.scss → elder-suggestion-panel.component.scss} +0 -0
@@ -89,11 +89,14 @@ export class ElderAutocompleteDirective {
89
89
  // this.updateState(ElderSelectComponentState.error(err));
90
90
  }
91
91
  }
92
+ else {
93
+ this.logger.warn('No DataContext available to update suggestions!');
94
+ }
92
95
  }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderAutocompleteDirective, deps: [{ token: i1.MatAutocompleteTrigger }], target: i0.ɵɵFactoryTarget.Directive }); }
94
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.11", type: ElderAutocompleteDirective, isStandalone: true, selector: "[elderAutocomplete]", inputs: { queryFilter: "queryFilter", filters: "filters", sorts: "sorts", autocomplete: ["elderAutocomplete", "autocomplete"] }, host: { listeners: { "keyup": "onKeyUp($event)" } }, ngImport: i0 }); }
96
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderAutocompleteDirective, deps: [{ token: i1.MatAutocompleteTrigger }], target: i0.ɵɵFactoryTarget.Directive }); }
97
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: ElderAutocompleteDirective, isStandalone: true, selector: "[elderAutocomplete]", inputs: { queryFilter: "queryFilter", filters: "filters", sorts: "sorts", autocomplete: ["elderAutocomplete", "autocomplete"] }, host: { listeners: { "keyup": "onKeyUp($event)" } }, ngImport: i0 }); }
95
98
  }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderAutocompleteDirective, decorators: [{
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderAutocompleteDirective, decorators: [{
97
100
  type: Directive,
98
101
  args: [{
99
102
  selector: '[elderAutocomplete]',
@@ -112,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
112
115
  type: Input,
113
116
  args: ['elderAutocomplete']
114
117
  }] } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQvYXV0b2NvbXBsZXRlL2VsZGVyLWF1dG9jb21wbGV0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHbkQsT0FBTyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUNBQXFDLENBQUM7OztBQVEzRCxNQUFNLE9BQU8sMEJBQTBCO0lBMkJyQzs7OztnRkFJNEU7SUFFNUUsWUFDbUIsbUJBQTJDO1FBQTNDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFoQzlEOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhELGVBQVUsR0FBRyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2xFLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7UUFHcEQsZ0JBQVcsR0FBRyxPQUFPLENBQUM7UUFHdEIsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUd2QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBSVQsMkJBQXNCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUM3QyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQVdoRCxDQUFDO0lBSUQ7Ozs7Z0ZBSTRFO0lBR3JFLE9BQU8sQ0FBQyxLQUFvQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM5QyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLFFBQVE7UUFDYixLQUFLLENBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ25CLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUNoRCxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLENBQUMsRUFBRSxNQUEyQixFQUFFLEtBQUssQ0FBQyxDQUNqRCxFQUNELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUNqQyxDQUFDLElBQUksQ0FDSixTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUN4QixNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FDdEYsQ0FBQyxTQUFTLENBQ1QsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQ3ZDLENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQ1csWUFBWSxDQUFDLElBQWdDO1FBQ3RELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25DLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLGdCQUFnQjtpQkFDbEIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFDdEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUM3QjtpQkFDQSxTQUFTLENBQ1IsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FDM0QsQ0FBQztTQUNMO0lBQ0gsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXBFLGlCQUFpQixDQUFDLEtBQXlDO1FBQ2pFLE1BQU0sT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQU8sS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM1RSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJO2dCQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQzthQUN4QztZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUM5QywwREFBMEQ7YUFDM0Q7U0FDRjtJQUNILENBQUM7K0dBbElVLDBCQUEwQjttR0FBMUIsMEJBQTBCOzs0RkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjsyRkFlUSxXQUFXO3NCQURqQixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBNEJDLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNEN0QixZQUFZO3NCQUR0QixLQUFLO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7TWF0QXV0b2NvbXBsZXRlVHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7RWxkZXJBdXRvY29tcGxldGVDb21wb25lbnR9IGZyb20gJy4vZWxkZXItYXV0b2NvbXBsZXRlL2VsZGVyLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHttZXJnZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIHNraXBXaGlsZSwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2RhdGEvZmlsdGVycy9maWx0ZXInO1xuaW1wb3J0IHtJRGF0YUNvbnRleHR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtTb3J0fSBmcm9tICcuLi8uLi8uLi9jb21tb24vZGF0YS9zb3J0JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZWxkZXJBdXRvY29tcGxldGVdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQXV0b2NvbXBsZXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlnbm9yZUtleXMgPSBbJ0Fycm93UmlnaHQnLCAnQXJyb3dVcCcsICdBcnJvd0Rvd24nLCAnQXJyb3dMZWZ0J107XG4gIHB1YmxpYyByZWFkb25seSBpbnB1dEtleXVwJCA9IG5ldyBTdWJqZWN0PEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHF1ZXJ5RmlsdGVyID0gJ3F1ZXJ5JztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmlsdGVyczogRmlsdGVyW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc29ydHM6IFNvcnRbXSA9IFtdO1xuXG4gIHByaXZhdGUgX2VsZGVyQXV0b2NvbXBsZXRlOiBFbGRlckF1dG9jb21wbGV0ZUNvbXBvbmVudDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lNYXRBdXRvQmluZGluZyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dG9Db21wbGV0ZVRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXJcbiAgKSB7XG4gIH1cblxuXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEhvc3QgTGlzdGVuZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmlnbm9yZUtleXMuc29tZShrID0+IGsgPT09IGV2ZW50LmtleSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnB1dEtleXVwJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBtZXJnZShcbiAgICAgIHRoaXMuaW5wdXRLZXl1cCQucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKGUgPT4gIXRoaXMuX2VsZGVyQXV0b2NvbXBsZXRlLmVuYWJsZWQpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTUwKSxcbiAgICAgICAgbWFwKGUgPT4gKGU/LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KT8udmFsdWUpLFxuICAgICAgKSxcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlLnRyaWdnZXJSZWxvYWQkXG4gICAgKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgZmlsdGVyKHZhbHVlID0+ICF2YWx1ZSB8fCB0eXBlb2YgKHZhbHVlKSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mICh2YWx1ZSkgPT09ICdudW1iZXInKVxuICAgICkuc3Vic2NyaWJlKFxuICAgICAgdmFsdWUgPT4gdGhpcy51cGRhdGVTdWdnZXN0aW9ucyh2YWx1ZSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB0aGlzLmRlc3Ryb3lNYXRBdXRvQmluZGluZyQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveU1hdEF1dG9CaW5kaW5nJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KCdlbGRlckF1dG9jb21wbGV0ZScpXG4gIHB1YmxpYyBzZXQgYXV0b2NvbXBsZXRlKGF1dG86IEVsZGVyQXV0b2NvbXBsZXRlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fZWxkZXJBdXRvY29tcGxldGUgPSBhdXRvO1xuICAgIHRoaXMuZGVzdHJveU1hdEF1dG9CaW5kaW5nJC5uZXh0KCk7XG4gICAgaWYgKGF1dG8pIHtcbiAgICAgIGF1dG8ubWF0QXV0b2NvbXBsZXRlJFxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95TWF0QXV0b0JpbmRpbmckKSxcbiAgICAgICAgICBmaWx0ZXIobWF0QXV0byA9PiAhIW1hdEF1dG8pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICBtYXRBdXRvID0+IHRoaXMuYXV0b0NvbXBsZXRlVHJpZ2dlci5hdXRvY29tcGxldGUgPSBtYXRBdXRvXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBhdXRvY29tcGxldGUoKTogRWxkZXJBdXRvY29tcGxldGVDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLl9lbGRlckF1dG9jb21wbGV0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YUNvbnRleHQoKTogSURhdGFDb250ZXh0PGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9lbGRlckF1dG9jb21wbGV0ZS5kYXRhQ29udGV4dDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgdXBkYXRlU3VnZ2VzdGlvbnModmFsdWU6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gWy4uLnRoaXMuZmlsdGVycywgbmV3IEZpbHRlcih0aGlzLnF1ZXJ5RmlsdGVyLCA8YW55PnZhbHVlKV07XG4gICAgY29uc3Qgc29ydHMgPSB0aGlzLnNvcnRzO1xuICAgIGlmICh0aGlzLmRhdGFDb250ZXh0KSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmRhdGFDb250ZXh0LnN0YXJ0KHNvcnRzLCBmaWx0ZXJzKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IERDIScsIGVycik7XG4gICAgICAgIC8vIHRoaXMudXBkYXRlU3RhdGUoRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5lcnJvcihlcnIpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQvYXV0b2NvbXBsZXRlL2VsZGVyLWF1dG9jb21wbGV0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHbkQsT0FBTyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUNBQXFDLENBQUM7OztBQVEzRCxNQUFNLE9BQU8sMEJBQTBCO0lBMkJyQzs7OztnRkFJNEU7SUFFNUUsWUFDbUIsbUJBQTJDO1FBQTNDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFoQzlEOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhELGVBQVUsR0FBRyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2xFLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7UUFHcEQsZ0JBQVcsR0FBRyxPQUFPLENBQUM7UUFHdEIsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUd2QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBSVQsMkJBQXNCLEdBQUcsSUFBSSxP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RSxPQUFPLENBQUMsQ0FBQztZQUN6QyxDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDOUMsMERBQTBEO1lBQzVELENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxDQUFDLENBQUE7UUFDckUsQ0FBQztJQUNILENBQUM7OEdBcElVLDBCQUEwQjtrR0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjsyRkFlUSxXQUFXO3NCQURqQixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBNEJDLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNEN0QixZQUFZO3NCQUR0QixLQUFLO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7TWF0QXV0b2NvbXBsZXRlVHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7RWxkZXJTdWdnZXN0aW9uUGFuZWxDb21wb25lbnR9IGZyb20gJy4vZWxkZXItYXV0b2NvbXBsZXRlL2VsZGVyLXN1Z2dlc3Rpb24tcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7bWVyZ2UsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBza2lwV2hpbGUsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlcnMvZmlsdGVyJztcbmltcG9ydCB7SURhdGFDb250ZXh0fSBmcm9tICcuLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0JztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2RhdGEvc29ydCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tlbGRlckF1dG9jb21wbGV0ZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQXV0b2NvbXBsZXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlnbm9yZUtleXMgPSBbJ0Fycm93UmlnaHQnLCAnQXJyb3dVcCcsICdBcnJvd0Rvd24nLCAnQXJyb3dMZWZ0J107XG4gIHB1YmxpYyByZWFkb25seSBpbnB1dEtleXVwJCA9IG5ldyBTdWJqZWN0PEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHF1ZXJ5RmlsdGVyID0gJ3F1ZXJ5JztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmlsdGVyczogRmlsdGVyW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc29ydHM6IFNvcnRbXSA9IFtdO1xuXG4gIHByaXZhdGUgX2VsZGVyQXV0b2NvbXBsZXRlOiBFbGRlclN1Z2dlc3Rpb25QYW5lbENvbXBvbmVudDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lNYXRBdXRvQmluZGluZyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dG9Db21wbGV0ZVRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXJcbiAgKSB7XG4gIH1cblxuXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEhvc3QgTGlzdGVuZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5dXAnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmlnbm9yZUtleXMuc29tZShrID0+IGsgPT09IGV2ZW50LmtleSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnB1dEtleXVwJC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBtZXJnZShcbiAgICAgIHRoaXMuaW5wdXRLZXl1cCQucGlwZShcbiAgICAgICAgc2tpcFdoaWxlKGUgPT4gIXRoaXMuX2VsZGVyQXV0b2NvbXBsZXRlLmVuYWJsZWQpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTUwKSxcbiAgICAgICAgbWFwKGUgPT4gKGU/LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KT8udmFsdWUpLFxuICAgICAgKSxcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlLnRyaWdnZXJSZWxvYWQkXG4gICAgKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgZmlsdGVyKHZhbHVlID0+ICF2YWx1ZSB8fCB0eXBlb2YgKHZhbHVlKSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mICh2YWx1ZSkgPT09ICdudW1iZXInKVxuICAgICkuc3Vic2NyaWJlKFxuICAgICAgdmFsdWUgPT4gdGhpcy51cGRhdGVTdWdnZXN0aW9ucyh2YWx1ZSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB0aGlzLmRlc3Ryb3lNYXRBdXRvQmluZGluZyQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveU1hdEF1dG9CaW5kaW5nJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KCdlbGRlckF1dG9jb21wbGV0ZScpXG4gIHB1YmxpYyBzZXQgYXV0b2NvbXBsZXRlKGF1dG86IEVsZGVyU3VnZ2VzdGlvblBhbmVsQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fZWxkZXJBdXRvY29tcGxldGUgPSBhdXRvO1xuICAgIHRoaXMuZGVzdHJveU1hdEF1dG9CaW5kaW5nJC5uZXh0KCk7XG4gICAgaWYgKGF1dG8pIHtcbiAgICAgIGF1dG8ubWF0QXV0b2NvbXBsZXRlJFxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95TWF0QXV0b0JpbmRpbmckKSxcbiAgICAgICAgICBmaWx0ZXIobWF0QXV0byA9PiAhIW1hdEF1dG8pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICBtYXRBdXRvID0+IHRoaXMuYXV0b0NvbXBsZXRlVHJpZ2dlci5hdXRvY29tcGxldGUgPSBtYXRBdXRvXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBhdXRvY29tcGxldGUoKTogRWxkZXJTdWdnZXN0aW9uUGFuZWxDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLl9lbGRlckF1dG9jb21wbGV0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YUNvbnRleHQoKTogSURhdGFDb250ZXh0PGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9lbGRlckF1dG9jb21wbGV0ZS5kYXRhQ29udGV4dDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgdXBkYXRlU3VnZ2VzdGlvbnModmFsdWU6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGwpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJzID0gWy4uLnRoaXMuZmlsdGVycywgbmV3IEZpbHRlcih0aGlzLnF1ZXJ5RmlsdGVyLCA8YW55PnZhbHVlKV07XG4gICAgY29uc3Qgc29ydHMgPSB0aGlzLnNvcnRzO1xuICAgIGlmICh0aGlzLmRhdGFDb250ZXh0KSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmRhdGFDb250ZXh0LnN0YXJ0KHNvcnRzLCBmaWx0ZXJzKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignRmFpbGVkIHRvIHN0YXJ0IERDIScsIGVycik7XG4gICAgICAgIC8vIHRoaXMudXBkYXRlU3RhdGUoRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5lcnJvcihlcnIpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIud2FybignTm8gRGF0YUNvbnRleHQgYXZhaWxhYmxlIHRvIHVwZGF0ZSBzdWdnZXN0aW9ucyEnKVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { ElderAutocompleteComponent } from './elder-autocomplete/elder-autocomplete.component';
3
+ import { ElderSuggestionPanelComponent } from './elder-autocomplete/elder-suggestion-panel.component';
4
4
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
5
5
  import { ElderInfiniteScrollModule } from '../../infinitescroll/elder-infinite-scroll.module';
6
6
  import { MatIconModule } from '@angular/material/icon';
@@ -10,35 +10,35 @@ import { ReactiveFormsModule } from '@angular/forms';
10
10
  import { MatInputModule } from '@angular/material/input';
11
11
  import { ElderAutocompleteManyDirective } from './elder-autocomplete-many.directive';
12
12
  import * as i0 from "@angular/core";
13
- export { ElderAutocompleteComponent } from './elder-autocomplete/elder-autocomplete.component';
13
+ export { ElderSuggestionPanelComponent } from './elder-autocomplete/elder-suggestion-panel.component';
14
14
  export { ElderAutocompleteManyDirective } from './elder-autocomplete-many.directive';
15
15
  export { ElderAutocompleteDirective } from './elder-autocomplete.directive';
16
16
  export class ElderAutocompleteModule {
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: ElderAutocompleteModule, imports: [CommonModule, ReactiveFormsModule,
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: ElderAutocompleteModule, imports: [CommonModule, ReactiveFormsModule,
19
19
  MatInputModule,
20
20
  MatAutocompleteModule,
21
21
  ElderInfiniteScrollModule,
22
22
  MatIconModule,
23
23
  MatProgressBarModule,
24
- ElderAutocompleteComponent,
24
+ ElderSuggestionPanelComponent,
25
25
  ElderAutocompleteDirective,
26
- ElderAutocompleteManyDirective], exports: [ElderAutocompleteComponent,
26
+ ElderAutocompleteManyDirective], exports: [ElderSuggestionPanelComponent,
27
27
  ElderAutocompleteDirective,
28
28
  ElderAutocompleteManyDirective] }); }
29
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderAutocompleteModule, imports: [CommonModule, ReactiveFormsModule,
29
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderAutocompleteModule, imports: [CommonModule, ReactiveFormsModule,
30
30
  MatInputModule,
31
31
  MatAutocompleteModule,
32
32
  ElderInfiniteScrollModule,
33
33
  MatIconModule,
34
34
  MatProgressBarModule,
35
- ElderAutocompleteComponent] }); }
35
+ ElderSuggestionPanelComponent] }); }
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderAutocompleteModule, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderAutocompleteModule, decorators: [{
38
38
  type: NgModule,
39
39
  args: [{
40
40
  exports: [
41
- ElderAutocompleteComponent,
41
+ ElderSuggestionPanelComponent,
42
42
  ElderAutocompleteDirective,
43
43
  ElderAutocompleteManyDirective
44
44
  ],
@@ -49,10 +49,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
49
49
  ElderInfiniteScrollModule,
50
50
  MatIconModule,
51
51
  MatProgressBarModule,
52
- ElderAutocompleteComponent,
52
+ ElderSuggestionPanelComponent,
53
53
  ElderAutocompleteDirective,
54
54
  ElderAutocompleteManyDirective,
55
55
  ]
56
56
  }]
57
57
  }] });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYXV0b2NvbXBsZXRlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQvYXV0b2NvbXBsZXRlL2VsZGVyLWF1dG9jb21wbGV0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDNUYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFbkYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDbkYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFvQjFFLE1BQU0sT0FBTyx1QkFBdUI7K0dBQXZCLHVCQUF1QjtnSEFBdkIsdUJBQXVCLFlBWDVCLFlBQVksRUFBRSxtQkFBbUI7WUFDakMsY0FBYztZQUNkLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIsYUFBYTtZQUNiLG9CQUFvQjtZQUNwQiwwQkFBMEI7WUFDMUIsMEJBQTBCO1lBQzFCLDhCQUE4QixhQWI5QiwwQkFBMEI7WUFDMUIsMEJBQTBCO1lBQzFCLDhCQUE4QjtnSEFjekIsdUJBQXVCLFlBWDVCLFlBQVksRUFBRSxtQkFBbUI7WUFDakMsY0FBYztZQUNkLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIsYUFBYTtZQUNiLG9CQUFvQjtZQUNwQiwwQkFBMEI7OzRGQUtyQix1QkFBdUI7a0JBbEJuQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCwwQkFBMEI7d0JBQzFCLDBCQUEwQjt3QkFDMUIsOEJBQThCO3FCQUNqQztvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWSxFQUFFLG1CQUFtQjt3QkFDakMsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLDBCQUEwQjt3QkFDMUIsMEJBQTBCO3dCQUMxQiw4QkFBOEI7cUJBQ2pDO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RWxkZXJBdXRvY29tcGxldGVDb21wb25lbnR9IGZyb20gJy4vZWxkZXItYXV0b2NvbXBsZXRlL2VsZGVyLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRBdXRvY29tcGxldGVNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQge0VsZGVySW5maW5pdGVTY3JvbGxNb2R1bGV9IGZyb20gJy4uLy4uL2luZmluaXRlc2Nyb2xsL2VsZGVyLWluZmluaXRlLXNjcm9sbC5tb2R1bGUnO1xuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0UHJvZ3Jlc3NCYXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQge0VsZGVyQXV0b2NvbXBsZXRlRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLWF1dG9jb21wbGV0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge0VsZGVyQXV0b2NvbXBsZXRlTWFueURpcmVjdGl2ZX0gZnJvbSAnLi9lbGRlci1hdXRvY29tcGxldGUtbWFueS5kaXJlY3RpdmUnO1xuXG5leHBvcnQge0VsZGVyQXV0b2NvbXBsZXRlQ29tcG9uZW50fSBmcm9tICcuL2VsZGVyLWF1dG9jb21wbGV0ZS9lbGRlci1hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmV4cG9ydCB7RWxkZXJBdXRvY29tcGxldGVNYW55RGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLWF1dG9jb21wbGV0ZS1tYW55LmRpcmVjdGl2ZSc7XG5leHBvcnQge0VsZGVyQXV0b2NvbXBsZXRlRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLWF1dG9jb21wbGV0ZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgRWxkZXJBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgICAgIEVsZGVyQXV0b2NvbXBsZXRlRGlyZWN0aXZlLFxuICAgICAgICBFbGRlckF1dG9jb21wbGV0ZU1hbnlEaXJlY3RpdmVcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgICAgICBFbGRlckluZmluaXRlU2Nyb2xsTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICAgICAgRWxkZXJBdXRvY29tcGxldGVDb21wb25lbnQsXG4gICAgICAgIEVsZGVyQXV0b2NvbXBsZXRlRGlyZWN0aXZlLFxuICAgICAgICBFbGRlckF1dG9jb21wbGV0ZU1hbnlEaXJlY3RpdmUsXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckF1dG9jb21wbGV0ZU1vZHVsZSB7IH1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItYXV0b2NvbXBsZXRlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQvYXV0b2NvbXBsZXRlL2VsZGVyLWF1dG9jb21wbGV0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDNUYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzFFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFbkYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDbkYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFvQjFFLE1BQU0sT0FBTyx1QkFBdUI7OEdBQXZCLHVCQUF1QjsrR0FBdkIsdUJBQXVCLFlBWDVCLFlBQVksRUFBRSxtQkFBbUI7WUFDakMsY0FBYztZQUNkLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIsYUFBYTtZQUNiLG9CQUFvQjtZQUNwQiw2QkFBNkI7WUFDN0IsMEJBQTBCO1lBQzFCLDhCQUE4QixhQWI5Qiw2QkFBNkI7WUFDN0IsMEJBQTBCO1lBQzFCLDhCQUE4QjsrR0FjekIsdUJBQXVCLFlBWDVCLFlBQVksRUFBRSxtQkFBbUI7WUFDakMsY0FBYztZQUNkLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIsYUFBYTtZQUNiLG9CQUFvQjtZQUNwQiw2QkFBNkI7OzJGQUt4Qix1QkFBdUI7a0JBbEJuQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCw2QkFBNkI7d0JBQzdCLDBCQUEwQjt3QkFDMUIsOEJBQThCO3FCQUNqQztvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWSxFQUFFLG1CQUFtQjt3QkFDakMsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLHlCQUF5Qjt3QkFDekIsYUFBYTt3QkFDYixvQkFBb0I7d0JBQ3BCLDZCQUE2Qjt3QkFDN0IsMEJBQTBCO3dCQUMxQiw4QkFBOEI7cUJBQ2pDO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RWxkZXJTdWdnZXN0aW9uUGFuZWxDb21wb25lbnR9IGZyb20gJy4vZWxkZXItYXV0b2NvbXBsZXRlL2VsZGVyLXN1Z2dlc3Rpb24tcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7TWF0QXV0b2NvbXBsZXRlTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHtFbGRlckluZmluaXRlU2Nyb2xsTW9kdWxlfSBmcm9tICcuLi8uLi9pbmZpbml0ZXNjcm9sbC9lbGRlci1pbmZpbml0ZS1zY3JvbGwubW9kdWxlJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdFByb2dyZXNzQmFyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHtFbGRlckF1dG9jb21wbGV0ZURpcmVjdGl2ZX0gZnJvbSAnLi9lbGRlci1hdXRvY29tcGxldGUuZGlyZWN0aXZlJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNYXRJbnB1dE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHtFbGRlckF1dG9jb21wbGV0ZU1hbnlEaXJlY3RpdmV9IGZyb20gJy4vZWxkZXItYXV0b2NvbXBsZXRlLW1hbnkuZGlyZWN0aXZlJztcblxuZXhwb3J0IHtFbGRlclN1Z2dlc3Rpb25QYW5lbENvbXBvbmVudH0gZnJvbSAnLi9lbGRlci1hdXRvY29tcGxldGUvZWxkZXItc3VnZ2VzdGlvbi1wYW5lbC5jb21wb25lbnQnO1xuZXhwb3J0IHtFbGRlckF1dG9jb21wbGV0ZU1hbnlEaXJlY3RpdmV9IGZyb20gJy4vZWxkZXItYXV0b2NvbXBsZXRlLW1hbnkuZGlyZWN0aXZlJztcbmV4cG9ydCB7RWxkZXJBdXRvY29tcGxldGVEaXJlY3RpdmV9IGZyb20gJy4vZWxkZXItYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZXhwb3J0czogW1xuICAgICAgICBFbGRlclN1Z2dlc3Rpb25QYW5lbENvbXBvbmVudCxcbiAgICAgICAgRWxkZXJBdXRvY29tcGxldGVEaXJlY3RpdmUsXG4gICAgICAgIEVsZGVyQXV0b2NvbXBsZXRlTWFueURpcmVjdGl2ZVxuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXG4gICAgICAgIEVsZGVySW5maW5pdGVTY3JvbGxNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgICAgICBFbGRlclN1Z2dlc3Rpb25QYW5lbENvbXBvbmVudCxcbiAgICAgICAgRWxkZXJBdXRvY29tcGxldGVEaXJlY3RpdmUsXG4gICAgICAgIEVsZGVyQXV0b2NvbXBsZXRlTWFueURpcmVjdGl2ZSxcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQXV0b2NvbXBsZXRlTW9kdWxlIHsgfVxuIl19
@@ -55,4 +55,4 @@ export class WordPositionFinder {
55
55
  return new ReplacementResult(newText, new TextRange(beforePos, beforePos + replacement.length, replacement));
56
56
  }
57
57
  }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1wb3NpdGlvbi1maW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L2F1dG9jb21wbGV0ZS9tYW55L3dvcmQtcG9zaXRpb24tZmluZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFlBQ1MsS0FBYSxFQUNiLEdBQVcsRUFDWCxLQUFhO1FBRmIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDWCxVQUFLLEdBQUwsS0FBSyxDQUFRO0lBRXRCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDUyxPQUFlLEVBQ2YsUUFBbUI7UUFEbkIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGFBQVEsR0FBUixRQUFRLENBQVc7SUFFNUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGtCQUFrQjtJQUV0QixRQUFRLENBQUMsSUFBWSxFQUFFLFFBQWdCO1FBQzVDLElBQUcsUUFBUSxJQUFJLENBQUMsRUFBQztZQUNmLDJDQUEyQztZQUMzQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFOUMsaURBQWlEO1lBQ2pELElBQUksS0FBSyxHQUFHLENBQUMsRUFBRTtnQkFDYixLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQzthQUNyQjtpQkFBTTtnQkFDTCxLQUFLLElBQUksUUFBUSxDQUFDO2FBQ25CO1lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDekMsT0FBTyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3pDO2FBQU07WUFDTCxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7SUFHTSxXQUFXLENBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsV0FBbUI7UUFFcEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFOUMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXZELElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLE1BQU0sRUFBRTtZQUNWLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDMUI7UUFFRCxJQUFHLFdBQVcsRUFBQztZQUNiLElBQUksT0FBTyxFQUFFO2dCQUNYLE9BQU8sSUFBSSxHQUFHLENBQUM7YUFDaEI7WUFDRCxPQUFPLElBQUksV0FBVyxDQUFDO1NBQ3hCO1FBRUQsSUFBRyxLQUFLLEVBQUM7WUFDUCxJQUFJLE9BQU8sRUFBRTtnQkFDWCxPQUFPLElBQUksR0FBRyxDQUFDO2FBQ2hCO1lBQ0QsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN6QjtRQUVELE9BQU8sSUFBSSxpQkFBaUIsQ0FDMUIsT0FBTyxFQUNQLElBQUksU0FBUyxDQUNYLFNBQVMsRUFDVCxTQUFTLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQzVDLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIlxuZXhwb3J0IGNsYXNzIFRleHRSYW5nZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzdGFydDogbnVtYmVyLFxuICAgIHB1YmxpYyBlbmQ6IG51bWJlcixcbiAgICBwdWJsaWMgdmFsdWU6IHN0cmluZ1xuICApIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVwbGFjZW1lbnRSZXN1bHQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbmV3VGV4dDogc3RyaW5nLFxuICAgIHB1YmxpYyByZXBsYWNlZDogVGV4dFJhbmdlXG4gICkge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBXb3JkUG9zaXRpb25GaW5kZXIge1xuXG4gIHB1YmxpYyBmaW5kV29yZCh0ZXh0OiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIpOiBUZXh0UmFuZ2Uge1xuICAgIGlmKHBvc2l0aW9uID49IDApe1xuICAgICAgLy8gU2VhcmNoIGZvciB0aGUgd29yZCdzIGJlZ2lubmluZyBhbmQgZW5kLlxuICAgICAgY29uc3QgbGVmdCA9IHRleHQuc2xpY2UoMCwgcG9zaXRpb24pLnNlYXJjaCgvXFxTKyQvKTtcbiAgICAgIGxldCByaWdodCA9IHRleHQuc2xpY2UocG9zaXRpb24pLnNlYXJjaCgvXFxzLyk7XG5cbiAgICAgIC8vIFRoZSBsYXN0IHdvcmQgaW4gdGhlIHN0cmluZyBpcyBhIHNwZWNpYWwgY2FzZS5cbiAgICAgIGlmIChyaWdodCA8IDApIHtcbiAgICAgICAgcmlnaHQgPSB0ZXh0Lmxlbmd0aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJpZ2h0ICs9IHBvc2l0aW9uO1xuICAgICAgfVxuICAgICAgY29uc3Qgd29yZCA9IHRleHQuc3Vic3RyaW5nKGxlZnQsIHJpZ2h0KTtcbiAgICAgIHJldHVybiBuZXcgVGV4dFJhbmdlKGxlZnQsIHJpZ2h0LCB3b3JkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBUZXh0UmFuZ2UodGV4dC5sZW5ndGgsIHRleHQubGVuZ3RoLCB1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIHJlcGxhY2VXb3JkKHRleHQ6IHN0cmluZywgcG9zaXRpb246IG51bWJlciwgcmVwbGFjZW1lbnQ6IHN0cmluZyk6IFJlcGxhY2VtZW50UmVzdWx0IHtcblxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmZpbmRXb3JkKHRleHQsIHBvc2l0aW9uKTtcblxuICAgIGNvbnN0IGJlZm9yZVBvcyA9IGN1cnJlbnQuc3RhcnQ7XG4gICAgY29uc3QgYmVmb3JlID0gdGV4dC5zdWJzdHJpbmcoMCwgYmVmb3JlUG9zKTtcbiAgICBjb25zdCBhZnRlciA9IHRleHQuc3Vic3RyaW5nKGN1cnJlbnQuZW5kLCB0ZXh0Lmxlbmd0aCk7XG5cbiAgICBsZXQgbmV3VGV4dCA9ICcnO1xuICAgIGlmIChiZWZvcmUpIHtcbiAgICAgIG5ld1RleHQgKz0gYmVmb3JlLnRyaW0oKTtcbiAgICB9XG5cbiAgICBpZihyZXBsYWNlbWVudCl7XG4gICAgICBpZiAobmV3VGV4dCkge1xuICAgICAgICBuZXdUZXh0ICs9ICcgJztcbiAgICAgIH1cbiAgICAgIG5ld1RleHQgKz0gcmVwbGFjZW1lbnQ7XG4gICAgfVxuXG4gICAgaWYoYWZ0ZXIpe1xuICAgICAgaWYgKG5ld1RleHQpIHtcbiAgICAgICAgbmV3VGV4dCArPSAnICc7XG4gICAgICB9XG4gICAgICBuZXdUZXh0ICs9IGFmdGVyLnRyaW0oKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFJlcGxhY2VtZW50UmVzdWx0KFxuICAgICAgbmV3VGV4dCxcbiAgICAgIG5ldyBUZXh0UmFuZ2UoXG4gICAgICAgIGJlZm9yZVBvcyxcbiAgICAgICAgYmVmb3JlUG9zICsgcmVwbGFjZW1lbnQubGVuZ3RoLCByZXBsYWNlbWVudFxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yZC1wb3NpdGlvbi1maW5kZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L2F1dG9jb21wbGV0ZS9tYW55L3dvcmQtcG9zaXRpb24tZmluZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFlBQ1MsS0FBYSxFQUNiLEdBQVcsRUFDWCxLQUFhO1FBRmIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDWCxVQUFLLEdBQUwsS0FBSyxDQUFRO0lBRXRCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDUyxPQUFlLEVBQ2YsUUFBbUI7UUFEbkIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGFBQVEsR0FBUixRQUFRLENBQVc7SUFFNUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGtCQUFrQjtJQUV0QixRQUFRLENBQUMsSUFBWSxFQUFFLFFBQWdCO1FBQzVDLElBQUcsUUFBUSxJQUFJLENBQUMsRUFBQyxDQUFDO1lBQ2hCLDJDQUEyQztZQUMzQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFOUMsaURBQWlEO1lBQ2pELElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNkLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3RCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixLQUFLLElBQUksUUFBUSxDQUFDO1lBQ3BCLENBQUM7WUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6QyxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUdNLFdBQVcsQ0FBQyxJQUFZLEVBQUUsUUFBZ0IsRUFBRSxXQUFtQjtRQUVwRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztRQUU5QyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdkQsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFFRCxJQUFHLFdBQVcsRUFBQyxDQUFDO1lBQ2QsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixPQUFPLElBQUksR0FBRyxDQUFDO1lBQ2pCLENBQUM7WUFDRCxPQUFPLElBQUksV0FBVyxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFHLEtBQUssRUFBQyxDQUFDO1lBQ1IsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixPQUFPLElBQUksR0FBRyxDQUFDO1lBQ2pCLENBQUM7WUFDRCxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFFRCxPQUFPLElBQUksaUJBQWlCLENBQzFCLE9BQU8sRUFDUCxJQUFJLFNBQVMsQ0FDWCxTQUFTLEVBQ1QsU0FBUyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUM1QyxDQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBjbGFzcyBUZXh0UmFuZ2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc3RhcnQ6IG51bWJlcixcbiAgICBwdWJsaWMgZW5kOiBudW1iZXIsXG4gICAgcHVibGljIHZhbHVlOiBzdHJpbmdcbiAgKSB7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlcGxhY2VtZW50UmVzdWx0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5ld1RleHQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVwbGFjZWQ6IFRleHRSYW5nZVxuICApIHtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgV29yZFBvc2l0aW9uRmluZGVyIHtcblxuICBwdWJsaWMgZmluZFdvcmQodGV4dDogc3RyaW5nLCBwb3NpdGlvbjogbnVtYmVyKTogVGV4dFJhbmdlIHtcbiAgICBpZihwb3NpdGlvbiA+PSAwKXtcbiAgICAgIC8vIFNlYXJjaCBmb3IgdGhlIHdvcmQncyBiZWdpbm5pbmcgYW5kIGVuZC5cbiAgICAgIGNvbnN0IGxlZnQgPSB0ZXh0LnNsaWNlKDAsIHBvc2l0aW9uKS5zZWFyY2goL1xcUyskLyk7XG4gICAgICBsZXQgcmlnaHQgPSB0ZXh0LnNsaWNlKHBvc2l0aW9uKS5zZWFyY2goL1xccy8pO1xuXG4gICAgICAvLyBUaGUgbGFzdCB3b3JkIGluIHRoZSBzdHJpbmcgaXMgYSBzcGVjaWFsIGNhc2UuXG4gICAgICBpZiAocmlnaHQgPCAwKSB7XG4gICAgICAgIHJpZ2h0ID0gdGV4dC5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByaWdodCArPSBwb3NpdGlvbjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHdvcmQgPSB0ZXh0LnN1YnN0cmluZyhsZWZ0LCByaWdodCk7XG4gICAgICByZXR1cm4gbmV3IFRleHRSYW5nZShsZWZ0LCByaWdodCwgd29yZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBuZXcgVGV4dFJhbmdlKHRleHQubGVuZ3RoLCB0ZXh0Lmxlbmd0aCwgdW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuXG4gIHB1YmxpYyByZXBsYWNlV29yZCh0ZXh0OiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIsIHJlcGxhY2VtZW50OiBzdHJpbmcpOiBSZXBsYWNlbWVudFJlc3VsdCB7XG5cbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5maW5kV29yZCh0ZXh0LCBwb3NpdGlvbik7XG5cbiAgICBjb25zdCBiZWZvcmVQb3MgPSBjdXJyZW50LnN0YXJ0O1xuICAgIGNvbnN0IGJlZm9yZSA9IHRleHQuc3Vic3RyaW5nKDAsIGJlZm9yZVBvcyk7XG4gICAgY29uc3QgYWZ0ZXIgPSB0ZXh0LnN1YnN0cmluZyhjdXJyZW50LmVuZCwgdGV4dC5sZW5ndGgpO1xuXG4gICAgbGV0IG5ld1RleHQgPSAnJztcbiAgICBpZiAoYmVmb3JlKSB7XG4gICAgICBuZXdUZXh0ICs9IGJlZm9yZS50cmltKCk7XG4gICAgfVxuXG4gICAgaWYocmVwbGFjZW1lbnQpe1xuICAgICAgaWYgKG5ld1RleHQpIHtcbiAgICAgICAgbmV3VGV4dCArPSAnICc7XG4gICAgICB9XG4gICAgICBuZXdUZXh0ICs9IHJlcGxhY2VtZW50O1xuICAgIH1cblxuICAgIGlmKGFmdGVyKXtcbiAgICAgIGlmIChuZXdUZXh0KSB7XG4gICAgICAgIG5ld1RleHQgKz0gJyAnO1xuICAgICAgfVxuICAgICAgbmV3VGV4dCArPSBhZnRlci50cmltKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBSZXBsYWNlbWVudFJlc3VsdChcbiAgICAgIG5ld1RleHQsXG4gICAgICBuZXcgVGV4dFJhbmdlKFxuICAgICAgICBiZWZvcmVQb3MsXG4gICAgICAgIGJlZm9yZVBvcyArIHJlcGxhY2VtZW50Lmxlbmd0aCwgcmVwbGFjZW1lbnRcbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -10,15 +10,15 @@ import { TranslateModule } from '@ngx-translate/core';
10
10
  import * as i0 from "@angular/core";
11
11
  export { ElderLabelInputComponent } from './labels-input/labels-input.component';
12
12
  export class ElderLabelsModule {
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderLabelsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
14
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: ElderLabelsModule, imports: [CommonModule, FormsModule, ReactiveFormsModule,
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLabelsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
14
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: ElderLabelsModule, imports: [CommonModule, FormsModule, ReactiveFormsModule,
15
15
  MatIconModule, MatInputModule, MatChipsModule, MatAutocompleteModule, TranslateModule,
16
16
  ElderLabelInputComponent], exports: [ElderLabelInputComponent] }); }
17
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderLabelsModule, imports: [CommonModule, FormsModule, ReactiveFormsModule,
17
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLabelsModule, imports: [CommonModule, FormsModule, ReactiveFormsModule,
18
18
  MatIconModule, MatInputModule, MatChipsModule, MatAutocompleteModule, TranslateModule,
19
19
  ElderLabelInputComponent] }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderLabelsModule, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLabelsModule, decorators: [{
22
22
  type: NgModule,
23
23
  args: [{
24
24
  imports: [
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
29
29
  exports: [ElderLabelInputComponent]
30
30
  }]
31
31
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbGFiZWxzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbGFiZWxzL2VsZGVyLWxhYmVscy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFcEQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFVL0UsTUFBTSxPQUFPLGlCQUFpQjsrR0FBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsWUFOdEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUI7WUFDOUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsZUFBZTtZQUNyRix3QkFBd0IsYUFFbEIsd0JBQXdCO2dIQUV6QixpQkFBaUIsWUFOdEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUI7WUFDOUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsZUFBZTtZQUNyRix3QkFBd0I7OzRGQUluQixpQkFBaUI7a0JBUjdCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CO3dCQUM5QyxhQUFhLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxlQUFlO3dCQUNyRix3QkFBd0I7cUJBQzNCO29CQUNELE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0VsZGVyTGFiZWxJbnB1dENvbXBvbmVudH0gZnJvbSAnLi9sYWJlbHMtaW5wdXQvbGFiZWxzLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge01hdEF1dG9jb21wbGV0ZU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7TWF0Q2hpcHNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmV4cG9ydCB7RWxkZXJMYWJlbElucHV0Q29tcG9uZW50fSBmcm9tICcuL2xhYmVscy1pbnB1dC9sYWJlbHMtaW5wdXQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsIE1hdElucHV0TW9kdWxlLCBNYXRDaGlwc01vZHVsZSwgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIEVsZGVyTGFiZWxJbnB1dENvbXBvbmVudCxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtFbGRlckxhYmVsSW5wdXRDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyTGFiZWxzTW9kdWxlIHsgfVxuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbGFiZWxzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbGFiZWxzL2VsZGVyLWxhYmVscy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFcEQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFVL0UsTUFBTSxPQUFPLGlCQUFpQjs4R0FBakIsaUJBQWlCOytHQUFqQixpQkFBaUIsWUFOdEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUI7WUFDOUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsZUFBZTtZQUNyRix3QkFBd0IsYUFFbEIsd0JBQXdCOytHQUV6QixpQkFBaUIsWUFOdEIsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUI7WUFDOUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsZUFBZTtZQUNyRix3QkFBd0I7OzJGQUluQixpQkFBaUI7a0JBUjdCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CO3dCQUM5QyxhQUFhLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxlQUFlO3dCQUNyRix3QkFBd0I7cUJBQzNCO29CQUNELE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0VsZGVyTGFiZWxJbnB1dENvbXBvbmVudH0gZnJvbSAnLi9sYWJlbHMtaW5wdXQvbGFiZWxzLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQge01hdEF1dG9jb21wbGV0ZU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7TWF0Q2hpcHNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdElucHV0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmV4cG9ydCB7RWxkZXJMYWJlbElucHV0Q29tcG9uZW50fSBmcm9tICcuL2xhYmVscy1pbnB1dC9sYWJlbHMtaW5wdXQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsIE1hdElucHV0TW9kdWxlLCBNYXRDaGlwc01vZHVsZSwgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIEVsZGVyTGFiZWxJbnB1dENvbXBvbmVudCxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtFbGRlckxhYmVsSW5wdXRDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyTGFiZWxzTW9kdWxlIHsgfVxuIl19
@@ -193,10 +193,10 @@ export class ElderLabelInputComponent extends FormFieldBaseComponent {
193
193
  areEqual(a, b) {
194
194
  return this._compareWith ? this._compareWith(a, b) : a === b;
195
195
  }
196
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderLabelInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
197
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", 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.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLabelInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
197
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", 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 }); }
198
198
  }
199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderLabelInputComponent, decorators: [{
199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderLabelInputComponent, decorators: [{
200
200
  type: Component,
201
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"] }]
202
202
  }], ctorParameters: () => [], propDecorators: { inputControl: [{
@@ -219,4 +219,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
219
219
  }], labelBuilder: [{
220
220
  type: Input
221
221
  }] } });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWxzLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbGFiZWxzL2xhYmVscy1pbnB1dC9sYWJlbHMtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9sYWJlbHMvbGFiZWxzLWlucHV0L2xhYmVscy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQStCLHNCQUFzQixFQUFFLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JILE9BQU8sRUFBb0IsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEgsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQy9GLE9BQU8sRUFBZSxTQUFTLEVBQUMsTUFB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UyxnSkFBRSxTQUFTLDZDQUFFLGVBQWU7OzRGQUUvTix3QkFBd0I7a0JBVHBDLFNBQVM7K0JBQ0ksbUJBQW1CLGFBR2xCLDZCQUE2QiwwQkFBMEIsbUJBQ2pELHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUM7d0RBeUJuTyxZQUFZO3NCQURuQixTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBMEI1QixNQUFNO3NCQURoQixLQUFLO2dCQU1LLGdCQUFnQjtzQkFEMUIsS0FBSztnQkFnQkssUUFBUTtzQkFEbEIsS0FBSztnQkFNSyxhQUFhO3NCQUR2QixNQUFNO2dCQVdJLFdBQVc7c0JBRHJCLEtBQUs7Z0JBYUssYUFBYTtzQkFEdkIsS0FBSztnQkFZSyxZQUFZO3NCQUR0QixLQUFLO2dCQVlLLFlBQVk7c0JBRHRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VW50eXBlZEZvcm1Db250cm9sLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLCBNYXRBdXRvY29tcGxldGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQge01hdENoaXBJbnB1dEV2ZW50LCBNYXRDaGlwR3JpZCwgTWF0Q2hpcFJvdywgTWF0Q2hpcFJlbW92ZSwgTWF0Q2hpcElucHV0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7RU1QVFksIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SVN1Z2dlc3Rpb25Qcm92aWRlcn0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3N1Z2dlc3Rpb24tcHJvdmlkZXInO1xuaW1wb3J0IHtGb3JtRmllbGRCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9jb21tb24vZm9ybXMvZm9ybS1maWVsZC1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQge2J1aWxkRm9ybUludGVncmF0aW9uUHJvdmlkZXJzfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZm9ybXMvdGVtcGxhdGUtY29tcG9zaXRlLWNvbnRyb2wnO1xuaW1wb3J0IHtUaGVtZVBhbGV0dGUsIE1hdE9wdGlvbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01hdElucHV0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQge01hdEljb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtOZ0lmLCBOZ0ZvciwgQXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtNYXRGb3JtRmllbGQsIE1hdExhYmVsfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlbGRlci1sYWJlbC1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xhYmVscy1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGFiZWxzLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBidWlsZEZvcm1JbnRlZ3JhdGlvblByb3ZpZGVycyhFbGRlckxhYmVsSW5wdXRDb21wb25lbnQpLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW01hdEZvcm1GaWVsZCwgTmdJZiwgTWF0TGFiZWwsIE1hdENoaXBHcmlkLCBOZ0ZvciwgTWF0Q2hpcFJvdywgTWF0SWNvbiwgTWF0Q2hpcFJlbW92ZSwgTWF0SW5wdXQsIE1hdENoaXBJbnB1dCwgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdEF1dG9jb21wbGV0ZSwgTWF0T3B0aW9uLCBBc3luY1BpcGUsIFRyYW5zbGF0ZU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJMYWJlbElucHV0Q29tcG9uZW50PFQ+IGV4dGVuZHMgRm9ybUZpZWxkQmFzZUNvbXBvbmVudDxUW10+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSBfY29tcGFyZVdpdGg6IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuO1xuICBwcml2YXRlIF9uYW1lUmVzb2x2ZXI6IChvMTogYW55KSA9PiBzdHJpbmc7XG4gIHByaXZhdGUgX2NvbG9yUmVzb2x2ZXI6IChvMTogYW55KSA9PiBUaGVtZVBhbGV0dGU7XG4gIHByaXZhdGUgX2xhYmVsQnVpbGRlcjogKHJhd2lucHV0OiBzdHJpbmcpID0+IGFueVtdO1xuXG4gIHByaXZhdGUgX2FsbG93Q3JlYXRlID0gdHJ1ZTtcblxuICBwdWJsaWMgcmVtb3ZhYmxlID0gdHJ1ZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbGFiZWxJbnB1dENvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcbiAgcHVibGljIGF2YWlsYWJsZVN1Z2dlc3Rpb25zJDogT2JzZXJ2YWJsZTxhbnlbXT4gPSBFTVBUWTtcblxuICBAVmlld0NoaWxkKCdsYWJlbElucHV0Jywge3N0YXRpYzogdHJ1ZX0pXG4gIHByaXZhdGUgaW5wdXRDb250cm9sOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuZmxvYXRMYWJlbCA9ICdhdXRvJztcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgY3VycmVudExhYmVscyQoKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZSQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGxhYmVscyh2YWx1ZTogVFtdKSB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzdWdnZXN0aW9uTG9hZGVyKHByb3ZpZGVyOiBJU3VnZ2VzdGlvblByb3ZpZGVyPGFueT4pIHtcbiAgICBpZiAocHJvdmlkZXIpIHtcbiAgICAgIHRoaXMuYXZhaWxhYmxlU3VnZ2VzdGlvbnMkID0gdGhpcy5sYWJlbElucHV0Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKDxzdHJpbmc+bnVsbCksXG4gICAgICAgIGRlYm91bmNlVGltZSgxNTApLFxuICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PiBwcm92aWRlci5sb2FkU3VnZ2VzdGlvbnModmFsdWUpKSxcbiAgICAgICAgbWFwKGxhYmVscyA9PiB0aGlzLmZpbHRlck5vdFByZXNlbnQobGFiZWxzKSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdDYW50IHByb3ZpZGUgc3VnZ2VzdGlvbnMgc2luY2Ugbm8gc3VnZ2VzdGlvbiBwcm92aWRlciB3YXMgcmVnaXN0ZXJlZCEnKTtcbiAgICAgIHRoaXMuYXZhaWxhYmxlU3VnZ2VzdGlvbnMkID0gRU1QVFk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhbGxvd05ldyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2FsbG93Q3JlYXRlID0gdmFsdWU7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBsYWJlbHNDaGFuZ2VkKCk6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZUNoYW5nZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRvIGNvbXBhcmUgdGhlIG9wdGlvbiB2YWx1ZXMgd2l0aCB0aGUgc2VsZWN0ZWQgdmFsdWVzLiBUaGUgZmlyc3QgYXJndW1lbnRcbiAgICogaXMgYSB2YWx1ZSBmcm9tIGFuIG9wdGlvbi4gVGhlIHNlY29uZCBpcyBhIHZhbHVlIGZyb20gdGhlIHNlbGVjdGlvbi4gQSBib29sZWFuXG4gICAqIHNob3VsZCBiZSByZXR1cm5lZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29tcGFyZVdpdGgoZm46IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuKSB7XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb21wYXJlV2l0aCBtdXN0IGJlIGEgZnVuY3Rpb24hJyk7XG4gICAgfVxuICAgIHRoaXMuX2NvbXBhcmVXaXRoID0gZm47XG4gIH1cblxuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgdGhlIGNvbG9yIG9mIGEgZ2l2ZW4gbGFiZWwgb2JqZWN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjb2xvclJlc29sdmVyKGZuOiAobzE6IGFueSkgPT4gVGhlbWVQYWxldHRlKSB7XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb2xvclJlc29sdmVyIG11c3QgYmUgYSBmdW5jdGlvbiEnKTtcbiAgICB9XG4gICAgdGhpcy5fY29sb3JSZXNvbHZlciA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgZGlzcGxheSBuYW1lIG9mIGEgZ2l2ZW4gbGFiZWwgb2JqZWN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBuYW1lUmVzb2x2ZXIoZm46IChvMTogYW55KSA9PiBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ25hbWVSZXNvbHZlciBtdXN0IGJlIGEgZnVuY3Rpb24hJyk7XG4gICAgfVxuICAgIHRoaXMuX25hbWVSZXNvbHZlciA9IGZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBvbmUgb3IgbW9yZSBsYWJlbHMgZm9yIGEgZ2l2ZW4gcmF3IHN0cmluZ1xuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBsYWJlbEJ1aWxkZXIoZm46IChyYXdpbnB1dDogc3RyaW5nKSA9PiBhbnlbXSkge1xuICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbGFiZWxCdWlsZGVyIG11c3QgYmUgYSBmdW5jdGlvbiEnKTtcbiAgICB9XG4gICAgdGhpcy5fbGFiZWxCdWlsZGVyID0gZm47XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZS1DeWNsZSBFdmVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7IH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbGFiZWxTZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xuICAgIGNvbnNvbGUubG9nKCdsYWJlbFNlbGVjdGVkOicsIGV2ZW50KTtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSBldmVudC5vcHRpb24udmFsdWU7XG4gICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgdGhpcy5yZXNldElucHV0KCk7XG4gICAgICB0aGlzLmFkZExhYmVsKHNlbGVjdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNyZWF0ZU5ld0xhYmVscyhldmVudDogTWF0Q2hpcElucHV0RXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYWxsb3dDcmVhdGUpIHtcblxuICAgICAgY29uc3QgaW5wdXQgPSBldmVudC5pbnB1dDtcbiAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudmFsdWU7XG5cbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICBjb25zdCBteUxhYmVscyA9IHRoaXMuYnVpbGRMYWJlbHModmFsdWUpO1xuICAgICAgICB0aGlzLmFkZExhYmVscyhteUxhYmVscyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAvLyBpbnB1dC52YWx1ZSA9ICcnOyAvLyByZXNldCBpbnB1dFxuICAgICAgICB0aGlzLnJlc2V0SW5wdXQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkTGFiZWxzKGxhYmVsczogVFtdKSB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogW107XG4gICAgdGhpcy5yZXBsYWNlV2l0aChbLi4uY3VycmVudCwgLi4ubGFiZWxzXSk7XG4gIH1cblxuICBwdWJsaWMgYWRkTGFiZWwobGFiZWw6IGFueSkge1xuICAgIHRoaXMuYWRkTGFiZWxzKFtsYWJlbF0pO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUxhYmVsKHRvUmVtb3ZlOiBUKTogdm9pZCB7XG5cbiAgICBjb25zdCByZW1haW5pbmcgPSB0aGlzLnZhbHVlXG4gICAgICAuZmlsdGVyKGwgPT4gIXRoaXMuYXJlRXF1YWwobCwgdG9SZW1vdmUpKTtcblxuICAgIHRoaXMucmVwbGFjZVdpdGgocmVtYWluaW5nKTtcbiAgfVxuXG4gIHB1YmxpYyByZXBsYWNlV2l0aChsYWJlbHM6IFRbXSk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUobGFiZWxzKTtcbiAgfVxuXG4gIHB1YmxpYyBsYWJlbE5hbWUobGFiZWw6IFQpOiBzdHJpbmcge1xuICAgIGlmIChsYWJlbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX25hbWVSZXNvbHZlciA/ICB0aGlzLl9uYW1lUmVzb2x2ZXIobGFiZWwpIDogbGFiZWwudG9TdHJpbmcoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBsYWJlbENvbG9yKGxhYmVsOiBUKTogVGhlbWVQYWxldHRlIHtcbiAgICByZXR1cm4gdGhpcy5fY29sb3JSZXNvbHZlciA/ICB0aGlzLl9jb2xvclJlc29sdmVyKGxhYmVsKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVzZXRJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Q29udHJvbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkTGFiZWxzKHJhd05hbWU6IHN0cmluZyk6IGFueVtdIHtcbiAgICBpZiAodGhpcy5fbGFiZWxCdWlsZGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbGFiZWxCdWlsZGVyKHJhd05hbWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW3Jhd05hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyTm90UHJlc2VudChzdWdnZXN0aW9uczogYW55W10pOiBhbnlbXSB7XG4gICAgaWYgKHN1Z2dlc3Rpb25zKSB7XG5cbiAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgIHJldHVybiBzdWdnZXN0aW9uc1xuICAgICAgICAgIC5maWx0ZXIobCA9PiBsKVxuICAgICAgICAgIC5maWx0ZXIobCA9PiAhdGhpcy52YWx1ZS5zb21lKGVsID0+IHRoaXMuYXJlRXF1YWwoZWwsIGwpKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gc3VnZ2VzdGlvbnM7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFyZUVxdWFsKGE6IGFueSwgYjogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbXBhcmVXaXRoID8gdGhpcy5fY29tcGFyZVdpdGgoYSwgYikgOiBhID09PSBiO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGRcbiAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXG4gIGNsYXNzPVwiZnVsbC13aWR0aFwiXG4gIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICBbY29sb3JdPVwiY29sb3JcIlxuPlxuICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxcIj57e2xhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cblxuICA8bWF0LWNoaXAtZ3JpZCAjY2hpcHM+XG4gICAgPG1hdC1jaGlwLXJvdyAqbmdGb3I9XCJsZXQgbGFiZWwgb2YgY3VycmVudExhYmVscyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwibm9zZWxlY3RcIlxuICAgICAgICAgICAgICBbY29sb3JdPVwibGFiZWxDb2xvcihsYWJlbClcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cInJlbW92YWJsZVwiXG4gICAgICAgICAgICAgIChyZW1vdmVkKT1cInJlbW92ZUxhYmVsKGxhYmVsKVwiXG4gICAgPlxuICAgICAge3tsYWJlbE5hbWUobGFiZWwpfX1cbiAgICAgIDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlICpuZ0lmPVwiIXJlYWRvbmx5ICYmIHJlbW92YWJsZVwiPmNhbmNlbDwvbWF0LWljb24+XG4gICAgPC9tYXQtY2hpcC1yb3c+XG5cbiAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBzXCJcbiAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJsYWJlbEF1dG9Db21wbGV0ZVwiXG4gICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJsYWJlbElucHV0Q29udHJvbFwiXG4gICAgICAgICAgIChtYXRDaGlwSW5wdXRUb2tlbkVuZCk9XCJjcmVhdGVOZXdMYWJlbHMoJGV2ZW50KVwiXG4gICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAjbGFiZWxJbnB1dD5cbiAgPC9tYXQtY2hpcC1ncmlkPlxuXG4gIDxtYXQtYXV0b2NvbXBsZXRlXG4gICAgICAjbGFiZWxBdXRvQ29tcGxldGU9XCJtYXRBdXRvY29tcGxldGVcIlxuICAgICAgcGFuZWxXaWR0aD1cImF1dG9cIlxuICAgICAgKG9wdGlvblNlbGVjdGVkKT1cImxhYmVsU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzdWdnZXN0aW9uIG9mIGF2YWlsYWJsZVN1Z2dlc3Rpb25zJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInN1Z2dlc3Rpb25cIj5cbiAgICAgIHt7bGFiZWxOYW1lKHN1Z2dlc3Rpb24pfX1cbiAgICA8L21hdC1vcHRpb24+XG4gIDwvbWF0LWF1dG9jb21wbGV0ZT5cblxuPC9tYXQtZm9ybS1maWVsZD5cblxuIl19
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWxzLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbGFiZWxzL2xhYmVscy1pbnB1dC9sYWJlbHMtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9sYWJlbHMvbGFiZWxzLWlucHV0L2xhYmVscy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQStCLHNCQUFzQixFQUFFLGVBQWUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JILE9BQU8sRUFBb0IsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDaEgsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxLQUFLLEVBQWEsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQy9GLE9BQU8sRUFBZSxTQUFTLEVBQUMsTUFB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QnRFLGs3Q0E0Q0EsbUZEcEJjLFlBQVksNExBQUUsSUFBSSw2RkFBRSxRQUFRLHNEQUFFLFdBQVcsNktBQUUsS0FBSyxtSEFBRSxVQUFVLDhKQUFFLE9BQU8sMklBQUUsYUFBYSw0REFBRSxRQUFRLGlVQUFFLFlBQVksNlFBQUUsc0JBQXNCLG9RQUFFLFdBQVcsbW5CQUFFLG1CQUFtQixrTkFBRSxlQUFlLHlXQUFFLFNBQVMsZ0pBQUUsU0FBUyw2Q0FBRSxlQUFlOzsyRkFFL04sd0JBQXdCO2tCQVRwQyxTQUFTOytCQUNJLG1CQUFtQixhQUdsQiw2QkFBNkIsMEJBQTBCLG1CQUNqRCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDO3dEQXlCbk8sWUFBWTtzQkFEbkIsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQTBCNUIsTUFBTTtzQkFEaEIsS0FBSztnQkFNSyxnQkFBZ0I7c0JBRDFCLEtBQUs7Z0JBZ0JLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBTUssYUFBYTtzQkFEdkIsTUFBTTtnQkFXSSxXQUFXO3NCQURyQixLQUFLO2dCQWFLLGFBQWE7c0JBRHZCLEtBQUs7Z0JBWUssWUFBWTtzQkFEdEIsS0FBSztnQkFZSyxZQUFZO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1VudHlwZWRGb3JtQ29udHJvbCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCwgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciwgTWF0QXV0b2NvbXBsZXRlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHtNYXRDaGlwSW5wdXRFdmVudCwgTWF0Q2hpcEdyaWQsIE1hdENoaXBSb3csIE1hdENoaXBSZW1vdmUsIE1hdENoaXBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VNUFRZLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0lTdWdnZXN0aW9uUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9zdWdnZXN0aW9uLXByb3ZpZGVyJztcbmltcG9ydCB7Rm9ybUZpZWxkQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Zvcm1zL2Zvcm0tZmllbGQtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHtidWlsZEZvcm1JbnRlZ3JhdGlvblByb3ZpZGVyc30gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Zvcm1zL3RlbXBsYXRlLWNvbXBvc2l0ZS1jb250cm9sJztcbmltcG9ydCB7VGhlbWVQYWxldHRlLCBNYXRPcHRpb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNYXRJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHtNYXRJY29ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TmdJZiwgTmdGb3IsIEFzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkLCBNYXRMYWJlbH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWxkZXItbGFiZWwtaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9sYWJlbHMtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2xhYmVscy1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogYnVpbGRGb3JtSW50ZWdyYXRpb25Qcm92aWRlcnMoRWxkZXJMYWJlbElucHV0Q29tcG9uZW50KSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtNYXRGb3JtRmllbGQsIE5nSWYsIE1hdExhYmVsLCBNYXRDaGlwR3JpZCwgTmdGb3IsIE1hdENoaXBSb3csIE1hdEljb24sIE1hdENoaXBSZW1vdmUsIE1hdElucHV0LCBNYXRDaGlwSW5wdXQsIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRBdXRvY29tcGxldGUsIE1hdE9wdGlvbiwgQXN5bmNQaXBlLCBUcmFuc2xhdGVNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyTGFiZWxJbnB1dENvbXBvbmVudDxUPiBleHRlbmRzIEZvcm1GaWVsZEJhc2VDb21wb25lbnQ8VFtdPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgX2NvbXBhcmVXaXRoOiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhbjtcbiAgcHJpdmF0ZSBfbmFtZVJlc29sdmVyOiAobzE6IGFueSkgPT4gc3RyaW5nO1xuICBwcml2YXRlIF9jb2xvclJlc29sdmVyOiAobzE6IGFueSkgPT4gVGhlbWVQYWxldHRlO1xuICBwcml2YXRlIF9sYWJlbEJ1aWxkZXI6IChyYXdpbnB1dDogc3RyaW5nKSA9PiBhbnlbXTtcblxuICBwcml2YXRlIF9hbGxvd0NyZWF0ZSA9IHRydWU7XG5cbiAgcHVibGljIHJlbW92YWJsZSA9IHRydWU7XG5cbiAgcHVibGljIHJlYWRvbmx5IGxhYmVsSW5wdXRDb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gIHB1YmxpYyBhdmFpbGFibGVTdWdnZXN0aW9ucyQ6IE9ic2VydmFibGU8YW55W10+ID0gRU1QVFk7XG5cbiAgQFZpZXdDaGlsZCgnbGFiZWxJbnB1dCcsIHtzdGF0aWM6IHRydWV9KVxuICBwcml2YXRlIGlucHV0Q29udHJvbDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmZsb2F0TGFiZWwgPSAnYXV0byc7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRMYWJlbHMkKCk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWUkO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBsYWJlbHModmFsdWU6IFRbXSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc3VnZ2VzdGlvbkxvYWRlcihwcm92aWRlcjogSVN1Z2dlc3Rpb25Qcm92aWRlcjxhbnk+KSB7XG4gICAgaWYgKHByb3ZpZGVyKSB7XG4gICAgICB0aGlzLmF2YWlsYWJsZVN1Z2dlc3Rpb25zJCA9IHRoaXMubGFiZWxJbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCg8c3RyaW5nPm51bGwpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTUwKSxcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4gcHJvdmlkZXIubG9hZFN1Z2dlc3Rpb25zKHZhbHVlKSksXG4gICAgICAgIG1hcChsYWJlbHMgPT4gdGhpcy5maWx0ZXJOb3RQcmVzZW50KGxhYmVscykpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2FudCBwcm92aWRlIHN1Z2dlc3Rpb25zIHNpbmNlIG5vIHN1Z2dlc3Rpb24gcHJvdmlkZXIgd2FzIHJlZ2lzdGVyZWQhJyk7XG4gICAgICB0aGlzLmF2YWlsYWJsZVN1Z2dlc3Rpb25zJCA9IEVNUFRZO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWxsb3dOZXcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9hbGxvd0NyZWF0ZSA9IHZhbHVlO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgbGFiZWxzQ2hhbmdlZCgpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2U7XG4gIH1cblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0byBjb21wYXJlIHRoZSBvcHRpb24gdmFsdWVzIHdpdGggdGhlIHNlbGVjdGVkIHZhbHVlcy4gVGhlIGZpcnN0IGFyZ3VtZW50XG4gICAqIGlzIGEgdmFsdWUgZnJvbSBhbiBvcHRpb24uIFRoZSBzZWNvbmQgaXMgYSB2YWx1ZSBmcm9tIHRoZSBzZWxlY3Rpb24uIEEgYm9vbGVhblxuICAgKiBzaG91bGQgYmUgcmV0dXJuZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNvbXBhcmVXaXRoKGZuOiAobzE6IGFueSwgbzI6IGFueSkgPT4gYm9vbGVhbikge1xuICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY29tcGFyZVdpdGggbXVzdCBiZSBhIGZ1bmN0aW9uIScpO1xuICAgIH1cbiAgICB0aGlzLl9jb21wYXJlV2l0aCA9IGZuO1xuICB9XG5cblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIHRoZSBjb2xvciBvZiBhIGdpdmVuIGxhYmVsIG9iamVjdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29sb3JSZXNvbHZlcihmbjogKG8xOiBhbnkpID0+IFRoZW1lUGFsZXR0ZSkge1xuICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY29sb3JSZXNvbHZlciBtdXN0IGJlIGEgZnVuY3Rpb24hJyk7XG4gICAgfVxuICAgIHRoaXMuX2NvbG9yUmVzb2x2ZXIgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgdGhlIGRpc3BsYXkgbmFtZSBvZiBhIGdpdmVuIGxhYmVsIG9iamVjdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbmFtZVJlc29sdmVyKGZuOiAobzE6IGFueSkgPT4gc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCduYW1lUmVzb2x2ZXIgbXVzdCBiZSBhIGZ1bmN0aW9uIScpO1xuICAgIH1cbiAgICB0aGlzLl9uYW1lUmVzb2x2ZXIgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHdoaWNoIHJldHVybnMgb25lIG9yIG1vcmUgbGFiZWxzIGZvciBhIGdpdmVuIHJhdyBzdHJpbmdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbGFiZWxCdWlsZGVyKGZuOiAocmF3aW5wdXQ6IHN0cmluZykgPT4gYW55W10pIHtcbiAgICBpZiAodHlwZW9mIGZuICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2xhYmVsQnVpbGRlciBtdXN0IGJlIGEgZnVuY3Rpb24hJyk7XG4gICAgfVxuICAgIHRoaXMuX2xhYmVsQnVpbGRlciA9IGZuO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUtQ3ljbGUgRXZlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQgeyB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGxhYmVsU2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcbiAgICBjb25zb2xlLmxvZygnbGFiZWxTZWxlY3RlZDonLCBldmVudCk7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gZXZlbnQub3B0aW9uLnZhbHVlO1xuICAgIGlmIChzZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMucmVzZXRJbnB1dCgpO1xuICAgICAgdGhpcy5hZGRMYWJlbChzZWxlY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVOZXdMYWJlbHMoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2FsbG93Q3JlYXRlKSB7XG5cbiAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQuaW5wdXQ7XG4gICAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnZhbHVlO1xuXG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgY29uc3QgbXlMYWJlbHMgPSB0aGlzLmJ1aWxkTGFiZWxzKHZhbHVlKTtcbiAgICAgICAgdGhpcy5hZGRMYWJlbHMobXlMYWJlbHMpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgLy8gaW5wdXQudmFsdWUgPSAnJzsgLy8gcmVzZXQgaW5wdXRcbiAgICAgICAgdGhpcy5yZXNldElucHV0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFkZExhYmVscyhsYWJlbHM6IFRbXSkge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6IFtdO1xuICAgIHRoaXMucmVwbGFjZVdpdGgoWy4uLmN1cnJlbnQsIC4uLmxhYmVsc10pO1xuICB9XG5cbiAgcHVibGljIGFkZExhYmVsKGxhYmVsOiBhbnkpIHtcbiAgICB0aGlzLmFkZExhYmVscyhbbGFiZWxdKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVMYWJlbCh0b1JlbW92ZTogVCk6IHZvaWQge1xuXG4gICAgY29uc3QgcmVtYWluaW5nID0gdGhpcy52YWx1ZVxuICAgICAgLmZpbHRlcihsID0+ICF0aGlzLmFyZUVxdWFsKGwsIHRvUmVtb3ZlKSk7XG5cbiAgICB0aGlzLnJlcGxhY2VXaXRoKHJlbWFpbmluZyk7XG4gIH1cblxuICBwdWJsaWMgcmVwbGFjZVdpdGgobGFiZWxzOiBUW10pOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKGxhYmVscyk7XG4gIH1cblxuICBwdWJsaWMgbGFiZWxOYW1lKGxhYmVsOiBUKTogc3RyaW5nIHtcbiAgICBpZiAobGFiZWwpIHtcbiAgICAgIHJldHVybiB0aGlzLl9uYW1lUmVzb2x2ZXIgPyAgdGhpcy5fbmFtZVJlc29sdmVyKGxhYmVsKSA6IGxhYmVsLnRvU3RyaW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbGFiZWxDb2xvcihsYWJlbDogVCk6IFRoZW1lUGFsZXR0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbG9yUmVzb2x2ZXIgPyAgdGhpcy5fY29sb3JSZXNvbHZlcihsYWJlbCkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlc2V0SW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dENvbnRyb2wubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZExhYmVscyhyYXdOYW1lOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgaWYgKHRoaXMuX2xhYmVsQnVpbGRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuX2xhYmVsQnVpbGRlcihyYXdOYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtyYXdOYW1lXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbHRlck5vdFByZXNlbnQoc3VnZ2VzdGlvbnM6IGFueVtdKTogYW55W10ge1xuICAgIGlmIChzdWdnZXN0aW9ucykge1xuXG4gICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICByZXR1cm4gc3VnZ2VzdGlvbnNcbiAgICAgICAgICAuZmlsdGVyKGwgPT4gbClcbiAgICAgICAgICAuZmlsdGVyKGwgPT4gIXRoaXMudmFsdWUuc29tZShlbCA9PiB0aGlzLmFyZUVxdWFsKGVsLCBsKSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHN1Z2dlc3Rpb25zO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhcmVFcXVhbChhOiBhbnksIGI6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jb21wYXJlV2l0aCA/IHRoaXMuX2NvbXBhcmVXaXRoKGEsIGIpIDogYSA9PT0gYjtcbiAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkXG4gIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxuICBjbGFzcz1cImZ1bGwtd2lkdGhcIlxuICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgW2NvbG9yXT1cImNvbG9yXCJcbj5cbiAgPG1hdC1sYWJlbCAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbCB8IHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG5cbiAgPG1hdC1jaGlwLWdyaWQgI2NoaXBzPlxuICAgIDxtYXQtY2hpcC1yb3cgKm5nRm9yPVwibGV0IGxhYmVsIG9mIGN1cnJlbnRMYWJlbHMkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm5vc2VsZWN0XCJcbiAgICAgICAgICAgICAgW2NvbG9yXT1cImxhYmVsQ29sb3IobGFiZWwpXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJyZW1vdmFibGVcIlxuICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVMYWJlbChsYWJlbClcIlxuICAgID5cbiAgICAgIHt7bGFiZWxOYW1lKGxhYmVsKX19XG4gICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZSAqbmdJZj1cIiFyZWFkb25seSAmJiByZW1vdmFibGVcIj5jYW5jZWw8L21hdC1pY29uPlxuICAgIDwvbWF0LWNoaXAtcm93PlxuXG4gICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwc1wiXG4gICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwibGFiZWxBdXRvQ29tcGxldGVcIlxuICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwibGFiZWxJbnB1dENvbnRyb2xcIlxuICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiY3JlYXRlTmV3TGFiZWxzKCRldmVudClcIlxuICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgI2xhYmVsSW5wdXQ+XG4gIDwvbWF0LWNoaXAtZ3JpZD5cblxuICA8bWF0LWF1dG9jb21wbGV0ZVxuICAgICAgI2xhYmVsQXV0b0NvbXBsZXRlPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgIHBhbmVsV2lkdGg9XCJhdXRvXCJcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJsYWJlbFNlbGVjdGVkKCRldmVudClcIj5cbiAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgc3VnZ2VzdGlvbiBvZiBhdmFpbGFibGVTdWdnZXN0aW9ucyQgfCBhc3luY1wiIFt2YWx1ZV09XCJzdWdnZXN0aW9uXCI+XG4gICAgICB7e2xhYmVsTmFtZShzdWdnZXN0aW9uKX19XG4gICAgPC9tYXQtb3B0aW9uPlxuICA8L21hdC1hdXRvY29tcGxldGU+XG5cbjwvbWF0LWZvcm0tZmllbGQ+XG5cbiJdfQ==
@@ -218,12 +218,12 @@ export class ElderDimensionsInputComponent extends ElderFormFieldControlBase {
218
218
  dimensionsOfHeight(value) {
219
219
  return Dimensions.from(this.unit, this.lengthValue, this.widthValue, value);
220
220
  }
221
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", 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: "17.3.11", 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: [
221
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", 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.0.4", 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
223
  { provide: MatFormFieldControl, useExisting: ElderDimensionsInputComponent },
224
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 }); }
225
225
  }
226
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderDimensionsInputComponent, decorators: [{
226
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderDimensionsInputComponent, decorators: [{
227
227
  type: Component,
228
228
  args: [{ selector: 'elder-dimensions-input', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
229
229
  { provide: MatFormFieldControl, useExisting: ElderDimensionsInputComponent },
@@ -271,4 +271,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
271
271
  }], heightValue: [{
272
272
  type: Input
273
273
  }] } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL21lYXN1cmVzL2RpbWVuc2lvbnMvZGltZW5zaW9ucy1pbnB1dC9lbGRlci1kaW1lbnNpb25zLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbWVhc3VyZXMvZGltZW5zaW9ucy9kaW1lbnNpb25zLWlucHV0L2VsZGVyLWRpbWVuc2lvbnMtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUF5QixtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUUzRyxPQUFPLEVBQW1CLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxN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QVVLLGlCQUFpQjtzQkFEM0IsTUFBTTtnQkFZSSxXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtNYXRGb3JtRmllbGRBcHBlYXJhbmNlLCBNYXRGb3JtRmllbGRDb250cm9sfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7RGltZW5zaW9uc30gZnJvbSAnLi4vLi4vbW9kZWwvZGltZW5zaW9ucyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtVbml0fSBmcm9tICcuLi8uLi9tb2RlbC91bml0JztcbmltcG9ydCB7Y29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtUaGVtZVBhbGV0dGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtFbGRlckZvcm1GaWVsZENvbnRyb2xCYXNlfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZm9ybXMvZWxkZXItZm9ybS1maWVsZC1jb250cm9sLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7Rm9jdXNNb25pdG9yfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtFbGRlclF1YW50aXR5SW5wdXRDb250cm9sQ29tcG9uZW50fSBmcm9tICcuLi8uLi9xdWFudGl0eS1pbnB1dC9xdWFudGl0eS1pbnB1dC1jb250cm9sL2VsZGVyLXF1YW50aXR5LWlucHV0LWNvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7TmdJZiwgQXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG50eXBlIERpbWVuc2lvbnNNb2RlID0gJ2xlbmd0aCcgfCAnd2lkdGgnIHwgJ2hlaWdodCcgfCAnYXJlYScgfCAndm9sdW1lJztcblxuY2xhc3MgRGltZW5zaW9uc0NvbnRleHQge1xuXG4gIHB1YmxpYyBzdGF0aWMgb2YobW9kZTogRGltZW5zaW9uc01vZGUpOiBEaW1lbnNpb25zQ29udGV4dCB7XG4gICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICBjYXNlICdsZW5ndGgnOiByZXR1cm4gbmV3IERpbWVuc2lvbnNDb250ZXh0KHRydWUsIGZhbHNlLCBmYWxzZSk7XG4gICAgICBjYXNlICd3aWR0aCc6IHJldHVybiBuZXcgRGltZW5zaW9uc0NvbnRleHQoZmFsc2UsIHRydWUsIGZhbHNlKTtcbiAgICAgIGNhc2UgJ2hlaWdodCc6IHJldHVybiBuZXcgRGltZW5zaW9uc0NvbnRleHQoZmFsc2UsIGZhbHNlLCB0cnVlKTtcbiAgICAgIGNhc2UgJ2FyZWEnOiByZXR1cm4gbmV3IERpbWVuc2lvbnNDb250ZXh0KHRydWUsIHRydWUsIGZhbHNlKTtcbiAgICAgIGNhc2UgJ3ZvbHVtZSc6IHJldHVybiBuZXcgRGltZW5zaW9uc0NvbnRleHQodHJ1ZSwgdHJ1ZSwgdHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGxlbmd0aEFjdGl2ZTogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgd2lkdGhBY3RpdmU6IGJvb2xlYW4sXG4gICAgcHVibGljIHJlYWRvbmx5IGhlaWdodEFjdGl2ZTogYm9vbGVhbixcbiAgKSB7IH1cblxuICBwdWJsaWMgZ2V0IGlzTGVuZ3RoTGFzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5sZW5ndGhBY3RpdmUgJiYgIXRoaXMud2lkdGhBY3RpdmUgJiYgIXRoaXMuaGVpZ2h0QWN0aXZlO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNXaWR0aExhc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMud2lkdGhBY3RpdmUgJiYgIXRoaXMuaGVpZ2h0QWN0aXZlO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNIZWlnaHRMYXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhlaWdodEFjdGl2ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNIZWlnaHRGaXJzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMubGVuZ3RoQWN0aXZlICYmICF0aGlzLndpZHRoQWN0aXZlICYmIHRoaXMuaGVpZ2h0QWN0aXZlO1xuICB9XG4gIHB1YmxpYyBnZXQgaXNXaWR0aEZpcnN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5sZW5ndGhBY3RpdmUgJiYgdGhpcy53aWR0aEFjdGl2ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzTGVuZ3RoRmlyc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGVuZ3RoQWN0aXZlO1xuICB9XG59XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlbGRlci1kaW1lbnNpb25zLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRWxkZXJEaW1lbnNpb25zSW5wdXRDb21wb25lbnR9LFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgRWxkZXJRdWFudGl0eUlucHV0Q29udHJvbENvbXBvbmVudCwgQXN5bmNQaXBlLCBUcmFuc2xhdGVNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRGltZW5zaW9uc0lucHV0Q29tcG9uZW50IGV4dGVuZHMgRWxkZXJGb3JtRmllbGRDb250cm9sQmFzZTxEaW1lbnNpb25zPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgX3JlcXVpcmVkTGVuZ3RoID0gZmFsc2U7XG4gIHByaXZhdGUgX3JlcXVpcmVkV2lkdGggPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVxdWlyZWRIZWlnaHQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcHBlYXJhbmNlOiBNYXRGb3JtRmllbGRBcHBlYXJhbmNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb2xvcjogVGhlbWVQYWxldHRlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwbGFjZWhvbGRlckxlbmd0aDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwbGFjZWhvbGRlcldpZHRoOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBsYWNlaG9sZGVySGVpZ2h0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERpc3BsYXkgZm9ybWF0IGZvciB0aGUgcXVhbnRpdHkgdmFsdWU6XG4gICAqIHttaW5JbnRlZ2VyRGlnaXRzfS57bWluRnJhY3Rpb25EaWdpdHN9LXttYXhGcmFjdGlvbkRpZ2l0c31cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNwbGF5Rm9ybWF0OiBzdHJpbmcgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdE1vZGU6IERpbWVuc2lvbnNNb2RlID0gJ3ZvbHVtZSdcbiAgcHJpdmF0ZSByZWFkb25seSBtb2RlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGltZW5zaW9uc01vZGU+KHRoaXMuZGVmYXVsdE1vZGUpO1xuICByZWFkb25seSBjb250ZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGltZW5zaW9uc0NvbnRleHQ+KERpbWVuc2lvbnNDb250ZXh0Lm9mKHRoaXMuZGVmYXVsdE1vZGUpKTtcblxuICBwcml2YXRlIGFmdGVySW5pdCA9IGZhbHNlO1xuICBwcml2YXRlIGluaXRpYWxVbml0OiBVbml0O1xuICBwcml2YXRlIGluaXRpYWxMZW5ndGg6IG51bWJlcjtcbiAgcHJpdmF0ZSBpbml0aWFsV2lkdGg6IG51bWJlcjtcbiAgcHJpdmF0ZSBpbml0aWFsSGVpZ2h0OiBudW1iZXI7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgaG9zdFJlZjogRWxlbWVudFJlZixcbiAgICB6b25lOiBOZ1pvbmUsXG4gICAgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIGhvc3RSZWYsXG4gICAgICAnZGltZW5zaW9ucy1pbnB1dCcsXG4gICAgICBmb2N1c01vbml0b3IsXG4gICAgICB0cmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgbmdDb250cm9sXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gRGltZW5zaW9ucy5mcm9tKFxuICAgICAgdGhpcy5pbml0aWFsVW5pdCxcbiAgICAgIHRoaXMuaW5pdGlhbExlbmd0aCxcbiAgICAgIHRoaXMuaW5pdGlhbFdpZHRoLFxuICAgICAgdGhpcy5pbml0aWFsSGVpZ2h0XG4gICAgKTtcbiAgICB0aGlzLmFmdGVySW5pdCA9IHRydWU7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtb2RlKG1vZGU6IERpbWVuc2lvbnNNb2RlKXtcbiAgICB0aGlzLm1vZGUkLm5leHQobW9kZSA/PyB0aGlzLmRlZmF1bHRNb2RlKTtcbiAgICB0aGlzLmNvbnRleHQkLm5leHQoRGltZW5zaW9uc0NvbnRleHQub2YodGhpcy5tb2RlJC5nZXRWYWx1ZSgpKSlcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kZSgpOiBEaW1lbnNpb25zTW9kZSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWRMZW5ndGgodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZExlbmd0aCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkTGVuZ3RoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZExlbmd0aDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWRXaWR0aCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkV2lkdGggPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCByZXF1aXJlZFdpZHRoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZFdpZHRoO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByZXF1aXJlZEhlaWdodCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkSGVpZ2h0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWRIZWlnaHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkSGVpZ2h0O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgdW5pdENoYW5nZSgpOiBPYnNlcnZhYmxlPFVuaXQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcChkID0+IGQ/LnVuaXQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdW5pdCgpOiBVbml0IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZT8udW5pdDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdW5pdCh1bml0OiBVbml0KSB7XG4gICAgaWYgKHRoaXMuYWZ0ZXJJbml0KSB7XG4gICAgICB0aGlzLnZhbHVlID0gRGltZW5zaW9ucy5mcm9tKFxuICAgICAgICB1bml0LFxuICAgICAgICB0aGlzLnZhbHVlPy5sZW5ndGgsXG4gICAgICAgIHRoaXMudmFsdWU/LndpZHRoLFxuICAgICAgICB0aGlzLnZhbHVlPy5oZWlnaHRcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdGlhbFVuaXQgPSB1bml0O1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGxlbmd0aFZhbHVlQ2hhbmdlKCk6IE9ic2VydmFibGU8bnVtYmVyIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICBtYXAoZCA9PiBkPy5sZW5ndGgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGVuZ3RoVmFsdWUoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU/Lmxlbmd0aDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbGVuZ3RoVmFsdWUobGVuZ3RoVmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5hZnRlckluaXQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmRpbWVuc2lvbnNPZkxlbmd0aChsZW5ndGhWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdGlhbExlbmd0aCA9IGxlbmd0aFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IHdpZHRoVmFsdWVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcChkID0+IGQ/LndpZHRoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHdpZHRoVmFsdWUoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU/LndpZHRoO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB3aWR0aFZhbHVlKHdpZHRoVmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5hZnRlckluaXQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmRpbWVuc2lvbnNPZldpZHRoKHdpZHRoVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXRpYWxXaWR0aCA9IHdpZHRoVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgaGVpZ2h0VmFsdWVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcChkID0+IGQ/LmhlaWdodClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBoZWlnaHRWYWx1ZSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZT8uaGVpZ2h0O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBoZWlnaHRWYWx1ZShoZWlnaHRWYWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLmFmdGVySW5pdCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZGltZW5zaW9uc09mSGVpZ2h0KGhlaWdodFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsSGVpZ2h0ID0gaGVpZ2h0VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG9uTGVuZ3RoVmFsdWVDaGFuZ2VkKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuZGltZW5zaW9uc09mTGVuZ3RoKHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgb25XaWR0aFZhbHVlQ2hhbmdlZCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmRpbWVuc2lvbnNPZldpZHRoKHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgb25IZWlnaHRWYWx1ZUNoYW5nZWQodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5kaW1lbnNpb25zT2ZIZWlnaHQodmFsdWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBibHVyKCk6IHZvaWQge1xuICAgIC8vIFRPRE8gdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uYmx1cigpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKG9wdGlvbnM6IEZvY3VzT3B0aW9ucyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIC8vIFRPRE8gdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvdGVjdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgdmFsdWVzRXF1YWxzKGE6IERpbWVuc2lvbnMsIGI6IERpbWVuc2lvbnMpOiBib29sZWFuIHtcbiAgICBpZiAoYSA9PT0gYikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBhPy5sZW5ndGggPT09IGI/Lmxlbmd0aFxuICAgICAgJiYgYT8ud2lkdGggPT09IGI/LndpZHRoXG4gICAgICAmJiBhPy5oZWlnaHQgPT09IGI/LmhlaWdodFxuICAgICAgJiYgYT8udW5pdCA9PT0gYj8udW5pdDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgZGltZW5zaW9uc09mTGVuZ3RoKHZhbHVlOiBudW1iZXIpIHtcbiAgICByZXR1cm4gRGltZW5zaW9ucy5mcm9tKFxuICAgICAgdGhpcy51bml0LFxuICAgICAgdmFsdWUsXG4gICAgICB0aGlzLndpZHRoVmFsdWUsXG4gICAgICB0aGlzLmhlaWdodFZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZGltZW5zaW9uc09mV2lkdGgodmFsdWU6IG51bWJlcikge1xuICAgIHJldHVybiBEaW1lbnNpb25zLmZyb20oXG4gICAgICB0aGlzLnVuaXQsXG4gICAgICB0aGlzLmxlbmd0aFZhbHVlLFxuICAgICAgdmFsdWUsXG4gICAgICB0aGlzLmhlaWdodFZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZGltZW5zaW9uc09mSGVpZ2h0KHZhbHVlOiBudW1iZXIpIHtcbiAgICByZXR1cm4gRGltZW5zaW9ucy5mcm9tKFxuICAgICAgdGhpcy51bml0LFxuICAgICAgdGhpcy5sZW5ndGhWYWx1ZSxcbiAgICAgIHRoaXMud2lkdGhWYWx1ZSxcbiAgICAgIHZhbHVlXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiByb2xlPVwiZ3JvdXBcIiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtYmFzZWxpbmUgZy1tZCBmdWxsXCJcbiAgICAgKm5nSWY9XCJjb250ZXh0JCB8IGFzeW5jIGFzIGNvbnRleHRcIj5cblxuICA8IS0tIGVsZGVyLWZvcm0tZmllbGQtc21hbGwgLS0+XG4gIDxlbGRlci1xdWFudGl0eS1pbnB1dCAqbmdJZj1cImNvbnRleHQubGVuZ3RoQWN0aXZlXCJcbiAgICBbcXVhbnRpdHlWYWx1ZV09XCJsZW5ndGhWYWx1ZVwiXG4gICAgKHF1YW50aXR5VmFsdWVDaGFuZ2UpPVwib25MZW5ndGhWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgW3VuaXRdPVwidW5pdFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIihwbGFjZWhvbGRlckxlbmd0aCA/IHBsYWNlaG9sZGVyTGVuZ3RoIDogJ2RpbWVuc2lvbnMubGVuZ3RoJykgfCB0cmFuc2xhdGVcIlxuICAgIFtkaXNwbGF5Rm9ybWF0XT1cImRpc3BsYXlGb3JtYXRcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbaGlkZVVuaXRdPVwiIWNvbnRleHQuaXNMZW5ndGhMYXN0XCJcbiAgPlxuICA8L2VsZGVyLXF1YW50aXR5LWlucHV0PlxuXG4gIDxzcGFuIGNsYXNzPVwibm9zZWxlY3RcIiAqbmdJZj1cImNvbnRleHQubGVuZ3RoQWN0aXZlICYmIGNvbnRleHQud2lkdGhBY3RpdmVcIj4mdGltZXM7PC9zcGFuPlxuXG4gIDxlbGRlci1xdWFudGl0eS1pbnB1dCAqbmdJZj1cImNvbnRleHQud2lkdGhBY3RpdmVcIlxuICAgIFtxdWFudGl0eVZhbHVlXT1cIndpZHRoVmFsdWVcIlxuICAgIChxdWFudGl0eVZhbHVlQ2hhbmdlKT1cIm9uV2lkdGhWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgW3VuaXRdPVwidW5pdFwiXG4gICAgW2Rpc3BsYXlGb3JtYXRdPVwiZGlzcGxheUZvcm1hdFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIihwbGFjZWhvbGRlcldpZHRoID8gcGxhY2Vob2xkZXJXaWR0aCA6ICdkaW1lbnNpb25zLndpZHRoJykgfCB0cmFuc2xhdGVcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbaGlkZVVuaXRdPVwiIWNvbnRleHQuaXNXaWR0aExhc3RcIlxuICA+XG4gIDwvZWxkZXItcXVhbnRpdHktaW5wdXQ+XG5cbiAgPHNwYW4gY2xhc3M9XCJub3NlbGVjdFwiICpuZ0lmPVwiY29udGV4dC53aWR0aEFjdGl2ZSAmJiBjb250ZXh0LmhlaWdodEFjdGl2ZVwiPiZ0aW1lczs8L3NwYW4+XG5cbiAgPGVsZGVyLXF1YW50aXR5LWlucHV0ICpuZ0lmPVwiY29udGV4dC5oZWlnaHRBY3RpdmVcIlxuICAgIFtxdWFudGl0eVZhbHVlXT1cImhlaWdodFZhbHVlXCJcbiAgICAocXVhbnRpdHlWYWx1ZUNoYW5nZSk9XCJvbkhlaWdodFZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICBbdW5pdF09XCJ1bml0XCJcbiAgICBbZGlzcGxheUZvcm1hdF09XCJkaXNwbGF5Rm9ybWF0XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiKHBsYWNlaG9sZGVySGVpZ2h0ID8gcGxhY2Vob2xkZXJIZWlnaHQgOiAnZGltZW5zaW9ucy5oZWlnaHQnKSB8IHRyYW5zbGF0ZVwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICA+XG4gIDwvZWxkZXItcXVhbnRpdHktaW5wdXQ+XG5cbiAgPCEtLVxuW3JlcXVpcmVkSWdub3JlWmVyb109XCJyZXF1aXJlZElnbm9yZVplcm9cIlxuICAgICAgICAgICAgICAgICAgICAgIFtlbGRlck11bHRpcGxlT2ZdPVwibXVsdGlwbGVPZlwiIG5nTW9kZWxcbiAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgICAgICAgICAgICAgICAgW21heF09XCJtYXhcIlxuICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZExlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgLS0+XG48L2Rpdj5cblxuXG4iXX0=
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