@elderbyte/ngx-starter 15.17.4 → 15.18.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 (306) hide show
  1. package/esm2020/lib/common/enums/elder-enum-translation.service.mjs +3 -3
  2. package/esm2020/lib/common/forms/elder-form-field-control-base.directive.mjs +3 -3
  3. package/esm2020/lib/common/forms/elder-from-field-base.mjs +3 -3
  4. package/esm2020/lib/common/forms/elder-from-field-customizable-base.mjs +3 -3
  5. package/esm2020/lib/common/forms/elder-from-field-entity-base.mjs +3 -3
  6. package/esm2020/lib/common/forms/elder-from-field-multi-entity-base.mjs +3 -3
  7. package/esm2020/lib/common/forms/form-field-base.component.mjs +3 -3
  8. package/esm2020/lib/common/forms/multi-model-base.component.mjs +3 -3
  9. package/esm2020/lib/common/forms/template-composite-control.mjs +3 -3
  10. package/esm2020/lib/common/forms/value-accessor-base.mjs +3 -3
  11. package/esm2020/lib/common/http/http-client-builder.service.mjs +3 -3
  12. package/esm2020/lib/common/http/http-client-pristine.mjs +3 -3
  13. package/esm2020/lib/common/http/transfer/data-transfer-factory.mjs +3 -3
  14. package/esm2020/lib/common/url/elder-router.service.mjs +3 -3
  15. package/esm2020/lib/common/url/elder-url-fragment-params.service.mjs +3 -3
  16. package/esm2020/lib/components/access-denied/elder-access-denied.component.mjs +3 -3
  17. package/esm2020/lib/components/access-denied/elder-access-denied.module.mjs +4 -4
  18. package/esm2020/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +3 -3
  19. package/esm2020/lib/components/auditing/elder-audit.module.mjs +4 -4
  20. package/esm2020/lib/components/badge/elder-badge/elder-badge.component.mjs +3 -3
  21. package/esm2020/lib/components/badge/elder-badge.directive.mjs +3 -3
  22. package/esm2020/lib/components/badge/elder-badge.module.mjs +4 -4
  23. package/esm2020/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -3
  24. package/esm2020/lib/components/button-group/elder-button-group.module.mjs +4 -4
  25. package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +3 -3
  26. package/esm2020/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +3 -3
  27. package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +3 -3
  28. package/esm2020/lib/components/card-organizer/elder-card-organizer.module.mjs +4 -4
  29. package/esm2020/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -3
  30. package/esm2020/lib/components/cards/elder-card/elder-card.component.mjs +18 -18
  31. package/esm2020/lib/components/cards/elder-card/elder-card.module.mjs +4 -4
  32. package/esm2020/lib/components/chips/elder-chip-label.directive.mjs +3 -3
  33. package/esm2020/lib/components/chips/elder-chips.module.mjs +4 -4
  34. package/esm2020/lib/components/connectivity/elder-connectivity.module.mjs +4 -4
  35. package/esm2020/lib/components/connectivity/elder-connectivity.service.mjs +3 -3
  36. package/esm2020/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +3 -3
  37. package/esm2020/lib/components/containers/elder-containers.module.mjs +4 -4
  38. package/esm2020/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +3 -3
  39. package/esm2020/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +3 -3
  40. package/esm2020/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +3 -3
  41. package/esm2020/lib/components/csv/elder-csv.module.mjs +4 -4
  42. package/esm2020/lib/components/currency/elder-currency.module.mjs +4 -4
  43. package/esm2020/lib/components/currency/elder-currency.pipe.mjs +3 -3
  44. package/esm2020/lib/components/data-transfer/elder-data-transfer.module.mjs +4 -4
  45. package/esm2020/lib/components/data-transfer/elder-data-transfer.service.mjs +3 -3
  46. package/esm2020/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +3 -3
  47. package/esm2020/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +3 -3
  48. package/esm2020/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
  49. package/esm2020/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +3 -3
  50. package/esm2020/lib/components/data-view/base/elder-data-view-base.mjs +3 -3
  51. package/esm2020/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +3 -3
  52. package/esm2020/lib/components/data-view/common/elder-data-common.module.mjs +4 -4
  53. package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +6 -6
  54. package/esm2020/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +3 -3
  55. package/esm2020/lib/components/data-view/common/selection/data-context-selection.directive.mjs +3 -3
  56. package/esm2020/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +3 -3
  57. package/esm2020/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +9 -9
  58. package/esm2020/lib/components/data-view/grid/elder-grid.module.mjs +4 -4
  59. package/esm2020/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +8 -8
  60. package/esm2020/lib/components/data-view/master-detail/elder-detail.directive.mjs +10 -8
  61. package/esm2020/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +28 -13
  62. package/esm2020/lib/components/data-view/master-detail/elder-master-detail-activation-event.mjs +12 -0
  63. package/esm2020/lib/components/data-view/master-detail/elder-master-detail-provider.mjs +7 -7
  64. package/esm2020/lib/components/data-view/master-detail/elder-master-detail.component.mjs +10 -10
  65. package/esm2020/lib/components/data-view/master-detail/elder-master-detail.module.mjs +7 -6
  66. package/esm2020/lib/components/data-view/master-detail/elder-master-detail.service.mjs +73 -0
  67. package/esm2020/lib/components/data-view/master-detail/elder-master.directive.mjs +3 -3
  68. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +3 -3
  69. package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +4 -4
  70. package/esm2020/lib/components/data-view/table/activation/activation-event-source.mjs +7 -0
  71. package/esm2020/lib/components/data-view/table/activation/active-item-event.mjs +9 -0
  72. package/esm2020/lib/components/data-view/table/activation/elder-activation-context.mjs +2 -0
  73. package/esm2020/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +6 -6
  74. package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +29 -19
  75. package/esm2020/lib/components/data-view/table/activation/item-activation-options.mjs +7 -0
  76. package/esm2020/lib/components/data-view/table/activation/public_api.mjs +8 -0
  77. package/esm2020/lib/components/data-view/table/elder-number-cell.directive.mjs +3 -3
  78. package/esm2020/lib/components/data-view/table/elder-paginator-intl.mjs +3 -3
  79. package/esm2020/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +3 -3
  80. package/esm2020/lib/components/data-view/table/elder-table/elder-table.component.mjs +3 -3
  81. package/esm2020/lib/components/data-view/table/elder-table-column.directive.mjs +3 -3
  82. package/esm2020/lib/components/data-view/table/elder-table-extension.directive.mjs +3 -3
  83. package/esm2020/lib/components/data-view/table/elder-table-root.directive.mjs +3 -3
  84. package/esm2020/lib/components/data-view/table/elder-table-row.directive.mjs +30 -17
  85. package/esm2020/lib/components/data-view/table/elder-table-sort.directive.mjs +3 -3
  86. package/esm2020/lib/components/data-view/table/elder-table.module.mjs +10 -12
  87. package/esm2020/lib/components/data-view/table/model/elder-table-model.mjs +3 -3
  88. package/esm2020/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +3 -3
  89. package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +4 -4
  90. package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +3 -3
  91. package/esm2020/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +3 -3
  92. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +3 -3
  93. package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +3 -3
  94. package/esm2020/lib/components/errors/elder-error.module.mjs +4 -4
  95. package/esm2020/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +3 -3
  96. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +3 -3
  97. package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +4 -4
  98. package/esm2020/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -3
  99. package/esm2020/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +3 -3
  100. package/esm2020/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +3 -3
  101. package/esm2020/lib/components/files/elder-file-drop-zone.directive.mjs +3 -3
  102. package/esm2020/lib/components/files/elder-file-select.directive.mjs +3 -3
  103. package/esm2020/lib/components/files/elder-file.module.mjs +4 -4
  104. package/esm2020/lib/components/files/file-select/file-select.component.mjs +3 -3
  105. package/esm2020/lib/components/files/file-upload/file-upload.component.mjs +3 -3
  106. package/esm2020/lib/components/forms/clipboard/elder-clipboard.service.mjs +3 -3
  107. package/esm2020/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +3 -3
  108. package/esm2020/lib/components/forms/directives/elder-clipboard-put.directive.mjs +3 -3
  109. package/esm2020/lib/components/forms/directives/elder-delayed-focus.directive.mjs +3 -3
  110. package/esm2020/lib/components/forms/directives/elder-form-field-dense.directive.mjs +3 -3
  111. package/esm2020/lib/components/forms/directives/elder-form-field-label.directive.mjs +3 -3
  112. package/esm2020/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +3 -3
  113. package/esm2020/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +3 -3
  114. package/esm2020/lib/components/forms/directives/elder-forms-directives.module.mjs +4 -4
  115. package/esm2020/lib/components/forms/directives/elder-input-pattern.directive.mjs +3 -3
  116. package/esm2020/lib/components/forms/directives/elder-key-event.directive.mjs +3 -3
  117. package/esm2020/lib/components/forms/directives/elder-next-focusable.directive.mjs +3 -3
  118. package/esm2020/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +3 -3
  119. package/esm2020/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +3 -3
  120. package/esm2020/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +3 -3
  121. package/esm2020/lib/components/forms/directives/elder-touched.directive.mjs +3 -3
  122. package/esm2020/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +3 -3
  123. package/esm2020/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +3 -3
  124. package/esm2020/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +3 -3
  125. package/esm2020/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +3 -3
  126. package/esm2020/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +3 -3
  127. package/esm2020/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +3 -3
  128. package/esm2020/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +3 -3
  129. package/esm2020/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +3 -3
  130. package/esm2020/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +3 -3
  131. package/esm2020/lib/components/forms/elder-forms.module.mjs +4 -4
  132. package/esm2020/lib/components/forms/search/elder-search-context.directive.mjs +3 -3
  133. package/esm2020/lib/components/forms/search/elder-search-input.directive.mjs +3 -3
  134. package/esm2020/lib/components/forms/search/elder-search.module.mjs +4 -4
  135. package/esm2020/lib/components/forms/search/search-box/elder-search-box.component.mjs +3 -3
  136. package/esm2020/lib/components/forms/search/search-box/elder-search-panel.component.mjs +3 -3
  137. package/esm2020/lib/components/global-search/elder-global-search.component.mjs +3 -3
  138. package/esm2020/lib/components/global-search/elder-global-search.module.mjs +4 -4
  139. package/esm2020/lib/components/global-search/elder-global-search.service.mjs +3 -3
  140. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +3 -3
  141. package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -4
  142. package/esm2020/lib/components/headers/elder-header/elder-header.component.mjs +3 -3
  143. package/esm2020/lib/components/headers/elder-header.module.mjs +4 -4
  144. package/esm2020/lib/components/http-support/elder-http-client.service.mjs +3 -3
  145. package/esm2020/lib/components/i18n/entities/elder-i18n-entities.module.mjs +4 -4
  146. package/esm2020/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +3 -3
  147. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +3 -3
  148. package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +3 -3
  149. package/esm2020/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +3 -3
  150. package/esm2020/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +3 -3
  151. package/esm2020/lib/components/i18n/entities/elder-localized-texts.directive.mjs +3 -3
  152. package/esm2020/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +3 -3
  153. package/esm2020/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +3 -3
  154. package/esm2020/lib/components/i18n/entities/picker/localisation-picker.service.mjs +3 -3
  155. package/esm2020/lib/components/i18n/language/elder-language-interceptor.mjs +3 -3
  156. package/esm2020/lib/components/i18n/language/elder-language.module.mjs +4 -4
  157. package/esm2020/lib/components/i18n/language/elder-language.service.mjs +3 -3
  158. package/esm2020/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +3 -3
  159. package/esm2020/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +4 -4
  160. package/esm2020/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +3 -3
  161. package/esm2020/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +3 -3
  162. package/esm2020/lib/components/iframes/elder-iframe.module.mjs +4 -4
  163. package/esm2020/lib/components/iframes/iframe-close.directive.mjs +3 -3
  164. package/esm2020/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +3 -3
  165. package/esm2020/lib/components/iframes/iframe-host/iframe-host.component.mjs +3 -3
  166. package/esm2020/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +3 -3
  167. package/esm2020/lib/components/iframes/iframe.service.mjs +3 -3
  168. package/esm2020/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +3 -3
  169. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +3 -3
  170. package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +4 -4
  171. package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +3 -3
  172. package/esm2020/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +3 -3
  173. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +3 -3
  174. package/esm2020/lib/components/input/autocomplete/elder-autocomplete.module.mjs +4 -4
  175. package/esm2020/lib/components/labels/elder-labels.module.mjs +4 -4
  176. package/esm2020/lib/components/labels/labels-input/labels-input.component.mjs +3 -3
  177. package/esm2020/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +3 -3
  178. package/esm2020/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +3 -3
  179. package/esm2020/lib/components/measures/directives/elder-unit-select.directive.mjs +3 -3
  180. package/esm2020/lib/components/measures/elder-measures.module.mjs +8 -8
  181. package/esm2020/lib/components/measures/elder-quantity-transform.pipe.mjs +3 -3
  182. package/esm2020/lib/components/measures/elder-quantity.pipe.mjs +3 -3
  183. package/esm2020/lib/components/measures/elder-unit.service.mjs +3 -3
  184. package/esm2020/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +3 -3
  185. package/esm2020/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +3 -3
  186. package/esm2020/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +3 -3
  187. package/esm2020/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +3 -3
  188. package/esm2020/lib/components/measures/util/elder-quantity.service.mjs +3 -3
  189. package/esm2020/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +3 -3
  190. package/esm2020/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +4 -4
  191. package/esm2020/lib/components/navigation/nav/elder-nav.module.mjs +4 -4
  192. package/esm2020/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +3 -3
  193. package/esm2020/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +3 -3
  194. package/esm2020/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -3
  195. package/esm2020/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +3 -3
  196. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.module.mjs +4 -4
  197. package/esm2020/lib/components/navigation/toolbar/elder-toolbar.service.mjs +3 -3
  198. package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +3 -3
  199. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +3 -3
  200. package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +3 -3
  201. package/esm2020/lib/components/overlays/elder-overlay-origin.directive.mjs +3 -3
  202. package/esm2020/lib/components/overlays/elder-overlay-trigger.directive.mjs +3 -3
  203. package/esm2020/lib/components/overlays/elder-overlay.component.mjs +3 -3
  204. package/esm2020/lib/components/overlays/elder-overlay.module.mjs +4 -4
  205. package/esm2020/lib/components/panels/card-panel/elder-card-panel.component.mjs +3 -3
  206. package/esm2020/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +3 -3
  207. package/esm2020/lib/components/panels/elder-panel.module.mjs +4 -4
  208. package/esm2020/lib/components/panels/flat/elder-panel.component.mjs +3 -3
  209. package/esm2020/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +3 -3
  210. package/esm2020/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +9 -9
  211. package/esm2020/lib/components/scrollbar/elder-scrollbar.directive.mjs +3 -3
  212. package/esm2020/lib/components/scrollbar/elder-scrollbar.module.mjs +4 -4
  213. package/esm2020/lib/components/select/auto/elder-auto-select-first.directive.mjs +3 -3
  214. package/esm2020/lib/components/select/elder-select-base.mjs +3 -3
  215. package/esm2020/lib/components/select/elder-select-chip.directive.mjs +9 -9
  216. package/esm2020/lib/components/select/elder-select-on-tab.directive.mjs +3 -3
  217. package/esm2020/lib/components/select/elder-select-value.directive.mjs +3 -3
  218. package/esm2020/lib/components/select/elder-select.module.mjs +4 -4
  219. package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +3 -3
  220. package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +4 -4
  221. package/esm2020/lib/components/select/multi/elder-multi-select-form-field.mjs +3 -3
  222. package/esm2020/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +3 -3
  223. package/esm2020/lib/components/select/popup/selection-model-popup.directive.mjs +3 -3
  224. package/esm2020/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
  225. package/esm2020/lib/components/select/single/elder-clear-select.directive.mjs +3 -3
  226. package/esm2020/lib/components/select/single/elder-select/elder-select.component.mjs +3 -3
  227. package/esm2020/lib/components/select/single/elder-select-form-field.mjs +3 -3
  228. package/esm2020/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +4 -4
  229. package/esm2020/lib/components/select-chip-list/elder-chip-list-select.module.mjs +4 -4
  230. package/esm2020/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +3 -3
  231. package/esm2020/lib/components/shell/drawers/elder-router-outlet.service.mjs +3 -3
  232. package/esm2020/lib/components/shell/elder-shell-slot.directive.mjs +3 -3
  233. package/esm2020/lib/components/shell/elder-shell.module.mjs +4 -4
  234. package/esm2020/lib/components/shell/elder-shell.service.mjs +3 -3
  235. package/esm2020/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +3 -3
  236. package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +12 -12
  237. package/esm2020/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +3 -3
  238. package/esm2020/lib/components/tabs/elder-tab/elder-tab.directive.mjs +3 -3
  239. package/esm2020/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +3 -3
  240. package/esm2020/lib/components/tabs/elder-tab.module.mjs +4 -4
  241. package/esm2020/lib/components/theme/elder-theme-applier.directive.mjs +3 -3
  242. package/esm2020/lib/components/theme/elder-theme-preference.service.mjs +3 -3
  243. package/esm2020/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +3 -3
  244. package/esm2020/lib/components/theme/elder-theme.directive.mjs +3 -3
  245. package/esm2020/lib/components/theme/elder-theme.module.mjs +4 -4
  246. package/esm2020/lib/components/theme/elder-theme.service.mjs +3 -3
  247. package/esm2020/lib/components/time/date-adapters/custom-date-adapter.mjs +3 -3
  248. package/esm2020/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +3 -3
  249. package/esm2020/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +3 -3
  250. package/esm2020/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +3 -3
  251. package/esm2020/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +3 -3
  252. package/esm2020/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +3 -3
  253. package/esm2020/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +3 -3
  254. package/esm2020/lib/components/time/elder-time.module.mjs +4 -4
  255. package/esm2020/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +3 -3
  256. package/esm2020/lib/components/time/pipes/to-iso-date-string.pipe.mjs +3 -3
  257. package/esm2020/lib/components/toasts/elder-toast.module.mjs +4 -4
  258. package/esm2020/lib/components/toasts/elder-toast.service.mjs +3 -3
  259. package/esm2020/lib/components/toasts/standard-toast/standard-toast.component.mjs +3 -3
  260. package/esm2020/lib/components/url-fragment/elder-url-fragment.module.mjs +4 -4
  261. package/esm2020/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +3 -3
  262. package/esm2020/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +3 -3
  263. package/esm2020/lib/components/viewers/elder-viewers.module.mjs +4 -4
  264. package/esm2020/lib/features/event-source/elder-event-source.service.mjs +3 -3
  265. package/esm2020/lib/features/kafent/access-token-provider.mjs +3 -3
  266. package/esm2020/lib/features/kafent/kafent-config.mjs +3 -3
  267. package/esm2020/lib/features/kafent/kafent-event-stream.mjs +3 -3
  268. package/esm2020/lib/features/kafent/kafent-event.service.mjs +3 -3
  269. package/esm2020/lib/features/kafent/kafent.module.mjs +4 -4
  270. package/esm2020/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +3 -3
  271. package/esm2020/lib/pipes/bytes.pipe.mjs +3 -3
  272. package/esm2020/lib/pipes/elder-pipes.module.mjs +10 -10
  273. package/esm2020/lib/pipes/elder-repeat.pipe.mjs +3 -3
  274. package/esm2020/lib/pipes/elder-round.pipe.mjs +3 -3
  275. package/esm2020/lib/pipes/elder-safe-url.pipe.mjs +3 -3
  276. package/esm2020/lib/pipes/elder-truncate.pipe.mjs +3 -3
  277. package/esm2020/lib/pipes/iso-duration.pipe.mjs +3 -3
  278. package/esm2020/lib/pipes/iso-interval-parse.pipe.mjs +3 -3
  279. package/esm2020/lib/pipes/iso-interval.pipe.mjs +3 -3
  280. package/esm2020/lib/pipes/time-ago.pipe.mjs +3 -3
  281. package/esm2020/lib/pipes/time-duration.pipe.mjs +3 -3
  282. package/esm2020/lib/pipes/weight.pipe.mjs +3 -3
  283. package/fesm2015/elderbyte-ngx-starter.mjs +1068 -1003
  284. package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
  285. package/fesm2020/elderbyte-ngx-starter.mjs +1068 -1003
  286. package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
  287. package/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.d.ts +2 -2
  288. package/lib/components/data-view/master-detail/elder-detail.directive.d.ts +2 -2
  289. package/lib/components/data-view/master-detail/elder-master-activation.directive.d.ts +11 -4
  290. package/lib/components/data-view/master-detail/elder-master-detail-activation-event.d.ts +8 -0
  291. package/lib/components/data-view/master-detail/elder-master-detail-provider.d.ts +5 -5
  292. package/lib/components/data-view/master-detail/elder-master-detail.component.d.ts +2 -2
  293. package/lib/components/data-view/master-detail/elder-master-detail.module.d.ts +2 -1
  294. package/lib/components/data-view/master-detail/{master-detail.service.d.ts → elder-master-detail.service.d.ts} +8 -7
  295. package/lib/components/data-view/table/activation/activation-event-source.d.ts +5 -0
  296. package/lib/components/data-view/table/activation/active-item-event.d.ts +8 -0
  297. package/lib/components/data-view/table/activation/elder-activation-context.d.ts +7 -0
  298. package/lib/components/data-view/table/activation/elder-table-activation.directive.d.ts +10 -5
  299. package/lib/components/data-view/table/activation/item-activation-options.d.ts +6 -0
  300. package/lib/components/data-view/table/activation/public_api.d.ts +7 -0
  301. package/lib/components/data-view/table/elder-table-row.directive.d.ts +5 -5
  302. package/lib/components/data-view/table/elder-table.module.d.ts +5 -7
  303. package/package.json +1 -1
  304. package/esm2020/lib/components/data-view/master-detail/master-detail.service.mjs +0 -70
  305. package/esm2020/lib/components/data-view/table/activation/elder-item-activator.mjs +0 -2
  306. package/lib/components/data-view/table/activation/elder-item-activator.d.ts +0 -3
@@ -2,6 +2,9 @@ import { Directive, HostListener, Input, Output, } from '@angular/core';
2
2
  import { LoggerFactory } from '@elderbyte/ts-logger';
3
3
  import { filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';
4
4
  import { BehaviorSubject, combineLatest, Subject } from 'rxjs';
5
+ import { ItemActivationOptions } from './item-activation-options';
6
+ import { ActiveItemEvent } from './active-item-event';
7
+ import { ActivationEventSource } from './activation-event-source';
5
8
  import * as i0 from "@angular/core";
6
9
  import * as i1 from "../elder-table/elder-table.component";
7
10
  export class ElderTableActivationDirective {
@@ -20,6 +23,7 @@ export class ElderTableActivationDirective {
20
23
  this.logger = LoggerFactory.getLogger(this.constructor.name);
21
24
  this.destroy$ = new Subject();
22
25
  this.activeItem$ = new BehaviorSubject(null);
26
+ this.activeItemEvent$ = new Subject();
23
27
  this.activationOptions = {};
24
28
  this._data = [];
25
29
  this.rows$ = new BehaviorSubject([]);
@@ -64,7 +68,7 @@ export class ElderTableActivationDirective {
64
68
  newActiveItem = this.previousRowItem();
65
69
  }
66
70
  if (newActiveItem) {
67
- this.focusAndActivate(newActiveItem);
71
+ this.activateAndFocus(newActiveItem);
68
72
  }
69
73
  const active = this.activeItem;
70
74
  if (active) {
@@ -83,6 +87,9 @@ export class ElderTableActivationDirective {
83
87
  * Properties *
84
88
  * *
85
89
  **************************************************************************/
90
+ get activeItemEventChange() {
91
+ return this.activeItemEvent$;
92
+ }
86
93
  get activeItemChange() {
87
94
  return this.activeItem$;
88
95
  }
@@ -90,24 +97,18 @@ export class ElderTableActivationDirective {
90
97
  return this.activeItem$.getValue();
91
98
  }
92
99
  set activeItem(item) {
93
- if (item !== this.activeItem) {
94
- this.activeItem$.next(item);
95
- this.logger.debug('Set active item to ', item);
96
- }
100
+ this.activate(item, new ItemActivationOptions(ActivationEventSource.SYSTEM, true));
97
101
  }
98
102
  /***************************************************************************
99
103
  * *
100
104
  * Public API *
101
105
  * *
102
106
  **************************************************************************/
103
- activate(item) {
104
- this.activeItem = item;
107
+ activate(item, options) {
108
+ this.updateActiveItem(item, options);
105
109
  }
106
- focusAndActivate(item) {
107
- const row = this.getRowForItem(item);
108
- if (row) {
109
- row.foucs(); // Focus will auto activate the row
110
- }
110
+ activateAndFocus(item) {
111
+ this.activate(item, new ItemActivationOptions(ActivationEventSource.SYSTEM, true));
111
112
  }
112
113
  isItemActive(item) {
113
114
  if (this.activeItem) {
@@ -133,6 +134,13 @@ export class ElderTableActivationDirective {
133
134
  * Private methods *
134
135
  * *
135
136
  **************************************************************************/
137
+ updateActiveItem(item, options) {
138
+ this.activeItemEvent$.next(new ActiveItemEvent(item, options.source, options.focus, false));
139
+ if (item !== this.activeItem) {
140
+ this.activeItem$.next(item);
141
+ this.logger.debug('Set active item to ', item);
142
+ }
143
+ }
136
144
  updateRowsActivation(rows, activeItem) {
137
145
  const activeId = this.getId(activeItem);
138
146
  rows.forEach(row => {
@@ -170,7 +178,7 @@ export class ElderTableActivationDirective {
170
178
  if (active) {
171
179
  const activeId = this.getId(active);
172
180
  if (activeId == id) {
173
- this.activate(null);
181
+ this.activate(null, new ItemActivationOptions(ActivationEventSource.SYSTEM, false));
174
182
  }
175
183
  }
176
184
  }
@@ -198,14 +206,14 @@ export class ElderTableActivationDirective {
198
206
  activateFirst() {
199
207
  const item = this.getItemAtIndex(0);
200
208
  if (item) {
201
- this.activate(item);
209
+ this.activate(item, new ItemActivationOptions(ActivationEventSource.SYSTEM, false));
202
210
  }
203
211
  }
204
212
  activateLast() {
205
213
  if (this._data) {
206
214
  const item = this.getItemAtIndex(this._data.length - 1);
207
215
  if (item) {
208
- this.activate(item);
216
+ this.activate(item, new ItemActivationOptions(ActivationEventSource.SYSTEM, false));
209
217
  }
210
218
  }
211
219
  }
@@ -267,9 +275,9 @@ export class ElderTableActivationDirective {
267
275
  }
268
276
  }
269
277
  }
270
- ElderTableActivationDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTableActivationDirective, deps: [{ token: i1.ElderTableComponent }], target: i0.ɵɵFactoryTarget.Directive });
271
- ElderTableActivationDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ElderTableActivationDirective, selector: "elder-table[elderTableActivation]", inputs: { activationOptions: ["elderTableActivation", "activationOptions"], activeItem: "activeItem" }, outputs: { activeItemChange: "activeItemChange" }, host: { listeners: { "keydown": "onKeydown($event)" } }, exportAs: ["elderTableActivation"], ngImport: i0 });
272
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTableActivationDirective, decorators: [{
278
+ ElderTableActivationDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableActivationDirective, deps: [{ token: i1.ElderTableComponent }], target: i0.ɵɵFactoryTarget.Directive });
279
+ ElderTableActivationDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderTableActivationDirective, selector: "elder-table[elderTableActivation]", inputs: { activationOptions: ["elderTableActivation", "activationOptions"], activeItem: "activeItem" }, outputs: { activeItemEventChange: "activeItemEventChange", activeItemChange: "activeItemChange" }, host: { listeners: { "keydown": "onKeydown($event)" } }, exportAs: ["elderTableActivation"], ngImport: i0 });
280
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableActivationDirective, decorators: [{
273
281
  type: Directive,
274
282
  args: [{
275
283
  selector: 'elder-table[elderTableActivation]',
@@ -281,9 +289,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
281
289
  }], onKeydown: [{
282
290
  type: HostListener,
283
291
  args: ['keydown', ['$event']]
292
+ }], activeItemEventChange: [{
293
+ type: Output
284
294
  }], activeItemChange: [{
285
295
  type: Output
286
296
  }], activeItem: [{
287
297
  type: Input
288
298
  }] } });
289
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtYWN0aXZhdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9hY3RpdmF0aW9uL2VsZGVyLXRhYmxlLWFjdGl2YXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTSxNQUFNLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQVEsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQzs7O0FBU3pFLE1BQU0sT0FBTyw2QkFBNkI7SUFxQnhDOzs7O2dGQUk0RTtJQUU1RSxZQUNtQixVQUErQjtRQUEvQixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQTFCbEQ7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEQsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFaEMsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBSSxJQUFJLENBQUMsQ0FBQztRQUdwRCxzQkFBaUIsR0FBZ0MsRUFBRSxDQUFDO1FBRW5ELFVBQUssR0FBUSxFQUFFLENBQUM7UUFFUixVQUFLLEdBQUcsSUFBSSxlQUFlLENBQThCLEVBQUUsQ0FBQyxDQUFDO0lBVzdFLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUs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LEVBQUUsUUFBYTtRQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDO0lBQ3BDLENBQUM7SUFFTyxLQUFLLENBQUMsSUFBTztRQUNuQixJQUFJLElBQUksRUFBRTtZQUNSLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25ELE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEM7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDOzswSEF0VVUsNkJBQTZCOzhHQUE3Qiw2QkFBNkI7MkZBQTdCLDZCQUE2QjtrQkFKekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUNBQW1DO29CQUM3QyxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQzswR0FnQlEsaUJBQWlCO3NCQUR2QixLQUFLO3VCQUFDLHNCQUFzQjtnQkEwRXRCLFNBQVM7c0JBRGYsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZ0N4QixnQkFBZ0I7c0JBRDFCLE1BQU07Z0JBVUksVUFBVTtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIERpcmVjdGl2ZSxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LCBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VsZGVyVGFibGVSb3dEaXJlY3RpdmV9IGZyb20gJy4uL2VsZGVyLXRhYmxlLXJvdy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtFbGRlclRhYmxlQ29tcG9uZW50fSBmcm9tICcuLi9lbGRlci10YWJsZS9lbGRlci10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtFbGRlclRhYmxlQWN0aXZhdGlvbk9wdGlvbnN9IGZyb20gJy4vZWxkZXItdGFibGUtYWN0aXZhdGlvbi1vcHRpb25zJztcbmltcG9ydCB7RWxkZXJJdGVtQWN0aXZhdG9yfSBmcm9tICcuL2VsZGVyLWl0ZW0tYWN0aXZhdG9yJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnZWxkZXItdGFibGVbZWxkZXJUYWJsZUFjdGl2YXRpb25dJyxcbiAgZXhwb3J0QXM6ICdlbGRlclRhYmxlQWN0aXZhdGlvbidcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJUYWJsZUFjdGl2YXRpb25EaXJlY3RpdmU8VD4gaW1wbGVtZW50cyBFbGRlckl0ZW1BY3RpdmF0b3I8VD4sIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBhY3RpdmVJdGVtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VD4obnVsbCk7XG5cbiAgQElucHV0KCdlbGRlclRhYmxlQWN0aXZhdGlvbicpXG4gIHB1YmxpYyBhY3RpdmF0aW9uT3B0aW9uczogRWxkZXJUYWJsZUFjdGl2YXRpb25PcHRpb25zID0ge307XG5cbiAgcHJpdmF0ZSBfZGF0YTogVFtdID0gW107XG5cbiAgcHVibGljIHJlYWRvbmx5IHJvd3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+W10+KFtdKTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZGVyVGFibGU6IEVsZGVyVGFibGVDb21wb25lbnRcbiAgKSB7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuXG4gICAgY29uc3Qgcm93cyQgPSB0aGlzLmVsZGVyVGFibGUucm93cyQ7XG4gICAgY29uc3QgZGF0YSQgPSB0aGlzLmVsZGVyVGFibGUuZGF0YUNvbnRleHQkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoZGMgPT4gZGMuZGF0YSksXG4gICAgICB0YXAoZGF0YSA9PiB0aGlzLl9kYXRhID0gZGF0YSlcbiAgICApOytcblxuICAgIGNvbWJpbmVMYXRlc3QoW3Jvd3MkLCBkYXRhJF0pLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICApLnN1YnNjcmliZShcbiAgICAgIChbcm93cywgZGF0YV0pID0+IHtcbiAgICAgICAgdGhpcy5yb3dzJC5uZXh0KFxuICAgICAgICAgIHRoaXMucm93RGF0YVVwZGF0ZWQocm93cywgZGF0YSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5oYW5kbGVBdXRvQWN0aXZhdGlvbnMoKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5yb3dzJCwgdGhpcy5hY3RpdmVJdGVtJF0pLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICApLnN1YnNjcmliZShcbiAgICAgIChbcm93cywgYWN0aXZlSXRlbV0pID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVSb3dzQWN0aXZhdGlvbihyb3dzLCBhY3RpdmVJdGVtKTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgdGhpcy5lbGRlclRhYmxlLmRhdGFDb250ZXh0JC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgbWFwKGRjID0+IGRjLmRhdGFTb3VyY2UpLFxuICAgICAgc3dpdGNoTWFwKGRzID0+IGRzLmRhdGFDaGFuZ2VkKSxcbiAgICAgIGZpbHRlcihldmVudCA9PiBldmVudC5kZWxldGVkSWRzPy5sZW5ndGggPiAwKVxuICAgICkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IGRlbGV0ZUV2ZW50ID0+IHtcbiAgICAgICAgIGRlbGV0ZUV2ZW50LmRlbGV0ZWRJZHMuZm9yRWFjaChpZCA9PiB0aGlzLmRlYWN0aXZhdGVCeUlkKGlkKSlcbiAgICAgIH19KVxuICB9XG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgLy8gdGhpcy5lbGRlclRhYmxlLnJvd3MkLmdldFZhbHVlKCkuZm9yRWFjaChyID0+IHIuYmluZFRhYmxlQWN0aXZhdGlvbihudWxsKSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICouXG4gICAqIEhvc3QgTGlzdGVuZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBsZXQgbmV3QWN0aXZlSXRlbTogVDtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgbmV3QWN0aXZlSXRlbSA9IHRoaXMubmV4dFJvd0l0ZW0oKTtcbiAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICBuZXdBY3RpdmVJdGVtID0gdGhpcy5wcmV2aW91c1Jvd0l0ZW0oKTtcbiAgICB9XG5cbiAgICBpZiAobmV3QWN0aXZlSXRlbSkge1xuICAgICAgdGhpcy5mb2N1c0FuZEFjdGl2YXRlKG5ld0FjdGl2ZUl0ZW0pO1xuICAgIH1cblxuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuYWN0aXZlSXRlbTtcbiAgICBpZiAoYWN0aXZlKSB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgIHRoaXMuZWxkZXJUYWJsZS5vbkl0ZW1DbGljayhhY3RpdmUpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnU3BhY2ViYXInIHx8IGV2ZW50LmtleSA9PT0gJyAnKSB7XG4gICAgICAgIHRoaXMuZWxkZXJUYWJsZS5zZWxlY3Rpb25Nb2RlbC50b2dnbGUoYWN0aXZlKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbUNoYW5nZSgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtJDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVJdGVtJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhY3RpdmVJdGVtKGl0ZW06IFQpIHtcbiAgICBpZiAoaXRlbSAhPT0gdGhpcy5hY3RpdmVJdGVtKSB7XG4gICAgICB0aGlzLmFjdGl2ZUl0ZW0kLm5leHQoaXRlbSk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0IGFjdGl2ZSBpdGVtIHRvICcsIGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBhY3RpdmF0ZShpdGVtOiBUKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVJdGVtID0gaXRlbTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1c0FuZEFjdGl2YXRlKGl0ZW06IFQpOiB2b2lkIHtcbiAgICBjb25zdCByb3cgPSB0aGlzLmdldFJvd0Zvckl0ZW0oaXRlbSk7XG4gICAgaWYgKHJvdykge1xuICAgICAgcm93LmZvdWNzKCk7IC8vIEZvY3VzIHdpbGwgYXV0byBhY3RpdmF0ZSB0aGUgcm93XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzSXRlbUFjdGl2ZShpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYWN0aXZlSXRlbSkge1xuICAgICAgcmV0dXJuIHRoaXMuaXRlbUVxdWFscyh0aGlzLmFjdGl2ZUl0ZW0sIGl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhc0l0ZW1Gb2N1cyhpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgcm93ID0gdGhpcy5nZXRSb3dGb3JJdGVtKGl0ZW0pO1xuICAgIHJldHVybiByb3c/Lmhhc0ZvY3VzO1xuICB9XG5cbiAgcHVibGljIG5leHRDbG9zZVRvKGFjdGl2ZTogVCk6IFQge1xuICAgIGNvbnN0IG5leHQgPSB0aGlzLm5leHRSb3dJdGVtKCk7XG4gICAgaWYgKG5leHQgIT09IGFjdGl2ZSkge1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByZXZpb3VzUm93SXRlbSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSB1cGRhdGVSb3dzQWN0aXZhdGlvbihyb3dzOiBFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+W10sIGFjdGl2ZUl0ZW06IFQpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVJZCA9IHRoaXMuZ2V0SWQoYWN0aXZlSXRlbSk7XG4gICAgcm93cy5mb3JFYWNoKHJvdyA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVJvd0FjdGl2YXRpb24ocm93LCBhY3RpdmVJZCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVJvd0FjdGl2YXRpb24ocm93OiBFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+LCBhY3RpdmVJZDogYW55KTogdm9pZCB7XG4gICAgaWYgKHJvdy5tb2RlbCkge1xuICAgICAgaWYgKHRoaXMuaXRlbUVxdWFsc0lkKHJvdy5tb2RlbCwgYWN0aXZlSWQpKSB7XG4gICAgICAgIGlmICghcm93LmFjdGl2YXRlZCkge1xuICAgICAgICAgIHJvdy5hY3RpdmF0ZWQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdBY3RpdmF0ZWQgcm93OiAnLCByb3cpO1xuICAgICAgICAgIGlmICghcm93Lmhhc0ZvY3VzKSB7XG4gICAgICAgICAgICByb3cuYnJpbmdUb1ZpZXcoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJvdy5hY3RpdmF0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcm93LmFjdGl2YXRlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcm93RGF0YVVwZGF0ZWQoXG4gICAgcm93czogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdLFxuICAgIGRhdGE6IFRbXVxuICApOiBFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+W10ge1xuICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdGb3VuZCByb3dzOicsIHJvd3MpO1xuICAgIHJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgcm93LmJpbmRUYWJsZUFjdGl2YXRpb24odGhpcyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJvd3M7XG4gIH1cblxuXG4gIHByaXZhdGUgZGVhY3RpdmF0ZUJ5SWQoaWQ6IGFueSkge1xuICAgIGNvbnN0IGFjdGl2ZSA9IHRoaXMuYWN0aXZlSXRlbSQuZ2V0VmFsdWUoKTtcbiAgICBpZiAoYWN0aXZlKSB7XG4gICAgICBjb25zdCBhY3RpdmVJZCA9IHRoaXMuZ2V0SWQoYWN0aXZlKTtcbiAgICAgIGlmIChhY3RpdmVJZCA9PSBpZCkge1xuICAgICAgICB0aGlzLmFjdGl2YXRlKG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Um93Rm9ySXRlbShpdGVtOiBUKTogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPiB8IG51bGwge1xuICAgIGNvbnN0IHJvd3MgPSB0aGlzLnJvd3MkLmdldFZhbHVlKCk7XG4gICAgcmV0dXJuIHJvd3MuZmluZChyID0+IHIubW9kZWwgPT09IGl0ZW0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVBdXRvQWN0aXZhdGlvbnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc0FjdGl2ZUl0ZW0gfHwgdGhpcy5hY3RpdmF0aW9uT3B0aW9ucy5tb2RlID09PSAnYWx3YXlzJykge1xuICAgICAgc3dpdGNoICh0aGlzLmFjdGl2YXRpb25PcHRpb25zLnJvdykge1xuICAgICAgICBjYXNlICdub25lJzpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZmlyc3QnOlxuICAgICAgICAgIHRoaXMuYWN0aXZhdGVGaXJzdCgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdsYXN0JzpcbiAgICAgICAgICB0aGlzLmFjdGl2YXRlTGFzdCgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGhhc0FjdGl2ZUl0ZW0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5hY3RpdmVJdGVtO1xuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZUZpcnN0KCk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldEl0ZW1BdEluZGV4KDApO1xuICAgIGlmIChpdGVtKSB7XG4gICAgICB0aGlzLmFjdGl2YXRlKGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVMYXN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRJdGVtQXRJbmRleCh0aGlzLl9kYXRhLmxlbmd0aCAtIDEpO1xuICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZShpdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByZXZpb3VzUm93SXRlbSgpOiBUIHtcbiAgICBjb25zdCByb3dzID0gdGhpcy5fZGF0YTtcbiAgICBsZXQgY3VycmVudEluZGV4ID0gdGhpcy5nZXRDdXJyZW50SW5kZXgoKTtcbiAgICBpZiAoY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgLS1jdXJyZW50SW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmFjdGl2YXRpb25PcHRpb25zLmxvb3ApIHtcbiAgICAgICAgY3VycmVudEluZGV4ID0gcm93cy5sZW5ndGggLSAxO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5nZXRJdGVtQXRJbmRleChjdXJyZW50SW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSBuZXh0Um93SXRlbSgpOiBUIHtcbiAgICBjb25zdCByb3dzID0gdGhpcy5fZGF0YTtcbiAgICBsZXQgY3VycmVudEluZGV4ID0gdGhpcy5nZXRDdXJyZW50SW5kZXgoKTtcblxuICAgIGlmIChjdXJyZW50SW5kZXggPCAocm93cy5sZW5ndGggLSAxKSkge1xuICAgICAgKytjdXJyZW50SW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmFjdGl2YXRpb25PcHRpb25zLmxvb3ApIHtcbiAgICAgICAgY3VycmVudEluZGV4ID0gMDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0SXRlbUF0SW5kZXgoY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q3VycmVudEluZGV4KCk6IG51bWJlciB7XG4gICAgY29uc3QgYWN0aXZlSXRlbSA9IHRoaXMuYWN0aXZlSXRlbTtcbiAgICBpZiAoYWN0aXZlSXRlbSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZEl0ZW1JbmRleChhY3RpdmVJdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0SXRlbUF0SW5kZXgoaW5kZXg6IG51bWJlcik6IFQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kYXRhW2luZGV4XTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZEl0ZW1JbmRleChpdGVtOiBUKTogbnVtYmVyIHtcbiAgICBjb25zdCBuZWVkbGVJZCA9IHRoaXMuZ2V0SWQoaXRlbSk7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEuZmluZEluZGV4KGl0bSA9PiB0aGlzLml0ZW1FcXVhbHNJZChpdG0sIG5lZWRsZUlkKSk7XG4gIH1cblxuICBwcml2YXRlIGl0ZW1FcXVhbHMoYTogVCwgYjogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldElkKGEpID09PSB0aGlzLmdldElkKGIpO1xuICB9XG5cbiAgcHJpdmF0ZSBpdGVtRXF1YWxzSWQoYTogVCwgbmVlZGxlSWQ6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldElkKGEpID09PSBuZWVkbGVJZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SWQoaXRlbTogVCk6IGFueSB7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIGNvbnN0IGRjID0gdGhpcy5lbGRlclRhYmxlLmRhdGFDb250ZXh0JC5nZXRWYWx1ZSgpO1xuICAgICAgcmV0dXJuIGRjPy5kYXRhU291cmNlPy5nZXRJZChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtYWN0aXZhdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9hY3RpdmF0aW9uL2VsZGVyLXRhYmxlLWFjdGl2YXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxHQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUd6RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7OztBQU9oRSxNQUFNLE9BQU8sNkJBQTZCO0lBdUJ4Qzs7OztnRkFJNEU7SUFFNUUsWUFDbUIsVUFBK0I7UUFBL0IsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUE1QmxEOzs7O29GQUk0RTtRQUUzRCxXQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhELGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRWhDLGdCQUFXLEdBQUcsSUFBSSxlQUFlLENBQUksSUFBSSxDQUFDLENBQUM7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QzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7OzBIQWhWVSw2QkFBNkI7OEdBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2pDOzBHQWtCUSxpQkFBaUI7c0JBRHZCLEtBQUs7dUJBQUMsc0JBQXNCO2dCQTBFdEIsU0FBUztzQkFEZixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFpQ3hCLHFCQUFxQjtzQkFEL0IsTUFBTTtnQkFNSSxnQkFBZ0I7c0JBRDFCLE1BQU07Z0JBVUksVUFBVTtzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE91dHB1dCx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VsZGVyVGFibGVSb3dEaXJlY3RpdmV9IGZyb20gJy4uL2VsZGVyLXRhYmxlLXJvdy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtFbGRlclRhYmxlQ29tcG9uZW50fSBmcm9tICcuLi9lbGRlci10YWJsZS9lbGRlci10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtFbGRlclRhYmxlQWN0aXZhdGlvbk9wdGlvbnN9IGZyb20gJy4vZWxkZXItdGFibGUtYWN0aXZhdGlvbi1vcHRpb25zJztcbmltcG9ydCB7SXRlbUFjdGl2YXRpb25PcHRpb25zfSBmcm9tICcuL2l0ZW0tYWN0aXZhdGlvbi1vcHRpb25zJztcbmltcG9ydCB7QWN0aXZlSXRlbUV2ZW50fSBmcm9tICcuL2FjdGl2ZS1pdGVtLWV2ZW50JztcbmltcG9ydCB7QWN0aXZhdGlvbkV2ZW50U291cmNlfSBmcm9tICcuL2FjdGl2YXRpb24tZXZlbnQtc291cmNlJztcbmltcG9ydCB7RWxkZXJBY3RpdmF0aW9uQ29udGV4dH0gZnJvbSAnLi9lbGRlci1hY3RpdmF0aW9uLWNvbnRleHQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdlbGRlci10YWJsZVtlbGRlclRhYmxlQWN0aXZhdGlvbl0nLFxuICBleHBvcnRBczogJ2VsZGVyVGFibGVBY3RpdmF0aW9uJ1xufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlQWN0aXZhdGlvbkRpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIEVsZGVyQWN0aXZhdGlvbkNvbnRleHQ8VD4sIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBhY3RpdmVJdGVtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VD4obnVsbCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmVJdGVtRXZlbnQkID0gbmV3IFN1YmplY3Q8QWN0aXZlSXRlbUV2ZW50PFQ+PigpO1xuXG4gIEBJbnB1dCgnZWxkZXJUYWJsZUFjdGl2YXRpb24nKVxuICBwdWJsaWMgYWN0aXZhdGlvbk9wdGlvbnM6IEVsZGVyVGFibGVBY3RpdmF0aW9uT3B0aW9ucyA9IHt9O1xuXG4gIHByaXZhdGUgX2RhdGE6IFRbXSA9IFtdO1xuXG4gIHB1YmxpYyByZWFkb25seSByb3dzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdPihbXSk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGRlclRhYmxlOiBFbGRlclRhYmxlQ29tcG9uZW50XG4gICkge1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmUgQ3ljbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcblxuICAgIGNvbnN0IHJvd3MkID0gdGhpcy5lbGRlclRhYmxlLnJvd3MkO1xuICAgIGNvbnN0IGRhdGEkID0gdGhpcy5lbGRlclRhYmxlLmRhdGFDb250ZXh0JC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGRjID0+IGRjLmRhdGEpLFxuICAgICAgdGFwKGRhdGEgPT4gdGhpcy5fZGF0YSA9IGRhdGEpXG4gICAgKTsrXG5cbiAgICBjb21iaW5lTGF0ZXN0KFtyb3dzJCwgZGF0YSRdKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICAoW3Jvd3MsIGRhdGFdKSA9PiB7XG4gICAgICAgIHRoaXMucm93cyQubmV4dChcbiAgICAgICAgICB0aGlzLnJvd0RhdGFVcGRhdGVkKHJvd3MsIGRhdGEpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaGFuZGxlQXV0b0FjdGl2YXRpb25zKCk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMucm93cyQsIHRoaXMuYWN0aXZlSXRlbSRdKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICAoW3Jvd3MsIGFjdGl2ZUl0ZW1dKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlUm93c0FjdGl2YXRpb24ocm93cywgYWN0aXZlSXRlbSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuZWxkZXJUYWJsZS5kYXRhQ29udGV4dCQucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIG1hcChkYyA9PiBkYy5kYXRhU291cmNlKSxcbiAgICAgIHN3aXRjaE1hcChkcyA9PiBkcy5kYXRhQ2hhbmdlZCksXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQuZGVsZXRlZElkcz8ubGVuZ3RoID4gMClcbiAgICApLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBkZWxldGVFdmVudCA9PiB7XG4gICAgICAgICBkZWxldGVFdmVudC5kZWxldGVkSWRzLmZvckVhY2goaWQgPT4gdGhpcy5kZWFjdGl2YXRlQnlJZChpZCkpXG4gICAgICB9fSlcbiAgfVxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIC8vIHRoaXMuZWxkZXJUYWJsZS5yb3dzJC5nZXRWYWx1ZSgpLmZvckVhY2gociA9PiByLmJpbmRUYWJsZUFjdGl2YXRpb24obnVsbCkpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLlxuICAgKiBIb3N0IExpc3RlbmVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgbGV0IG5ld0FjdGl2ZUl0ZW06IFQ7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0Fycm93RG93bicpIHtcbiAgICAgIG5ld0FjdGl2ZUl0ZW0gPSB0aGlzLm5leHRSb3dJdGVtKCk7XG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdBcnJvd1VwJykge1xuICAgICAgbmV3QWN0aXZlSXRlbSA9IHRoaXMucHJldmlvdXNSb3dJdGVtKCk7XG4gICAgfVxuXG4gICAgaWYgKG5ld0FjdGl2ZUl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGVBbmRGb2N1cyhuZXdBY3RpdmVJdGVtKTtcbiAgICB9XG5cbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZUl0ZW07XG4gICAgaWYgKGFjdGl2ZSkge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICB0aGlzLmVsZGVyVGFibGUub25JdGVtQ2xpY2soYWN0aXZlKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ1NwYWNlYmFyJyB8fCBldmVudC5rZXkgPT09ICcgJykge1xuICAgICAgICB0aGlzLmVsZGVyVGFibGUuc2VsZWN0aW9uTW9kZWwudG9nZ2xlKGFjdGl2ZSk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbUV2ZW50Q2hhbmdlKCk6IE9ic2VydmFibGU8QWN0aXZlSXRlbUV2ZW50PFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlSXRlbUV2ZW50JDtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGFjdGl2ZUl0ZW1DaGFuZ2UoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlSXRlbSQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdGl2ZUl0ZW0oKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlSXRlbSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYWN0aXZlSXRlbShpdGVtOiBUKSB7XG4gICAgdGhpcy5hY3RpdmF0ZShpdGVtLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIHRydWUpKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBhY3RpdmF0ZShpdGVtOiBULCBvcHRpb25zOiBJdGVtQWN0aXZhdGlvbk9wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZUl0ZW0oaXRlbSwgb3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgYWN0aXZhdGVBbmRGb2N1cyhpdGVtOiBUKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmF0ZShpdGVtLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIHRydWUpKVxuICB9XG5cbiAgcHVibGljIGlzSXRlbUFjdGl2ZShpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuYWN0aXZlSXRlbSkge1xuICAgICAgcmV0dXJuIHRoaXMuaXRlbUVxdWFscyh0aGlzLmFjdGl2ZUl0ZW0sIGl0ZW0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhc0l0ZW1Gb2N1cyhpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgcm93ID0gdGhpcy5nZXRSb3dGb3JJdGVtKGl0ZW0pO1xuICAgIHJldHVybiByb3c/Lmhhc0ZvY3VzO1xuICB9XG5cbiAgcHVibGljIG5leHRDbG9zZVRvKGFjdGl2ZTogVCk6IFQge1xuICAgIGNvbnN0IG5leHQgPSB0aGlzLm5leHRSb3dJdGVtKCk7XG4gICAgaWYgKG5leHQgIT09IGFjdGl2ZSkge1xuICAgICAgcmV0dXJuIG5leHQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByZXZpb3VzUm93SXRlbSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSB1cGRhdGVBY3RpdmVJdGVtKGl0ZW06IFQsIG9wdGlvbnM6IEl0ZW1BY3RpdmF0aW9uT3B0aW9ucykge1xuICAgIHRoaXMuYWN0aXZlSXRlbUV2ZW50JC5uZXh0KG5ldyBBY3RpdmVJdGVtRXZlbnQoaXRlbSwgb3B0aW9ucy5zb3VyY2UsIG9wdGlvbnMuZm9jdXMsIGZhbHNlKSlcbiAgICBpZiAoaXRlbSAhPT0gdGhpcy5hY3RpdmVJdGVtKSB7XG4gICAgICB0aGlzLmFjdGl2ZUl0ZW0kLm5leHQoaXRlbSk7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0IGFjdGl2ZSBpdGVtIHRvICcsIGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUm93c0FjdGl2YXRpb24ocm93czogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdLCBhY3RpdmVJdGVtOiBUKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmdldElkKGFjdGl2ZUl0ZW0pO1xuICAgIHJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgdGhpcy51cGRhdGVSb3dBY3RpdmF0aW9uKHJvdywgYWN0aXZlSWQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVSb3dBY3RpdmF0aW9uKHJvdzogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPiwgYWN0aXZlSWQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChyb3cubW9kZWwpIHtcbiAgICAgIGlmICh0aGlzLml0ZW1FcXVhbHNJZChyb3cubW9kZWwsIGFjdGl2ZUlkKSkge1xuICAgICAgICBpZiAoIXJvdy5hY3RpdmF0ZWQpIHtcbiAgICAgICAgICByb3cuYWN0aXZhdGVkID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQWN0aXZhdGVkIHJvdzogJywgcm93KTtcbiAgICAgICAgICBpZiAoIXJvdy5oYXNGb2N1cykge1xuICAgICAgICAgICAgcm93LmJyaW5nVG9WaWV3KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByb3cuYWN0aXZhdGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJvdy5hY3RpdmF0ZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJvd0RhdGFVcGRhdGVkKFxuICAgIHJvd3M6IEVsZGVyVGFibGVSb3dEaXJlY3RpdmU8VD5bXSxcbiAgICBkYXRhOiBUW11cbiAgKTogRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxUPltdIHtcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnRm91bmQgcm93czonLCByb3dzKTtcbiAgICByb3dzLmZvckVhY2gocm93ID0+IHtcbiAgICAgIHJvdy5iaW5kVGFibGVBY3RpdmF0aW9uKHRoaXMpO1xuICAgIH0pO1xuICAgIHJldHVybiByb3dzO1xuICB9XG5cblxuICBwcml2YXRlIGRlYWN0aXZhdGVCeUlkKGlkOiBhbnkpIHtcbiAgICBjb25zdCBhY3RpdmUgPSB0aGlzLmFjdGl2ZUl0ZW0kLmdldFZhbHVlKCk7XG4gICAgaWYgKGFjdGl2ZSkge1xuICAgICAgY29uc3QgYWN0aXZlSWQgPSB0aGlzLmdldElkKGFjdGl2ZSk7XG4gICAgICBpZiAoYWN0aXZlSWQgPT0gaWQpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZShudWxsLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIGZhbHNlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRSb3dGb3JJdGVtKGl0ZW06IFQpOiBFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+IHwgbnVsbCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMucm93cyQuZ2V0VmFsdWUoKTtcbiAgICByZXR1cm4gcm93cy5maW5kKHIgPT4gci5tb2RlbCA9PT0gaXRlbSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUF1dG9BY3RpdmF0aW9ucygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGFzQWN0aXZlSXRlbSB8fCB0aGlzLmFjdGl2YXRpb25PcHRpb25zLm1vZGUgPT09ICdhbHdheXMnKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZhdGlvbk9wdGlvbnMucm93KSB7XG4gICAgICAgIGNhc2UgJ25vbmUnOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdmaXJzdCc6XG4gICAgICAgICAgdGhpcy5hY3RpdmF0ZUZpcnN0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2xhc3QnOlxuICAgICAgICAgIHRoaXMuYWN0aXZhdGVMYXN0KCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaGFzQWN0aXZlSXRlbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmFjdGl2ZUl0ZW07XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlRmlyc3QoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0SXRlbUF0SW5kZXgoMCk7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZhdGUoaXRlbSwgbmV3IEl0ZW1BY3RpdmF0aW9uT3B0aW9ucyhBY3RpdmF0aW9uRXZlbnRTb3VyY2UuU1lTVEVNLCBmYWxzZSkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVMYXN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kYXRhKSB7XG4gICAgICBjb25zdCBpdGVtID0gdGhpcy5nZXRJdGVtQXRJbmRleCh0aGlzLl9kYXRhLmxlbmd0aCAtIDEpO1xuICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZShpdGVtLCBuZXcgSXRlbUFjdGl2YXRpb25PcHRpb25zKEFjdGl2YXRpb25FdmVudFNvdXJjZS5TWVNURU0sIGZhbHNlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcmV2aW91c1Jvd0l0ZW0oKTogVCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX2RhdGE7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgIC0tY3VycmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmF0aW9uT3B0aW9ucy5sb29wKSB7XG4gICAgICAgIGN1cnJlbnRJbmRleCA9IHJvd3MubGVuZ3RoIC0gMTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZ2V0SXRlbUF0SW5kZXgoY3VycmVudEluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgbmV4dFJvd0l0ZW0oKTogVCB7XG4gICAgY29uc3Qgcm93cyA9IHRoaXMuX2RhdGE7XG4gICAgbGV0IGN1cnJlbnRJbmRleCA9IHRoaXMuZ2V0Q3VycmVudEluZGV4KCk7XG5cbiAgICBpZiAoY3VycmVudEluZGV4IDwgKHJvd3MubGVuZ3RoIC0gMSkpIHtcbiAgICAgICsrY3VycmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmF0aW9uT3B0aW9ucy5sb29wKSB7XG4gICAgICAgIGN1cnJlbnRJbmRleCA9IDA7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldEl0ZW1BdEluZGV4KGN1cnJlbnRJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIGdldEN1cnJlbnRJbmRleCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLmFjdGl2ZUl0ZW07XG4gICAgaWYgKGFjdGl2ZUl0ZW0pIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRJdGVtSW5kZXgoYWN0aXZlSXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEl0ZW1BdEluZGV4KGluZGV4OiBudW1iZXIpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVtpbmRleF07XG4gIH1cblxuICBwcml2YXRlIGZpbmRJdGVtSW5kZXgoaXRlbTogVCk6IG51bWJlciB7XG4gICAgY29uc3QgbmVlZGxlSWQgPSB0aGlzLmdldElkKGl0ZW0pO1xuICAgIHJldHVybiB0aGlzLl9kYXRhLmZpbmRJbmRleChpdG0gPT4gdGhpcy5pdGVtRXF1YWxzSWQoaXRtLCBuZWVkbGVJZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpdGVtRXF1YWxzKGE6IFQsIGI6IFQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJZChhKSA9PT0gdGhpcy5nZXRJZChiKTtcbiAgfVxuXG4gIHByaXZhdGUgaXRlbUVxdWFsc0lkKGE6IFQsIG5lZWRsZUlkOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJZChhKSA9PT0gbmVlZGxlSWQ7XG4gIH1cblxuICBwcml2YXRlIGdldElkKGl0ZW06IFQpOiBhbnkge1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBjb25zdCBkYyA9IHRoaXMuZWxkZXJUYWJsZS5kYXRhQ29udGV4dCQuZ2V0VmFsdWUoKTtcbiAgICAgIHJldHVybiBkYz8uZGF0YVNvdXJjZT8uZ2V0SWQoaXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,7 @@
1
+ export class ItemActivationOptions {
2
+ constructor(source, focus) {
3
+ this.source = source;
4
+ this.focus = focus;
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1hY3RpdmF0aW9uLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9hY3RpdmF0aW9uL2l0ZW0tYWN0aXZhdGlvbi1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsWUFDa0IsTUFBNkIsRUFDN0IsS0FBYztRQURkLFdBQU0sR0FBTixNQUFNLENBQXVCO1FBQzdCLFVBQUssR0FBTCxLQUFLLENBQVM7SUFFaEMsQ0FBQztDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBY3RpdmF0aW9uRXZlbnRTb3VyY2V9IGZyb20gJy4vYWN0aXZhdGlvbi1ldmVudC1zb3VyY2UnO1xuXG5leHBvcnQgY2xhc3MgSXRlbUFjdGl2YXRpb25PcHRpb25zIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBBY3RpdmF0aW9uRXZlbnRTb3VyY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IGZvY3VzOiBib29sZWFuXG4gICkge1xuICB9XG5cblxufVxuIl19
@@ -0,0 +1,8 @@
1
+ export * from './activation-event-source';
2
+ export * from './active-item-event';
3
+ export * from './elder-activation-context';
4
+ export * from './elder-delete-active.directive';
5
+ export * from './elder-table-activation.directive';
6
+ export * from './elder-table-activation-options';
7
+ export * from './item-activation-options';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L3RhYmxlL2FjdGl2YXRpb24vcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsb0NBQW9DLENBQUE7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDJCQUEyQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3RpdmF0aW9uLWV2ZW50LXNvdXJjZSdcbmV4cG9ydCAqIGZyb20gJy4vYWN0aXZlLWl0ZW0tZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGRlci1hY3RpdmF0aW9uLWNvbnRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGRlci1kZWxldGUtYWN0aXZlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2VsZGVyLXRhYmxlLWFjdGl2YXRpb24uZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9lbGRlci10YWJsZS1hY3RpdmF0aW9uLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9pdGVtLWFjdGl2YXRpb24tb3B0aW9ucydcblxuIl19
@@ -13,9 +13,9 @@ export class ElderNumberCellDirective {
13
13
  }
14
14
  }
15
15
  }
16
- ElderNumberCellDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderNumberCellDirective, deps: [{ token: i1.MatSortHeader, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
17
- ElderNumberCellDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ElderNumberCellDirective, selector: "[elderNumberCell]", host: { properties: { "class.elder-number-cell": "true" } }, ngImport: i0 });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderNumberCellDirective, decorators: [{
16
+ ElderNumberCellDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderNumberCellDirective, deps: [{ token: i1.MatSortHeader, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
17
+ ElderNumberCellDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderNumberCellDirective, selector: "[elderNumberCell]", host: { properties: { "class.elder-number-cell": "true" } }, ngImport: i0 });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderNumberCellDirective, decorators: [{
19
19
  type: Directive,
20
20
  args: [{
21
21
  selector: '[elderNumberCell]',
@@ -64,9 +64,9 @@ export class ElderPaginatorIntl extends MatPaginatorIntl {
64
64
  this.changes.next();
65
65
  }
66
66
  }
67
- ElderPaginatorIntl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderPaginatorIntl, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
68
- ElderPaginatorIntl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderPaginatorIntl });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderPaginatorIntl, decorators: [{
67
+ ElderPaginatorIntl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderPaginatorIntl, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
68
+ ElderPaginatorIntl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderPaginatorIntl });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderPaginatorIntl, decorators: [{
70
70
  type: Injectable
71
71
  }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
72
72
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcGFnaW5hdG9yLWludGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9lbGRlci1wYWdpbmF0b3ItaW50bC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFJekMsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGdCQUFnQjtJQWlCdEQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1UsU0FBMkI7UUFFbkMsS0FBSyxFQUFFLENBQUM7UUFGQSxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXRCckM7Ozs7b0ZBSTRFO1FBRTNELDJCQUFzQixHQUFHLDhCQUE4QixDQUFDO1FBQ3hELHFCQUFnQixHQUFHLHdCQUF3QixDQUFDO1FBQzVDLHVCQUFrQixHQUFHLHFCQUFxQixDQUFDO1FBQzNDLGlCQUFZLEdBQUcsb0JBQW9CLENBQUM7UUFDcEMsaUJBQVksR0FBRyxvQkFBb0IsQ0FBQztRQUNwQyxxQkFBZ0IsR0FBRyx3QkFBd0IsQ0FBQztRQXNCN0Q7Ozs7b0ZBSTRFO1FBRXJFLGtCQUFhLEdBQUcsQ0FDckIsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLE1BQWMsRUFDTixFQUFFO1lBRVYsSUFBSSxNQUFNLEtBQUssQ0FBQyxJQUFJLFFBQVEsS0FBSyxDQUFDLEVBQUU7Z0JBQ2xDLE9BQU8sS0FBSyxJQUFJLENBQUMsdUJBQXVCLElBQUksTUFBTSxFQUFFLENBQUM7YUFDdEQ7WUFFRCxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFN0IsTUFBTSxVQUFVLEdBQVcsSUFBSSxHQUFHLFFBQVEsQ0FBQztZQUMzQyxNQUFNLFFBQVEsR0FBVyxVQUFVLEdBQUcsTUFBTTtnQkFDMUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLFFBQVEsRUFBRSxNQUFNLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1lBRTFCLE9BQU8sR0FBRyxVQUFVLEdBQUcsQ0FBQyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsdUJBQXVCLElBQUksTUFBTSxFQUFFLENBQUM7UUFDckYsQ0FBQyxDQUFBO1FBL0JDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQVEsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBNEJEOzs7O2dGQUk0RTtJQUVwRSxlQUFlO1FBRXJCLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDcEYsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4RSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN2RSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFeEUsSUFBSSxDQUFDLHVCQUF1QixHQUFHLHVCQUF1QixLQUFLLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN4SCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7UUFDNUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLEtBQUssSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNqRyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUN2RixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUN2RixJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1FBRTNHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7K0dBcEZVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNYXRQYWdpbmF0b3JJbnRsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRWxkZXJQYWdpbmF0b3JJbnRsIGV4dGVuZHMgTWF0UGFnaW5hdG9ySW50bCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaXRlbUNvdW50U2VwYXJhdG9yS2V5ID0gJ3BhZ2luYXRvci5pdGVtQ291bnRTZXBhcmF0b3InO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pdGVtc1BlclBhZ2VLZXkgPSAncGFnaW5hdG9yLml0ZW1zUGVyUGFnZSc7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpcnN0UGFnZUxhYmVsS2V5ID0gJ3BhZ2luYXRvci5maXJzdFBhZ2UnO1xuICBwcml2YXRlIHJlYWRvbmx5IF9sYXN0UGFnZUtleSA9ICdwYWdpbmF0b3IubGFzdFBhZ2UnO1xuICBwcml2YXRlIHJlYWRvbmx5IF9uZXh0UGFnZUtleSA9ICdwYWdpbmF0b3IubmV4dFBhZ2UnO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wcmV2aW91c1BhZ2VLZXkgPSAncGFnaW5hdG9yLnByZXZpb3VzUGFnZSc7XG5cbiAgcHJpdmF0ZSBpdGVtQ291bnRTZXBhcmF0b3JMYWJlbDogc3RyaW5nO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy50cmFuc2xhdGUub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoZTogRXZlbnQpID0+IHtcbiAgICAgIHRoaXMudHJhbnNsYXRlTGFiZWxzKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnRyYW5zbGF0ZUxhYmVscygpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldFJhbmdlTGFiZWwgPSAoXG4gICAgcGFnZTogbnVtYmVyLFxuICAgIHBhZ2VTaXplOiBudW1iZXIsXG4gICAgbGVuZ3RoOiBudW1iZXJcbiAgKTogc3RyaW5nID0+IHtcblxuICAgIGlmIChsZW5ndGggPT09IDAgfHwgcGFnZVNpemUgPT09IDApIHtcbiAgICAgIHJldHVybiBgMCAke3RoaXMuaXRlbUNvdW50U2VwYXJhdG9yTGFiZWx9ICR7bGVuZ3RofWA7XG4gICAgfVxuXG4gICAgbGVuZ3RoID0gTWF0aC5tYXgobGVuZ3RoLCAwKTtcblxuICAgIGNvbnN0IHN0YXJ0SW5kZXg6IG51bWJlciA9IHBhZ2UgKiBwYWdlU2l6ZTtcbiAgICBjb25zdCBlbmRJbmRleDogbnVtYmVyID0gc3RhcnRJbmRleCA8IGxlbmd0aFxuICAgICAgPyBNYXRoLm1pbihzdGFydEluZGV4ICsgcGFnZVNpemUsIGxlbmd0aClcbiAgICAgIDogc3RhcnRJbmRleCArIHBhZ2VTaXplO1xuXG4gICAgcmV0dXJuIGAke3N0YXJ0SW5kZXggKyAxfSAtICR7ZW5kSW5kZXh9ICR7dGhpcy5pdGVtQ291bnRTZXBhcmF0b3JMYWJlbH0gJHtsZW5ndGh9YDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgdHJhbnNsYXRlTGFiZWxzKCk6IHZvaWQge1xuXG4gICAgY29uc3QgaXRlbUNvdW50U2VwYXJhdG9yTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuX2l0ZW1Db3VudFNlcGFyYXRvcktleSk7XG4gICAgY29uc3QgaXRlbXNQZXJQYWdlTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuX2l0ZW1zUGVyUGFnZUtleSk7XG4gICAgY29uc3QgZmlyc3RQYWdlTGFiZWwgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMuX2ZpcnN0UGFnZUxhYmVsS2V5KTtcbiAgICBjb25zdCBsYXN0UGFnZUxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLl9sYXN0UGFnZUtleSk7XG4gICAgY29uc3QgbmV4dFBhZ2VMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5fbmV4dFBhZ2VLZXkpO1xuICAgIGNvbnN0IHByZXZpb3VzUGFnZUxhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLl9wcmV2aW91c1BhZ2VLZXkpO1xuXG4gICAgdGhpcy5pdGVtQ291bnRTZXBhcmF0b3JMYWJlbCA9IGl0ZW1Db3VudFNlcGFyYXRvckxhYmVsICE9PSB0aGlzLl9pdGVtQ291bnRTZXBhcmF0b3JLZXkgPyBpdGVtQ291bnRTZXBhcmF0b3JMYWJlbCA6ICdvZic7XG4gICAgdGhpcy5pdGVtc1BlclBhZ2VMYWJlbCA9IGl0ZW1zUGVyUGFnZUxhYmVsICE9PSB0aGlzLl9pdGVtc1BlclBhZ2VLZXkgPyBpdGVtc1BlclBhZ2VMYWJlbCA6ICdJdGVtcyBwZXIgcGFnZSc7XG4gICAgdGhpcy5maXJzdFBhZ2VMYWJlbCA9IGZpcnN0UGFnZUxhYmVsICE9PSB0aGlzLl9maXJzdFBhZ2VMYWJlbEtleSA/IGZpcnN0UGFnZUxhYmVsIDogJ0ZpcnN0IHBhZ2UnO1xuICAgIHRoaXMubGFzdFBhZ2VMYWJlbCA9IGxhc3RQYWdlTGFiZWwgIT09IHRoaXMuX2xhc3RQYWdlS2V5ID8gbGFzdFBhZ2VMYWJlbCA6ICdMYXN0IHBhZ2UnO1xuICAgIHRoaXMubmV4dFBhZ2VMYWJlbCA9IG5leHRQYWdlTGFiZWwgIT09IHRoaXMuX25leHRQYWdlS2V5ID8gbmV4dFBhZ2VMYWJlbCA6ICdOZXh0IHBhZ2UnO1xuICAgIHRoaXMucHJldmlvdXNQYWdlTGFiZWwgPSBwcmV2aW91c1BhZ2VMYWJlbCAhPT0gdGhpcy5fcHJldmlvdXNQYWdlS2V5ID8gcHJldmlvdXNQYWdlTGFiZWwgOiAnUHJldmlvdXMgcGFnZSc7XG5cbiAgICB0aGlzLmNoYW5nZXMubmV4dCgpO1xuICB9XG5cbn1cbiJdfQ==
@@ -9,9 +9,9 @@ export class ElderTableToolbarDirective {
9
9
  this.viewContainer = viewContainer;
10
10
  }
11
11
  }
12
- ElderTableToolbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTableToolbarDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
13
- ElderTableToolbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ElderTableToolbarDirective, selector: "[elderTableToolbar]", ngImport: i0 });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTableToolbarDirective, decorators: [{
12
+ ElderTableToolbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableToolbarDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
13
+ ElderTableToolbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderTableToolbarDirective, selector: "[elderTableToolbar]", ngImport: i0 });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableToolbarDirective, decorators: [{
15
15
  type: Directive,
16
16
  args: [{ selector: '[elderTableToolbar]' }]
17
17
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; } });
@@ -251,15 +251,15 @@ export class ElderTableComponent extends ElderDataViewBaseComponent {
251
251
  });
252
252
  }
253
253
  }
254
- ElderTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", 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 });
255
- ElderTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: ElderTableComponent, 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: [
254
+ ElderTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", 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 });
255
+ ElderTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ElderTableComponent, 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: [
256
256
  ElderTableProviders.ExistingOrNewTableModel,
257
257
  {
258
258
  provide: ELDER_DATA_VIEW,
259
259
  useExisting: forwardRef(() => ElderTableComponent)
260
260
  }
261
261
  ], 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;transition:opacity .5s ease-in-out}.elder-table-row:hover .elder-table-checkbox{opacity:.9}.elder-table-checkbox-visible{opacity:1}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i11.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i11.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i11.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i11.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i11.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i11.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i11.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i11.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i11.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i11.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i11.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i11.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i11.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i11.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: i12.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i13.ElderSelectionMasterCheckboxComponent, selector: "elder-selection-master-checkbox" }, { kind: "directive", type: i14.DataContextSelectionDirective, selector: "[elderDataContextSelection]", inputs: ["elderDataContextSelectionModel", "elderDataContextSelection"], exportAs: ["elderDataContextSelection"] }, { kind: "component", type: i15.DataContextStateIndicatorComponent, selector: "elder-data-context-state-indicator", inputs: ["dataContext"] }, { kind: "directive", type: i16.ElderInfiniteScrollDirective, selector: "[elderInfiniteScroll]", inputs: ["listenToHost", "eventThrottle", "offsetFactor", "ignoreScrollEvent", "containerId", "scrollContainer"], outputs: ["closeToEnd", "scrolling"] }, { kind: "component", type: i17.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i18.ElderTableRowDirective, selector: "tr[elderTableRow]", inputs: ["elderTableRow"], exportAs: ["elderTableRow"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
262
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTableComponent, decorators: [{
262
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableComponent, decorators: [{
263
263
  type: Component,
264
264
  args: [{ selector: 'elder-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
265
265
  ElderTableProviders.ExistingOrNewTableModel,
@@ -6,9 +6,9 @@ export class ElderTableColumnDirective {
6
6
  this.cdkColumn = cdkColumn;
7
7
  }
8
8
  }
9
- ElderTableColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTableColumnDirective, deps: [{ token: i1.CdkColumnDef }], target: i0.ɵɵFactoryTarget.Directive });
10
- ElderTableColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ElderTableColumnDirective, selector: "th[elderColumnDef]", ngImport: i0 });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTableColumnDirective, decorators: [{
9
+ ElderTableColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableColumnDirective, deps: [{ token: i1.CdkColumnDef }], target: i0.ɵɵFactoryTarget.Directive });
10
+ ElderTableColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderTableColumnDirective, selector: "th[elderColumnDef]", ngImport: i0 });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableColumnDirective, decorators: [{
12
12
  type: Directive,
13
13
  args: [{
14
14
  selector: 'th[elderColumnDef]'
@@ -63,11 +63,11 @@ export class ElderTableExtensionDirective {
63
63
  return this._extensionGroupIndex;
64
64
  }
65
65
  }
66
- ElderTableExtensionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTableExtensionDirective, deps: [{ token: i1.ElderTableModel }, { token: i2.MatSort, optional: true }, { token: ElderTableExtensionDirective, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
67
- ElderTableExtensionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ElderTableExtensionDirective, selector: "[elderTableExtension]", inputs: { columnsPosition: "columnsPosition" }, providers: [
66
+ ElderTableExtensionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableExtensionDirective, deps: [{ token: i1.ElderTableModel }, { token: i2.MatSort, optional: true }, { token: ElderTableExtensionDirective, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
67
+ ElderTableExtensionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderTableExtensionDirective, selector: "[elderTableExtension]", inputs: { columnsPosition: "columnsPosition" }, providers: [
68
68
  ElderTableProviders.ExistingOrNewTableModel
69
69
  ], queries: [{ propertyName: "columnDefsQuery", predicate: MatColumnDef }, { propertyName: "elderColumnsQuery", predicate: ElderTableColumnDirective }, { propertyName: "rowDefsQuery", predicate: MatRowDef }], ngImport: i0 });
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTableExtensionDirective, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableExtensionDirective, decorators: [{
71
71
  type: Directive,
72
72
  args: [{
73
73
  selector: '[elderTableExtension]',
@@ -13,11 +13,11 @@ export class ElderTableRootDirective {
13
13
  **************************************************************************/
14
14
  constructor() { }
15
15
  }
16
- ElderTableRootDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTableRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
- ElderTableRootDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ElderTableRootDirective, selector: "[elderTableRoot]", providers: [
16
+ ElderTableRootDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
+ ElderTableRootDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderTableRootDirective, selector: "[elderTableRoot]", providers: [
18
18
  ElderTableProviders.ClearTableModel
19
19
  ], ngImport: i0 });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTableRootDirective, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableRootDirective, decorators: [{
21
21
  type: Directive,
22
22
  args: [{
23
23
  selector: '[elderTableRoot]',
@@ -1,6 +1,9 @@
1
1
  import { Directive, HostListener, Input } from '@angular/core';
2
2
  import { LoggerFactory } from '@elderbyte/ts-logger';
3
- import { BehaviorSubject } from 'rxjs';
3
+ import { BehaviorSubject, switchMap } from 'rxjs';
4
+ import { filter } from 'rxjs/operators';
5
+ import { ItemActivationOptions } from './activation/item-activation-options';
6
+ import { ActivationEventSource } from './activation/activation-event-source';
4
7
  import * as i0 from "@angular/core";
5
8
  export class ElderTableRowDirective {
6
9
  /***************************************************************************
@@ -18,7 +21,13 @@ export class ElderTableRowDirective {
18
21
  **************************************************************************/
19
22
  this.logger = LoggerFactory.getLogger(this.constructor.name);
20
23
  this._activated = false;
24
+ this._activationDir$ = new BehaviorSubject(null);
21
25
  this.focused$ = new BehaviorSubject(false);
26
+ this._activationDir$.pipe(filter(x => x !== null), switchMap(provider => provider.activeItemEventChange), filter(e => e.item == this.model), filter(e => e.focus)).subscribe({
27
+ next: focusMe => {
28
+ this.focus();
29
+ }
30
+ });
22
31
  }
23
32
  /***************************************************************************
24
33
  * *
@@ -27,13 +36,15 @@ export class ElderTableRowDirective {
27
36
  **************************************************************************/
28
37
  onFocus(event) {
29
38
  this.focused$.next(true);
30
- if (this.tableActivation) {
31
- this.tableActivation.activate(this._model);
32
- }
33
39
  }
34
40
  onBlur(event) {
35
41
  this.focused$.next(false);
36
42
  }
43
+ onClick() {
44
+ this.logger.debug('row clicked');
45
+ const activation = this._activationDir$.getValue();
46
+ activation.activate(this._model, new ItemActivationOptions(ActivationEventSource.USER_MOUSE_CLICK, true));
47
+ }
37
48
  /***************************************************************************
38
49
  * *
39
50
  * Host Bindings *
@@ -59,9 +70,6 @@ export class ElderTableRowDirective {
59
70
  get model() {
60
71
  return this._model;
61
72
  }
62
- get tableActivation() {
63
- return this._tableActivation;
64
- }
65
73
  get hasFocus() {
66
74
  return this.focused$.getValue();
67
75
  }
@@ -70,11 +78,12 @@ export class ElderTableRowDirective {
70
78
  * Public API *
71
79
  * *
72
80
  **************************************************************************/
73
- bindTableActivation(activation) {
74
- if (this._tableActivation !== activation) {
75
- this._tableActivation = activation;
76
- this.enableRowFocus(!!this._tableActivation);
77
- if (!activation) {
81
+ bindTableActivation(activationDir) {
82
+ const currentActivation = this._activationDir$.getValue();
83
+ if (currentActivation !== activationDir) {
84
+ this._activationDir$.next(activationDir);
85
+ this.enableRowFocus(!!activationDir);
86
+ if (!activationDir) {
78
87
  this.activated = false;
79
88
  }
80
89
  }
@@ -87,7 +96,8 @@ export class ElderTableRowDirective {
87
96
  inline: 'nearest' // horizontal alignment
88
97
  });
89
98
  }
90
- foucs() {
99
+ focus() {
100
+ this.logger.debug('focus initiated');
91
101
  const row = this.rowRef.nativeElement;
92
102
  row.focus();
93
103
  }
@@ -115,9 +125,9 @@ export class ElderTableRowDirective {
115
125
  }
116
126
  }
117
127
  }
118
- ElderTableRowDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTableRowDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
119
- ElderTableRowDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ElderTableRowDirective, selector: "tr[elderTableRow]", inputs: { model: ["elderTableRow", "model"] }, host: { listeners: { "focus": "onFocus($event)", "blur": "onBlur($event)" } }, exportAs: ["elderTableRow"], ngImport: i0 });
120
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ElderTableRowDirective, decorators: [{
128
+ ElderTableRowDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableRowDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
129
+ ElderTableRowDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: ElderTableRowDirective, selector: "tr[elderTableRow]", inputs: { model: ["elderTableRow", "model"] }, host: { listeners: { "focus": "onFocus($event)", "blur": "onBlur($event)", "click": "onClick($event)" } }, exportAs: ["elderTableRow"], ngImport: i0 });
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ElderTableRowDirective, decorators: [{
121
131
  type: Directive,
122
132
  args: [{
123
133
  selector: 'tr[elderTableRow]',
@@ -129,8 +139,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
129
139
  }], onBlur: [{
130
140
  type: HostListener,
131
141
  args: ['blur', ['$event']]
142
+ }], onClick: [{
143
+ type: HostListener,
144
+ args: ['click', ['$event']]
132
145
  }], model: [{
133
146
  type: Input,
134
147
  args: ['elderTableRow']
135
148
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtcm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L3RhYmxlL2VsZGVyLXRhYmxlLXJvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQU9yQyxNQUFNLE9BQU8sc0JBQXNCO0lBZ0JqQzs7OztnRkFJNEU7SUFFNUUsWUFDbUIsTUFBdUMsRUFDdkMsUUFBbUI7UUFEbkIsV0FBTSxHQUFOLE1BQU0sQ0FBaUM7UUFDdkMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQXRCdEM7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUlWLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQVloRSxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBR3JFLE9BQU8sQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDO0lBR00sTUFBTSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FB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QUFNO3NCQURaLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTZCckIsS0FBSztzQkFEZixLQUFLO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgUmVuZGVyZXIyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtFbGRlckl0ZW1BY3RpdmF0b3J9IGZyb20gJy4vYWN0aXZhdGlvbi9lbGRlci1pdGVtLWFjdGl2YXRvcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3RyW2VsZGVyVGFibGVSb3ddJyxcbiAgZXhwb3J0QXM6ICdlbGRlclRhYmxlUm93J1xufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlUm93RGlyZWN0aXZlPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSBfYWN0aXZhdGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX21vZGVsOiBUO1xuICBwcml2YXRlIF90YWJsZUFjdGl2YXRpb246IEVsZGVySXRlbUFjdGl2YXRvcjxUPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3dSZWY6IEVsZW1lbnRSZWY8SFRNTFRhYmxlUm93RWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEhvc3QgTGlzdGVuZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Gb2N1cyhldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c2VkJC5uZXh0KHRydWUpO1xuICAgIGlmICh0aGlzLnRhYmxlQWN0aXZhdGlvbikge1xuICAgICAgdGhpcy50YWJsZUFjdGl2YXRpb24uYWN0aXZhdGUodGhpcy5fbW9kZWwpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2JsdXInLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25CbHVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEhvc3QgQmluZGluZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBhY3RpdmF0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2YXRlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgYWN0aXZhdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuX2FjdGl2YXRlZCAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX2FjdGl2YXRlZCA9IHZhbHVlO1xuICAgICAgdGhpcy5hY3RpdmF0ZWRDbGFzc0VuYWJsZWQodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgnZWxkZXJUYWJsZVJvdycpXG4gIHB1YmxpYyBzZXQgbW9kZWwobW9kZWw6IFQpIHtcbiAgICB0aGlzLl9tb2RlbCA9IG1vZGVsO1xuICB9XG5cbiAgcHVibGljIGdldCBtb2RlbCgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZWw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRhYmxlQWN0aXZhdGlvbigpOiBFbGRlckl0ZW1BY3RpdmF0b3I8VD4ge1xuICAgIHJldHVybiB0aGlzLl90YWJsZUFjdGl2YXRpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc0ZvY3VzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvY3VzZWQkLmdldFZhbHVlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgYmluZFRhYmxlQWN0aXZhdGlvbihhY3RpdmF0aW9uOiBFbGRlckl0ZW1BY3RpdmF0b3I8VD4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdGFibGVBY3RpdmF0aW9uICE9PSBhY3RpdmF0aW9uKSB7XG4gICAgICB0aGlzLl90YWJsZUFjdGl2YXRpb24gPSBhY3RpdmF0aW9uO1xuICAgICAgdGhpcy5lbmFibGVSb3dGb2N1cyghIXRoaXMuX3RhYmxlQWN0aXZhdGlvbik7XG4gICAgICBpZiAoIWFjdGl2YXRpb24pIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYnJpbmdUb1ZpZXcoKTogdm9pZCB7XG4gICAgY29uc3Qgcm93ID0gdGhpcy5yb3dSZWYubmF0aXZlRWxlbWVudDtcbiAgICAvLyBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7XG4gICAgcm93LnNjcm9sbEludG9WaWV3KFxuXG4gICAgICB7XG4gICAgICAgIGJsb2NrOiAnbmVhcmVzdCcsICAgLy8gdmVydGljYWwgYWxpZ25tZW50XG4gICAgICAgIGlubGluZTogJ25lYXJlc3QnIC8vIGhvcml6b250YWwgYWxpZ25tZW50XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmb3VjcygpOiB2b2lkIHtcbiAgICBjb25zdCByb3cgPSB0aGlzLnJvd1JlZi5uYXRpdmVFbGVtZW50O1xuICAgIHJvdy5mb2N1cygpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBlbmFibGVSb3dGb2N1cyhlbmFibGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyBNYWtlIHRoZSByb3dzIGZvY3VzYWJsZSBvbiBjbGljayAoYnV0IG5vdCBvbiB0YWJzKVxuICAgIGlmIChlbmFibGUpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMucm93UmVmLm5hdGl2ZUVsZW1lbnQsICd0YWJJbmRleCcsICctMScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLnJvd1JlZi5uYXRpdmVFbGVtZW50LCAndGFiSW5kZXgnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlZENsYXNzRW5hYmxlZChlbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgYWN0aXZhdGVkQ2xhc3MgPSAnZWxkZXItdGFibGUtcm93LWFjdGl2YXRlZCc7XG4gICAgaWYgKGVuYWJsZWQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5yb3dSZWYubmF0aXZlRWxlbWVudCwgYWN0aXZhdGVkQ2xhc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMucm93UmVmLm5hdGl2ZUVsZW1lbnQsIGFjdGl2YXRlZENsYXNzKTtcbiAgICB9XG4gIH1cblxufVxuIl19
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtcm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L3RhYmxlL2VsZGVyLXRhYmxlLXJvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVoRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7O0FBTTNFLE1BQU0sT0FBTyxzQkFBc0I7SUFnQmpDOzs7O2dGQUk0RTtJQUU1RSxZQUNtQixNQUF1QyxFQUN2QyxRQUFtQjtRQURuQixXQUFNLEdBQU4sTUFBTSxDQUFpQztRQUN2QyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBdEJ0Qzs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVqRSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBR1Ysb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBNEIsSUFBSSxDQUFDLENBQUM7UUFDdkUsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBWTlELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVB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b250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7RWxkZXJBY3RpdmF0aW9uQ29udGV4dH0gZnJvbSAnLi9hY3RpdmF0aW9uL2VsZGVyLWFjdGl2YXRpb24tY29udGV4dCc7XG5pbXBvcnQge2ZpbHRlcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtJdGVtQWN0aXZhdGlvbk9wdGlvbnN9IGZyb20gJy4vYWN0aXZhdGlvbi9pdGVtLWFjdGl2YXRpb24tb3B0aW9ucyc7XG5pbXBvcnQge0FjdGl2YXRpb25FdmVudFNvdXJjZX0gZnJvbSAnLi9hY3RpdmF0aW9uL2FjdGl2YXRpb24tZXZlbnQtc291cmNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAndHJbZWxkZXJUYWJsZVJvd10nLFxuICBleHBvcnRBczogJ2VsZGVyVGFibGVSb3cnXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVGFibGVSb3dEaXJlY3RpdmU8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIF9hY3RpdmF0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbW9kZWw6IFQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZhdGlvbkRpciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVsZGVyQWN0aXZhdGlvbkNvbnRleHQ8VD4+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3dSZWY6IEVsZW1lbnRSZWY8SFRNTFRhYmxlUm93RWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyXG4gICkge1xuICAgIHRoaXMuX2FjdGl2YXRpb25EaXIkLnBpcGUoXG4gICAgICBmaWx0ZXIoeCA9PiB4ICE9PSBudWxsKSxcbiAgICAgIHN3aXRjaE1hcChwcm92aWRlciA9PiBwcm92aWRlci5hY3RpdmVJdGVtRXZlbnRDaGFuZ2UpLFxuICAgICAgZmlsdGVyKGUgPT4gZS5pdGVtID09IHRoaXMubW9kZWwpLFxuICAgICAgZmlsdGVyKGUgPT4gZS5mb2N1cylcbiAgICApLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiBmb2N1c01lID0+IHtcbiAgICAgICAgdGhpcy5mb2N1cygpXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogSG9zdCBMaXN0ZW5lciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASG9zdExpc3RlbmVyKCdmb2N1cycsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkZvY3VzKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdibHVyJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uQmx1cihldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c2VkJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uQ2xpY2soKXtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1Zygncm93IGNsaWNrZWQnKVxuICAgIGNvbnN0IGFjdGl2YXRpb24gPSB0aGlzLl9hY3RpdmF0aW9uRGlyJC5nZXRWYWx1ZSgpO1xuICAgIGFjdGl2YXRpb24uYWN0aXZhdGUodGhpcy5fbW9kZWwsIG5ldyBJdGVtQWN0aXZhdGlvbk9wdGlvbnMoQWN0aXZhdGlvbkV2ZW50U291cmNlLlVTRVJfTU9VU0VfQ0xJQ0ssIHRydWUpKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBIb3N0IEJpbmRpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgYWN0aXZhdGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmF0ZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0IGFjdGl2YXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl9hY3RpdmF0ZWQgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLl9hY3RpdmF0ZWQgPSB2YWx1ZTtcbiAgICAgIHRoaXMuYWN0aXZhdGVkQ2xhc3NFbmFibGVkKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoJ2VsZGVyVGFibGVSb3cnKVxuICBwdWJsaWMgc2V0IG1vZGVsKG1vZGVsOiBUKSB7XG4gICAgdGhpcy5fbW9kZWwgPSBtb2RlbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kZWwoKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuX21vZGVsO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNGb2N1cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGJpbmRUYWJsZUFjdGl2YXRpb24oYWN0aXZhdGlvbkRpcjogRWxkZXJBY3RpdmF0aW9uQ29udGV4dDxUPik6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRBY3RpdmF0aW9uID0gdGhpcy5fYWN0aXZhdGlvbkRpciQuZ2V0VmFsdWUoKTtcbiAgICBpZiAoY3VycmVudEFjdGl2YXRpb24gIT09IGFjdGl2YXRpb25EaXIpIHtcbiAgICAgIHRoaXMuX2FjdGl2YXRpb25EaXIkLm5leHQoYWN0aXZhdGlvbkRpcik7XG4gICAgICB0aGlzLmVuYWJsZVJvd0ZvY3VzKCEhYWN0aXZhdGlvbkRpcik7XG4gICAgICBpZiAoIWFjdGl2YXRpb25EaXIpIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYnJpbmdUb1ZpZXcoKTogdm9pZCB7XG4gICAgY29uc3Qgcm93ID0gdGhpcy5yb3dSZWYubmF0aXZlRWxlbWVudDtcbiAgICAvLyBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7XG4gICAgcm93LnNjcm9sbEludG9WaWV3KFxuXG4gICAgICB7XG4gICAgICAgIGJsb2NrOiAnbmVhcmVzdCcsICAgLy8gdmVydGljYWwgYWxpZ25tZW50XG4gICAgICAgIGlubGluZTogJ25lYXJlc3QnIC8vIGhvcml6b250YWwgYWxpZ25tZW50XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZm9jdXMgaW5pdGlhdGVkJylcbiAgICBjb25zdCByb3cgPSB0aGlzLnJvd1JlZi5uYXRpdmVFbGVtZW50O1xuICAgIHJvdy5mb2N1cygpO1xuXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGVuYWJsZVJvd0ZvY3VzKGVuYWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vIE1ha2UgdGhlIHJvd3MgZm9jdXNhYmxlIG9uIGNsaWNrIChidXQgbm90IG9uIHRhYnMpXG4gICAgaWYgKGVuYWJsZSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5yb3dSZWYubmF0aXZlRWxlbWVudCwgJ3RhYkluZGV4JywgJy0xJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMucm93UmVmLm5hdGl2ZUVsZW1lbnQsICd0YWJJbmRleCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZhdGVkQ2xhc3NFbmFibGVkKGVuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmF0ZWRDbGFzcyA9ICdlbGRlci10YWJsZS1yb3ctYWN0aXZhdGVkJztcbiAgICBpZiAoZW5hYmxlZCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLnJvd1JlZi5uYXRpdmVFbGVtZW50LCBhY3RpdmF0ZWRDbGFzcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5yb3dSZWYubmF0aXZlRWxlbWVudCwgYWN0aXZhdGVkQ2xhc3MpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=