@elderbyte/ngx-starter 18.15.2 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. package/fesm2022/elderbyte-ngx-starter.mjs +1097 -1125
  2. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  3. package/lib/common/forms/elder-form-field-control-base.directive.d.ts +1 -1
  4. package/lib/common/forms/elder-from-field-base.d.ts +1 -1
  5. package/lib/common/forms/elder-from-field-customizable-base.d.ts +1 -1
  6. package/lib/common/forms/elder-from-field-entity-base.d.ts +1 -1
  7. package/lib/common/forms/elder-from-field-multi-entity-base.d.ts +1 -1
  8. package/lib/common/forms/form-field-base.component.d.ts +1 -1
  9. package/lib/common/forms/multi-model-base.component.d.ts +1 -1
  10. package/lib/common/forms/template-composite-control.d.ts +1 -1
  11. package/lib/common/forms/value-accessor-base.d.ts +1 -1
  12. package/lib/common/reactive-map.d.ts +1 -1
  13. package/lib/components/data-view/base/elder-data-view-base.d.ts +1 -1
  14. package/lib/components/forms/directives/base/elder-class-hostbinding-base.d.ts +1 -1
  15. package/lib/components/iframes/typed-event-message.d.ts +1 -1
  16. package/lib/components/panels/elder-panel.module.d.ts +5 -7
  17. package/lib/components/select/elder-select-base.d.ts +1 -1
  18. package/lib/components/select/multi/elder-multi-select-base.d.ts +1 -1
  19. package/lib/components/select/multi/elder-multi-select-form-field.d.ts +1 -1
  20. package/lib/components/select/single/elder-select-form-field.d.ts +1 -1
  21. package/package.json +6 -8
  22. package/src/lib/components/errors/exception-detail/elder-exception-detail.component.scss +2 -3
  23. package/src/lib/components/shell/header/elder-app-header/elder-app-header.component.scss +3 -0
  24. package/esm2022/elderbyte-ngx-starter.mjs +0 -5
  25. package/esm2022/lib/common/arrays.mjs +0 -29
  26. package/esm2022/lib/common/async/public_api.mjs +0 -2
  27. package/esm2022/lib/common/async/refreshing-entity.mjs +0 -88
  28. package/esm2022/lib/common/csv/csv-serializer.mjs +0 -55
  29. package/esm2022/lib/common/csv/csv-spec.mjs +0 -99
  30. package/esm2022/lib/common/csv/public_api.mjs +0 -3
  31. package/esm2022/lib/common/data/continuable-listing.mjs +0 -10
  32. package/esm2022/lib/common/data/data-context/data-context-active-page.mjs +0 -131
  33. package/esm2022/lib/common/data/data-context/data-context-auto-starter.mjs +0 -78
  34. package/esm2022/lib/common/data/data-context/data-context-base.mjs +0 -339
  35. package/esm2022/lib/common/data/data-context/data-context-builder.mjs +0 -245
  36. package/esm2022/lib/common/data/data-context/data-context-continuable-base.mjs +0 -67
  37. package/esm2022/lib/common/data/data-context/data-context-continuable-paged.mjs +0 -142
  38. package/esm2022/lib/common/data/data-context/data-context-continuable-token.mjs +0 -146
  39. package/esm2022/lib/common/data/data-context/data-context-life-cycle-binding.mjs +0 -32
  40. package/esm2022/lib/common/data/data-context/data-context-simple.mjs +0 -61
  41. package/esm2022/lib/common/data/data-context/data-context-source-event-binding.mjs +0 -63
  42. package/esm2022/lib/common/data/data-context/data-context-status.mjs +0 -46
  43. package/esm2022/lib/common/data/data-context/data-context.mjs +0 -30
  44. package/esm2022/lib/common/data/data-context/indexed-entities.mjs +0 -153
  45. package/esm2022/lib/common/data/data-context/mat-table-data-context-binding.mjs +0 -145
  46. package/esm2022/lib/common/data/data-context/public_api.mjs +0 -15
  47. package/esm2022/lib/common/data/datasource/data-source-adapter.mjs +0 -59
  48. package/esm2022/lib/common/data/datasource/data-source-base.mjs +0 -38
  49. package/esm2022/lib/common/data/datasource/data-source-change-event.mjs +0 -34
  50. package/esm2022/lib/common/data/datasource/data-source-processor.mjs +0 -198
  51. package/esm2022/lib/common/data/datasource/data-source.mjs +0 -23
  52. package/esm2022/lib/common/data/datasource/entity-id-util.mjs +0 -11
  53. package/esm2022/lib/common/data/datasource/fetcher/delegate-data-source.mjs +0 -127
  54. package/esm2022/lib/common/data/datasource/local/local-list-data-source.mjs +0 -153
  55. package/esm2022/lib/common/data/datasource/local/local-paged-data-source.mjs +0 -75
  56. package/esm2022/lib/common/data/datasource/patch/deep-partial-patcher.mjs +0 -58
  57. package/esm2022/lib/common/data/datasource/public_api.mjs +0 -10
  58. package/esm2022/lib/common/data/datasource/rest/public_api.mjs +0 -2
  59. package/esm2022/lib/common/data/datasource/rest/rest-client.mjs +0 -290
  60. package/esm2022/lib/common/data/entity-set-patch.mjs +0 -161
  61. package/esm2022/lib/common/data/field-comparator.mjs +0 -108
  62. package/esm2022/lib/common/data/filters/filter-commons.mjs +0 -12
  63. package/esm2022/lib/common/data/filters/filter-context.mjs +0 -135
  64. package/esm2022/lib/common/data/filters/filter-value.mjs +0 -2
  65. package/esm2022/lib/common/data/filters/filter.mjs +0 -104
  66. package/esm2022/lib/common/data/http-params-builder.mjs +0 -116
  67. package/esm2022/lib/common/data/page.mjs +0 -58
  68. package/esm2022/lib/common/data/public_api.mjs +0 -12
  69. package/esm2022/lib/common/data/required-filter-evaluator.mjs +0 -71
  70. package/esm2022/lib/common/data/sort-context.mjs +0 -73
  71. package/esm2022/lib/common/data/sort.mjs +0 -11
  72. package/esm2022/lib/common/data/token-chunk-request.mjs +0 -8
  73. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +0 -84
  74. package/esm2022/lib/common/enums/public_api.mjs +0 -2
  75. package/esm2022/lib/common/errors/exception-detail.mjs +0 -2
  76. package/esm2022/lib/common/errors/public_api.mjs +0 -3
  77. package/esm2022/lib/common/errors/standard-error-detail.mjs +0 -2
  78. package/esm2022/lib/common/exceptions/public_api.mjs +0 -2
  79. package/esm2022/lib/common/exceptions/unreachable-case-error.mjs +0 -8
  80. package/esm2022/lib/common/format/bytes-format.mjs +0 -15
  81. package/esm2022/lib/common/format/bytes-per-second-format.mjs +0 -41
  82. package/esm2022/lib/common/format/curency-format-util.mjs +0 -43
  83. package/esm2022/lib/common/format/duration-format-util.mjs +0 -44
  84. package/esm2022/lib/common/format/iso-interval-format-util.mjs +0 -111
  85. package/esm2022/lib/common/format/public_api.mjs +0 -6
  86. package/esm2022/lib/common/forms/elder-entity-value-accessor.mjs +0 -22
  87. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +0 -188
  88. package/esm2022/lib/common/forms/elder-from-field-base.mjs +0 -94
  89. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +0 -52
  90. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +0 -39
  91. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +0 -47
  92. package/esm2022/lib/common/forms/elder-multi-entity-value-accessor.mjs +0 -22
  93. package/esm2022/lib/common/forms/form-field-base.component.mjs +0 -111
  94. package/esm2022/lib/common/forms/multi-model-base.component.mjs +0 -32
  95. package/esm2022/lib/common/forms/public_api.mjs +0 -12
  96. package/esm2022/lib/common/forms/template-composite-control.mjs +0 -136
  97. package/esm2022/lib/common/forms/value-accessor-base.mjs +0 -146
  98. package/esm2022/lib/common/forms/view-providers.mjs +0 -30
  99. package/esm2022/lib/common/http/http-client-builder.service.mjs +0 -14
  100. package/esm2022/lib/common/http/http-client-pristine.mjs +0 -21
  101. package/esm2022/lib/common/http/public_api.mjs +0 -5
  102. package/esm2022/lib/common/http/transfer/data-transfer-base.mjs +0 -77
  103. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +0 -106
  104. package/esm2022/lib/common/http/transfer/data-transfer-progress-aggregate.mjs +0 -60
  105. package/esm2022/lib/common/http/transfer/data-transfer-progress.mjs +0 -17
  106. package/esm2022/lib/common/http/transfer/data-transfer-state.mjs +0 -82
  107. package/esm2022/lib/common/http/transfer/data-transfer-status.mjs +0 -24
  108. package/esm2022/lib/common/http/transfer/data-transfer.mjs +0 -2
  109. package/esm2022/lib/common/http/transfer/http-data-transfer.mjs +0 -132
  110. package/esm2022/lib/common/http/transfer/public_api.mjs +0 -7
  111. package/esm2022/lib/common/http/upload/file-upload-client.mjs +0 -42
  112. package/esm2022/lib/common/i18n/entity/elder-multi-translate-loader.mjs +0 -53
  113. package/esm2022/lib/common/i18n/entity/impl/i18n-base.mjs +0 -6
  114. package/esm2022/lib/common/i18n/entity/impl/i18n-text.mjs +0 -16
  115. package/esm2022/lib/common/i18n/entity/impl/translated.mjs +0 -15
  116. package/esm2022/lib/common/i18n/entity/language-tag.mjs +0 -12
  117. package/esm2022/lib/common/i18n/entity/locale.mjs +0 -12
  118. package/esm2022/lib/common/i18n/entity/localisation-picker.mjs +0 -30
  119. package/esm2022/lib/common/i18n/entity/localized.mjs +0 -2
  120. package/esm2022/lib/common/i18n/entity/public_api.mjs +0 -10
  121. package/esm2022/lib/common/i18n/entity/translated-converter.mjs +0 -18
  122. package/esm2022/lib/common/i18n/entity/translated.mjs +0 -2
  123. package/esm2022/lib/common/i18n/public_api.mjs +0 -2
  124. package/esm2022/lib/common/json-map.mjs +0 -17
  125. package/esm2022/lib/common/objects.mjs +0 -43
  126. package/esm2022/lib/common/public_api.mjs +0 -23
  127. package/esm2022/lib/common/reactive-map.mjs +0 -69
  128. package/esm2022/lib/common/rxjs/operators/lazy-sample.mjs +0 -34
  129. package/esm2022/lib/common/rxjs/public_api.mjs +0 -2
  130. package/esm2022/lib/common/selection/public_api.mjs +0 -2
  131. package/esm2022/lib/common/selection/selection-model.mjs +0 -213
  132. package/esm2022/lib/common/sets.mjs +0 -45
  133. package/esm2022/lib/common/suggestion-provider.mjs +0 -12
  134. package/esm2022/lib/common/templates/template-slot-manager.mjs +0 -135
  135. package/esm2022/lib/common/theme-sizes.mjs +0 -2
  136. package/esm2022/lib/common/time/date-util.mjs +0 -91
  137. package/esm2022/lib/common/time/interval-coerce.mjs +0 -30
  138. package/esm2022/lib/common/time/interval.mjs +0 -442
  139. package/esm2022/lib/common/time/period-duration.mjs +0 -133
  140. package/esm2022/lib/common/time/public_api.mjs +0 -8
  141. package/esm2022/lib/common/time/temporal-plain-date-interval.mjs +0 -34
  142. package/esm2022/lib/common/time/temporal-util.mjs +0 -205
  143. package/esm2022/lib/common/time/time-util.mjs +0 -38
  144. package/esm2022/lib/common/url/elder-router.service.mjs +0 -54
  145. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +0 -117
  146. package/esm2022/lib/common/url/public_api.mjs +0 -4
  147. package/esm2022/lib/common/url/url-query-params.mjs +0 -133
  148. package/esm2022/lib/common/utils/batcher.mjs +0 -35
  149. package/esm2022/lib/common/utils/collection-util.mjs +0 -111
  150. package/esm2022/lib/common/utils/filter-util.mjs +0 -133
  151. package/esm2022/lib/common/utils/focus-util.mjs +0 -23
  152. package/esm2022/lib/common/utils/input-utils.mjs +0 -6
  153. package/esm2022/lib/common/utils/next-number-util.mjs +0 -89
  154. package/esm2022/lib/common/utils/ng-zone-utils.mjs +0 -16
  155. package/esm2022/lib/common/utils/parse-util.mjs +0 -17
  156. package/esm2022/lib/common/utils/property-path-util.mjs +0 -28
  157. package/esm2022/lib/common/utils/public_api.mjs +0 -14
  158. package/esm2022/lib/common/utils/query-list-binding.mjs +0 -68
  159. package/esm2022/lib/common/utils/signal-input.mjs +0 -3
  160. package/esm2022/lib/common/utils/sort-util.mjs +0 -42
  161. package/esm2022/lib/common/utils/url-builder.mjs +0 -275
  162. package/esm2022/lib/common/utils/uuid-util.mjs +0 -28
  163. package/esm2022/lib/common/utils/value-wrapper.mjs +0 -19
  164. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +0 -15
  165. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +0 -20
  166. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +0 -50
  167. package/esm2022/lib/components/auditing/elder-audit.module.mjs +0 -40
  168. package/esm2022/lib/components/auditing/i-audited-entity.mjs +0 -3
  169. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +0 -162
  170. package/esm2022/lib/components/badge/elder-badge.directive.mjs +0 -124
  171. package/esm2022/lib/components/badge/elder-badge.module.mjs +0 -58
  172. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +0 -13
  173. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +0 -21
  174. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +0 -118
  175. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +0 -18
  176. package/esm2022/lib/components/card-organizer/card-organizer-data.mjs +0 -93
  177. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +0 -220
  178. package/esm2022/lib/components/card-organizer/card-stack.mjs +0 -176
  179. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +0 -62
  180. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +0 -17
  181. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +0 -167
  182. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +0 -71
  183. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +0 -171
  184. package/esm2022/lib/components/chips/elder-chips.module.mjs +0 -45
  185. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +0 -57
  186. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +0 -61
  187. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +0 -46
  188. package/esm2022/lib/components/connectivity/public_api.mjs +0 -3
  189. package/esm2022/lib/components/containers/elder-containers.module.mjs +0 -18
  190. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +0 -24
  191. package/esm2022/lib/components/containers/public_api.mjs +0 -2
  192. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +0 -77
  193. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.mjs +0 -38
  194. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +0 -38
  195. package/esm2022/lib/components/csv/elder-csv-stream-exporter.mjs +0 -114
  196. package/esm2022/lib/components/csv/elder-csv.module.mjs +0 -24
  197. package/esm2022/lib/components/currency/elder-currency.module.mjs +0 -18
  198. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +0 -37
  199. package/esm2022/lib/components/currency/model/currency-code.mjs +0 -38
  200. package/esm2022/lib/components/currency/model/currency-unit-registry.mjs +0 -30
  201. package/esm2022/lib/components/currency/model/currency-unit.mjs +0 -10
  202. package/esm2022/lib/components/currency/model/currency.mjs +0 -15
  203. package/esm2022/lib/components/currency/public_api.mjs +0 -7
  204. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +0 -91
  205. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +0 -93
  206. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +0 -102
  207. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +0 -34
  208. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +0 -57
  209. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +0 -34
  210. package/esm2022/lib/components/data-view/base/data-view-options-provider-binding.mjs +0 -69
  211. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +0 -265
  212. package/esm2022/lib/components/data-view/base/elder-data-view-options-provider.mjs +0 -44
  213. package/esm2022/lib/components/data-view/base/elder-data-view-options.mjs +0 -45
  214. package/esm2022/lib/components/data-view/base/elder-data-view.mjs +0 -3
  215. package/esm2022/lib/components/data-view/base/public_api.mjs +0 -6
  216. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-context.mjs +0 -30
  217. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-dc.directive.mjs +0 -55
  218. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort.mjs +0 -68
  219. package/esm2022/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.mjs +0 -101
  220. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +0 -45
  221. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +0 -125
  222. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +0 -140
  223. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +0 -100
  224. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +0 -103
  225. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +0 -36
  226. package/esm2022/lib/components/data-view/common/selection/master-selection-state.mjs +0 -10
  227. package/esm2022/lib/components/data-view/elder-data-view-interaction-mode.mjs +0 -2
  228. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +0 -345
  229. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +0 -91
  230. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +0 -75
  231. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +0 -50
  232. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +0 -79
  233. package/esm2022/lib/components/data-view/master-detail/elder-master-detail-mode.mjs +0 -2
  234. package/esm2022/lib/components/data-view/master-detail/elder-master-detail-provider.mjs +0 -20
  235. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +0 -119
  236. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +0 -116
  237. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +0 -89
  238. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +0 -23
  239. package/esm2022/lib/components/data-view/master-detail/master-detail-activation-event.mjs +0 -12
  240. package/esm2022/lib/components/data-view/public_api.mjs +0 -7
  241. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +0 -18
  242. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +0 -104
  243. package/esm2022/lib/components/data-view/table/activation/activation-event-source.mjs +0 -7
  244. package/esm2022/lib/components/data-view/table/activation/elder-activation-context.mjs +0 -2
  245. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +0 -114
  246. package/esm2022/lib/components/data-view/table/activation/elder-table-activation-options.mjs +0 -2
  247. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +0 -315
  248. package/esm2022/lib/components/data-view/table/activation/item-activation-event.mjs +0 -8
  249. package/esm2022/lib/components/data-view/table/activation/item-activation-options.mjs +0 -7
  250. package/esm2022/lib/components/data-view/table/activation/public_api.mjs +0 -8
  251. package/esm2022/lib/components/data-view/table/elder-center-cell.directive.mjs +0 -23
  252. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +0 -30
  253. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +0 -73
  254. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +0 -21
  255. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +0 -338
  256. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +0 -18
  257. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +0 -92
  258. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +0 -26
  259. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +0 -156
  260. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +0 -23
  261. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +0 -184
  262. package/esm2022/lib/components/data-view/table/model/elder-column-layout.mjs +0 -110
  263. package/esm2022/lib/components/data-view/table/model/elder-table-model-cdk-table-binding.mjs +0 -85
  264. package/esm2022/lib/components/data-view/table/model/elder-table-model-provider.mjs +0 -40
  265. package/esm2022/lib/components/data-view/table/model/elder-table-model-query-group.mjs +0 -89
  266. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +0 -167
  267. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +0 -37
  268. package/esm2022/lib/components/dialogs/elder-dialog-config.mjs +0 -3
  269. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +0 -87
  270. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +0 -199
  271. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +0 -57
  272. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +0 -43
  273. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +0 -47
  274. package/esm2022/lib/components/errors/elder-error.module.mjs +0 -39
  275. package/esm2022/lib/components/errors/error-util.mjs +0 -94
  276. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +0 -77
  277. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +0 -55
  278. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +0 -35
  279. package/esm2022/lib/components/files/blob-url.mjs +0 -10
  280. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +0 -224
  281. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +0 -44
  282. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +0 -84
  283. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +0 -145
  284. package/esm2022/lib/components/files/elder-file-select-input.mjs +0 -119
  285. package/esm2022/lib/components/files/elder-file-select.directive.mjs +0 -167
  286. package/esm2022/lib/components/files/elder-file.module.mjs +0 -85
  287. package/esm2022/lib/components/files/file-select/file-select.component.mjs +0 -54
  288. package/esm2022/lib/components/files/file-system-api.mjs +0 -100
  289. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +0 -80
  290. package/esm2022/lib/components/files/listing/file-entry.mjs +0 -92
  291. package/esm2022/lib/components/files/listing/file-listing-rx.mjs +0 -64
  292. package/esm2022/lib/components/files/listing/file-listing-system-handle.mjs +0 -35
  293. package/esm2022/lib/components/files/listing/file-listing-webkit.mjs +0 -76
  294. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +0 -51
  295. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +0 -34
  296. package/esm2022/lib/components/forms/directives/checkbox/elder-single-state-checkbox-controller.mjs +0 -97
  297. package/esm2022/lib/components/forms/directives/checkbox/elder-single-state-checkbox.directive.mjs +0 -50
  298. package/esm2022/lib/components/forms/directives/checkbox/elder-triple-state-checkbox-controller.mjs +0 -102
  299. package/esm2022/lib/components/forms/directives/checkbox/elder-triple-state-checkbox.directive.mjs +0 -50
  300. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +0 -38
  301. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +0 -43
  302. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +0 -83
  303. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +0 -84
  304. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +0 -42
  305. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +0 -35
  306. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +0 -142
  307. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +0 -67
  308. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +0 -78
  309. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +0 -112
  310. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +0 -102
  311. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +0 -37
  312. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +0 -30
  313. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +0 -161
  314. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +0 -28
  315. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +0 -88
  316. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +0 -47
  317. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +0 -48
  318. package/esm2022/lib/components/forms/directives/validation/strategies/fallback-validation-message-strategy.mjs +0 -6
  319. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +0 -53
  320. package/esm2022/lib/components/forms/directives/validation/validation-message-strategy.mjs +0 -2
  321. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +0 -36
  322. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +0 -36
  323. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +0 -112
  324. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +0 -69
  325. package/esm2022/lib/components/forms/elder-forms.module.mjs +0 -22
  326. package/esm2022/lib/components/forms/public_api.mjs +0 -6
  327. package/esm2022/lib/components/forms/search/domain/context/search-context.mjs +0 -73
  328. package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +0 -42
  329. package/esm2022/lib/components/forms/search/domain/input/input-value.mjs +0 -2
  330. package/esm2022/lib/components/forms/search/domain/input/search-input-state.mjs +0 -88
  331. package/esm2022/lib/components/forms/search/domain/input/search-input.mjs +0 -2
  332. package/esm2022/lib/components/forms/search/domain/input/simple-search-input.mjs +0 -50
  333. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +0 -92
  334. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +0 -166
  335. package/esm2022/lib/components/forms/search/domain/url/search-query-params-parser.mjs +0 -81
  336. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +0 -256
  337. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +0 -258
  338. package/esm2022/lib/components/forms/search/elder-search.module.mjs +0 -115
  339. package/esm2022/lib/components/forms/search/filter/default-input-filter-converter.mjs +0 -45
  340. package/esm2022/lib/components/forms/search/filter/input-filter-converter.mjs +0 -2
  341. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +0 -131
  342. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +0 -24
  343. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +0 -136
  344. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +0 -47
  345. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +0 -95
  346. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +0 -90
  347. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +0 -19
  348. package/esm2022/lib/components/graph/elder-progress-bar/sub-bar.mjs +0 -7
  349. package/esm2022/lib/components/graph/public_api.mjs +0 -2
  350. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +0 -29
  351. package/esm2022/lib/components/headers/elder-header.module.mjs +0 -42
  352. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +0 -63
  353. package/esm2022/lib/components/http-support/public_api.mjs +0 -2
  354. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +0 -125
  355. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +0 -157
  356. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +0 -39
  357. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +0 -30
  358. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +0 -177
  359. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +0 -31
  360. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +0 -56
  361. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +0 -40
  362. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +0 -31
  363. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +0 -74
  364. package/esm2022/lib/components/i18n/language/elder-language-config.mjs +0 -3
  365. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +0 -70
  366. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +0 -73
  367. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +0 -120
  368. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +0 -79
  369. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +0 -53
  370. package/esm2022/lib/components/i18n/public_api.mjs +0 -4
  371. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +0 -129
  372. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +0 -141
  373. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +0 -106
  374. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +0 -41
  375. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +0 -51
  376. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +0 -144
  377. package/esm2022/lib/components/iframes/iframe-messages.mjs +0 -5
  378. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +0 -80
  379. package/esm2022/lib/components/iframes/iframe.service.mjs +0 -54
  380. package/esm2022/lib/components/iframes/typed-event-message.mjs +0 -42
  381. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +0 -65
  382. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +0 -166
  383. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +0 -20
  384. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +0 -9
  385. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +0 -233
  386. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +0 -202
  387. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +0 -120
  388. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +0 -61
  389. package/esm2022/lib/components/input/autocomplete/many/word-position-finder.mjs +0 -58
  390. package/esm2022/lib/components/input/public_api.mjs +0 -2
  391. package/esm2022/lib/components/labels/elder-labels.module.mjs +0 -50
  392. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +0 -239
  393. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +0 -268
  394. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +0 -92
  395. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +0 -65
  396. package/esm2022/lib/components/measures/elder-measures.module.mjs +0 -130
  397. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +0 -31
  398. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +0 -43
  399. package/esm2022/lib/components/measures/elder-unit.service.mjs +0 -113
  400. package/esm2022/lib/components/measures/model/dimensions.mjs +0 -17
  401. package/esm2022/lib/components/measures/model/quantity.mjs +0 -12
  402. package/esm2022/lib/components/measures/model/unit-dimension.mjs +0 -14
  403. package/esm2022/lib/components/measures/model/unit-registry.mjs +0 -81
  404. package/esm2022/lib/components/measures/model/unit.mjs +0 -143
  405. package/esm2022/lib/components/measures/public_api.mjs +0 -8
  406. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +0 -44
  407. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +0 -173
  408. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +0 -84
  409. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +0 -73
  410. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +0 -341
  411. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +0 -184
  412. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +0 -59
  413. package/esm2022/lib/components/navigation/bread-crumbs/path/path.mjs +0 -37
  414. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +0 -60
  415. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +0 -121
  416. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +0 -174
  417. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +0 -68
  418. package/esm2022/lib/components/navigation/public_api.mjs +0 -4
  419. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +0 -48
  420. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +0 -83
  421. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +0 -68
  422. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +0 -71
  423. package/esm2022/lib/components/navigation/toolbar/toolbar-column-position.mjs +0 -2
  424. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +0 -39
  425. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +0 -86
  426. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +0 -44
  427. package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +0 -41
  428. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +0 -73
  429. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +0 -232
  430. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +0 -35
  431. package/esm2022/lib/components/page/exit-guard/page-exit-guard.module.mjs +0 -20
  432. package/esm2022/lib/components/page/exit-guard/page-exit-guard.service.mjs +0 -129
  433. package/esm2022/lib/components/page/exit-guard/page-exit-lock/page-exit-lock.component.mjs +0 -25
  434. package/esm2022/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.mjs +0 -29
  435. package/esm2022/lib/components/page/exit-guard/page-exit-lock-overview/page-exit-lock-overview.component.mjs +0 -26
  436. package/esm2022/lib/components/page/public_api.mjs +0 -2
  437. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +0 -12
  438. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +0 -12
  439. package/esm2022/lib/components/panels/elder-panel.module.mjs +0 -60
  440. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +0 -26
  441. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +0 -70
  442. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +0 -74
  443. package/esm2022/lib/components/public_api.mjs +0 -43
  444. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +0 -63
  445. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +0 -17
  446. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +0 -95
  447. package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +0 -38
  448. package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +0 -64
  449. package/esm2022/lib/components/select/auto/elder-select-first-util.mjs +0 -55
  450. package/esm2022/lib/components/select/elder-select-base.mjs +0 -333
  451. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +0 -48
  452. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +0 -139
  453. package/esm2022/lib/components/select/elder-select-value.directive.mjs +0 -18
  454. package/esm2022/lib/components/select/elder-select.module.mjs +0 -229
  455. package/esm2022/lib/components/select/filter/elder-chip-filter-style-resolver.mjs +0 -74
  456. package/esm2022/lib/components/select/filter/elder-chips-include-exclude.directive.mjs +0 -148
  457. package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +0 -51
  458. package/esm2022/lib/components/select/filter/include-exclude-model-filter-adapter.mjs +0 -61
  459. package/esm2022/lib/components/select/filter/include-exclude-selection-model.mjs +0 -160
  460. package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +0 -16
  461. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +0 -386
  462. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/chip-options-provider.mjs +0 -87
  463. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +0 -263
  464. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/select-option-chip-spec.mjs +0 -15
  465. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +0 -274
  466. package/esm2022/lib/components/select/multi/elder-multi-select-chips/select-chip-spec.mjs +0 -15
  467. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +0 -86
  468. package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +0 -34
  469. package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +0 -146
  470. package/esm2022/lib/components/select/multi/public_api.mjs +0 -5
  471. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +0 -89
  472. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +0 -126
  473. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +0 -58
  474. package/esm2022/lib/components/select/public_api.mjs +0 -5
  475. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +0 -60
  476. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +0 -444
  477. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +0 -45
  478. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +0 -148
  479. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +0 -46
  480. package/esm2022/lib/components/shell/drawers/drawer-outlet-binding.mjs +0 -64
  481. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +0 -119
  482. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +0 -128
  483. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +0 -47
  484. package/esm2022/lib/components/shell/elder-shell.module.mjs +0 -101
  485. package/esm2022/lib/components/shell/elder-shell.service.mjs +0 -142
  486. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +0 -75
  487. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +0 -238
  488. package/esm2022/lib/components/shell/shell-content-slot.mjs +0 -2
  489. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +0 -137
  490. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +0 -26
  491. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +0 -257
  492. package/esm2022/lib/components/tabs/elder-tab.module.mjs +0 -21
  493. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +0 -62
  494. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +0 -73
  495. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +0 -74
  496. package/esm2022/lib/components/theme/elder-theme.directive.mjs +0 -64
  497. package/esm2022/lib/components/theme/elder-theme.module.mjs +0 -68
  498. package/esm2022/lib/components/theme/elder-theme.service.mjs +0 -121
  499. package/esm2022/lib/components/theme/known-elder-themes.mjs +0 -6
  500. package/esm2022/lib/components/theme/public_api.mjs +0 -2
  501. package/esm2022/lib/components/theme/theme-spec.mjs +0 -11
  502. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +0 -43
  503. package/esm2022/lib/components/time/date-formats/locale-date-formats.mjs +0 -28
  504. package/esm2022/lib/components/time/duration/duration-bucket.mjs +0 -68
  505. package/esm2022/lib/components/time/duration/duration-format.mjs +0 -271
  506. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +0 -110
  507. package/esm2022/lib/components/time/duration/iso-duration-str.mjs +0 -2
  508. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +0 -96
  509. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +0 -98
  510. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +0 -217
  511. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-anchor-controller.mjs +0 -21
  512. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-calendar-controller.mjs +0 -24
  513. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-controller.mjs +0 -43
  514. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-form-controller.mjs +0 -69
  515. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-select-controller.mjs +0 -117
  516. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-shift-controller.mjs +0 -44
  517. package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.component.mjs +0 -198
  518. package/esm2022/lib/components/time/elder-interval-picker/interval-picker-binding/elder-interval-picker-binding.directive.mjs +0 -41
  519. package/esm2022/lib/components/time/elder-interval-picker/interval-picker-toggle/elder-interval-picker-toggle.component.mjs +0 -144
  520. package/esm2022/lib/components/time/elder-interval-picker/manager/interval-picker-state-manager.mjs +0 -93
  521. package/esm2022/lib/components/time/elder-interval-picker/model/anchor-state.mjs +0 -54
  522. package/esm2022/lib/components/time/elder-interval-picker/model/interval-state.mjs +0 -37
  523. package/esm2022/lib/components/time/elder-interval-picker/model/smart-shift-state.mjs +0 -10
  524. package/esm2022/lib/components/time/elder-interval-picker/presenter/interval-picker-presenter.mjs +0 -96
  525. package/esm2022/lib/components/time/elder-interval-picker/util/interval-picker-util.mjs +0 -194
  526. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +0 -268
  527. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +0 -85
  528. package/esm2022/lib/components/time/elder-time.module.mjs +0 -154
  529. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +0 -118
  530. package/esm2022/lib/components/time/period/period-bucket.mjs +0 -31
  531. package/esm2022/lib/components/time/period/period-format.mjs +0 -89
  532. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +0 -39
  533. package/esm2022/lib/components/time/public_api.mjs +0 -8
  534. package/esm2022/lib/components/toasts/elder-toast.module.mjs +0 -36
  535. package/esm2022/lib/components/toasts/elder-toast.service.mjs +0 -170
  536. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +0 -80
  537. package/esm2022/lib/components/toasts/toast-type.mjs +0 -7
  538. package/esm2022/lib/components/toasts/toast.mjs +0 -2
  539. package/esm2022/lib/components/url-fragment/elder-url-fragment.mjs +0 -9
  540. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +0 -52
  541. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +0 -95
  542. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +0 -64
  543. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +0 -18
  544. package/esm2022/lib/features/event-source/fetch/public_api.mjs +0 -3
  545. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.mjs +0 -219
  546. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +0 -53
  547. package/esm2022/lib/features/event-source/public_api.mjs +0 -3
  548. package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +0 -56
  549. package/esm2022/lib/features/event-source/standard/public_api.mjs +0 -3
  550. package/esm2022/lib/features/event-source/standard/reactive-event-source.mjs +0 -199
  551. package/esm2022/lib/features/kafent/access-token-provider.mjs +0 -20
  552. package/esm2022/lib/features/kafent/kafent-config.mjs +0 -24
  553. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +0 -25
  554. package/esm2022/lib/features/kafent/kafent-event.mjs +0 -3
  555. package/esm2022/lib/features/kafent/kafent-event.service.mjs +0 -115
  556. package/esm2022/lib/features/kafent/kafent-live-event-request.mjs +0 -2
  557. package/esm2022/lib/features/kafent/kafent.module.mjs +0 -58
  558. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +0 -131
  559. package/esm2022/lib/features/kafent/sse/kafent-topic-sse.mjs +0 -97
  560. package/esm2022/lib/features/public_api.mjs +0 -3
  561. package/esm2022/lib/pipes/bytes.pipe.mjs +0 -27
  562. package/esm2022/lib/pipes/elder-pipes.module.mjs +0 -114
  563. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +0 -24
  564. package/esm2022/lib/pipes/elder-round.pipe.mjs +0 -36
  565. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +0 -21
  566. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +0 -41
  567. package/esm2022/lib/pipes/iso-duration.pipe.mjs +0 -41
  568. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +0 -49
  569. package/esm2022/lib/pipes/iso-interval.pipe.mjs +0 -62
  570. package/esm2022/lib/pipes/public_api.mjs +0 -2
  571. package/esm2022/lib/pipes/time-ago.pipe.mjs +0 -110
  572. package/esm2022/lib/pipes/time-duration.pipe.mjs +0 -101
  573. package/esm2022/lib/pipes/weight.pipe.mjs +0 -60
  574. package/esm2022/public_api.mjs +0 -8
  575. package/lib/components/panels/flat/elder-panel.component.d.ts +0 -15
  576. package/src/lib/components/panels/flat/elder-panel.component.scss +0 -3
@@ -1,338 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ContentChildren, forwardRef, Input, Optional, SkipSelf, TemplateRef, ViewChild, ViewChildren, } from '@angular/core';
2
- import { MatTableDataContextBindingBuilder } from '../../../../common/data/data-context/mat-table-data-context-binding';
3
- import { MatPaginator } from '@angular/material/paginator';
4
- import { MatColumnDef, MatRowDef, MatTable, MatHeaderCellDef, MatHeaderCell, MatCellDef, MatCell, MatFooterCellDef, MatFooterCell, MatHeaderRowDef, MatHeaderRow, MatRow, MatFooterRowDef, MatFooterRow, } from '@angular/material/table';
5
- import { isDataContext } from '../../../../common/data/data-context/data-context';
6
- import { BehaviorSubject, combineLatest, of } from 'rxjs';
7
- import { map, takeUntil } from 'rxjs/operators';
8
- import { LoggerFactory } from '@elderbyte/ts-logger';
9
- import { DataContextBuilder } from '../../../../common/data/data-context/data-context-builder';
10
- import { ELDER_DATA_VIEW } from '../../base/elder-data-view';
11
- import { ElderTableRowDirective } from '../elder-table-row.directive';
12
- import { isDataSource } from '../../../../common/data/datasource/data-source';
13
- import { ElderDataViewBaseComponent } from '../../base/elder-data-view-base';
14
- import { ElderTableProviders } from '../model/elder-table-model-provider';
15
- import { QueryListBinding } from '../../../../common/utils/query-list-binding';
16
- import { ElderTableModelCdkTableBinding } from '../model/elder-table-model-cdk-table-binding';
17
- import { ElderTableModelQueryGroup } from '../model/elder-table-model-query-group';
18
- import { ElderTableColumnDirective } from '../elder-table-column.directive';
19
- import { ColumnPositionSpec } from '../model/elder-column-layout';
20
- import { ElderTableToolbarDirective } from './elder-table-toolbar.directive';
21
- import { MatIcon } from '@angular/material/icon';
22
- import { MatIconButton } from '@angular/material/button';
23
- import { MatProgressBar } from '@angular/material/progress-bar';
24
- import { DataContextStateIndicatorComponent } from '../../common/data-context-state-indicator/data-context-state-indicator.component';
25
- import { MatCheckbox } from '@angular/material/checkbox';
26
- import { ElderSelectionMasterCheckboxComponent } from '../../common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component';
27
- import { DataContextSelectionDirective } from '../../common/selection/data-context-selection.directive';
28
- import { ElderInfiniteScrollDirective } from '../../../infinitescroll/elder-infinite-scroll.directive';
29
- import { NgFor, NgTemplateOutlet, NgIf, AsyncPipe } from '@angular/common';
30
- import { MatCard } from '@angular/material/card';
31
- import * as i0 from "@angular/core";
32
- import * as i1 from "../model/elder-table-model";
33
- import * as i2 from "../../../../common/selection/selection-model";
34
- import * as i3 from "../../base/elder-data-view-options-provider";
35
- import * as i4 from "@angular/material/sort";
36
- import * as i5 from "../elder-table-extension.directive";
37
- export class ElderTableComponent extends ElderDataViewBaseComponent {
38
- /***************************************************************************
39
- * *
40
- * Constructor *
41
- * *
42
- **************************************************************************/
43
- constructor(tableModel, selectionModel, dataViewOptionsProvider, matSort, parentExtension, cdr, zone) {
44
- super(selectionModel, dataViewOptionsProvider);
45
- this.tableModel = tableModel;
46
- this.parentExtension = parentExtension;
47
- this.cdr = cdr;
48
- this.zone = zone;
49
- /***************************************************************************
50
- * *
51
- * Fields *
52
- * *
53
- **************************************************************************/
54
- this.logger = LoggerFactory.getLogger(this.constructor.name);
55
- /**
56
- * Load next chunk after current is done
57
- */
58
- this.loadNextQueued = false;
59
- /**
60
- * When this field is present and true,
61
- * the coresponding row is marked to be in the processed of being removed.
62
- *
63
- * I.e. 'removing'
64
- */
65
- this.removingField = null;
66
- /**
67
- * When this field is present and true,
68
- * the corresponding row is hidden.
69
- *
70
- * I.e. 'deleted'
71
- *
72
- */
73
- this.hiddenField = null;
74
- this.pageSizeOptions = [30, 50, 100, 150, 200];
75
- this.keepSelection = true;
76
- this.showFooter = false;
77
- this.toolbarRowTemplates$ = new BehaviorSubject([]);
78
- /**
79
- * Gets the current rows of this table.
80
- */
81
- this.rows$ = new BehaviorSubject([]);
82
- this._matSort = matSort;
83
- this._extensionGroupIndex = (parentExtension?.extensionGroupIndex ?? 0) + 1;
84
- if (this._matSort) {
85
- this._matSort.disableClear = true;
86
- }
87
- }
88
- /***************************************************************************
89
- * *
90
- * Life Cycle *
91
- * *
92
- **************************************************************************/
93
- ngOnInit() {
94
- super.ngOnInit();
95
- ElderTableModelCdkTableBinding.of(this.tableModel).table(this.matTable).bindUntil(this.destroy$);
96
- }
97
- ngAfterContentInit() {
98
- ElderTableModelQueryGroup.start(this.tableModel, this._extensionGroupIndex)
99
- .withColumnsPosition(ColumnPositionSpec.relativeToPrevGroup('start'))
100
- .withColumnDefs(this.columnDefs, this.elderColumns)
101
- .withRowDefs(this.rowDefs)
102
- .withSort(this._matSort)
103
- .bindUntil(this.destroy$);
104
- QueryListBinding.of(this.toolbarRowTemplateQuery)
105
- .updated((toolbarRows) => this.toolbarRowTemplates$.next(toolbarRows))
106
- .bindUntil(this.destroy$);
107
- }
108
- ngAfterViewInit() {
109
- MatTableDataContextBindingBuilder.start(this.dataContext$)
110
- .withSorts(this.tableModel.sorts$)
111
- .withPaginator(of(this.matPaginator))
112
- .bindUntil(this.destroy$);
113
- QueryListBinding.of(this.rowsQuery)
114
- .updated((rows) => this.rows$.next(rows))
115
- .bindUntil(this.destroy$);
116
- }
117
- /***************************************************************************
118
- * *
119
- * Properties *
120
- * *
121
- **************************************************************************/
122
- /**
123
- * @deprecated
124
- */
125
- set toolbarTemplate(template) {
126
- this.toolbarRowTemplates$.next([template]);
127
- }
128
- set data(data) {
129
- this.autoCleanUp();
130
- let dc;
131
- if (data instanceof Array) {
132
- dc = DataContextBuilder.start().localSort().buildLocal(data, this.idField); // Potential Memory leak (See autoCleanUp)
133
- dc.start();
134
- }
135
- else if (isDataSource(data)) {
136
- dc = DataContextBuilder.start().localSort().reloadOnLocalChanges().build(data); // Potential Memory leak (See autoCleanUp)
137
- dc.start();
138
- }
139
- else if (isDataContext(data)) {
140
- dc = data;
141
- }
142
- else if (data === null || data === undefined) {
143
- dc = DataContextBuilder.start().buildEmpty();
144
- }
145
- else {
146
- throw new Error('The data must either be an Array, IDataSource or IDataContext, but was: ' + typeof data);
147
- }
148
- this.dataContext = dc;
149
- }
150
- onDataContextSet(data) {
151
- this.total$ = data.total.pipe(map((total) => (total ? total + '' : '∞')));
152
- this.setupSelectionLifeCycle(data);
153
- // this.selectionModel.clear(); // TODO Support changeable data-context for static array use case
154
- if (this.isContinuable) {
155
- this.canLoadMore$ = combineLatest([data.loading, this.dataContinuable.hasMoreData]).pipe(map(([loading, hasMoreData]) => !loading && hasMoreData));
156
- }
157
- else {
158
- this.canLoadMore$ = of(false);
159
- }
160
- }
161
- set displayedColumns(displayedColumns) {
162
- this.tableModel.displayedColumns = displayedColumns;
163
- }
164
- get displayedColumns() {
165
- return this.tableModel.displayedColumns;
166
- }
167
- /** Indicates if selection column is shown. */
168
- set selectionVisible(visible) {
169
- this.tableModel.selectionVisible = visible;
170
- }
171
- get selectionVisible() {
172
- return this.tableModel.selectionVisible;
173
- }
174
- /*
175
- @Output()
176
- public get activeItem(): Observable<any> {
177
- return this.elderTableActivation.activeItem$;
178
- }*/
179
- /***************************************************************************
180
- * *
181
- * Public API *
182
- * *
183
- **************************************************************************/
184
- requestMoreDataZoned(event) {
185
- if (this.dataContinuable.hasMoreDataSnapshot) {
186
- if (this.dataContinuable.snapshot.isLoading) {
187
- this.loadNextQueued = true;
188
- }
189
- else {
190
- this.zone.run(() => {
191
- this.dataContinuable.loadMore().subscribe((loaded) => {
192
- if (this.loadNextQueued) {
193
- this.loadNextQueued = false;
194
- this.requestMoreDataZoned(event);
195
- }
196
- });
197
- });
198
- }
199
- }
200
- else {
201
- this.loadNextQueued = false;
202
- }
203
- }
204
- get trackByFn() {
205
- return (index, entity) => this.getId(entity);
206
- }
207
- isDataValid(data) {
208
- return data?.length > 0;
209
- }
210
- /***************************************************************************
211
- * *
212
- * Private Methods *
213
- * *
214
- **************************************************************************/
215
- setupSelectionLifeCycle(data) {
216
- if (this.selectionLifeCycle) {
217
- this.selectionLifeCycle.unsubscribe(); // Clean up previous sub
218
- }
219
- this.selectionLifeCycle = data.data.pipe(takeUntil(this.destroy$)).subscribe((newData) => {
220
- if (this.keepSelection) {
221
- // If keep selection enabled
222
- if (this.selectionModel.hasValue) {
223
- // Check that all selected values are still present or remove them
224
- const existingIds = new Set(newData.map((d) => this.getId(d)));
225
- const noLongerAvailableIds = this.selectionModel.selectionSnapshot
226
- .map((selected) => this.getId(selected))
227
- .filter((selectedId) => !existingIds.has(selectedId));
228
- this.selectionModel.deselectIds(noLongerAvailableIds);
229
- }
230
- }
231
- else {
232
- this.selectionModel.clear();
233
- }
234
- });
235
- }
236
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", 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 }); }
237
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ElderTableComponent, isStandalone: true, selector: "elder-table", inputs: { idField: "idField", removingField: "removingField", hiddenField: "hiddenField", pageSizeOptions: "pageSizeOptions", keepSelection: "keepSelection", showFooter: "showFooter", toolbarTemplate: "toolbarTemplate", data: "data", displayedColumns: "displayedColumns", selectionVisible: "selectionVisible" }, providers: [
238
- ElderTableProviders.ExistingOrNewTableModel,
239
- {
240
- provide: ELDER_DATA_VIEW,
241
- useExisting: forwardRef(() => ElderTableComponent),
242
- },
243
- ], 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\n 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 @for (toolbarRowTemplate of toolbarRowTemplates$ | async; track toolbarRowTemplate) {\n <ng-template\n *ngTemplateOutlet=\"toolbarRowTemplate; context: { $implicit: this }\"\n ></ng-template>\n }\n\n <!-- Scrollable Table -->\n <div\n class=\"layout-col {{\n isDataValid(dataContext?.data | async) ? 'flex' : ''\n }} 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\"\n #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\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\n (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]=\"\n (dataSelection.selectionState$ | async).anySelected\n \"\n >\n </mat-checkbox>\n </div>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (tableModel.displayedColumnsInner$ | async; as displayedColumnsInner) {\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsInner; sticky: true\"></tr>\n <tr\n mat-row\n 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]=\"\n interactionMode === 'selection' && selectionModel.observeSelection(entity) | async\n \"\n (click)=\"onItemClick(entity)\"\n (dblclick)=\"onItemDoubleClick(entity)\"\n ></tr>\n @if (showFooter) {\n <tr mat-footer-row *matFooterRowDef=\"displayedColumnsInner; sticky: true\"></tr>\n }\n }\n </table>\n </div>\n\n @if (!isDataValid(dataContext?.data | async)) {\n <elder-data-context-state-indicator class=\"flex\" [dataContext]=\"dataContext\">\n </elder-data-context-state-indicator>\n }\n\n <mat-progress-bar\n class=\"flex-none\"\n [mode]=\"(dataContext?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"(dataContext?.status | async)?.hasError ? 'warn' : 'primary'\"\n >\n </mat-progress-bar>\n\n @if (isActivePaged) {\n @if (dataActivePaged.page | async; as page) {\n <!-- Optional Paginator Toolbar -->\n <mat-paginator\n class=\"flex-none\"\n [length]=\"dataContext?.total | async\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions\"\n >\n </mat-paginator>\n }\n }\n\n <!-- Optional Continuation Footer -->\n @if (isContinuable) {\n <div class=\"layout-row flex-none place-end-center gap-md elder-table-footer\">\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{ (dataContext?.data | async)?.length }} / {{ total$ | async }}\n </span>\n\n <button\n mat-icon-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataContinuable.loadMore()\"\n >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </div>\n }\n </div>\n</mat-card>\n", styles: [".elder-mat-inner-table{width:100%}.elder-table-row.dense{height:42px!important}.elder-mat-table-container{border-radius:4px;overflow:hidden}.mat-column-select{overflow:initial;min-width:72px;max-width:5%;width:72px}.elder-row-removing{text-decoration:line-through}.elder-row-hidden{display:none}.elder-table-row{cursor:pointer}:host{min-width:0;min-height:0}.elder-table-hint{color:gray}.elder-table-footer{height:44px}.elder-table-checkbox{opacity:.25;-webkit-transition:opacity .5s ease-in-out;-moz-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out}.elder-table-row:hover .elder-table-checkbox{opacity:.9}.elder-table-checkbox-visible{opacity:1}\n"], dependencies: [{ kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ElderInfiniteScrollDirective, selector: "[elderInfiniteScroll]", inputs: ["listenToHost", "eventThrottle", "offsetFactor", "ignoreScrollEvent", "containerId", "scrollContainer"], outputs: ["closeToEnd", "scrolling"] }, { kind: "component", type: MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: DataContextSelectionDirective, selector: "[elderDataContextSelection]", inputs: ["elderDataContextSelectionModel", "elderDataContextSelection"], exportAs: ["elderDataContextSelection"] }, { kind: "directive", type: MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "component", type: ElderSelectionMasterCheckboxComponent, selector: "elder-selection-master-checkbox" }, { kind: "directive", type: MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "directive", type: MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "component", type: MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "directive", type: MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "component", type: MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: ElderTableRowDirective, selector: "tr[elderTableRow]", inputs: ["elderTableRow"], exportAs: ["elderTableRow"] }, { kind: "directive", type: MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "component", type: MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "component", type: DataContextStateIndicatorComponent, selector: "elder-data-context-state-indicator", inputs: ["dataContext"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
244
- }
245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderTableComponent, decorators: [{
246
- type: Component,
247
- args: [{ selector: 'elder-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
248
- ElderTableProviders.ExistingOrNewTableModel,
249
- {
250
- provide: ELDER_DATA_VIEW,
251
- useExisting: forwardRef(() => ElderTableComponent),
252
- },
253
- ], standalone: true, imports: [
254
- MatCard,
255
- NgFor,
256
- NgTemplateOutlet,
257
- ElderInfiniteScrollDirective,
258
- MatTable,
259
- DataContextSelectionDirective,
260
- MatColumnDef,
261
- MatHeaderCellDef,
262
- MatHeaderCell,
263
- ElderSelectionMasterCheckboxComponent,
264
- MatCellDef,
265
- MatCell,
266
- MatCheckbox,
267
- MatFooterCellDef,
268
- MatFooterCell,
269
- NgIf,
270
- MatHeaderRowDef,
271
- MatHeaderRow,
272
- MatRowDef,
273
- MatRow,
274
- ElderTableRowDirective,
275
- MatFooterRowDef,
276
- MatFooterRow,
277
- DataContextStateIndicatorComponent,
278
- MatProgressBar,
279
- MatPaginator,
280
- MatIconButton,
281
- MatIcon,
282
- AsyncPipe,
283
- ], template: "<mat-card\n 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 @for (toolbarRowTemplate of toolbarRowTemplates$ | async; track toolbarRowTemplate) {\n <ng-template\n *ngTemplateOutlet=\"toolbarRowTemplate; context: { $implicit: this }\"\n ></ng-template>\n }\n\n <!-- Scrollable Table -->\n <div\n class=\"layout-col {{\n isDataValid(dataContext?.data | async) ? 'flex' : ''\n }} 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\"\n #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\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\n (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]=\"\n (dataSelection.selectionState$ | async).anySelected\n \"\n >\n </mat-checkbox>\n </div>\n </td>\n <td mat-footer-cell *matFooterCellDef></td>\n </ng-container>\n\n @if (tableModel.displayedColumnsInner$ | async; as displayedColumnsInner) {\n <tr mat-header-row *matHeaderRowDef=\"displayedColumnsInner; sticky: true\"></tr>\n <tr\n mat-row\n 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]=\"\n interactionMode === 'selection' && selectionModel.observeSelection(entity) | async\n \"\n (click)=\"onItemClick(entity)\"\n (dblclick)=\"onItemDoubleClick(entity)\"\n ></tr>\n @if (showFooter) {\n <tr mat-footer-row *matFooterRowDef=\"displayedColumnsInner; sticky: true\"></tr>\n }\n }\n </table>\n </div>\n\n @if (!isDataValid(dataContext?.data | async)) {\n <elder-data-context-state-indicator class=\"flex\" [dataContext]=\"dataContext\">\n </elder-data-context-state-indicator>\n }\n\n <mat-progress-bar\n class=\"flex-none\"\n [mode]=\"(dataContext?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"(dataContext?.status | async)?.hasError ? 'warn' : 'primary'\"\n >\n </mat-progress-bar>\n\n @if (isActivePaged) {\n @if (dataActivePaged.page | async; as page) {\n <!-- Optional Paginator Toolbar -->\n <mat-paginator\n class=\"flex-none\"\n [length]=\"dataContext?.total | async\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions\"\n >\n </mat-paginator>\n }\n }\n\n <!-- Optional Continuation Footer -->\n @if (isContinuable) {\n <div class=\"layout-row flex-none place-end-center gap-md elder-table-footer\">\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{ (dataContext?.data | async)?.length }} / {{ total$ | async }}\n </span>\n\n <button\n mat-icon-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataContinuable.loadMore()\"\n >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n </div>\n }\n </div>\n</mat-card>\n", styles: [".elder-mat-inner-table{width:100%}.elder-table-row.dense{height:42px!important}.elder-mat-table-container{border-radius:4px;overflow:hidden}.mat-column-select{overflow:initial;min-width:72px;max-width:5%;width:72px}.elder-row-removing{text-decoration:line-through}.elder-row-hidden{display:none}.elder-table-row{cursor:pointer}:host{min-width:0;min-height:0}.elder-table-hint{color:gray}.elder-table-footer{height:44px}.elder-table-checkbox{opacity:.25;-webkit-transition:opacity .5s ease-in-out;-moz-transition:opacity .5s ease-in-out;transition:opacity .5s ease-in-out}.elder-table-row:hover .elder-table-checkbox{opacity:.9}.elder-table-checkbox-visible{opacity:1}\n"] }]
284
- }], ctorParameters: () => [{ type: i1.ElderTableModel }, { type: i2.SelectionModel, decorators: [{
285
- type: Optional
286
- }] }, { type: i3.ElderDataViewOptionsProvider, decorators: [{
287
- type: Optional
288
- }, {
289
- type: SkipSelf
290
- }] }, { type: i4.MatSort, decorators: [{
291
- type: Optional
292
- }] }, { type: i5.ElderTableExtensionDirective, decorators: [{
293
- type: Optional
294
- }, {
295
- type: SkipSelf
296
- }] }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }], propDecorators: { matTable: [{
297
- type: ViewChild,
298
- args: [MatTable, { static: true }]
299
- }], matPaginator: [{
300
- type: ViewChild,
301
- args: [MatPaginator]
302
- }], columnDefs: [{
303
- type: ContentChildren,
304
- args: [MatColumnDef]
305
- }], elderColumns: [{
306
- type: ContentChildren,
307
- args: [ElderTableColumnDirective]
308
- }], rowDefs: [{
309
- type: ContentChildren,
310
- args: [MatRowDef]
311
- }], idField: [{
312
- type: Input
313
- }], removingField: [{
314
- type: Input
315
- }], hiddenField: [{
316
- type: Input
317
- }], pageSizeOptions: [{
318
- type: Input
319
- }], keepSelection: [{
320
- type: Input
321
- }], showFooter: [{
322
- type: Input
323
- }], toolbarRowTemplateQuery: [{
324
- type: ContentChildren,
325
- args: [ElderTableToolbarDirective, { read: TemplateRef }]
326
- }], rowsQuery: [{
327
- type: ViewChildren,
328
- args: [ElderTableRowDirective]
329
- }], toolbarTemplate: [{
330
- type: Input
331
- }], data: [{
332
- type: Input
333
- }], displayedColumns: [{
334
- type: Input
335
- }], selectionVisible: [{
336
- type: Input
337
- }] } });
338
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXZpZXcvdGFibGUvZWxkZXItdGFibGUvZWxkZXItdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixLQUFLLEVBR0wsUUFBUSxFQUVSLFFBQVEsRUFDUixXQUFXLEVBRVgsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQTtBQUN2SCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFFMUQsT0FBTyxFQUNMLFlBQVksRUFDWixTQUFTLEVBQ1QsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsVUFBVSxFQUNWLE9BQU8sRUFDUCxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNiLGVBQWUsRUFDZixZQUFZLEVBQ1osTUFBTSxFQUNOLGVBQWUsRUFDZixZQUFZLEdBQ2IsTUFBTSx5QkFBeUIsQ0FBQTtBQUNoQyxPQUFPLEVBQWdCLGFBQWEsRUFBRSxNQUFNLG1EQUFtRCxDQUFBO0FBRS9GLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUE7QUFDbkYsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkRBQTJELENBQUE7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBQ3JFLE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQTtBQUMxRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUU1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN6RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQTtBQUM3RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUVsRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUU1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQTtBQUNySSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDeEQsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sa0dBQWtHLENBQUE7QUFDeEosT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0seURBQXlELENBQUE7QUFDdkcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUE7QUFDdEcsT0FBTyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFBOzs7Ozs7O0FBK0NoRCxNQUFNLE9BQU8sbUJBQ1gsU0FBUSwwQkFBMEI7SUFxR2xDOzs7O2dGQUk0RTtJQUU1RSxZQUNrQixVQUEyQixFQUMvQixjQUFtQyxFQUN2Qix1QkFBcUQsRUFDakUsT0FBZ0IsRUFDYSxlQUE2QyxFQUM5RSxHQUFzQixFQUN0QixJQUFZO1FBRXBCLEtBQUssQ0FBQyxjQUFjLEVBQUUsdUJBQXVCLENBQUMsQ0FBQTtRQVI5QixlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUlGLG9CQUFlLEdBQWYsZUFBZSxDQUE4QjtRQUM5RSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBL0d0Qjs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUV4RTs7V0FFRztRQUNLLG1CQUFjLEdBQUcsS0FBSyxDQUFBO1FBOEI5Qjs7Ozs7V0FLRztRQUVJLGtCQUFhLEdBQVcsSUFBSSxDQUFBO1FBRW5DOzs7Ozs7V0FNRztRQUVJLGdCQUFXLEdBQVcsSUFBSSxDQUFBO1FBRzFCLG9CQUFlLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFHekMsa0JBQWEsR0FBRyxJQUFJLENBQUE7UUFHcEIsZUFBVSxHQUFHLEtBQUssQ0FBQTtRQVVULHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFxQixFQUFFLENBQUMsQ0FBQTtRQVVsRjs7V0FFRztRQUNhLFVBQUssR0FBRyxJQUFJLGVBQWUsQ0FBZ0MsRUFBRSxDQUFDLENBQUE7UUF3QjVFLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFBO1FBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDM0UsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVELFFBQVE7UUFDdEIsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBRWhCLDhCQUE4QixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ2xHLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIseUJBQXlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDO2FBQ3hFLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ3BFLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDbEQsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDekIsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDdkIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUUzQixnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDO2FBQzlDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNyRSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFTSxlQUFlO1FBQ3BCLGlDQUFpQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ3ZELFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQzthQUNqQyxhQUFhLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRTNCLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ2hDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDeEMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM3QixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFOztPQUVHO0lBQ0gsSUFDVyxlQUFlLENBQUMsUUFBMEI7UUFDbkQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELElBQ1csSUFBSSxDQUFDLElBQXVEO1FBQ3JFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUVsQixJQUFJLEVBQXFCLENBQUE7UUFFekIsSUFBSSxJQUFJLFlBQVksS0FBSyxFQUFFLENBQUM7WUFDMUIsRUFBRSxHQUFHLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUMsMENBQTBDO1lBQ3JILEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNaLENBQUM7YUFBTSxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzlCLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLDBDQUEwQztZQUN6SCxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDWixDQUFDO2FBQU0sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMvQixFQUFFLEdBQUcsSUFBSSxDQUFBO1FBQ1gsQ0FBQzthQUFNLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDL0MsRUFBRSxHQUFHLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQzlDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FDYiwwRUFBMEUsR0FBRyxPQUFPLElBQUksQ0FDekYsQ0FBQTtRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBRVMsZ0JBQWdCLENBQUMsSUFBdUI7UUFDaEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFekUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFBO1FBRWxDLGlHQUFpRztRQUVqRyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDdEYsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxDQUN6RCxDQUFBO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQ1csZ0JBQWdCLENBQUMsZ0JBQTBCO1FBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUE7SUFDckQsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQTtJQUN6QyxDQUFDO0lBRUQsOENBQThDO0lBQzlDLElBQ1csZ0JBQWdCLENBQUMsT0FBZ0I7UUFDMUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUE7SUFDNUMsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQTtJQUN6QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUVIOzs7O2dGQUk0RTtJQUVyRSxvQkFBb0IsQ0FBQyxLQUFjO1FBQ3hDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFBO1lBQzVCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7b0JBQ2pCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7d0JBQ25ELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDOzRCQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQTs0QkFDM0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFBO3dCQUNsQyxDQUFDO29CQUNILENBQUMsQ0FBQyxDQUFBO2dCQUNKLENBQUMsQ0FBQyxDQUFBO1lBQ0osQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUE7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDbEIsT0FBTyxDQUFDLEtBQWEsRUFBRSxNQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFTO1FBQzFCLE9BQU8sSUFBSSxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVwRSx1QkFBdUIsQ0FBQyxJQUF1QjtRQUNyRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQSxDQUFDLHdCQUF3QjtRQUNoRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN2RixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDdkIsNEJBQTRCO2dCQUM1QixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ2pDLGtFQUFrRTtvQkFDbEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7b0JBRW5FLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUI7eUJBQy9ELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQzt5QkFDdkMsTUFBTSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtvQkFFdkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtnQkFDdkQsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFBO1lBQzdCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7K0dBN1NVLG1CQUFtQjttR0FBbkIsbUJBQW1CLGtYQXhDbkI7WUFDVCxtQkFBbUIsQ0FBQyx1QkFBdUI7WUFDM0M7Z0JBQ0UsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDbkQ7U0FDRixxREE0RGdCLFlBQVksK0NBR1oseUJBQXlCLDBDQUd6QixTQUFTLDBEQStDVCwwQkFBMEIsUUFBVSxXQUFXLHVFQTdEckQsUUFBUSw2RkFHUixZQUFZLCtEQW1FVCxzQkFBc0IsdUVDM010Qyx5bEpBOEhBLHV0QkQxQ0ksT0FBTyxvR0FFUCxnQkFBZ0Isb0pBQ2hCLDRCQUE0QiwwTkFDNUIsUUFBUSxnR0FDUiw2QkFBNkIsMExBQzdCLFlBQVkscUZBQ1osZ0JBQWdCLCtEQUNoQixhQUFhLGlGQUNiLHFDQUFxQyw0RUFDckMsVUFBVSx5REFDVixPQUFPLG1FQUNQLFdBQVcsd1ZBQ1gsZ0JBQWdCLCtEQUNoQixhQUFhLGlGQUViLGVBQWUsb0hBQ2YsWUFBWSwyR0FDWixTQUFTLHVHQUNULE1BQU0sdUZBQ04sc0JBQXNCLHNIQUN0QixlQUFlLG9IQUNmLFlBQVksMkdBQ1osa0NBQWtDLHdHQUNsQyxjQUFjLHlLQUNkLFlBQVksc1BBQ1osYUFBYSw2RkFDYixPQUFPLHNJQUNQLFNBQVM7OzRGQUdBLG1CQUFtQjtrQkE3Qy9CLFNBQVM7K0JBQ0UsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNULG1CQUFtQixDQUFDLHVCQUF1Qjt3QkFDM0M7NEJBQ0UsT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDO3lCQUNuRDtxQkFDRixjQUNXLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLEtBQUs7d0JBQ0wsZ0JBQWdCO3dCQUNoQiw0QkFBNEI7d0JBQzVCLFFBQVE7d0JBQ1IsNkJBQTZCO3dCQUM3QixZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixxQ0FBcUM7d0JBQ3JDLFVBQVU7d0JBQ1YsT0FBTzt3QkFDUCxXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixJQUFJO3dCQUNKLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixTQUFTO3dCQUNULE1BQU07d0JBQ04sc0JBQXNCO3dCQUN0QixlQUFlO3dCQUNmLFlBQVk7d0JBQ1osa0NBQWtDO3dCQUNsQyxjQUFjO3dCQUNkLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixPQUFPO3dCQUNQLFNBQVM7cUJBQ1Y7OzBCQWdIRSxRQUFROzswQkFDUixRQUFROzswQkFBSSxRQUFROzswQkFDcEIsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksUUFBUTs4RkE5RmhCLFFBQVE7c0JBRGQsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUk5QixZQUFZO3NCQURsQixTQUFTO3VCQUFDLFlBQVk7Z0JBTWhCLFVBQVU7c0JBRGhCLGVBQWU7dUJBQUMsWUFBWTtnQkFJdEIsWUFBWTtzQkFEbEIsZUFBZTt1QkFBQyx5QkFBeUI7Z0JBSW5DLE9BQU87c0JBRGIsZUFBZTt1QkFBQyxTQUFTO2dCQVduQixPQUFPO3NCQURiLEtBQUs7Z0JBVUMsYUFBYTtzQkFEbkIsS0FBSztnQkFXQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxVQUFVO3NCQURoQixLQUFLO2dCQVVDLHVCQUF1QjtzQkFEN0IsZUFBZTt1QkFBQywwQkFBMEIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBVTFELFNBQVM7c0JBRGhCLFlBQVk7dUJBQUMsc0JBQXNCO2dCQW1GekIsZUFBZTtzQkFEekIsS0FBSztnQkFNSyxJQUFJO3NCQURkLEtBQUs7Z0JBeUNLLGdCQUFnQjtzQkFEMUIsS0FBSztnQkFXSyxnQkFBZ0I7c0JBRDFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBRdWVyeUxpc3QsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hdFRhYmxlRGF0YUNvbnRleHRCaW5kaW5nQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9tYXQtdGFibGUtZGF0YS1jb250ZXh0LWJpbmRpbmcnXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InXG5pbXBvcnQgeyBNYXRTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCdcbmltcG9ydCB7XG4gIE1hdENvbHVtbkRlZixcbiAgTWF0Um93RGVmLFxuICBNYXRUYWJsZSxcbiAgTWF0SGVhZGVyQ2VsbERlZixcbiAgTWF0SGVhZGVyQ2VsbCxcbiAgTWF0Q2VsbERlZixcbiAgTWF0Q2VsbCxcbiAgTWF0Rm9vdGVyQ2VsbERlZixcbiAgTWF0Rm9vdGVyQ2VsbCxcbiAgTWF0SGVhZGVyUm93RGVmLFxuICBNYXRIZWFkZXJSb3csXG4gIE1hdFJvdyxcbiAgTWF0Rm9vdGVyUm93RGVmLFxuICBNYXRGb290ZXJSb3csXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJ1xuaW1wb3J0IHsgSURhdGFDb250ZXh0LCBpc0RhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCdcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3NlbGVjdGlvbi9zZWxlY3Rpb24tbW9kZWwnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7IENka0NvbHVtbkRlZiwgQ2RrUm93RGVmLCBDZGtUYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSdcbmltcG9ydCB7IERhdGFDb250ZXh0QnVpbGRlciB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQtYnVpbGRlcidcbmltcG9ydCB7IEVMREVSX0RBVEFfVklFVyB9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3J1xuaW1wb3J0IHsgRWxkZXJUYWJsZVJvd0RpcmVjdGl2ZSB9IGZyb20gJy4uL2VsZGVyLXRhYmxlLXJvdy5kaXJlY3RpdmUnXG5pbXBvcnQgeyBJRGF0YVNvdXJjZSwgaXNEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YXNvdXJjZS9kYXRhLXNvdXJjZSdcbmltcG9ydCB7IEVsZGVyRGF0YVZpZXdCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS9lbGRlci1kYXRhLXZpZXctYmFzZSdcbmltcG9ydCB7IEVsZGVyVGFibGVNb2RlbCB9IGZyb20gJy4uL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsJ1xuaW1wb3J0IHsgRWxkZXJUYWJsZVByb3ZpZGVycyB9IGZyb20gJy4uL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsLXByb3ZpZGVyJ1xuaW1wb3J0IHsgUXVlcnlMaXN0QmluZGluZyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi91dGlscy9xdWVyeS1saXN0LWJpbmRpbmcnXG5pbXBvcnQgeyBFbGRlclRhYmxlTW9kZWxDZGtUYWJsZUJpbmRpbmcgfSBmcm9tICcuLi9tb2RlbC9lbGRlci10YWJsZS1tb2RlbC1jZGstdGFibGUtYmluZGluZydcbmltcG9ydCB7IEVsZGVyVGFibGVNb2RlbFF1ZXJ5R3JvdXAgfSBmcm9tICcuLi9tb2RlbC9lbGRlci10YWJsZS1tb2RlbC1xdWVyeS1ncm91cCdcbmltcG9ydCB7IEVsZGVyVGFibGVFeHRlbnNpb25EaXJlY3RpdmUgfSBmcm9tICcuLi9lbGRlci10YWJsZS1leHRlbnNpb24uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRWxkZXJUYWJsZUNvbHVtbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2VsZGVyLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUnXG5pbXBvcnQgeyBDb2x1bW5Qb3NpdGlvblNwZWMgfSBmcm9tICcuLi9tb2RlbC9lbGRlci1jb2x1bW4tbGF5b3V0J1xuaW1wb3J0IHsgRWxkZXJUYWJsZVRvb2xiYXJEaXJlY3RpdmUgfSBmcm9tICcuL2VsZGVyLXRhYmxlLXRvb2xiYXIuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRWxkZXJEYXRhVmlld09wdGlvbnNQcm92aWRlciB9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3LW9wdGlvbnMtcHJvdmlkZXInXG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbidcbmltcG9ydCB7IE1hdEljb25CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcidcbmltcG9ydCB7IERhdGFDb250ZXh0U3RhdGVJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvci9kYXRhLWNvbnRleHQtc3RhdGUtaW5kaWNhdG9yLmNvbXBvbmVudCdcbmltcG9ydCB7IE1hdENoZWNrYm94IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnXG5pbXBvcnQgeyBFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlbGVjdGlvbi9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94L2VsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3guY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YUNvbnRleHRTZWxlY3Rpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9jb21tb24vc2VsZWN0aW9uL2RhdGEtY29udGV4dC1zZWxlY3Rpb24uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRWxkZXJJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2luZmluaXRlc2Nyb2xsL2VsZGVyLWluZmluaXRlLXNjcm9sbC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBOZ0ZvciwgTmdUZW1wbGF0ZU91dGxldCwgTmdJZiwgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTWF0Q2FyZCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItdGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIEVsZGVyVGFibGVQcm92aWRlcnMuRXhpc3RpbmdPck5ld1RhYmxlTW9kZWwsXG4gICAge1xuICAgICAgcHJvdmlkZTogRUxERVJfREFUQV9WSUVXLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWxkZXJUYWJsZUNvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdENhcmQsXG4gICAgTmdGb3IsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBFbGRlckluZmluaXRlU2Nyb2xsRGlyZWN0aXZlLFxuICAgIE1hdFRhYmxlLFxuICAgIERhdGFDb250ZXh0U2VsZWN0aW9uRGlyZWN0aXZlLFxuICAgIE1hdENvbHVtbkRlZixcbiAgICBNYXRIZWFkZXJDZWxsRGVmLFxuICAgIE1hdEhlYWRlckNlbGwsXG4gICAgRWxkZXJTZWxlY3Rpb25NYXN0ZXJDaGVja2JveENvbXBvbmVudCxcbiAgICBNYXRDZWxsRGVmLFxuICAgIE1hdENlbGwsXG4gICAgTWF0Q2hlY2tib3gsXG4gICAgTWF0Rm9vdGVyQ2VsbERlZixcbiAgICBNYXRGb290ZXJDZWxsLFxuICAgIE5nSWYsXG4gICAgTWF0SGVhZGVyUm93RGVmLFxuICAgIE1hdEhlYWRlclJvdyxcbiAgICBNYXRSb3dEZWYsXG4gICAgTWF0Um93LFxuICAgIEVsZGVyVGFibGVSb3dEaXJlY3RpdmUsXG4gICAgTWF0Rm9vdGVyUm93RGVmLFxuICAgIE1hdEZvb3RlclJvdyxcbiAgICBEYXRhQ29udGV4dFN0YXRlSW5kaWNhdG9yQ29tcG9uZW50LFxuICAgIE1hdFByb2dyZXNzQmFyLFxuICAgIE1hdFBhZ2luYXRvcixcbiAgICBNYXRJY29uQnV0dG9uLFxuICAgIE1hdEljb24sXG4gICAgQXN5bmNQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlQ29tcG9uZW50XG4gIGV4dGVuZHMgRWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXRcbntcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpXG5cbiAgLyoqXG4gICAqIExvYWQgbmV4dCBjaHVuayBhZnRlciBjdXJyZW50IGlzIGRvbmVcbiAgICovXG4gIHByaXZhdGUgbG9hZE5leHRRdWV1ZWQgPSBmYWxzZVxuXG4gIC8vLyBUYWJsZVxuICBAVmlld0NoaWxkKE1hdFRhYmxlLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgbWF0VGFibGU6IENka1RhYmxlPGFueT5cblxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcilcbiAgcHVibGljIG1hdFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWF0U29ydDogTWF0U29ydFxuXG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0Q29sdW1uRGVmKVxuICBwdWJsaWMgY29sdW1uRGVmczogUXVlcnlMaXN0PENka0NvbHVtbkRlZj5cblxuICBAQ29udGVudENoaWxkcmVuKEVsZGVyVGFibGVDb2x1bW5EaXJlY3RpdmUpXG4gIHB1YmxpYyBlbGRlckNvbHVtbnM6IFF1ZXJ5TGlzdDxFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlPlxuXG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0Um93RGVmKVxuICBwdWJsaWMgcm93RGVmczogUXVlcnlMaXN0PENka1Jvd0RlZjxhbnk+PlxuXG4gIC8qKlxuICAgKiBGaWVsZCB0byBpZGVudGlmeSB0aGUgZGF0YSByZWNvcmRzIChJRCBmaWVsZCkuXG4gICAqIE5vdGU6IFRoaXMgcHJvcGVydHkgaXMgb25seSBjb25zaWRlcmVkIGluIGNhc2UgdGhlXG4gICAqIHVuZGVybHlpbmcgZGF0YSBpcyBhbiBBcnJheS5cbiAgICogSW4gY2FzZSBvZiBEYXRhQ29udGV4dCwgdGhlIElEIGZpZWxkIG5lZWRzIHRvIGJlIGRlZmluZWQgaW4gdGhlIGNvbnRleHQuXG4gICAqIEluIGNhc2Ugb2YgRGF0YVNvdXJjZSwgdGhlIElEIGZpZWxkIGlzIGF1dG9tYXRpY2FsbHkgcGlja2VkIGZyb20gdGhlIERhdGFTb3VyY2UuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWRGaWVsZDogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFdoZW4gdGhpcyBmaWVsZCBpcyBwcmVzZW50IGFuZCB0cnVlLFxuICAgKiB0aGUgY29yZXNwb25kaW5nIHJvdyBpcyBtYXJrZWQgdG8gYmUgaW4gdGhlIHByb2Nlc3NlZCBvZiBiZWluZyByZW1vdmVkLlxuICAgKlxuICAgKiBJLmUuICdyZW1vdmluZydcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZW1vdmluZ0ZpZWxkOiBzdHJpbmcgPSBudWxsXG5cbiAgLyoqXG4gICAqIFdoZW4gdGhpcyBmaWVsZCBpcyBwcmVzZW50IGFuZCB0cnVlLFxuICAgKiB0aGUgY29ycmVzcG9uZGluZyByb3cgaXMgaGlkZGVuLlxuICAgKlxuICAgKiBJLmUuICdkZWxldGVkJ1xuICAgKlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhpZGRlbkZpZWxkOiBzdHJpbmcgPSBudWxsXG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2VTaXplT3B0aW9ucyA9IFszMCwgNTAsIDEwMCwgMTUwLCAyMDBdXG5cbiAgQElucHV0KClcbiAgcHVibGljIGtlZXBTZWxlY3Rpb24gPSB0cnVlXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dGb290ZXIgPSBmYWxzZVxuXG4gIHB1YmxpYyBjYW5Mb2FkTW9yZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgcHVibGljIHRvdGFsJDogT2JzZXJ2YWJsZTxzdHJpbmc+XG5cbiAgLyoqXG4gICAqIFRoZSB0YWJsZSB0b29sYmFyXG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKEVsZGVyVGFibGVUb29sYmFyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHB1YmxpYyB0b29sYmFyUm93VGVtcGxhdGVRdWVyeTogUXVlcnlMaXN0PFRlbXBsYXRlUmVmPGFueT4+XG4gIHB1YmxpYyByZWFkb25seSB0b29sYmFyUm93VGVtcGxhdGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55PltdPihbXSlcblxuICAvKipcbiAgICogU2VsZWN0aW9uIG1vZGVsIGxpZmUgY3ljbGVcbiAgICovXG4gIHByaXZhdGUgc2VsZWN0aW9uTGlmZUN5Y2xlOiBTdWJzY3JpcHRpb25cblxuICBAVmlld0NoaWxkcmVuKEVsZGVyVGFibGVSb3dEaXJlY3RpdmUpXG4gIHByaXZhdGUgcm93c1F1ZXJ5OiBRdWVyeUxpc3Q8RWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxhbnk+PlxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHJvd3Mgb2YgdGhpcyB0YWJsZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb3dzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWxkZXJUYWJsZVJvd0RpcmVjdGl2ZTxhbnk+W10+KFtdKVxuXG4gIC8qKlxuICAgKiBUaGUgaW5kZXggb2YgdGhpcyB0YWJsZSBncm91cCBleHRlbnNpb25cbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2V4dGVuc2lvbkdyb3VwSW5kZXg6IG51bWJlclxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB0YWJsZU1vZGVsOiBFbGRlclRhYmxlTW9kZWwsXG4gICAgQE9wdGlvbmFsKCkgc2VsZWN0aW9uTW9kZWw6IFNlbGVjdGlvbk1vZGVsPGFueT4sXG4gICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgZGF0YVZpZXdPcHRpb25zUHJvdmlkZXI6IEVsZGVyRGF0YVZpZXdPcHRpb25zUHJvdmlkZXIsXG4gICAgQE9wdGlvbmFsKCkgbWF0U29ydDogTWF0U29ydCxcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIHJlYWRvbmx5IHBhcmVudEV4dGVuc2lvbjogRWxkZXJUYWJsZUV4dGVuc2lvbkRpcmVjdGl2ZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgc3VwZXIoc2VsZWN0aW9uTW9kZWwsIGRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyKVxuICAgIHRoaXMuX21hdFNvcnQgPSBtYXRTb3J0XG4gICAgdGhpcy5fZXh0ZW5zaW9uR3JvdXBJbmRleCA9IChwYXJlbnRFeHRlbnNpb24/LmV4dGVuc2lvbkdyb3VwSW5kZXggPz8gMCkgKyAxXG4gICAgaWYgKHRoaXMuX21hdFNvcnQpIHtcbiAgICAgIHRoaXMuX21hdFNvcnQuZGlzYWJsZUNsZWFyID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpXG5cbiAgICBFbGRlclRhYmxlTW9kZWxDZGtUYWJsZUJpbmRpbmcub2YodGhpcy50YWJsZU1vZGVsKS50YWJsZSh0aGlzLm1hdFRhYmxlKS5iaW5kVW50aWwodGhpcy5kZXN0cm95JClcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgRWxkZXJUYWJsZU1vZGVsUXVlcnlHcm91cC5zdGFydCh0aGlzLnRhYmxlTW9kZWwsIHRoaXMuX2V4dGVuc2lvbkdyb3VwSW5kZXgpXG4gICAgICAud2l0aENvbHVtbnNQb3NpdGlvbihDb2x1bW5Qb3NpdGlvblNwZWMucmVsYXRpdmVUb1ByZXZHcm91cCgnc3RhcnQnKSlcbiAgICAgIC53aXRoQ29sdW1uRGVmcyh0aGlzLmNvbHVtbkRlZnMsIHRoaXMuZWxkZXJDb2x1bW5zKVxuICAgICAgLndpdGhSb3dEZWZzKHRoaXMucm93RGVmcylcbiAgICAgIC53aXRoU29ydCh0aGlzLl9tYXRTb3J0KVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuXG4gICAgUXVlcnlMaXN0QmluZGluZy5vZih0aGlzLnRvb2xiYXJSb3dUZW1wbGF0ZVF1ZXJ5KVxuICAgICAgLnVwZGF0ZWQoKHRvb2xiYXJSb3dzKSA9PiB0aGlzLnRvb2xiYXJSb3dUZW1wbGF0ZXMkLm5leHQodG9vbGJhclJvd3MpKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBNYXRUYWJsZURhdGFDb250ZXh0QmluZGluZ0J1aWxkZXIuc3RhcnQodGhpcy5kYXRhQ29udGV4dCQpXG4gICAgICAud2l0aFNvcnRzKHRoaXMudGFibGVNb2RlbC5zb3J0cyQpXG4gICAgICAud2l0aFBhZ2luYXRvcihvZih0aGlzLm1hdFBhZ2luYXRvcikpXG4gICAgICAuYmluZFVudGlsKHRoaXMuZGVzdHJveSQpXG5cbiAgICBRdWVyeUxpc3RCaW5kaW5nLm9mKHRoaXMucm93c1F1ZXJ5KVxuICAgICAgLnVwZGF0ZWQoKHJvd3MpID0+IHRoaXMucm93cyQubmV4dChyb3dzKSlcbiAgICAgIC5iaW5kVW50aWwodGhpcy5kZXN0cm95JClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0b29sYmFyVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLnRvb2xiYXJSb3dUZW1wbGF0ZXMkLm5leHQoW3RlbXBsYXRlXSlcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YShkYXRhOiBBcnJheTxhbnk+IHwgSURhdGFTb3VyY2U8YW55PiB8IElEYXRhQ29udGV4dDxhbnk+KSB7XG4gICAgdGhpcy5hdXRvQ2xlYW5VcCgpXG5cbiAgICBsZXQgZGM6IElEYXRhQ29udGV4dDxhbnk+XG5cbiAgICBpZiAoZGF0YSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICBkYyA9IERhdGFDb250ZXh0QnVpbGRlci5zdGFydCgpLmxvY2FsU29ydCgpLmJ1aWxkTG9jYWwoZGF0YSwgdGhpcy5pZEZpZWxkKSAvLyBQb3RlbnRpYWwgTWVtb3J5IGxlYWsgKFNlZSBhdXRvQ2xlYW5VcClcbiAgICAgIGRjLnN0YXJ0KClcbiAgICB9IGVsc2UgaWYgKGlzRGF0YVNvdXJjZShkYXRhKSkge1xuICAgICAgZGMgPSBEYXRhQ29udGV4dEJ1aWxkZXIuc3RhcnQoKS5sb2NhbFNvcnQoKS5yZWxvYWRPbkxvY2FsQ2hhbmdlcygpLmJ1aWxkKGRhdGEpIC8vIFBvdGVudGlhbCBNZW1vcnkgbGVhayAoU2VlIGF1dG9DbGVhblVwKVxuICAgICAgZGMuc3RhcnQoKVxuICAgIH0gZWxzZSBpZiAoaXNEYXRhQ29udGV4dChkYXRhKSkge1xuICAgICAgZGMgPSBkYXRhXG4gICAgfSBlbHNlIGlmIChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGMgPSBEYXRhQ29udGV4dEJ1aWxkZXIuc3RhcnQoKS5idWlsZEVtcHR5KClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnVGhlIGRhdGEgbXVzdCBlaXRoZXIgYmUgYW4gQXJyYXksIElEYXRhU291cmNlIG9yIElEYXRhQ29udGV4dCwgYnV0IHdhczogJyArIHR5cGVvZiBkYXRhXG4gICAgICApXG4gICAgfVxuICAgIHRoaXMuZGF0YUNvbnRleHQgPSBkY1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRGF0YUNvbnRleHRTZXQoZGF0YTogSURhdGFDb250ZXh0PGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLnRvdGFsJCA9IGRhdGEudG90YWwucGlwZShtYXAoKHRvdGFsKSA9PiAodG90YWwgPyB0b3RhbCArICcnIDogJ+KInicpKSlcblxuICAgIHRoaXMuc2V0dXBTZWxlY3Rpb25MaWZlQ3ljbGUoZGF0YSlcblxuICAgIC8vIHRoaXMuc2VsZWN0aW9uTW9kZWwuY2xlYXIoKTsgLy8gVE9ETyBTdXBwb3J0IGNoYW5nZWFibGUgZGF0YS1jb250ZXh0IGZvciBzdGF0aWMgYXJyYXkgdXNlIGNhc2VcblxuICAgIGlmICh0aGlzLmlzQ29udGludWFibGUpIHtcbiAgICAgIHRoaXMuY2FuTG9hZE1vcmUkID0gY29tYmluZUxhdGVzdChbZGF0YS5sb2FkaW5nLCB0aGlzLmRhdGFDb250aW51YWJsZS5oYXNNb3JlRGF0YV0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2xvYWRpbmcsIGhhc01vcmVEYXRhXSkgPT4gIWxvYWRpbmcgJiYgaGFzTW9yZURhdGEpXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FuTG9hZE1vcmUkID0gb2YoZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkaXNwbGF5ZWRDb2x1bW5zKGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy50YWJsZU1vZGVsLmRpc3BsYXllZENvbHVtbnMgPSBkaXNwbGF5ZWRDb2x1bW5zXG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc3BsYXllZENvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnRhYmxlTW9kZWwuZGlzcGxheWVkQ29sdW1uc1xuICB9XG5cbiAgLyoqIEluZGljYXRlcyBpZiBzZWxlY3Rpb24gY29sdW1uIGlzIHNob3duLiAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGlvblZpc2libGUodmlzaWJsZTogYm9vbGVhbikge1xuICAgIHRoaXMudGFibGVNb2RlbC5zZWxlY3Rpb25WaXNpYmxlID0gdmlzaWJsZVxuICB9XG5cbiAgcHVibGljIGdldCBzZWxlY3Rpb25WaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnRhYmxlTW9kZWwuc2VsZWN0aW9uVmlzaWJsZVxuICB9XG5cbiAgLypcbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgYWN0aXZlSXRlbSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmVsZGVyVGFibGVBY3RpdmF0aW9uLmFjdGl2ZUl0ZW0kO1xuICB9Ki9cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgcmVxdWVzdE1vcmVEYXRhWm9uZWQoZXZlbnQ6IHVua25vd24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhQ29udGludWFibGUuaGFzTW9yZURhdGFTbmFwc2hvdCkge1xuICAgICAgaWYgKHRoaXMuZGF0YUNvbnRpbnVhYmxlLnNuYXBzaG90LmlzTG9hZGluZykge1xuICAgICAgICB0aGlzLmxvYWROZXh0UXVldWVkID0gdHJ1ZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhQ29udGludWFibGUubG9hZE1vcmUoKS5zdWJzY3JpYmUoKGxvYWRlZCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMubG9hZE5leHRRdWV1ZWQpIHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkTmV4dFF1ZXVlZCA9IGZhbHNlXG4gICAgICAgICAgICAgIHRoaXMucmVxdWVzdE1vcmVEYXRhWm9uZWQoZXZlbnQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2FkTmV4dFF1ZXVlZCA9IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB0cmFja0J5Rm4oKTogVHJhY2tCeUZ1bmN0aW9uPGFueT4ge1xuICAgIHJldHVybiAoaW5kZXg6IG51bWJlciwgZW50aXR5OiBhbnkpID0+IHRoaXMuZ2V0SWQoZW50aXR5KVxuICB9XG5cbiAgcHVibGljIGlzRGF0YVZhbGlkKGRhdGE6IGFueSkge1xuICAgIHJldHVybiBkYXRhPy5sZW5ndGggPiAwXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHNldHVwU2VsZWN0aW9uTGlmZUN5Y2xlKGRhdGE6IElEYXRhQ29udGV4dDxhbnk+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTGlmZUN5Y2xlKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkxpZmVDeWNsZS51bnN1YnNjcmliZSgpIC8vIENsZWFuIHVwIHByZXZpb3VzIHN1YlxuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0aW9uTGlmZUN5Y2xlID0gZGF0YS5kYXRhLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKG5ld0RhdGEpID0+IHtcbiAgICAgIGlmICh0aGlzLmtlZXBTZWxlY3Rpb24pIHtcbiAgICAgICAgLy8gSWYga2VlcCBzZWxlY3Rpb24gZW5hYmxlZFxuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbC5oYXNWYWx1ZSkge1xuICAgICAgICAgIC8vIENoZWNrIHRoYXQgYWxsIHNlbGVjdGVkIHZhbHVlcyBhcmUgc3RpbGwgcHJlc2VudCBvciByZW1vdmUgdGhlbVxuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldDxhbnk+KG5ld0RhdGEubWFwKChkKSA9PiB0aGlzLmdldElkKGQpKSlcblxuICAgICAgICAgIGNvbnN0IG5vTG9uZ2VyQXZhaWxhYmxlSWRzID0gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3Rpb25TbmFwc2hvdFxuICAgICAgICAgICAgLm1hcCgoc2VsZWN0ZWQpID0+IHRoaXMuZ2V0SWQoc2VsZWN0ZWQpKVxuICAgICAgICAgICAgLmZpbHRlcigoc2VsZWN0ZWRJZCkgPT4gIWV4aXN0aW5nSWRzLmhhcyhzZWxlY3RlZElkKSlcblxuICAgICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuZGVzZWxlY3RJZHMobm9Mb25nZXJBdmFpbGFibGVJZHMpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuY2xlYXIoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cbiIsIjxtYXQtY2FyZFxuICBjbGFzcz1cImZ1bGxcIlxuICBbY2xhc3MuZW1iZWRkZWRdPVwiZW1iZWRkZWRcIlxuICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgc3R5bGU9XCJvdmVyZmxvdzogaGlkZGVuXCJcbj5cbiAgPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZWxkZXItdGFibGUgZnVsbFwiPlxuICAgIDwhLS0gVG9vbGJhciBSb3dzIC0tPlxuICAgIEBmb3IgKHRvb2xiYXJSb3dUZW1wbGF0ZSBvZiB0b29sYmFyUm93VGVtcGxhdGVzJCB8IGFzeW5jOyB0cmFjayB0b29sYmFyUm93VGVtcGxhdGUpIHtcbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRvb2xiYXJSb3dUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHRoaXMgfVwiXG4gICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG5cbiAgICA8IS0tIFNjcm9sbGFibGUgVGFibGUgLS0+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJsYXlvdXQtY29sIHt7XG4gICAgICAgIGlzRGF0YVZhbGlkKGRhdGFDb250ZXh0Py5kYXRhIHwgYXN5bmMpID8gJ2ZsZXgnIDogJydcbiAgICAgIH19IHNjcm9sbGFibGUgZWxkZXItdGFibGUtc2Nyb2xsXCJcbiAgICAgIGVsZGVySW5maW5pdGVTY3JvbGxcbiAgICAgIFtldmVudFRocm90dGxlXT1cIjE1MFwiXG4gICAgICBbb2Zmc2V0RmFjdG9yXT1cIjJcIlxuICAgICAgW2lnbm9yZVNjcm9sbEV2ZW50XT1cIiFpc0NvbnRpbnVhYmxlIHx8ICEoY2FuTG9hZE1vcmUkIHwgYXN5bmMpXCJcbiAgICAgIChjbG9zZVRvRW5kKT1cInJlcXVlc3RNb3JlRGF0YVpvbmVkKCRldmVudClcIlxuICAgID5cbiAgICAgIDx0YWJsZVxuICAgICAgICBtYXQtdGFibGVcbiAgICAgICAgY2xhc3M9XCJlbGRlci1tYXQtaW5uZXItdGFibGVcIlxuICAgICAgICBbdHJhY2tCeV09XCJ0cmFja0J5Rm5cIlxuICAgICAgICBbZGF0YVNvdXJjZV09XCIkYW55KGRhdGFDb250ZXh0JCB8IGFzeW5jKVwiXG4gICAgICAgIFtlbGRlckRhdGFDb250ZXh0U2VsZWN0aW9uXT1cImRhdGFDb250ZXh0JCB8IGFzeW5jXCJcbiAgICAgICAgI2RhdGFTZWxlY3Rpb249XCJlbGRlckRhdGFDb250ZXh0U2VsZWN0aW9uXCJcbiAgICAgICAgW2VsZGVyRGF0YUNvbnRleHRTZWxlY3Rpb25Nb2RlbF09XCJzZWxlY3Rpb25Nb2RlbFwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gc2VsZWN0aW9uIENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzZWxlY3RcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlxuICAgICAgICAgICAgPGVsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3g+PC9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94PlxuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVudGl0eVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIiRldmVudCA/IHNlbGVjdGlvbk1vZGVsLnRvZ2dsZShlbnRpdHkpIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uTW9kZWwub2JzZXJ2ZVNlbGVjdGlvbihlbnRpdHkpIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhc2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RhYmxlKGVudGl0eSlcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItdGFibGUtY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5lbGRlci10YWJsZS1jaGVja2JveC12aXNpYmxlXT1cIlxuICAgICAgICAgICAgICAgICAgKGRhdGFTZWxlY3Rpb24uc2VsZWN0aW9uU3RhdGUkIHwgYXN5bmMpLmFueVNlbGVjdGVkXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj48L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICBAaWYgKHRhYmxlTW9kZWwuZGlzcGxheWVkQ29sdW1uc0lubmVyJCB8IGFzeW5jOyBhcyBkaXNwbGF5ZWRDb2x1bW5zSW5uZXIpIHtcbiAgICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnNJbm5lcjsgc3RpY2t5OiB0cnVlXCI+PC90cj5cbiAgICAgICAgICA8dHJcbiAgICAgICAgICAgIG1hdC1yb3dcbiAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItdGFibGUtcm93XCJcbiAgICAgICAgICAgICptYXRSb3dEZWY9XCJsZXQgZW50aXR5OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zSW5uZXJcIlxuICAgICAgICAgICAgW2VsZGVyVGFibGVSb3ddPVwiZW50aXR5XCJcbiAgICAgICAgICAgIFtjbGFzcy5kZW5zZV09XCJkZW5zZVwiXG4gICAgICAgICAgICBbY2xhc3MuZWxkZXItcm93LWhpZGRlbl09XCJoaWRkZW5GaWVsZCAmJiBlbnRpdHlbaGlkZGVuRmllbGRdXCJcbiAgICAgICAgICAgIFtjbGFzcy5lbGRlci1yb3ctcmVtb3ZpbmddPVwicmVtb3ZpbmdGaWVsZCAmJiBlbnRpdHlbcmVtb3ZpbmdGaWVsZF1cIlxuICAgICAgICAgICAgW2NsYXNzLmVsZGVyLXRhYmxlLXJvdy1zZWxlY3RlZF09XCJcbiAgICAgICAgICAgICAgaW50ZXJhY3Rpb25Nb2RlID09PSAnc2VsZWN0aW9uJyAmJiBzZWxlY3Rpb25Nb2RlbC5vYnNlcnZlU2VsZWN0aW9uKGVudGl0eSkgfCBhc3luY1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayhlbnRpdHkpXCJcbiAgICAgICAgICAgIChkYmxjbGljayk9XCJvbkl0ZW1Eb3VibGVDbGljayhlbnRpdHkpXCJcbiAgICAgICAgICA+PC90cj5cbiAgICAgICAgICBAaWYgKHNob3dGb290ZXIpIHtcbiAgICAgICAgICAgIDx0ciBtYXQtZm9vdGVyLXJvdyAqbWF0Rm9vdGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uc0lubmVyOyBzdGlja3k6IHRydWVcIj48L3RyPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoIWlzRGF0YVZhbGlkKGRhdGFDb250ZXh0Py5kYXRhIHwgYXN5bmMpKSB7XG4gICAgICA8ZWxkZXItZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvciBjbGFzcz1cImZsZXhcIiBbZGF0YUNvbnRleHRdPVwiZGF0YUNvbnRleHRcIj5cbiAgICAgIDwvZWxkZXItZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvcj5cbiAgICB9XG5cbiAgICA8bWF0LXByb2dyZXNzLWJhclxuICAgICAgY2xhc3M9XCJmbGV4LW5vbmVcIlxuICAgICAgW21vZGVdPVwiKGRhdGFDb250ZXh0Py5sb2FkaW5nIHwgYXN5bmMpID8gJ2luZGV0ZXJtaW5hdGUnIDogJ2RldGVybWluYXRlJ1wiXG4gICAgICBbY29sb3JdPVwiKGRhdGFDb250ZXh0Py5zdGF0dXMgfCBhc3luYyk/Lmhhc0Vycm9yID8gJ3dhcm4nIDogJ3ByaW1hcnknXCJcbiAgICA+XG4gICAgPC9tYXQtcHJvZ3Jlc3MtYmFyPlxuXG4gICAgQGlmIChpc0FjdGl2ZVBhZ2VkKSB7XG4gICAgICBAaWYgKGRhdGFBY3RpdmVQYWdlZC5wYWdlIHwgYXN5bmM7IGFzIHBhZ2UpIHtcbiAgICAgICAgPCEtLSBPcHRpb25hbCBQYWdpbmF0b3IgVG9vbGJhciAtLT5cbiAgICAgICAgPG1hdC1wYWdpbmF0b3JcbiAgICAgICAgICBjbGFzcz1cImZsZXgtbm9uZVwiXG4gICAgICAgICAgW2xlbmd0aF09XCJkYXRhQ29udGV4dD8udG90YWwgfCBhc3luY1wiXG4gICAgICAgICAgW3BhZ2VJbmRleF09XCJwYWdlPy5pbmRleFwiXG4gICAgICAgICAgW3BhZ2VTaXplXT1cInBhZ2U/LnNpemVcIlxuICAgICAgICAgIFtwYWdlU2l6ZU9wdGlvbnNdPVwicGFnZVNpemVPcHRpb25zXCJcbiAgICAgICAgPlxuICAgICAgICA8L21hdC1wYWdpbmF0b3I+XG4gICAgICB9XG4gICAgfVxuXG4gICAgPCEtLSBPcHRpb25hbCBDb250aW51YXRpb24gRm9vdGVyIC0tPlxuICAgIEBpZiAoaXNDb250aW51YWJsZSkge1xuICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgZmxleC1ub25lIHBsYWNlLWVuZC1jZW50ZXIgZ2FwLW1kIGVsZGVyLXRhYmxlLWZvb3RlclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdC1jYXB0aW9uIG5vc2VsZWN0XCIgc3R5bGU9XCJjb2xvcjogZ3JheVwiPlxuICAgICAgICAgIHt7IChkYXRhQ29udGV4dD8uZGF0YSB8IGFzeW5jKT8ubGVuZ3RoIH19IC8ge3sgdG90YWwkIHwgYXN5bmMgfX1cbiAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhKGNhbkxvYWRNb3JlJCB8IGFzeW5jKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImRhdGFDb250aW51YWJsZS5sb2FkTW9yZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtaWNvbj5rZXlib2FyZF9hcnJvd19kb3duPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9tYXQtY2FyZD5cbiJdfQ==
@@ -1,18 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/cdk/table";
4
- export class ElderTableColumnDirective {
5
- constructor(cdkColumn) {
6
- this.cdkColumn = cdkColumn;
7
- }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderTableColumnDirective, deps: [{ token: i1.CdkColumnDef }], target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ElderTableColumnDirective, isStandalone: true, selector: "th[elderColumnDef]", ngImport: i0 }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderTableColumnDirective, decorators: [{
12
- type: Directive,
13
- args: [{
14
- selector: 'th[elderColumnDef]',
15
- standalone: true,
16
- }]
17
- }], ctorParameters: () => [{ type: i1.CdkColumnDef }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtY29sdW1uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L3RhYmxlL2VsZGVyLXRhYmxlLWNvbHVtbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTs7O0FBUXpDLE1BQU0sT0FBTyx5QkFBeUI7SUFHcEMsWUFBNEIsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFHLENBQUM7K0dBSDVDLHlCQUF5QjttR0FBekIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDZGtDb2x1bW5EZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnXG5pbXBvcnQgeyBDb2x1bW5Qb3NpdGlvblNwZWMgfSBmcm9tICcuL21vZGVsL2VsZGVyLWNvbHVtbi1sYXlvdXQnXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3RoW2VsZGVyQ29sdW1uRGVmXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVGFibGVDb2x1bW5EaXJlY3RpdmUge1xuICBwcml2YXRlIF9jb2x1bW5Qb3NpdGlvbjogQ29sdW1uUG9zaXRpb25TcGVjXG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGNka0NvbHVtbjogQ2RrQ29sdW1uRGVmKSB7fVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIHJlbGF0aXZlIGNvbHVtbiBwb3NpdGlvbiBpbiB0aGUgdGFibGVcbiAgICogVXNhZ2UgZXhhbXBsZTpcbiAgICogY29sdW1uUG9zaXRpb249XCJhZnRlcjpuYW1lXCJcbiAgICovXG4gIC8vIEBJbnB1dCgpXG4gIC8vIHB1YmxpYyBzZXQgY29sdW1uUG9zaXRpb24odmFsOiBDb2x1bW5Qb3NpdGlvblNwZWMpIHtcbiAgLy8gICB0aGlzLl9jb2x1bW5Qb3NpdGlvbiA9IHZhbDtcbiAgLy8gfVxuXG4gIC8vIHB1YmxpYyBnZXQgY29sdW1uUG9zaXRpb24oKTogQ29sdW1uUG9zaXRpb25TcGVjIHtcbiAgLy8gICByZXR1cm4gdGhpcy5fY29sdW1uUG9zaXRpb247XG4gIC8vIH1cbn1cbiJdfQ==
@@ -1,92 +0,0 @@
1
- import { ContentChildren, Directive, Input, Optional, SkipSelf, } from '@angular/core';
2
- import { LoggerFactory } from '@elderbyte/ts-logger';
3
- import { MatColumnDef, MatRowDef } from '@angular/material/table';
4
- import { Subject } from 'rxjs';
5
- import { ElderTableProviders } from './model/elder-table-model-provider';
6
- import { ElderTableModelQueryGroup } from './model/elder-table-model-query-group';
7
- import { ElderTableColumnDirective } from './elder-table-column.directive';
8
- import { ColumnPositionSpec } from './model/elder-column-layout';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "./model/elder-table-model";
11
- import * as i2 from "@angular/material/sort";
12
- /**
13
- * Allows to extend an ElderTable from a parent component.
14
- *
15
- */
16
- export class ElderTableExtensionDirective {
17
- /***************************************************************************
18
- * *
19
- * Constructor *
20
- * *
21
- **************************************************************************/
22
- constructor(tableModel, _matSort, parentExtension) {
23
- this.tableModel = tableModel;
24
- this._matSort = _matSort;
25
- this.parentExtension = parentExtension;
26
- /***************************************************************************
27
- * *
28
- * Fields *
29
- * *
30
- **************************************************************************/
31
- this.logger = LoggerFactory.getLogger(this.constructor.name);
32
- this.columnsPosition = ColumnPositionSpec.relativeToPrevGroup('start');
33
- this.destroy$ = new Subject();
34
- this._extensionGroupIndex = (parentExtension?.extensionGroupIndex ?? 0) + 1;
35
- if (this._matSort) {
36
- this._matSort.disableClear = true;
37
- }
38
- }
39
- /***************************************************************************
40
- * *
41
- * Life Cycle *
42
- * *
43
- **************************************************************************/
44
- ngAfterContentInit() {
45
- ElderTableModelQueryGroup.start(this.tableModel, this.extensionGroupIndex)
46
- .withColumnsPosition(this.columnsPosition)
47
- .withColumnDefs(this.columnDefsQuery, this.elderColumnsQuery)
48
- .withRowDefs(this.rowDefsQuery)
49
- .withSort(this._matSort)
50
- .bindUntil(this.destroy$);
51
- }
52
- ngOnDestroy() {
53
- this.destroy$.next();
54
- this.destroy$.complete();
55
- }
56
- /***************************************************************************
57
- * *
58
- * Properties *
59
- * *
60
- **************************************************************************/
61
- get extensionGroupIndex() {
62
- return this._extensionGroupIndex;
63
- }
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderTableExtensionDirective, deps: [{ token: i1.ElderTableModel }, { token: i2.MatSort, optional: true }, { token: ElderTableExtensionDirective, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
65
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ElderTableExtensionDirective, isStandalone: true, selector: "[elderTableExtension]", inputs: { columnsPosition: "columnsPosition" }, providers: [ElderTableProviders.ExistingOrNewTableModel], queries: [{ propertyName: "columnDefsQuery", predicate: MatColumnDef }, { propertyName: "elderColumnsQuery", predicate: ElderTableColumnDirective }, { propertyName: "rowDefsQuery", predicate: MatRowDef }], ngImport: i0 }); }
66
- }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderTableExtensionDirective, decorators: [{
68
- type: Directive,
69
- args: [{
70
- selector: '[elderTableExtension]',
71
- providers: [ElderTableProviders.ExistingOrNewTableModel],
72
- standalone: true,
73
- }]
74
- }], ctorParameters: () => [{ type: i1.ElderTableModel }, { type: i2.MatSort, decorators: [{
75
- type: Optional
76
- }] }, { type: ElderTableExtensionDirective, decorators: [{
77
- type: Optional
78
- }, {
79
- type: SkipSelf
80
- }] }], propDecorators: { columnDefsQuery: [{
81
- type: ContentChildren,
82
- args: [MatColumnDef]
83
- }], elderColumnsQuery: [{
84
- type: ContentChildren,
85
- args: [ElderTableColumnDirective]
86
- }], rowDefsQuery: [{
87
- type: ContentChildren,
88
- args: [MatRowDef]
89
- }], columnsPosition: [{
90
- type: Input
91
- }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtZXh0ZW5zaW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS12aWV3L3RhYmxlL2VsZGVyLXRhYmxlLWV4dGVuc2lvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGVBQWUsRUFDZixTQUFTLEVBQ1QsS0FBSyxFQUVMLFFBQVEsRUFFUixRQUFRLEdBQ1QsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFFakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM5QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUV4RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQTtBQUVqRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTs7OztBQUVoRTs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sNEJBQTRCO0lBNkJ2Qzs7OztnRkFJNEU7SUFFNUUsWUFDbUIsVUFBMkIsRUFDZixRQUFpQixFQUNMLGVBQTZDO1FBRnJFLGVBQVUsR0FBVixVQUFVLENBQWlCO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNMLG9CQUFlLEdBQWYsZUFBZSxDQUE4QjtRQXJDeEY7Ozs7b0ZBSTRFO1FBRTNELFdBQU0sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7UUFrQmpFLG9CQUFlLEdBQXVCLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRTNFLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFBO1FBYTdDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDM0UsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLGtCQUFrQjtRQUN2Qix5QkFBeUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUM7YUFDdkUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQzthQUN6QyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUM7YUFDNUQsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDOUIsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDdkIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUM3QixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUNEOzs7O2dGQUk0RTtJQUU1RSxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQTtJQUNsQyxDQUFDOytHQXpFVSw0QkFBNEI7bUdBQTVCLDRCQUE0QixvSEFINUIsQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBdUIsQ0FBQywwREFrQnZDLFlBQVksb0RBR1oseUJBQXlCLCtDQUd6QixTQUFTOzs0RkFyQmYsNEJBQTRCO2tCQUx4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLHVCQUF1QixDQUFDO29CQUN4RCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQXNDSSxRQUFROzswQkFDUixRQUFROzswQkFBSSxRQUFRO3lDQXRCaEIsZUFBZTtzQkFEckIsZUFBZTt1QkFBQyxZQUFZO2dCQUl0QixpQkFBaUI7c0JBRHZCLGVBQWU7dUJBQUMseUJBQXlCO2dCQUluQyxZQUFZO3NCQURsQixlQUFlO3VCQUFDLFNBQVM7Z0JBSW5CLGVBQWU7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFF1ZXJ5TGlzdCxcbiAgU2tpcFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInXG5pbXBvcnQgeyBNYXRDb2x1bW5EZWYsIE1hdFJvd0RlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJ1xuaW1wb3J0IHsgQ2RrQ29sdW1uRGVmLCBDZGtSb3dEZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IEVsZGVyVGFibGVQcm92aWRlcnMgfSBmcm9tICcuL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsLXByb3ZpZGVyJ1xuaW1wb3J0IHsgRWxkZXJUYWJsZU1vZGVsIH0gZnJvbSAnLi9tb2RlbC9lbGRlci10YWJsZS1tb2RlbCdcbmltcG9ydCB7IEVsZGVyVGFibGVNb2RlbFF1ZXJ5R3JvdXAgfSBmcm9tICcuL21vZGVsL2VsZGVyLXRhYmxlLW1vZGVsLXF1ZXJ5LWdyb3VwJ1xuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnXG5pbXBvcnQgeyBFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlIH0gZnJvbSAnLi9lbGRlci10YWJsZS1jb2x1bW4uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgQ29sdW1uUG9zaXRpb25TcGVjIH0gZnJvbSAnLi9tb2RlbC9lbGRlci1jb2x1bW4tbGF5b3V0J1xuXG4vKipcbiAqIEFsbG93cyB0byBleHRlbmQgYW4gRWxkZXJUYWJsZSBmcm9tIGEgcGFyZW50IGNvbXBvbmVudC5cbiAqXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tlbGRlclRhYmxlRXh0ZW5zaW9uXScsXG4gIHByb3ZpZGVyczogW0VsZGVyVGFibGVQcm92aWRlcnMuRXhpc3RpbmdPck5ld1RhYmxlTW9kZWxdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclRhYmxlRXh0ZW5zaW9uRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpXG5cbiAgLyoqXG4gICAqIFRoZSBpbmRleCBvZiB0aGlzIHRhYmxlIGdyb3VwIGV4dGVuc2lvblxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBfZXh0ZW5zaW9uR3JvdXBJbmRleDogbnVtYmVyXG5cbiAgQENvbnRlbnRDaGlsZHJlbihNYXRDb2x1bW5EZWYpXG4gIHB1YmxpYyBjb2x1bW5EZWZzUXVlcnk6IFF1ZXJ5TGlzdDxDZGtDb2x1bW5EZWY+XG5cbiAgQENvbnRlbnRDaGlsZHJlbihFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlKVxuICBwdWJsaWMgZWxkZXJDb2x1bW5zUXVlcnk6IFF1ZXJ5TGlzdDxFbGRlclRhYmxlQ29sdW1uRGlyZWN0aXZlPlxuXG4gIEBDb250ZW50Q2hpbGRyZW4oTWF0Um93RGVmKVxuICBwdWJsaWMgcm93RGVmc1F1ZXJ5OiBRdWVyeUxpc3Q8Q2RrUm93RGVmPGFueT4+XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbHVtbnNQb3NpdGlvbjogQ29sdW1uUG9zaXRpb25TcGVjID0gQ29sdW1uUG9zaXRpb25TcGVjLnJlbGF0aXZlVG9QcmV2R3JvdXAoJ3N0YXJ0JylcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGFibGVNb2RlbDogRWxkZXJUYWJsZU1vZGVsLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX21hdFNvcnQ6IE1hdFNvcnQsXG4gICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJpdmF0ZSByZWFkb25seSBwYXJlbnRFeHRlbnNpb246IEVsZGVyVGFibGVFeHRlbnNpb25EaXJlY3RpdmVcbiAgKSB7XG4gICAgdGhpcy5fZXh0ZW5zaW9uR3JvdXBJbmRleCA9IChwYXJlbnRFeHRlbnNpb24/LmV4dGVuc2lvbkdyb3VwSW5kZXggPz8gMCkgKyAxXG4gICAgaWYgKHRoaXMuX21hdFNvcnQpIHtcbiAgICAgIHRoaXMuX21hdFNvcnQuZGlzYWJsZUNsZWFyID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgRWxkZXJUYWJsZU1vZGVsUXVlcnlHcm91cC5zdGFydCh0aGlzLnRhYmxlTW9kZWwsIHRoaXMuZXh0ZW5zaW9uR3JvdXBJbmRleClcbiAgICAgIC53aXRoQ29sdW1uc1Bvc2l0aW9uKHRoaXMuY29sdW1uc1Bvc2l0aW9uKVxuICAgICAgLndpdGhDb2x1bW5EZWZzKHRoaXMuY29sdW1uRGVmc1F1ZXJ5LCB0aGlzLmVsZGVyQ29sdW1uc1F1ZXJ5KVxuICAgICAgLndpdGhSb3dEZWZzKHRoaXMucm93RGVmc1F1ZXJ5KVxuICAgICAgLndpdGhTb3J0KHRoaXMuX21hdFNvcnQpXG4gICAgICAuYmluZFVudGlsKHRoaXMuZGVzdHJveSQpXG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KClcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKClcbiAgfVxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0IGV4dGVuc2lvbkdyb3VwSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZXh0ZW5zaW9uR3JvdXBJbmRleFxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG59XG4iXX0=
@@ -1,26 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { ElderTableProviders } from './model/elder-table-model-provider';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Forces a new Elder Table Model, thus breaking this component and its children from a potential parent elder-table.
6
- * With this, nested elder-tables are possible.
7
- */
8
- export class ElderTableRootDirective {
9
- /***************************************************************************
10
- * *
11
- * Constructor *
12
- * *
13
- **************************************************************************/
14
- constructor() { }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderTableRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
16
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ElderTableRootDirective, isStandalone: true, selector: "[elderTableRoot]", providers: [ElderTableProviders.ClearTableModel], ngImport: i0 }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderTableRootDirective, decorators: [{
19
- type: Directive,
20
- args: [{
21
- selector: '[elderTableRoot]',
22
- providers: [ElderTableProviders.ClearTableModel],
23
- standalone: true,
24
- }]
25
- }], ctorParameters: () => [] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdGFibGUtcm9vdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy90YWJsZS9lbGRlci10YWJsZS1yb290LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFBOztBQUV4RTs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDOzs7O2dGQUk0RTtJQUU1RSxnQkFBZSxDQUFDOytHQVBMLHVCQUF1QjttR0FBdkIsdUJBQXVCLCtEQUh2QixDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQzs7NEZBR3JDLHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUM7b0JBQ2hELFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBFbGRlclRhYmxlUHJvdmlkZXJzIH0gZnJvbSAnLi9tb2RlbC9lbGRlci10YWJsZS1tb2RlbC1wcm92aWRlcidcblxuLyoqXG4gKiBGb3JjZXMgYSBuZXcgRWxkZXIgVGFibGUgTW9kZWwsIHRodXMgYnJlYWtpbmcgdGhpcyBjb21wb25lbnQgYW5kIGl0cyBjaGlsZHJlbiBmcm9tIGEgcG90ZW50aWFsIHBhcmVudCBlbGRlci10YWJsZS5cbiAqIFdpdGggdGhpcywgbmVzdGVkIGVsZGVyLXRhYmxlcyBhcmUgcG9zc2libGUuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tlbGRlclRhYmxlUm9vdF0nLFxuICBwcm92aWRlcnM6IFtFbGRlclRhYmxlUHJvdmlkZXJzLkNsZWFyVGFibGVNb2RlbF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVGFibGVSb290RGlyZWN0aXZlIHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoKSB7fVxufVxuIl19