@elderbyte/ngx-starter 17.5.0 → 17.6.1

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 (506) hide show
  1. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +3 -3
  2. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +3 -3
  3. package/esm2022/lib/common/forms/elder-from-field-base.mjs +3 -3
  4. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +3 -3
  5. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +3 -3
  6. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +3 -3
  7. package/esm2022/lib/common/forms/form-field-base.component.mjs +3 -3
  8. package/esm2022/lib/common/forms/multi-model-base.component.mjs +3 -3
  9. package/esm2022/lib/common/forms/template-composite-control.mjs +3 -3
  10. package/esm2022/lib/common/forms/value-accessor-base.mjs +3 -3
  11. package/esm2022/lib/common/http/http-client-builder.service.mjs +3 -3
  12. package/esm2022/lib/common/http/http-client-pristine.mjs +3 -3
  13. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +3 -3
  14. package/esm2022/lib/common/url/elder-router.service.mjs +3 -3
  15. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +3 -3
  16. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +7 -7
  17. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +11 -11
  18. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +12 -11
  19. package/esm2022/lib/components/auditing/elder-audit.module.mjs +11 -11
  20. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +20 -18
  21. package/esm2022/lib/components/badge/elder-badge.directive.mjs +6 -5
  22. package/esm2022/lib/components/badge/elder-badge.module.mjs +17 -17
  23. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +5 -5
  24. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +9 -8
  25. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +7 -7
  26. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +8 -5
  27. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +13 -12
  28. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +11 -9
  29. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +6 -6
  30. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +31 -26
  31. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +14 -15
  32. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +6 -5
  33. package/esm2022/lib/components/chips/elder-chips.module.mjs +8 -9
  34. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +10 -10
  35. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +3 -3
  36. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +10 -10
  37. package/esm2022/lib/components/containers/elder-containers.module.mjs +7 -8
  38. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +6 -6
  39. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +7 -7
  40. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +3 -3
  41. package/esm2022/lib/components/csv/elder-csv.module.mjs +10 -10
  42. package/esm2022/lib/components/currency/elder-currency.module.mjs +7 -8
  43. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +6 -5
  44. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +17 -14
  45. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +3 -3
  46. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +10 -10
  47. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +8 -8
  48. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +13 -13
  49. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +10 -10
  50. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +3 -3
  51. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +9 -8
  52. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +18 -15
  53. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +24 -13
  54. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +11 -10
  55. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +6 -5
  56. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +8 -8
  57. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +33 -28
  58. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +12 -12
  59. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +10 -10
  60. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +8 -5
  61. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +5 -4
  62. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +7 -7
  63. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +19 -19
  64. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +3 -3
  65. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +6 -5
  66. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +5 -5
  67. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +8 -7
  68. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +6 -5
  69. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +6 -5
  70. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +6 -5
  71. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +3 -3
  72. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +8 -5
  73. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +17 -20
  74. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +6 -5
  75. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +6 -5
  76. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +6 -5
  77. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +6 -5
  78. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +8 -5
  79. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +19 -19
  80. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +3 -3
  81. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +13 -11
  82. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +15 -13
  83. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +3 -3
  84. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +16 -14
  85. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +10 -9
  86. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +6 -5
  87. package/esm2022/lib/components/errors/elder-error.module.mjs +11 -11
  88. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +10 -10
  89. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +8 -8
  90. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +8 -8
  91. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +6 -6
  92. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +9 -8
  93. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +3 -3
  94. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +6 -5
  95. package/esm2022/lib/components/files/elder-file-select.directive.mjs +6 -5
  96. package/esm2022/lib/components/files/elder-file.module.mjs +16 -14
  97. package/esm2022/lib/components/files/file-select/file-select.component.mjs +8 -8
  98. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +13 -13
  99. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +3 -3
  100. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +3 -3
  101. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +6 -5
  102. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +6 -5
  103. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +5 -4
  104. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +6 -5
  105. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +6 -5
  106. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +6 -5
  107. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +8 -11
  108. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +6 -5
  109. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +6 -5
  110. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +6 -5
  111. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +6 -5
  112. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +6 -5
  113. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +6 -5
  114. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +6 -5
  115. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +6 -5
  116. package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +6 -5
  117. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +6 -5
  118. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +3 -3
  119. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +3 -3
  120. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +3 -3
  121. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +6 -5
  122. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +6 -5
  123. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +6 -5
  124. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +6 -5
  125. package/esm2022/lib/components/forms/elder-forms.module.mjs +4 -4
  126. package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +3 -3
  127. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +6 -5
  128. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +3 -3
  129. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +6 -5
  130. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +6 -5
  131. package/esm2022/lib/components/forms/search/elder-search.module.mjs +15 -15
  132. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +21 -19
  133. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +6 -5
  134. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +13 -12
  135. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +6 -9
  136. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +3 -3
  137. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +6 -6
  138. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +8 -9
  139. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +6 -5
  140. package/esm2022/lib/components/headers/elder-header.module.mjs +10 -9
  141. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +3 -3
  142. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +24 -22
  143. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +15 -13
  144. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +14 -13
  145. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +3 -3
  146. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +20 -18
  147. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +8 -5
  148. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +6 -5
  149. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +6 -5
  150. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +6 -5
  151. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +3 -3
  152. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +3 -3
  153. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +11 -11
  154. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +3 -3
  155. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +16 -14
  156. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +4 -4
  157. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +5 -6
  158. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +6 -5
  159. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +18 -15
  160. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +5 -4
  161. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +7 -7
  162. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +11 -11
  163. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +7 -7
  164. package/esm2022/lib/components/iframes/iframe.service.mjs +3 -3
  165. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +6 -5
  166. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +8 -5
  167. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +8 -11
  168. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +12 -12
  169. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +6 -5
  170. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +6 -5
  171. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +14 -14
  172. package/esm2022/lib/components/labels/elder-labels.module.mjs +10 -8
  173. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +16 -15
  174. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +9 -8
  175. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +6 -5
  176. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +6 -5
  177. package/esm2022/lib/components/measures/elder-measures.module.mjs +24 -22
  178. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +6 -5
  179. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +6 -5
  180. package/esm2022/lib/components/measures/elder-unit.service.mjs +3 -3
  181. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +11 -10
  182. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +11 -8
  183. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +6 -5
  184. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +6 -5
  185. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +3 -3
  186. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +17 -17
  187. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +10 -10
  188. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +16 -15
  189. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +8 -8
  190. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +11 -11
  191. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +5 -5
  192. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +6 -5
  193. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +13 -12
  194. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +3 -3
  195. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +9 -9
  196. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +8 -7
  197. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +3 -3
  198. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +6 -5
  199. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +6 -5
  200. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +6 -5
  201. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +9 -10
  202. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +5 -5
  203. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +5 -5
  204. package/esm2022/lib/components/panels/elder-panel.module.mjs +8 -9
  205. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +5 -5
  206. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +6 -5
  207. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +20 -14
  208. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +6 -5
  209. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +6 -6
  210. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +6 -5
  211. package/esm2022/lib/components/select/elder-select-base.mjs +10 -20
  212. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +16 -13
  213. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +6 -5
  214. package/esm2022/lib/components/select/elder-select-value.directive.mjs +8 -5
  215. package/esm2022/lib/components/select/elder-select.module.mjs +26 -23
  216. package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +5 -5
  217. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +3 -3
  218. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +14 -15
  219. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +16 -18
  220. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +3 -3
  221. package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +6 -5
  222. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +5 -4
  223. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +6 -5
  224. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +13 -12
  225. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +6 -5
  226. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +24 -17
  227. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +3 -3
  228. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +8 -8
  229. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +10 -10
  230. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +3 -3
  231. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +3 -3
  232. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +6 -5
  233. package/esm2022/lib/components/shell/elder-shell.module.mjs +18 -16
  234. package/esm2022/lib/components/shell/elder-shell.service.mjs +3 -3
  235. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +8 -8
  236. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +34 -25
  237. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +8 -8
  238. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +6 -5
  239. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +6 -5
  240. package/esm2022/lib/components/tabs/elder-tab.module.mjs +8 -9
  241. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +6 -5
  242. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +3 -3
  243. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +10 -9
  244. package/esm2022/lib/components/theme/elder-theme.directive.mjs +6 -5
  245. package/esm2022/lib/components/theme/elder-theme.module.mjs +12 -12
  246. package/esm2022/lib/components/theme/elder-theme.service.mjs +3 -3
  247. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +3 -3
  248. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +10 -9
  249. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +11 -10
  250. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +10 -8
  251. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +14 -12
  252. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +15 -14
  253. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +10 -8
  254. package/esm2022/lib/components/time/elder-time.module.mjs +23 -17
  255. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +11 -11
  256. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +6 -5
  257. package/esm2022/lib/components/toasts/elder-toast.module.mjs +6 -7
  258. package/esm2022/lib/components/toasts/elder-toast.service.mjs +3 -3
  259. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +8 -8
  260. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +11 -11
  261. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +10 -10
  262. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +5 -5
  263. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +8 -9
  264. package/esm2022/lib/features/event-source/elder-event-source.service.mjs +3 -3
  265. package/esm2022/lib/features/kafent/access-token-provider.mjs +3 -3
  266. package/esm2022/lib/features/kafent/kafent-config.mjs +3 -3
  267. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +3 -3
  268. package/esm2022/lib/features/kafent/kafent-event.service.mjs +3 -3
  269. package/esm2022/lib/features/kafent/kafent.module.mjs +4 -4
  270. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +3 -3
  271. package/esm2022/lib/pipes/bytes.pipe.mjs +8 -5
  272. package/esm2022/lib/pipes/elder-pipes.module.mjs +21 -18
  273. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +8 -5
  274. package/esm2022/lib/pipes/elder-round.pipe.mjs +6 -5
  275. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +6 -5
  276. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +6 -5
  277. package/esm2022/lib/pipes/iso-duration.pipe.mjs +6 -5
  278. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +6 -5
  279. package/esm2022/lib/pipes/iso-interval.pipe.mjs +6 -5
  280. package/esm2022/lib/pipes/time-ago.pipe.mjs +6 -5
  281. package/esm2022/lib/pipes/time-duration.pipe.mjs +6 -5
  282. package/esm2022/lib/pipes/weight.pipe.mjs +8 -5
  283. package/fesm2022/elderbyte-ngx-starter.mjs +2017 -1866
  284. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  285. package/lib/components/access-denied/elder-access-denied.component.d.ts +1 -1
  286. package/lib/components/access-denied/elder-access-denied.module.d.ts +5 -5
  287. package/lib/components/auditing/audited-entity/elder-audited-entity.component.d.ts +1 -1
  288. package/lib/components/auditing/elder-audit.module.d.ts +7 -7
  289. package/lib/components/badge/elder-badge/elder-badge.component.d.ts +3 -3
  290. package/lib/components/badge/elder-badge.directive.d.ts +1 -1
  291. package/lib/components/badge/elder-badge.module.d.ts +8 -8
  292. package/lib/components/button-group/elder-button-group/elder-button-group.component.d.ts +1 -1
  293. package/lib/components/button-group/elder-button-group.module.d.ts +6 -6
  294. package/lib/components/card-organizer/card-organizer/elder-card-organizer.component.d.ts +1 -1
  295. package/lib/components/card-organizer/card-organizer/elder-stack-card.directive.d.ts +1 -1
  296. package/lib/components/card-organizer/card-stack/elder-card-stack.component.d.ts +1 -1
  297. package/lib/components/card-organizer/elder-card-organizer.module.d.ts +12 -12
  298. package/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.d.ts +1 -1
  299. package/lib/components/cards/elder-card/elder-card.component.d.ts +6 -6
  300. package/lib/components/cards/elder-card/elder-card.module.d.ts +7 -7
  301. package/lib/components/chips/elder-chip-label.directive.d.ts +1 -1
  302. package/lib/components/chips/elder-chips.module.d.ts +6 -6
  303. package/lib/components/connectivity/elder-connectivity.module.d.ts +8 -8
  304. package/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.d.ts +1 -1
  305. package/lib/components/containers/elder-containers.module.d.ts +3 -3
  306. package/lib/components/containers/elder-scroll-container/elder-scroll-container.component.d.ts +1 -1
  307. package/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.d.ts +1 -1
  308. package/lib/components/csv/elder-csv.module.d.ts +5 -5
  309. package/lib/components/currency/elder-currency.module.d.ts +3 -3
  310. package/lib/components/currency/elder-currency.pipe.d.ts +1 -1
  311. package/lib/components/data-transfer/elder-data-transfer.module.d.ts +17 -17
  312. package/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.d.ts +1 -1
  313. package/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.d.ts +1 -1
  314. package/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.d.ts +1 -1
  315. package/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.d.ts +1 -1
  316. package/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.d.ts +1 -1
  317. package/lib/components/data-view/common/elder-data-common.module.d.ts +19 -19
  318. package/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.d.ts +2 -2
  319. package/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.d.ts +1 -1
  320. package/lib/components/data-view/common/selection/data-context-selection.directive.d.ts +1 -1
  321. package/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.d.ts +1 -1
  322. package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +3 -3
  323. package/lib/components/data-view/grid/elder-grid.module.d.ts +19 -19
  324. package/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.d.ts +1 -1
  325. package/lib/components/data-view/master-detail/elder-detail.directive.d.ts +1 -1
  326. package/lib/components/data-view/master-detail/elder-master-activation.directive.d.ts +1 -1
  327. package/lib/components/data-view/master-detail/elder-master-detail.component.d.ts +1 -1
  328. package/lib/components/data-view/master-detail/elder-master-detail.module.d.ts +23 -23
  329. package/lib/components/data-view/master-detail/elder-master.directive.d.ts +1 -1
  330. package/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.d.ts +1 -1
  331. package/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.d.ts +22 -22
  332. package/lib/components/data-view/table/activation/elder-delete-active.directive.d.ts +1 -1
  333. package/lib/components/data-view/table/activation/elder-table-activation.directive.d.ts +1 -1
  334. package/lib/components/data-view/table/elder-number-cell.directive.d.ts +1 -1
  335. package/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.d.ts +1 -1
  336. package/lib/components/data-view/table/elder-table/elder-table.component.d.ts +1 -1
  337. package/lib/components/data-view/table/elder-table-column.directive.d.ts +1 -1
  338. package/lib/components/data-view/table/elder-table-extension.directive.d.ts +1 -1
  339. package/lib/components/data-view/table/elder-table-root.directive.d.ts +1 -1
  340. package/lib/components/data-view/table/elder-table-row.directive.d.ts +1 -1
  341. package/lib/components/data-view/table/elder-table-sort.directive.d.ts +1 -1
  342. package/lib/components/data-view/table/elder-table.module.d.ts +32 -32
  343. package/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.d.ts +1 -1
  344. package/lib/components/dialogs/elder-dialog.module.d.ts +16 -16
  345. package/lib/components/dialogs/question-dialog/elder-question-dialog.component.d.ts +1 -1
  346. package/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.d.ts +1 -1
  347. package/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.d.ts +1 -1
  348. package/lib/components/errors/elder-error.module.d.ts +6 -6
  349. package/lib/components/errors/exception-detail/elder-exception-detail.component.d.ts +1 -1
  350. package/lib/components/expand-toggle-button/elder-expand-toggle-button.component.d.ts +1 -1
  351. package/lib/components/expand-toggle-button/elder-expand-toggle-button.module.d.ts +6 -6
  352. package/lib/components/files/blob-viewer/elder-blob-viewer.component.d.ts +1 -1
  353. package/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.d.ts +1 -1
  354. package/lib/components/files/elder-file-drop-zone.directive.d.ts +1 -1
  355. package/lib/components/files/elder-file-select.directive.d.ts +1 -1
  356. package/lib/components/files/elder-file.module.d.ts +14 -14
  357. package/lib/components/files/file-select/file-select.component.d.ts +1 -1
  358. package/lib/components/files/file-upload/file-upload.component.d.ts +1 -1
  359. package/lib/components/forms/directives/elder-clipboard-put.directive.d.ts +1 -1
  360. package/lib/components/forms/directives/elder-delayed-focus.directive.d.ts +1 -1
  361. package/lib/components/forms/directives/elder-form-field-dense.directive.d.ts +1 -1
  362. package/lib/components/forms/directives/elder-form-field-label.directive.d.ts +1 -1
  363. package/lib/components/forms/directives/elder-form-field-no-hint.directive.d.ts +1 -1
  364. package/lib/components/forms/directives/elder-form-field-no-spinner.directive.d.ts +1 -1
  365. package/lib/components/forms/directives/elder-forms-directives.module.d.ts +22 -22
  366. package/lib/components/forms/directives/elder-initial-value.directive.d.ts +1 -1
  367. package/lib/components/forms/directives/elder-input-pattern.directive.d.ts +1 -1
  368. package/lib/components/forms/directives/elder-key-event.directive.d.ts +1 -1
  369. package/lib/components/forms/directives/elder-next-focusable.directive.d.ts +1 -1
  370. package/lib/components/forms/directives/elder-plug-parent-form.directive.d.ts +1 -1
  371. package/lib/components/forms/directives/elder-stop-event-propagation.directive.d.ts +1 -1
  372. package/lib/components/forms/directives/elder-tab-focus-trap.directive.d.ts +1 -1
  373. package/lib/components/forms/directives/elder-touched.directive.d.ts +1 -1
  374. package/lib/components/forms/directives/elder-triple-state-checkbox.directive.d.ts +1 -1
  375. package/lib/components/forms/directives/validation/elder-validation-error.directive.d.ts +1 -1
  376. package/lib/components/forms/directives/validation/validators/elder-max.validator.d.ts +1 -1
  377. package/lib/components/forms/directives/validation/validators/elder-min.validator.d.ts +1 -1
  378. package/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.d.ts +1 -1
  379. package/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.d.ts +1 -1
  380. package/lib/components/forms/search/domain/url/elder-search-url.directive.d.ts +1 -1
  381. package/lib/components/forms/search/elder-search-context.directive.d.ts +1 -1
  382. package/lib/components/forms/search/elder-search-input.directive.d.ts +1 -1
  383. package/lib/components/forms/search/elder-search.module.d.ts +18 -18
  384. package/lib/components/forms/search/search-box/elder-search-box.component.d.ts +1 -1
  385. package/lib/components/forms/search/search-box/elder-search-panel.component.d.ts +1 -1
  386. package/lib/components/global-search/elder-global-search.component.d.ts +1 -1
  387. package/lib/components/global-search/elder-global-search.module.d.ts +8 -8
  388. package/lib/components/graph/elder-progress-bar/elder-progress-bar.component.d.ts +1 -1
  389. package/lib/components/graph/elder-progress-bar/elder-progress-bar.module.d.ts +3 -3
  390. package/lib/components/headers/elder-header/elder-header.component.d.ts +1 -1
  391. package/lib/components/headers/elder-header.module.d.ts +5 -5
  392. package/lib/components/i18n/entities/elder-i18n-entities.module.d.ts +24 -24
  393. package/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.d.ts +1 -1
  394. package/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.d.ts +1 -1
  395. package/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.d.ts +1 -1
  396. package/lib/components/i18n/entities/elder-localized-text-column.directive.d.ts +1 -1
  397. package/lib/components/i18n/entities/elder-localized-texts.directive.d.ts +1 -1
  398. package/lib/components/i18n/entities/picker/i18n-pick-async.pipe.d.ts +1 -1
  399. package/lib/components/i18n/entities/picker/i18n-pick.pipe.d.ts +1 -1
  400. package/lib/components/i18n/language/elder-language.module.d.ts +10 -10
  401. package/lib/components/i18n/language/language-switcher/elder-language-switcher.component.d.ts +1 -1
  402. package/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.d.ts +1 -1
  403. package/lib/components/iframes/data-view/data-view-iframe-adapter.directive.d.ts +1 -1
  404. package/lib/components/iframes/elder-iframe.module.d.ts +16 -16
  405. package/lib/components/iframes/iframe-close.directive.d.ts +1 -1
  406. package/lib/components/iframes/iframe-dialog/iframe-dialog.component.d.ts +1 -1
  407. package/lib/components/iframes/iframe-host/iframe-host.component.d.ts +1 -1
  408. package/lib/components/iframes/iframe-side-content/iframe-side-content.component.d.ts +1 -1
  409. package/lib/components/infinitescroll/elder-infinite-autocomplete.directive.d.ts +1 -1
  410. package/lib/components/infinitescroll/elder-infinite-scroll.directive.d.ts +1 -1
  411. package/lib/components/infinitescroll/elder-infinite-scroll.module.d.ts +4 -4
  412. package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.d.ts +1 -1
  413. package/lib/components/input/autocomplete/elder-autocomplete-many.directive.d.ts +1 -1
  414. package/lib/components/input/autocomplete/elder-autocomplete.directive.d.ts +1 -1
  415. package/lib/components/input/autocomplete/elder-autocomplete.module.d.ts +11 -11
  416. package/lib/components/labels/elder-labels.module.d.ts +9 -9
  417. package/lib/components/labels/labels-input/labels-input.component.d.ts +1 -1
  418. package/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.d.ts +1 -1
  419. package/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.d.ts +1 -1
  420. package/lib/components/measures/directives/elder-unit-select.directive.d.ts +1 -1
  421. package/lib/components/measures/elder-measures.module.d.ts +17 -17
  422. package/lib/components/measures/elder-quantity-transform.pipe.d.ts +1 -1
  423. package/lib/components/measures/elder-quantity.pipe.d.ts +1 -1
  424. package/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.d.ts +1 -1
  425. package/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.d.ts +1 -1
  426. package/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.d.ts +1 -1
  427. package/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.d.ts +1 -1
  428. package/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.d.ts +1 -1
  429. package/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.d.ts +11 -11
  430. package/lib/components/navigation/nav/elder-nav.module.d.ts +12 -12
  431. package/lib/components/navigation/nav/nav-group/elder-nav-group.component.d.ts +1 -1
  432. package/lib/components/navigation/nav/nav-link/elder-nav-link.component.d.ts +1 -1
  433. package/lib/components/navigation/nav/nav-list/elder-nav-list.component.d.ts +1 -1
  434. package/lib/components/navigation/toolbar/elder-toolbar-column.directive.d.ts +1 -1
  435. package/lib/components/navigation/toolbar/elder-toolbar.module.d.ts +13 -13
  436. package/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.d.ts +1 -1
  437. package/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.d.ts +1 -1
  438. package/lib/components/overlays/elder-overlay-origin.directive.d.ts +1 -1
  439. package/lib/components/overlays/elder-overlay-trigger.directive.d.ts +1 -1
  440. package/lib/components/overlays/elder-overlay.component.d.ts +1 -1
  441. package/lib/components/overlays/elder-overlay.module.d.ts +6 -6
  442. package/lib/components/panels/card-panel/elder-card-panel.component.d.ts +1 -1
  443. package/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.d.ts +1 -1
  444. package/lib/components/panels/elder-panel.module.d.ts +8 -8
  445. package/lib/components/panels/flat/elder-panel.component.d.ts +1 -1
  446. package/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.d.ts +1 -1
  447. package/lib/components/panels/toggle-panel/elder-toggle-panel.component.d.ts +3 -3
  448. package/lib/components/scrollbar/elder-scrollbar.directive.d.ts +1 -1
  449. package/lib/components/scrollbar/elder-scrollbar.module.d.ts +1 -1
  450. package/lib/components/select/auto/elder-auto-select-first.directive.d.ts +1 -1
  451. package/lib/components/select/elder-select-base.d.ts +2 -3
  452. package/lib/components/select/elder-select-chip.directive.d.ts +3 -3
  453. package/lib/components/select/elder-select-on-tab.directive.d.ts +1 -1
  454. package/lib/components/select/elder-select-value.directive.d.ts +1 -1
  455. package/lib/components/select/elder-select.module.d.ts +37 -37
  456. package/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.d.ts +1 -1
  457. package/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.d.ts +1 -1
  458. package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +1 -1
  459. package/lib/components/select/multi/elder-mutli-select-all-directive.d.ts +1 -1
  460. package/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.d.ts +1 -1
  461. package/lib/components/select/popup/selection-model-popup.directive.d.ts +1 -1
  462. package/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.d.ts +1 -1
  463. package/lib/components/select/single/elder-clear-select.directive.d.ts +1 -1
  464. package/lib/components/select/single/elder-select/elder-select.component.d.ts +1 -1
  465. package/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.d.ts +1 -1
  466. package/lib/components/select-chip-list/elder-chip-list-select.module.d.ts +6 -6
  467. package/lib/components/shell/elder-shell-slot.directive.d.ts +1 -1
  468. package/lib/components/shell/elder-shell.module.d.ts +16 -16
  469. package/lib/components/shell/header/elder-app-header/elder-app-header.component.d.ts +1 -1
  470. package/lib/components/shell/shell/elder-shell.component.d.ts +4 -4
  471. package/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.d.ts +1 -1
  472. package/lib/components/tabs/elder-tab/elder-tab.directive.d.ts +1 -1
  473. package/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.d.ts +1 -1
  474. package/lib/components/tabs/elder-tab.module.d.ts +5 -5
  475. package/lib/components/theme/elder-theme-applier.directive.d.ts +1 -1
  476. package/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.d.ts +1 -1
  477. package/lib/components/theme/elder-theme.directive.d.ts +1 -1
  478. package/lib/components/theme/elder-theme.module.d.ts +8 -8
  479. package/lib/components/time/duration/elder-duration-input/elder-duration-input.component.d.ts +1 -1
  480. package/lib/components/time/elder-date-switcher/elder-date-switcher.component.d.ts +1 -1
  481. package/lib/components/time/elder-date-time-input/elder-date-time-input.component.d.ts +1 -1
  482. package/lib/components/time/elder-interval-input/elder-interval-input.component.d.ts +1 -1
  483. package/lib/components/time/elder-local-date-input/elder-local-date-input.component.d.ts +1 -1
  484. package/lib/components/time/elder-local-time-input/elder-local-time-input.component.d.ts +1 -1
  485. package/lib/components/time/elder-time.module.d.ts +19 -19
  486. package/lib/components/time/period/elder-period-input/elder-period-input.component.d.ts +1 -1
  487. package/lib/components/time/pipes/to-iso-date-string.pipe.d.ts +1 -1
  488. package/lib/components/toasts/elder-toast.module.d.ts +6 -6
  489. package/lib/components/toasts/standard-toast/standard-toast.component.d.ts +1 -1
  490. package/lib/components/url-fragment/elder-url-fragment.module.d.ts +10 -10
  491. package/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.d.ts +1 -1
  492. package/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.d.ts +1 -1
  493. package/lib/components/viewers/elder-viewers.module.d.ts +3 -3
  494. package/lib/pipes/bytes.pipe.d.ts +1 -1
  495. package/lib/pipes/elder-pipes.module.d.ts +15 -15
  496. package/lib/pipes/elder-repeat.pipe.d.ts +1 -1
  497. package/lib/pipes/elder-round.pipe.d.ts +1 -1
  498. package/lib/pipes/elder-safe-url.pipe.d.ts +1 -1
  499. package/lib/pipes/elder-truncate.pipe.d.ts +1 -1
  500. package/lib/pipes/iso-duration.pipe.d.ts +1 -1
  501. package/lib/pipes/iso-interval-parse.pipe.d.ts +1 -1
  502. package/lib/pipes/iso-interval.pipe.d.ts +1 -1
  503. package/lib/pipes/time-ago.pipe.d.ts +1 -1
  504. package/lib/pipes/time-duration.pipe.d.ts +1 -1
  505. package/lib/pipes/weight.pipe.d.ts +1 -1
  506. package/package.json +1 -1
@@ -2,41 +2,43 @@ import { ChangeDetectionStrategy, Component, ContentChild, Directive, forwardRef
2
2
  import { LoggerFactory } from '@elderbyte/ts-logger';
3
3
  import { BehaviorSubject, combineLatest, of } from 'rxjs';
4
4
  import { isContinuableDataContext } from '../../../../common/data/data-context/data-context';
5
+ import { CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf } from '@angular/cdk/scrolling';
5
6
  import { debounceTime, filter, map, startWith, switchMap, takeUntil } from 'rxjs/operators';
6
7
  import { ELDER_DATA_VIEW } from '../../base/elder-data-view';
7
8
  import { ElderDataViewBaseComponent } from '../../base/elder-data-view-base';
8
9
  import { MatPaginator } from '@angular/material/paginator';
9
10
  import { MatTableDataContextBindingBuilder } from '../../../../common/data/data-context/mat-table-data-context-binding';
10
11
  import { Breakpoints } from '@angular/cdk/layout';
12
+ import { MatProgressBar } from '@angular/material/progress-bar';
13
+ import { MatIcon } from '@angular/material/icon';
14
+ import { ElderStopEventPropagationDirective } from '../../../forms/directives/elder-stop-event-propagation.directive';
15
+ import { MatIconButton } from '@angular/material/button';
16
+ import { ElderInfiniteScrollDirective } from '../../../infinitescroll/elder-infinite-scroll.directive';
17
+ import { DataContextStateIndicatorComponent } from '../../common/data-context-state-indicator/data-context-state-indicator.component';
18
+ import { MatDivider } from '@angular/material/divider';
19
+ import { ElderSingleSortComponent } from '../../common/elder-single-sort/elder-single-sort.component';
20
+ import { ElderSelectionMasterCheckboxComponent } from '../../common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component';
21
+ import { DataContextSelectionDirective } from '../../common/selection/data-context-selection.directive';
22
+ import { NgIf, NgTemplateOutlet, NgFor, AsyncPipe } from '@angular/common';
23
+ import { MatCard } from '@angular/material/card';
11
24
  import * as i0 from "@angular/core";
12
25
  import * as i1 from "../../../../common/selection/selection-model";
13
26
  import * as i2 from "../../base/elder-data-view-options-provider";
14
27
  import * as i3 from "@angular/cdk/layout";
15
- import * as i4 from "@angular/common";
16
- import * as i5 from "@angular/material/progress-bar";
17
- import * as i6 from "@angular/material/divider";
18
- import * as i7 from "@angular/material/icon";
19
- import * as i8 from "@angular/material/button";
20
- import * as i9 from "@angular/cdk/scrolling";
21
- import * as i10 from "../../common/elder-single-sort/elder-single-sort.component";
22
- import * as i11 from "../../common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component";
23
- import * as i12 from "../../common/selection/data-context-selection.directive";
24
- import * as i13 from "../../common/data-context-state-indicator/data-context-state-indicator.component";
25
- import * as i14 from "../../../infinitescroll/elder-infinite-scroll.directive";
26
- import * as i15 from "../../../forms/directives/elder-stop-event-propagation.directive";
27
- import * as i16 from "@angular/material/paginator";
28
- import * as i17 from "@angular/material/card";
29
28
  export class ElderGridTileDirective {
30
29
  constructor(templateRef, viewContainer) {
31
30
  this.templateRef = templateRef;
32
31
  this.viewContainer = viewContainer;
33
32
  }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderGridTileDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
35
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: ElderGridTileDirective, selector: "[elderGridTile]", ngImport: i0 }); }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderGridTileDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
34
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ElderGridTileDirective, isStandalone: true, selector: "[elderGridTile]", ngImport: i0 }); }
36
35
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderGridTileDirective, decorators: [{
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderGridTileDirective, decorators: [{
38
37
  type: Directive,
39
- args: [{ selector: '[elderGridTile]' }]
38
+ args: [{
39
+ selector: '[elderGridTile]',
40
+ standalone: true
41
+ }]
40
42
  }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
41
43
  /**
42
44
  * This directive projects marked content into a toolbar.
@@ -46,12 +48,15 @@ export class ElderGridToolbarDirective {
46
48
  this.templateRef = templateRef;
47
49
  this.viewContainer = viewContainer;
48
50
  }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderGridToolbarDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
50
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: ElderGridToolbarDirective, selector: "[elderGridToolbar]", ngImport: i0 }); }
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderGridToolbarDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
52
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ElderGridToolbarDirective, isStandalone: true, selector: "[elderGridToolbar]", ngImport: i0 }); }
51
53
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderGridToolbarDirective, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderGridToolbarDirective, decorators: [{
53
55
  type: Directive,
54
- args: [{ selector: '[elderGridToolbar]' }]
56
+ args: [{
57
+ selector: '[elderGridToolbar]',
58
+ standalone: true
59
+ }]
55
60
  }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
56
61
  export class ElderGridComponent extends ElderDataViewBaseComponent {
57
62
  /***************************************************************************
@@ -241,22 +246,22 @@ export class ElderGridComponent extends ElderDataViewBaseComponent {
241
246
  });
242
247
  return columnCount;
243
248
  }
244
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderGridComponent, deps: [{ token: i1.SelectionModel, optional: true }, { token: i2.ElderDataViewOptionsProvider, optional: true, skipSelf: true }, { token: i3.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
245
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ElderGridComponent, selector: "elder-grid", inputs: { toolbarVisible: "toolbarVisible", footerVisible: "footerVisible", itemHeight: "itemHeight", responsiveColumnCount: "responsiveColumnCount", availableSorts: "availableSorts", sortTranslationPrefix: "sortTranslationPrefix", hiddenField: "hiddenField", idField: "idField", selectionVisible: "selectionVisible", pageSizeOptions: "pageSizeOptions", tileTemplate: "tileTemplate", toolbarTemplate: "toolbarTemplate", data: "data", columnCount: "columnCount" }, providers: [
249
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderGridComponent, deps: [{ token: i1.SelectionModel, optional: true }, { token: i2.ElderDataViewOptionsProvider, optional: true, skipSelf: true }, { token: i3.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
250
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ElderGridComponent, isStandalone: true, selector: "elder-grid", inputs: { toolbarVisible: "toolbarVisible", footerVisible: "footerVisible", itemHeight: "itemHeight", responsiveColumnCount: "responsiveColumnCount", availableSorts: "availableSorts", sortTranslationPrefix: "sortTranslationPrefix", hiddenField: "hiddenField", idField: "idField", selectionVisible: "selectionVisible", pageSizeOptions: "pageSizeOptions", tileTemplate: "tileTemplate", toolbarTemplate: "toolbarTemplate", data: "data", columnCount: "columnCount" }, providers: [
246
251
  {
247
252
  provide: ELDER_DATA_VIEW,
248
253
  useExisting: forwardRef(() => ElderGridComponent)
249
254
  }
250
- ], queries: [{ propertyName: "tileTemplateQuery", first: true, predicate: ElderGridTileDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "toolbarTemplateQuery", first: true, predicate: ElderGridToolbarDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "virtualScrollViewPort", first: true, predicate: ["virtualScrollViewPort"], descendants: true, static: true }, { propertyName: "matPaginator", first: true, predicate: MatPaginator, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-card class=\"full\"\n [class.embedded]=\"embedded\"\n [appearance]=\"appearance\"\n>\n <!-- Grid Browser -->\n <div class=\"layout-col full elder-grid-container\"\n *ngIf=\"dataContext$ | async as data\"\n [elderDataContextSelection]=\"data\" #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n >\n <!-- Toolbar Row -->\n <div *ngIf=\"toolbarVisible\"\n class=\"layout-row place-start-center flex-none elder-grid-toolbar\">\n\n <div class=\"layout-col flex-none\" style=\"padding-left: 8px; padding-right: 8px\" *ngIf=\"selectionVisible\">\n <elder-selection-master-checkbox class=\"flex-none\" style=\"padding-left: 12px\"></elder-selection-master-checkbox>\n </div>\n\n <!-- Toolbar -->\n <ng-container *ngIf=\"toolbarTemplate\">\n <ng-template *ngTemplateOutlet=\"toolbarTemplate; context: {$implicit: this}\"></ng-template>\n </ng-container>\n\n <elder-single-sort *ngIf=\"availableSorts && availableSorts.length > 0 && data.sort.sorts | async as sorts\"\n class=\"flex-none\"\n [availableSorts]=\"availableSorts\"\n [translationPrefix]=\"sortTranslationPrefix\"\n [sort]=\"sorts[0]\"\n (sortChange)=\"updateSort($event)\">\n </elder-single-sort>\n </div>\n\n <mat-divider *ngIf=\"toolbarVisible\"></mat-divider>\n\n <elder-data-context-state-indicator class=\"flex-none\" [dataContext]=\"data\">\n </elder-data-context-state-indicator>\n\n <!-- [cdkDropListSortingDisabled]=\"true\" -->\n <!-- cdkDropList -->\n <cdk-virtual-scroll-viewport\n class=\"layout-col flex elder-grid-browser\"\n id=\"documents-container\"\n [itemSize]=\"itemHeight\"\n [minBufferPx]=\"itemHeight * 2\"\n [maxBufferPx]=\"itemHeight * 3\"\n #virtualScrollViewPort\n elderInfiniteScroll\n [eventThrottle]=\"200\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"data.loading | async\"\n [containerId]=\"'documents-container'\" [listenToHost]=\"false\"\n (closeToEnd)=\"requestMoreDataZoned($event)\">\n\n <!-- (scrolling)=\"onScrolling($event)\" -->\n\n <div\n *cdkVirtualFor=\"let row of dataRows$; trackBy: trackByIndex; templateCacheSize: 50\"\n class=\"elder-grid-tile-row\"\n [style.height]=\"itemHeight + 'px'\">\n\n <ng-container *ngFor=\"let tile of row; trackBy: trackByFn\">\n\n <!-- Tile Cell -->\n <mat-card appearance=\"outlined\" *ngIf=\"showTile(tile)\" class=\"elder-grid-tile\">\n <div class=\"elder-grid-tile-content\"\n (click)=\"onItemClick(tile)\"\n (dblclick)=\"onItemDoubleClick(tile)\">\n <ng-container\n *ngTemplateOutlet=\"tileTemplate || simpleTileTemplate; context: {$implicit: tile}\">\n </ng-container>\n\n <!-- Overlay (Selection) -->\n <ng-container *ngIf=\"selectionVisible\">\n <div *ngIf=\"selectionModel.selection | async as selection\"\n class=\"elder-grid-tile-overlay elder-click-through\"\n [class.elder-grid-tile-overlay-hidden]=\"!inSelectionMode(selection)\"\n [class.elder-grid-tile-overlay-visible]=\"inSelectionMode(selection)\"\n >\n <button mat-icon-button type=\"button\"\n (click)=\"selectionModel.toggle(tile)\" elderStopEventPropagation\n class=\"elder-grid-tile-check\">\n <mat-icon\n [class.elder-selected]=\"(selectionModel.observeSelection(tile) | async)\"\n >\n {{(selectionModel.observeSelection(tile) | async) ? 'check_circle' : 'radio_button_unchecked'}}\n </mat-icon>\n </button>\n </div>\n </ng-container>\n\n </div>\n </mat-card>\n\n <div *ngIf=\"!showTile(tile)\" class=\"elder-grid-tile-hidden\"></div>\n </ng-container>\n\n </div>\n\n </cdk-virtual-scroll-viewport>\n\n\n <mat-progress-bar class=\"flex-none\"\n [mode]=\"(data?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"(data && (data.status | async)?.hasError) ? 'warn' : 'primary'\">\n </mat-progress-bar>\n\n <!-- Footer -->\n <div class=\"layout-row place-end-center gap-md flex-none elder-grid-footer\"\n *ngIf=\"footerVisible\"\n style=\"padding-right: 12px\">\n\n <!-- Continuable -->\n <ng-container *ngIf=\"isContinuable\">\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataSnapshot?.data | async)?.length}} / {{total$ | async}}\n </span>\n\n <button mat-icon-button type=\"button\"\n color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataSnapshot.loadMore()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </ng-container>\n\n <!-- Paged -->\n <mat-paginator #matPaginator *ngIf=\"isActivePaged && (dataActivePaged.page | async) as page\"\n class=\"flex-none\"\n [length]=\"dataContext?.total | async\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions\">\n </mat-paginator>\n\n <!-- Local Source -->\n <ng-container *ngIf=\"!isActivePaged && !isContinuable\">\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataSnapshot?.data | async)?.length}}\n </span>\n </ng-container>\n\n </div>\n\n\n </div>\n</mat-card>\n\n<ng-template #simpleTileTemplate let-tile>\n <div *ngIf=\"tile\" class=\"layout-col place-center-center flex\" style=\"background-color: lightblue\">\n <p class=\"noselect\">Tile: {{tile}}</p>\n </div>\n</ng-template>\n", styles: [":host{min-width:0;min-height:0}.elder-grid-tile-row{display:flex;flex-direction:row;padding:8px}.elder-grid-tile-row:first-child{padding-top:16px}.elder-grid-tile-hidden{flex:0 1 100%;margin:8px;width:100%;height:100%}.elder-grid-tile-content{position:relative;width:100%;height:100%;overflow:hidden}.elder-grid-tile-overlay{position:absolute;inset:0;transition:background-color .1s ease-in,opacity .1s ease-in}.elder-click-through{pointer-events:none}.elder-grid-tile-overlay-visible{opacity:1}.elder-grid-tile-overlay-hidden{opacity:0}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i9.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i9.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i9.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i10.ElderSingleSortComponent, selector: "elder-single-sort", inputs: ["availableSorts", "translationPrefix", "sort"], outputs: ["sortChange"] }, { kind: "component", type: i11.ElderSelectionMasterCheckboxComponent, selector: "elder-selection-master-checkbox" }, { kind: "directive", type: i12.DataContextSelectionDirective, selector: "[elderDataContextSelection]", inputs: ["elderDataContextSelectionModel", "elderDataContextSelection"], exportAs: ["elderDataContextSelection"] }, { kind: "component", type: i13.DataContextStateIndicatorComponent, selector: "elder-data-context-state-indicator", inputs: ["dataContext"] }, { kind: "directive", type: i14.ElderInfiniteScrollDirective, selector: "[elderInfiniteScroll]", inputs: ["listenToHost", "eventThrottle", "offsetFactor", "ignoreScrollEvent", "containerId", "scrollContainer"], outputs: ["closeToEnd", "scrolling"] }, { kind: "directive", type: i15.ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "component", type: i16.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i17.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
255
+ ], queries: [{ propertyName: "tileTemplateQuery", first: true, predicate: ElderGridTileDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "toolbarTemplateQuery", first: true, predicate: ElderGridToolbarDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "virtualScrollViewPort", first: true, predicate: ["virtualScrollViewPort"], descendants: true, static: true }, { propertyName: "matPaginator", first: true, predicate: MatPaginator, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-card class=\"full\"\n [class.embedded]=\"embedded\"\n [appearance]=\"appearance\"\n>\n <!-- Grid Browser -->\n <div class=\"layout-col full elder-grid-container\"\n *ngIf=\"dataContext$ | async as data\"\n [elderDataContextSelection]=\"data\" #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n >\n <!-- Toolbar Row -->\n <div *ngIf=\"toolbarVisible\"\n class=\"layout-row place-start-center flex-none elder-grid-toolbar\">\n\n <div class=\"layout-col flex-none\" style=\"padding-left: 8px; padding-right: 8px\" *ngIf=\"selectionVisible\">\n <elder-selection-master-checkbox class=\"flex-none\" style=\"padding-left: 12px\"></elder-selection-master-checkbox>\n </div>\n\n <!-- Toolbar -->\n <ng-container *ngIf=\"toolbarTemplate\">\n <ng-template *ngTemplateOutlet=\"toolbarTemplate; context: {$implicit: this}\"></ng-template>\n </ng-container>\n\n <elder-single-sort *ngIf=\"availableSorts && availableSorts.length > 0 && data.sort.sorts | async as sorts\"\n class=\"flex-none\"\n [availableSorts]=\"availableSorts\"\n [translationPrefix]=\"sortTranslationPrefix\"\n [sort]=\"sorts[0]\"\n (sortChange)=\"updateSort($event)\">\n </elder-single-sort>\n </div>\n\n <mat-divider *ngIf=\"toolbarVisible\"></mat-divider>\n\n <elder-data-context-state-indicator class=\"flex-none\" [dataContext]=\"data\">\n </elder-data-context-state-indicator>\n\n <!-- [cdkDropListSortingDisabled]=\"true\" -->\n <!-- cdkDropList -->\n <cdk-virtual-scroll-viewport\n class=\"layout-col flex elder-grid-browser\"\n id=\"documents-container\"\n [itemSize]=\"itemHeight\"\n [minBufferPx]=\"itemHeight * 2\"\n [maxBufferPx]=\"itemHeight * 3\"\n #virtualScrollViewPort\n elderInfiniteScroll\n [eventThrottle]=\"200\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"data.loading | async\"\n [containerId]=\"'documents-container'\" [listenToHost]=\"false\"\n (closeToEnd)=\"requestMoreDataZoned($event)\">\n\n <!-- (scrolling)=\"onScrolling($event)\" -->\n\n <div\n *cdkVirtualFor=\"let row of dataRows$; trackBy: trackByIndex; templateCacheSize: 50\"\n class=\"elder-grid-tile-row\"\n [style.height]=\"itemHeight + 'px'\">\n\n <ng-container *ngFor=\"let tile of row; trackBy: trackByFn\">\n\n <!-- Tile Cell -->\n <mat-card appearance=\"outlined\" *ngIf=\"showTile(tile)\" class=\"elder-grid-tile\">\n <div class=\"elder-grid-tile-content\"\n (click)=\"onItemClick(tile)\"\n (dblclick)=\"onItemDoubleClick(tile)\">\n <ng-container\n *ngTemplateOutlet=\"tileTemplate || simpleTileTemplate; context: {$implicit: tile}\">\n </ng-container>\n\n <!-- Overlay (Selection) -->\n <ng-container *ngIf=\"selectionVisible\">\n <div *ngIf=\"selectionModel.selection | async as selection\"\n class=\"elder-grid-tile-overlay elder-click-through\"\n [class.elder-grid-tile-overlay-hidden]=\"!inSelectionMode(selection)\"\n [class.elder-grid-tile-overlay-visible]=\"inSelectionMode(selection)\"\n >\n <button mat-icon-button type=\"button\"\n (click)=\"selectionModel.toggle(tile)\" elderStopEventPropagation\n class=\"elder-grid-tile-check\">\n <mat-icon\n [class.elder-selected]=\"(selectionModel.observeSelection(tile) | async)\"\n >\n {{(selectionModel.observeSelection(tile) | async) ? 'check_circle' : 'radio_button_unchecked'}}\n </mat-icon>\n </button>\n </div>\n </ng-container>\n\n </div>\n </mat-card>\n\n <div *ngIf=\"!showTile(tile)\" class=\"elder-grid-tile-hidden\"></div>\n </ng-container>\n\n </div>\n\n </cdk-virtual-scroll-viewport>\n\n\n <mat-progress-bar class=\"flex-none\"\n [mode]=\"(data?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"(data && (data.status | async)?.hasError) ? 'warn' : 'primary'\">\n </mat-progress-bar>\n\n <!-- Footer -->\n <div class=\"layout-row place-end-center gap-md flex-none elder-grid-footer\"\n *ngIf=\"footerVisible\"\n style=\"padding-right: 12px\">\n\n <!-- Continuable -->\n <ng-container *ngIf=\"isContinuable\">\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataSnapshot?.data | async)?.length}} / {{total$ | async}}\n </span>\n\n <button mat-icon-button type=\"button\"\n color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataSnapshot.loadMore()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </ng-container>\n\n <!-- Paged -->\n <mat-paginator #matPaginator *ngIf=\"isActivePaged && (dataActivePaged.page | async) as page\"\n class=\"flex-none\"\n [length]=\"dataContext?.total | async\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions\">\n </mat-paginator>\n\n <!-- Local Source -->\n <ng-container *ngIf=\"!isActivePaged && !isContinuable\">\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataSnapshot?.data | async)?.length}}\n </span>\n </ng-container>\n\n </div>\n\n\n </div>\n</mat-card>\n\n<ng-template #simpleTileTemplate let-tile>\n <div *ngIf=\"tile\" class=\"layout-col place-center-center flex\" style=\"background-color: lightblue\">\n <p class=\"noselect\">Tile: {{tile}}</p>\n </div>\n</ng-template>\n", styles: [":host{min-width:0;min-height:0}.elder-grid-tile-row{display:flex;flex-direction:row;padding:8px}.elder-grid-tile-row:first-child{padding-top:16px}.elder-grid-tile-hidden{flex:0 1 100%;margin:8px;width:100%;height:100%}.elder-grid-tile-content{position:relative;width:100%;height:100%;overflow:hidden}.elder-grid-tile-overlay{position:absolute;inset:0;transition:background-color .1s ease-in,opacity .1s ease-in}.elder-click-through{pointer-events:none}.elder-grid-tile-overlay-visible{opacity:1}.elder-grid-tile-overlay-hidden{opacity:0}\n"], dependencies: [{ kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: DataContextSelectionDirective, selector: "[elderDataContextSelection]", inputs: ["elderDataContextSelectionModel", "elderDataContextSelection"], exportAs: ["elderDataContextSelection"] }, { kind: "component", type: ElderSelectionMasterCheckboxComponent, selector: "elder-selection-master-checkbox" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ElderSingleSortComponent, selector: "elder-single-sort", inputs: ["availableSorts", "translationPrefix", "sort"], outputs: ["sortChange"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: DataContextStateIndicatorComponent, selector: "elder-data-context-state-indicator", inputs: ["dataContext"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ElderInfiniteScrollDirective, selector: "[elderInfiniteScroll]", inputs: ["listenToHost", "eventThrottle", "offsetFactor", "ignoreScrollEvent", "containerId", "scrollContainer"], outputs: ["closeToEnd", "scrolling"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
251
256
  }
252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderGridComponent, decorators: [{
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderGridComponent, decorators: [{
253
258
  type: Component,
254
259
  args: [{ selector: 'elder-grid', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
255
260
  {
256
261
  provide: ELDER_DATA_VIEW,
257
262
  useExisting: forwardRef(() => ElderGridComponent)
258
263
  }
259
- ], template: "<mat-card class=\"full\"\n [class.embedded]=\"embedded\"\n [appearance]=\"appearance\"\n>\n <!-- Grid Browser -->\n <div class=\"layout-col full elder-grid-container\"\n *ngIf=\"dataContext$ | async as data\"\n [elderDataContextSelection]=\"data\" #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n >\n <!-- Toolbar Row -->\n <div *ngIf=\"toolbarVisible\"\n class=\"layout-row place-start-center flex-none elder-grid-toolbar\">\n\n <div class=\"layout-col flex-none\" style=\"padding-left: 8px; padding-right: 8px\" *ngIf=\"selectionVisible\">\n <elder-selection-master-checkbox class=\"flex-none\" style=\"padding-left: 12px\"></elder-selection-master-checkbox>\n </div>\n\n <!-- Toolbar -->\n <ng-container *ngIf=\"toolbarTemplate\">\n <ng-template *ngTemplateOutlet=\"toolbarTemplate; context: {$implicit: this}\"></ng-template>\n </ng-container>\n\n <elder-single-sort *ngIf=\"availableSorts && availableSorts.length > 0 && data.sort.sorts | async as sorts\"\n class=\"flex-none\"\n [availableSorts]=\"availableSorts\"\n [translationPrefix]=\"sortTranslationPrefix\"\n [sort]=\"sorts[0]\"\n (sortChange)=\"updateSort($event)\">\n </elder-single-sort>\n </div>\n\n <mat-divider *ngIf=\"toolbarVisible\"></mat-divider>\n\n <elder-data-context-state-indicator class=\"flex-none\" [dataContext]=\"data\">\n </elder-data-context-state-indicator>\n\n <!-- [cdkDropListSortingDisabled]=\"true\" -->\n <!-- cdkDropList -->\n <cdk-virtual-scroll-viewport\n class=\"layout-col flex elder-grid-browser\"\n id=\"documents-container\"\n [itemSize]=\"itemHeight\"\n [minBufferPx]=\"itemHeight * 2\"\n [maxBufferPx]=\"itemHeight * 3\"\n #virtualScrollViewPort\n elderInfiniteScroll\n [eventThrottle]=\"200\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"data.loading | async\"\n [containerId]=\"'documents-container'\" [listenToHost]=\"false\"\n (closeToEnd)=\"requestMoreDataZoned($event)\">\n\n <!-- (scrolling)=\"onScrolling($event)\" -->\n\n <div\n *cdkVirtualFor=\"let row of dataRows$; trackBy: trackByIndex; templateCacheSize: 50\"\n class=\"elder-grid-tile-row\"\n [style.height]=\"itemHeight + 'px'\">\n\n <ng-container *ngFor=\"let tile of row; trackBy: trackByFn\">\n\n <!-- Tile Cell -->\n <mat-card appearance=\"outlined\" *ngIf=\"showTile(tile)\" class=\"elder-grid-tile\">\n <div class=\"elder-grid-tile-content\"\n (click)=\"onItemClick(tile)\"\n (dblclick)=\"onItemDoubleClick(tile)\">\n <ng-container\n *ngTemplateOutlet=\"tileTemplate || simpleTileTemplate; context: {$implicit: tile}\">\n </ng-container>\n\n <!-- Overlay (Selection) -->\n <ng-container *ngIf=\"selectionVisible\">\n <div *ngIf=\"selectionModel.selection | async as selection\"\n class=\"elder-grid-tile-overlay elder-click-through\"\n [class.elder-grid-tile-overlay-hidden]=\"!inSelectionMode(selection)\"\n [class.elder-grid-tile-overlay-visible]=\"inSelectionMode(selection)\"\n >\n <button mat-icon-button type=\"button\"\n (click)=\"selectionModel.toggle(tile)\" elderStopEventPropagation\n class=\"elder-grid-tile-check\">\n <mat-icon\n [class.elder-selected]=\"(selectionModel.observeSelection(tile) | async)\"\n >\n {{(selectionModel.observeSelection(tile) | async) ? 'check_circle' : 'radio_button_unchecked'}}\n </mat-icon>\n </button>\n </div>\n </ng-container>\n\n </div>\n </mat-card>\n\n <div *ngIf=\"!showTile(tile)\" class=\"elder-grid-tile-hidden\"></div>\n </ng-container>\n\n </div>\n\n </cdk-virtual-scroll-viewport>\n\n\n <mat-progress-bar class=\"flex-none\"\n [mode]=\"(data?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"(data && (data.status | async)?.hasError) ? 'warn' : 'primary'\">\n </mat-progress-bar>\n\n <!-- Footer -->\n <div class=\"layout-row place-end-center gap-md flex-none elder-grid-footer\"\n *ngIf=\"footerVisible\"\n style=\"padding-right: 12px\">\n\n <!-- Continuable -->\n <ng-container *ngIf=\"isContinuable\">\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataSnapshot?.data | async)?.length}} / {{total$ | async}}\n </span>\n\n <button mat-icon-button type=\"button\"\n color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataSnapshot.loadMore()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </ng-container>\n\n <!-- Paged -->\n <mat-paginator #matPaginator *ngIf=\"isActivePaged && (dataActivePaged.page | async) as page\"\n class=\"flex-none\"\n [length]=\"dataContext?.total | async\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions\">\n </mat-paginator>\n\n <!-- Local Source -->\n <ng-container *ngIf=\"!isActivePaged && !isContinuable\">\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataSnapshot?.data | async)?.length}}\n </span>\n </ng-container>\n\n </div>\n\n\n </div>\n</mat-card>\n\n<ng-template #simpleTileTemplate let-tile>\n <div *ngIf=\"tile\" class=\"layout-col place-center-center flex\" style=\"background-color: lightblue\">\n <p class=\"noselect\">Tile: {{tile}}</p>\n </div>\n</ng-template>\n", styles: [":host{min-width:0;min-height:0}.elder-grid-tile-row{display:flex;flex-direction:row;padding:8px}.elder-grid-tile-row:first-child{padding-top:16px}.elder-grid-tile-hidden{flex:0 1 100%;margin:8px;width:100%;height:100%}.elder-grid-tile-content{position:relative;width:100%;height:100%;overflow:hidden}.elder-grid-tile-overlay{position:absolute;inset:0;transition:background-color .1s ease-in,opacity .1s ease-in}.elder-click-through{pointer-events:none}.elder-grid-tile-overlay-visible{opacity:1}.elder-grid-tile-overlay-hidden{opacity:0}\n"] }]
264
+ ], standalone: true, imports: [MatCard, NgIf, DataContextSelectionDirective, ElderSelectionMasterCheckboxComponent, NgTemplateOutlet, ElderSingleSortComponent, MatDivider, DataContextStateIndicatorComponent, CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, ElderInfiniteScrollDirective, CdkVirtualForOf, NgFor, MatIconButton, ElderStopEventPropagationDirective, MatIcon, MatProgressBar, MatPaginator, AsyncPipe], template: "<mat-card class=\"full\"\n [class.embedded]=\"embedded\"\n [appearance]=\"appearance\"\n>\n <!-- Grid Browser -->\n <div class=\"layout-col full elder-grid-container\"\n *ngIf=\"dataContext$ | async as data\"\n [elderDataContextSelection]=\"data\" #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n >\n <!-- Toolbar Row -->\n <div *ngIf=\"toolbarVisible\"\n class=\"layout-row place-start-center flex-none elder-grid-toolbar\">\n\n <div class=\"layout-col flex-none\" style=\"padding-left: 8px; padding-right: 8px\" *ngIf=\"selectionVisible\">\n <elder-selection-master-checkbox class=\"flex-none\" style=\"padding-left: 12px\"></elder-selection-master-checkbox>\n </div>\n\n <!-- Toolbar -->\n <ng-container *ngIf=\"toolbarTemplate\">\n <ng-template *ngTemplateOutlet=\"toolbarTemplate; context: {$implicit: this}\"></ng-template>\n </ng-container>\n\n <elder-single-sort *ngIf=\"availableSorts && availableSorts.length > 0 && data.sort.sorts | async as sorts\"\n class=\"flex-none\"\n [availableSorts]=\"availableSorts\"\n [translationPrefix]=\"sortTranslationPrefix\"\n [sort]=\"sorts[0]\"\n (sortChange)=\"updateSort($event)\">\n </elder-single-sort>\n </div>\n\n <mat-divider *ngIf=\"toolbarVisible\"></mat-divider>\n\n <elder-data-context-state-indicator class=\"flex-none\" [dataContext]=\"data\">\n </elder-data-context-state-indicator>\n\n <!-- [cdkDropListSortingDisabled]=\"true\" -->\n <!-- cdkDropList -->\n <cdk-virtual-scroll-viewport\n class=\"layout-col flex elder-grid-browser\"\n id=\"documents-container\"\n [itemSize]=\"itemHeight\"\n [minBufferPx]=\"itemHeight * 2\"\n [maxBufferPx]=\"itemHeight * 3\"\n #virtualScrollViewPort\n elderInfiniteScroll\n [eventThrottle]=\"200\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"data.loading | async\"\n [containerId]=\"'documents-container'\" [listenToHost]=\"false\"\n (closeToEnd)=\"requestMoreDataZoned($event)\">\n\n <!-- (scrolling)=\"onScrolling($event)\" -->\n\n <div\n *cdkVirtualFor=\"let row of dataRows$; trackBy: trackByIndex; templateCacheSize: 50\"\n class=\"elder-grid-tile-row\"\n [style.height]=\"itemHeight + 'px'\">\n\n <ng-container *ngFor=\"let tile of row; trackBy: trackByFn\">\n\n <!-- Tile Cell -->\n <mat-card appearance=\"outlined\" *ngIf=\"showTile(tile)\" class=\"elder-grid-tile\">\n <div class=\"elder-grid-tile-content\"\n (click)=\"onItemClick(tile)\"\n (dblclick)=\"onItemDoubleClick(tile)\">\n <ng-container\n *ngTemplateOutlet=\"tileTemplate || simpleTileTemplate; context: {$implicit: tile}\">\n </ng-container>\n\n <!-- Overlay (Selection) -->\n <ng-container *ngIf=\"selectionVisible\">\n <div *ngIf=\"selectionModel.selection | async as selection\"\n class=\"elder-grid-tile-overlay elder-click-through\"\n [class.elder-grid-tile-overlay-hidden]=\"!inSelectionMode(selection)\"\n [class.elder-grid-tile-overlay-visible]=\"inSelectionMode(selection)\"\n >\n <button mat-icon-button type=\"button\"\n (click)=\"selectionModel.toggle(tile)\" elderStopEventPropagation\n class=\"elder-grid-tile-check\">\n <mat-icon\n [class.elder-selected]=\"(selectionModel.observeSelection(tile) | async)\"\n >\n {{(selectionModel.observeSelection(tile) | async) ? 'check_circle' : 'radio_button_unchecked'}}\n </mat-icon>\n </button>\n </div>\n </ng-container>\n\n </div>\n </mat-card>\n\n <div *ngIf=\"!showTile(tile)\" class=\"elder-grid-tile-hidden\"></div>\n </ng-container>\n\n </div>\n\n </cdk-virtual-scroll-viewport>\n\n\n <mat-progress-bar class=\"flex-none\"\n [mode]=\"(data?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"(data && (data.status | async)?.hasError) ? 'warn' : 'primary'\">\n </mat-progress-bar>\n\n <!-- Footer -->\n <div class=\"layout-row place-end-center gap-md flex-none elder-grid-footer\"\n *ngIf=\"footerVisible\"\n style=\"padding-right: 12px\">\n\n <!-- Continuable -->\n <ng-container *ngIf=\"isContinuable\">\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataSnapshot?.data | async)?.length}} / {{total$ | async}}\n </span>\n\n <button mat-icon-button type=\"button\"\n color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataSnapshot.loadMore()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </ng-container>\n\n <!-- Paged -->\n <mat-paginator #matPaginator *ngIf=\"isActivePaged && (dataActivePaged.page | async) as page\"\n class=\"flex-none\"\n [length]=\"dataContext?.total | async\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions\">\n </mat-paginator>\n\n <!-- Local Source -->\n <ng-container *ngIf=\"!isActivePaged && !isContinuable\">\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataSnapshot?.data | async)?.length}}\n </span>\n </ng-container>\n\n </div>\n\n\n </div>\n</mat-card>\n\n<ng-template #simpleTileTemplate let-tile>\n <div *ngIf=\"tile\" class=\"layout-col place-center-center flex\" style=\"background-color: lightblue\">\n <p class=\"noselect\">Tile: {{tile}}</p>\n </div>\n</ng-template>\n", styles: [":host{min-width:0;min-height:0}.elder-grid-tile-row{display:flex;flex-direction:row;padding:8px}.elder-grid-tile-row:first-child{padding-top:16px}.elder-grid-tile-hidden{flex:0 1 100%;margin:8px;width:100%;height:100%}.elder-grid-tile-content{position:relative;width:100%;height:100%;overflow:hidden}.elder-grid-tile-overlay{position:absolute;inset:0;transition:background-color .1s ease-in,opacity .1s ease-in}.elder-click-through{pointer-events:none}.elder-grid-tile-overlay-visible{opacity:1}.elder-grid-tile-overlay-hidden{opacity:0}\n"] }]
260
265
  }], ctorParameters: () => [{ type: i1.SelectionModel, decorators: [{
261
266
  type: Optional
262
267
  }] }, { type: i2.ElderDataViewOptionsProvider, decorators: [{
@@ -304,4 +309,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
304
309
  }], columnCount: [{
305
310
  type: Input
306
311
  }] } });
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9ncmlkL2VsZGVyLWdyaWQvZWxkZXItZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9ncmlkL2VsZGVyLWdyaWQvZWxkZXItZ3JpZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsUUFBUSxFQUNSLFFBQVEsRUFDUixXQUFXLEVBRVgsU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUF3Qyx3QkFBd0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBR2xJLE9BQU8sRUFBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0scUVBQXFFLENBQUM7QUFFdEgsT0FBTyxFQUFxQixXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdwRSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQ1MsV0FBNkIsRUFDN0IsYUFBK0I7UUFEL0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtJQUN4QyxDQUFDOzhHQUpVLHNCQUFzQjtrR0FBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQURsQyxTQUFTO21CQUFDLEVBQUMsUUFBUSxFQUFFLGlCQUFpQixFQUFDOztBQVF4Qzs7R0FFRztBQUVILE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFDUyxXQUE2QixFQUM3QixhQUErQjtRQUQvQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO0lBRXhDLENBQUM7OEdBTlUseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBRHJDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsb0JBQW9CLEVBQUM7O0FBc0IzQyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsMEJBQTBCO0lBNEVoRTs7OztnRkFJNEU7SUFFNUUsWUFDYyxjQUFtQyxFQUN2Qix1QkFBcUQsRUFDckUsa0JBQXNDO1FBRTlDLEtBQUssQ0FBQyxjQUFjLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztRQUZ2Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBbkZoRDs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU5RCxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBRXJDLGtCQUFhLEdBQUcsSUFBSSxHQUFHLENBQUM7WUFDdkMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUN2QixDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3RCLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDdkIsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN0QixDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3hCLENBQUMsQ0FBQztRQUVIOztXQUVHO1FBQ0ssbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFZeEIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFHdEIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFHckIsZUFBVSxHQUFHLEdBQUcsQ0FBQztRQUdqQiwwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFNN0IsbUJBQWMsR0FBYSxFQUFFLENBQUM7UUFHOUIsMEJBQXFCLEdBQUcsa0JBQWtCLENBQUM7UUFHM0MsZ0JBQVcsR0FBVyxJQUFJLENBQUM7UUFFbEM7O1dBRUc7UUFFSSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBR2YscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBR3hCLG9CQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFvQmpELENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixNQUFNLFlBQVksR0FBRyxDQUNuQixJQUFJLENBQUMscUJBQXFCO1lBQ3hCLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV6QixJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FDNUI7WUFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDcEIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUNsQixTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQ3pCO1lBQ0QsWUFBWTtTQUNiLENBQUMsQ0FBQyxJQUFJLENBQ1AsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUNoQixHQUFHLENBQ0QsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQ3pELENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxlQUFlO1FBRXBCLGlDQUFpQzthQUM5QixLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUN4QixhQUFhLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFDVyxZQUFZLENBQUMsUUFBMEI7UUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUNXLGVBQWUsQ0FBQyxRQUEwQjtRQUNuRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQzVELENBQUM7SUFFRCxJQUNXLElBQUksQ0FBQyxJQUF1QjtRQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUU3QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUMzQixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUN2QyxDQUFDO1FBRUYsSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN0RSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLENBQ3pELENBQUM7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0I7SUFDSCxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFDVyxXQUFXLENBQUMsS0FBYTtRQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLGVBQWUsQ0FBQyxnQkFBdUI7UUFFNUMsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLFdBQVcsRUFBRTtZQUN4QyxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsSUFBSSxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25ELE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRU0sb0JBQW9CLENBQUMsS0FBVTtRQUNwQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUU7WUFFekMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2FBQzVCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFO3FCQUN6QixTQUFTLENBQ1IsTUFBTSxDQUFDLEVBQUU7b0JBQ1AsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO3dCQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQzt3QkFDNUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUNsQztnQkFDSCxDQUFDLENBQ0YsQ0FBQzthQUNMO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLENBQUMsS0FBYSxFQUFFLE1BQVcsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO0lBQy9DLENBQUM7SUFFTSxZQUFZLENBQUMsS0FBYSxFQUFFLEtBQVk7UUFDN0MsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU0sVUFBVSxDQUFDLElBQVU7UUFDMUIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QyxJQUFJLEVBQUUsRUFBRTtZQUNOLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFTSxRQUFRLENBQUMsSUFBUztRQUN2QixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVwRSxTQUFTO1FBQ2YsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFZLEVBQUUsT0FBZTtRQUVuRCxNQUFNLElBQUksR0FBWSxFQUFFLENBQUM7UUFFekIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7UUFFeEMsS0FBSyxJQUFJLFFBQVEsR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUN0RCxNQUFNLGFBQWEsR0FBRyxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBQ3pDLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGFBQWEsR0FBRyxPQUFPLENBQUMsQ0FBQztZQUVoRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsT0FBTyxFQUFFO2dCQUMzQixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsb0JBQW9CO2FBQ3JDO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNoQjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLGdCQUFnQjtRQUN0QixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxRCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUN0RCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUN4QixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWCxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQ3BDLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQ25ELElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDN0IsVUFBVSxHQUFHLEtBQUssQ0FBQztvQkFDbkIsTUFBTTtpQkFDUDthQUNGO1lBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsRUFDRixZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUNwQyxDQUFBO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUM5QyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzhHQXRTVSxrQkFBa0I7a0dBQWxCLGtCQUFrQixxZkFQbEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzthQUNsRDtTQUNGLHlFQWdDYSxzQkFBc0IsMkJBQVMsV0FBVyxrRkEwQzFDLHlCQUF5QiwyQkFBUyxXQUFXLHdOQUhoRCxZQUFZLHVFQ3BJekIscWpNQXdKQTs7MkZEekZhLGtCQUFrQjtrQkFaOUIsU0FBUzsrQkFDRSxZQUFZLG1CQUdMLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDO3lCQUNsRDtxQkFDRjs7MEJBcUZFLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLFFBQVE7MEVBckRoQixpQkFBaUI7c0JBRHZCLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBS2hFLGNBQWM7c0JBRHBCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLO2dCQUlDLHFCQUFxQjtzQkFEM0IsS0FBSztnQkFJQyxxQkFBcUI7c0JBRDNCLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUkzQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLHFCQUFxQjtzQkFEM0IsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQU9DLE9BQU87c0JBRGIsS0FBSztnQkFJQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSztnQkFHQyxZQUFZO3NCQURsQixTQUFTO3VCQUFDLFlBQVk7Z0JBSWhCLG9CQUFvQjtzQkFEMUIsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBQztnQkE4RC9ELFlBQVk7c0JBRHRCLEtBQUs7Z0JBVUssZUFBZTtzQkFEekIsS0FBSztnQkFVSyxJQUFJO3NCQURkLEtBQUs7Z0JBc0JLLFdBQVc7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIERpcmVjdGl2ZSxcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgU2tpcFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7SURhdGFDb250ZXh0LCBJRGF0YUNvbnRleHRDb250aW51YWJsZSwgaXNDb250aW51YWJsZURhdGFDb250ZXh0fSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0JztcbmltcG9ydCB7Q2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0fSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7U2VsZWN0aW9uTW9kZWx9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9zZWxlY3Rpb24vc2VsZWN0aW9uLW1vZGVsJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtTb3J0fSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9zb3J0JztcbmltcG9ydCB7RUxERVJfREFUQV9WSUVXfSBmcm9tICcuLi8uLi9iYXNlL2VsZGVyLWRhdGEtdmlldyc7XG5pbXBvcnQge0VsZGVyRGF0YVZpZXdCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi9iYXNlL2VsZGVyLWRhdGEtdmlldy1iYXNlJztcbmltcG9ydCB7TWF0UGFnaW5hdG9yfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHtNYXRUYWJsZURhdGFDb250ZXh0QmluZGluZ0J1aWxkZXJ9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9tYXQtdGFibGUtZGF0YS1jb250ZXh0LWJpbmRpbmcnO1xuaW1wb3J0IHtFbGRlckRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyfSBmcm9tICcuLi8uLi9iYXNlL2VsZGVyLWRhdGEtdmlldy1vcHRpb25zLXByb3ZpZGVyJztcbmltcG9ydCB7QnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50c30gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnW2VsZGVyR3JpZFRpbGVdJ30pXG5leHBvcnQgY2xhc3MgRWxkZXJHcmlkVGlsZURpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZikge1xuICB9XG59XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgcHJvamVjdHMgbWFya2VkIGNvbnRlbnQgaW50byBhIHRvb2xiYXIuXG4gKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnW2VsZGVyR3JpZFRvb2xiYXJdJ30pXG5leHBvcnQgY2xhc3MgRWxkZXJHcmlkVG9vbGJhckRpcmVjdGl2ZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLWdyaWQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVMREVSX0RBVEFfVklFVyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVsZGVyR3JpZENvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJHcmlkQ29tcG9uZW50IGV4dGVuZHMgRWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIF9jb2x1bW5Db3VudCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPig0KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNpemVUb0NvbHVtbnMgPSBuZXcgTWFwKFtcbiAgICBbQnJlYWtwb2ludHMuWFNtYWxsLCAxXSxcbiAgICBbQnJlYWtwb2ludHMuU21hbGwsIDJdLFxuICAgIFtCcmVha3BvaW50cy5NZWRpdW0sIDNdLFxuICAgIFtCcmVha3BvaW50cy5MYXJnZSwgNF0sXG4gICAgW0JyZWFrcG9pbnRzLlhMYXJnZSwgNV1cbiAgXSk7XG5cbiAgLyoqXG4gICAqIExvYWQgbmV4dCBjaHVuayBhZnRlciBjdXJyZW50IGlzIGRvbmVcbiAgICovXG4gIHByaXZhdGUgbG9hZE5leHRRdWV1ZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgZGF0YVJvd3MkOiBPYnNlcnZhYmxlPGFueVtdW10+O1xuXG4gIHB1YmxpYyBjYW5Mb2FkTW9yZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHB1YmxpYyB0b3RhbCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBAQ29udGVudENoaWxkKEVsZGVyR3JpZFRpbGVEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlfSlcbiAgcHVibGljIHRpbGVUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIF90aWxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRvb2xiYXJWaXNpYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9vdGVyVmlzaWJsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGl0ZW1IZWlnaHQgPSAyNTA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3BvbnNpdmVDb2x1bW5Db3VudCA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZCgndmlydHVhbFNjcm9sbFZpZXdQb3J0Jywge3N0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyB2aXJ0dWFsU2Nyb2xsVmlld1BvcnQ6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXZhaWxhYmxlU29ydHM6IHN0cmluZ1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNvcnRUcmFuc2xhdGlvblByZWZpeCA9ICdkb2N1bWVudHMuc29ydHMuJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaGlkZGVuRmllbGQ6IHN0cmluZyA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIE5vIGxvbmdlciByZXF1aXJlZC4gSWQgaXMgYXV0b21hdGljYWxseSBwaWNrZWQgZnJvbSB0aGUgRGF0YVNvdXJjZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZEZpZWxkID0gJ2lkJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0aW9uVmlzaWJsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2VTaXplT3B0aW9ucyA9IFszMCwgNTAsIDEwMCwgMTUwLCAyMDBdO1xuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcilcbiAgcHVibGljIG1hdFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJHcmlkVG9vbGJhckRpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWV9KVxuICBwdWJsaWMgdG9vbGJhclRlbXBsYXRlUXVlcnk6IFRlbXBsYXRlUmVmPGFueT47XG4gIHByaXZhdGUgX3Rvb2xiYXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBzZWxlY3Rpb25Nb2RlbDogU2VsZWN0aW9uTW9kZWw8YW55PixcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBkYXRhVmlld09wdGlvbnNQcm92aWRlcjogRWxkZXJEYXRhVmlld09wdGlvbnNQcm92aWRlcixcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyXG4gICkge1xuICAgIHN1cGVyKHNlbGVjdGlvbk1vZGVsLCBkYXRhVmlld09wdGlvbnNQcm92aWRlcik7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZWN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIGNvbnN0IGNvbHVtbkNvdW50JCA9IChcbiAgICAgIHRoaXMucmVzcG9uc2l2ZUNvbHVtbkNvdW50XG4gICAgICAgID8gdGhpcy5yZXNwb25zaXZlQ29sdW1uKClcbiAgICAgICAgOiB0aGlzLl9jb2x1bW5Db3VudCk7XG5cbiAgICB0aGlzLmRhdGFSb3dzJCA9IGNvbWJpbmVMYXRlc3QoXG4gICAgICBbXG4gICAgICAgIHRoaXMuZGF0YUNvbnRleHQkLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKGRjID0+ICEhZGMpLFxuICAgICAgICAgIHN3aXRjaE1hcChkYyA9PiBkYy5kYXRhKVxuICAgICAgICApLFxuICAgICAgICBjb2x1bW5Db3VudCRcbiAgICAgIF0pLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoNTApLFxuICAgICAgbWFwKFxuICAgICAgICAoW2RhdGEsIGNvbHVtbnNdKSA9PiB0aGlzLmdyb3VwRm9yQ29sdW1ucyhkYXRhLCBjb2x1bW5zKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXG4gICAgTWF0VGFibGVEYXRhQ29udGV4dEJpbmRpbmdCdWlsZGVyXG4gICAgICAuc3RhcnQodGhpcy5kYXRhQ29udGV4dCQpXG4gICAgICAud2l0aFBhZ2luYXRvcihvZih0aGlzLm1hdFBhZ2luYXRvcikpXG4gICAgICAuYmluZFVudGlsKHRoaXMuZGVzdHJveSQpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0aWxlVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl90aWxlVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGlsZVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl90aWxlVGVtcGxhdGUgfHwgdGhpcy50aWxlVGVtcGxhdGVRdWVyeTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdG9vbGJhclRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5fdG9vbGJhclRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvb2xiYXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fdG9vbGJhclRlbXBsYXRlIHx8IHRoaXMudG9vbGJhclRlbXBsYXRlUXVlcnk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGEoZGF0YTogSURhdGFDb250ZXh0PGFueT4pIHtcbiAgICB0aGlzLmRhdGFDb250ZXh0JC5uZXh0KGRhdGEpO1xuXG4gICAgdGhpcy50b3RhbCQgPSBkYXRhLnRvdGFsLnBpcGUoXG4gICAgICBtYXAodG90YWwgPT4gdG90YWwgPyB0b3RhbCArICcnIDogJ+KInicpXG4gICAgKTtcblxuICAgIGlmIChpc0NvbnRpbnVhYmxlRGF0YUNvbnRleHQoZGF0YSkpIHtcbiAgICAgIHRoaXMuY2FuTG9hZE1vcmUkID0gY29tYmluZUxhdGVzdChbZGF0YS5sb2FkaW5nLCBkYXRhLmhhc01vcmVEYXRhXSkucGlwZShcbiAgICAgICAgbWFwKChbbG9hZGluZywgaGFzTW9yZURhdGFdKSA9PiAhbG9hZGluZyAmJiBoYXNNb3JlRGF0YSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FuTG9hZE1vcmUkID0gb2YoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YVNuYXBzaG90KCk6IElEYXRhQ29udGV4dENvbnRpbnVhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb250aW51YWJsZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY29sdW1uQ291bnQoY291bnQ6IG51bWJlcikge1xuICAgIHRoaXMuX2NvbHVtbkNvdW50Lm5leHQoY291bnQpO1xuICB9XG5cbiAgcHVibGljIGdldCBjb2x1bW5Db3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jb2x1bW5Db3VudC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGluU2VsZWN0aW9uTW9kZShjdXJyZW50U2VsZWN0aW9uOiBhbnlbXSk6IGJvb2xlYW4ge1xuXG4gICAgaWYgKHRoaXMuaW50ZXJhY3Rpb25Nb2RlID09PSAnc2VsZWN0aW9uJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRTZWxlY3Rpb24gJiYgY3VycmVudFNlbGVjdGlvbi5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdE1vcmVEYXRhWm9uZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGFTbmFwc2hvdC5oYXNNb3JlRGF0YVNuYXBzaG90KSB7XG5cbiAgICAgIGlmICh0aGlzLmRhdGFTbmFwc2hvdC5zbmFwc2hvdC5pc0xvYWRpbmcpIHtcbiAgICAgICAgdGhpcy5sb2FkTmV4dFF1ZXVlZCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRhdGFTbmFwc2hvdC5sb2FkTW9yZSgpXG4gICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgIGxvYWRlZCA9PiB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmxvYWROZXh0UXVldWVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkTmV4dFF1ZXVlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMucmVxdWVzdE1vcmVEYXRhWm9uZWQoZXZlbnQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2FkTmV4dFF1ZXVlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgdHJhY2tCeUZuKCk6IFRyYWNrQnlGdW5jdGlvbjxhbnk+IHtcbiAgICByZXR1cm4gKGluZGV4OiBudW1iZXIsIGVudGl0eTogYW55KSA9PiBpbmRleDtcbiAgfVxuXG4gIHB1YmxpYyB0cmFja0J5SW5kZXgoaW5kZXg6IG51bWJlciwgaXRlbXM6IGFueVtdKTogYW55IHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlU29ydChzb3J0OiBTb3J0KTogdm9pZCB7XG4gICAgY29uc3QgZGMgPSB0aGlzLmRhdGFDb250ZXh0JC5nZXRWYWx1ZSgpO1xuICAgIGlmIChkYykge1xuICAgICAgZGMuc29ydC5yZXBsYWNlU29ydHMoW3NvcnRdKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hvd1RpbGUodGlsZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRpbGUgJiYgKHRoaXMuaGlkZGVuRmllbGQgPyAhdGlsZVt0aGlzLmhpZGRlbkZpZWxkXSA6IHRydWUpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzY3JvbGxUb3AoKSB7XG4gICAgdGhpcy52aXJ0dWFsU2Nyb2xsVmlld1BvcnQuc2Nyb2xsVG9JbmRleCgwLCAnc21vb3RoJyk7XG4gIH1cblxuICBwcml2YXRlIGdyb3VwRm9yQ29sdW1ucyhub2RlczogYW55W10sIGNvbHVtbnM6IG51bWJlcik6IGFueVtdW10ge1xuXG4gICAgY29uc3Qgcm93czogYW55W11bXSA9IFtdO1xuXG4gICAgY29uc3Qgcm93Q291bnQgPSBub2Rlcy5sZW5ndGggLyBjb2x1bW5zO1xuXG4gICAgZm9yIChsZXQgcm93SW5kZXggPSAwOyByb3dJbmRleCA8IHJvd0NvdW50OyByb3dJbmRleCsrKSB7XG4gICAgICBjb25zdCByb3dTdGFydEluZGV4ID0gcm93SW5kZXggKiBjb2x1bW5zO1xuICAgICAgY29uc3Qgcm93ID0gbm9kZXMuc2xpY2Uocm93U3RhcnRJbmRleCwgcm93U3RhcnRJbmRleCArIGNvbHVtbnMpO1xuXG4gICAgICB3aGlsZSAocm93Lmxlbmd0aCA8IGNvbHVtbnMpIHtcbiAgICAgICAgcm93LnB1c2gobnVsbCk7IC8vIEZpbGwgdXAgcmVtYWluaW5nXG4gICAgICB9XG4gICAgICByb3dzLnB1c2gocm93KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcm93cztcbiAgfVxuXG4gIHByaXZhdGUgcmVzcG9uc2l2ZUNvbHVtbigpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIGNvbnN0IGJyZWFrcG9pbnRzID0gQXJyYXkuZnJvbSh0aGlzLnNpemVUb0NvbHVtbnMua2V5cygpKTtcbiAgICByZXR1cm4gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShicmVha3BvaW50cykucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIG1hcChyZXN1bHQgPT4ge1xuICAgICAgICBsZXQgYWN0aXZlU2l6ZSA9IEJyZWFrcG9pbnRzLk1lZGl1bTtcbiAgICAgICAgZm9yIChjb25zdCBxdWVyeSBvZiBPYmplY3Qua2V5cyhyZXN1bHQuYnJlYWtwb2ludHMpKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5icmVha3BvaW50c1txdWVyeV0pIHtcbiAgICAgICAgICAgIGFjdGl2ZVNpemUgPSBxdWVyeTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zaXplVG9Db2x1bW5zLmdldChhY3RpdmVTaXplKTtcbiAgICAgIH0pLFxuICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICBzdGFydFdpdGgodGhpcy5hY3RpdmVDb2x1bW5Db3VudCgpKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZlQ29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICBsZXQgY29sdW1uQ291bnQgPSAxO1xuICAgIHRoaXMuc2l6ZVRvQ29sdW1ucy5mb3JFYWNoKChjb2xzLCBtcUFsaWFzKSA9PiB7XG4gICAgICBpZiAodGhpcy5icmVha3BvaW50T2JzZXJ2ZXIuaXNNYXRjaGVkKG1xQWxpYXMpKSB7XG4gICAgICAgIGNvbHVtbkNvdW50ID0gY29scztcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY29sdW1uQ291bnQ7XG4gIH1cbn1cbiIsIjxtYXQtY2FyZCBjbGFzcz1cImZ1bGxcIlxuICAgICAgICAgIFtjbGFzcy5lbWJlZGRlZF09XCJlbWJlZGRlZFwiXG4gICAgICAgICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4+XG4gIDwhLS0gR3JpZCBCcm93c2VyIC0tPlxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmdWxsIGVsZGVyLWdyaWQtY29udGFpbmVyXCJcbiAgICAgICAqbmdJZj1cImRhdGFDb250ZXh0JCB8IGFzeW5jIGFzIGRhdGFcIlxuICAgICAgIFtlbGRlckRhdGFDb250ZXh0U2VsZWN0aW9uXT1cImRhdGFcIiAjZGF0YVNlbGVjdGlvbj1cImVsZGVyRGF0YUNvbnRleHRTZWxlY3Rpb25cIlxuICAgICAgIFtlbGRlckRhdGFDb250ZXh0U2VsZWN0aW9uTW9kZWxdPVwic2VsZWN0aW9uTW9kZWxcIlxuICA+XG4gICAgPCEtLSBUb29sYmFyIFJvdyAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhclZpc2libGVcIlxuICAgICAgICAgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWNlbnRlciBmbGV4LW5vbmUgZWxkZXItZ3JpZC10b29sYmFyXCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZsZXgtbm9uZVwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctcmlnaHQ6IDhweFwiICpuZ0lmPVwic2VsZWN0aW9uVmlzaWJsZVwiPlxuICAgICAgICA8ZWxkZXItc2VsZWN0aW9uLW1hc3Rlci1jaGVja2JveCBjbGFzcz1cImZsZXgtbm9uZVwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxMnB4XCI+PC9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gVG9vbGJhciAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0b29sYmFyVGVtcGxhdGVcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9vbGJhclRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiB0aGlzfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPGVsZGVyLXNpbmdsZS1zb3J0ICpuZ0lmPVwiYXZhaWxhYmxlU29ydHMgJiYgYXZhaWxhYmxlU29ydHMubGVuZ3RoID4gMCAmJiBkYXRhLnNvcnQuc29ydHMgfCBhc3luYyBhcyBzb3J0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFthdmFpbGFibGVTb3J0c109XCJhdmFpbGFibGVTb3J0c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zbGF0aW9uUHJlZml4XT1cInNvcnRUcmFuc2xhdGlvblByZWZpeFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3NvcnRdPVwic29ydHNbMF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgIChzb3J0Q2hhbmdlKT1cInVwZGF0ZVNvcnQoJGV2ZW50KVwiPlxuICAgICAgPC9lbGRlci1zaW5nbGUtc29ydD5cbiAgICA8L2Rpdj5cblxuICAgIDxtYXQtZGl2aWRlciAqbmdJZj1cInRvb2xiYXJWaXNpYmxlXCI+PC9tYXQtZGl2aWRlcj5cblxuICAgIDxlbGRlci1kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yIGNsYXNzPVwiZmxleC1ub25lXCIgW2RhdGFDb250ZXh0XT1cImRhdGFcIj5cbiAgICA8L2VsZGVyLWRhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3I+XG5cbiAgICA8IS0tIFtjZGtEcm9wTGlzdFNvcnRpbmdEaXNhYmxlZF09XCJ0cnVlXCIgLS0+XG4gICAgPCEtLSBjZGtEcm9wTGlzdCAtLT5cbiAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgICBjbGFzcz1cImxheW91dC1jb2wgZmxleCBlbGRlci1ncmlkLWJyb3dzZXJcIlxuICAgICAgaWQ9XCJkb2N1bWVudHMtY29udGFpbmVyXCJcbiAgICAgIFtpdGVtU2l6ZV09XCJpdGVtSGVpZ2h0XCJcbiAgICAgIFttaW5CdWZmZXJQeF09XCJpdGVtSGVpZ2h0ICogMlwiXG4gICAgICBbbWF4QnVmZmVyUHhdPVwiaXRlbUhlaWdodCAqIDNcIlxuICAgICAgI3ZpcnR1YWxTY3JvbGxWaWV3UG9ydFxuICAgICAgZWxkZXJJbmZpbml0ZVNjcm9sbFxuICAgICAgW2V2ZW50VGhyb3R0bGVdPVwiMjAwXCJcbiAgICAgIFtvZmZzZXRGYWN0b3JdPVwiMlwiXG4gICAgICBbaWdub3JlU2Nyb2xsRXZlbnRdPVwiZGF0YS5sb2FkaW5nIHwgYXN5bmNcIlxuICAgICAgW2NvbnRhaW5lcklkXT1cIidkb2N1bWVudHMtY29udGFpbmVyJ1wiIFtsaXN0ZW5Ub0hvc3RdPVwiZmFsc2VcIlxuICAgICAgKGNsb3NlVG9FbmQpPVwicmVxdWVzdE1vcmVEYXRhWm9uZWQoJGV2ZW50KVwiPlxuXG4gICAgICA8IS0tIChzY3JvbGxpbmcpPVwib25TY3JvbGxpbmcoJGV2ZW50KVwiIC0tPlxuXG4gICAgICA8ZGl2XG4gICAgICAgICpjZGtWaXJ0dWFsRm9yPVwibGV0IHJvdyBvZiBkYXRhUm93cyQ7IHRyYWNrQnk6IHRyYWNrQnlJbmRleDsgdGVtcGxhdGVDYWNoZVNpemU6IDUwXCJcbiAgICAgICAgY2xhc3M9XCJlbGRlci1ncmlkLXRpbGUtcm93XCJcbiAgICAgICAgW3N0eWxlLmhlaWdodF09XCJpdGVtSGVpZ2h0ICsgJ3B4J1wiPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRpbGUgb2Ygcm93OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cblxuICAgICAgICAgIDwhLS0gVGlsZSBDZWxsIC0tPlxuICAgICAgICAgIDxtYXQtY2FyZCBhcHBlYXJhbmNlPVwib3V0bGluZWRcIiAqbmdJZj1cInNob3dUaWxlKHRpbGUpXCIgY2xhc3M9XCJlbGRlci1ncmlkLXRpbGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbGRlci1ncmlkLXRpbGUtY29udGVudFwiXG4gICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayh0aWxlKVwiXG4gICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJvbkl0ZW1Eb3VibGVDbGljayh0aWxlKVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aWxlVGVtcGxhdGUgfHwgc2ltcGxlVGlsZVRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiB0aWxlfVwiPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICA8IS0tIE92ZXJsYXkgKFNlbGVjdGlvbikgLS0+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3Rpb25WaXNpYmxlXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGlvbk1vZGVsLnNlbGVjdGlvbiB8IGFzeW5jIGFzIHNlbGVjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLWdyaWQtdGlsZS1vdmVybGF5IGVsZGVyLWNsaWNrLXRocm91Z2hcIlxuICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmVsZGVyLWdyaWQtdGlsZS1vdmVybGF5LWhpZGRlbl09XCIhaW5TZWxlY3Rpb25Nb2RlKHNlbGVjdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmVsZGVyLWdyaWQtdGlsZS1vdmVybGF5LXZpc2libGVdPVwiaW5TZWxlY3Rpb25Nb2RlKHNlbGVjdGlvbilcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0aW9uTW9kZWwudG9nZ2xlKHRpbGUpXCIgZWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLWdyaWQtdGlsZS1jaGVja1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZWxkZXItc2VsZWN0ZWRdPVwiKHNlbGVjdGlvbk1vZGVsLm9ic2VydmVTZWxlY3Rpb24odGlsZSkgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge3soc2VsZWN0aW9uTW9kZWwub2JzZXJ2ZVNlbGVjdGlvbih0aWxlKSB8IGFzeW5jKSA/ICdjaGVja19jaXJjbGUnIDogJ3JhZGlvX2J1dHRvbl91bmNoZWNrZWQnfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9tYXQtY2FyZD5cblxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc2hvd1RpbGUodGlsZSlcIiBjbGFzcz1cImVsZGVyLWdyaWQtdGlsZS1oaWRkZW5cIj48L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG5cblxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIGNsYXNzPVwiZmxleC1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCIoZGF0YT8ubG9hZGluZyB8IGFzeW5jKSA/ICdpbmRldGVybWluYXRlJyA6ICdkZXRlcm1pbmF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIoZGF0YSAmJiAoZGF0YS5zdGF0dXMgfCBhc3luYyk/Lmhhc0Vycm9yKSA/ICd3YXJuJyA6ICdwcmltYXJ5J1wiPlxuICAgIDwvbWF0LXByb2dyZXNzLWJhcj5cblxuICAgIDwhLS0gRm9vdGVyIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLWVuZC1jZW50ZXIgZ2FwLW1kIGZsZXgtbm9uZSBlbGRlci1ncmlkLWZvb3RlclwiXG4gICAgICAgICAqbmdJZj1cImZvb3RlclZpc2libGVcIlxuICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiAxMnB4XCI+XG5cbiAgICAgIDwhLS0gQ29udGludWFibGUgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDb250aW51YWJsZVwiPlxuICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtY2FwdGlvbiBub3NlbGVjdFwiIHN0eWxlPVwiY29sb3I6IGdyYXlcIj5cbiAgICAgICAgICAgIHt7KGRhdGFTbmFwc2hvdD8uZGF0YSB8IGFzeW5jKT8ubGVuZ3RofX0gLyB7e3RvdGFsJCB8IGFzeW5jfX1cbiAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIShjYW5Mb2FkTW9yZSQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkYXRhU25hcHNob3QubG9hZE1vcmUoKVwiPlxuICAgICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd19kb3duPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBQYWdlZCAtLT5cbiAgICAgIDxtYXQtcGFnaW5hdG9yICNtYXRQYWdpbmF0b3IgKm5nSWY9XCJpc0FjdGl2ZVBhZ2VkICYmIChkYXRhQWN0aXZlUGFnZWQucGFnZSB8IGFzeW5jKSBhcyBwYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgIFtsZW5ndGhdPVwiZGF0YUNvbnRleHQ/LnRvdGFsIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgICAgW3BhZ2VJbmRleF09XCJwYWdlPy5pbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICBbcGFnZVNpemVdPVwicGFnZT8uc2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbcGFnZVNpemVPcHRpb25zXT1cInBhZ2VTaXplT3B0aW9uc1wiPlxuICAgICAgPC9tYXQtcGFnaW5hdG9yPlxuXG4gICAgICA8IS0tIExvY2FsIFNvdXJjZSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNBY3RpdmVQYWdlZCAmJiAhaXNDb250aW51YWJsZVwiPlxuICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXQtY2FwdGlvbiBub3NlbGVjdFwiIHN0eWxlPVwiY29sb3I6IGdyYXlcIj5cbiAgICAgICAgICAgIHt7KGRhdGFTbmFwc2hvdD8uZGF0YSB8IGFzeW5jKT8ubGVuZ3RofX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwvZGl2PlxuXG5cbiAgPC9kaXY+XG48L21hdC1jYXJkPlxuXG48bmctdGVtcGxhdGUgI3NpbXBsZVRpbGVUZW1wbGF0ZSBsZXQtdGlsZT5cbiAgPGRpdiAqbmdJZj1cInRpbGVcIiBjbGFzcz1cImxheW91dC1jb2wgcGxhY2UtY2VudGVyLWNlbnRlciBmbGV4XCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWVcIj5cbiAgICA8cCBjbGFzcz1cIm5vc2VsZWN0XCI+VGlsZToge3t0aWxlfX08L3A+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
312
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9ncmlkL2VsZGVyLWdyaWQvZWxkZXItZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9ncmlkL2VsZGVyLWdyaWQvZWxkZXItZ3JpZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsUUFBUSxFQUNSLFFBQVEsRUFDUixXQUFXLEVBRVgsU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUF3Qyx3QkFBd0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ2xJLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU5RyxPQUFPLEVBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxF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LEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQzs7MEJBcUZ6WSxRQUFROzswQkFDUixRQUFROzswQkFBSSxRQUFROzBFQXJEaEIsaUJBQWlCO3NCQUR2QixZQUFZO3VCQUFDLHNCQUFzQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUtoRSxjQUFjO3NCQURwQixLQUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBSUMscUJBQXFCO3NCQUQzQixTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJM0MsY0FBYztzQkFEcEIsS0FBSztnQkFJQyxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFPQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBR0MsWUFBWTtzQkFEbEIsU0FBUzt1QkFBQyxZQUFZO2dCQUloQixvQkFBb0I7c0JBRDFCLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBOEQvRCxZQUFZO3NCQUR0QixLQUFLO2dCQVVLLGVBQWU7c0JBRHpCLEtBQUs7Z0JBVUssSUFBSTtzQkFEZCxLQUFLO2dCQXNCSyxXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LCBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0lEYXRhQ29udGV4dCwgSURhdGFDb250ZXh0Q29udGludWFibGUsIGlzQ29udGludWFibGVEYXRhQ29udGV4dH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsIENka0ZpeGVkU2l6ZVZpcnR1YWxTY3JvbGwsIENka1ZpcnR1YWxGb3JPZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHtTZWxlY3Rpb25Nb2RlbH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3NlbGVjdGlvbi9zZWxlY3Rpb24tbW9kZWwnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL3NvcnQnO1xuaW1wb3J0IHtFTERFUl9EQVRBX1ZJRVd9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3JztcbmltcG9ydCB7RWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3LWJhc2UnO1xuaW1wb3J0IHtNYXRQYWdpbmF0b3J9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQge01hdFRhYmxlRGF0YUNvbnRleHRCaW5kaW5nQnVpbGRlcn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L21hdC10YWJsZS1kYXRhLWNvbnRleHQtYmluZGluZyc7XG5pbXBvcnQge0VsZGVyRGF0YVZpZXdPcHRpb25zUHJvdmlkZXJ9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3LW9wdGlvbnMtcHJvdmlkZXInO1xuaW1wb3J0IHtCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IEVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9mb3Jtcy9kaXJlY3RpdmVzL2VsZGVyLXN0b3AtZXZlbnQtcHJvcGFnYXRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IE1hdEljb25CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgRWxkZXJJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2luZmluaXRlc2Nyb2xsL2VsZGVyLWluZmluaXRlLXNjcm9sbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGF0YUNvbnRleHRTdGF0ZUluZGljYXRvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yL2RhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdERpdmlkZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IEVsZGVyU2luZ2xlU29ydENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9lbGRlci1zaW5nbGUtc29ydC9lbGRlci1zaW5nbGUtc29ydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWxkZXJTZWxlY3Rpb25NYXN0ZXJDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZWxlY3Rpb24vZWxkZXItc2VsZWN0aW9uLW1hc3Rlci1jaGVja2JveC9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhQ29udGV4dFNlbGVjdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZWxlY3Rpb24vZGF0YS1jb250ZXh0LXNlbGVjdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgTmdGb3IsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRDYXJkIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VsZGVyR3JpZFRpbGVdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyR3JpZFRpbGVEaXJlY3RpdmUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHVibGljIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYpIHtcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIHByb2plY3RzIG1hcmtlZCBjb250ZW50IGludG8gYSB0b29sYmFyLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tlbGRlckdyaWRUb29sYmFyXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckdyaWRUb29sYmFyRGlyZWN0aXZlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgcHVibGljIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWZcbiAgKSB7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlbGRlci1ncmlkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWxkZXItZ3JpZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBFTERFUl9EQVRBX1ZJRVcsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFbGRlckdyaWRDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW01hdENhcmQsIE5nSWYsIERhdGFDb250ZXh0U2VsZWN0aW9uRGlyZWN0aXZlLCBFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50LCBOZ1RlbXBsYXRlT3V0bGV0LCBFbGRlclNpbmdsZVNvcnRDb21wb25lbnQsIE1hdERpdmlkZXIsIERhdGFDb250ZXh0U3RhdGVJbmRpY2F0b3JDb21wb25lbnQsIENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCwgQ2RrRml4ZWRTaXplVmlydHVhbFNjcm9sbCwgRWxkZXJJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSwgQ2RrVmlydHVhbEZvck9mLCBOZ0ZvciwgTWF0SWNvbkJ1dHRvbiwgRWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvbkRpcmVjdGl2ZSwgTWF0SWNvbiwgTWF0UHJvZ3Jlc3NCYXIsIE1hdFBhZ2luYXRvciwgQXN5bmNQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckdyaWRDb21wb25lbnQgZXh0ZW5kcyBFbGRlckRhdGFWaWV3QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgX2NvbHVtbkNvdW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDQpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2l6ZVRvQ29sdW1ucyA9IG5ldyBNYXAoW1xuICAgIFtCcmVha3BvaW50cy5YU21hbGwsIDFdLFxuICAgIFtCcmVha3BvaW50cy5TbWFsbCwgMl0sXG4gICAgW0JyZWFrcG9pbnRzLk1lZGl1bSwgM10sXG4gICAgW0JyZWFrcG9pbnRzLkxhcmdlLCA0XSxcbiAgICBbQnJlYWtwb2ludHMuWExhcmdlLCA1XVxuICBdKTtcblxuICAvKipcbiAgICogTG9hZCBuZXh0IGNodW5rIGFmdGVyIGN1cnJlbnQgaXMgZG9uZVxuICAgKi9cbiAgcHJpdmF0ZSBsb2FkTmV4dFF1ZXVlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBkYXRhUm93cyQ6IE9ic2VydmFibGU8YW55W11bXT47XG5cbiAgcHVibGljIGNhbkxvYWRNb3JlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgcHVibGljIHRvdGFsJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJHcmlkVGlsZURpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWV9KVxuICBwdWJsaWMgdGlsZVRlbXBsYXRlUXVlcnk6IFRlbXBsYXRlUmVmPGFueT47XG4gIHByaXZhdGUgX3RpbGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdG9vbGJhclZpc2libGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb290ZXJWaXNpYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXRlbUhlaWdodCA9IDI1MDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVzcG9uc2l2ZUNvbHVtbkNvdW50ID0gdHJ1ZTtcblxuICBAVmlld0NoaWxkKCd2aXJ0dWFsU2Nyb2xsVmlld1BvcnQnLCB7c3RhdGljOiB0cnVlfSlcbiAgcHVibGljIHZpcnR1YWxTY3JvbGxWaWV3UG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhdmFpbGFibGVTb3J0czogc3RyaW5nW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc29ydFRyYW5zbGF0aW9uUHJlZml4ID0gJ2RvY3VtZW50cy5zb3J0cy4nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoaWRkZW5GaWVsZDogc3RyaW5nID0gbnVsbDtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgTm8gbG9uZ2VyIHJlcXVpcmVkLiBJZCBpcyBhdXRvbWF0aWNhbGx5IHBpY2tlZCBmcm9tIHRoZSBEYXRhU291cmNlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGlkRmllbGQgPSAnaWQnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3Rpb25WaXNpYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGFnZVNpemVPcHRpb25zID0gWzMwLCA1MCwgMTAwLCAxNTAsIDIwMF07XG4gIEBWaWV3Q2hpbGQoTWF0UGFnaW5hdG9yKVxuICBwdWJsaWMgbWF0UGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XG5cbiAgQENvbnRlbnRDaGlsZChFbGRlckdyaWRUb29sYmFyRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyB0b29sYmFyVGVtcGxhdGVRdWVyeTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHJpdmF0ZSBfdG9vbGJhclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxhbnk+LFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyOiBFbGRlckRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyLFxuICAgIHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXJcbiAgKSB7XG4gICAgc3VwZXIoc2VsZWN0aW9uTW9kZWwsIGRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlY3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgY29uc3QgY29sdW1uQ291bnQkID0gKFxuICAgICAgdGhpcy5yZXNwb25zaXZlQ29sdW1uQ291bnRcbiAgICAgICAgPyB0aGlzLnJlc3BvbnNpdmVDb2x1bW4oKVxuICAgICAgICA6IHRoaXMuX2NvbHVtbkNvdW50KTtcblxuICAgIHRoaXMuZGF0YVJvd3MkID0gY29tYmluZUxhdGVzdChcbiAgICAgIFtcbiAgICAgICAgdGhpcy5kYXRhQ29udGV4dCQucGlwZShcbiAgICAgICAgICBmaWx0ZXIoZGMgPT4gISFkYyksXG4gICAgICAgICAgc3dpdGNoTWFwKGRjID0+IGRjLmRhdGEpXG4gICAgICAgICksXG4gICAgICAgIGNvbHVtbkNvdW50JFxuICAgICAgXSkucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICBtYXAoXG4gICAgICAgIChbZGF0YSwgY29sdW1uc10pID0+IHRoaXMuZ3JvdXBGb3JDb2x1bW5zKGRhdGEsIGNvbHVtbnMpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG5cbiAgICBNYXRUYWJsZURhdGFDb250ZXh0QmluZGluZ0J1aWxkZXJcbiAgICAgIC5zdGFydCh0aGlzLmRhdGFDb250ZXh0JClcbiAgICAgIC53aXRoUGFnaW5hdG9yKG9mKHRoaXMubWF0UGFnaW5hdG9yKSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHRpbGVUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuX3RpbGVUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG5cbiAgcHVibGljIGdldCB0aWxlVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3RpbGVUZW1wbGF0ZSB8fCB0aGlzLnRpbGVUZW1wbGF0ZVF1ZXJ5O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0b29sYmFyVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl90b29sYmFyVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG9vbGJhclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl90b29sYmFyVGVtcGxhdGUgfHwgdGhpcy50b29sYmFyVGVtcGxhdGVRdWVyeTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YShkYXRhOiBJRGF0YUNvbnRleHQ8YW55Pikge1xuICAgIHRoaXMuZGF0YUNvbnRleHQkLm5leHQoZGF0YSk7XG5cbiAgICB0aGlzLnRvdGFsJCA9IGRhdGEudG90YWwucGlwZShcbiAgICAgIG1hcCh0b3RhbCA9PiB0b3RhbCA/IHRvdGFsICsgJycgOiAn4oieJylcbiAgICApO1xuXG4gICAgaWYgKGlzQ29udGludWFibGVEYXRhQ29udGV4dChkYXRhKSkge1xuICAgICAgdGhpcy5jYW5Mb2FkTW9yZSQgPSBjb21iaW5lTGF0ZXN0KFtkYXRhLmxvYWRpbmcsIGRhdGEuaGFzTW9yZURhdGFdKS5waXBlKFxuICAgICAgICBtYXAoKFtsb2FkaW5nLCBoYXNNb3JlRGF0YV0pID0+ICFsb2FkaW5nICYmIGhhc01vcmVEYXRhKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYW5Mb2FkTW9yZSQgPSBvZihmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkYXRhU25hcHNob3QoKTogSURhdGFDb250ZXh0Q29udGludWFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YUNvbnRpbnVhYmxlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjb2x1bW5Db3VudChjb3VudDogbnVtYmVyKSB7XG4gICAgdGhpcy5fY29sdW1uQ291bnQubmV4dChjb3VudCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbHVtbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbkNvdW50LmdldFZhbHVlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgaW5TZWxlY3Rpb25Nb2RlKGN1cnJlbnRTZWxlY3Rpb246IGFueVtdKTogYm9vbGVhbiB7XG5cbiAgICBpZiAodGhpcy5pbnRlcmFjdGlvbk1vZGUgPT09ICdzZWxlY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoY3VycmVudFNlbGVjdGlvbiAmJiBjdXJyZW50U2VsZWN0aW9uLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0TW9yZURhdGFab25lZChldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YVNuYXBzaG90Lmhhc01vcmVEYXRhU25hcHNob3QpIHtcblxuICAgICAgaWYgKHRoaXMuZGF0YVNuYXBzaG90LnNuYXBzaG90LmlzTG9hZGluZykge1xuICAgICAgICB0aGlzLmxvYWROZXh0UXVldWVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZGF0YVNuYXBzaG90LmxvYWRNb3JlKClcbiAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgbG9hZGVkID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMubG9hZE5leHRRdWV1ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWROZXh0UXVldWVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXF1ZXN0TW9yZURhdGFab25lZChldmVudCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvYWROZXh0UXVldWVkID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB0cmFja0J5Rm4oKTogVHJhY2tCeUZ1bmN0aW9uPGFueT4ge1xuICAgIHJldHVybiAoaW5kZXg6IG51bWJlciwgZW50aXR5OiBhbnkpID0+IGluZGV4O1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlJbmRleChpbmRleDogbnVtYmVyLCBpdGVtczogYW55W10pOiBhbnkge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVTb3J0KHNvcnQ6IFNvcnQpOiB2b2lkIHtcbiAgICBjb25zdCBkYyA9IHRoaXMuZGF0YUNvbnRleHQkLmdldFZhbHVlKCk7XG4gICAgaWYgKGRjKSB7XG4gICAgICBkYy5zb3J0LnJlcGxhY2VTb3J0cyhbc29ydF0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG93VGlsZSh0aWxlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGlsZSAmJiAodGhpcy5oaWRkZW5GaWVsZCA/ICF0aWxlW3RoaXMuaGlkZGVuRmllbGRdIDogdHJ1ZSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHNjcm9sbFRvcCgpIHtcbiAgICB0aGlzLnZpcnR1YWxTY3JvbGxWaWV3UG9ydC5zY3JvbGxUb0luZGV4KDAsICdzbW9vdGgnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ3JvdXBGb3JDb2x1bW5zKG5vZGVzOiBhbnlbXSwgY29sdW1uczogbnVtYmVyKTogYW55W11bXSB7XG5cbiAgICBjb25zdCByb3dzOiBhbnlbXVtdID0gW107XG5cbiAgICBjb25zdCByb3dDb3VudCA9IG5vZGVzLmxlbmd0aCAvIGNvbHVtbnM7XG5cbiAgICBmb3IgKGxldCByb3dJbmRleCA9IDA7IHJvd0luZGV4IDwgcm93Q291bnQ7IHJvd0luZGV4KyspIHtcbiAgICAgIGNvbnN0IHJvd1N0YXJ0SW5kZXggPSByb3dJbmRleCAqIGNvbHVtbnM7XG4gICAgICBjb25zdCByb3cgPSBub2Rlcy5zbGljZShyb3dTdGFydEluZGV4LCByb3dTdGFydEluZGV4ICsgY29sdW1ucyk7XG5cbiAgICAgIHdoaWxlIChyb3cubGVuZ3RoIDwgY29sdW1ucykge1xuICAgICAgICByb3cucHVzaChudWxsKTsgLy8gRmlsbCB1cCByZW1haW5pbmdcbiAgICAgIH1cbiAgICAgIHJvd3MucHVzaChyb3cpO1xuICAgIH1cblxuICAgIHJldHVybiByb3dzO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNwb25zaXZlQ29sdW1uKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgY29uc3QgYnJlYWtwb2ludHMgPSBBcnJheS5mcm9tKHRoaXMuc2l6ZVRvQ29sdW1ucy5rZXlzKCkpO1xuICAgIHJldHVybiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKGJyZWFrcG9pbnRzKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgIGxldCBhY3RpdmVTaXplID0gQnJlYWtwb2ludHMuTWVkaXVtO1xuICAgICAgICBmb3IgKGNvbnN0IHF1ZXJ5IG9mIE9iamVjdC5rZXlzKHJlc3VsdC5icmVha3BvaW50cykpIHtcbiAgICAgICAgICBpZiAocmVzdWx0LmJyZWFrcG9pbnRzW3F1ZXJ5XSkge1xuICAgICAgICAgICAgYWN0aXZlU2l6ZSA9IHF1ZXJ5O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNpemVUb0NvbHVtbnMuZ2V0KGFjdGl2ZVNpemUpO1xuICAgICAgfSksXG4gICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmFjdGl2ZUNvbHVtbkNvdW50KCkpXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmVDb2x1bW5Db3VudCgpOiBudW1iZXIge1xuICAgIGxldCBjb2x1bW5Db3VudCA9IDE7XG4gICAgdGhpcy5zaXplVG9Db2x1bW5zLmZvckVhY2goKGNvbHMsIG1xQWxpYXMpID0+IHtcbiAgICAgIGlmICh0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQobXFBbGlhcykpIHtcbiAgICAgICAgY29sdW1uQ291bnQgPSBjb2xzO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBjb2x1bW5Db3VudDtcbiAgfVxufVxuIiwiPG1hdC1jYXJkIGNsYXNzPVwiZnVsbFwiXG4gICAgICAgICAgW2NsYXNzLmVtYmVkZGVkXT1cImVtYmVkZGVkXCJcbiAgICAgICAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbj5cbiAgPCEtLSBHcmlkIEJyb3dzZXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGZ1bGwgZWxkZXItZ3JpZC1jb250YWluZXJcIlxuICAgICAgICpuZ0lmPVwiZGF0YUNvbnRleHQkIHwgYXN5bmMgYXMgZGF0YVwiXG4gICAgICAgW2VsZGVyRGF0YUNvbnRleHRTZWxlY3Rpb25dPVwiZGF0YVwiICNkYXRhU2VsZWN0aW9uPVwiZWxkZXJEYXRhQ29udGV4dFNlbGVjdGlvblwiXG4gICAgICAgW2VsZGVyRGF0YUNvbnRleHRTZWxlY3Rpb25Nb2RlbF09XCJzZWxlY3Rpb25Nb2RlbFwiXG4gID5cbiAgICA8IS0tIFRvb2xiYXIgUm93IC0tPlxuICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyVmlzaWJsZVwiXG4gICAgICAgICBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtY2VudGVyIGZsZXgtbm9uZSBlbGRlci1ncmlkLXRvb2xiYXJcIj5cblxuICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZmxleC1ub25lXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy1yaWdodDogOHB4XCIgKm5nSWY9XCJzZWxlY3Rpb25WaXNpYmxlXCI+XG4gICAgICAgIDxlbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94IGNsYXNzPVwiZmxleC1ub25lXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDEycHhcIj48L2VsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3g+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBUb29sYmFyIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvb2xiYXJUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b29sYmFyVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHRoaXN9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8ZWxkZXItc2luZ2xlLXNvcnQgKm5nSWY9XCJhdmFpbGFibGVTb3J0cyAmJiBhdmFpbGFibGVTb3J0cy5sZW5ndGggPiAwICYmIGRhdGEuc29ydC5zb3J0cyB8IGFzeW5jIGFzIHNvcnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2F2YWlsYWJsZVNvcnRzXT1cImF2YWlsYWJsZVNvcnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNsYXRpb25QcmVmaXhdPVwic29ydFRyYW5zbGF0aW9uUHJlZml4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydF09XCJzb3J0c1swXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKHNvcnRDaGFuZ2UpPVwidXBkYXRlU29ydCgkZXZlbnQpXCI+XG4gICAgICA8L2VsZGVyLXNpbmdsZS1zb3J0PlxuICAgIDwvZGl2PlxuXG4gICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwidG9vbGJhclZpc2libGVcIj48L21hdC1kaXZpZGVyPlxuXG4gICAgPGVsZGVyLWRhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3IgY2xhc3M9XCJmbGV4LW5vbmVcIiBbZGF0YUNvbnRleHRdPVwiZGF0YVwiPlxuICAgIDwvZWxkZXItZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvcj5cblxuICAgIDwhLS0gW2Nka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXT1cInRydWVcIiAtLT5cbiAgICA8IS0tIGNka0Ryb3BMaXN0IC0tPlxuICAgIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRcbiAgICAgIGNsYXNzPVwibGF5b3V0LWNvbCBmbGV4IGVsZGVyLWdyaWQtYnJvd3NlclwiXG4gICAgICBpZD1cImRvY3VtZW50cy1jb250YWluZXJcIlxuICAgICAgW2l0ZW1TaXplXT1cIml0ZW1IZWlnaHRcIlxuICAgICAgW21pbkJ1ZmZlclB4XT1cIml0ZW1IZWlnaHQgKiAyXCJcbiAgICAgIFttYXhCdWZmZXJQeF09XCJpdGVtSGVpZ2h0ICogM1wiXG4gICAgICAjdmlydHVhbFNjcm9sbFZpZXdQb3J0XG4gICAgICBlbGRlckluZmluaXRlU2Nyb2xsXG4gICAgICBbZXZlbnRUaHJvdHRsZV09XCIyMDBcIlxuICAgICAgW29mZnNldEZhY3Rvcl09XCIyXCJcbiAgICAgIFtpZ25vcmVTY3JvbGxFdmVudF09XCJkYXRhLmxvYWRpbmcgfCBhc3luY1wiXG4gICAgICBbY29udGFpbmVySWRdPVwiJ2RvY3VtZW50cy1jb250YWluZXInXCIgW2xpc3RlblRvSG9zdF09XCJmYWxzZVwiXG4gICAgICAoY2xvc2VUb0VuZCk9XCJyZXF1ZXN0TW9yZURhdGFab25lZCgkZXZlbnQpXCI+XG5cbiAgICAgIDwhLS0gKHNjcm9sbGluZyk9XCJvblNjcm9sbGluZygkZXZlbnQpXCIgLS0+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgKmNka1ZpcnR1YWxGb3I9XCJsZXQgcm93IG9mIGRhdGFSb3dzJDsgdHJhY2tCeTogdHJhY2tCeUluZGV4OyB0ZW1wbGF0ZUNhY2hlU2l6ZTogNTBcIlxuICAgICAgICBjbGFzcz1cImVsZGVyLWdyaWQtdGlsZS1yb3dcIlxuICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cIml0ZW1IZWlnaHQgKyAncHgnXCI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdGlsZSBvZiByb3c7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuXG4gICAgICAgICAgPCEtLSBUaWxlIENlbGwgLS0+XG4gICAgICAgICAgPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiICpuZ0lmPVwic2hvd1RpbGUodGlsZSlcIiBjbGFzcz1cImVsZGVyLWdyaWQtdGlsZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVsZGVyLWdyaWQtdGlsZS1jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKHRpbGUpXCJcbiAgICAgICAgICAgICAgICAgKGRibGNsaWNrKT1cIm9uSXRlbURvdWJsZUNsaWNrKHRpbGUpXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRpbGVUZW1wbGF0ZSB8fCBzaW1wbGVUaWxlVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHRpbGV9XCI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgIDwhLS0gT3ZlcmxheSAoU2VsZWN0aW9uKSAtLT5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGlvblZpc2libGVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uIHwgYXN5bmMgYXMgc2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItZ3JpZC10aWxlLW92ZXJsYXkgZWxkZXItY2xpY2stdGhyb3VnaFwiXG4gICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZWxkZXItZ3JpZC10aWxlLW92ZXJsYXktaGlkZGVuXT1cIiFpblNlbGVjdGlvbk1vZGUoc2VsZWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZWxkZXItZ3JpZC10aWxlLW92ZXJsYXktdmlzaWJsZV09XCJpblNlbGVjdGlvbk1vZGUoc2VsZWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3Rpb25Nb2RlbC50b2dnbGUodGlsZSlcIiBlbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItZ3JpZC10aWxlLWNoZWNrXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5lbGRlci1zZWxlY3RlZF09XCIoc2VsZWN0aW9uTW9kZWwub2JzZXJ2ZVNlbGVjdGlvbih0aWxlKSB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7eyhzZWxlY3Rpb25Nb2RlbC5vYnNlcnZlU2VsZWN0aW9uKHRpbGUpIHwgYXN5bmMpID8gJ2NoZWNrX2NpcmNsZScgOiAncmFkaW9fYnV0dG9uX3VuY2hlY2tlZCd9fVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L21hdC1jYXJkPlxuXG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFzaG93VGlsZSh0aWxlKVwiIGNsYXNzPVwiZWxkZXItZ3JpZC10aWxlLWhpZGRlblwiPjwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPC9kaXY+XG5cbiAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cblxuXG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgY2xhc3M9XCJmbGV4LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIihkYXRhPy5sb2FkaW5nIHwgYXN5bmMpID8gJ2luZGV0ZXJtaW5hdGUnIDogJ2RldGVybWluYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIihkYXRhICYmIChkYXRhLnN0YXR1cyB8IGFzeW5jKT8uaGFzRXJyb3IpID8gJ3dhcm4nIDogJ3ByaW1hcnknXCI+XG4gICAgPC9tYXQtcHJvZ3Jlc3MtYmFyPlxuXG4gICAgPCEtLSBGb290ZXIgLS0+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2UtZW5kLWNlbnRlciBnYXAtbWQgZmxleC1ub25lIGVsZGVyLWdyaWQtZm9vdGVyXCJcbiAgICAgICAgICpuZ0lmPVwiZm9vdGVyVmlzaWJsZVwiXG4gICAgICAgICBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDEycHhcIj5cblxuICAgICAgPCEtLSBDb250aW51YWJsZSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0NvbnRpbnVhYmxlXCI+XG4gICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1jYXB0aW9uIG5vc2VsZWN0XCIgc3R5bGU9XCJjb2xvcjogZ3JheVwiPlxuICAgICAgICAgICAge3soZGF0YVNuYXBzaG90Py5kYXRhIHwgYXN5bmMpPy5sZW5ndGh9fSAvIHt7dG90YWwkIHwgYXN5bmN9fVxuICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhKGNhbkxvYWRNb3JlJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRhdGFTbmFwc2hvdC5sb2FkTW9yZSgpXCI+XG4gICAgICAgICAgPG1hdC1pY29uPmtleWJvYXJkX2Fycm93X2Rvd248L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIFBhZ2VkIC0tPlxuICAgICAgPG1hdC1wYWdpbmF0b3IgI21hdFBhZ2luYXRvciAqbmdJZj1cImlzQWN0aXZlUGFnZWQgJiYgKGRhdGFBY3RpdmVQYWdlZC5wYWdlIHwgYXN5bmMpIGFzIHBhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgW2xlbmd0aF09XCJkYXRhQ29udGV4dD8udG90YWwgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICBbcGFnZUluZGV4XT1cInBhZ2U/LmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJwYWdlPy5zaXplXCJcbiAgICAgICAgICAgICAgICAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCI+XG4gICAgICA8L21hdC1wYWdpbmF0b3I+XG5cbiAgICAgIDwhLS0gTG9jYWwgU291cmNlIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0FjdGl2ZVBhZ2VkICYmICFpc0NvbnRpbnVhYmxlXCI+XG4gICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1jYXB0aW9uIG5vc2VsZWN0XCIgc3R5bGU9XCJjb2xvcjogZ3JheVwiPlxuICAgICAgICAgICAge3soZGF0YVNuYXBzaG90Py5kYXRhIHwgYXN5bmMpPy5sZW5ndGh9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPC9kaXY+XG5cblxuICA8L2Rpdj5cbjwvbWF0LWNhcmQ+XG5cbjxuZy10ZW1wbGF0ZSAjc2ltcGxlVGlsZVRlbXBsYXRlIGxldC10aWxlPlxuICA8ZGl2ICpuZ0lmPVwidGlsZVwiIGNsYXNzPVwibGF5b3V0LWNvbCBwbGFjZS1jZW50ZXItY2VudGVyIGZsZXhcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZVwiPlxuICAgIDxwIGNsYXNzPVwibm9zZWxlY3RcIj5UaWxlOiB7e3RpbGV9fTwvcD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -20,10 +20,8 @@ import { MatCardModule } from '@angular/material/card';
20
20
  import * as i0 from "@angular/core";
21
21
  export { ElderGridTileDirective, ElderGridToolbarDirective, ElderGridComponent } from './elder-grid/elder-grid.component';
22
22
  export class ElderGridModule {
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
24
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.1", ngImport: i0, type: ElderGridModule, declarations: [ElderGridComponent,
25
- ElderGridTileDirective,
26
- ElderGridToolbarDirective], imports: [CommonModule,
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
24
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.4", ngImport: i0, type: ElderGridModule, imports: [CommonModule,
27
25
  MatCommonModule,
28
26
  MatProgressBarModule,
29
27
  MatMenuModule,
@@ -34,10 +32,13 @@ export class ElderGridModule {
34
32
  TranslateModule,
35
33
  ElderDataCommonModule,
36
34
  ElderInfiniteScrollModule,
37
- ElderFormsDirectivesModule, MatPaginatorModule, MatCardModule], exports: [ElderGridComponent,
35
+ ElderFormsDirectivesModule, MatPaginatorModule, MatCardModule,
36
+ ElderGridComponent,
37
+ ElderGridTileDirective,
38
+ ElderGridToolbarDirective], exports: [ElderGridComponent,
38
39
  ElderGridTileDirective,
39
40
  ElderGridToolbarDirective] }); }
40
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderGridModule, imports: [CommonModule,
41
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderGridModule, imports: [CommonModule,
41
42
  MatCommonModule,
42
43
  MatProgressBarModule,
43
44
  MatMenuModule,
@@ -48,9 +49,10 @@ export class ElderGridModule {
48
49
  TranslateModule,
49
50
  ElderDataCommonModule,
50
51
  ElderInfiniteScrollModule,
51
- ElderFormsDirectivesModule, MatPaginatorModule, MatCardModule] }); }
52
+ ElderFormsDirectivesModule, MatPaginatorModule, MatCardModule,
53
+ ElderGridComponent] }); }
52
54
  }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderGridModule, decorators: [{
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderGridModule, decorators: [{
54
56
  type: NgModule,
55
57
  args: [{
56
58
  imports: [
@@ -65,9 +67,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
65
67
  TranslateModule,
66
68
  ElderDataCommonModule,
67
69
  ElderInfiniteScrollModule,
68
- ElderFormsDirectivesModule, MatPaginatorModule, MatCardModule
69
- ],
70
- declarations: [
70
+ ElderFormsDirectivesModule, MatPaginatorModule, MatCardModule,
71
71
  ElderGridComponent,
72
72
  ElderGridTileDirective,
73
73
  ElderGridToolbarDirective
@@ -79,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
79
79
  ]
80
80
  }]
81
81
  }] });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9ncmlkL2VsZGVyLWdyaWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hILE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFckQsT0FBTyxFQUFDLHNCQUFzQixFQUFFLHlCQUF5QixFQUFFLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFpQ3hILE1BQU0sT0FBTyxlQUFlOzhHQUFmLGVBQWU7K0dBQWYsZUFBZSxpQkFWeEIsa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0Qix5QkFBeUIsYUFyQnpCLFlBQVk7WUFFWixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLGFBQWE7WUFDYixVQUFVO1lBRVYsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGVBQWU7WUFDaEQsZUFBZSxFQUFFLGNBQWM7WUFFL0IsZUFBZTtZQUVmLGVBQWU7WUFFZixxQkFBcUI7WUFDckIseUJBQXlCO1lBQ3pCLDBCQUEwQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsYUFRN0Qsa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0Qix5QkFBeUI7K0dBR2hCLGVBQWUsWUE3QnhCLFlBQVk7WUFFWixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLGFBQWE7WUFDYixVQUFVO1lBRVYsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGVBQWU7WUFDaEQsZUFBZSxFQUFFLGNBQWM7WUFFL0IsZUFBZTtZQUVmLGVBQWU7WUFFZixxQkFBcUI7WUFDckIseUJBQXlCO1lBQ3pCLDBCQUEwQixFQUFFLGtCQUFrQixFQUFFLGFBQWE7OzJGQWFwRCxlQUFlO2tCQS9CM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFFWixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixVQUFVO3dCQUVWLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlO3dCQUNoRCxlQUFlLEVBQUUsY0FBYzt3QkFFL0IsZUFBZTt3QkFFZixlQUFlO3dCQUVmLHFCQUFxQjt3QkFDckIseUJBQXlCO3dCQUN6QiwwQkFBMEIsRUFBRSxrQkFBa0IsRUFBRSxhQUFhO3FCQUM5RDtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0Qix5QkFBeUI7cUJBQzFCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7RWxkZXJHcmlkQ29tcG9uZW50LCBFbGRlckdyaWRUaWxlRGlyZWN0aXZlLCBFbGRlckdyaWRUb29sYmFyRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLWdyaWQvZWxkZXItZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRCdXR0b25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge01hdENvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge01hdERpdmlkZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0TWVudU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQge01hdFByb2dyZXNzQmFyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHtNYXRTZWxlY3RNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQge0ExMXlNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7RHJhZ0Ryb3BNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHtTY3JvbGxpbmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtFbGRlckluZmluaXRlU2Nyb2xsTW9kdWxlfSBmcm9tICcuLi8uLi9pbmZpbml0ZXNjcm9sbC9lbGRlci1pbmZpbml0ZS1zY3JvbGwubW9kdWxlJztcbmltcG9ydCB7RWxkZXJGb3Jtc0RpcmVjdGl2ZXNNb2R1bGV9IGZyb20gJy4uLy4uL2Zvcm1zL2RpcmVjdGl2ZXMvZWxkZXItZm9ybXMtZGlyZWN0aXZlcy5tb2R1bGUnO1xuaW1wb3J0IHtFbGRlckRhdGFDb21tb25Nb2R1bGV9IGZyb20gJy4uL2NvbW1vbi9lbGRlci1kYXRhLWNvbW1vbi5tb2R1bGUnO1xuaW1wb3J0IHtNYXRQYWdpbmF0b3JNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQge01hdENhcmRNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuXG5leHBvcnQge0VsZGVyR3JpZFRpbGVEaXJlY3RpdmUsIEVsZGVyR3JpZFRvb2xiYXJEaXJlY3RpdmUsIEVsZGVyR3JpZENvbXBvbmVudH0gZnJvbSAnLi9lbGRlci1ncmlkL2VsZGVyLWdyaWQuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcblxuICAgIE1hdENvbW1vbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIEExMXlNb2R1bGUsXG5cbiAgICBNYXREaXZpZGVyTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0U2VsZWN0TW9kdWxlLCBEcmFnRHJvcE1vZHVsZSxcblxuICAgIFNjcm9sbGluZ01vZHVsZSxcblxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcblxuICAgIEVsZGVyRGF0YUNvbW1vbk1vZHVsZSxcbiAgICBFbGRlckluZmluaXRlU2Nyb2xsTW9kdWxlLFxuICAgIEVsZGVyRm9ybXNEaXJlY3RpdmVzTW9kdWxlLCBNYXRQYWdpbmF0b3JNb2R1bGUsIE1hdENhcmRNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRWxkZXJHcmlkQ29tcG9uZW50LFxuICAgIEVsZGVyR3JpZFRpbGVEaXJlY3RpdmUsXG4gICAgRWxkZXJHcmlkVG9vbGJhckRpcmVjdGl2ZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgRWxkZXJHcmlkQ29tcG9uZW50LFxuICAgIEVsZGVyR3JpZFRpbGVEaXJlY3RpdmUsXG4gICAgRWxkZXJHcmlkVG9vbGJhckRpcmVjdGl2ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyR3JpZE1vZHVsZSB7XG59XG4iXX0=
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9ncmlkL2VsZGVyLWdyaWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hILE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzVGLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFckQsT0FBTyxFQUFDLHNCQUFzQixFQUFFLHlCQUF5QixFQUFFLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUEwQnhILE1BQU0sT0FBTyxlQUFlOzhHQUFmLGVBQWU7K0dBQWYsZUFBZSxZQXRCcEIsWUFBWTtZQUNaLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLFVBQVU7WUFDVixnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZUFBZTtZQUNoRCxlQUFlLEVBQUUsY0FBYztZQUMvQixlQUFlO1lBQ2YsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsYUFBYTtZQUM3RCxrQkFBa0I7WUFDbEIsc0JBQXNCO1lBQ3RCLHlCQUF5QixhQUd6QixrQkFBa0I7WUFDbEIsc0JBQXNCO1lBQ3RCLHlCQUF5QjsrR0FHcEIsZUFBZSxZQXRCcEIsWUFBWTtZQUNaLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLFVBQVU7WUFDVixnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsZUFBZTtZQUNoRCxlQUFlLEVBQUUsY0FBYztZQUMvQixlQUFlO1lBQ2YsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsYUFBYTtZQUM3RCxrQkFBa0I7OzJGQVViLGVBQWU7a0JBeEIzQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGVBQWU7d0JBQ2hELGVBQWUsRUFBRSxjQUFjO3dCQUMvQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLDBCQUEwQixFQUFFLGtCQUFrQixFQUFFLGFBQWE7d0JBQzdELGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0Qix5QkFBeUI7cUJBQzVCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxrQkFBa0I7d0JBQ2xCLHNCQUFzQjt3QkFDdEIseUJBQXlCO3FCQUM1QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0VsZGVyR3JpZENvbXBvbmVudCwgRWxkZXJHcmlkVGlsZURpcmVjdGl2ZSwgRWxkZXJHcmlkVG9vbGJhckRpcmVjdGl2ZX0gZnJvbSAnLi9lbGRlci1ncmlkL2VsZGVyLWdyaWQuY29tcG9uZW50JztcbmltcG9ydCB7TWF0QnV0dG9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtNYXREaXZpZGVyTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdE1lbnVNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHtNYXRQcm9ncmVzc0Jhck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7TWF0U2VsZWN0TW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHtBMTF5TW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge0RyYWdEcm9wTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7U2Nyb2xsaW5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RWxkZXJJbmZpbml0ZVNjcm9sbE1vZHVsZX0gZnJvbSAnLi4vLi4vaW5maW5pdGVzY3JvbGwvZWxkZXItaW5maW5pdGUtc2Nyb2xsLm1vZHVsZSc7XG5pbXBvcnQge0VsZGVyRm9ybXNEaXJlY3RpdmVzTW9kdWxlfSBmcm9tICcuLi8uLi9mb3Jtcy9kaXJlY3RpdmVzL2VsZGVyLWZvcm1zLWRpcmVjdGl2ZXMubW9kdWxlJztcbmltcG9ydCB7RWxkZXJEYXRhQ29tbW9uTW9kdWxlfSBmcm9tICcuLi9jb21tb24vZWxkZXItZGF0YS1jb21tb24ubW9kdWxlJztcbmltcG9ydCB7TWF0UGFnaW5hdG9yTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHtNYXRDYXJkTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcblxuZXhwb3J0IHtFbGRlckdyaWRUaWxlRGlyZWN0aXZlLCBFbGRlckdyaWRUb29sYmFyRGlyZWN0aXZlLCBFbGRlckdyaWRDb21wb25lbnR9IGZyb20gJy4vZWxkZXItZ3JpZC9lbGRlci1ncmlkLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE1hdENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgIEExMXlNb2R1bGUsXG4gICAgICAgIE1hdERpdmlkZXJNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0U2VsZWN0TW9kdWxlLCBEcmFnRHJvcE1vZHVsZSxcbiAgICAgICAgU2Nyb2xsaW5nTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIEVsZGVyRGF0YUNvbW1vbk1vZHVsZSxcbiAgICAgICAgRWxkZXJJbmZpbml0ZVNjcm9sbE1vZHVsZSxcbiAgICAgICAgRWxkZXJGb3Jtc0RpcmVjdGl2ZXNNb2R1bGUsIE1hdFBhZ2luYXRvck1vZHVsZSwgTWF0Q2FyZE1vZHVsZSxcbiAgICAgICAgRWxkZXJHcmlkQ29tcG9uZW50LFxuICAgICAgICBFbGRlckdyaWRUaWxlRGlyZWN0aXZlLFxuICAgICAgICBFbGRlckdyaWRUb29sYmFyRGlyZWN0aXZlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEVsZGVyR3JpZENvbXBvbmVudCxcbiAgICAgICAgRWxkZXJHcmlkVGlsZURpcmVjdGl2ZSxcbiAgICAgICAgRWxkZXJHcmlkVG9vbGJhckRpcmVjdGl2ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJHcmlkTW9kdWxlIHtcbn1cbiJdfQ==
@@ -2,14 +2,14 @@ import { ChangeDetectionStrategy, Component, Inject, Optional } from '@angular/c
2
2
  import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
3
  import { BehaviorSubject, Subject } from 'rxjs';
4
4
  import { takeUntil } from 'rxjs/operators';
5
+ import { MatIcon } from '@angular/material/icon';
6
+ import { MatIconButton } from '@angular/material/button';
7
+ import { ElderToolbarColumnDirective } from '../../../navigation/toolbar/elder-toolbar-column.directive';
8
+ import { ElderToolbarComponent } from '../../../navigation/toolbar/toolbar/elder-toolbar.component';
9
+ import { NgIf, NgTemplateOutlet, AsyncPipe } from '@angular/common';
5
10
  import * as i0 from "@angular/core";
6
11
  import * as i1 from "@angular/material/dialog";
7
12
  import * as i2 from "../elder-master-detail.service";
8
- import * as i3 from "@angular/common";
9
- import * as i4 from "@angular/material/icon";
10
- import * as i5 from "@angular/material/button";
11
- import * as i6 from "../../../navigation/toolbar/toolbar/elder-toolbar.component";
12
- import * as i7 from "../../../navigation/toolbar/elder-toolbar-column.directive";
13
13
  export class ElderDetailDialogComponent {
14
14
  /***************************************************************************
15
15
  * *
@@ -52,12 +52,12 @@ export class ElderDetailDialogComponent {
52
52
  close() {
53
53
  this.dialogRef.close(this.entity$.getValue());
54
54
  }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderDetailDialogComponent, deps: [{ token: i1.MatDialogRef, optional: true }, { token: MAT_DIALOG_DATA, optional: true }, { token: i2.ElderMasterDetailService }], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ElderDetailDialogComponent, selector: "elder-detail-dialog", ngImport: i0, template: "<div class=\"layout-col full\" *ngIf=\"entity$ | async as entity\">\n\n <span style=\"width: 100vw;\"></span>\n\n <!-- Header Section -->\n <elder-toolbar class=\"gap-md\" >\n <button (click)=\"close()\" mat-icon-button *elderToolbarColumn=\"'left.begin'\">\n <mat-icon>close</mat-icon>\n </button>\n </elder-toolbar>\n\n <div class=\"layout-row flex gap-md\">\n <ng-container *ngTemplateOutlet=\"data.detailTemplateRef; context: {$implicit: entity}\"></ng-container>\n </div>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i6.ElderToolbarComponent, selector: "elder-toolbar", inputs: ["color"] }, { kind: "directive", type: i7.ElderToolbarColumnDirective, selector: "[elderToolbarColumn]", inputs: ["elderToolbarColumn", "elderToolbarDefault"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
55
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderDetailDialogComponent, deps: [{ token: i1.MatDialogRef, optional: true }, { token: MAT_DIALOG_DATA, optional: true }, { token: i2.ElderMasterDetailService }], target: i0.ɵɵFactoryTarget.Component }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ElderDetailDialogComponent, isStandalone: true, selector: "elder-detail-dialog", ngImport: i0, template: "<div class=\"layout-col full\" *ngIf=\"entity$ | async as entity\">\n\n <span style=\"width: 100vw;\"></span>\n\n <!-- Header Section -->\n <elder-toolbar class=\"gap-md\" >\n <button (click)=\"close()\" mat-icon-button *elderToolbarColumn=\"'left.begin'\">\n <mat-icon>close</mat-icon>\n </button>\n </elder-toolbar>\n\n <div class=\"layout-row flex gap-md\">\n <ng-container *ngTemplateOutlet=\"data.detailTemplateRef; context: {$implicit: entity}\"></ng-container>\n </div>\n\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ElderToolbarComponent, selector: "elder-toolbar", inputs: ["color"] }, { kind: "directive", type: ElderToolbarColumnDirective, selector: "[elderToolbarColumn]", inputs: ["elderToolbarColumn", "elderToolbarDefault"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
57
57
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderDetailDialogComponent, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderDetailDialogComponent, decorators: [{
59
59
  type: Component,
60
- args: [{ selector: 'elder-detail-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"layout-col full\" *ngIf=\"entity$ | async as entity\">\n\n <span style=\"width: 100vw;\"></span>\n\n <!-- Header Section -->\n <elder-toolbar class=\"gap-md\" >\n <button (click)=\"close()\" mat-icon-button *elderToolbarColumn=\"'left.begin'\">\n <mat-icon>close</mat-icon>\n </button>\n </elder-toolbar>\n\n <div class=\"layout-row flex gap-md\">\n <ng-container *ngTemplateOutlet=\"data.detailTemplateRef; context: {$implicit: entity}\"></ng-container>\n </div>\n\n</div>\n" }]
60
+ args: [{ selector: 'elder-detail-dialog', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, ElderToolbarComponent, ElderToolbarColumnDirective, MatIconButton, MatIcon, NgTemplateOutlet, AsyncPipe], template: "<div class=\"layout-col full\" *ngIf=\"entity$ | async as entity\">\n\n <span style=\"width: 100vw;\"></span>\n\n <!-- Header Section -->\n <elder-toolbar class=\"gap-md\" >\n <button (click)=\"close()\" mat-icon-button *elderToolbarColumn=\"'left.begin'\">\n <mat-icon>close</mat-icon>\n </button>\n </elder-toolbar>\n\n <div class=\"layout-row flex gap-md\">\n <ng-container *ngTemplateOutlet=\"data.detailTemplateRef; context: {$implicit: entity}\"></ng-container>\n </div>\n\n</div>\n" }]
61
61
  }], ctorParameters: () => [{ type: i1.MatDialogRef, decorators: [{
62
62
  type: Optional
63
63
  }] }, { type: undefined, decorators: [{
@@ -66,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
66
66
  type: Inject,
67
67
  args: [MAT_DIALOG_DATA]
68
68
  }] }, { type: i2.ElderMasterDetailService }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGV0YWlsLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9tYXN0ZXItZGV0YWlsL2VsZGVyLWRldGFpbC1kaWFsb2cvZWxkZXItZGV0YWlsLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9tYXN0ZXItZGV0YWlsL2VsZGVyLWRldGFpbC1kaWFsb2cvZWxkZXItZGV0YWlsLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBYSxRQUFRLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFDLGVBQWUsRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBY3pDLE1BQU0sT0FBTywwQkFBMEI7SUFXckM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ3FCLFNBQW1ELEVBQzFCLElBQStCLEVBQ25FLG1CQUFnRDtRQUZyQyxjQUFTLEdBQVQsU0FBUyxDQUEwQztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUEyQjtRQUNuRSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTZCO1FBbEIxRDs7OztvRkFJNEU7UUFFM0QsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFJLElBQUksQ0FBQyxDQUFDO1FBYXJELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZO2FBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLEtBQUs7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs4R0FsRFUsMEJBQTBCLDhEQW1CZixlQUFlO2tHQW5CMUIsMEJBQTBCLDJEQ2xCdkMsOGZBZ0JBOzsyRkRFYSwwQkFBMEI7a0JBTnRDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OzBCQW9CNUMsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT3B0aW9uYWwsIFRlbXBsYXRlUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWZ9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0VsZGVyTWFzdGVyRGV0YWlsU2VydmljZX0gZnJvbSAnLi4vZWxkZXItbWFzdGVyLWRldGFpbC5zZXJ2aWNlJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVsZGVyRGV0YWlsRGlhbG9nT3B0aW9uczxUID0gYW55PiB7XG4gIGVudGl0eTogVCxcbiAgZGV0YWlsVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT5cbn1cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1kZXRhaWwtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLWRldGFpbC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1kZXRhaWwtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRGV0YWlsRGlhbG9nQ29tcG9uZW50PFQgPSBhbnk+IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFQ+KG51bGwpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxFbGRlckRldGFpbERpYWxvZ0NvbXBvbmVudD4sXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBJRWxkZXJEZXRhaWxEaWFsb2dPcHRpb25zLFxuICAgIHByaXZhdGUgbWFzdGVyRGV0YWlsU2VydmljZTogRWxkZXJNYXN0ZXJEZXRhaWxTZXJ2aWNlPFQ+XG4gICkge1xuICAgIHRoaXMubWFzdGVyRGV0YWlsU2VydmljZS5jdXJyZW50SXRlbSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiBpdGVtID0+IHtcbiAgICAgICAgICB0aGlzLmVudGl0eSQubmV4dChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGNsb3NlKCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZW50aXR5JC5nZXRWYWx1ZSgpKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbFwiICpuZ0lmPVwiZW50aXR5JCB8IGFzeW5jIGFzIGVudGl0eVwiPlxuXG4gIDxzcGFuIHN0eWxlPVwid2lkdGg6IDEwMHZ3O1wiPjwvc3Bhbj5cblxuICA8IS0tIEhlYWRlciBTZWN0aW9uIC0tPlxuICA8ZWxkZXItdG9vbGJhciBjbGFzcz1cImdhcC1tZFwiID5cbiAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgbWF0LWljb24tYnV0dG9uICplbGRlclRvb2xiYXJDb2x1bW49XCInbGVmdC5iZWdpbidcIj5cbiAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZWxkZXItdG9vbGJhcj5cblxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBmbGV4IGdhcC1tZFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRhLmRldGFpbFRlbXBsYXRlUmVmOyBjb250ZXh0OiB7JGltcGxpY2l0OiBlbnRpdHl9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGV0YWlsLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9tYXN0ZXItZGV0YWlsL2VsZGVyLWRldGFpbC1kaWFsb2cvZWxkZXItZGV0YWlsLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9tYXN0ZXItZGV0YWlsL2VsZGVyLWRldGFpbC1kaWFsb2cvZWxkZXItZGV0YWlsLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBYSxRQUFRLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFDLGVBQWUsRUFBZSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxlQUFlLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFnQnBFLE1BQU0sT0FBTywwQkFBMEI7SUFXckM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ3FCLFNBQW1ELEVBQzFCLElBQStCLEVBQ25FLG1CQUFnRDtRQUZyQyxjQUFTLEdBQVQsU0FBUyxDQUEwQztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUEyQjtRQUNuRSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQTZCO1FBbEIxRDs7OztvRkFJNEU7UUFFM0QsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDaEMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFJLElBQUksQ0FBQyxDQUFDO1FBYXJELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZO2FBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLEtBQUs7UUFDVixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs4R0FsRFUsMEJBQTBCLDhEQW1CZixlQUFlO2tHQW5CMUIsMEJBQTBCLCtFQ3pCdkMsOGZBZ0JBLDBERE9jLElBQUksNkZBQUUscUJBQXFCLDZFQUFFLDJCQUEyQix3SEFBRSxhQUFhLDZGQUFFLE9BQU8sMklBQUUsZ0JBQWdCLCtJQUFFLFNBQVM7OzJGQUU5RywwQkFBMEI7a0JBUnRDLFNBQVM7K0JBQ0kscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLDJCQUEyQixFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDOzswQkFvQnZILFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBUZW1wbGF0ZVJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtFbGRlck1hc3RlckRldGFpbFNlcnZpY2V9IGZyb20gJy4uL2VsZGVyLW1hc3Rlci1kZXRhaWwuc2VydmljZSc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0SWNvbkJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBFbGRlclRvb2xiYXJDb2x1bW5EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9uYXZpZ2F0aW9uL3Rvb2xiYXIvZWxkZXItdG9vbGJhci1jb2x1bW4uZGlyZWN0aXZlJztcbmltcG9ydCB7IEVsZGVyVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL25hdmlnYXRpb24vdG9vbGJhci90b29sYmFyL2VsZGVyLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVsZGVyRGV0YWlsRGlhbG9nT3B0aW9uczxUID0gYW55PiB7XG4gIGVudGl0eTogVCxcbiAgZGV0YWlsVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT5cbn1cblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VsZGVyLWRldGFpbC1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1kZXRhaWwtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lbGRlci1kZXRhaWwtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgRWxkZXJUb29sYmFyQ29tcG9uZW50LCBFbGRlclRvb2xiYXJDb2x1bW5EaXJlY3RpdmUsIE1hdEljb25CdXR0b24sIE1hdEljb24sIE5nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJEZXRhaWxEaWFsb2dDb21wb25lbnQ8VCA9IGFueT4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VD4obnVsbCk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEVsZGVyRGV0YWlsRGlhbG9nQ29tcG9uZW50PixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IElFbGRlckRldGFpbERpYWxvZ09wdGlvbnMsXG4gICAgcHJpdmF0ZSBtYXN0ZXJEZXRhaWxTZXJ2aWNlOiBFbGRlck1hc3RlckRldGFpbFNlcnZpY2U8VD5cbiAgKSB7XG4gICAgdGhpcy5tYXN0ZXJEZXRhaWxTZXJ2aWNlLmN1cnJlbnRJdGVtJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IGl0ZW0gPT4ge1xuICAgICAgICAgIHRoaXMuZW50aXR5JC5uZXh0KGl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY2xvc2UoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5lbnRpdHkkLmdldFZhbHVlKCkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmdWxsXCIgKm5nSWY9XCJlbnRpdHkkIHwgYXN5bmMgYXMgZW50aXR5XCI+XG5cbiAgPHNwYW4gc3R5bGU9XCJ3aWR0aDogMTAwdnc7XCI+PC9zcGFuPlxuXG4gIDwhLS0gSGVhZGVyIFNlY3Rpb24gLS0+XG4gIDxlbGRlci10b29sYmFyIGNsYXNzPVwiZ2FwLW1kXCIgPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlKClcIiBtYXQtaWNvbi1idXR0b24gKmVsZGVyVG9vbGJhckNvbHVtbj1cIidsZWZ0LmJlZ2luJ1wiPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9lbGRlci10b29sYmFyPlxuXG4gIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IGZsZXggZ2FwLW1kXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGEuZGV0YWlsVGVtcGxhdGVSZWY7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGVudGl0eX1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
@@ -39,11 +39,14 @@ export class ElderDetailDirective {
39
39
  this.destroy$.next();
40
40
  this.destroy$.complete();
41
41
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderDetailDirective, deps: [{ token: i1.ElderMasterDetailService }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
43
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: ElderDetailDirective, selector: "[elderDataDetail]", ngImport: i0 }); }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderDetailDirective, deps: [{ token: i1.ElderMasterDetailService }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
43
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.4", type: ElderDetailDirective, isStandalone: true, selector: "[elderDataDetail]", ngImport: i0 }); }
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderDetailDirective, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ElderDetailDirective, decorators: [{
46
46
  type: Directive,
47
- args: [{ selector: '[elderDataDetail]' }]
47
+ args: [{
48
+ selector: '[elderDataDetail]',
49
+ standalone: true
50
+ }]
48
51
  }], ctorParameters: () => [{ type: i1.ElderMasterDetailService }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGV0YWlsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L21hc3Rlci1kZXRhaWwvZWxkZXItZGV0YWlsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUEyQyxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUMsZUFBZSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFHekMsTUFBTSxPQUFPLG9CQUFvQjtJQWEvQjs7OztnRkFJNEU7SUFFNUUsWUFDVSxtQkFBZ0QsRUFDakQsV0FBNkIsRUFDN0IsYUFBK0I7UUFGOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUE2QjtRQUNqRCxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBcEJ4Qzs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVwRCxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBSSxJQUFJLENBQUMsQ0FBQztRQUNqRCxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQWE5QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWTthQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNuQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQTFDVSxvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFEaEMsU0FBUzttQkFBQyxFQUFDLFFBQVEsRUFBRSxtQkFBbUIsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RWxkZXJNYXN0ZXJEZXRhaWxTZXJ2aWNlfSBmcm9tICcuL2VsZGVyLW1hc3Rlci1kZXRhaWwuc2VydmljZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7dGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAnW2VsZGVyRGF0YURldGFpbF0nfSlcbmV4cG9ydCBjbGFzcyBFbGRlckRldGFpbERpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmVEZXRhaWxJdGVtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWFzdGVyRGV0YWlsU2VydmljZTogRWxkZXJNYXN0ZXJEZXRhaWxTZXJ2aWNlPFQ+LFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZlxuICApIHtcbiAgICB0aGlzLm1hc3RlckRldGFpbFNlcnZpY2UuY3VycmVudEl0ZW0kXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogaXRlbSA9PiB7XG4gICAgICAgICAgdGhpcy5hY3RpdmVEZXRhaWxJdGVtJC5uZXh0KGl0ZW0pXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGV0YWlsLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L21hc3Rlci1kZXRhaWwvZWxkZXItZGV0YWlsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUEyQyxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUMsZUFBZSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFNekMsTUFBTSxPQUFPLG9CQUFvQjtJQWEvQjs7OztnRkFJNEU7SUFFNUUsWUFDVSxtQkFBZ0QsRUFDakQsV0FBNkIsRUFDN0IsYUFBK0I7UUFGOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUE2QjtRQUNqRCxnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBcEJ4Qzs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVwRCxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBSSxJQUFJLENBQUMsQ0FBQztRQUNqRCxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQWE5QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWTthQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNuQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQTFDVSxvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgT25EZXN0cm95LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyTWFzdGVyRGV0YWlsU2VydmljZX0gZnJvbSAnLi9lbGRlci1tYXN0ZXItZGV0YWlsLnNlcnZpY2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tlbGRlckRhdGFEZXRhaWxdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRGV0YWlsRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSlcblxuICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2ZURldGFpbEl0ZW0kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtYXN0ZXJEZXRhaWxTZXJ2aWNlOiBFbGRlck1hc3RlckRldGFpbFNlcnZpY2U8VD4sXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuICAgIHRoaXMubWFzdGVyRGV0YWlsU2VydmljZS5jdXJyZW50SXRlbSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiBpdGVtID0+IHtcbiAgICAgICAgICB0aGlzLmFjdGl2ZURldGFpbEl0ZW0kLm5leHQoaXRlbSlcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=