@elderbyte/ngx-starter 17.10.0 → 17.11.0-beta2

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 (352) hide show
  1. package/esm2022/lib/common/data/datasource/data-source-base.mjs +1 -1
  2. package/esm2022/lib/common/data/datasource/rest/rest-client.mjs +1 -1
  3. package/esm2022/lib/common/data/filters/filter-commons.mjs +23 -0
  4. package/esm2022/lib/common/data/filters/filter-value.mjs +2 -0
  5. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +4 -4
  6. package/esm2022/lib/common/format/curency-format-util.mjs +43 -0
  7. package/esm2022/lib/common/format/duration-format-util.mjs +44 -0
  8. package/esm2022/lib/common/format/iso-interval-format-util.mjs +109 -0
  9. package/esm2022/lib/common/format/public_api.mjs +4 -1
  10. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +4 -4
  11. package/esm2022/lib/common/forms/elder-from-field-base.mjs +4 -4
  12. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +4 -4
  13. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +4 -4
  14. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +4 -4
  15. package/esm2022/lib/common/forms/form-field-base.component.mjs +4 -4
  16. package/esm2022/lib/common/forms/multi-model-base.component.mjs +4 -4
  17. package/esm2022/lib/common/forms/template-composite-control.mjs +4 -4
  18. package/esm2022/lib/common/forms/value-accessor-base.mjs +4 -4
  19. package/esm2022/lib/common/http/http-client-builder.service.mjs +4 -4
  20. package/esm2022/lib/common/http/http-client-pristine.mjs +4 -4
  21. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +4 -4
  22. package/esm2022/lib/common/url/elder-router.service.mjs +4 -4
  23. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +4 -4
  24. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +4 -4
  25. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +5 -5
  26. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +4 -4
  27. package/esm2022/lib/components/auditing/elder-audit.module.mjs +5 -5
  28. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +10 -10
  29. package/esm2022/lib/components/badge/elder-badge.directive.mjs +44 -22
  30. package/esm2022/lib/components/badge/elder-badge.module.mjs +5 -5
  31. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +4 -4
  32. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +5 -5
  33. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +4 -4
  34. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +4 -4
  35. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +4 -4
  36. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +5 -5
  37. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +4 -4
  38. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +19 -19
  39. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +5 -5
  40. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +4 -4
  41. package/esm2022/lib/components/chips/elder-chips.module.mjs +5 -5
  42. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +5 -5
  43. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +4 -4
  44. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +4 -4
  45. package/esm2022/lib/components/containers/elder-containers.module.mjs +5 -5
  46. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +4 -4
  47. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +4 -4
  48. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +4 -4
  49. package/esm2022/lib/components/csv/elder-csv.module.mjs +5 -5
  50. package/esm2022/lib/components/currency/elder-currency.module.mjs +5 -5
  51. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +16 -13
  52. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +5 -5
  53. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +4 -4
  54. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +4 -4
  55. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +4 -4
  56. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +4 -4
  57. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +4 -4
  58. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +4 -4
  59. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +4 -4
  60. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +5 -5
  61. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +7 -7
  62. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +4 -4
  63. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +4 -4
  64. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +4 -4
  65. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +10 -10
  66. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +5 -5
  67. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +4 -4
  68. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +4 -4
  69. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +4 -4
  70. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +4 -4
  71. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +5 -5
  72. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +4 -4
  73. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +4 -4
  74. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +4 -4
  75. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +5 -5
  76. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +4 -4
  77. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +4 -4
  78. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +4 -4
  79. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +4 -4
  80. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +4 -4
  81. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +4 -4
  82. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +4 -4
  83. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +4 -4
  84. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +4 -4
  85. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +4 -4
  86. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +4 -4
  87. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +5 -5
  88. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +4 -4
  89. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +4 -4
  90. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +5 -5
  91. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +4 -4
  92. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +4 -4
  93. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +4 -4
  94. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +4 -4
  95. package/esm2022/lib/components/errors/elder-error.module.mjs +5 -5
  96. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +4 -4
  97. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +4 -4
  98. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +5 -5
  99. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +4 -4
  100. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +4 -4
  101. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +4 -4
  102. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +4 -4
  103. package/esm2022/lib/components/files/elder-file-select.directive.mjs +4 -4
  104. package/esm2022/lib/components/files/elder-file.module.mjs +5 -5
  105. package/esm2022/lib/components/files/file-select/file-select.component.mjs +4 -4
  106. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +4 -4
  107. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +4 -4
  108. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +4 -4
  109. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +4 -4
  110. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +4 -4
  111. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +4 -4
  112. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +4 -4
  113. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +4 -4
  114. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +4 -4
  115. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +5 -5
  116. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +11 -8
  117. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +4 -4
  118. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +4 -4
  119. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +4 -4
  120. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +4 -4
  121. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +4 -4
  122. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +4 -4
  123. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +4 -4
  124. package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +4 -4
  125. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +4 -4
  126. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +4 -4
  127. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +4 -4
  128. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +4 -4
  129. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +4 -4
  130. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +4 -4
  131. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +4 -4
  132. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +4 -4
  133. package/esm2022/lib/components/forms/elder-forms.module.mjs +5 -5
  134. package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +4 -4
  135. package/esm2022/lib/components/forms/search/domain/input/input-value.mjs +2 -0
  136. package/esm2022/lib/components/forms/search/domain/input/search-input-state.mjs +15 -6
  137. package/esm2022/lib/components/forms/search/domain/input/search-input.mjs +1 -1
  138. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +4 -4
  139. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +4 -4
  140. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +39 -28
  141. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +50 -17
  142. package/esm2022/lib/components/forms/search/elder-search.module.mjs +5 -5
  143. package/esm2022/lib/components/forms/search/filter/default-input-filter-converter.mjs +46 -0
  144. package/esm2022/lib/components/forms/search/filter/include-exclude-input-converter.mjs +165 -0
  145. package/esm2022/lib/components/forms/search/filter/input-filter-converter.mjs +2 -0
  146. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +4 -4
  147. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +4 -4
  148. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +4 -4
  149. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +5 -5
  150. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +4 -4
  151. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +4 -4
  152. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +5 -5
  153. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +4 -4
  154. package/esm2022/lib/components/headers/elder-header.module.mjs +5 -5
  155. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +4 -4
  156. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +5 -5
  157. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +4 -4
  158. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +4 -4
  159. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +4 -4
  160. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +4 -4
  161. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +4 -4
  162. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +4 -4
  163. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +4 -4
  164. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +4 -4
  165. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +4 -4
  166. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +4 -4
  167. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +5 -5
  168. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +4 -4
  169. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +4 -4
  170. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +5 -5
  171. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +4 -4
  172. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +4 -4
  173. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +5 -5
  174. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +4 -4
  175. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +4 -4
  176. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +4 -4
  177. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +4 -4
  178. package/esm2022/lib/components/iframes/iframe.service.mjs +4 -4
  179. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +4 -4
  180. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +4 -4
  181. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +5 -5
  182. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +1 -1
  183. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +231 -0
  184. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +4 -4
  185. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +7 -4
  186. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +12 -12
  187. package/esm2022/lib/components/labels/elder-labels.module.mjs +5 -5
  188. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +4 -4
  189. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +4 -4
  190. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +4 -4
  191. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +4 -4
  192. package/esm2022/lib/components/measures/elder-measures.module.mjs +9 -9
  193. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +5 -16
  194. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +15 -46
  195. package/esm2022/lib/components/measures/elder-unit.service.mjs +4 -4
  196. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +4 -4
  197. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +8 -10
  198. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +4 -4
  199. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +4 -4
  200. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +70 -4
  201. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +4 -4
  202. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +5 -5
  203. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +5 -5
  204. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +4 -4
  205. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +4 -4
  206. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +4 -4
  207. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +4 -4
  208. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +5 -5
  209. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +4 -4
  210. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +4 -4
  211. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +4 -4
  212. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +4 -4
  213. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +4 -4
  214. package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +4 -4
  215. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +4 -4
  216. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +4 -4
  217. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +5 -5
  218. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +4 -4
  219. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +4 -4
  220. package/esm2022/lib/components/panels/elder-panel.module.mjs +5 -5
  221. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +4 -4
  222. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +4 -4
  223. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +10 -10
  224. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +4 -4
  225. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +5 -5
  226. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +27 -7
  227. package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +38 -0
  228. package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +66 -0
  229. package/esm2022/lib/components/select/auto/elder-select-first-util.mjs +4 -14
  230. package/esm2022/lib/components/select/elder-select-base.mjs +9 -9
  231. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +10 -10
  232. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +4 -4
  233. package/esm2022/lib/components/select/elder-select-value.directive.mjs +4 -4
  234. package/esm2022/lib/components/select/elder-select.module.mjs +35 -10
  235. package/esm2022/lib/components/select/filter/elder-chip-filter-style-resolver.mjs +70 -0
  236. package/esm2022/lib/components/select/filter/elder-chips-filter.directive.mjs +174 -0
  237. package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +58 -0
  238. package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +4 -4
  239. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +4 -4
  240. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +14 -7
  241. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +10 -6
  242. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +4 -4
  243. package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +4 -4
  244. package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +83 -0
  245. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +4 -4
  246. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +4 -4
  247. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +4 -4
  248. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +4 -4
  249. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +9 -14
  250. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +4 -4
  251. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +4 -4
  252. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +5 -5
  253. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +4 -4
  254. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +4 -4
  255. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +4 -4
  256. package/esm2022/lib/components/shell/elder-shell.module.mjs +5 -5
  257. package/esm2022/lib/components/shell/elder-shell.service.mjs +4 -4
  258. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +4 -4
  259. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +13 -13
  260. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +4 -4
  261. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +4 -4
  262. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +4 -4
  263. package/esm2022/lib/components/tabs/elder-tab.module.mjs +5 -5
  264. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +4 -4
  265. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +4 -4
  266. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +4 -4
  267. package/esm2022/lib/components/theme/elder-theme.directive.mjs +4 -4
  268. package/esm2022/lib/components/theme/elder-theme.module.mjs +5 -5
  269. package/esm2022/lib/components/theme/elder-theme.service.mjs +4 -4
  270. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +4 -4
  271. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +4 -4
  272. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +4 -4
  273. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +4 -4
  274. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +4 -4
  275. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +4 -4
  276. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +4 -4
  277. package/esm2022/lib/components/time/elder-time.module.mjs +5 -5
  278. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +4 -4
  279. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +4 -4
  280. package/esm2022/lib/components/toasts/elder-toast.module.mjs +5 -5
  281. package/esm2022/lib/components/toasts/elder-toast.service.mjs +4 -4
  282. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +4 -4
  283. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +5 -5
  284. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +4 -4
  285. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +4 -4
  286. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +5 -5
  287. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +4 -4
  288. package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +4 -4
  289. package/esm2022/lib/features/kafent/access-token-provider.mjs +4 -4
  290. package/esm2022/lib/features/kafent/kafent-config.mjs +4 -4
  291. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +4 -4
  292. package/esm2022/lib/features/kafent/kafent-event.service.mjs +4 -4
  293. package/esm2022/lib/features/kafent/kafent.module.mjs +5 -5
  294. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +4 -4
  295. package/esm2022/lib/pipes/bytes.pipe.mjs +4 -4
  296. package/esm2022/lib/pipes/elder-pipes.module.mjs +11 -11
  297. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +4 -4
  298. package/esm2022/lib/pipes/elder-round.pipe.mjs +4 -4
  299. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +4 -4
  300. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +4 -4
  301. package/esm2022/lib/pipes/iso-duration.pipe.mjs +8 -26
  302. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +4 -4
  303. package/esm2022/lib/pipes/iso-interval.pipe.mjs +24 -73
  304. package/esm2022/lib/pipes/time-ago.pipe.mjs +4 -4
  305. package/esm2022/lib/pipes/time-duration.pipe.mjs +4 -4
  306. package/esm2022/lib/pipes/weight.pipe.mjs +4 -4
  307. package/fesm2022/elderbyte-ngx-starter.mjs +8822 -7833
  308. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  309. package/lib/common/data/filters/filter-commons.d.ts +12 -0
  310. package/lib/common/data/filters/filter-value.d.ts +1 -0
  311. package/lib/common/format/curency-format-util.d.ts +24 -0
  312. package/lib/common/format/duration-format-util.d.ts +23 -0
  313. package/lib/common/format/iso-interval-format-util.d.ts +22 -0
  314. package/lib/common/format/public_api.d.ts +3 -0
  315. package/lib/components/badge/elder-badge.directive.d.ts +10 -1
  316. package/lib/components/currency/elder-currency.pipe.d.ts +7 -4
  317. package/lib/components/forms/directives/elder-initial-value.directive.d.ts +4 -2
  318. package/lib/components/forms/search/domain/input/input-value.d.ts +1 -0
  319. package/lib/components/forms/search/domain/input/search-input-state.d.ts +14 -4
  320. package/lib/components/forms/search/domain/input/search-input.d.ts +6 -1
  321. package/lib/components/forms/search/elder-search-context.directive.d.ts +7 -2
  322. package/lib/components/forms/search/elder-search-input.directive.d.ts +18 -7
  323. package/lib/components/forms/search/filter/default-input-filter-converter.d.ts +31 -0
  324. package/lib/components/forms/search/filter/include-exclude-input-converter.d.ts +78 -0
  325. package/lib/components/forms/search/filter/input-filter-converter.d.ts +16 -0
  326. package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.d.ts +3 -3
  327. package/lib/components/input/autocomplete/elder-autocomplete/{elder-autocomplete.component.d.ts → elder-suggestion-panel.component.d.ts} +17 -6
  328. package/lib/components/input/autocomplete/elder-autocomplete-many.directive.d.ts +3 -3
  329. package/lib/components/input/autocomplete/elder-autocomplete.directive.d.ts +3 -3
  330. package/lib/components/input/autocomplete/elder-autocomplete.module.d.ts +3 -3
  331. package/lib/components/measures/elder-quantity.pipe.d.ts +4 -15
  332. package/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.d.ts +2 -4
  333. package/lib/components/measures/util/elder-quantity.service.d.ts +12 -0
  334. package/lib/components/select/auto/elder-auto-select-first.directive.d.ts +9 -1
  335. package/lib/components/select/auto/elder-auto-select-first.service.d.ts +23 -0
  336. package/lib/components/select/auto/elder-auto-select-suggest-first.directive.d.ts +32 -0
  337. package/lib/components/select/auto/elder-select-first-util.d.ts +2 -2
  338. package/lib/components/select/elder-select-base.d.ts +1 -1
  339. package/lib/components/select/elder-select.module.d.ts +9 -1
  340. package/lib/components/select/filter/elder-chip-filter-style-resolver.d.ts +19 -0
  341. package/lib/components/select/filter/elder-chips-filter.directive.d.ts +68 -0
  342. package/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.d.ts +32 -0
  343. package/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.d.ts +5 -1
  344. package/lib/components/select/multi/elder-search-include-exclude.directive.d.ts +39 -0
  345. package/lib/components/select/single/elder-select/elder-select.component.d.ts +0 -1
  346. package/lib/pipes/iso-duration.pipe.d.ts +0 -3
  347. package/lib/pipes/iso-interval.pipe.d.ts +5 -12
  348. package/package.json +1 -1
  349. package/src/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.scss +95 -0
  350. package/src/lib/components/select/multi/elder-select-include-exclude-chip/elder-select-include-exclude-chip.component.scss +0 -0
  351. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +0 -186
  352. /package/src/lib/components/input/autocomplete/elder-autocomplete/{elder-autocomplete.component.scss → elder-suggestion-panel.component.scss} +0 -0
@@ -35,4 +35,4 @@ export class DataSourceBase {
35
35
  return EntityIdUtil.getId(entity, this.idProperty);
36
36
  }
37
37
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUU5QyxNQUFNLE9BQWdCLGNBQWM7SUFVbEM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ3FCLFVBQXlCO1FBQXpCLGVBQVUsR0FBVixVQUFVLENBQWU7UUFmOUM7Ozs7b0ZBSTRFO1FBRTNELHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUE0QixDQUFDO0lBVTFFLENBQUM7SUFFSjs7OztnRkFJNEU7SUFFNUUsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsa0JBQWtCLENBQUMsQ0FBMkI7UUFDbkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQVM7UUFDcEIsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckQsQ0FBQztDQVlGIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQge0lEYXRhU291cmNlfSBmcm9tICcuL2RhdGEtc291cmNlJztcbmltcG9ydCB7RGF0YVNvdXJjZUNoYW5nZUV2ZW50fSBmcm9tICcuL2RhdGEtc291cmNlLWNoYW5nZS1ldmVudCc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtFbnRpdHlJZFV0aWx9IGZyb20gJy4vZW50aXR5LWlkLXV0aWwnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0YVNvdXJjZUJhc2U8VD4gaW1wbGVtZW50cyBJRGF0YVNvdXJjZTxUPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBkYXRhQ2hhbmdlRXZlbnRzJCA9IG5ldyBTdWJqZWN0PERhdGFTb3VyY2VDaGFuZ2VFdmVudDxUPj4oKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaWRQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbFxuICApIHt9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBkYXRhQ2hhbmdlZCgpOiBPYnNlcnZhYmxlPERhdGFTb3VyY2VDaGFuZ2VFdmVudDxUPj4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFDaGFuZ2VFdmVudHMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHB1Ymxpc2hDaGFuZ2VFdmVudChlOiBEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VD4pOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFDaGFuZ2VFdmVudHMkLm5leHQoZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0SWQoZW50aXR5OiBUKTogYW55IHtcbiAgICByZXR1cm4gRW50aXR5SWRVdGlsLmdldElkKGVudGl0eSwgdGhpcy5pZFByb3BlcnR5KTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBBYnN0cmFjdCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGFic3RyYWN0IGZpbmRCeUlkKGlkOiBhbnkpOiBPYnNlcnZhYmxlPFQ+O1xuXG4gIGFic3RyYWN0IGZpbmRCeUlkcyhpZHM6IGFueVtdKTogT2JzZXJ2YWJsZTxUW10+O1xuXG59XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3VyY2UtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUU5QyxNQUFNLE9BQWdCLGNBQWM7SUFVbEM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ3FCLFVBQXlCO1FBQXpCLGVBQVUsR0FBVixVQUFVLENBQWU7UUFmOUM7Ozs7b0ZBSTRFO1FBRTNELHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUE0QixDQUFDO0lBVTFFLENBQUM7SUFFSjs7OztnRkFJNEU7SUFFNUUsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsa0JBQWtCLENBQUMsQ0FBMkI7UUFDbkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sS0FBSyxDQUFDLE1BQVM7UUFDcEIsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckQsQ0FBQztDQVlGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJRGF0YVNvdXJjZX0gZnJvbSAnLi9kYXRhLXNvdXJjZSc7XG5pbXBvcnQge0RhdGFTb3VyY2VDaGFuZ2VFdmVudH0gZnJvbSAnLi9kYXRhLXNvdXJjZS1jaGFuZ2UtZXZlbnQnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RW50aXR5SWRVdGlsfSBmcm9tICcuL2VudGl0eS1pZC11dGlsJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFTb3VyY2VCYXNlPFQ+IGltcGxlbWVudHMgSURhdGFTb3VyY2U8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGF0YUNoYW5nZUV2ZW50cyQgPSBuZXcgU3ViamVjdDxEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VD4+KCk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlkUHJvcGVydHk6IHN0cmluZyB8IG51bGxcbiAgKSB7fVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZGF0YUNoYW5nZWQoKTogT2JzZXJ2YWJsZTxEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhQ2hhbmdlRXZlbnRzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBwdWJsaXNoQ2hhbmdlRXZlbnQoZTogRGF0YVNvdXJjZUNoYW5nZUV2ZW50PFQ+KTogdm9pZCB7XG4gICAgdGhpcy5kYXRhQ2hhbmdlRXZlbnRzJC5uZXh0KGUpO1xuICB9XG5cbiAgcHVibGljIGdldElkKGVudGl0eTogVCk6IGFueSB7XG4gICAgcmV0dXJuIEVudGl0eUlkVXRpbC5nZXRJZChlbnRpdHksIHRoaXMuaWRQcm9wZXJ0eSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQWJzdHJhY3QgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBhYnN0cmFjdCBmaW5kQnlJZChpZDogYW55KTogT2JzZXJ2YWJsZTxUPjtcblxuICBhYnN0cmFjdCBmaW5kQnlJZHMoaWRzOiBhbnlbXSk6IE9ic2VydmFibGU8VFtdPjtcblxufVxuIl19
@@ -276,4 +276,4 @@ export class RestClientContinuable extends RestClient {
276
276
  }, []));
277
277
  }
278
278
  }
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL3Jlc3QvcmVzdC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUMsT0FBTyxFQUFPLFFBQVEsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sd0JBQXdCO0lBS25DLFlBQVksVUFBNkI7UUFIbEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHdEIsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQzthQUNuQztZQUNELElBQUksVUFBVSxDQUFDLFFBQVEs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LEVBQUUsS0FBSyxDQUFDLEVBQzNDLE1BQU0sQ0FDUCxDQUFDLElBQUksQ0FDSixNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNqQixPQUFPLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyx3RkFBd0Y7Z0JBQzNILENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQ3ZCLElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFDcEUsTUFBTSxDQUNQO2dCQUNELENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDWixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQy9CLE1BQU0sQ0FDSixDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNmLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztZQUNyQixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFDSSxFQUFFLENBQ1IsQ0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0VNUFRZLCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtleHBhbmQsIG1hcCwgcmVkdWNlLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SHR0cFBhcmFtc0J1aWxkZXJ9IGZyb20gJy4uLy4uL2h0dHAtcGFyYW1zLWJ1aWxkZXInO1xuaW1wb3J0IHtTb3J0fSBmcm9tICcuLi8uLi9zb3J0JztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi8uLi9maWx0ZXJzL2ZpbHRlcic7XG5pbXBvcnQge1BhZ2UsIFBhZ2VhYmxlfSBmcm9tICcuLi8uLi9wYWdlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtDb250aW51YWJsZUxpc3Rpbmd9IGZyb20gJy4uLy4uL2NvbnRpbnVhYmxlLWxpc3RpbmcnO1xuaW1wb3J0IHtUb2tlbkNodW5rUmVxdWVzdH0gZnJvbSAnLi4vLi4vdG9rZW4tY2h1bmstcmVxdWVzdCc7XG5pbXBvcnQge0lDb250aW51YWJsZURhdGFTb3VyY2UsIElEYXRhU291cmNlLCBJTGlzdERhdGFTb3VyY2UsIElQYWdlZERhdGFTb3VyY2V9IGZyb20gJy4uL2RhdGEtc291cmNlJztcbmltcG9ydCB7QmF0Y2hlcn0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvYmF0Y2hlcic7XG5pbXBvcnQge0RhdGFTb3VyY2VDaGFuZ2VFdmVudH0gZnJvbSAnLi4vZGF0YS1zb3VyY2UtY2hhbmdlLWV2ZW50JztcbmltcG9ydCB7RGF0YVNvdXJjZUJhc2V9IGZyb20gJy4uL2RhdGEtc291cmNlLWJhc2UnO1xuXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnIHtcblxuICBwdWJsaWMgaWRGaWVsZCA9ICdpZCc7XG4gIHB1YmxpYyBpZHNQYXJhbSA9ICdpZHMnO1xuXG4gIGNvbnN0cnVjdG9yKHVzZXJDb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnKSB7XG4gICAgaWYgKHVzZXJDb25maWcpIHtcbiAgICAgIGlmICh1c2VyQ29uZmlnLmlkRmllbGQpIHtcbiAgICAgICAgdGhpcy5pZEZpZWxkID0gdXNlckNvbmZpZy5pZEZpZWxkO1xuICAgICAgfVxuICAgICAgaWYgKHVzZXJDb25maWcuaWRzUGFyYW0pIHtcbiAgICAgICAgdGhpcy5pZHNQYXJhbSA9IHVzZXJDb25maWcuaWRzUGFyYW07XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQWxsb3dzIHRvIGN1c3RvbWl6ZSB0aGUgcmVzdCBjbGllbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc3RDbGllbnRDb25maWcge1xuXG4gIC8qKlxuICAgKiBUaGUgZmllbGQgdG8gdXNlIGFzIGlkLiBEZWZhdWx0cyB0byAnaWQnLlxuICAgKi9cbiAgcHVibGljIGlkRmllbGQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBxdWVyeSBwYXJhbSB0byB1c2UgZm9yIG11bHRpcGxlIGlkcy4gRGVmYXVsdHMgdG8gJ2lkcydcbiAgICovXG4gIHB1YmxpYyBpZHNQYXJhbT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFJlc3RDbGllbnQ8VCwgVElEPiBleHRlbmRzIERhdGFTb3VyY2VCYXNlPFQ+IGltcGxlbWVudHMgSURhdGFTb3VyY2U8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWc6IEludGVybmFsUmVzdENsaWVudENvbmZpZztcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVzdEVuZHBvaW50OiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgY29uZmlnPzogUmVzdENsaWVudENvbmZpZ1xuICApIHtcbiAgICBzdXBlcihuZXcgSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnKGNvbmZpZykuaWRGaWVsZCk7XG4gICAgdGhpcy5jb25maWcgPSBuZXcgSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnKGNvbmZpZyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZmluZEJ5SWQoaWQ6IFRJRCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHBhcmFtcyA9IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcykuYnVpbGQoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih0aGlzLmdldEVudGl0eVVybChpZCksIHtwYXJhbXM6IHBhcmFtc30pO1xuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICB0aGlzLl9sb2dnZXIud2FybignVmVyeSBpbmVmZmljaWVudCBmaW5kQnlJZHMgaGFuZGxpbmcgJyArIGlkcy5sZW5ndGgpO1xuICAgIHJldHVybiBmb3JrSm9pbihcbiAgICAgIGlkcy5tYXAoaWQgPT4gdGhpcy5maW5kQnlJZChpZCwgcGFyYW1zKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgb3IgVXBkYXRlcyB0aGUgZ2l2ZW4gZW50aXR5IGRlcGVuZGluZyBpZiBpdCBhbHJlYWR5IGhhcyBhIHZhbGlkIGlkLlxuICAgKi9cbiAgcHVibGljIHNhdmUoZW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmdldElkKGVudGl0eSk7XG4gICAgcmV0dXJuICgoaWQpID8gdGhpcy51cGRhdGUoZW50aXR5LCBwYXJhbXMpIDogdGhpcy5jcmVhdGUoZW50aXR5LCBwYXJhbXMpKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGU8VEMgPSBUPihuZXdFbnRpdHk6IFRDLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KHRoaXMucmVzdEVuZHBvaW50LCBuZXdFbnRpdHksIHtcbiAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgfSkucGlwZShcbiAgICAgIHRhcChlID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KFxuICAgICAgICBEYXRhU291cmNlQ2hhbmdlRXZlbnQuY3JlYXRlZChbZV0pXG4gICAgICApKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlPFRFbnRpdHlVcGRhdGU+KHVwZGF0ZTogVEVudGl0eVVwZGF0ZSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFQ+KFxuICAgICAgdGhpcy5nZXRFbnRpdHlVcmxCeSg8VD48dW5rbm93bj51cGRhdGUpLFxuICAgICAgdXBkYXRlLFxuICAgICAge1xuICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgfVxuICAgICkucGlwZShcbiAgICAgIHRhcChlID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KFxuICAgICAgICBEYXRhU291cmNlQ2hhbmdlRXZlbnQubW9kaWZpZWQoW2VdKVxuICAgICAgKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFsbDxURW50aXR5VXBkYXRlPih1cGRhdGVkRW50aXRpZXM6IFRFbnRpdHlVcGRhdGVbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUW10+KFxuICAgICAgdGhpcy5yZXN0RW5kcG9pbnQsIHVwZGF0ZWRFbnRpdGllcywge1xuICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoZW50aXRpZXMgPT4gdGhpcy5wdWJsaXNoQ2hhbmdlRXZlbnQoXG4gICAgICAgICAgRGF0YVNvdXJjZUNoYW5nZUV2ZW50Lm1vZGlmaWVkKGVudGl0aWVzKVxuICAgICAgICApKVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUoZW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsQnkoZW50aXR5KSxcbiAgICAgIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgICB9XG4gICAgKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KFxuICAgICAgICBEYXRhU291cmNlQ2hhbmdlRXZlbnQuZGVsZXRlZChbdGhpcy5nZXRJZChlbnRpdHkpXSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVBbGwoZW50aXRpZXM6IFRbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgaWRzID0gZW50aXRpZXMubWFwKGUgPT4gU3RyaW5nKHRoaXMuZ2V0SWQoZSkpKTtcblxuICAgIGNvbnN0IG1heEJhdGNoU2l6ZSA9IDEwMDtcbiAgICBjb25zdCBkZWxldGVSZXF1ZXN0cyA9IEJhdGNoZXIuYmF0Y2hNYXAoXG4gICAgICBpZHMsXG4gICAgICBtYXhCYXRjaFNpemUsXG4gICAgICBiYXRjaCA9PiB0aGlzLmRlbGV0ZUlkQmF0Y2goYmF0Y2gsIHBhcmFtcylcbiAgICApO1xuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygnRGVsZXRpbmcgJyArIGVudGl0aWVzLmxlbmd0aCArICcgaW4gJyArIGRlbGV0ZVJlcXVlc3RzLmxlbmd0aCArICcgYmF0Y2hlczogJywgZGVsZXRlUmVxdWVzdHMpO1xuICAgIHJldHVybiBmb3JrSm9pbihkZWxldGVSZXF1ZXN0cyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogU3ViIFJlc291cmNlIEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc3ViUmVzb3VyY2VMaXN0PFRTLCBUU0lEPihwYXJlbnQ6IFQsIHN1YlBhdGg6IHN0cmluZywgY29uZmlnPzogUmVzdENsaWVudENvbmZpZyk6IFJlc3RDbGllbnRMaXN0PFRTLCBUU0lEPiB7XG4gICAgcmV0dXJuIG5ldyBSZXN0Q2xpZW50TGlzdChcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsQnkocGFyZW50KSArICcvJyArIHN1YlBhdGgsXG4gICAgICB0aGlzLmh0dHAsXG4gICAgICBjb25maWdcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN1YlJlc291cmNlUGFnZWQ8VFMsIFRTSUQ+KHBhcmVudDogVCwgc3ViUGF0aDogc3RyaW5nLCBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnKTogUmVzdENsaWVudFBhZ2VkPFRTLCBUU0lEPiB7XG4gICAgcmV0dXJuIG5ldyBSZXN0Q2xpZW50UGFnZWQoXG4gICAgICB0aGlzLmdldEVudGl0eVVybEJ5KHBhcmVudCkgKyAnLycgKyBzdWJQYXRoLFxuICAgICAgdGhpcy5odHRwLFxuICAgICAgY29uZmlnXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJSZXNvdXJjZUNvbnRpbnVhYmxlPFRTLCBUU0lEPihwYXJlbnQ6IFQsIHN1YlBhdGg6IHN0cmluZywgY29uZmlnPzogUmVzdENsaWVudENvbmZpZyk6IFJlc3RDbGllbnRDb250aW51YWJsZTxUUywgVFNJRD4ge1xuICAgIHJldHVybiBuZXcgUmVzdENsaWVudENvbnRpbnVhYmxlKFxuICAgICAgdGhpcy5nZXRFbnRpdHlVcmxCeShwYXJlbnQpICsgJy8nICsgc3ViUGF0aCxcbiAgICAgIHRoaXMuaHR0cCxcbiAgICAgIGNvbmZpZ1xuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvdGVjdGVkIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgcGF0Y2hJbnRlcm5hbDxQPihpZDogVElELCBlbnRpdHlQYXRjaDogUCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8VD4oXG4gICAgICB0aGlzLmdldEVudGl0eVVybChpZCksXG4gICAgICBlbnRpdHlQYXRjaCxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgIH1cbiAgICApLnBpcGUoXG4gICAgICB0YXAoZSA9PiB0aGlzLnB1Ymxpc2hDaGFuZ2VFdmVudChcbiAgICAgICAgRGF0YVNvdXJjZUNoYW5nZUV2ZW50Lm1vZGlmaWVkKFtlXSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXRjaEFsbEludGVybmFsPFA+KGVudGl0eVBhdGNoZXM6IFBbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxUW10+KFxuICAgICAgdGhpcy5yZXN0RW5kcG9pbnQsXG4gICAgICBlbnRpdHlQYXRjaGVzLFxuICAgICAge1xuICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgfVxuICAgICkucGlwZShcbiAgICAgIHRhcChlID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC5tb2RpZmllZChlKSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBTd2l0Y2ggdG8gcHVibGlzaENoYW5nZUV2ZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgb25Mb2NhbENoYW5nZWQoZW50aXR5PzogVCk6IHZvaWQge1xuICAgIHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC51bmtub3duQ2hhbmdlcygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRFbnRpdHlVcmxCeShlbnRpdHk6IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEVudGl0eVVybCh0aGlzLmdldElkKGVudGl0eSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEVudGl0eVVybChpZDogVElEKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXN0RW5kcG9pbnQgKyAnLycgKyBpZDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBEZWxldGVzIHRoZSBnaXZlbiBpZHMgaW4gYSBiYXRjaCBjYWxsLlxuICAgKiBOb3RlIHRoYXQgZHVlIEhUVFAgUmVxdWVzdCBVUkkgbGltaXRhdGlvbnMsXG4gICAqIHRoZSBudW1iZXIgb2YgaWRzIHRoYXQgY2FuIGJlIGRlbGV0ZWQgaW4gYSBzaW5nbGUgYmF0Y2ggaXNcbiAgICogbGltaXRlZCAoYXJvdW5kIDE1MCwgZGVwZW5kaW5nIG9uIGlkIGxlbmd0aCwgc2luY2UgdGhleSBhcmVcbiAgICogcGFydCBvZiB0aGUgcmVxdWVzdCB1cmkgcGFyYW1ldGVycy5cbiAgICovXG4gIHByaXZhdGUgZGVsZXRlSWRCYXRjaChpZHM6IHN0cmluZ1tdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBidWlsZGVyID0gSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKTtcbiAgICBidWlsZGVyLmFwcGVuZEZpbHRlcihuZXcgRmlsdGVyKHRoaXMuY29uZmlnLmlkc1BhcmFtLCBpZHMpKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZSh0aGlzLnJlc3RFbmRwb2ludCxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBidWlsZGVyLmJ1aWxkKCksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLnB1Ymxpc2hDaGFuZ2VFdmVudChEYXRhU291cmNlQ2hhbmdlRXZlbnQuZGVsZXRlZChpZHMpKSlcbiAgICAgICk7XG4gIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudExpc3Q8VCwgVElEPiBleHRlbmRzIFJlc3RDbGllbnQ8VCwgVElEPiBpbXBsZW1lbnRzIElMaXN0RGF0YVNvdXJjZTxUPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVzdEVuZHBvaW50OiBzdHJpbmcsXG4gICAgaHR0cDogSHR0cENsaWVudCxcbiAgICBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnXG4gICkge1xuICAgIHN1cGVyKHJlc3RFbmRwb2ludCwgaHR0cCwgY29uZmlnKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBmaW5kQWxsRmlsdGVyZWQoXG4gICAgZmlsdGVycz86IEZpbHRlcltdLFxuICAgIHNvcnRzPzogU29ydFtdLFxuICAgIHBhcmFtcz86IEh0dHBQYXJhbXNcbiAgKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5maW5kQWxsKFxuICAgICAgSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKVxuICAgICAgICAuYXBwZW5kRmlsdGVycyhmaWx0ZXJzKVxuICAgICAgICAuYXBwZW5kU29ydHMoc29ydHMpXG4gICAgICAgIC5idWlsZCgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJZHMoaWRzOiBhbnlbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgaWYgKGlkcz8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZEFsbEZpbHRlcmVkKFxuICAgICAgICBbbmV3IEZpbHRlcih0aGlzLmNvbmZpZy5pZHNQYXJhbSwgaWRzKV0sXG4gICAgICAgIFtdLFxuICAgICAgICBwYXJhbXNcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbmRBbGwocGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VFtdPih0aGlzLnJlc3RFbmRwb2ludCwge1xuICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudFBhZ2VkPFQsIFRJRD4gZXh0ZW5kcyBSZXN0Q2xpZW50PFQsIFRJRD4gaW1wbGVtZW50cyBJUGFnZWREYXRhU291cmNlPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICByZXN0RW5kcG9pbnQ6IHN0cmluZyxcbiAgICBodHRwOiBIdHRwQ2xpZW50LFxuICAgIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWdcbiAgKSB7XG4gICAgc3VwZXIocmVzdEVuZHBvaW50LCBodHRwLCBjb25maWcpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGZpbmRBbGxQYWdlZChwYWdlYWJsZTogUGFnZWFibGUsIGZpbHRlcnM/OiBGaWx0ZXJbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8UGFnZTxUPj4ge1xuICAgIHJldHVybiB0aGlzLmdldFBhZ2VkKHRoaXMucmVzdEVuZHBvaW50LCBwYWdlYWJsZSwgZmlsdGVycywgcGFyYW1zKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJZHMoaWRzOiBhbnlbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgaWYgKGlkcz8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZEFsbFBhZ2VkKFxuICAgICAgICBuZXcgUGFnZWFibGUoMCwgaWRzLmxlbmd0aCksXG4gICAgICAgIFtuZXcgRmlsdGVyKHRoaXMuY29uZmlnLmlkc1BhcmFtLCBpZHMpXSxcbiAgICAgICAgcGFyYW1zXG4gICAgICApLnBpcGUoXG4gICAgICAgIG1hcChwYWdlID0+IHBhZ2UuY29udGVudClcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICAvKipcbiAgICogR2V0cyB0aGUgcmVxdWVzdGVkIGRhdGEgcGFnZSBhcyBQYWdlPFQ+XG4gICAqIEBwYXJhbSB1cmwgVGhlIHJlc291cmNlIHVybFxuICAgKiBAcGFyYW0gcGFnZWFibGUgVGhlIHBhZ2UgcmVxdWVzdFxuICAgKiBAcGFyYW0gZmlsdGVycyBUaGUgZmlsdGVyc1NuYXBzaG90IHJlcXVlc3RcbiAgICogQHBhcmFtIHBhcmFtcyBBZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAgICovXG4gIHByaXZhdGUgZ2V0UGFnZWQodXJsOiBzdHJpbmcsIHBhZ2VhYmxlOiBQYWdlYWJsZSwgZmlsdGVycz86IEZpbHRlcltdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxQYWdlPFQ+PiB7XG4gICAgcGFyYW1zID0gSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKVxuICAgICAgLmFwcGVuZFBhZ2VhYmxlKHBhZ2VhYmxlKVxuICAgICAgLmFwcGVuZEZpbHRlcnMoZmlsdGVycylcbiAgICAgIC5idWlsZCgpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBhZ2U8VD4+KHVybCwge3BhcmFtczogcGFyYW1zfSk7XG4gIH1cblxufVxuXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudENvbnRpbnVhYmxlPFQsIFRJRD4gZXh0ZW5kcyBSZXN0Q2xpZW50PFQsIFRJRD4gaW1wbGVtZW50cyBJQ29udGludWFibGVEYXRhU291cmNlPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICByZXN0RW5kcG9pbnQ6IHN0cmluZyxcbiAgICBodHRwOiBIdHRwQ2xpZW50LFxuICAgIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWdcbiAgKSB7XG4gICAgc3VwZXIocmVzdEVuZHBvaW50LCBodHRwLCBjb25maWcpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGZpbmRBbGxDb250aW51YWJsZShyZXF1ZXN0OiBUb2tlbkNodW5rUmVxdWVzdCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8Q29udGludWFibGVMaXN0aW5nPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udGludWFibGVMaXN0aW5nPFQ+Pih0aGlzLnJlc3RFbmRwb2ludCxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBIdHRwUGFyYW1zQnVpbGRlci5zdGFydChwYXJhbXMpXG4gICAgICAgICAgLmFwcGVuZENvbnRpbnVhdGlvblJlcXVlc3QocmVxdWVzdClcbiAgICAgICAgICAuYnVpbGQoKVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWRzKGlkczogYW55W10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIGlmIChpZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmxvYWRBbGwoXG4gICAgICAgIFtuZXcgRmlsdGVyKHRoaXMuY29uZmlnLmlkc1BhcmFtLCBpZHMpXSxcbiAgICAgICAgW10sXG4gICAgICAgIHBhcmFtc1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRBbGwoXG4gICAgZmlsdGVycz86IEZpbHRlcltdLFxuICAgIHNvcnRzPzogU29ydFtdLFxuICAgIHBhcmFtcz86IEh0dHBQYXJhbXNcbiAgKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5maW5kQWxsQ29udGludWFibGUoXG4gICAgICBuZXcgVG9rZW5DaHVua1JlcXVlc3QobnVsbCwgZmlsdGVycywgc29ydHMpLFxuICAgICAgcGFyYW1zXG4gICAgKS5waXBlKFxuICAgICAgZXhwYW5kKChsaXN0aW5nKSA9PiB7IC8vIHRoZSBwcmV2aW91cyBcImxpc3RpbmdcIiAtPiBUaGlzIGlzIHJlY3Vyc2l2ZVxuICAgICAgICByZXR1cm4gbGlzdGluZy5uZXh0Q29udGludWF0aW9uVG9rZW4gLy8gaWYgdGhlcmUncyBcIm5leHRDb250aW51YXRpb25Ub2tlblwiLCB3ZSByZWZldGNoIG9yIHdlIEVNUFRZIHRvIGNvbXBsZXRlIHRoZSBcImV4cGFuZCgpXCJcbiAgICAgICAgICA/IHRoaXMuZmluZEFsbENvbnRpbnVhYmxlKFxuICAgICAgICAgICAgbmV3IFRva2VuQ2h1bmtSZXF1ZXN0KGxpc3RpbmcubmV4dENvbnRpbnVhdGlvblRva2VuLCBmaWx0ZXJzLCBzb3J0cyksXG4gICAgICAgICAgICBwYXJhbXNcbiAgICAgICAgICApXG4gICAgICAgICAgOiBFTVBUWTtcbiAgICAgIH0pLFxuICAgICAgbWFwKGxpc3RpbmcgPT4gbGlzdGluZy5jb250ZW50KSxcbiAgICAgIHJlZHVjZShcbiAgICAgICAgKGFnZywgbGlzdGluZykgPT4ge1xuICAgICAgICAgIGFnZy5wdXNoKC4uLmxpc3RpbmcpO1xuICAgICAgICAgIHJldHVybiBhZ2c7XG4gICAgICAgIH0sXG4gICAgICAgIDxUW10+W11cbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL3Jlc3QvcmVzdC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUMsT0FBTyxFQUFPLFFBQVEsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sd0JBQXdCO0lBS25DLFlBQVksVUFBNkI7UUFIbEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHdEIsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQzthQUNuQztZQUNELElBQUksVUFBVSxDQUFDLFFBQVEs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TyxFQUFFLEtBQUssQ0FBQyxFQUMzQyxNQUFNLENBQ1AsQ0FBQyxJQUFJLENBQ0osTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDakIsT0FBTyxPQUFPLENBQUMscUJBQXFCLENBQUMsd0ZBQXdGO2dCQUMzSCxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUN2QixJQUFJLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQ3BFLE1BQU0sQ0FDUDtnQkFDRCxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ1osQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUMvQixNQUFNLENBQ0osQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDZixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7WUFDckIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQ0ksRUFBRSxDQUNSLENBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudCwgSHR0cFBhcmFtc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtFTVBUWSwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZXhwYW5kLCBtYXAsIHJlZHVjZSwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0h0dHBQYXJhbXNCdWlsZGVyfSBmcm9tICcuLi8uLi9odHRwLXBhcmFtcy1idWlsZGVyJztcbmltcG9ydCB7U29ydH0gZnJvbSAnLi4vLi4vc29ydCc7XG5pbXBvcnQge0ZpbHRlcn0gZnJvbSAnLi4vLi4vZmlsdGVycy9maWx0ZXInO1xuaW1wb3J0IHtQYWdlLCBQYWdlYWJsZX0gZnJvbSAnLi4vLi4vcGFnZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7Q29udGludWFibGVMaXN0aW5nfSBmcm9tICcuLi8uLi9jb250aW51YWJsZS1saXN0aW5nJztcbmltcG9ydCB7VG9rZW5DaHVua1JlcXVlc3R9IGZyb20gJy4uLy4uL3Rva2VuLWNodW5rLXJlcXVlc3QnO1xuaW1wb3J0IHtJQ29udGludWFibGVEYXRhU291cmNlLCBJRGF0YVNvdXJjZSwgSUxpc3REYXRhU291cmNlLCBJUGFnZWREYXRhU291cmNlfSBmcm9tICcuLi9kYXRhLXNvdXJjZSc7XG5pbXBvcnQge0JhdGNoZXJ9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2JhdGNoZXInO1xuaW1wb3J0IHtEYXRhU291cmNlQ2hhbmdlRXZlbnR9IGZyb20gJy4uL2RhdGEtc291cmNlLWNoYW5nZS1ldmVudCc7XG5pbXBvcnQge0RhdGFTb3VyY2VCYXNlfSBmcm9tICcuLi9kYXRhLXNvdXJjZS1iYXNlJztcblxuZXhwb3J0IGNsYXNzIEludGVybmFsUmVzdENsaWVudENvbmZpZyB7XG5cbiAgcHVibGljIGlkRmllbGQgPSAnaWQnO1xuICBwdWJsaWMgaWRzUGFyYW0gPSAnaWRzJztcblxuICBjb25zdHJ1Y3Rvcih1c2VyQ29uZmlnPzogUmVzdENsaWVudENvbmZpZykge1xuICAgIGlmICh1c2VyQ29uZmlnKSB7XG4gICAgICBpZiAodXNlckNvbmZpZy5pZEZpZWxkKSB7XG4gICAgICAgIHRoaXMuaWRGaWVsZCA9IHVzZXJDb25maWcuaWRGaWVsZDtcbiAgICAgIH1cbiAgICAgIGlmICh1c2VyQ29uZmlnLmlkc1BhcmFtKSB7XG4gICAgICAgIHRoaXMuaWRzUGFyYW0gPSB1c2VyQ29uZmlnLmlkc1BhcmFtO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEFsbG93cyB0byBjdXN0b21pemUgdGhlIHJlc3QgY2xpZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBSZXN0Q2xpZW50Q29uZmlnIHtcblxuICAvKipcbiAgICogVGhlIGZpZWxkIHRvIHVzZSBhcyBpZC4gRGVmYXVsdHMgdG8gJ2lkJy5cbiAgICovXG4gIHB1YmxpYyBpZEZpZWxkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcXVlcnkgcGFyYW0gdG8gdXNlIGZvciBtdWx0aXBsZSBpZHMuIERlZmF1bHRzIHRvICdpZHMnXG4gICAqL1xuICBwdWJsaWMgaWRzUGFyYW0/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBSZXN0Q2xpZW50PFQsIFRJRD4gZXh0ZW5kcyBEYXRhU291cmNlQmFzZTxUPiBpbXBsZW1lbnRzIElEYXRhU291cmNlPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnOiBJbnRlcm5hbFJlc3RDbGllbnRDb25maWc7XG5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVzdEVuZHBvaW50OiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgY29uZmlnPzogUmVzdENsaWVudENvbmZpZ1xuICApIHtcbiAgICBzdXBlcihuZXcgSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnKGNvbmZpZykuaWRGaWVsZCk7XG4gICAgdGhpcy5jb25maWcgPSBuZXcgSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnKGNvbmZpZyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZmluZEJ5SWQoaWQ6IFRJRCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHBhcmFtcyA9IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcykuYnVpbGQoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih0aGlzLmdldEVudGl0eVVybChpZCksIHtwYXJhbXM6IHBhcmFtc30pO1xuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICB0aGlzLl9sb2dnZXIud2FybignVmVyeSBpbmVmZmljaWVudCBmaW5kQnlJZHMgaGFuZGxpbmcgJyArIGlkcy5sZW5ndGgpO1xuICAgIHJldHVybiBmb3JrSm9pbihcbiAgICAgIGlkcy5tYXAoaWQgPT4gdGhpcy5maW5kQnlJZChpZCwgcGFyYW1zKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgb3IgVXBkYXRlcyB0aGUgZ2l2ZW4gZW50aXR5IGRlcGVuZGluZyBpZiBpdCBhbHJlYWR5IGhhcyBhIHZhbGlkIGlkLlxuICAgKi9cbiAgcHVibGljIHNhdmUoZW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmdldElkKGVudGl0eSk7XG4gICAgcmV0dXJuICgoaWQpID8gdGhpcy51cGRhdGUoZW50aXR5LCBwYXJhbXMpIDogdGhpcy5jcmVhdGUoZW50aXR5LCBwYXJhbXMpKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGU8VEMgPSBUPihuZXdFbnRpdHk6IFRDLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFQ+KHRoaXMucmVzdEVuZHBvaW50LCBuZXdFbnRpdHksIHtcbiAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgfSkucGlwZShcbiAgICAgIHRhcChlID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KFxuICAgICAgICBEYXRhU291cmNlQ2hhbmdlRXZlbnQuY3JlYXRlZChbZV0pXG4gICAgICApKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlPFRFbnRpdHlVcGRhdGU+KHVwZGF0ZTogVEVudGl0eVVwZGF0ZSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PFQ+KFxuICAgICAgdGhpcy5nZXRFbnRpdHlVcmxCeSg8VD48dW5rbm93bj51cGRhdGUpLFxuICAgICAgdXBkYXRlLFxuICAgICAge1xuICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgfVxuICAgICkucGlwZShcbiAgICAgIHRhcChlID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KFxuICAgICAgICBEYXRhU291cmNlQ2hhbmdlRXZlbnQubW9kaWZpZWQoW2VdKVxuICAgICAgKSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFsbDxURW50aXR5VXBkYXRlPih1cGRhdGVkRW50aXRpZXM6IFRFbnRpdHlVcGRhdGVbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUW10+KFxuICAgICAgdGhpcy5yZXN0RW5kcG9pbnQsIHVwZGF0ZWRFbnRpdGllcywge1xuICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoZW50aXRpZXMgPT4gdGhpcy5wdWJsaXNoQ2hhbmdlRXZlbnQoXG4gICAgICAgICAgRGF0YVNvdXJjZUNoYW5nZUV2ZW50Lm1vZGlmaWVkKGVudGl0aWVzKVxuICAgICAgICApKVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUoZW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsQnkoZW50aXR5KSxcbiAgICAgIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgICB9XG4gICAgKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KFxuICAgICAgICBEYXRhU291cmNlQ2hhbmdlRXZlbnQuZGVsZXRlZChbdGhpcy5nZXRJZChlbnRpdHkpXSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVBbGwoZW50aXRpZXM6IFRbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgaWRzID0gZW50aXRpZXMubWFwKGUgPT4gU3RyaW5nKHRoaXMuZ2V0SWQoZSkpKTtcblxuICAgIGNvbnN0IG1heEJhdGNoU2l6ZSA9IDEwMDtcbiAgICBjb25zdCBkZWxldGVSZXF1ZXN0cyA9IEJhdGNoZXIuYmF0Y2hNYXAoXG4gICAgICBpZHMsXG4gICAgICBtYXhCYXRjaFNpemUsXG4gICAgICBiYXRjaCA9PiB0aGlzLmRlbGV0ZUlkQmF0Y2goYmF0Y2gsIHBhcmFtcylcbiAgICApO1xuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygnRGVsZXRpbmcgJyArIGVudGl0aWVzLmxlbmd0aCArICcgaW4gJyArIGRlbGV0ZVJlcXVlc3RzLmxlbmd0aCArICcgYmF0Y2hlczogJywgZGVsZXRlUmVxdWVzdHMpO1xuICAgIHJldHVybiBmb3JrSm9pbihkZWxldGVSZXF1ZXN0cyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogU3ViIFJlc291cmNlIEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc3ViUmVzb3VyY2VMaXN0PFRTLCBUU0lEPihwYXJlbnQ6IFQsIHN1YlBhdGg6IHN0cmluZywgY29uZmlnPzogUmVzdENsaWVudENvbmZpZyk6IFJlc3RDbGllbnRMaXN0PFRTLCBUU0lEPiB7XG4gICAgcmV0dXJuIG5ldyBSZXN0Q2xpZW50TGlzdChcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsQnkocGFyZW50KSArICcvJyArIHN1YlBhdGgsXG4gICAgICB0aGlzLmh0dHAsXG4gICAgICBjb25maWdcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN1YlJlc291cmNlUGFnZWQ8VFMsIFRTSUQ+KHBhcmVudDogVCwgc3ViUGF0aDogc3RyaW5nLCBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnKTogUmVzdENsaWVudFBhZ2VkPFRTLCBUU0lEPiB7XG4gICAgcmV0dXJuIG5ldyBSZXN0Q2xpZW50UGFnZWQoXG4gICAgICB0aGlzLmdldEVudGl0eVVybEJ5KHBhcmVudCkgKyAnLycgKyBzdWJQYXRoLFxuICAgICAgdGhpcy5odHRwLFxuICAgICAgY29uZmlnXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJSZXNvdXJjZUNvbnRpbnVhYmxlPFRTLCBUU0lEPihwYXJlbnQ6IFQsIHN1YlBhdGg6IHN0cmluZywgY29uZmlnPzogUmVzdENsaWVudENvbmZpZyk6IFJlc3RDbGllbnRDb250aW51YWJsZTxUUywgVFNJRD4ge1xuICAgIHJldHVybiBuZXcgUmVzdENsaWVudENvbnRpbnVhYmxlKFxuICAgICAgdGhpcy5nZXRFbnRpdHlVcmxCeShwYXJlbnQpICsgJy8nICsgc3ViUGF0aCxcbiAgICAgIHRoaXMuaHR0cCxcbiAgICAgIGNvbmZpZ1xuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvdGVjdGVkIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgcGF0Y2hJbnRlcm5hbDxQPihpZDogVElELCBlbnRpdHlQYXRjaDogUCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8VD4oXG4gICAgICB0aGlzLmdldEVudGl0eVVybChpZCksXG4gICAgICBlbnRpdHlQYXRjaCxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgIH1cbiAgICApLnBpcGUoXG4gICAgICB0YXAoZSA9PiB0aGlzLnB1Ymxpc2hDaGFuZ2VFdmVudChcbiAgICAgICAgRGF0YVNvdXJjZUNoYW5nZUV2ZW50Lm1vZGlmaWVkKFtlXSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXRjaEFsbEludGVybmFsPFA+KGVudGl0eVBhdGNoZXM6IFBbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxUW10+KFxuICAgICAgdGhpcy5yZXN0RW5kcG9pbnQsXG4gICAgICBlbnRpdHlQYXRjaGVzLFxuICAgICAge1xuICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgfVxuICAgICkucGlwZShcbiAgICAgIHRhcChlID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC5tb2RpZmllZChlKSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBTd2l0Y2ggdG8gcHVibGlzaENoYW5nZUV2ZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgb25Mb2NhbENoYW5nZWQoZW50aXR5PzogVCk6IHZvaWQge1xuICAgIHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC51bmtub3duQ2hhbmdlcygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRFbnRpdHlVcmxCeShlbnRpdHk6IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEVudGl0eVVybCh0aGlzLmdldElkKGVudGl0eSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEVudGl0eVVybChpZDogVElEKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXN0RW5kcG9pbnQgKyAnLycgKyBpZDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBEZWxldGVzIHRoZSBnaXZlbiBpZHMgaW4gYSBiYXRjaCBjYWxsLlxuICAgKiBOb3RlIHRoYXQgZHVlIEhUVFAgUmVxdWVzdCBVUkkgbGltaXRhdGlvbnMsXG4gICAqIHRoZSBudW1iZXIgb2YgaWRzIHRoYXQgY2FuIGJlIGRlbGV0ZWQgaW4gYSBzaW5nbGUgYmF0Y2ggaXNcbiAgICogbGltaXRlZCAoYXJvdW5kIDE1MCwgZGVwZW5kaW5nIG9uIGlkIGxlbmd0aCwgc2luY2UgdGhleSBhcmVcbiAgICogcGFydCBvZiB0aGUgcmVxdWVzdCB1cmkgcGFyYW1ldGVycy5cbiAgICovXG4gIHByaXZhdGUgZGVsZXRlSWRCYXRjaChpZHM6IHN0cmluZ1tdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBidWlsZGVyID0gSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKTtcbiAgICBidWlsZGVyLmFwcGVuZEZpbHRlcihuZXcgRmlsdGVyKHRoaXMuY29uZmlnLmlkc1BhcmFtLCBpZHMpKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZSh0aGlzLnJlc3RFbmRwb2ludCxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBidWlsZGVyLmJ1aWxkKCksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLnB1Ymxpc2hDaGFuZ2VFdmVudChEYXRhU291cmNlQ2hhbmdlRXZlbnQuZGVsZXRlZChpZHMpKSlcbiAgICAgICk7XG4gIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudExpc3Q8VCwgVElEPiBleHRlbmRzIFJlc3RDbGllbnQ8VCwgVElEPiBpbXBsZW1lbnRzIElMaXN0RGF0YVNvdXJjZTxUPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVzdEVuZHBvaW50OiBzdHJpbmcsXG4gICAgaHR0cDogSHR0cENsaWVudCxcbiAgICBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnXG4gICkge1xuICAgIHN1cGVyKHJlc3RFbmRwb2ludCwgaHR0cCwgY29uZmlnKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBmaW5kQWxsRmlsdGVyZWQoXG4gICAgZmlsdGVycz86IEZpbHRlcltdLFxuICAgIHNvcnRzPzogU29ydFtdLFxuICAgIHBhcmFtcz86IEh0dHBQYXJhbXNcbiAgKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5maW5kQWxsKFxuICAgICAgSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKVxuICAgICAgICAuYXBwZW5kRmlsdGVycyhmaWx0ZXJzKVxuICAgICAgICAuYXBwZW5kU29ydHMoc29ydHMpXG4gICAgICAgIC5idWlsZCgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJZHMoaWRzOiBhbnlbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgaWYgKGlkcz8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZEFsbEZpbHRlcmVkKFxuICAgICAgICBbbmV3IEZpbHRlcih0aGlzLmNvbmZpZy5pZHNQYXJhbSwgaWRzKV0sXG4gICAgICAgIFtdLFxuICAgICAgICBwYXJhbXNcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbmRBbGwocGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VFtdPih0aGlzLnJlc3RFbmRwb2ludCwge1xuICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudFBhZ2VkPFQsIFRJRD4gZXh0ZW5kcyBSZXN0Q2xpZW50PFQsIFRJRD4gaW1wbGVtZW50cyBJUGFnZWREYXRhU291cmNlPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICByZXN0RW5kcG9pbnQ6IHN0cmluZyxcbiAgICBodHRwOiBIdHRwQ2xpZW50LFxuICAgIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWdcbiAgKSB7XG4gICAgc3VwZXIocmVzdEVuZHBvaW50LCBodHRwLCBjb25maWcpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGZpbmRBbGxQYWdlZChwYWdlYWJsZTogUGFnZWFibGUsIGZpbHRlcnM/OiBGaWx0ZXJbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8UGFnZTxUPj4ge1xuICAgIHJldHVybiB0aGlzLmdldFBhZ2VkKHRoaXMucmVzdEVuZHBvaW50LCBwYWdlYWJsZSwgZmlsdGVycywgcGFyYW1zKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJZHMoaWRzOiBhbnlbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgaWYgKGlkcz8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZEFsbFBhZ2VkKFxuICAgICAgICBuZXcgUGFnZWFibGUoMCwgaWRzLmxlbmd0aCksXG4gICAgICAgIFtuZXcgRmlsdGVyKHRoaXMuY29uZmlnLmlkc1BhcmFtLCBpZHMpXSxcbiAgICAgICAgcGFyYW1zXG4gICAgICApLnBpcGUoXG4gICAgICAgIG1hcChwYWdlID0+IHBhZ2UuY29udGVudClcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICAvKipcbiAgICogR2V0cyB0aGUgcmVxdWVzdGVkIGRhdGEgcGFnZSBhcyBQYWdlPFQ+XG4gICAqIEBwYXJhbSB1cmwgVGhlIHJlc291cmNlIHVybFxuICAgKiBAcGFyYW0gcGFnZWFibGUgVGhlIHBhZ2UgcmVxdWVzdFxuICAgKiBAcGFyYW0gZmlsdGVycyBUaGUgZmlsdGVyc1NuYXBzaG90IHJlcXVlc3RcbiAgICogQHBhcmFtIHBhcmFtcyBBZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAgICovXG4gIHByaXZhdGUgZ2V0UGFnZWQodXJsOiBzdHJpbmcsIHBhZ2VhYmxlOiBQYWdlYWJsZSwgZmlsdGVycz86IEZpbHRlcltdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxQYWdlPFQ+PiB7XG4gICAgcGFyYW1zID0gSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKVxuICAgICAgLmFwcGVuZFBhZ2VhYmxlKHBhZ2VhYmxlKVxuICAgICAgLmFwcGVuZEZpbHRlcnMoZmlsdGVycylcbiAgICAgIC5idWlsZCgpO1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBhZ2U8VD4+KHVybCwge3BhcmFtczogcGFyYW1zfSk7XG4gIH1cblxufVxuXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudENvbnRpbnVhYmxlPFQsIFRJRD4gZXh0ZW5kcyBSZXN0Q2xpZW50PFQsIFRJRD4gaW1wbGVtZW50cyBJQ29udGludWFibGVEYXRhU291cmNlPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICByZXN0RW5kcG9pbnQ6IHN0cmluZyxcbiAgICBodHRwOiBIdHRwQ2xpZW50LFxuICAgIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWdcbiAgKSB7XG4gICAgc3VwZXIocmVzdEVuZHBvaW50LCBodHRwLCBjb25maWcpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGZpbmRBbGxDb250aW51YWJsZShyZXF1ZXN0OiBUb2tlbkNodW5rUmVxdWVzdCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8Q29udGludWFibGVMaXN0aW5nPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udGludWFibGVMaXN0aW5nPFQ+Pih0aGlzLnJlc3RFbmRwb2ludCxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBIdHRwUGFyYW1zQnVpbGRlci5zdGFydChwYXJhbXMpXG4gICAgICAgICAgLmFwcGVuZENvbnRpbnVhdGlvblJlcXVlc3QocmVxdWVzdClcbiAgICAgICAgICAuYnVpbGQoKVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWRzKGlkczogYW55W10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIGlmIChpZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmxvYWRBbGwoXG4gICAgICAgIFtuZXcgRmlsdGVyKHRoaXMuY29uZmlnLmlkc1BhcmFtLCBpZHMpXSxcbiAgICAgICAgW10sXG4gICAgICAgIHBhcmFtc1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRBbGwoXG4gICAgZmlsdGVycz86IEZpbHRlcltdLFxuICAgIHNvcnRzPzogU29ydFtdLFxuICAgIHBhcmFtcz86IEh0dHBQYXJhbXNcbiAgKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5maW5kQWxsQ29udGludWFibGUoXG4gICAgICBuZXcgVG9rZW5DaHVua1JlcXVlc3QobnVsbCwgZmlsdGVycywgc29ydHMpLFxuICAgICAgcGFyYW1zXG4gICAgKS5waXBlKFxuICAgICAgZXhwYW5kKChsaXN0aW5nKSA9PiB7IC8vIHRoZSBwcmV2aW91cyBcImxpc3RpbmdcIiAtPiBUaGlzIGlzIHJlY3Vyc2l2ZVxuICAgICAgICByZXR1cm4gbGlzdGluZy5uZXh0Q29udGludWF0aW9uVG9rZW4gLy8gaWYgdGhlcmUncyBcIm5leHRDb250aW51YXRpb25Ub2tlblwiLCB3ZSByZWZldGNoIG9yIHdlIEVNUFRZIHRvIGNvbXBsZXRlIHRoZSBcImV4cGFuZCgpXCJcbiAgICAgICAgICA/IHRoaXMuZmluZEFsbENvbnRpbnVhYmxlKFxuICAgICAgICAgICAgbmV3IFRva2VuQ2h1bmtSZXF1ZXN0KGxpc3RpbmcubmV4dENvbnRpbnVhdGlvblRva2VuLCBmaWx0ZXJzLCBzb3J0cyksXG4gICAgICAgICAgICBwYXJhbXNcbiAgICAgICAgICApXG4gICAgICAgICAgOiBFTVBUWTtcbiAgICAgIH0pLFxuICAgICAgbWFwKGxpc3RpbmcgPT4gbGlzdGluZy5jb250ZW50KSxcbiAgICAgIHJlZHVjZShcbiAgICAgICAgKGFnZywgbGlzdGluZykgPT4ge1xuICAgICAgICAgIGFnZy5wdXNoKC4uLmxpc3RpbmcpO1xuICAgICAgICAgIHJldHVybiBhZ2c7XG4gICAgICAgIH0sXG4gICAgICAgIDxUW10+W11cbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,23 @@
1
+ /***************************************************************************
2
+ * *
3
+ * Common functions *
4
+ * *
5
+ **************************************************************************/
6
+ export default class FilterCommons {
7
+ static isArrayAndNotEmpty(value) {
8
+ return this.isArray(value) && this.isNotEmptyArray(value);
9
+ }
10
+ static isArray(value) {
11
+ return value !== null && Array.isArray(value);
12
+ }
13
+ static isNotEmptyArray(value) {
14
+ return value.length > 0;
15
+ }
16
+ static getValuesIfArrayElseEmpty(value) {
17
+ if (this.isArray(value)) {
18
+ return value;
19
+ }
20
+ return [];
21
+ }
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbW1vbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlci1jb21tb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7OzRFQUk0RTtBQUU1RSxNQUFNLENBQUMsT0FBTyxPQUFPLGFBQWE7SUFDekIsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQWtCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQWtCO1FBQ3RDLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTSxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQWtCO1FBQzlDLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxLQUFrQjtRQUN4RCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkIsT0FBaUIsS0FBSyxDQUFDO1NBQ3hCO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ZpbHRlclZhbHVlfSBmcm9tICcuL2ZpbHRlci12YWx1ZSc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAqIENvbW1vbiBmdW5jdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRmlsdGVyQ29tbW9ucyB7XG4gIHB1YmxpYyBzdGF0aWMgaXNBcnJheUFuZE5vdEVtcHR5KHZhbHVlOiBGaWx0ZXJWYWx1ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzQXJyYXkodmFsdWUpICYmIHRoaXMuaXNOb3RFbXB0eUFycmF5KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNBcnJheSh2YWx1ZTogRmlsdGVyVmFsdWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzTm90RW1wdHlBcnJheSh2YWx1ZTogRmlsdGVyVmFsdWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0VmFsdWVzSWZBcnJheUVsc2VFbXB0eSh2YWx1ZTogRmlsdGVyVmFsdWUpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiA8c3RyaW5nW10+dmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxufVxuXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZmlsdGVycy9maWx0ZXItdmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZpbHRlclZhbHVlID0gc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsO1xuIl19
@@ -72,13 +72,13 @@ export class ElderEnumTranslationService {
72
72
  enumDateSource(enumClass, translationPrefix, sort = true, asc = true) {
73
73
  return DelegateListDataSource.listFetcher(() => this.translate(enumClass, translationPrefix, sort, asc), 'value', (id) => this.translateOne(translationPrefix, id));
74
74
  }
75
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderEnumTranslationService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
76
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderEnumTranslationService, providedIn: 'root' }); }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderEnumTranslationService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
76
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderEnumTranslationService, providedIn: 'root' }); }
77
77
  }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderEnumTranslationService, decorators: [{
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: ElderEnumTranslationService, decorators: [{
79
79
  type: Injectable,
80
80
  args: [{
81
81
  providedIn: 'root'
82
82
  }]
83
83
  }], ctorParameters: () => [{ type: i1.TranslateService }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZW51bS10cmFuc2xhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2VudW1zL2VsZGVyLWVudW0tdHJhbnNsYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQzs7O0FBR3ZGLE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFDUyxLQUFhLEVBQ2IsWUFBb0I7UUFEcEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGlCQUFZLEdBQVosWUFBWSxDQUFRO0lBRTdCLENBQUM7Q0FFRjtBQUtELE1BQU0sT0FBTywyQkFBMkI7SUFFdEM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1UsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFFNUMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RTs7Ozs7Ozs7T0FRRztJQUNJLFNBQVMsQ0FDZCxTQUFjLEVBQ2QsaUJBQXlCLEVBQ3pCLElBQUksR0FBRyxJQUFJLEVBQ1gsR0FBRyxHQUFHLElBQUk7UUFHVixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQ3pELEdBQUcsQ0FBQyxDQUFDLFdBQXlCLEVBQUUsRUFBRTtZQUNoQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2lCQUMxQixHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ2IsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNyQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDO2dCQUNyRCxPQUFPLElBQUksbUJBQW1CLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsSUFBMkIsRUFBRSxFQUFFO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEYsSUFBSSxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUVKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxZQUFZLENBQ2pCLGlCQUF5QixFQUN6QixPQUFlO1FBR2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGlCQUFpQixHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUM7YUFDaEUsSUFBSSxDQUNILEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUNwQixJQUFJLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FDdkYsQ0FBQztJQUNOLENBQUM7SUFFTyxrQkFBa0IsQ0FDeEIsT0FBZ0IsRUFDaEIsZUFBdUI7UUFFdkIsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksY0FBYyxDQUNuQixTQUFjLEVBQ2QsaUJBQXlCLEVBQ3pCLElBQUksR0FBRyxJQUFJLEVBQ1gsR0FBRyxHQUFHLElBQUk7UUFFVixPQUFPLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUN6RCxPQUFPLEVBQ1AsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzhHQWxHVSwyQkFBMkI7a0hBQTNCLDJCQUEyQixjQUYxQixNQUFNOzsyRkFFUCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29tcGFyYXRvckJ1aWxkZXJ9IGZyb20gJy4uL2RhdGEvZmllbGQtY29tcGFyYXRvcic7XG5pbXBvcnQge0lEYXRhU291cmNlfSBmcm9tICcuLi9kYXRhL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtEZWxlZ2F0ZUxpc3REYXRhU291cmNlfSBmcm9tICcuLi9kYXRhL2RhdGFzb3VyY2UvZmV0Y2hlci9kZWxlZ2F0ZS1kYXRhLXNvdXJjZSc7XG5cblxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZWRFbnVtVmFsdWUge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB2YWx1ZTogc3RyaW5nLFxuICAgIHB1YmxpYyBkaXNwbGF5VmFsdWU6IHN0cmluZ1xuICApIHtcbiAgfVxuXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRW51bVRyYW5zbGF0aW9uU2VydmljZSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFRyYW5zbGF0ZXMgdGhlIGdpdmVuIEVudW0gY2xhc3MuIExvYWRzIHRyYW5zbGF0aW9ucyBvZiBnaXZlbiB0cmFuc2xhdGlvblByZWZpeFxuICAgKiBhbmQgY3JlYXRlcyBmb3IgZWFjaCBlbnVtIHZhbHVlIGEgVHJhbnNsYXRlZEVudW1WYWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIGVudW1DbGFzcyBlbnVtIHRvIHRyYW5zbGF0ZVxuICAgKiBAcGFyYW0gdHJhbnNsYXRpb25QcmVmaXggcHJlZml4IHRvIGxvYWQgdHJhbnNsYXRpb25zXG4gICAqIEBwYXJhbSBzb3J0IGlmIHRydWUsIGRhdGEgd2lsbCBiZSBzb3J0ZWQgYnkgdHJhbnNsYXRpb25zXG4gICAqIEBwYXJhbSBhc2MgaWYgdHJ1ZSwgZGF0YSB3aWxsIGJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXJcbiAgICovXG4gIHB1YmxpYyB0cmFuc2xhdGUoXG4gICAgZW51bUNsYXNzOiBhbnksXG4gICAgdHJhbnNsYXRpb25QcmVmaXg6IHN0cmluZyxcbiAgICBzb3J0ID0gdHJ1ZSxcbiAgICBhc2MgPSB0cnVlXG4gICk6IE9ic2VydmFibGU8VHJhbnNsYXRlZEVudW1WYWx1ZVtdPiB7XG5cbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSh0cmFuc2xhdGlvblByZWZpeCkucGlwZShcbiAgICAgIG1hcCgodHJhbnNsYXRpb246IHN0cmluZyB8IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bUNsYXNzKVxuICAgICAgICAgIC5tYXAoZW51bUtleSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbnVtVmFsdWUgPSBlbnVtQ2xhc3NbZW51bUtleV07XG4gICAgICAgICAgICBjb25zdCB0cmFuc2xhdGVkID0gdHJhbnNsYXRpb25bZW51bVZhbHVlXSA/PyBlbnVtS2V5O1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUcmFuc2xhdGVkRW51bVZhbHVlKGVudW1WYWx1ZSwgdHJhbnNsYXRlZCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgoZGF0YTogVHJhbnNsYXRlZEVudW1WYWx1ZVtdKSA9PiB7XG4gICAgICAgIHJldHVybiBzb3J0ID9cbiAgICAgICAgICBkYXRhLnNvcnQoQ29tcGFyYXRvckJ1aWxkZXIuZmllbGRTb3J0KGFzYyA/ICdkaXNwbGF5VmFsdWUnIDogJy1kaXNwbGF5VmFsdWUnKSkgOlxuICAgICAgICAgIGRhdGE7XG4gICAgICB9KVxuICAgICk7XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2xhdGVzIHRoZSBnaXZlbiBlbGVtZW50LiBMb2FkcyB0aGUgdHJhbnNsYXRpb25cbiAgICogYW5kIGNyZWF0ZXMgYSBUcmFuc2xhdGVkRW51bVZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdHJhbnNsYXRpb25QcmVmaXggcHJlZml4IHRvIGxvYWQgdHJhbnNsYXRpb25cbiAgICogQHBhcmFtIGVudW1LZXkga2V5IG9mIHRoZSB0cmFuc2xhdGlvbiB0byBsb2FkXG4gICAqL1xuICBwdWJsaWMgdHJhbnNsYXRlT25lKFxuICAgIHRyYW5zbGF0aW9uUHJlZml4OiBzdHJpbmcsXG4gICAgZW51bUtleTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8VHJhbnNsYXRlZEVudW1WYWx1ZT4ge1xuXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodHJhbnNsYXRpb25QcmVmaXggKyAnLicgKyBlbnVtS2V5KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh0cmFuc2xhdGVkVmFsdWUgPT5cbiAgICAgICAgICBuZXcgVHJhbnNsYXRlZEVudW1WYWx1ZShlbnVtS2V5LCB0aGlzLmFkZFByZWZpeElmTm90TnVsbChlbnVtS2V5LCB0cmFuc2xhdGVkVmFsdWUpKSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFkZFByZWZpeElmTm90TnVsbChcbiAgICBlbnVtS2V5IDogc3RyaW5nLFxuICAgIHRyYW5zbGF0ZWRWYWx1ZTogc3RyaW5nXG4gICkge1xuICAgIHJldHVybiBlbnVtS2V5ID8gdHJhbnNsYXRlZFZhbHVlIDogJyc7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGRhdGEgc291cmNlIG9mIHRyYW5zbGF0aW9ucyBvZiB0aGUgZ2l2ZW4gZW51bSBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIGVudW1DbGFzcyBlbnVtIHRvIHRyYW5zbGF0ZVxuICAgKiBAcGFyYW0gdHJhbnNsYXRpb25QcmVmaXggcHJlZml4IHRvIGxvYWQgdHJhbnNsYXRpb25zXG4gICAqIEBwYXJhbSBzb3J0IGlmIHRydWUsIGRhdGEgd2lsbCBiZSBzb3J0ZWQgYnkgdHJhbnNsYXRpb25zXG4gICAqIEBwYXJhbSBhc2MgaWYgdHJ1ZSwgZGF0YSB3aWxsIGJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXJcbiAgICovXG4gIHB1YmxpYyBlbnVtRGF0ZVNvdXJjZShcbiAgICBlbnVtQ2xhc3M6IGFueSxcbiAgICB0cmFuc2xhdGlvblByZWZpeDogc3RyaW5nLFxuICAgIHNvcnQgPSB0cnVlLFxuICAgIGFzYyA9IHRydWVcbiAgKTogSURhdGFTb3VyY2U8VHJhbnNsYXRlZEVudW1WYWx1ZT4ge1xuICAgIHJldHVybiBEZWxlZ2F0ZUxpc3REYXRhU291cmNlLmxpc3RGZXRjaGVyKCgpID0+XG4gICAgICAgIHRoaXMudHJhbnNsYXRlKGVudW1DbGFzcywgdHJhbnNsYXRpb25QcmVmaXgsIHNvcnQsIGFzYyksXG4gICAgICAndmFsdWUnLFxuICAgICAgKGlkKSA9PiB0aGlzLnRyYW5zbGF0ZU9uZSh0cmFuc2xhdGlvblByZWZpeCwgaWQpXG4gICAgKTtcbiAgfVxuXG5cbn1cbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZW51bS10cmFuc2xhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2VudW1zL2VsZGVyLWVudW0tdHJhbnNsYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpREFBaUQsQ0FBQzs7O0FBR3ZGLE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFDUyxLQUFhLEVBQ2IsWUFBb0I7UUFEcEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGlCQUFZLEdBQVosWUFBWSxDQUFRO0lBRTdCLENBQUM7Q0FFRjtBQUtELE1BQU0sT0FBTywyQkFBMkI7SUFFdEM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1UsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFFNUMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RTs7Ozs7Ozs7T0FRRztJQUNJLFNBQVMsQ0FDZCxTQUFjLEVBQ2QsaUJBQXlCLEVBQ3pCLElBQUksR0FBRyxJQUFJLEVBQ1gsR0FBRyxHQUFHLElBQUk7UUFHVixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQ3pELEdBQUcsQ0FBQyxDQUFDLFdBQXlCLEVBQUUsRUFBRTtZQUNoQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2lCQUMxQixHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ2IsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNyQyxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDO2dCQUNyRCxPQUFPLElBQUksbUJBQW1CLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsSUFBMkIsRUFBRSxFQUFFO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEYsSUFBSSxDQUFDO1FBQ1QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUVKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxZQUFZLENBQ2pCLGlCQUF5QixFQUN6QixPQUFlO1FBR2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGlCQUFpQixHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUM7YUFDaEUsSUFBSSxDQUNILEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUNwQixJQUFJLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FDdkYsQ0FBQztJQUNOLENBQUM7SUFFTyxrQkFBa0IsQ0FDeEIsT0FBZ0IsRUFDaEIsZUFBdUI7UUFFdkIsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksY0FBYyxDQUNuQixTQUFjLEVBQ2QsaUJBQXlCLEVBQ3pCLElBQUksR0FBRyxJQUFJLEVBQ1gsR0FBRyxHQUFHLElBQUk7UUFFVixPQUFPLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUN6RCxPQUFPLEVBQ1AsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOytHQWxHVSwyQkFBMkI7bUhBQTNCLDJCQUEyQixjQUYxQixNQUFNOzs0RkFFUCwyQkFBMkI7a0JBSHZDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29tcGFyYXRvckJ1aWxkZXJ9IGZyb20gJy4uL2RhdGEvZmllbGQtY29tcGFyYXRvcic7XG5pbXBvcnQge0lEYXRhU291cmNlfSBmcm9tICcuLi9kYXRhL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtEZWxlZ2F0ZUxpc3REYXRhU291cmNlfSBmcm9tICcuLi9kYXRhL2RhdGFzb3VyY2UvZmV0Y2hlci9kZWxlZ2F0ZS1kYXRhLXNvdXJjZSc7XG5cblxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZWRFbnVtVmFsdWUge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB2YWx1ZTogc3RyaW5nLFxuICAgIHB1YmxpYyBkaXNwbGF5VmFsdWU6IHN0cmluZ1xuICApIHtcbiAgfVxuXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRW51bVRyYW5zbGF0aW9uU2VydmljZSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFRyYW5zbGF0ZXMgdGhlIGdpdmVuIEVudW0gY2xhc3MuIExvYWRzIHRyYW5zbGF0aW9ucyBvZiBnaXZlbiB0cmFuc2xhdGlvblByZWZpeFxuICAgKiBhbmQgY3JlYXRlcyBmb3IgZWFjaCBlbnVtIHZhbHVlIGEgVHJhbnNsYXRlZEVudW1WYWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIGVudW1DbGFzcyBlbnVtIHRvIHRyYW5zbGF0ZVxuICAgKiBAcGFyYW0gdHJhbnNsYXRpb25QcmVmaXggcHJlZml4IHRvIGxvYWQgdHJhbnNsYXRpb25zXG4gICAqIEBwYXJhbSBzb3J0IGlmIHRydWUsIGRhdGEgd2lsbCBiZSBzb3J0ZWQgYnkgdHJhbnNsYXRpb25zXG4gICAqIEBwYXJhbSBhc2MgaWYgdHJ1ZSwgZGF0YSB3aWxsIGJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXJcbiAgICovXG4gIHB1YmxpYyB0cmFuc2xhdGUoXG4gICAgZW51bUNsYXNzOiBhbnksXG4gICAgdHJhbnNsYXRpb25QcmVmaXg6IHN0cmluZyxcbiAgICBzb3J0ID0gdHJ1ZSxcbiAgICBhc2MgPSB0cnVlXG4gICk6IE9ic2VydmFibGU8VHJhbnNsYXRlZEVudW1WYWx1ZVtdPiB7XG5cbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSh0cmFuc2xhdGlvblByZWZpeCkucGlwZShcbiAgICAgIG1hcCgodHJhbnNsYXRpb246IHN0cmluZyB8IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW51bUNsYXNzKVxuICAgICAgICAgIC5tYXAoZW51bUtleSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbnVtVmFsdWUgPSBlbnVtQ2xhc3NbZW51bUtleV07XG4gICAgICAgICAgICBjb25zdCB0cmFuc2xhdGVkID0gdHJhbnNsYXRpb25bZW51bVZhbHVlXSA/PyBlbnVtS2V5O1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUcmFuc2xhdGVkRW51bVZhbHVlKGVudW1WYWx1ZSwgdHJhbnNsYXRlZCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIG1hcCgoZGF0YTogVHJhbnNsYXRlZEVudW1WYWx1ZVtdKSA9PiB7XG4gICAgICAgIHJldHVybiBzb3J0ID9cbiAgICAgICAgICBkYXRhLnNvcnQoQ29tcGFyYXRvckJ1aWxkZXIuZmllbGRTb3J0KGFzYyA/ICdkaXNwbGF5VmFsdWUnIDogJy1kaXNwbGF5VmFsdWUnKSkgOlxuICAgICAgICAgIGRhdGE7XG4gICAgICB9KVxuICAgICk7XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFuc2xhdGVzIHRoZSBnaXZlbiBlbGVtZW50LiBMb2FkcyB0aGUgdHJhbnNsYXRpb25cbiAgICogYW5kIGNyZWF0ZXMgYSBUcmFuc2xhdGVkRW51bVZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdHJhbnNsYXRpb25QcmVmaXggcHJlZml4IHRvIGxvYWQgdHJhbnNsYXRpb25cbiAgICogQHBhcmFtIGVudW1LZXkga2V5IG9mIHRoZSB0cmFuc2xhdGlvbiB0byBsb2FkXG4gICAqL1xuICBwdWJsaWMgdHJhbnNsYXRlT25lKFxuICAgIHRyYW5zbGF0aW9uUHJlZml4OiBzdHJpbmcsXG4gICAgZW51bUtleTogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8VHJhbnNsYXRlZEVudW1WYWx1ZT4ge1xuXG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodHJhbnNsYXRpb25QcmVmaXggKyAnLicgKyBlbnVtS2V5KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCh0cmFuc2xhdGVkVmFsdWUgPT5cbiAgICAgICAgICBuZXcgVHJhbnNsYXRlZEVudW1WYWx1ZShlbnVtS2V5LCB0aGlzLmFkZFByZWZpeElmTm90TnVsbChlbnVtS2V5LCB0cmFuc2xhdGVkVmFsdWUpKSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFkZFByZWZpeElmTm90TnVsbChcbiAgICBlbnVtS2V5IDogc3RyaW5nLFxuICAgIHRyYW5zbGF0ZWRWYWx1ZTogc3RyaW5nXG4gICkge1xuICAgIHJldHVybiBlbnVtS2V5ID8gdHJhbnNsYXRlZFZhbHVlIDogJyc7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGRhdGEgc291cmNlIG9mIHRyYW5zbGF0aW9ucyBvZiB0aGUgZ2l2ZW4gZW51bSBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIGVudW1DbGFzcyBlbnVtIHRvIHRyYW5zbGF0ZVxuICAgKiBAcGFyYW0gdHJhbnNsYXRpb25QcmVmaXggcHJlZml4IHRvIGxvYWQgdHJhbnNsYXRpb25zXG4gICAqIEBwYXJhbSBzb3J0IGlmIHRydWUsIGRhdGEgd2lsbCBiZSBzb3J0ZWQgYnkgdHJhbnNsYXRpb25zXG4gICAqIEBwYXJhbSBhc2MgaWYgdHJ1ZSwgZGF0YSB3aWxsIGJlIHNvcnRlZCBpbiBhc2NlbmRpbmcgb3JkZXJcbiAgICovXG4gIHB1YmxpYyBlbnVtRGF0ZVNvdXJjZShcbiAgICBlbnVtQ2xhc3M6IGFueSxcbiAgICB0cmFuc2xhdGlvblByZWZpeDogc3RyaW5nLFxuICAgIHNvcnQgPSB0cnVlLFxuICAgIGFzYyA9IHRydWVcbiAgKTogSURhdGFTb3VyY2U8VHJhbnNsYXRlZEVudW1WYWx1ZT4ge1xuICAgIHJldHVybiBEZWxlZ2F0ZUxpc3REYXRhU291cmNlLmxpc3RGZXRjaGVyKCgpID0+XG4gICAgICAgIHRoaXMudHJhbnNsYXRlKGVudW1DbGFzcywgdHJhbnNsYXRpb25QcmVmaXgsIHNvcnQsIGFzYyksXG4gICAgICAndmFsdWUnLFxuICAgICAgKGlkKSA9PiB0aGlzLnRyYW5zbGF0ZU9uZSh0cmFuc2xhdGlvblByZWZpeCwgaWQpXG4gICAgKTtcbiAgfVxuXG5cbn1cbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { formatCurrency, getCurrencySymbol } from '@angular/common';
2
+ export class CurrencyFormatUtil {
3
+ /***************************************************************************
4
+ * *
5
+ * Public API *
6
+ * *
7
+ **************************************************************************/
8
+ /**
9
+ * @param currency amount and ISO 4217 currency code to format
10
+ * @param locale locale code for formatting rules (e.g. en-US)
11
+ * @param indication determines currency indicator in output (e.g. USD100 vs $100). Will fall back to 'symbol' if missing.
12
+ * @param digitsInfo see DecimalPipe for documentation
13
+ */
14
+ static formatElderCurrency(currency, locale, indication = 'symbol', digitsInfo) {
15
+ if (!currency) {
16
+ return '-';
17
+ }
18
+ const currencyCode = currency.unit;
19
+ const currencyIndicator = CurrencyFormatUtil.determineCurrencyIndicator(currencyCode, locale, indication);
20
+ return formatCurrency(currency.value, locale, currencyIndicator, currencyCode, digitsInfo);
21
+ }
22
+ static determineCurrencySymbol(currencyCode, locale) {
23
+ return getCurrencySymbol(currencyCode, 'narrow', locale);
24
+ }
25
+ /***************************************************************************
26
+ * *
27
+ * Private methods *
28
+ * *
29
+ **************************************************************************/
30
+ static determineCurrencyIndicator(currencyCode, locale, indication) {
31
+ switch (indication) {
32
+ case 'code':
33
+ return currencyCode;
34
+ case 'symbol':
35
+ return getCurrencySymbol(currencyCode, 'wide', locale); // will return code if no symbol is available
36
+ case 'symbol-narrow':
37
+ return getCurrencySymbol(currencyCode, 'narrow', locale);
38
+ default:
39
+ return indication; // arbitrary
40
+ }
41
+ }
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VyZW5jeS1mb3JtYXQtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9mb3JtYXQvY3VyZW5jeS1mb3JtYXQtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFLbEUsTUFBTSxPQUFPLGtCQUFrQjtJQUU3Qjs7OztnRkFJNEU7SUFFNUU7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsbUJBQW1CLENBQy9CLFFBQWtCLEVBQ2xCLE1BQWMsRUFDZCxhQUFpQyxRQUFRLEVBQ3pDLFVBQW1CO1FBRW5CLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDYixPQUFPLEdBQUcsQ0FBQztTQUNaO1FBQ0QsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNuQyxNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDMUcsT0FBTyxjQUFjLENBQ25CLFFBQVEsQ0FBQyxLQUFLLEVBQ2QsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osVUFBVSxDQUNYLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxDQUFDLHVCQUF1QixDQUNuQyxZQUEwQixFQUMxQixNQUFjO1FBRWQsT0FBTyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsTUFBTSxDQUFDLDBCQUEwQixDQUN2QyxZQUEwQixFQUMxQixNQUFjLEVBQ2QsVUFBOEI7UUFFOUIsUUFBUSxVQUFVLEVBQUU7WUFDbEIsS0FBSyxNQUFNO2dCQUNULE9BQU8sWUFBWSxDQUFDO1lBQ3RCLEtBQUssUUFBUTtnQkFDWCxPQUFPLGlCQUFpQixDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyw2Q0FBNkM7WUFDdkcsS0FBSyxlQUFlO2dCQUNsQixPQUFPLGlCQUFpQixDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0Q7Z0JBQ0UsT0FBTyxVQUFVLENBQUMsQ0FBQyxZQUFZO1NBQ2xDO0lBQ0gsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDdXJyZW5jeUNvZGV9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY3VycmVuY3kvbW9kZWwvY3VycmVuY3ktY29kZSc7XG5pbXBvcnQge2Zvcm1hdEN1cnJlbmN5LCBnZXRDdXJyZW5jeVN5bWJvbH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q3VycmVuY3l9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY3VycmVuY3kvbW9kZWwvY3VycmVuY3knO1xuXG5leHBvcnQgdHlwZSBDdXJyZW5jeUluZGljYXRpb24gPSAnY29kZScgfCAnc3ltYm9sJyB8ICdzeW1ib2wtbmFycm93JyB8IHN0cmluZztcblxuZXhwb3J0IGNsYXNzIEN1cnJlbmN5Rm9ybWF0VXRpbCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEBwYXJhbSBjdXJyZW5jeSBhbW91bnQgYW5kIElTTyA0MjE3IGN1cnJlbmN5IGNvZGUgdG8gZm9ybWF0XG4gICAqIEBwYXJhbSBsb2NhbGUgbG9jYWxlIGNvZGUgZm9yIGZvcm1hdHRpbmcgcnVsZXMgKGUuZy4gZW4tVVMpXG4gICAqIEBwYXJhbSBpbmRpY2F0aW9uIGRldGVybWluZXMgY3VycmVuY3kgaW5kaWNhdG9yIGluIG91dHB1dCAoZS5nLiBVU0QxMDAgdnMgJDEwMCkuIFdpbGwgZmFsbCBiYWNrIHRvICdzeW1ib2wnIGlmIG1pc3NpbmcuXG4gICAqIEBwYXJhbSBkaWdpdHNJbmZvIHNlZSBEZWNpbWFsUGlwZSBmb3IgZG9jdW1lbnRhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JtYXRFbGRlckN1cnJlbmN5IChcbiAgICBjdXJyZW5jeTogQ3VycmVuY3ksXG4gICAgbG9jYWxlOiBzdHJpbmcsXG4gICAgaW5kaWNhdGlvbjogQ3VycmVuY3lJbmRpY2F0aW9uID0gJ3N5bWJvbCcsXG4gICAgZGlnaXRzSW5mbz86IHN0cmluZ1xuICApOiBzdHJpbmcge1xuICAgIGlmICghY3VycmVuY3kpIHtcbiAgICAgIHJldHVybiAnLSc7XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbmN5Q29kZSA9IGN1cnJlbmN5LnVuaXQ7XG4gICAgY29uc3QgY3VycmVuY3lJbmRpY2F0b3IgPSBDdXJyZW5jeUZvcm1hdFV0aWwuZGV0ZXJtaW5lQ3VycmVuY3lJbmRpY2F0b3IoY3VycmVuY3lDb2RlLCBsb2NhbGUsIGluZGljYXRpb24pO1xuICAgIHJldHVybiBmb3JtYXRDdXJyZW5jeShcbiAgICAgIGN1cnJlbmN5LnZhbHVlLFxuICAgICAgbG9jYWxlLFxuICAgICAgY3VycmVuY3lJbmRpY2F0b3IsXG4gICAgICBjdXJyZW5jeUNvZGUsXG4gICAgICBkaWdpdHNJbmZvXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZGV0ZXJtaW5lQ3VycmVuY3lTeW1ib2woXG4gICAgY3VycmVuY3lDb2RlOiBDdXJyZW5jeUNvZGUsXG4gICAgbG9jYWxlOiBzdHJpbmcsXG4gICk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdldEN1cnJlbmN5U3ltYm9sKGN1cnJlbmN5Q29kZSwgJ25hcnJvdycsIGxvY2FsZSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHN0YXRpYyBkZXRlcm1pbmVDdXJyZW5jeUluZGljYXRvcihcbiAgICBjdXJyZW5jeUNvZGU6IEN1cnJlbmN5Q29kZSxcbiAgICBsb2NhbGU6IHN0cmluZyxcbiAgICBpbmRpY2F0aW9uOiBDdXJyZW5jeUluZGljYXRpb25cbiAgKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKGluZGljYXRpb24pIHtcbiAgICAgIGNhc2UgJ2NvZGUnOlxuICAgICAgICByZXR1cm4gY3VycmVuY3lDb2RlO1xuICAgICAgY2FzZSAnc3ltYm9sJzpcbiAgICAgICAgcmV0dXJuIGdldEN1cnJlbmN5U3ltYm9sKGN1cnJlbmN5Q29kZSwgJ3dpZGUnLCBsb2NhbGUpOyAvLyB3aWxsIHJldHVybiBjb2RlIGlmIG5vIHN5bWJvbCBpcyBhdmFpbGFibGVcbiAgICAgIGNhc2UgJ3N5bWJvbC1uYXJyb3cnOlxuICAgICAgICByZXR1cm4gZ2V0Q3VycmVuY3lTeW1ib2woY3VycmVuY3lDb2RlLCAnbmFycm93JywgbG9jYWxlKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBpbmRpY2F0aW9uOyAvLyBhcmJpdHJhcnlcbiAgICB9XG4gIH1cblxufVxuIl19
@@ -0,0 +1,44 @@
1
+ import { Duration, Period } from '@js-joda/core';
2
+ import { PeriodDuration } from '../time/period-duration';
3
+ import { DurationFormat } from '../../components/time/duration/duration-format';
4
+ export class DurationFormatUtil {
5
+ /***************************************************************************
6
+ * *
7
+ * Public API *
8
+ * *
9
+ **************************************************************************/
10
+ /**
11
+ * Converts any valid input of standard ISO 8601 duration format
12
+ * example input: PT2H10M12.1235675S, output: 2h, 10min, 12s, 124 ms
13
+ *
14
+ * a maximal input looks like this: P3Y6M4DT12H30M5S although
15
+ * all arguments except P are optional, decimal numbers allowed
16
+ */
17
+ static formatDuration(value, format = DurationFormat.FORMAT_DYNAMIC) {
18
+ if (!value) {
19
+ return value + '';
20
+ }
21
+ const periodDuration = DurationFormatUtil.toPeriodDuration(value);
22
+ return DurationFormat.parse(format).format(periodDuration);
23
+ }
24
+ /***************************************************************************
25
+ * *
26
+ * Private methods *
27
+ * *
28
+ **************************************************************************/
29
+ static toPeriodDuration(value) {
30
+ if (value instanceof Duration) {
31
+ return PeriodDuration.ofDuration(value);
32
+ }
33
+ else if (value instanceof Period) {
34
+ return PeriodDuration.ofPeriod(value);
35
+ }
36
+ else if (value instanceof PeriodDuration) {
37
+ return value;
38
+ }
39
+ else {
40
+ return PeriodDuration.parse(value);
41
+ }
42
+ }
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVyYXRpb24tZm9ybWF0LXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZm9ybWF0L2R1cmF0aW9uLWZvcm1hdC11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZ0RBQWdELENBQUM7QUFFOUUsTUFBTSxPQUFPLGtCQUFrQjtJQUU3Qjs7OztnRkFJNEU7SUFFNUU7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FDMUIsS0FBa0QsRUFDbEQsU0FBaUIsY0FBYyxDQUFDLGNBQWM7UUFFOUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUNuQjtRQUNELE1BQU0sY0FBYyxHQUFHLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVwRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBa0Q7UUFDaEYsSUFBSSxLQUFLLFlBQVksUUFBUSxFQUFFO1lBQzdCLE9BQU8sY0FBYyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QzthQUFNLElBQUksS0FBSyxZQUFZLE1BQU0sRUFBRTtZQUNsQyxPQUFPLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkM7YUFBTSxJQUFJLEtBQUssWUFBWSxjQUFjLEVBQUU7WUFDMUMsT0FBTyxLQUFLLENBQUM7U0FDZDthQUFNO1lBQ0wsT0FBTyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEdXJhdGlvbiwgUGVyaW9kfSBmcm9tICdAanMtam9kYS9jb3JlJztcbmltcG9ydCB7UGVyaW9kRHVyYXRpb259IGZyb20gJy4uL3RpbWUvcGVyaW9kLWR1cmF0aW9uJztcbmltcG9ydCB7RHVyYXRpb25Gb3JtYXR9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvdGltZS9kdXJhdGlvbi9kdXJhdGlvbi1mb3JtYXQnO1xuXG5leHBvcnQgY2xhc3MgRHVyYXRpb25Gb3JtYXRVdGlsIHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQ29udmVydHMgYW55IHZhbGlkIGlucHV0IG9mIHN0YW5kYXJkIElTTyA4NjAxIGR1cmF0aW9uIGZvcm1hdFxuICAgKiBleGFtcGxlIGlucHV0OiBQVDJIMTBNMTIuMTIzNTY3NVMsIG91dHB1dDogMmgsIDEwbWluLCAxMnMsIDEyNCBtc1xuICAgKlxuICAgKiBhIG1heGltYWwgaW5wdXQgbG9va3MgbGlrZSB0aGlzOiBQM1k2TTREVDEySDMwTTVTIGFsdGhvdWdoXG4gICAqICBhbGwgYXJndW1lbnRzIGV4Y2VwdCBQIGFyZSBvcHRpb25hbCwgZGVjaW1hbCBudW1iZXJzIGFsbG93ZWRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0RHVyYXRpb24oXG4gICAgdmFsdWU6IHN0cmluZyB8IER1cmF0aW9uIHwgUGVyaW9kIHwgUGVyaW9kRHVyYXRpb24sXG4gICAgZm9ybWF0OiBzdHJpbmcgPSBEdXJhdGlvbkZvcm1hdC5GT1JNQVRfRFlOQU1JQ1xuICApOiBzdHJpbmcge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSArICcnO1xuICAgIH1cbiAgICBjb25zdCBwZXJpb2REdXJhdGlvbiA9IER1cmF0aW9uRm9ybWF0VXRpbC50b1BlcmlvZER1cmF0aW9uKHZhbHVlKTtcbiAgICByZXR1cm4gRHVyYXRpb25Gb3JtYXQucGFyc2UoZm9ybWF0KS5mb3JtYXQocGVyaW9kRHVyYXRpb24pO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzdGF0aWMgdG9QZXJpb2REdXJhdGlvbih2YWx1ZTogc3RyaW5nIHwgRHVyYXRpb24gfCBQZXJpb2QgfCBQZXJpb2REdXJhdGlvbik6IFBlcmlvZER1cmF0aW9uIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEdXJhdGlvbikge1xuICAgICAgcmV0dXJuIFBlcmlvZER1cmF0aW9uLm9mRHVyYXRpb24odmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBQZXJpb2QpIHtcbiAgICAgIHJldHVybiBQZXJpb2REdXJhdGlvbi5vZlBlcmlvZCh2YWx1ZSk7XG4gICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFBlcmlvZER1cmF0aW9uKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBQZXJpb2REdXJhdGlvbi5wYXJzZSh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,109 @@
1
+ import { Interval } from '../time/interval';
2
+ import { ZoneId } from '@js-joda/core';
3
+ import { TimeUtil } from '../time/time-util';
4
+ import { formatDate } from '@angular/common';
5
+ var DisplayMode;
6
+ (function (DisplayMode) {
7
+ DisplayMode[DisplayMode["WHOLE_DAY_MULTIPLE"] = 0] = "WHOLE_DAY_MULTIPLE";
8
+ DisplayMode[DisplayMode["WHOLE_DAY_SINGLE"] = 1] = "WHOLE_DAY_SINGLE";
9
+ DisplayMode[DisplayMode["PARTIAL_DAY"] = 2] = "PARTIAL_DAY";
10
+ DisplayMode[DisplayMode["DETAILED"] = 3] = "DETAILED";
11
+ })(DisplayMode || (DisplayMode = {}));
12
+ export class IsoIntervalFormatUtil {
13
+ /***************************************************************************
14
+ * *
15
+ * Public API *
16
+ * *
17
+ **************************************************************************/
18
+ static formatIsoInterval(value, timezone = ZoneId.SYSTEM, locale, format, formatEnd) {
19
+ const interval = (value instanceof Interval) ? value : Interval.parse(value);
20
+ if (typeof timezone === 'string') {
21
+ timezone = timezone ? ZoneId.of(timezone) : ZoneId.SYSTEM;
22
+ }
23
+ const displayMode = IsoIntervalFormatUtil.determineDisplayMode(interval, timezone);
24
+ switch (displayMode) {
25
+ case DisplayMode.PARTIAL_DAY:
26
+ // If the period is less than a day, and the interval falls in the same local date
27
+ // We can improve the generated display text by omitting the redundant date information.
28
+ return IsoIntervalFormatUtil.formatSubDay(interval, format, timezone, locale);
29
+ case DisplayMode.WHOLE_DAY_SINGLE:
30
+ // Display a single, full day
31
+ return IsoIntervalFormatUtil.formatInstant(interval.start, format || 'mediumDate', timezone, locale);
32
+ case DisplayMode.WHOLE_DAY_MULTIPLE: {
33
+ // Display a range of multiple 'full' days
34
+ return IsoIntervalFormatUtil.formatFullDays(interval, format, timezone, locale, formatEnd);
35
+ }
36
+ case DisplayMode.DETAILED: {
37
+ // No special handling, we render both instants
38
+ return IsoIntervalFormatUtil.formatDetailedInterval(interval, format, timezone, locale, formatEnd);
39
+ }
40
+ }
41
+ }
42
+ /***************************************************************************
43
+ * *
44
+ * Private methods *
45
+ * *
46
+ **************************************************************************/
47
+ static determineDisplayMode(interval, timezone) {
48
+ const period = interval.toPeriodDuration(timezone);
49
+ const periodDays = period.period.days();
50
+ const zonedStart = interval.start.atZone(timezone);
51
+ const zonedEndExc = interval.end.atZone(timezone);
52
+ const isPartialDay = IsoIntervalFormatUtil.isPartialDay(zonedStart, zonedEndExc, periodDays);
53
+ const isFullDays = TimeUtil.isStartOfDay(zonedStart) && TimeUtil.isFullDays(interval.toDuration());
54
+ const isSingleFullDay = isFullDays && periodDays === 1;
55
+ if (isPartialDay) {
56
+ return DisplayMode.PARTIAL_DAY;
57
+ }
58
+ else if (isSingleFullDay) { // more specific, order matters here
59
+ return DisplayMode.WHOLE_DAY_SINGLE;
60
+ }
61
+ else if (isFullDays) {
62
+ return DisplayMode.WHOLE_DAY_MULTIPLE;
63
+ }
64
+ else {
65
+ return DisplayMode.DETAILED;
66
+ }
67
+ }
68
+ static formatSubDay(interval, format, timezone, locale) {
69
+ const startDay = IsoIntervalFormatUtil.formatInstant(interval.start, format || 'short', timezone, locale);
70
+ const endTime = interval.end.atZone(timezone).toLocalTime().toString();
71
+ return startDay + ' - ' + endTime;
72
+ }
73
+ static formatFullDays(interval, format, timezone, locale, formatEnd) {
74
+ const zonedEndExclusive = interval.end.atZone(timezone);
75
+ const endDayInstant = zonedEndExclusive.minusDays(1).toInstant();
76
+ const startDay = IsoIntervalFormatUtil.formatInstant(interval.start, format || 'mediumDate', timezone, locale);
77
+ const endDay = IsoIntervalFormatUtil.formatInstant(endDayInstant, formatEnd || format || 'mediumDate', timezone, locale);
78
+ return `${startDay} - ${endDay}`;
79
+ }
80
+ static formatDetailedInterval(interval, format, timezone, locale, formatEnd) {
81
+ const start = IsoIntervalFormatUtil.formatInstant(interval.start, format || 'short', timezone, locale);
82
+ const end = IsoIntervalFormatUtil.formatInstant(interval.end, formatEnd || format || 'short', timezone, locale);
83
+ return `${start} - ${end}`;
84
+ }
85
+ static formatInstant(instant, format, timezone, locale) {
86
+ return IsoIntervalFormatUtil.formatDate(instant.toEpochMilli(), format, timezone, locale);
87
+ }
88
+ static formatDate(value, format, timezone, locale) {
89
+ if (value == null || value === '' || value !== value) { // last part filters out NaN values
90
+ return null;
91
+ }
92
+ try {
93
+ const zoneId = timezone?.id();
94
+ return formatDate(value, format, locale, zoneId);
95
+ }
96
+ catch (error) {
97
+ throw Error(`Invalid pipe argument: ${error.message}`);
98
+ }
99
+ }
100
+ static isPartialDay(zonedStart, zonedEndExc, periodDays) {
101
+ const localStart = zonedStart.toLocalDate();
102
+ const localEndExc = zonedEndExc.toLocalDate();
103
+ const zeroPeriod = periodDays === 0;
104
+ const startIsEnd = localStart.equals(localEndExc);
105
+ const endIsStartOfDay = TimeUtil.isStartOfDay(zonedEndExc);
106
+ return zeroPeriod && (startIsEnd || endIsStartOfDay);
107
+ }
108
+ }
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvLWludGVydmFsLWZvcm1hdC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2Zvcm1hdC9pc28taW50ZXJ2YWwtZm9ybWF0LXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sRUFBeUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsSUFBSyxXQUtKO0FBTEQsV0FBSyxXQUFXO0lBQ2QseUVBQWtCLENBQUE7SUFDbEIscUVBQWdCLENBQUE7SUFDaEIsMkRBQVcsQ0FBQTtJQUNYLHFEQUFRLENBQUE7QUFDVixDQUFDLEVBTEksV0FBVyxLQUFYLFdBQVcsUUFLZjtBQUVELE1BQU0sT0FBTyxxQkFBcUI7SUFFaEM7Ozs7Z0ZBSTRFO0lBRXJFLE1BQU0sQ0FBQyxpQkFBaUIsQ0FDN0IsS0FBd0IsRUFDeEIsV0FBNEIsTUFBTSxDQUFDLE1BQU0sRUFDekMsTUFBYyxFQUNkLE1BQWUsRUFDZixTQUFrQjtRQUVsQixNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQUssWUFBWSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTdFLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFO1lBQ2hDLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDM0Q7UUFFRCxNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFbkYsUUFBUSxXQUFXLEVBQUU7WUFDbkIsS0FBSyxXQUFXLENBQUMsV0FBVztnQkFDMUIsa0ZBQWtGO2dCQUNsRix3RkFBd0Y7Z0JBQ3hGLE9BQU8scUJBQXFCLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2hGLEtBQUssV0FBVyxDQUFDLGdCQUFnQjtnQkFDL0IsNkJBQTZCO2dCQUM3QixPQUFPLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZHLEtBQUssV0FBVyxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQ25DLDBDQUEwQztnQkFDMUMsT0FBTyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQzVGO1lBQ0QsS0FBSyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3pCLCtDQUErQztnQkFDL0MsT0FBTyxxQkFBcUIsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDcEc7U0FDRjtJQUNILENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFFBQWtCLEVBQUUsUUFBZ0I7UUFDdEUsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbEQsTUFBTSxZQUFZLEdBQUcscUJBQXFCLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDN0YsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ25HLE1BQU0sZUFBZSxHQUFHLFVBQVUsSUFBSSxVQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXZELElBQUksWUFBWSxFQUFFO1lBQ2hCLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQztTQUNoQzthQUFNLElBQUksZUFBZSxFQUFFLEVBQUUsb0NBQW9DO1lBQ2hFLE9BQU8sV0FBVyxDQUFDLGdCQUFnQixDQUFDO1NBQ3JDO2FBQU0sSUFBSSxVQUFVLEVBQUU7WUFDckIsT0FBTyxXQUFXLENBQUMsa0JBQWtCLENBQUM7U0FDdkM7YUFBTTtZQUNMLE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsWUFBWSxDQUN6QixRQUFrQixFQUNsQixNQUFjLEVBQ2QsUUFBZ0IsRUFDaEIsTUFBYztRQUVkLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFHLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZFLE9BQU8sUUFBUSxHQUFHLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDcEMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBa0IsRUFBRSxNQUFjLEVBQUUsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsU0FBaUI7UUFDbkgsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxNQUFNLGFBQWEsR0FBRyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakUsTUFBTSxRQUFRLEdBQUcscUJBQXFCLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxJQUFJLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0csTUFBTSxNQUFNLEdBQUcscUJBQXFCLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxTQUFTLElBQUksTUFBTSxJQUFJLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDekgsT0FBTyxHQUFHLFFBQVEsTUFBTSxNQUFNLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU8sTUFBTSxDQUFDLHNCQUFzQixDQUFDLFFBQWtCLEVBQUUsTUFBYyxFQUFFLFFBQWdCLEVBQUUsTUFBYyxFQUFFLFNBQWlCO1FBQzNILE1BQU0sS0FBSyxHQUFHLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZHLE1BQU0sR0FBRyxHQUFHLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFNBQVMsSUFBSSxNQUFNLElBQUksT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNoSCxPQUFPLEdBQUcsS0FBSyxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyxNQUFNLENBQUMsYUFBYSxDQUMxQixPQUFnQixFQUNoQixNQUFjLEVBQ2QsUUFBZ0IsRUFDaEIsTUFBYztRQUVkLE9BQU8scUJBQXFCLENBQUMsVUFBVSxDQUNyQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQ3RCLE1BQU0sRUFDTixRQUFRLEVBQ1IsTUFBTSxDQUNQLENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLFVBQVUsQ0FDdkIsS0FBNkIsRUFDN0IsTUFBYyxFQUNkLFFBQWdCLEVBQ2hCLE1BQWM7UUFFZCxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsSUFBSSxLQUFLLEtBQUssS0FBSyxFQUFFLEVBQUUsbUNBQW1DO1lBQ3pGLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJO1lBQ0YsTUFBTSxNQUFNLEdBQUcsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQzlCLE9BQU8sVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQ2xEO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxNQUFNLEtBQUssQ0FBQywwQkFBMkIsS0FBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDbkU7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUF5QixFQUFFLFdBQTBCLEVBQUUsVUFBa0I7UUFDbkcsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QyxNQUFNLFVBQVUsR0FBRyxVQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEQsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzRCxPQUFPLFVBQVUsSUFBSSxDQUFDLFVBQVUsSUFBSSxlQUFlLENBQUMsQ0FBQztJQUN2RCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0ludGVydmFsfSBmcm9tICcuLi90aW1lL2ludGVydmFsJztcbmltcG9ydCB7SW5zdGFudCwgWm9uZWREYXRlVGltZSwgWm9uZUlkfSBmcm9tICdAanMtam9kYS9jb3JlJztcbmltcG9ydCB7VGltZVV0aWx9IGZyb20gJy4uL3RpbWUvdGltZS11dGlsJztcbmltcG9ydCB7Zm9ybWF0RGF0ZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZW51bSBEaXNwbGF5TW9kZSB7XG4gIFdIT0xFX0RBWV9NVUxUSVBMRSxcbiAgV0hPTEVfREFZX1NJTkdMRSxcbiAgUEFSVElBTF9EQVksXG4gIERFVEFJTEVEXG59XG5cbmV4cG9ydCBjbGFzcyBJc29JbnRlcnZhbEZvcm1hdFV0aWwge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0SXNvSW50ZXJ2YWwoXG4gICAgdmFsdWU6IHN0cmluZyB8IEludGVydmFsLFxuICAgIHRpbWV6b25lOiBzdHJpbmcgfCBab25lSWQgPSBab25lSWQuU1lTVEVNLFxuICAgIGxvY2FsZTogc3RyaW5nLFxuICAgIGZvcm1hdD86IHN0cmluZyxcbiAgICBmb3JtYXRFbmQ/OiBzdHJpbmdcbiAgKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSAodmFsdWUgaW5zdGFuY2VvZiBJbnRlcnZhbCkgPyB2YWx1ZSA6IEludGVydmFsLnBhcnNlKHZhbHVlKTtcblxuICAgIGlmICh0eXBlb2YgdGltZXpvbmUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aW1lem9uZSA9IHRpbWV6b25lID8gWm9uZUlkLm9mKHRpbWV6b25lKSA6IFpvbmVJZC5TWVNURU07XG4gICAgfVxuXG4gICAgY29uc3QgZGlzcGxheU1vZGUgPSBJc29JbnRlcnZhbEZvcm1hdFV0aWwuZGV0ZXJtaW5lRGlzcGxheU1vZGUoaW50ZXJ2YWwsIHRpbWV6b25lKTtcblxuICAgIHN3aXRjaCAoZGlzcGxheU1vZGUpIHtcbiAgICAgIGNhc2UgRGlzcGxheU1vZGUuUEFSVElBTF9EQVk6XG4gICAgICAgIC8vIElmIHRoZSBwZXJpb2QgaXMgbGVzcyB0aGFuIGEgZGF5LCBhbmQgdGhlIGludGVydmFsIGZhbGxzIGluIHRoZSBzYW1lIGxvY2FsIGRhdGVcbiAgICAgICAgLy8gV2UgY2FuIGltcHJvdmUgdGhlIGdlbmVyYXRlZCBkaXNwbGF5IHRleHQgYnkgb21pdHRpbmcgdGhlIHJlZHVuZGFudCBkYXRlIGluZm9ybWF0aW9uLlxuICAgICAgICByZXR1cm4gSXNvSW50ZXJ2YWxGb3JtYXRVdGlsLmZvcm1hdFN1YkRheShpbnRlcnZhbCwgZm9ybWF0LCB0aW1lem9uZSwgbG9jYWxlKTtcbiAgICAgIGNhc2UgRGlzcGxheU1vZGUuV0hPTEVfREFZX1NJTkdMRTpcbiAgICAgICAgLy8gRGlzcGxheSBhIHNpbmdsZSwgZnVsbCBkYXlcbiAgICAgICAgcmV0dXJuIElzb0ludGVydmFsRm9ybWF0VXRpbC5mb3JtYXRJbnN0YW50KGludGVydmFsLnN0YXJ0LCBmb3JtYXQgfHwgJ21lZGl1bURhdGUnLCB0aW1lem9uZSwgbG9jYWxlKTtcbiAgICAgIGNhc2UgRGlzcGxheU1vZGUuV0hPTEVfREFZX01VTFRJUExFOiB7XG4gICAgICAgIC8vIERpc3BsYXkgYSByYW5nZSBvZiBtdWx0aXBsZSAnZnVsbCcgZGF5c1xuICAgICAgICByZXR1cm4gSXNvSW50ZXJ2YWxGb3JtYXRVdGlsLmZvcm1hdEZ1bGxEYXlzKGludGVydmFsLCBmb3JtYXQsIHRpbWV6b25lLCBsb2NhbGUsIGZvcm1hdEVuZCk7XG4gICAgICB9XG4gICAgICBjYXNlIERpc3BsYXlNb2RlLkRFVEFJTEVEOiB7XG4gICAgICAgIC8vIE5vIHNwZWNpYWwgaGFuZGxpbmcsIHdlIHJlbmRlciBib3RoIGluc3RhbnRzXG4gICAgICAgIHJldHVybiBJc29JbnRlcnZhbEZvcm1hdFV0aWwuZm9ybWF0RGV0YWlsZWRJbnRlcnZhbChpbnRlcnZhbCwgZm9ybWF0LCB0aW1lem9uZSwgbG9jYWxlLCBmb3JtYXRFbmQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc3RhdGljIGRldGVybWluZURpc3BsYXlNb2RlKGludGVydmFsOiBJbnRlcnZhbCwgdGltZXpvbmU6IFpvbmVJZCk6IERpc3BsYXlNb2RlIHtcbiAgICBjb25zdCBwZXJpb2QgPSBpbnRlcnZhbC50b1BlcmlvZER1cmF0aW9uKHRpbWV6b25lKTtcbiAgICBjb25zdCBwZXJpb2REYXlzID0gcGVyaW9kLnBlcmlvZC5kYXlzKCk7XG4gICAgY29uc3Qgem9uZWRTdGFydCA9IGludGVydmFsLnN0YXJ0LmF0Wm9uZSh0aW1lem9uZSk7XG4gICAgY29uc3Qgem9uZWRFbmRFeGMgPSBpbnRlcnZhbC5lbmQuYXRab25lKHRpbWV6b25lKTtcblxuICAgIGNvbnN0IGlzUGFydGlhbERheSA9IElzb0ludGVydmFsRm9ybWF0VXRpbC5pc1BhcnRpYWxEYXkoem9uZWRTdGFydCwgem9uZWRFbmRFeGMsIHBlcmlvZERheXMpO1xuICAgIGNvbnN0IGlzRnVsbERheXMgPSBUaW1lVXRpbC5pc1N0YXJ0T2ZEYXkoem9uZWRTdGFydCkgJiYgVGltZVV0aWwuaXNGdWxsRGF5cyhpbnRlcnZhbC50b0R1cmF0aW9uKCkpO1xuICAgIGNvbnN0IGlzU2luZ2xlRnVsbERheSA9IGlzRnVsbERheXMgJiYgcGVyaW9kRGF5cyA9PT0gMTtcblxuICAgIGlmIChpc1BhcnRpYWxEYXkpIHtcbiAgICAgIHJldHVybiBEaXNwbGF5TW9kZS5QQVJUSUFMX0RBWTtcbiAgICB9IGVsc2UgaWYgKGlzU2luZ2xlRnVsbERheSkgeyAvLyBtb3JlIHNwZWNpZmljLCBvcmRlciBtYXR0ZXJzIGhlcmVcbiAgICAgIHJldHVybiBEaXNwbGF5TW9kZS5XSE9MRV9EQVlfU0lOR0xFO1xuICAgIH0gZWxzZSBpZiAoaXNGdWxsRGF5cykge1xuICAgICAgcmV0dXJuIERpc3BsYXlNb2RlLldIT0xFX0RBWV9NVUxUSVBMRTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIERpc3BsYXlNb2RlLkRFVEFJTEVEO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZvcm1hdFN1YkRheShcbiAgICBpbnRlcnZhbDogSW50ZXJ2YWwsXG4gICAgZm9ybWF0OiBzdHJpbmcsXG4gICAgdGltZXpvbmU6IFpvbmVJZCxcbiAgICBsb2NhbGU6IHN0cmluZ1xuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0YXJ0RGF5ID0gSXNvSW50ZXJ2YWxGb3JtYXRVdGlsLmZvcm1hdEluc3RhbnQoaW50ZXJ2YWwuc3RhcnQsIGZvcm1hdCB8fCAnc2hvcnQnLCB0aW1lem9uZSwgbG9jYWxlKTtcbiAgICBjb25zdCBlbmRUaW1lID0gaW50ZXJ2YWwuZW5kLmF0Wm9uZSh0aW1lem9uZSkudG9Mb2NhbFRpbWUoKS50b1N0cmluZygpO1xuICAgIHJldHVybiBzdGFydERheSArICcgLSAnICsgZW5kVGltZTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZvcm1hdEZ1bGxEYXlzKGludGVydmFsOiBJbnRlcnZhbCwgZm9ybWF0OiBzdHJpbmcsIHRpbWV6b25lOiBab25lSWQsIGxvY2FsZTogc3RyaW5nLCBmb3JtYXRFbmQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3Qgem9uZWRFbmRFeGNsdXNpdmUgPSBpbnRlcnZhbC5lbmQuYXRab25lKHRpbWV6b25lKTtcbiAgICBjb25zdCBlbmREYXlJbnN0YW50ID0gem9uZWRFbmRFeGNsdXNpdmUubWludXNEYXlzKDEpLnRvSW5zdGFudCgpO1xuICAgIGNvbnN0IHN0YXJ0RGF5ID0gSXNvSW50ZXJ2YWxGb3JtYXRVdGlsLmZvcm1hdEluc3RhbnQoaW50ZXJ2YWwuc3RhcnQsIGZvcm1hdCB8fCAnbWVkaXVtRGF0ZScsIHRpbWV6b25lLCBsb2NhbGUpO1xuICAgIGNvbnN0IGVuZERheSA9IElzb0ludGVydmFsRm9ybWF0VXRpbC5mb3JtYXRJbnN0YW50KGVuZERheUluc3RhbnQsIGZvcm1hdEVuZCB8fCBmb3JtYXQgfHwgJ21lZGl1bURhdGUnLCB0aW1lem9uZSwgbG9jYWxlKTtcbiAgICByZXR1cm4gYCR7c3RhcnREYXl9IC0gJHtlbmREYXl9YDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZvcm1hdERldGFpbGVkSW50ZXJ2YWwoaW50ZXJ2YWw6IEludGVydmFsLCBmb3JtYXQ6IHN0cmluZywgdGltZXpvbmU6IFpvbmVJZCwgbG9jYWxlOiBzdHJpbmcsIGZvcm1hdEVuZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBzdGFydCA9IElzb0ludGVydmFsRm9ybWF0VXRpbC5mb3JtYXRJbnN0YW50KGludGVydmFsLnN0YXJ0LCBmb3JtYXQgfHwgJ3Nob3J0JywgdGltZXpvbmUsIGxvY2FsZSk7XG4gICAgY29uc3QgZW5kID0gSXNvSW50ZXJ2YWxGb3JtYXRVdGlsLmZvcm1hdEluc3RhbnQoaW50ZXJ2YWwuZW5kLCBmb3JtYXRFbmQgfHwgZm9ybWF0IHx8ICdzaG9ydCcsIHRpbWV6b25lLCBsb2NhbGUpO1xuICAgIHJldHVybiBgJHtzdGFydH0gLSAke2VuZH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZm9ybWF0SW5zdGFudChcbiAgICBpbnN0YW50OiBJbnN0YW50LFxuICAgIGZvcm1hdDogc3RyaW5nLFxuICAgIHRpbWV6b25lOiBab25lSWQsXG4gICAgbG9jYWxlOiBzdHJpbmdcbiAgKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIElzb0ludGVydmFsRm9ybWF0VXRpbC5mb3JtYXREYXRlKFxuICAgICAgaW5zdGFudC50b0Vwb2NoTWlsbGkoKSxcbiAgICAgIGZvcm1hdCxcbiAgICAgIHRpbWV6b25lLFxuICAgICAgbG9jYWxlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZvcm1hdERhdGUoXG4gICAgdmFsdWU6IHN0cmluZyB8IERhdGUgfCBudW1iZXIsXG4gICAgZm9ybWF0OiBzdHJpbmcsXG4gICAgdGltZXpvbmU6IFpvbmVJZCxcbiAgICBsb2NhbGU6IHN0cmluZ1xuICApOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycgfHwgdmFsdWUgIT09IHZhbHVlKSB7IC8vIGxhc3QgcGFydCBmaWx0ZXJzIG91dCBOYU4gdmFsdWVzXG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgem9uZUlkID0gdGltZXpvbmU/LmlkKCk7XG4gICAgICByZXR1cm4gZm9ybWF0RGF0ZSh2YWx1ZSwgZm9ybWF0LCBsb2NhbGUsIHpvbmVJZCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IEVycm9yKGBJbnZhbGlkIHBpcGUgYXJndW1lbnQ6ICR7KGVycm9yIGFzIEVycm9yKS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzUGFydGlhbERheSh6b25lZFN0YXJ0OiBab25lZERhdGVUaW1lLCB6b25lZEVuZEV4YzogWm9uZWREYXRlVGltZSwgcGVyaW9kRGF5czogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbG9jYWxTdGFydCA9IHpvbmVkU3RhcnQudG9Mb2NhbERhdGUoKTtcbiAgICBjb25zdCBsb2NhbEVuZEV4YyA9IHpvbmVkRW5kRXhjLnRvTG9jYWxEYXRlKCk7XG4gICAgY29uc3QgemVyb1BlcmlvZCA9IHBlcmlvZERheXMgPT09IDA7XG4gICAgY29uc3Qgc3RhcnRJc0VuZCA9IGxvY2FsU3RhcnQuZXF1YWxzKGxvY2FsRW5kRXhjKTtcbiAgICBjb25zdCBlbmRJc1N0YXJ0T2ZEYXkgPSBUaW1lVXRpbC5pc1N0YXJ0T2ZEYXkoem9uZWRFbmRFeGMpO1xuICAgIHJldHVybiB6ZXJvUGVyaW9kICYmIChzdGFydElzRW5kIHx8IGVuZElzU3RhcnRPZkRheSk7XG4gIH1cblxufVxuIl19
@@ -1,3 +1,6 @@
1
1
  export * from './bytes-per-second-format';
2
2
  export * from './bytes-format';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9mb3JtYXQvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2J5dGVzLXBlci1zZWNvbmQtZm9ybWF0JztcbmV4cG9ydCAqIGZyb20gJy4vYnl0ZXMtZm9ybWF0JztcbiJdfQ==
3
+ export * from './curency-format-util';
4
+ export * from './iso-interval-format-util';
5
+ export * from './duration-format-util';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9mb3JtYXQvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsd0JBQXdCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2J5dGVzLXBlci1zZWNvbmQtZm9ybWF0JztcbmV4cG9ydCAqIGZyb20gJy4vYnl0ZXMtZm9ybWF0JztcbmV4cG9ydCAqIGZyb20gJy4vY3VyZW5jeS1mb3JtYXQtdXRpbCdcbmV4cG9ydCAqIGZyb20gJy4vaXNvLWludGVydmFsLWZvcm1hdC11dGlsJ1xuZXhwb3J0ICogZnJvbSAnLi9kdXJhdGlvbi1mb3JtYXQtdXRpbCdcbiJdfQ==