@elderbyte/ngx-starter 18.2.0 → 18.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/esm2022/lib/common/data/datasource/local/local-list-data-source.mjs +5 -3
  2. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +3 -3
  3. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +3 -3
  4. package/esm2022/lib/common/forms/elder-from-field-base.mjs +3 -3
  5. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +3 -3
  6. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +3 -3
  7. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +3 -3
  8. package/esm2022/lib/common/forms/form-field-base.component.mjs +3 -3
  9. package/esm2022/lib/common/forms/multi-model-base.component.mjs +3 -3
  10. package/esm2022/lib/common/forms/template-composite-control.mjs +3 -3
  11. package/esm2022/lib/common/forms/value-accessor-base.mjs +3 -3
  12. package/esm2022/lib/common/http/http-client-builder.service.mjs +3 -3
  13. package/esm2022/lib/common/http/http-client-pristine.mjs +3 -3
  14. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +3 -3
  15. package/esm2022/lib/common/objects.mjs +4 -2
  16. package/esm2022/lib/common/url/elder-router.service.mjs +3 -3
  17. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +3 -3
  18. package/esm2022/lib/common/utils/sort-util.mjs +13 -1
  19. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +3 -3
  20. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +4 -4
  21. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +3 -3
  22. package/esm2022/lib/components/auditing/elder-audit.module.mjs +4 -4
  23. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +10 -10
  24. package/esm2022/lib/components/badge/elder-badge.directive.mjs +3 -3
  25. package/esm2022/lib/components/badge/elder-badge.module.mjs +4 -4
  26. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -3
  27. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +4 -4
  28. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +3 -3
  29. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +3 -3
  30. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +4 -4
  31. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +4 -4
  32. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -3
  33. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +18 -18
  34. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +4 -4
  35. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +3 -3
  36. package/esm2022/lib/components/chips/elder-chips.module.mjs +4 -4
  37. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +4 -4
  38. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +3 -3
  39. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +3 -3
  40. package/esm2022/lib/components/containers/elder-containers.module.mjs +4 -4
  41. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +3 -3
  42. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +3 -3
  43. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +3 -3
  44. package/esm2022/lib/components/csv/elder-csv.module.mjs +4 -4
  45. package/esm2022/lib/components/currency/elder-currency.module.mjs +4 -4
  46. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +3 -3
  47. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +4 -4
  48. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +3 -3
  49. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +3 -3
  50. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +3 -3
  51. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
  52. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +3 -3
  53. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +3 -3
  54. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-context.mjs +30 -0
  55. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-dc.directive.mjs +57 -0
  56. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort.mjs +69 -0
  57. package/esm2022/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.mjs +87 -0
  58. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +3 -3
  59. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +19 -5
  60. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +6 -6
  61. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +3 -3
  62. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +3 -3
  63. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +3 -3
  64. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +19 -19
  65. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +4 -4
  66. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +3 -3
  67. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +3 -3
  68. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +3 -3
  69. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +3 -3
  70. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +4 -4
  71. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +3 -3
  72. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +3 -3
  73. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +3 -3
  74. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +4 -4
  75. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +3 -3
  76. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +3 -3
  77. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +3 -3
  78. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +3 -3
  79. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +3 -3
  80. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +4 -4
  81. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +3 -3
  82. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +3 -3
  83. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +3 -3
  84. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +3 -3
  85. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +3 -3
  86. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +4 -4
  87. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +3 -3
  88. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +3 -3
  89. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +4 -4
  90. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +3 -3
  91. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +3 -3
  92. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +3 -3
  93. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +3 -3
  94. package/esm2022/lib/components/errors/elder-error.module.mjs +4 -4
  95. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +3 -3
  96. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +3 -3
  97. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +4 -4
  98. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -3
  99. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +3 -3
  100. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +3 -3
  101. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +3 -3
  102. package/esm2022/lib/components/files/elder-file-select.directive.mjs +3 -3
  103. package/esm2022/lib/components/files/elder-file.module.mjs +4 -4
  104. package/esm2022/lib/components/files/file-select/file-select.component.mjs +3 -3
  105. package/esm2022/lib/components/files/file-system-api.mjs +7 -3
  106. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +3 -3
  107. package/esm2022/lib/components/files/listing/file-entry.mjs +7 -6
  108. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +3 -3
  109. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +3 -3
  110. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +3 -3
  111. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +3 -3
  112. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +3 -3
  113. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +3 -3
  114. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +3 -3
  115. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +3 -3
  116. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +4 -4
  117. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +3 -3
  118. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +3 -3
  119. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +3 -3
  120. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +3 -3
  121. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +3 -3
  122. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +3 -3
  123. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +3 -3
  124. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +3 -3
  125. package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +3 -3
  126. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +3 -3
  127. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +3 -3
  128. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +3 -3
  129. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +3 -3
  130. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +3 -3
  131. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +3 -3
  132. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +3 -3
  133. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +3 -3
  134. package/esm2022/lib/components/forms/elder-forms.module.mjs +4 -4
  135. package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +3 -3
  136. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +3 -3
  137. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +3 -3
  138. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +3 -3
  139. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +3 -3
  140. package/esm2022/lib/components/forms/search/elder-search.module.mjs +4 -4
  141. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +3 -3
  142. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +3 -3
  143. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +3 -3
  144. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +4 -4
  145. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +3 -3
  146. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +3 -3
  147. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -4
  148. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +3 -3
  149. package/esm2022/lib/components/headers/elder-header.module.mjs +4 -4
  150. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +3 -3
  151. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +4 -4
  152. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +3 -3
  153. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +3 -3
  154. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +3 -3
  155. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +4 -4
  156. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +3 -3
  157. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +3 -3
  158. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +3 -3
  159. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +3 -3
  160. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +3 -3
  161. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +3 -3
  162. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +4 -4
  163. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +3 -3
  164. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +3 -3
  165. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +4 -4
  166. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +3 -3
  167. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +3 -3
  168. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +4 -4
  169. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +3 -3
  170. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +3 -3
  171. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +3 -3
  172. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +3 -3
  173. package/esm2022/lib/components/iframes/iframe.service.mjs +3 -3
  174. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +3 -3
  175. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +4 -4
  176. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +4 -4
  177. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +6 -6
  178. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +3 -3
  179. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +3 -3
  180. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +4 -4
  181. package/esm2022/lib/components/labels/elder-labels.module.mjs +4 -4
  182. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +3 -3
  183. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +3 -3
  184. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +3 -3
  185. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +3 -3
  186. package/esm2022/lib/components/measures/elder-measures.module.mjs +8 -8
  187. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +3 -3
  188. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +4 -4
  189. package/esm2022/lib/components/measures/elder-unit.service.mjs +3 -3
  190. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +3 -3
  191. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +3 -3
  192. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +3 -3
  193. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +3 -3
  194. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +4 -4
  195. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +3 -3
  196. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +4 -4
  197. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +4 -4
  198. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +3 -3
  199. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +3 -3
  200. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -3
  201. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +3 -3
  202. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +4 -4
  203. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +3 -3
  204. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +3 -3
  205. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +3 -3
  206. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +3 -3
  207. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +3 -3
  208. package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +3 -3
  209. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +3 -3
  210. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +3 -3
  211. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +4 -4
  212. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +3 -3
  213. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +3 -3
  214. package/esm2022/lib/components/panels/elder-panel.module.mjs +4 -4
  215. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +3 -3
  216. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +3 -3
  217. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +9 -9
  218. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +3 -3
  219. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +4 -4
  220. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +3 -3
  221. package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +3 -3
  222. package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +3 -3
  223. package/esm2022/lib/components/select/elder-select-base.mjs +7 -5
  224. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +9 -9
  225. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +3 -3
  226. package/esm2022/lib/components/select/elder-select-value.directive.mjs +3 -3
  227. package/esm2022/lib/components/select/elder-select.module.mjs +4 -4
  228. package/esm2022/lib/components/select/filter/elder-chips-include-exclude.directive.mjs +3 -3
  229. package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +3 -3
  230. package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +3 -3
  231. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +3 -3
  232. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +3 -3
  233. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +5 -5
  234. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +3 -3
  235. package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +3 -3
  236. package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +3 -3
  237. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +3 -3
  238. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +3 -3
  239. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
  240. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +3 -3
  241. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +3 -3
  242. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +3 -3
  243. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +3 -3
  244. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +4 -4
  245. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +3 -3
  246. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +3 -3
  247. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +3 -3
  248. package/esm2022/lib/components/shell/elder-shell.module.mjs +4 -4
  249. package/esm2022/lib/components/shell/elder-shell.service.mjs +3 -3
  250. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +3 -3
  251. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +12 -12
  252. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +3 -3
  253. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +3 -3
  254. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +3 -3
  255. package/esm2022/lib/components/tabs/elder-tab.module.mjs +4 -4
  256. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +3 -3
  257. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +3 -3
  258. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +3 -3
  259. package/esm2022/lib/components/theme/elder-theme.directive.mjs +3 -3
  260. package/esm2022/lib/components/theme/elder-theme.module.mjs +4 -4
  261. package/esm2022/lib/components/theme/elder-theme.service.mjs +3 -3
  262. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +3 -3
  263. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +3 -3
  264. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +3 -3
  265. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +3 -3
  266. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +3 -3
  267. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +4 -4
  268. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +3 -3
  269. package/esm2022/lib/components/time/elder-time.module.mjs +4 -4
  270. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +3 -3
  271. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +3 -3
  272. package/esm2022/lib/components/toasts/elder-toast.module.mjs +4 -4
  273. package/esm2022/lib/components/toasts/elder-toast.service.mjs +3 -3
  274. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +3 -3
  275. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +4 -4
  276. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +3 -3
  277. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +3 -3
  278. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +4 -4
  279. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +3 -3
  280. package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +3 -3
  281. package/esm2022/lib/features/kafent/access-token-provider.mjs +3 -3
  282. package/esm2022/lib/features/kafent/kafent-config.mjs +3 -3
  283. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +3 -3
  284. package/esm2022/lib/features/kafent/kafent-event.service.mjs +3 -3
  285. package/esm2022/lib/features/kafent/kafent.module.mjs +4 -4
  286. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +3 -3
  287. package/esm2022/lib/pipes/bytes.pipe.mjs +3 -3
  288. package/esm2022/lib/pipes/elder-pipes.module.mjs +10 -10
  289. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +3 -3
  290. package/esm2022/lib/pipes/elder-round.pipe.mjs +3 -3
  291. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +3 -3
  292. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +3 -3
  293. package/esm2022/lib/pipes/iso-duration.pipe.mjs +3 -3
  294. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +3 -3
  295. package/esm2022/lib/pipes/iso-interval.pipe.mjs +3 -3
  296. package/esm2022/lib/pipes/time-ago.pipe.mjs +3 -3
  297. package/esm2022/lib/pipes/time-duration.pipe.mjs +3 -3
  298. package/esm2022/lib/pipes/weight.pipe.mjs +3 -3
  299. package/fesm2022/elderbyte-ngx-starter.mjs +1284 -1035
  300. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  301. package/lib/common/utils/sort-util.d.ts +3 -1
  302. package/lib/components/data-view/common/composite-sort/composite-sort-context.d.ts +18 -0
  303. package/lib/components/data-view/common/composite-sort/composite-sort-dc.directive.d.ts +31 -0
  304. package/lib/components/data-view/common/composite-sort/composite-sort.d.ts +40 -0
  305. package/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.d.ts +35 -0
  306. package/lib/components/data-view/common/elder-data-common.module.d.ts +9 -4
  307. package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +4 -4
  308. package/lib/components/data-view/table/elder-table/elder-table.component.d.ts +1 -1
  309. package/lib/components/files/listing/file-entry.d.ts +3 -2
  310. package/lib/components/infinitescroll/elder-infinite-scroll.directive.d.ts +1 -1
  311. package/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.d.ts +1 -1
  312. package/lib/components/measures/elder-quantity.pipe.d.ts +1 -1
  313. package/lib/components/measures/util/elder-quantity.service.d.ts +1 -1
  314. package/package.json +1 -1
  315. package/src/lib/components/chips/_elder-chip-theme.scss +0 -1
  316. package/src/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.scss +0 -0
  317. package/src/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.scss +0 -1
  318. package/theming/_elder-mdc-support.scss +2 -3
@@ -23,8 +23,8 @@ import { ElderFormsDirectivesModule } from '../../../forms/directives/elder-form
23
23
  import * as i0 from "@angular/core";
24
24
  export { ElderSimpleSelectionViewComponent } from './elder-simple-selection-view.component';
25
25
  export class ElderSimpleSelectionViewModule {
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderSimpleSelectionViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
27
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: ElderSimpleSelectionViewModule, imports: [CommonModule, RouterModule, FormsModule,
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderSimpleSelectionViewModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
27
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: ElderSimpleSelectionViewModule, imports: [CommonModule, RouterModule, FormsModule,
28
28
  // Material
29
29
  MatDividerModule,
30
30
  MatCheckboxModule,
@@ -38,7 +38,7 @@ export class ElderSimpleSelectionViewModule {
38
38
  ElderInfiniteScrollModule,
39
39
  ElderFormsDirectivesModule,
40
40
  ElderSimpleSelectionViewComponent], exports: [ElderSimpleSelectionViewComponent] }); }
41
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderSimpleSelectionViewModule, imports: [CommonModule, RouterModule, FormsModule,
41
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderSimpleSelectionViewModule, imports: [CommonModule, RouterModule, FormsModule,
42
42
  // Material
43
43
  MatDividerModule,
44
44
  MatCheckboxModule,
@@ -52,7 +52,7 @@ export class ElderSimpleSelectionViewModule {
52
52
  ElderInfiniteScrollModule,
53
53
  ElderFormsDirectivesModule] }); }
54
54
  }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderSimpleSelectionViewModule, decorators: [{
55
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderSimpleSelectionViewModule, decorators: [{
56
56
  type: NgModule,
57
57
  args: [{
58
58
  imports: [
@@ -93,10 +93,10 @@ export class ElderDeleteActiveDirective {
93
93
  this.latestDeleteRequest = new ActiveDeleted(active, this.activation.nextCloseTo(active));
94
94
  this.requestDelete.emit(active);
95
95
  }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderDeleteActiveDirective, deps: [{ token: i1.ElderTableActivationDirective }, { token: i2.ElderDialogService }], target: i0.ɵɵFactoryTarget.Directive }); }
97
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: ElderDeleteActiveDirective, isStandalone: true, selector: "[elderDeleteActive]", inputs: { confirmDeletion: "confirmDeletion" }, outputs: { elderDeleteActive: "elderDeleteActive" }, host: { listeners: { "keydown": "onKeydown($event)" } }, exportAs: ["elderDeleteActive"], ngImport: i0 }); }
96
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderDeleteActiveDirective, deps: [{ token: i1.ElderTableActivationDirective }, { token: i2.ElderDialogService }], target: i0.ɵɵFactoryTarget.Directive }); }
97
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ElderDeleteActiveDirective, isStandalone: true, selector: "[elderDeleteActive]", inputs: { confirmDeletion: "confirmDeletion" }, outputs: { elderDeleteActive: "elderDeleteActive" }, host: { listeners: { "keydown": "onKeydown($event)" } }, exportAs: ["elderDeleteActive"], ngImport: i0 }); }
98
98
  }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderDeleteActiveDirective, decorators: [{
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderDeleteActiveDirective, decorators: [{
100
100
  type: Directive,
101
101
  args: [{
102
102
  selector: '[elderDeleteActive]',
@@ -281,10 +281,10 @@ export class ElderTableActivationDirective {
281
281
  return item;
282
282
  }
283
283
  }
284
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableActivationDirective, deps: [{ token: i1.ElderTableComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
285
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: ElderTableActivationDirective, isStandalone: true, selector: "elder-table[elderTableActivation]", inputs: { activationOptions: ["elderTableActivation", "activationOptions"], activeItem: "activeItem" }, outputs: { activeItemEventChange: "activeItemEventChange", activeItemChange: "activeItemChange" }, host: { listeners: { "keydown": "onKeydown($event)" } }, exportAs: ["elderTableActivation"], ngImport: i0 }); }
284
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableActivationDirective, deps: [{ token: i1.ElderTableComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
285
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ElderTableActivationDirective, isStandalone: true, selector: "elder-table[elderTableActivation]", inputs: { activationOptions: ["elderTableActivation", "activationOptions"], activeItem: "activeItem" }, outputs: { activeItemEventChange: "activeItemEventChange", activeItemChange: "activeItemChange" }, host: { listeners: { "keydown": "onKeydown($event)" } }, exportAs: ["elderTableActivation"], ngImport: i0 }); }
286
286
  }
287
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableActivationDirective, decorators: [{
287
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableActivationDirective, decorators: [{
288
288
  type: Directive,
289
289
  args: [{
290
290
  selector: 'elder-table[elderTableActivation]',
@@ -12,10 +12,10 @@ export class ElderNumberCellDirective {
12
12
  matSortHeader.arrowPosition = 'before';
13
13
  }
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderNumberCellDirective, deps: [{ token: i1.MatSortHeader, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
16
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: ElderNumberCellDirective, isStandalone: true, selector: "[elderNumberCell]", host: { properties: { "class.elder-number-cell": "true" } }, ngImport: i0 }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderNumberCellDirective, deps: [{ token: i1.MatSortHeader, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
16
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ElderNumberCellDirective, isStandalone: true, selector: "[elderNumberCell]", host: { properties: { "class.elder-number-cell": "true" } }, ngImport: i0 }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderNumberCellDirective, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderNumberCellDirective, decorators: [{
19
19
  type: Directive,
20
20
  args: [{
21
21
  selector: '[elderNumberCell]',
@@ -63,10 +63,10 @@ export class ElderPaginatorIntl extends MatPaginatorIntl {
63
63
  this.previousPageLabel = previousPageLabel !== this._previousPageKey ? previousPageLabel : 'Previous page';
64
64
  this.changes.next();
65
65
  }
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderPaginatorIntl, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
67
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderPaginatorIntl }); }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderPaginatorIntl, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
67
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderPaginatorIntl }); }
68
68
  }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderPaginatorIntl, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderPaginatorIntl, decorators: [{
70
70
  type: Injectable
71
71
  }], ctorParameters: () => [{ type: i1.TranslateService }] });
72
72
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcGFnaW5hdG9yLWludGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9lbGRlci1wYWdpbmF0b3ItaW50bC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFJekMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGdCQUFnQjtJQWlCdEQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1UsU0FBMkI7UUFFbkMsS0FBSyxFQUFFLENBQUM7UUFGQSxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXRCckM7Ozs7b0ZBSTRFO1FBRTNELDJCQUFzQixHQUFHLDhCQUE4QixDQUFDO1FBQ3hELHFCQUFnQixHQUFHLHdCQUF3QixDQUFDO1FBQzVDLHVCQUFrQixHQUFHLHFCQUFxQixDQUFDO1FBQzNDLGlCQUFZLEdBQUcsb0JBQW9CLENBQUM7UUFDcEMsaUJBQVksR0FBRyxvQkFBb0IsQ0FBQztRQUNwQyxxQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQztRQXNCN0Q7Ozs7b0ZBSTRFO1FBRXJFLGtCQUFhLEdBQUcsQ0FDckIsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLE1BQWMsRUFDTixFQUFFO1lBRVYsSUFBSSxNQUFNLEtBQUssQ0FBQyxJQUFJLFFBQVEsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsT0FBTyxLQUFLLElBQUksQ0FBQyx1QkFBdUIsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN2RCxDQUFDO1lBRUQsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRTdCLE1BQU0sVUFBVSxHQUFXLElBQUksR0FBRyxRQUFRLENBQUM7WUFDM0MsTUFBTSxRQUFRLEdBQVcsVUFBVSxHQUFHLE1BQU07Z0JBQzFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxRQUFRLEVBQUUsTUFBTSxDQUFDO2dCQUN6QyxDQUFDLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztZQUUxQixPQUFPLEdBQUcsVUFBVSxHQUFHLENBQUMsTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLHVCQUF1QixJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3JGLENBQUMsQ0FBQTtRQS9CQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFRLEVBQUUsRUFBRTtZQUNqRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQTRCRDs7OztnRkFJNEU7SUFFcEUsZUFBZTtRQUVyQixNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3BGLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdkUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRSxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXhFLElBQUksQ0FBQyx1QkFBdUIsR0FBRyx1QkFBdUIsS0FBSyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDeEgsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO1FBQzVHLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxLQUFLLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDakcsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDdkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDdkYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztRQUUzRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7OEdBcEZVLGtCQUFrQjtrSEFBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNYXRQYWdpbmF0b3JJbnRsfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFbGRlclBhZ2luYXRvckludGwgZXh0ZW5kcyBNYXRQYWdpbmF0b3JJbnRsIHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IF9pdGVtQ291bnRTZXBhcmF0b3JLZXkgPSAncGFnaW5hdG9yLml0ZW1Db3VudFNlcGFyYXRvcic7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2l0ZW1zUGVyUGFnZUtleSA9ICdwYWdpbmF0b3IuaXRlbXNQZXJQYWdlJztcbiAgcHJpdmF0ZSByZWFkb25seSBfZmlyc3RQYWdlTGFiZWxLZXkgPSAncGFnaW5hdG9yLmZpcnN0UGFnZSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xhc3RQYWdlS2V5ID0gJ3BhZ2luYXRvci5sYXN0UGFnZSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX25leHRQYWdlS2V5ID0gJ3BhZ2luYXRvci5uZXh0UGFnZSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ByZXZpb3VzUGFnZUtleSA9ICdwYWdpbmF0b3IucHJldmlvdXNQYWdlJztcblxuICBwcml2YXRlIGl0ZW1Db3VudFNlcGFyYXRvckxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKChlOiBFdmVudCkgPT4ge1xuICAgICAgdGhpcy50cmFuc2xhdGVMYWJlbHMoKTtcbiAgICB9KTtcblxuICAgIHRoaXMudHJhbnNsYXRlTGFiZWxzKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0UmFuZ2VMYWJlbCA9IChcbiAgICBwYWdlOiBudW1iZXIsXG4gICAgcGFnZVNpemU6IG51bWJlcixcbiAgICBsZW5ndGg6IG51bWJlclxuICApOiBzdHJpbmcgPT4ge1xuXG4gICAgaWYgKGxlbmd0aCA9PT0gMCB8fCBwYWdlU2l6ZSA9PT0gMCkge1xuICAgICAgcmV0dXJuIGAwICR7dGhpcy5pdGVtQ291bnRTZXBhcmF0b3JMYWJlbH0gJHtsZW5ndGh9YDtcbiAgICB9XG5cbiAgICBsZW5ndGggPSBNYXRoLm1heChsZW5ndGgsIDApO1xuXG4gICAgY29uc3Qgc3RhcnRJbmRleDogbnVtYmVyID0gcGFnZSAqIHBhZ2VTaXplO1xuICAgIGNvbnN0IGVuZEluZGV4OiBudW1iZXIgPSBzdGFydEluZGV4IDwgbGVuZ3RoXG4gICAgICA/IE1hdGgubWluKHN0YXJ0SW5kZXggKyBwYWdlU2l6ZSwgbGVuZ3RoKVxuICAgICAgOiBzdGFydEluZGV4ICsgcGFnZVNpemU7XG5cbiAgICByZXR1cm4gYCR7c3RhcnRJbmRleCArIDF9IC0gJHtlbmRJbmRleH0gJHt0aGlzLml0ZW1Db3VudFNlcGFyYXRvckxhYmVsfSAke2xlbmd0aH1gO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSB0cmFuc2xhdGVMYWJlbHMoKTogdm9pZCB7XG5cbiAgICBjb25zdCBpdGVtQ291bnRTZXBhcmF0b3JMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5faXRlbUNvdW50U2VwYXJhdG9yS2V5KTtcbiAgICBjb25zdCBpdGVtc1BlclBhZ2VMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5faXRlbXNQZXJQYWdlS2V5KTtcbiAgICBjb25zdCBmaXJzdFBhZ2VMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5fZmlyc3RQYWdlTGFiZWxLZXkpO1xuICAgIGNvbnN0IGxhc3RQYWdlTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuX2xhc3RQYWdlS2V5KTtcbiAgICBjb25zdCBuZXh0UGFnZUxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLl9uZXh0UGFnZUtleSk7XG4gICAgY29uc3QgcHJldmlvdXNQYWdlTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuX3ByZXZpb3VzUGFnZUtleSk7XG5cbiAgICB0aGlzLml0ZW1Db3VudFNlcGFyYXRvckxhYmVsID0gaXRlbUNvdW50U2VwYXJhdG9yTGFiZWwgIT09IHRoaXMuX2l0ZW1Db3VudFNlcGFyYXRvcktleSA/IGl0ZW1Db3VudFNlcGFyYXRvckxhYmVsIDogJ29mJztcbiAgICB0aGlzLml0ZW1zUGVyUGFnZUxhYmVsID0gaXRlbXNQZXJQYWdlTGFiZWwgIT09IHRoaXMuX2l0ZW1zUGVyUGFnZUtleSA/IGl0ZW1zUGVyUGFnZUxhYmVsIDogJ0l0ZW1zIHBlciBwYWdlJztcbiAgICB0aGlzLmZpcnN0UGFnZUxhYmVsID0gZmlyc3RQYWdlTGFiZWwgIT09IHRoaXMuX2ZpcnN0UGFnZUxhYmVsS2V5ID8gZmlyc3RQYWdlTGFiZWwgOiAnRmlyc3QgcGFnZSc7XG4gICAgdGhpcy5sYXN0UGFnZUxhYmVsID0gbGFzdFBhZ2VMYWJlbCAhPT0gdGhpcy5fbGFzdFBhZ2VLZXkgPyBsYXN0UGFnZUxhYmVsIDogJ0xhc3QgcGFnZSc7XG4gICAgdGhpcy5uZXh0UGFnZUxhYmVsID0gbmV4dFBhZ2VMYWJlbCAhPT0gdGhpcy5fbmV4dFBhZ2VLZXkgPyBuZXh0UGFnZUxhYmVsIDogJ05leHQgcGFnZSc7XG4gICAgdGhpcy5wcmV2aW91c1BhZ2VMYWJlbCA9IHByZXZpb3VzUGFnZUxhYmVsICE9PSB0aGlzLl9wcmV2aW91c1BhZ2VLZXkgPyBwcmV2aW91c1BhZ2VMYWJlbCA6ICdQcmV2aW91cyBwYWdlJztcblxuICAgIHRoaXMuY2hhbmdlcy5uZXh0KCk7XG4gIH1cblxufVxuIl19
@@ -8,10 +8,10 @@ export class ElderTableToolbarDirective {
8
8
  this.templateRef = templateRef;
9
9
  this.viewContainer = viewContainer;
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableToolbarDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
12
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: ElderTableToolbarDirective, isStandalone: true, selector: "[elderTableToolbar]", ngImport: i0 }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableToolbarDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
12
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ElderTableToolbarDirective, isStandalone: true, selector: "[elderTableToolbar]", ngImport: i0 }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableToolbarDirective, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableToolbarDirective, decorators: [{
15
15
  type: Directive,
16
16
  args: [{
17
17
  selector: '[elderTableToolbar]',
@@ -247,8 +247,8 @@ export class ElderTableComponent extends ElderDataViewBaseComponent {
247
247
  }
248
248
  });
249
249
  }
250
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableComponent, deps: [{ token: i1.ElderTableModel }, { token: i2.SelectionModel, optional: true }, { token: i3.ElderDataViewOptionsProvider, optional: true, skipSelf: true }, { token: i4.MatSort, optional: true }, { token: i5.ElderTableExtensionDirective, optional: true, skipSelf: true }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
251
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ElderTableComponent, isStandalone: true, selector: "elder-table", inputs: { idField: "idField", removingField: "removingField", hiddenField: "hiddenField", pageSizeOptions: "pageSizeOptions", keepSelection: "keepSelection", showFooter: "showFooter", toolbarTemplate: "toolbarTemplate", data: "data", displayedColumns: "displayedColumns", selectionVisible: "selectionVisible" }, providers: [
250
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableComponent, deps: [{ token: i1.ElderTableModel }, { token: i2.SelectionModel, optional: true }, { token: i3.ElderDataViewOptionsProvider, optional: true, skipSelf: true }, { token: i4.MatSort, optional: true }, { token: i5.ElderTableExtensionDirective, optional: true, skipSelf: true }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
251
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ElderTableComponent, isStandalone: true, selector: "elder-table", inputs: { idField: "idField", removingField: "removingField", hiddenField: "hiddenField", pageSizeOptions: "pageSizeOptions", keepSelection: "keepSelection", showFooter: "showFooter", toolbarTemplate: "toolbarTemplate", data: "data", displayedColumns: "displayedColumns", selectionVisible: "selectionVisible" }, providers: [
252
252
  ElderTableProviders.ExistingOrNewTableModel,
253
253
  {
254
254
  provide: ELDER_DATA_VIEW,
@@ -256,7 +256,7 @@ export class ElderTableComponent extends ElderDataViewBaseComponent {
256
256
  }
257
257
  ], queries: [{ propertyName: "columnDefs", predicate: MatColumnDef }, { propertyName: "elderColumns", predicate: ElderTableColumnDirective }, { propertyName: "rowDefs", predicate: MatRowDef }, { propertyName: "toolbarRowTemplateQuery", predicate: ElderTableToolbarDirective, read: TemplateRef }], viewQueries: [{ propertyName: "matTable", first: true, predicate: MatTable, descendants: true, static: true }, { propertyName: "matPaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "rowsQuery", predicate: ElderTableRowDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-card class=\"full\"\n [class.embedded]=\"embedded\"\n [appearance]=\"appearance\"\n style=\"overflow: hidden\"\n>\n <div class=\"layout-col elder-table full\">\n <!-- Toolbar Rows -->\n <ng-container *ngFor=\"let toolbarRowTemplate of toolbarRowTemplates$ | async\">\n <ng-template *ngTemplateOutlet=\"toolbarRowTemplate; context: {$implicit: this}\">\n </ng-template>\n </ng-container>\n\n <!-- Scrollable Table -->\n <div class=\"layout-col {{isDataValid(dataContext?.data | async) ? 'flex' : ''}} scrollable elder-table-scroll\"\n elderInfiniteScroll\n [eventThrottle]=\"150\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"!isContinuable || !(canLoadMore$ | async)\"\n (closeToEnd)=\"requestMoreDataZoned($event)\"\n >\n <table\n mat-table\n class=\"elder-mat-inner-table\"\n [trackBy]=\"trackByFn\"\n [dataSource]=\"$any(dataContext$ | async)\"\n [elderDataContextSelection]=\"dataContext$ | async\" #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n >\n\n <!-- selection Column -->\n <ng-container matColumnDef=\"select\">\n <th mat-header-cell *matHeaderCellDef>\n <elder-selection-master-checkbox></elder-selection-master-checkbox>\n </th>\n <td mat-cell *matCellDef=\"let entity\">\n <div class=\"layout-row place-start-center\">\n <mat-checkbox (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selectionModel.toggle(entity) : null\"\n [checked]=\"selectionModel.observeSelection(entity) | async\"\n [disabled]=\"!selectionModel.isSelectable(entity)\"\n class=\"elder-table-checkbox\"\n [class.elder-table-checkbox-visible]=\"(dataSelection.selectionState$ | async).anySelected\"\n >\n </mat-checkbox>\n </div>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n <ng-container *ngIf=\"(tableModel.displayedColumnsInner$ | async) as displayedColumnsInner\">\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsInner; sticky: true\"></tr>\n <tr mat-row class=\"elder-table-row\"\n *matRowDef=\"let entity; columns: displayedColumnsInner;\"\n [elderTableRow]=\"entity\"\n [class.dense]=\"dense\"\n [class.elder-row-hidden]=\"hiddenField && entity[hiddenField]\"\n [class.elder-row-removing]=\"removingField && entity[removingField]\"\n [class.elder-table-row-selected]=\"interactionMode === 'selection' && selectionModel.observeSelection(entity) | async\"\n (click)=\"onItemClick(entity)\"\n (dblclick)=\"onItemDoubleClick(entity)\"\n >\n </tr>\n <ng-container *ngIf=\"showFooter\">\n <tr mat-footer-row *matFooterRowDef=\"displayedColumnsInner; sticky: true\"></tr>\n </ng-container>\n </ng-container>\n </table>\n </div>\n\n <ng-container *ngIf=\"!isDataValid(dataContext?.data | async)\">\n <elder-data-context-state-indicator class=\"flex\" [dataContext]=\"dataContext\">\n </elder-data-context-state-indicator>\n </ng-container>\n\n <mat-progress-bar class=\"flex-none\"\n [mode]=\"(dataContext?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"((dataContext?.status | async)?.hasError) ? 'warn' : 'primary'\">\n </mat-progress-bar>\n\n <!-- Optional Paginator Toolbar -->\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 <!-- Optional Continuation Footer -->\n <div *ngIf=\"isContinuable\" class=\"layout-row flex-none place-end-center gap-md elder-table-footer\">\n\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{(dataContext?.data | async)?.length}} / {{total$ | async}}\n </span>\n\n <button mat-icon-button type=\"button\" color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataContinuable.loadMore()\">\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </div>\n </div>\n</mat-card>\n", styles: [".elder-mat-inner-table{width:100%}.elder-table-row.dense{height:42px!important}.elder-mat-table-container{border-radius:4px;overflow:hidden}.mat-column-select{overflow:initial;min-width:72px;max-width:5%;width:72px}.elder-row-removing{text-decoration:line-through}.elder-row-hidden{display:none}.elder-table-row{cursor:pointer}:host{min-width:0;min-height:0}.elder-table-hint{color:gray}.elder-table-footer{height:44px}.elder-table-checkbox{opacity:.25;-webkit-transition:opacity .5s ease-in-out;-moz-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out}.elder-table-row:hover .elder-table-checkbox{opacity:.9}.elder-table-checkbox-visible{opacity:1}\n"], dependencies: [{ kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ElderInfiniteScrollDirective, selector: "[elderInfiniteScroll]", inputs: ["listenToHost", "eventThrottle", "offsetFactor", "ignoreScrollEvent", "containerId", "scrollContainer"], outputs: ["closeToEnd", "scrolling"] }, { kind: "component", type: MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: DataContextSelectionDirective, selector: "[elderDataContextSelection]", inputs: ["elderDataContextSelectionModel", "elderDataContextSelection"], exportAs: ["elderDataContextSelection"] }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "component", type: ElderSelectionMasterCheckboxComponent, selector: "elder-selection-master-checkbox" }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "component", type: MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "directive", type: MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "component", type: MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: ElderTableRowDirective, selector: "tr[elderTableRow]", inputs: ["elderTableRow"], exportAs: ["elderTableRow"] }, { kind: "directive", type: MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "component", type: MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: DataContextStateIndicatorComponent, selector: "elder-data-context-state-indicator", inputs: ["dataContext"] }, { 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: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
258
258
  }
259
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableComponent, decorators: [{
259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableComponent, decorators: [{
260
260
  type: Component,
261
261
  args: [{ selector: 'elder-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
262
262
  ElderTableProviders.ExistingOrNewTableModel,
@@ -319,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
319
319
  }], selectionVisible: [{
320
320
  type: Input
321
321
  }] } });
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixLQUFLLEVBR0wsUUFBUSxFQUVSLFFBQVEsRUFDUixXQUFXLEVBRVgsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUN0SCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFekQsT0FBTyxFQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdk8sT0FBTyxFQUFlLGFBQWEsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRTlGLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUNsRixPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFB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Z0JBVUMsdUJBQXVCO3NCQUQ3QixlQUFlO3VCQUFDLDBCQUEwQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQztnQkFVeEQsU0FBUztzQkFEaEIsWUFBWTt1QkFBQyxzQkFBc0I7Z0JBNEZ6QixlQUFlO3NCQUR6QixLQUFLO2dCQU1LLElBQUk7c0JBRGQsS0FBSztnQkErQ0ssZ0JBQWdCO3NCQUQxQixLQUFLO2dCQVdLLGdCQUFnQjtzQkFEMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFF1ZXJ5TGlzdCxcbiAgU2tpcFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0VGFibGVEYXRhQ29udGV4dEJpbmRpbmdCdWlsZGVyfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvbWF0LXRhYmxlLWRhdGEtY29udGV4dC1iaW5kaW5nJztcbmltcG9ydCB7TWF0UGFnaW5hdG9yfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHtNYXRTb3J0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7TWF0Q29sdW1uRGVmLCBNYXRSb3dEZWYsIE1hdFRhYmxlLCBNYXRIZWFkZXJDZWxsRGVmLCBNYXRIZWFkZXJDZWxsLCBNYXRDZWxsRGVmLCBNYXRDZWxsLCBNYXRGb290ZXJDZWxsRGVmLCBNYXRGb290ZXJDZWxsLCBNYXRIZWFkZXJSb3dEZWYsIE1hdEhlYWRlclJvdywgTWF0Um93LCBNYXRGb290ZXJSb3dEZWYsIE1hdEZvb3RlclJvd30gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHtJRGF0YUNvbnRleHQsIGlzRGF0YUNvbnRleHR9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtTZWxlY3Rpb25Nb2RlbH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3NlbGVjdGlvbi9zZWxlY3Rpb24tbW9kZWwnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0Nka0NvbHVtbkRlZiwgQ2RrUm93RGVmLCBDZGtUYWJsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcbmltcG9ydCB7RGF0YUNvbnRleHRCdWlsZGVyfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJ1aWxkZXInO1xuaW1wb3J0IHtFTERFUl9EQVRBX1ZJRVd9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3JztcbmltcG9ydCB7RWxkZXJUYWJsZVJvd0RpcmVjdGl2ZX0gZnJvbSAnLi4vZWxkZXItdGFibGUtcm93LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0lEYXRhU291cmNlLCBpc0RhdGFTb3VyY2V9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtFbGRlckRhdGFWaWV3QmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vYmFzZS9lbGRlci1kYXRhLXZpZXctYmFzZSc7XG5pbXBvcnQge0VsZGVyVGFibGVNb2RlbH0gZnJvbSAnLi4vbW9kZWwvZWxkZXItdGFibGUtbW9kZWwnO1xuaW1wb3J0IHtFbGRlclRhYmxlUHJvdmlkZXJzfSBmcm9tICcuLi9tb2RlbC9lbGRlci10YWJsZS1tb2RlbC1wcm92aWRlcic7XG5pbXBvcnQge1F1ZXJ5TGlzdEJpbmRpbmd9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi91dGlscy9xdWVyeS1saXN0LWJpbmRpbmcnO1xuaW1wb3J0IHtFbGRlclRhYmxlTW9kZWxDZGtUYWJsZUJpbmRpbmd9IGZyb20gJy4uL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsLWNkay10YWJsZS1iaW5kaW5nJztcbmltcG9ydCB7RWxkZXJUYWJsZU1vZGVsUXVlcnlHcm91cH0gZnJvbSAnLi4vbW9kZWwvZWxkZXItdGFibGUtbW9kZWwtcXVlcnktZ3JvdXAnO1xuaW1wb3J0IHtFbGRlclRhYmxlRXh0ZW5zaW9uRGlyZWN0aXZlfSBmcm9tICcuLi9lbGRlci10YWJsZS1leHRlbnNpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7RWxkZXJUYWJsZUNvbHVtbkRpcmVjdGl2ZX0gZnJvbSAnLi4vZWxkZXItdGFibGUtY29sdW1uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0NvbHVtblBvc2l0aW9uU3BlY30gZnJvbSAnLi4vbW9kZWwvZWxkZXItY29sdW1uLWxheW91dCc7XG5pbXBvcnQge0VsZGVyVGFibGVUb29sYmFyRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLXRhYmxlLXRvb2xiYXIuZGlyZWN0aXZlJztcbmltcG9ydCB7RWxkZXJEYXRhVmlld09wdGlvbnNQcm92aWRlcn0gZnJvbSAnLi4vLi4vYmFzZS9lbGRlci1kYXRhLXZpZXctb3B0aW9ucy1wcm92aWRlcic7XG5pbXBvcnQge01hdEljb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtNYXRJY29uQnV0dG9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRQcm9ncmVzc0Jhcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7RGF0YUNvbnRleHRTdGF0ZUluZGljYXRvckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vY29tbW9uL2RhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3IvZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRDaGVja2JveH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHtFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50fSBmcm9tICcuLi8uLi9jb21tb24vc2VsZWN0aW9uL2VsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3gvZWxkZXItc2VsZWN0aW9uLW1hc3Rlci1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHtEYXRhQ29udGV4dFNlbGVjdGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vY29tbW9uL3NlbGVjdGlvbi9kYXRhLWNvbnRleHQtc2VsZWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VsZGVySW5maW5pdGVTY3JvbGxEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uL2luZmluaXRlc2Nyb2xsL2VsZGVyLWluZmluaXRlLXNjcm9sbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtOZ0ZvciwgTmdUZW1wbGF0ZU91dGxldCwgTmdJZiwgQXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtNYXRDYXJkfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlbGRlci10YWJsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lbGRlci10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBFbGRlclRhYmxlUHJvdmlkZXJzLkV4aXN0aW5nT3JOZXdUYWJsZU1vZGVsLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBFTERFUl9EQVRBX1ZJRVcsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFbGRlclRhYmxlQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtNYXRDYXJkLCBOZ0ZvciwgTmdUZW1wbGF0ZU91dGxldCwgRWxkZXJJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSwgTWF0VGFibGUsIERhdGFDb250ZXh0U2VsZWN0aW9uRGlyZWN0aXZlLCBNYXRDb2x1bW5EZWYsIE1hdEhlYWRlckNlbGxEZWYsIE1hdEhlYWRlckNlbGwsIEVsZGVyU2VsZWN0aW9uTWFzdGVyQ2hlY2tib3hDb21wb25lbnQsIE1hdENlbGxEZWYsIE1hdENlbGwsIE1hdENoZWNrYm94LCBNYXRGb290ZXJDZWxsRGVmLCBNYXRGb290ZXJDZWxsLCBOZ0lmLCBNYXRIZWFkZXJSb3dEZWYsIE1hdEhlYWRlclJvdywgTWF0Um93RGVmLCBNYXRSb3csIEVsZGVyVGFibGVSb3dEaXJlY3RpdmUsIE1hdEZvb3RlclJvd0RlZiwgTWF0Rm9vdGVyUm93LCBEYXRhQ29udGV4dFN0YXRlSW5kaWNhdG9yQ29tcG9uZW50LCBNYXRQcm9ncmVzc0JhciwgTWF0UGFnaW5hdG9yLCBNYXRJY29uQnV0dG9uLCBNYXRJY29uLCBBc3luY1BpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVGFibGVDb21wb25lbnQgZXh0ZW5kcyBFbGRlckRhdGFWaWV3QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIC8qKlxuICAgKiBMb2FkIG5leHQgY2h1bmsgYWZ0ZXIgY3VycmVudCBpcyBkb25lXG4gICAqL1xuICBwcml2YXRlIGxvYWROZXh0UXVldWVkID0gZmFsc2U7XG5cbiAgLy8vIFRhYmxlXG4gIEBWaWV3Q2hpbGQoTWF0VGFibGUsIHtzdGF0aWM6IHRydWV9KVxuICBwdWJsaWMgbWF0VGFibGU6IENka1RhYmxlPGFueT47XG5cbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpXG4gIHB1YmxpYyBtYXRQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tYXRTb3J0OiBNYXRTb3J0O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0Q29sdW1uRGVmKVxuICBwdWJsaWMgY29sdW1uRGVmczogUXVlcnlMaXN0PENka0NvbHVtbkRlZj47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlKVxuICBwdWJsaWMgZWxkZXJDb2x1bW5zOiBRdWVyeUxpc3Q8RWxkZXJUYWJsZUNvbHVtbkRpcmVjdGl2ZT47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNYXRSb3dEZWYpXG4gIHB1YmxpYyByb3dEZWZzOiBRdWVyeUxpc3Q8Q2RrUm93RGVmPGFueT4+O1xuXG4gIC8qKlxuICAgKiBGaWVsZCB0byBpZGVudGlmeSB0aGUgZGF0YSByZWNvcmRzIChJRCBmaWVsZCkuXG4gICAqIE5vdGU6IFRoaXMgcHJvcGVydHkgaXMgb25seSBjb25zaWRlcmVkIGluIGNhc2UgdGhlXG4gICAqIHVuZGVybHlpbmcgZGF0YSBpcyBhbiBBcnJheS5cbiAgICogSW4gY2FzZSBvZiBEYXRhQ29udGV4dCwgdGhlIElEIGZpZWxkIG5lZWRzIHRvIGJlIGRlZmluZWQgaW4gdGhlIGNvbnRleHQuXG4gICAqIEluIGNhc2Ugb2YgRGF0YVNvdXJjZSwgdGhlIElEIGZpZWxkIGlzIGF1dG9tYXRpY2FsbHkgcGlja2VkIGZyb20gdGhlIERhdGFTb3VyY2UuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWRGaWVsZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRoaXMgZmllbGQgaXMgcHJlc2VudCBhbmQgdHJ1ZSxcbiAgICogdGhlIGNvcmVzcG9uZGluZyByb3cgaXMgbWFya2VkIHRvIGJlIGluIHRoZSBwcm9jZXNzZWQgb2YgYmVpbmcgcmVtb3ZlZC5cbiAgICpcbiAgICogSS5lLiAncmVtb3ZpbmcnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVtb3ZpbmdGaWVsZDogc3RyaW5nID0gbnVsbDtcblxuICAvKipcbiAgICogV2hlbiB0aGlzIGZpZWxkIGlzIHByZXNlbnQgYW5kIHRydWUsXG4gICAqIHRoZSBjb3JyZXNwb25kaW5nIHJvdyBpcyBoaWRkZW4uXG4gICAqXG4gICAqIEkuZS4gJ2RlbGV0ZWQnXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGlkZGVuRmllbGQ6IHN0cmluZyA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2VTaXplT3B0aW9ucyA9IFszMCwgNTAsIDEwMCwgMTUwLCAyMDBdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBrZWVwU2VsZWN0aW9uID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0Zvb3RlciA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjYW5Mb2FkTW9yZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHB1YmxpYyB0b3RhbCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAvKipcbiAgICogVGhlIHRhYmxlIHRvb2xiYXJcbiAgICovXG4gIEBDb250ZW50Q2hpbGRyZW4oRWxkZXJUYWJsZVRvb2xiYXJEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZn0pXG4gIHB1YmxpYyB0b29sYmFyUm93VGVtcGxhdGVRdWVyeTogUXVlcnlMaXN0PFRlbXBsYXRlUmVmPGFueT4+O1xuICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhclJvd1RlbXBsYXRlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPGFueT5bXT4oW10pO1xuXG4gIC8qKlxuICAgKiBTZWxlY3Rpb24gbW9kZWwgbGlmZSBjeWNsZVxuICAgKi9cbiAgcHJpdmF0ZSBzZWxlY3Rpb25MaWZlQ3ljbGU6IFN1YnNjcmlwdGlvbjtcblxuICBAVmlld0NoaWxkcmVuKEVsZGVyVGFibGVSb3dEaXJlY3RpdmUpXG4gIHByaXZhdGUgcm93c1F1ZXJ5OiBRdWVyeUxpc3Q8RWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxhbnk+PjtcblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCByb3dzIG9mIHRoaXMgdGFibGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm93cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVsZGVyVGFibGVSb3dEaXJlY3RpdmU8YW55PltdPihbXSk7XG5cbiAgLyoqXG4gICAqIFRoZSBpbmRleCBvZiB0aGlzIHRhYmxlIGdyb3VwIGV4dGVuc2lvblxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfZXh0ZW5zaW9uR3JvdXBJbmRleDogbnVtYmVyO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB0YWJsZU1vZGVsOiBFbGRlclRhYmxlTW9kZWwsXG4gICAgQE9wdGlvbmFsKCkgc2VsZWN0aW9uTW9kZWw6IFNlbGVjdGlvbk1vZGVsPGFueT4sXG4gICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgZGF0YVZpZXdPcHRpb25zUHJvdmlkZXI6IEVsZGVyRGF0YVZpZXdPcHRpb25zUHJvdmlkZXIsXG4gICAgQE9wdGlvbmFsKCkgbWF0U29ydDogTWF0U29ydCxcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHJlYWRvbmx5IHBhcmVudEV4dGVuc2lvbjogRWxkZXJUYWJsZUV4dGVuc2lvbkRpcmVjdGl2ZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgc3VwZXIoc2VsZWN0aW9uTW9kZWwsIGRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyKTtcbiAgICB0aGlzLl9tYXRTb3J0ID0gbWF0U29ydDtcbiAgICB0aGlzLl9leHRlbnNpb25Hcm91cEluZGV4ID0gKHBhcmVudEV4dGVuc2lvbj8uZXh0ZW5zaW9uR3JvdXBJbmRleCA/PyAwKSArIDE7XG4gICAgaWYgKHRoaXMuX21hdFNvcnQpIHtcbiAgICAgIHRoaXMuX21hdFNvcnQuZGlzYWJsZUNsZWFyID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIEVsZGVyVGFibGVNb2RlbENka1RhYmxlQmluZGluZ1xuICAgICAgLm9mKHRoaXMudGFibGVNb2RlbClcbiAgICAgIC50YWJsZSh0aGlzLm1hdFRhYmxlKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLmRlc3Ryb3kkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG5cbiAgICBFbGRlclRhYmxlTW9kZWxRdWVyeUdyb3VwXG4gICAgICAuc3RhcnQodGhpcy50YWJsZU1vZGVsLCB0aGlzLl9leHRlbnNpb25Hcm91cEluZGV4KVxuICAgICAgLndpdGhDb2x1bW5zUG9zaXRpb24oQ29sdW1uUG9zaXRpb25TcGVjLnJlbGF0aXZlVG9QcmV2R3JvdXAoJ3N0YXJ0JykpXG4gICAgICAud2l0aENvbHVtbkRlZnModGhpcy5jb2x1bW5EZWZzLCB0aGlzLmVsZGVyQ29sdW1ucylcbiAgICAgIC53aXRoUm93RGVmcyh0aGlzLnJvd0RlZnMpXG4gICAgICAud2l0aFNvcnQodGhpcy5fbWF0U29ydClcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG5cbiAgICBRdWVyeUxpc3RCaW5kaW5nXG4gICAgICAub2YodGhpcy50b29sYmFyUm93VGVtcGxhdGVRdWVyeSlcbiAgICAgIC51cGRhdGVkKHRvb2xiYXJSb3dzID0+IHRoaXMudG9vbGJhclJvd1RlbXBsYXRlcyQubmV4dCh0b29sYmFyUm93cykpXG4gICAgICAuYmluZFVudGlsKHRoaXMuZGVzdHJveSQpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblxuICAgIE1hdFRhYmxlRGF0YUNvbnRleHRCaW5kaW5nQnVpbGRlclxuICAgICAgLnN0YXJ0KHRoaXMuZGF0YUNvbnRleHQkKVxuICAgICAgLndpdGhTb3J0cyh0aGlzLnRhYmxlTW9kZWwuc29ydHMkKVxuICAgICAgLndpdGhQYWdpbmF0b3Iob2YodGhpcy5tYXRQYWdpbmF0b3IpKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLmRlc3Ryb3kkKTtcblxuICAgIFF1ZXJ5TGlzdEJpbmRpbmdcbiAgICAgIC5vZih0aGlzLnJvd3NRdWVyeSlcbiAgICAgIC51cGRhdGVkKHJvd3MgPT4gdGhpcy5yb3dzJC5uZXh0KHJvd3MpKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLmRlc3Ryb3kkKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0b29sYmFyVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLnRvb2xiYXJSb3dUZW1wbGF0ZXMkLm5leHQoW3RlbXBsYXRlXSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGEoZGF0YTogQXJyYXk8YW55PiB8IElEYXRhU291cmNlPGFueT4gfCBJRGF0YUNvbnRleHQ8YW55Pikge1xuXG4gICAgdGhpcy5hdXRvQ2xlYW5VcCgpO1xuXG4gICAgbGV0IGRjOiBJRGF0YUNvbnRleHQ8YW55PjtcblxuICAgIGlmIChkYXRhIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIGRjID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0KClcbiAgICAgICAgLmxvY2FsU29ydCgpXG4gICAgICAgIC5idWlsZExvY2FsKGRhdGEsIHRoaXMuaWRGaWVsZCk7IC8vIFBvdGVudGlhbCBNZW1vcnkgbGVhayAoU2VlIGF1dG9DbGVhblVwKVxuICAgICAgZGMuc3RhcnQoKTtcbiAgICB9IGVsc2UgaWYgKGlzRGF0YVNvdXJjZShkYXRhKSkge1xuICAgICAgZGMgPSBEYXRhQ29udGV4dEJ1aWxkZXIuc3RhcnQoKVxuICAgICAgICAubG9jYWxTb3J0KClcbiAgICAgICAgLnJlbG9hZE9uTG9jYWxDaGFuZ2VzKClcbiAgICAgICAgLmJ1aWxkKGRhdGEpOyAvLyBQb3RlbnRpYWwgTWVtb3J5IGxlYWsgKFNlZSBhdXRvQ2xlYW5VcClcbiAgICAgIGRjLnN0YXJ0KCk7XG4gICAgfSBlbHNlIGlmIChpc0RhdGFDb250ZXh0KGRhdGEpKSB7XG4gICAgICBkYyA9IGRhdGE7XG4gICAgfSBlbHNlIGlmIChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGMgPSBEYXRhQ29udGV4dEJ1aWxkZXIuc3RhcnQoKS5idWlsZEVtcHR5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGRhdGEgbXVzdCBlaXRoZXIgYmUgYW4gQXJyYXksIElEYXRhU291cmNlIG9yIElEYXRhQ29udGV4dCwgYnV0IHdhczogJyArICh0eXBlb2YgZGF0YSkpO1xuICAgIH1cbiAgICB0aGlzLmRhdGFDb250ZXh0ID0gZGM7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25EYXRhQ29udGV4dFNldChkYXRhOiBJRGF0YUNvbnRleHQ8YW55Pik6IHZvaWQge1xuICAgIHRoaXMudG90YWwkID0gZGF0YS50b3RhbC5waXBlKFxuICAgICAgbWFwKHRvdGFsID0+IHRvdGFsID8gdG90YWwgKyAnJyA6ICfiiJ4nKVxuICAgICk7XG5cbiAgICB0aGlzLnNldHVwU2VsZWN0aW9uTGlmZUN5Y2xlKGRhdGEpO1xuXG4gICAgLy8gdGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpOyAvLyBUT0RPIFN1cHBvcnQgY2hhbmdlYWJsZSBkYXRhLWNvbnRleHQgZm9yIHN0YXRpYyBhcnJheSB1c2UgY2FzZVxuXG4gICAgaWYgKHRoaXMuaXNDb250aW51YWJsZSkge1xuICAgICAgdGhpcy5jYW5Mb2FkTW9yZSQgPSBjb21iaW5lTGF0ZXN0KFtkYXRhLmxvYWRpbmcsIHRoaXMuZGF0YUNvbnRpbnVhYmxlLmhhc01vcmVEYXRhXSkucGlwZShcbiAgICAgICAgbWFwKChbbG9hZGluZywgaGFzTW9yZURhdGFdKSA9PiAhbG9hZGluZyAmJiBoYXNNb3JlRGF0YSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FuTG9hZE1vcmUkID0gb2YoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzcGxheWVkQ29sdW1ucyhkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMudGFibGVNb2RlbC5kaXNwbGF5ZWRDb2x1bW5zID0gZGlzcGxheWVkQ29sdW1ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheWVkQ29sdW1ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVNb2RlbC5kaXNwbGF5ZWRDb2x1bW5zO1xuICB9XG5cbiAgLyoqIEluZGljYXRlcyBpZiBzZWxlY3Rpb24gY29sdW1uIGlzIHNob3duLiAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGlvblZpc2libGUodmlzaWJsZTogYm9vbGVhbikge1xuICAgIHRoaXMudGFibGVNb2RlbC5zZWxlY3Rpb25WaXNpYmxlID0gdmlzaWJsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0aW9uVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZU1vZGVsLnNlbGVjdGlvblZpc2libGU7XG4gIH1cblxuICAvKlxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBhY3RpdmVJdGVtKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZWxkZXJUYWJsZUFjdGl2YXRpb24uYWN0aXZlSXRlbSQ7XG4gIH0qL1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyByZXF1ZXN0TW9yZURhdGFab25lZChldmVudDogYW55KTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5kYXRhQ29udGludWFibGUuaGFzTW9yZURhdGFTbmFwc2hvdCkge1xuXG4gICAgICBpZiAodGhpcy5kYXRhQ29udGludWFibGUuc25hcHNob3QuaXNMb2FkaW5nKSB7XG4gICAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhQ29udGludWFibGUubG9hZE1vcmUoKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgbG9hZGVkID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2FkTmV4dFF1ZXVlZCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkTmV4dFF1ZXVlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgdGhpcy5yZXF1ZXN0TW9yZURhdGFab25lZChldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2FkTmV4dFF1ZXVlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgdHJhY2tCeUZuKCk6IFRyYWNrQnlGdW5jdGlvbjxhbnk+IHtcbiAgICByZXR1cm4gKGluZGV4OiBudW1iZXIsIGVudGl0eTogYW55KSA9PiB0aGlzLmdldElkKGVudGl0eSk7XG4gIH1cblxuICBwdWJsaWMgaXNEYXRhVmFsaWQoZGF0YTogYW55KSB7XG4gICAgcmV0dXJuIGRhdGE/Lmxlbmd0aCA+IDA7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHNldHVwU2VsZWN0aW9uTGlmZUN5Y2xlKGRhdGE6IElEYXRhQ29udGV4dDxhbnk+KTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5zZWxlY3Rpb25MaWZlQ3ljbGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uTGlmZUN5Y2xlLnVuc3Vic2NyaWJlKCk7IC8vIENsZWFuIHVwIHByZXZpb3VzIHN1YlxuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0aW9uTGlmZUN5Y2xlID0gZGF0YS5kYXRhLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICApLnN1YnNjcmliZShuZXdEYXRhID0+IHtcblxuICAgICAgaWYgKHRoaXMua2VlcFNlbGVjdGlvbikge1xuICAgICAgICAvLyBJZiBrZWVwIHNlbGVjdGlvbiBlbmFibGVkXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLmhhc1ZhbHVlKSB7XG5cbiAgICAgICAgICAvLyBDaGVjayB0aGF0IGFsbCBzZWxlY3RlZCB2YWx1ZXMgYXJlIHN0aWxsIHByZXNlbnQgb3IgcmVtb3ZlIHRoZW1cbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQ8YW55PihcbiAgICAgICAgICAgIG5ld0RhdGFcbiAgICAgICAgICAgICAgLm1hcChkID0+IHRoaXMuZ2V0SWQoZCkpXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGNvbnN0IG5vTG9uZ2VyQXZhaWxhYmxlSWRzID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3Rpb25TbmFwc2hvdFxuICAgICAgICAgICAgLm1hcChzZWxlY3RlZCA9PiB0aGlzLmdldElkKHNlbGVjdGVkKSlcbiAgICAgICAgICAgIC5maWx0ZXIoc2VsZWN0ZWRJZCA9PiAhZXhpc3RpbmdJZHMuaGFzKHNlbGVjdGVkSWQpKTtcblxuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3RJZHMobm9Mb25nZXJBdmFpbGFibGVJZHMpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuXG59XG4iLCI8bWF0LWNhcmQgY2xhc3M9XCJmdWxsXCJcbiAgICAgICAgICBbY2xhc3MuZW1iZWRkZWRdPVwiZW1iZWRkZWRcIlxuICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgICAgICAgIHN0eWxlPVwib3ZlcmZsb3c6IGhpZGRlblwiXG4+XG4gIDxkaXYgY2xhc3M9XCJsYXlvdXQtY29sIGVsZGVyLXRhYmxlIGZ1bGxcIj5cbiAgICA8IS0tIFRvb2xiYXIgUm93cyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0b29sYmFyUm93VGVtcGxhdGUgb2YgdG9vbGJhclJvd1RlbXBsYXRlcyQgfCBhc3luY1wiPlxuICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwidG9vbGJhclJvd1RlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiB0aGlzfVwiPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gU2Nyb2xsYWJsZSBUYWJsZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCB7e2lzRGF0YVZhbGlkKGRhdGFDb250ZXh0Py5kYXRhIHwgYXN5bmMpID8gJ2ZsZXgnIDogJyd9fSBzY3JvbGxhYmxlIGVsZGVyLXRhYmxlLXNjcm9sbFwiXG4gICAgICAgICBlbGRlckluZmluaXRlU2Nyb2xsXG4gICAgICAgICBbZXZlbnRUaHJvdHRsZV09XCIxNTBcIlxuICAgICAgICAgW29mZnNldEZhY3Rvcl09XCIyXCJcbiAgICAgICAgIFtpZ25vcmVTY3JvbGxFdmVudF09XCIhaXNDb250aW51YWJsZSB8fCAhKGNhbkxvYWRNb3JlJCB8IGFzeW5jKVwiXG4gICAgICAgICAoY2xvc2VUb0VuZCk9XCJyZXF1ZXN0TW9yZURhdGFab25lZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8dGFibGVcbiAgICAgICAgbWF0LXRhYmxlXG4gICAgICAgIGNsYXNzPVwiZWxkZXItbWF0LWlubmVyLXRhYmxlXCJcbiAgICAgICAgW3RyYWNrQnldPVwidHJhY2tCeUZuXCJcbiAgICAgICAgW2RhdGFTb3VyY2VdPVwiJGFueShkYXRhQ29udGV4dCQgfCBhc3luYylcIlxuICAgICAgICBbZWxkZXJEYXRhQ29udGV4dFNlbGVjdGlvbl09XCJkYXRhQ29udGV4dCQgfCBhc3luY1wiICNkYXRhU2VsZWN0aW9uPVwiZWxkZXJEYXRhQ29udGV4dFNlbGVjdGlvblwiXG4gICAgICAgIFtlbGRlckRhdGFDb250ZXh0U2VsZWN0aW9uTW9kZWxdPVwic2VsZWN0aW9uTW9kZWxcIlxuICAgICAgPlxuXG4gICAgICAgIDwhLS0gc2VsZWN0aW9uIENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzZWxlY3RcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxuICAgICAgICAgICAgPGVsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3g+PC9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94PlxuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVudGl0eVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb25Nb2RlbC50b2dnbGUoZW50aXR5KSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbk1vZGVsLm9ic2VydmVTZWxlY3Rpb24oZW50aXR5KSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNlbGVjdGlvbk1vZGVsLmlzU2VsZWN0YWJsZShlbnRpdHkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLXRhYmxlLWNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZWxkZXItdGFibGUtY2hlY2tib3gtdmlzaWJsZV09XCIoZGF0YVNlbGVjdGlvbi5zZWxlY3Rpb25TdGF0ZSQgfCBhc3luYykuYW55U2VsZWN0ZWRcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQgbWF0LWZvb3Rlci1jZWxsICptYXRGb290ZXJDZWxsRGVmPjwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIodGFibGVNb2RlbC5kaXNwbGF5ZWRDb2x1bW5zSW5uZXIkIHwgYXN5bmMpIGFzIGRpc3BsYXllZENvbHVtbnNJbm5lclwiPlxuICAgICAgICAgIDx0ciBtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc0lubmVyOyBzdGlja3k6IHRydWVcIj48L3RyPlxuICAgICAgICAgIDx0ciBtYXQtcm93IGNsYXNzPVwiZWxkZXItdGFibGUtcm93XCJcbiAgICAgICAgICAgICAgKm1hdFJvd0RlZj1cImxldCBlbnRpdHk7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnNJbm5lcjtcIlxuICAgICAgICAgICAgICBbZWxkZXJUYWJsZVJvd109XCJlbnRpdHlcIlxuICAgICAgICAgICAgICBbY2xhc3MuZGVuc2VdPVwiZGVuc2VcIlxuICAgICAgICAgICAgICBbY2xhc3MuZWxkZXItcm93LWhpZGRlbl09XCJoaWRkZW5GaWVsZCAmJiBlbnRpdHlbaGlkZGVuRmllbGRdXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmVsZGVyLXJvdy1yZW1vdmluZ109XCJyZW1vdmluZ0ZpZWxkICYmIGVudGl0eVtyZW1vdmluZ0ZpZWxkXVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5lbGRlci10YWJsZS1yb3ctc2VsZWN0ZWRdPVwiaW50ZXJhY3Rpb25Nb2RlID09PSAnc2VsZWN0aW9uJyAmJiBzZWxlY3Rpb25Nb2RlbC5vYnNlcnZlU2VsZWN0aW9uKGVudGl0eSkgfCBhc3luY1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayhlbnRpdHkpXCJcbiAgICAgICAgICAgICAgKGRibGNsaWNrKT1cIm9uSXRlbURvdWJsZUNsaWNrKGVudGl0eSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93Rm9vdGVyXCI+XG4gICAgICAgICAgICA8dHIgbWF0LWZvb3Rlci1yb3cgKm1hdEZvb3RlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNJbm5lcjsgc3RpY2t5OiB0cnVlXCI+PC90cj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3RhYmxlPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0RhdGFWYWxpZChkYXRhQ29udGV4dD8uZGF0YSB8IGFzeW5jKVwiPlxuICAgICAgPGVsZGVyLWRhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3IgY2xhc3M9XCJmbGV4XCIgW2RhdGFDb250ZXh0XT1cImRhdGFDb250ZXh0XCI+XG4gICAgICA8L2VsZGVyLWRhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3I+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bWF0LXByb2dyZXNzLWJhciBjbGFzcz1cImZsZXgtbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW21vZGVdPVwiKGRhdGFDb250ZXh0Py5sb2FkaW5nIHwgYXN5bmMpID8gJ2luZGV0ZXJtaW5hdGUnIDogJ2RldGVybWluYXRlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cIigoZGF0YUNvbnRleHQ/LnN0YXR1cyB8IGFzeW5jKT8uaGFzRXJyb3IpID8gJ3dhcm4nIDogJ3ByaW1hcnknXCI+XG4gICAgPC9tYXQtcHJvZ3Jlc3MtYmFyPlxuXG4gICAgPCEtLSBPcHRpb25hbCBQYWdpbmF0b3IgVG9vbGJhciAtLT5cbiAgICA8bWF0LXBhZ2luYXRvciAjbWF0UGFnaW5hdG9yICpuZ0lmPVwiaXNBY3RpdmVQYWdlZCAmJiAoZGF0YUFjdGl2ZVBhZ2VkLnBhZ2UgfCBhc3luYykgYXMgcGFnZVwiXG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgIFtsZW5ndGhdPVwiZGF0YUNvbnRleHQ/LnRvdGFsIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgICAgIFtwYWdlSW5kZXhdPVwicGFnZT8uaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJwYWdlPy5zaXplXCJcbiAgICAgICAgICAgICAgICAgICBbcGFnZVNpemVPcHRpb25zXT1cInBhZ2VTaXplT3B0aW9uc1wiPlxuICAgIDwvbWF0LXBhZ2luYXRvcj5cblxuICAgIDwhLS0gT3B0aW9uYWwgQ29udGludWF0aW9uIEZvb3RlciAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNDb250aW51YWJsZVwiIGNsYXNzPVwibGF5b3V0LXJvdyBmbGV4LW5vbmUgcGxhY2UtZW5kLWNlbnRlciBnYXAtbWQgZWxkZXItdGFibGUtZm9vdGVyXCI+XG5cbiAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb24gbm9zZWxlY3RcIiBzdHlsZT1cImNvbG9yOiBncmF5XCI+XG4gICAgICAgIHt7KGRhdGFDb250ZXh0Py5kYXRhIHwgYXN5bmMpPy5sZW5ndGh9fSAvIHt7dG90YWwkIHwgYXN5bmN9fVxuICAgICAgPC9zcGFuPlxuXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEoY2FuTG9hZE1vcmUkIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRhdGFDb250aW51YWJsZS5sb2FkTW9yZSgpXCI+XG4gICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd19kb3duPC9tYXQtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbWF0LWNhcmQ+XG4iXX0=
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixLQUFLLEVBR0wsUUFBUSxFQUVSLFFBQVEsRUFDUixXQUFXLEVBRVgsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUN0SCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFekQsT0FBTyxFQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDdk8sT0FBTyxFQUFlLGFBQWEsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRTlGLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUNsRixPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFB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Z0JBVUMsdUJBQXVCO3NCQUQ3QixlQUFlO3VCQUFDLDBCQUEwQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBQztnQkFVeEQsU0FBUztzQkFEaEIsWUFBWTt1QkFBQyxzQkFBc0I7Z0JBNEZ6QixlQUFlO3NCQUR6QixLQUFLO2dCQU1LLElBQUk7c0JBRGQsS0FBSztnQkErQ0ssZ0JBQWdCO3NCQUQxQixLQUFLO2dCQVdLLGdCQUFnQjtzQkFEMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFF1ZXJ5TGlzdCxcbiAgU2tpcFNlbGYsXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0VGFibGVEYXRhQ29udGV4dEJpbmRpbmdCdWlsZGVyfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvbWF0LXRhYmxlLWRhdGEtY29udGV4dC1iaW5kaW5nJztcbmltcG9ydCB7TWF0UGFnaW5hdG9yfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHtNYXRTb3J0fSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7TWF0Q29sdW1uRGVmLCBNYXRSb3dEZWYsIE1hdFRhYmxlLCBNYXRIZWFkZXJDZWxsRGVmLCBNYXRIZWFkZXJDZWxsLCBNYXRDZWxsRGVmLCBNYXRDZWxsLCBNYXRGb290ZXJDZWxsRGVmLCBNYXRGb290ZXJDZWxsLCBNYXRIZWFkZXJSb3dEZWYsIE1hdEhlYWRlclJvdywgTWF0Um93LCBNYXRGb290ZXJSb3dEZWYsIE1hdEZvb3RlclJvd30gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHtJRGF0YUNvbnRleHQsIGlzRGF0YUNvbnRleHR9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtTZWxlY3Rpb25Nb2RlbH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3NlbGVjdGlvbi9zZWxlY3Rpb24tbW9kZWwnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0Nka0NvbHVtbkRlZiwgQ2RrUm93RGVmLCBDZGtUYWJsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcbmltcG9ydCB7RGF0YUNvbnRleHRCdWlsZGVyfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJ1aWxkZXInO1xuaW1wb3J0IHtFTERFUl9EQVRBX1ZJRVd9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3JztcbmltcG9ydCB7RWxkZXJUYWJsZVJvd0RpcmVjdGl2ZX0gZnJvbSAnLi4vZWxkZXItdGFibGUtcm93LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0lEYXRhU291cmNlLCBpc0RhdGFTb3VyY2V9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtFbGRlckRhdGFWaWV3QmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vYmFzZS9lbGRlci1kYXRhLXZpZXctYmFzZSc7XG5pbXBvcnQge0VsZGVyVGFibGVNb2RlbH0gZnJvbSAnLi4vbW9kZWwvZWxkZXItdGFibGUtbW9kZWwnO1xuaW1wb3J0IHtFbGRlclRhYmxlUHJvdmlkZXJzfSBmcm9tICcuLi9tb2RlbC9lbGRlci10YWJsZS1tb2RlbC1wcm92aWRlcic7XG5pbXBvcnQge1F1ZXJ5TGlzdEJpbmRpbmd9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi91dGlscy9xdWVyeS1saXN0LWJpbmRpbmcnO1xuaW1wb3J0IHtFbGRlclRhYmxlTW9kZWxDZGtUYWJsZUJpbmRpbmd9IGZyb20gJy4uL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsLWNkay10YWJsZS1iaW5kaW5nJztcbmltcG9ydCB7RWxkZXJUYWJsZU1vZGVsUXVlcnlHcm91cH0gZnJvbSAnLi4vbW9kZWwvZWxkZXItdGFibGUtbW9kZWwtcXVlcnktZ3JvdXAnO1xuaW1wb3J0IHtFbGRlclRhYmxlRXh0ZW5zaW9uRGlyZWN0aXZlfSBmcm9tICcuLi9lbGRlci10YWJsZS1leHRlbnNpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7RWxkZXJUYWJsZUNvbHVtbkRpcmVjdGl2ZX0gZnJvbSAnLi4vZWxkZXItdGFibGUtY29sdW1uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0NvbHVtblBvc2l0aW9uU3BlY30gZnJvbSAnLi4vbW9kZWwvZWxkZXItY29sdW1uLWxheW91dCc7XG5pbXBvcnQge0VsZGVyVGFibGVUb29sYmFyRGlyZWN0aXZlfSBmcm9tICcuL2VsZGVyLXRhYmxlLXRvb2xiYXIuZGlyZWN0aXZlJztcbmltcG9ydCB7RWxkZXJEYXRhVmlld09wdGlvbnNQcm92aWRlcn0gZnJvbSAnLi4vLi4vYmFzZS9lbGRlci1kYXRhLXZpZXctb3B0aW9ucy1wcm92aWRlcic7XG5pbXBvcnQge01hdEljb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHtNYXRJY29uQnV0dG9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRQcm9ncmVzc0Jhcn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB7RGF0YUNvbnRleHRTdGF0ZUluZGljYXRvckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vY29tbW9uL2RhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3IvZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHtNYXRDaGVja2JveH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHtFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50fSBmcm9tICcuLi8uLi9jb21tb24vc2VsZWN0aW9uL2VsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3gvZWxkZXItc2VsZWN0aW9uLW1hc3Rlci1jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHtEYXRhQ29udGV4dFNlbGVjdGlvbkRpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vY29tbW9uL3NlbGVjdGlvbi9kYXRhLWNvbnRleHQtc2VsZWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0VsZGVySW5maW5pdGVTY3JvbGxEaXJlY3RpdmV9IGZyb20gJy4uLy4uLy4uL2luZmluaXRlc2Nyb2xsL2VsZGVyLWluZmluaXRlLXNjcm9sbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtOZ0ZvciwgTmdUZW1wbGF0ZU91dGxldCwgTmdJZiwgQXN5bmNQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtNYXRDYXJkfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlbGRlci10YWJsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lbGRlci10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBFbGRlclRhYmxlUHJvdmlkZXJzLkV4aXN0aW5nT3JOZXdUYWJsZU1vZGVsLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBFTERFUl9EQVRBX1ZJRVcsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFbGRlclRhYmxlQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtNYXRDYXJkLCBOZ0ZvciwgTmdUZW1wbGF0ZU91dGxldCwgRWxkZXJJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSwgTWF0VGFibGUsIERhdGFDb250ZXh0U2VsZWN0aW9uRGlyZWN0aXZlLCBNYXRDb2x1bW5EZWYsIE1hdEhlYWRlckNlbGxEZWYsIE1hdEhlYWRlckNlbGwsIEVsZGVyU2VsZWN0aW9uTWFzdGVyQ2hlY2tib3hDb21wb25lbnQsIE1hdENlbGxEZWYsIE1hdENlbGwsIE1hdENoZWNrYm94LCBNYXRGb290ZXJDZWxsRGVmLCBNYXRGb290ZXJDZWxsLCBOZ0lmLCBNYXRIZWFkZXJSb3dEZWYsIE1hdEhlYWRlclJvdywgTWF0Um93RGVmLCBNYXRSb3csIEVsZGVyVGFibGVSb3dEaXJlY3RpdmUsIE1hdEZvb3RlclJvd0RlZiwgTWF0Rm9vdGVyUm93LCBEYXRhQ29udGV4dFN0YXRlSW5kaWNhdG9yQ29tcG9uZW50LCBNYXRQcm9ncmVzc0JhciwgTWF0UGFnaW5hdG9yLCBNYXRJY29uQnV0dG9uLCBNYXRJY29uLCBBc3luY1BpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVGFibGVDb21wb25lbnQgZXh0ZW5kcyBFbGRlckRhdGFWaWV3QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIC8qKlxuICAgKiBMb2FkIG5leHQgY2h1bmsgYWZ0ZXIgY3VycmVudCBpcyBkb25lXG4gICAqL1xuICBwcml2YXRlIGxvYWROZXh0UXVldWVkID0gZmFsc2U7XG5cbiAgLy8vIFRhYmxlXG4gIEBWaWV3Q2hpbGQoTWF0VGFibGUsIHtzdGF0aWM6IHRydWV9KVxuICBwdWJsaWMgbWF0VGFibGU6IENka1RhYmxlPGFueT47XG5cbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IpXG4gIHB1YmxpYyBtYXRQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9tYXRTb3J0OiBNYXRTb3J0O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0Q29sdW1uRGVmKVxuICBwdWJsaWMgY29sdW1uRGVmczogUXVlcnlMaXN0PENka0NvbHVtbkRlZj47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlKVxuICBwdWJsaWMgZWxkZXJDb2x1bW5zOiBRdWVyeUxpc3Q8RWxkZXJUYWJsZUNvbHVtbkRpcmVjdGl2ZT47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihNYXRSb3dEZWYpXG4gIHB1YmxpYyByb3dEZWZzOiBRdWVyeUxpc3Q8Q2RrUm93RGVmPGFueT4+O1xuXG4gIC8qKlxuICAgKiBGaWVsZCB0byBpZGVudGlmeSB0aGUgZGF0YSByZWNvcmRzIChJRCBmaWVsZCkuXG4gICAqIE5vdGU6IFRoaXMgcHJvcGVydHkgaXMgb25seSBjb25zaWRlcmVkIGluIGNhc2UgdGhlXG4gICAqIHVuZGVybHlpbmcgZGF0YSBpcyBhbiBBcnJheS5cbiAgICogSW4gY2FzZSBvZiBEYXRhQ29udGV4dCwgdGhlIElEIGZpZWxkIG5lZWRzIHRvIGJlIGRlZmluZWQgaW4gdGhlIGNvbnRleHQuXG4gICAqIEluIGNhc2Ugb2YgRGF0YVNvdXJjZSwgdGhlIElEIGZpZWxkIGlzIGF1dG9tYXRpY2FsbHkgcGlja2VkIGZyb20gdGhlIERhdGFTb3VyY2UuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWRGaWVsZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRoaXMgZmllbGQgaXMgcHJlc2VudCBhbmQgdHJ1ZSxcbiAgICogdGhlIGNvcmVzcG9uZGluZyByb3cgaXMgbWFya2VkIHRvIGJlIGluIHRoZSBwcm9jZXNzZWQgb2YgYmVpbmcgcmVtb3ZlZC5cbiAgICpcbiAgICogSS5lLiAncmVtb3ZpbmcnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVtb3ZpbmdGaWVsZDogc3RyaW5nID0gbnVsbDtcblxuICAvKipcbiAgICogV2hlbiB0aGlzIGZpZWxkIGlzIHByZXNlbnQgYW5kIHRydWUsXG4gICAqIHRoZSBjb3JyZXNwb25kaW5nIHJvdyBpcyBoaWRkZW4uXG4gICAqXG4gICAqIEkuZS4gJ2RlbGV0ZWQnXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaGlkZGVuRmllbGQ6IHN0cmluZyA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2VTaXplT3B0aW9ucyA9IFszMCwgNTAsIDEwMCwgMTUwLCAyMDBdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBrZWVwU2VsZWN0aW9uID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0Zvb3RlciA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjYW5Mb2FkTW9yZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHB1YmxpYyB0b3RhbCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAvKipcbiAgICogVGhlIHRhYmxlIHRvb2xiYXJcbiAgICovXG4gIEBDb250ZW50Q2hpbGRyZW4oRWxkZXJUYWJsZVRvb2xiYXJEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZn0pXG4gIHB1YmxpYyB0b29sYmFyUm93VGVtcGxhdGVRdWVyeTogUXVlcnlMaXN0PFRlbXBsYXRlUmVmPGFueT4+O1xuICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhclJvd1RlbXBsYXRlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPGFueT5bXT4oW10pO1xuXG4gIC8qKlxuICAgKiBTZWxlY3Rpb24gbW9kZWwgbGlmZSBjeWNsZVxuICAgKi9cbiAgcHJpdmF0ZSBzZWxlY3Rpb25MaWZlQ3ljbGU6IFN1YnNjcmlwdGlvbjtcblxuICBAVmlld0NoaWxkcmVuKEVsZGVyVGFibGVSb3dEaXJlY3RpdmUpXG4gIHByaXZhdGUgcm93c1F1ZXJ5OiBRdWVyeUxpc3Q8RWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxhbnk+PjtcblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCByb3dzIG9mIHRoaXMgdGFibGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm93cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVsZGVyVGFibGVSb3dEaXJlY3RpdmU8YW55PltdPihbXSk7XG5cbiAgLyoqXG4gICAqIFRoZSBpbmRleCBvZiB0aGlzIHRhYmxlIGdyb3VwIGV4dGVuc2lvblxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfZXh0ZW5zaW9uR3JvdXBJbmRleDogbnVtYmVyO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB0YWJsZU1vZGVsOiBFbGRlclRhYmxlTW9kZWwsXG4gICAgQE9wdGlvbmFsKCkgc2VsZWN0aW9uTW9kZWw6IFNlbGVjdGlvbk1vZGVsPGFueT4sXG4gICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgZGF0YVZpZXdPcHRpb25zUHJvdmlkZXI6IEVsZGVyRGF0YVZpZXdPcHRpb25zUHJvdmlkZXIsXG4gICAgQE9wdGlvbmFsKCkgbWF0U29ydDogTWF0U29ydCxcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHJlYWRvbmx5IHBhcmVudEV4dGVuc2lvbjogRWxkZXJUYWJsZUV4dGVuc2lvbkRpcmVjdGl2ZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgc3VwZXIoc2VsZWN0aW9uTW9kZWwsIGRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyKTtcbiAgICB0aGlzLl9tYXRTb3J0ID0gbWF0U29ydDtcbiAgICB0aGlzLl9leHRlbnNpb25Hcm91cEluZGV4ID0gKHBhcmVudEV4dGVuc2lvbj8uZXh0ZW5zaW9uR3JvdXBJbmRleCA/PyAwKSArIDE7XG4gICAgaWYgKHRoaXMuX21hdFNvcnQpIHtcbiAgICAgIHRoaXMuX21hdFNvcnQuZGlzYWJsZUNsZWFyID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIEVsZGVyVGFibGVNb2RlbENka1RhYmxlQmluZGluZ1xuICAgICAgLm9mKHRoaXMudGFibGVNb2RlbClcbiAgICAgIC50YWJsZSh0aGlzLm1hdFRhYmxlKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLmRlc3Ryb3kkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG5cbiAgICBFbGRlclRhYmxlTW9kZWxRdWVyeUdyb3VwXG4gICAgICAuc3RhcnQodGhpcy50YWJsZU1vZGVsLCB0aGlzLl9leHRlbnNpb25Hcm91cEluZGV4KVxuICAgICAgLndpdGhDb2x1bW5zUG9zaXRpb24oQ29sdW1uUG9zaXRpb25TcGVjLnJlbGF0aXZlVG9QcmV2R3JvdXAoJ3N0YXJ0JykpXG4gICAgICAud2l0aENvbHVtbkRlZnModGhpcy5jb2x1bW5EZWZzLCB0aGlzLmVsZGVyQ29sdW1ucylcbiAgICAgIC53aXRoUm93RGVmcyh0aGlzLnJvd0RlZnMpXG4gICAgICAud2l0aFNvcnQodGhpcy5fbWF0U29ydClcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JCk7XG5cbiAgICBRdWVyeUxpc3RCaW5kaW5nXG4gICAgICAub2YodGhpcy50b29sYmFyUm93VGVtcGxhdGVRdWVyeSlcbiAgICAgIC51cGRhdGVkKHRvb2xiYXJSb3dzID0+IHRoaXMudG9vbGJhclJvd1RlbXBsYXRlcyQubmV4dCh0b29sYmFyUm93cykpXG4gICAgICAuYmluZFVudGlsKHRoaXMuZGVzdHJveSQpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblxuICAgIE1hdFRhYmxlRGF0YUNvbnRleHRCaW5kaW5nQnVpbGRlclxuICAgICAgLnN0YXJ0KHRoaXMuZGF0YUNvbnRleHQkKVxuICAgICAgLndpdGhTb3J0cyh0aGlzLnRhYmxlTW9kZWwuc29ydHMkKVxuICAgICAgLndpdGhQYWdpbmF0b3Iob2YodGhpcy5tYXRQYWdpbmF0b3IpKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLmRlc3Ryb3kkKTtcblxuICAgIFF1ZXJ5TGlzdEJpbmRpbmdcbiAgICAgIC5vZih0aGlzLnJvd3NRdWVyeSlcbiAgICAgIC51cGRhdGVkKHJvd3MgPT4gdGhpcy5yb3dzJC5uZXh0KHJvd3MpKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLmRlc3Ryb3kkKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0b29sYmFyVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLnRvb2xiYXJSb3dUZW1wbGF0ZXMkLm5leHQoW3RlbXBsYXRlXSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGEoZGF0YTogQXJyYXk8YW55PiB8IElEYXRhU291cmNlPGFueT4gfCBJRGF0YUNvbnRleHQ8YW55Pikge1xuXG4gICAgdGhpcy5hdXRvQ2xlYW5VcCgpO1xuXG4gICAgbGV0IGRjOiBJRGF0YUNvbnRleHQ8YW55PjtcblxuICAgIGlmIChkYXRhIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIGRjID0gRGF0YUNvbnRleHRCdWlsZGVyLnN0YXJ0KClcbiAgICAgICAgLmxvY2FsU29ydCgpXG4gICAgICAgIC5idWlsZExvY2FsKGRhdGEsIHRoaXMuaWRGaWVsZCk7IC8vIFBvdGVudGlhbCBNZW1vcnkgbGVhayAoU2VlIGF1dG9DbGVhblVwKVxuICAgICAgZGMuc3RhcnQoKTtcbiAgICB9IGVsc2UgaWYgKGlzRGF0YVNvdXJjZShkYXRhKSkge1xuICAgICAgZGMgPSBEYXRhQ29udGV4dEJ1aWxkZXIuc3RhcnQoKVxuICAgICAgICAubG9jYWxTb3J0KClcbiAgICAgICAgLnJlbG9hZE9uTG9jYWxDaGFuZ2VzKClcbiAgICAgICAgLmJ1aWxkKGRhdGEpOyAvLyBQb3RlbnRpYWwgTWVtb3J5IGxlYWsgKFNlZSBhdXRvQ2xlYW5VcClcbiAgICAgIGRjLnN0YXJ0KCk7XG4gICAgfSBlbHNlIGlmIChpc0RhdGFDb250ZXh0KGRhdGEpKSB7XG4gICAgICBkYyA9IGRhdGE7XG4gICAgfSBlbHNlIGlmIChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGMgPSBEYXRhQ29udGV4dEJ1aWxkZXIuc3RhcnQoKS5idWlsZEVtcHR5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGRhdGEgbXVzdCBlaXRoZXIgYmUgYW4gQXJyYXksIElEYXRhU291cmNlIG9yIElEYXRhQ29udGV4dCwgYnV0IHdhczogJyArICh0eXBlb2YgZGF0YSkpO1xuICAgIH1cbiAgICB0aGlzLmRhdGFDb250ZXh0ID0gZGM7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25EYXRhQ29udGV4dFNldChkYXRhOiBJRGF0YUNvbnRleHQ8YW55Pik6IHZvaWQge1xuICAgIHRoaXMudG90YWwkID0gZGF0YS50b3RhbC5waXBlKFxuICAgICAgbWFwKHRvdGFsID0+IHRvdGFsID8gdG90YWwgKyAnJyA6ICfiiJ4nKVxuICAgICk7XG5cbiAgICB0aGlzLnNldHVwU2VsZWN0aW9uTGlmZUN5Y2xlKGRhdGEpO1xuXG4gICAgLy8gdGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpOyAvLyBUT0RPIFN1cHBvcnQgY2hhbmdlYWJsZSBkYXRhLWNvbnRleHQgZm9yIHN0YXRpYyBhcnJheSB1c2UgY2FzZVxuXG4gICAgaWYgKHRoaXMuaXNDb250aW51YWJsZSkge1xuICAgICAgdGhpcy5jYW5Mb2FkTW9yZSQgPSBjb21iaW5lTGF0ZXN0KFtkYXRhLmxvYWRpbmcsIHRoaXMuZGF0YUNvbnRpbnVhYmxlLmhhc01vcmVEYXRhXSkucGlwZShcbiAgICAgICAgbWFwKChbbG9hZGluZywgaGFzTW9yZURhdGFdKSA9PiAhbG9hZGluZyAmJiBoYXNNb3JlRGF0YSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FuTG9hZE1vcmUkID0gb2YoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzcGxheWVkQ29sdW1ucyhkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMudGFibGVNb2RlbC5kaXNwbGF5ZWRDb2x1bW5zID0gZGlzcGxheWVkQ29sdW1ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheWVkQ29sdW1ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVNb2RlbC5kaXNwbGF5ZWRDb2x1bW5zO1xuICB9XG5cbiAgLyoqIEluZGljYXRlcyBpZiBzZWxlY3Rpb24gY29sdW1uIGlzIHNob3duLiAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGlvblZpc2libGUodmlzaWJsZTogYm9vbGVhbikge1xuICAgIHRoaXMudGFibGVNb2RlbC5zZWxlY3Rpb25WaXNpYmxlID0gdmlzaWJsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0aW9uVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZU1vZGVsLnNlbGVjdGlvblZpc2libGU7XG4gIH1cblxuICAvKlxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBhY3RpdmVJdGVtKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZWxkZXJUYWJsZUFjdGl2YXRpb24uYWN0aXZlSXRlbSQ7XG4gIH0qL1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyByZXF1ZXN0TW9yZURhdGFab25lZChldmVudDogdW5rbm93bik6IHZvaWQge1xuXG4gICAgaWYgKHRoaXMuZGF0YUNvbnRpbnVhYmxlLmhhc01vcmVEYXRhU25hcHNob3QpIHtcblxuICAgICAgaWYgKHRoaXMuZGF0YUNvbnRpbnVhYmxlLnNuYXBzaG90LmlzTG9hZGluZykge1xuICAgICAgICB0aGlzLmxvYWROZXh0UXVldWVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGF0YUNvbnRpbnVhYmxlLmxvYWRNb3JlKClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIGxvYWRlZCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubG9hZE5leHRRdWV1ZWQpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIHRoaXMucmVxdWVzdE1vcmVEYXRhWm9uZWQoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRyYWNrQnlGbigpOiBUcmFja0J5RnVuY3Rpb248YW55PiB7XG4gICAgcmV0dXJuIChpbmRleDogbnVtYmVyLCBlbnRpdHk6IGFueSkgPT4gdGhpcy5nZXRJZChlbnRpdHkpO1xuICB9XG5cbiAgcHVibGljIGlzRGF0YVZhbGlkKGRhdGE6IGFueSkge1xuICAgIHJldHVybiBkYXRhPy5sZW5ndGggPiAwO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzZXR1cFNlbGVjdGlvbkxpZmVDeWNsZShkYXRhOiBJRGF0YUNvbnRleHQ8YW55Pik6IHZvaWQge1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTGlmZUN5Y2xlKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkxpZmVDeWNsZS51bnN1YnNjcmliZSgpOyAvLyBDbGVhbiB1cCBwcmV2aW91cyBzdWJcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGlvbkxpZmVDeWNsZSA9IGRhdGEuZGF0YS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUobmV3RGF0YSA9PiB7XG5cbiAgICAgIGlmICh0aGlzLmtlZXBTZWxlY3Rpb24pIHtcbiAgICAgICAgLy8gSWYga2VlcCBzZWxlY3Rpb24gZW5hYmxlZFxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbC5oYXNWYWx1ZSkge1xuXG4gICAgICAgICAgLy8gQ2hlY2sgdGhhdCBhbGwgc2VsZWN0ZWQgdmFsdWVzIGFyZSBzdGlsbCBwcmVzZW50IG9yIHJlbW92ZSB0aGVtXG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0PGFueT4oXG4gICAgICAgICAgICBuZXdEYXRhXG4gICAgICAgICAgICAgIC5tYXAoZCA9PiB0aGlzLmdldElkKGQpKVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBjb25zdCBub0xvbmdlckF2YWlsYWJsZUlkcyA9IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uU25hcHNob3RcbiAgICAgICAgICAgIC5tYXAoc2VsZWN0ZWQgPT4gdGhpcy5nZXRJZChzZWxlY3RlZCkpXG4gICAgICAgICAgICAuZmlsdGVyKHNlbGVjdGVkSWQgPT4gIWV4aXN0aW5nSWRzLmhhcyhzZWxlY3RlZElkKSk7XG5cbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLmRlc2VsZWN0SWRzKG5vTG9uZ2VyQXZhaWxhYmxlSWRzKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxufVxuIiwiPG1hdC1jYXJkIGNsYXNzPVwiZnVsbFwiXG4gICAgICAgICAgW2NsYXNzLmVtYmVkZGVkXT1cImVtYmVkZGVkXCJcbiAgICAgICAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICAgICAgICBzdHlsZT1cIm92ZXJmbG93OiBoaWRkZW5cIlxuPlxuICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBlbGRlci10YWJsZSBmdWxsXCI+XG4gICAgPCEtLSBUb29sYmFyIFJvd3MgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdG9vbGJhclJvd1RlbXBsYXRlIG9mIHRvb2xiYXJSb3dUZW1wbGF0ZXMkIHwgYXN5bmNcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInRvb2xiYXJSb3dUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogdGhpc31cIj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIFNjcm9sbGFibGUgVGFibGUgLS0+XG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wge3tpc0RhdGFWYWxpZChkYXRhQ29udGV4dD8uZGF0YSB8IGFzeW5jKSA/ICdmbGV4JyA6ICcnfX0gc2Nyb2xsYWJsZSBlbGRlci10YWJsZS1zY3JvbGxcIlxuICAgICAgICAgZWxkZXJJbmZpbml0ZVNjcm9sbFxuICAgICAgICAgW2V2ZW50VGhyb3R0bGVdPVwiMTUwXCJcbiAgICAgICAgIFtvZmZzZXRGYWN0b3JdPVwiMlwiXG4gICAgICAgICBbaWdub3JlU2Nyb2xsRXZlbnRdPVwiIWlzQ29udGludWFibGUgfHwgIShjYW5Mb2FkTW9yZSQgfCBhc3luYylcIlxuICAgICAgICAgKGNsb3NlVG9FbmQpPVwicmVxdWVzdE1vcmVEYXRhWm9uZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHRhYmxlXG4gICAgICAgIG1hdC10YWJsZVxuICAgICAgICBjbGFzcz1cImVsZGVyLW1hdC1pbm5lci10YWJsZVwiXG4gICAgICAgIFt0cmFja0J5XT1cInRyYWNrQnlGblwiXG4gICAgICAgIFtkYXRhU291cmNlXT1cIiRhbnkoZGF0YUNvbnRleHQkIHwgYXN5bmMpXCJcbiAgICAgICAgW2VsZGVyRGF0YUNvbnRleHRTZWxlY3Rpb25dPVwiZGF0YUNvbnRleHQkIHwgYXN5bmNcIiAjZGF0YVNlbGVjdGlvbj1cImVsZGVyRGF0YUNvbnRleHRTZWxlY3Rpb25cIlxuICAgICAgICBbZWxkZXJEYXRhQ29udGV4dFNlbGVjdGlvbk1vZGVsXT1cInNlbGVjdGlvbk1vZGVsXCJcbiAgICAgID5cblxuICAgICAgICA8IS0tIHNlbGVjdGlvbiBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2VsZWN0XCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cbiAgICAgICAgICAgIDxlbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94PjwvZWxkZXItc2VsZWN0aW9uLW1hc3Rlci1jaGVja2JveD5cbiAgICAgICAgICA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbnRpdHlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uTW9kZWwudG9nZ2xlKGVudGl0eSkgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3Rpb25Nb2RlbC5vYnNlcnZlU2VsZWN0aW9uKGVudGl0eSkgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFzZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGFibGUoZW50aXR5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci10YWJsZS1jaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmVsZGVyLXRhYmxlLWNoZWNrYm94LXZpc2libGVdPVwiKGRhdGFTZWxlY3Rpb24uc2VsZWN0aW9uU3RhdGUkIHwgYXN5bmMpLmFueVNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj48L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHRhYmxlTW9kZWwuZGlzcGxheWVkQ29sdW1uc0lubmVyJCB8IGFzeW5jKSBhcyBkaXNwbGF5ZWRDb2x1bW5zSW5uZXJcIj5cbiAgICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNJbm5lcjsgc3RpY2t5OiB0cnVlXCI+PC90cj5cbiAgICAgICAgICA8dHIgbWF0LXJvdyBjbGFzcz1cImVsZGVyLXRhYmxlLXJvd1wiXG4gICAgICAgICAgICAgICptYXRSb3dEZWY9XCJsZXQgZW50aXR5OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zSW5uZXI7XCJcbiAgICAgICAgICAgICAgW2VsZGVyVGFibGVSb3ddPVwiZW50aXR5XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRlbnNlXT1cImRlbnNlXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmVsZGVyLXJvdy1oaWRkZW5dPVwiaGlkZGVuRmllbGQgJiYgZW50aXR5W2hpZGRlbkZpZWxkXVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5lbGRlci1yb3ctcmVtb3ZpbmddPVwicmVtb3ZpbmdGaWVsZCAmJiBlbnRpdHlbcmVtb3ZpbmdGaWVsZF1cIlxuICAgICAgICAgICAgICBbY2xhc3MuZWxkZXItdGFibGUtcm93LXNlbGVjdGVkXT1cImludGVyYWN0aW9uTW9kZSA9PT0gJ3NlbGVjdGlvbicgJiYgc2VsZWN0aW9uTW9kZWwub2JzZXJ2ZVNlbGVjdGlvbihlbnRpdHkpIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soZW50aXR5KVwiXG4gICAgICAgICAgICAgIChkYmxjbGljayk9XCJvbkl0ZW1Eb3VibGVDbGljayhlbnRpdHkpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0Zvb3RlclwiPlxuICAgICAgICAgICAgPHRyIG1hdC1mb290ZXItcm93ICptYXRGb290ZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zSW5uZXI7IHN0aWNreTogdHJ1ZVwiPjwvdHI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEYXRhVmFsaWQoZGF0YUNvbnRleHQ/LmRhdGEgfCBhc3luYylcIj5cbiAgICAgIDxlbGRlci1kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yIGNsYXNzPVwiZmxleFwiIFtkYXRhQ29udGV4dF09XCJkYXRhQ29udGV4dFwiPlxuICAgICAgPC9lbGRlci1kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgY2xhc3M9XCJmbGV4LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIFttb2RlXT1cIihkYXRhQ29udGV4dD8ubG9hZGluZyB8IGFzeW5jKSA/ICdpbmRldGVybWluYXRlJyA6ICdkZXRlcm1pbmF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIoKGRhdGFDb250ZXh0Py5zdGF0dXMgfCBhc3luYyk/Lmhhc0Vycm9yKSA/ICd3YXJuJyA6ICdwcmltYXJ5J1wiPlxuICAgIDwvbWF0LXByb2dyZXNzLWJhcj5cblxuICAgIDwhLS0gT3B0aW9uYWwgUGFnaW5hdG9yIFRvb2xiYXIgLS0+XG4gICAgPG1hdC1wYWdpbmF0b3IgI21hdFBhZ2luYXRvciAqbmdJZj1cImlzQWN0aXZlUGFnZWQgJiYgKGRhdGFBY3RpdmVQYWdlZC5wYWdlIHwgYXN5bmMpIGFzIHBhZ2VcIlxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ub25lXCJcbiAgICAgICAgICAgICAgICAgICBbbGVuZ3RoXT1cImRhdGFDb250ZXh0Py50b3RhbCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICBbcGFnZUluZGV4XT1cInBhZ2U/LmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICBbcGFnZVNpemVdPVwicGFnZT8uc2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgW3BhZ2VTaXplT3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIj5cbiAgICA8L21hdC1wYWdpbmF0b3I+XG5cbiAgICA8IS0tIE9wdGlvbmFsIENvbnRpbnVhdGlvbiBGb290ZXIgLS0+XG4gICAgPGRpdiAqbmdJZj1cImlzQ29udGludWFibGVcIiBjbGFzcz1cImxheW91dC1yb3cgZmxleC1ub25lIHBsYWNlLWVuZC1jZW50ZXIgZ2FwLW1kIGVsZGVyLXRhYmxlLWZvb3RlclwiPlxuXG4gICAgICA8c3BhbiBjbGFzcz1cIm1hdC1jYXB0aW9uIG5vc2VsZWN0XCIgc3R5bGU9XCJjb2xvcjogZ3JheVwiPlxuICAgICAgICB7eyhkYXRhQ29udGV4dD8uZGF0YSB8IGFzeW5jKT8ubGVuZ3RofX0gLyB7e3RvdGFsJCB8IGFzeW5jfX1cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gdHlwZT1cImJ1dHRvblwiIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhKGNhbkxvYWRNb3JlJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJkYXRhQ29udGludWFibGUubG9hZE1vcmUoKVwiPlxuICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L21hdC1jYXJkPlxuIl19
@@ -5,10 +5,10 @@ export class ElderTableColumnDirective {
5
5
  constructor(cdkColumn) {
6
6
  this.cdkColumn = cdkColumn;
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableColumnDirective, deps: [{ token: i1.CdkColumnDef }], target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: ElderTableColumnDirective, isStandalone: true, selector: "th[elderColumnDef]", ngImport: i0 }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableColumnDirective, deps: [{ token: i1.CdkColumnDef }], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ElderTableColumnDirective, isStandalone: true, selector: "th[elderColumnDef]", ngImport: i0 }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableColumnDirective, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableColumnDirective, decorators: [{
12
12
  type: Directive,
13
13
  args: [{
14
14
  selector: 'th[elderColumnDef]',
@@ -62,12 +62,12 @@ export class ElderTableExtensionDirective {
62
62
  get extensionGroupIndex() {
63
63
  return this._extensionGroupIndex;
64
64
  }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableExtensionDirective, deps: [{ token: i1.ElderTableModel }, { token: i2.MatSort, optional: true }, { token: ElderTableExtensionDirective, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
66
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: ElderTableExtensionDirective, isStandalone: true, selector: "[elderTableExtension]", inputs: { columnsPosition: "columnsPosition" }, providers: [
65
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableExtensionDirective, deps: [{ token: i1.ElderTableModel }, { token: i2.MatSort, optional: true }, { token: ElderTableExtensionDirective, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
66
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ElderTableExtensionDirective, isStandalone: true, selector: "[elderTableExtension]", inputs: { columnsPosition: "columnsPosition" }, providers: [
67
67
  ElderTableProviders.ExistingOrNewTableModel
68
68
  ], queries: [{ propertyName: "columnDefsQuery", predicate: MatColumnDef }, { propertyName: "elderColumnsQuery", predicate: ElderTableColumnDirective }, { propertyName: "rowDefsQuery", predicate: MatRowDef }], ngImport: i0 }); }
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableExtensionDirective, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableExtensionDirective, decorators: [{
71
71
  type: Directive,
72
72
  args: [{
73
73
  selector: '[elderTableExtension]',
@@ -12,12 +12,12 @@ export class ElderTableRootDirective {
12
12
  * *
13
13
  **************************************************************************/
14
14
  constructor() { }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
16
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: ElderTableRootDirective, isStandalone: true, selector: "[elderTableRoot]", providers: [
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
16
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ElderTableRootDirective, isStandalone: true, selector: "[elderTableRoot]", providers: [
17
17
  ElderTableProviders.ClearTableModel
18
18
  ], ngImport: i0 }); }
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableRootDirective, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableRootDirective, decorators: [{
21
21
  type: Directive,
22
22
  args: [{
23
23
  selector: '[elderTableRoot]',
@@ -128,10 +128,10 @@ export class ElderTableRowDirective {
128
128
  this.renderer.removeClass(this.rowRef.nativeElement, activatedClass);
129
129
  }
130
130
  }
131
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableRowDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
132
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: ElderTableRowDirective, isStandalone: true, selector: "tr[elderTableRow]", inputs: { model: ["elderTableRow", "model"] }, host: { listeners: { "focus": "onFocus($event)", "blur": "onBlur($event)", "click": "onClick($event)" } }, exportAs: ["elderTableRow"], ngImport: i0 }); }
131
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableRowDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
132
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ElderTableRowDirective, isStandalone: true, selector: "tr[elderTableRow]", inputs: { model: ["elderTableRow", "model"] }, host: { listeners: { "focus": "onFocus($event)", "blur": "onBlur($event)", "click": "onClick($event)" } }, exportAs: ["elderTableRow"], ngImport: i0 }); }
133
133
  }
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableRowDirective, decorators: [{
134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableRowDirective, decorators: [{
135
135
  type: Directive,
136
136
  args: [{
137
137
  selector: 'tr[elderTableRow]',
@@ -10,10 +10,10 @@ export class ElderTableSortDirective {
10
10
  this.logger = LoggerFactory.getLogger(this.constructor.name);
11
11
  this.logger.warn('[elderTableSort] directive is no longer required. Use matSort on ElderTableComponent directly.');
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableSortDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: ElderTableSortDirective, isStandalone: true, selector: "[elderTableSort]", ngImport: i0 }); }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableSortDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ElderTableSortDirective, isStandalone: true, selector: "[elderTableSort]", ngImport: i0 }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableSortDirective, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableSortDirective, decorators: [{
17
17
  type: Directive,
18
18
  args: [{
19
19
  selector: '[elderTableSort]',
@@ -44,8 +44,8 @@ export * from './elder-table/elder-table-toolbar.directive';
44
44
  export * from './elder-table-extension.directive';
45
45
  export * from './elder-table-root.directive';
46
46
  export class ElderTableModule {
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
48
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.4", ngImport: i0, type: ElderTableModule, imports: [CommonModule, RouterModule, FormsModule,
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
48
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: ElderTableModule, imports: [CommonModule, RouterModule, FormsModule,
49
49
  // Material
50
50
  MatDividerModule,
51
51
  MatCheckboxModule,
@@ -76,7 +76,7 @@ export class ElderTableModule {
76
76
  ElderTableExtensionDirective,
77
77
  ElderTableRootDirective,
78
78
  ElderDeleteActiveDirective] }); }
79
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableModule, providers: [
79
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableModule, providers: [
80
80
  {
81
81
  provide: MatPaginatorIntl, deps: [TranslateService],
82
82
  useClass: ElderPaginatorIntl
@@ -96,7 +96,7 @@ export class ElderTableModule {
96
96
  ElderFormsDirectivesModule, MatCardModule,
97
97
  ElderTableComponent, ElderDataCommonModule] }); }
98
98
  }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableModule, decorators: [{
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableModule, decorators: [{
100
100
  type: NgModule,
101
101
  args: [{
102
102
  imports: [
@@ -156,10 +156,10 @@ export class ElderTableModel {
156
156
  return columns;
157
157
  }));
158
158
  }
159
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableModel, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
160
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableModel }); }
159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableModel, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
160
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableModel }); }
161
161
  }
162
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderTableModel, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderTableModel, decorators: [{
163
163
  type: Injectable
164
164
  }], ctorParameters: () => [] });
165
165
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9tb2RlbC9lbGRlci10YWJsZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUVoRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRTVELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFtQixpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDOztBQUUxRSxNQUFNLE9BQU8sZUFBZTtJQUVuQixNQUFNLENBQUMsTUFBTSxDQUNsQixVQUFrQjtRQUVsQixPQUFPLGVBQWUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxNQUFNLENBQUMsRUFBRSxDQUNkLEVBQVUsRUFDVixVQUFrQjtRQUVsQixPQUFPLElBQUksZUFBZSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsWUFDa0IsRUFBVSxFQUNWLEtBQWE7UUFEYixPQUFFLEdBQUYsRUFBRSxD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QUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs4R0F4TFUsZUFBZTtrSEFBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtDZGtDb2x1bW5EZWYsIENka1Jvd0RlZn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1JlYWN0aXZlTWFwfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vcmVhY3RpdmUtbWFwJztcbmltcG9ydCB7TWF0U29ydH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQge1V1aWRVdGlsfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdXRpbHMvdXVpZC11dGlsJztcbmltcG9ydCB7bmF0dXJhbFZhbHVlQ29tcGFyYXRvcn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZmllbGQtY29tcGFyYXRvcic7XG5pbXBvcnQge0NvbGxlY3Rpb25VdGlsfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vdXRpbHMvY29sbGVjdGlvbi11dGlsJztcbmltcG9ydCB7RWxkZXJDb2x1bW5Hcm91cCwgRWxkZXJDb2x1bW5MYXlvdXR9IGZyb20gJy4vZWxkZXItY29sdW1uLWxheW91dCc7XG5cbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlR3JvdXAge1xuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlKFxuICAgIGdyb3VwSW5kZXg6IG51bWJlclxuICApOiBFbGRlclRhYmxlR3JvdXAge1xuICAgIHJldHVybiBFbGRlclRhYmxlR3JvdXAub2YoVXVpZFV0aWwud2Vha1V1aWQ0KCksIGdyb3VwSW5kZXgpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZihcbiAgICBpZDogc3RyaW5nLFxuICAgIGdyb3VwSW5kZXg6IG51bWJlclxuICApOiBFbGRlclRhYmxlR3JvdXAge1xuICAgIHJldHVybiBuZXcgRWxkZXJUYWJsZUdyb3VwKGlkLCBncm91cEluZGV4KTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBpbmRleDogbnVtYmVyXG4gICkge1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlTW9kZWw8VCA9IGFueT4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGVsZGVyQ29sdW1uTGF5b3V0ID0gbmV3IEVsZGVyQ29sdW1uTGF5b3V0KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZ3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIEVsZGVyVGFibGVHcm91cD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY29sdW1uR3JvdXBzID0gbmV3IFJlYWN0aXZlTWFwPHN0cmluZywgRWxkZXJDb2x1bW5Hcm91cD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcm93RGVmR3JvdXBzID0gbmV3IFJlYWN0aXZlTWFwPHN0cmluZywgQ2RrUm93RGVmPFQ+W10+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NvcnRHcm91cHMgPSBuZXcgUmVhY3RpdmVNYXA8c3RyaW5nLCBNYXRTb3J0PigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25WaXNpYmxlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBUaGUgY29sdW1ucyB0byBkaXNwbGF5IGV4cGxpY2l0bHkgc2V0IGJ5IHRoZSB1c2VyLlxuICAgKiBXZSBuZWVkIHRvIHN1cHBvcnQgaW5zZXJ0aW5nIGRpc3BsYXkgY29sdW1ucyBieSBpbmRleCBvciBhbmNob3JlZCB0byBleGlzdGluZyBvbmVzLlxuICAgKiBiZWZvcmUoW2NvbHVtbnNdKVxuICAgKiBhZnRlcigpXG4gICAqIHN0YXJ0KClcbiAgICogZW5kKFtdKVxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBkaXNwbGF5ZWRDb2x1bW5zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KHVuZGVmaW5lZCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnNJbm5lciQ6IE9ic2VydmFibGU8c3RyaW5nW10+O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZGlzcGxheWVkQ29sdW1uc0lubmVyJCA9IHRoaXMucmVuZGVyRGlzcGxheWVkQ29sdW1ucyhcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyQsXG4gICAgICB0aGlzLmNvbHVtbkRlZnMkLFxuICAgICAgdGhpcy5zZWxlY3Rpb25WaXNpYmxlJFxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc2V0IHNlbGVjdGlvblZpc2libGUodmlzaWJsZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2VsZWN0aW9uVmlzaWJsZSQubmV4dCh2aXNpYmxlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VsZWN0aW9uVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25WaXNpYmxlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIHNldCBkaXNwbGF5ZWRDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zJC5uZXh0KGNvbHVtbnMpO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNwbGF5ZWRDb2x1bW5zKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFJlbmRlcmVkIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBjb2x1bW5EZWZzJCgpOiBPYnNlcnZhYmxlPENka0NvbHVtbkRlZltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbkdyb3Vwcy52YWx1ZXMkLnBpcGUoXG4gICAgICBtYXAoZ3JvdXBzID0+IHRoaXMuZWxkZXJDb2x1bW5MYXlvdXQubGF5b3V0Q29sdW1ucyhncm91cHMpKSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCByb3dEZWZzJCgpOiBPYnNlcnZhYmxlPENka1Jvd0RlZjxUPltdPiB7XG4gICAgcmV0dXJuIHRoaXMuc29ydEFuZEZsYXR0ZW4odGhpcy5fcm93RGVmR3JvdXBzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc29ydHMkKCk6IE9ic2VydmFibGU8TWF0U29ydFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX3NvcnRHcm91cHMudmFsdWVzJDtcbiAgfVxuXG4gIC8vIC0tLVxuXG4gIHByaXZhdGUgdmFsdWVzU29ydGVkQnlHcm91cEluZGV4PFRWYWx1ZT4obXlNYXA6IE1hcDxzdHJpbmcsIFRWYWx1ZT4sIGdyb3VwczogTWFwPHN0cmluZywgRWxkZXJUYWJsZUdyb3VwPik6IFRWYWx1ZVtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShteU1hcC5lbnRyaWVzKCkpXG4gICAgICAuc29ydCgoW2Ffa2V5XSwgW2Jfa2V5XSkgPT4ge1xuICAgICAgICBjb25zdCBncnBBSW5kZXggPSBncm91cHMuZ2V0KGFfa2V5KT8uaW5kZXggPz8gMDtcbiAgICAgICAgY29uc3QgZ3JwQkluZGV4ID0gZ3JvdXBzLmdldChiX2tleSk/LmluZGV4ID8/IDA7XG4gICAgICAgIHJldHVybiBuYXR1cmFsVmFsdWVDb21wYXJhdG9yKGdycEFJbmRleCwgZ3JwQkluZGV4KTtcbiAgICAgIH0pLm1hcCgoW2Ffa2V5LCBhX3ZhbHVlXSkgPT4gYV92YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNvcnRBbmRGbGF0dGVuPFRWYWx1ZT4ocmVhY3RNYXA6IFJlYWN0aXZlTWFwPHN0cmluZywgVFZhbHVlW10+KTogT2JzZXJ2YWJsZTxUVmFsdWVbXT4ge1xuICAgIHJldHVybiByZWFjdE1hcC5tYXAkLnBpcGUoXG4gICAgICBtYXAobXlNYXAgPT4gdGhpcy52YWx1ZXNTb3J0ZWRCeUdyb3VwSW5kZXgobXlNYXAsIHRoaXMuX2dyb3VwcykpLFxuICAgICAgbWFwKGNvbHVtbnMgPT4gQ29sbGVjdGlvblV0aWwuZmxhdHRlbihjb2x1bW5zKSlcbiAgICApO1xuICB9XG5cbiAgLypcbiAgcHVibGljIGdldCBzb3J0SGVhZGVycyQoKTogT2JzZXJ2YWJsZTxNYXRTb3J0SGVhZGVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5fc29ydEdyb3Vwcy52YWx1ZXMkLnBpcGUoXG4gICAgICBtYXAoZ3JvdXBzID0+IHRoaXMuZmxhdHRlbkRlZnMoZ3JvdXBzKSlcbiAgICApO1xuICB9Ki9cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgcmVnaXN0ZXJHcm91cChncm91cDogRWxkZXJUYWJsZUdyb3VwKTogdm9pZCB7IC8vIFRPRE9cbiAgICB0aGlzLl9ncm91cHMuc2V0KGdyb3VwLmlkLCBncm91cCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlQ29sdW1uR3JvdXAoZ3JvdXA6IEVsZGVyVGFibGVHcm91cCwgY29sdW1uR3JvdXA6IEVsZGVyQ29sdW1uR3JvdXApOiB2b2lkIHtcbiAgICB0aGlzLl9jb2x1bW5Hcm91cHMuc2V0KGdyb3VwLmlkLCBjb2x1bW5Hcm91cCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUm93RGVmcyhncm91cDogRWxkZXJUYWJsZUdyb3VwLCByb3dzOiBDZGtSb3dEZWY8VD5bXSk6IHZvaWQge1xuICAgIHRoaXMuX3Jvd0RlZkdyb3Vwcy5zZXQoZ3JvdXAuaWQsIHJvd3MpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVNvcnRHcm91cChncm91cDogRWxkZXJUYWJsZUdyb3VwLCBzb3J0OiBNYXRTb3J0KTogdm9pZCB7XG4gICAgdGhpcy5fc29ydEdyb3Vwcy5zZXQoZ3JvdXAuaWQsIHNvcnQpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyQ29sdW1uRGVmR3JvdXAoZ3JvdXA6IEVsZGVyVGFibGVHcm91cCkge1xuICAgIHRoaXMuX2NvbHVtbkdyb3Vwcy5kZWxldGUoZ3JvdXAuaWQpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyUm93RGVmR3JvdXAoZ3JvdXA6IEVsZGVyVGFibGVHcm91cCkge1xuICAgIHRoaXMuX3Jvd0RlZkdyb3Vwcy5kZWxldGUoZ3JvdXAuaWQpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyU29ydEdyb3VwKGdyb3VwOiBFbGRlclRhYmxlR3JvdXApIHtcbiAgICB0aGlzLl9zb3J0R3JvdXBzLmRlbGV0ZShncm91cC5pZCk7XG4gIH1cblxuICBwdWJsaWMgZGVSZWdpc3Rlckdyb3VwKGdyb3VwOiBFbGRlclRhYmxlR3JvdXApIHtcbiAgICB0aGlzLmNsZWFyQ29sdW1uRGVmR3JvdXAoZ3JvdXApO1xuICAgIHRoaXMuY2xlYXJSb3dEZWZHcm91cChncm91cCk7XG4gICAgdGhpcy5jbGVhclNvcnRHcm91cChncm91cCk7XG4gICAgdGhpcy5fZ3JvdXBzLmRlbGV0ZShncm91cC5pZCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlbmRlckRpc3BsYXllZENvbHVtbnMoXG4gICAgdXNlckRlZmluZWRDb2x1bW5zJDogT2JzZXJ2YWJsZTxzdHJpbmdbXT4sXG4gICAgY29sdW1uRGVmcyQ6IE9ic2VydmFibGU8Q2RrQ29sdW1uRGVmW10+LFxuICAgIHNlbGVjdGlvblZpc2libGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG4gICk6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdXNlckRlZmluZWRDb2x1bW5zJCwgY29sdW1uRGVmcyQsIHNlbGVjdGlvblZpc2libGUkXSkucGlwZShcbiAgICAgIG1hcCgoW2Rpc3BsYXllZENvbHVtbnMsIGNvbHVtbkRlZnMsIHNlbGVjdGlvblZpc2libGVdKSA9PiB7XG4gICAgICAgIGxldCBjb2x1bW5zID0gZGlzcGxheWVkQ29sdW1ucztcbiAgICAgICAgaWYgKCFjb2x1bW5zKSB7XG4gICAgICAgICAgY29sdW1ucyA9IFtdO1xuICAgICAgICAgIC8vIElmIHRoZSB1c2VyIGRpZCBub3QgZGVmaW5lIGNvbHVtbnMgdG8gZGlzcGxheVxuICAgICAgICAgIC8vIEFzc3VtZSBoZSB3YW50cyBhbGwgaGlzIG93biBjb2x1bW5zIGluIGdpdmVuIG9yZGVyXG4gICAgICAgICAgaWYgKGNvbHVtbkRlZnMpIHtcbiAgICAgICAgICAgIGNvbHVtbkRlZnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICAgICAgICBjb2x1bW5zLnB1c2goY29sLm5hbWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvblZpc2libGUpIHtcbiAgICAgICAgICBjb2x1bW5zID0gWydzZWxlY3QnLCAuLi5jb2x1bW5zXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29sdW1ucztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -17,10 +17,10 @@ export class ElderConfirmDialogComponent {
17
17
  this.dialogRef = dialogRef;
18
18
  this.yesNo = false;
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderConfirmDialogComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
21
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: ElderConfirmDialogComponent, isStandalone: true, selector: "elder-confirm-dialog", ngImport: i0, template: "<div class=\"layout-col full\">\n <mat-toolbar elderTheme class=\"flex-none\">\n <mat-toolbar-row class=\"gap-sm\">\n <button mat-icon-button [matDialogClose]=\"false\"><mat-icon>close</mat-icon></button>\n <h3>{{ title | translate }}</h3>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"layout-col flex p-md\">\n <div class=\"flex\">\n <p translate>{{ message }}</p>\n </div>\n\n <div class=\"layout-row place-end-center gap-md flex-none\" cdkTrapFocus>\n <button type=\"button\" mat-button\n (click)=\"dialogRef.close(false)\">\n {{ (yesNo ? \"actions.no\" : \"actions.cancel\") | translate}}\n </button>\n\n <button type=\"submit\" mat-raised-button cdkFocusInitial\n (click)=\"dialogRef.close(true)\">\n {{ (yesNo ? \"actions.yes\" : \"actions.ok\") | translate}}\n </button>\n </div>\n </div>\n</div>\n\n\n\n\n\n\n\n\n", styles: [""], dependencies: [{ kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: ElderThemeDirective, selector: "[elderTheme]" }, { kind: "directive", type: MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderConfirmDialogComponent, deps: [{ token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
21
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: ElderConfirmDialogComponent, isStandalone: true, selector: "elder-confirm-dialog", ngImport: i0, template: "<div class=\"layout-col full\">\n <mat-toolbar elderTheme class=\"flex-none\">\n <mat-toolbar-row class=\"gap-sm\">\n <button mat-icon-button [matDialogClose]=\"false\"><mat-icon>close</mat-icon></button>\n <h3>{{ title | translate }}</h3>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"layout-col flex p-md\">\n <div class=\"flex\">\n <p translate>{{ message }}</p>\n </div>\n\n <div class=\"layout-row place-end-center gap-md flex-none\" cdkTrapFocus>\n <button type=\"button\" mat-button\n (click)=\"dialogRef.close(false)\">\n {{ (yesNo ? \"actions.no\" : \"actions.cancel\") | translate}}\n </button>\n\n <button type=\"submit\" mat-raised-button cdkFocusInitial\n (click)=\"dialogRef.close(true)\">\n {{ (yesNo ? \"actions.yes\" : \"actions.ok\") | translate}}\n </button>\n </div>\n </div>\n</div>\n\n\n\n\n\n\n\n\n", styles: [""], dependencies: [{ kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: ElderThemeDirective, selector: "[elderTheme]" }, { kind: "directive", type: MatToolbarRow, selector: "mat-toolbar-row", exportAs: ["matToolbarRow"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }] }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: ElderConfirmDialogComponent, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ElderConfirmDialogComponent, decorators: [{
24
24
  type: Component,
25
25
  args: [{ selector: 'elder-confirm-dialog', standalone: true, imports: [MatToolbar, ElderThemeDirective, MatToolbarRow, MatIconButton, MatDialogClose, MatIcon, TranslateModule, CdkTrapFocus, MatButton], template: "<div class=\"layout-col full\">\n <mat-toolbar elderTheme class=\"flex-none\">\n <mat-toolbar-row class=\"gap-sm\">\n <button mat-icon-button [matDialogClose]=\"false\"><mat-icon>close</mat-icon></button>\n <h3>{{ title | translate }}</h3>\n </mat-toolbar-row>\n </mat-toolbar>\n\n <div class=\"layout-col flex p-md\">\n <div class=\"flex\">\n <p translate>{{ message }}</p>\n </div>\n\n <div class=\"layout-row place-end-center gap-md flex-none\" cdkTrapFocus>\n <button type=\"button\" mat-button\n (click)=\"dialogRef.close(false)\">\n {{ (yesNo ? \"actions.no\" : \"actions.cancel\") | translate}}\n </button>\n\n <button type=\"submit\" mat-raised-button cdkFocusInitial\n (click)=\"dialogRef.close(true)\">\n {{ (yesNo ? \"actions.yes\" : \"actions.ok\") | translate}}\n </button>\n </div>\n </div>\n</div>\n\n\n\n\n\n\n\n\n" }]
26
26
  }], ctorParameters: () => [{ type: i1.MatDialogRef }] });