@elderbyte/ngx-starter 18.15.2 → 19.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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/panels/flat/_elder-panel-theme.scss +5 -1
  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,245 +0,0 @@
1
- import { DataContextContinuablePaged } from './data-context-continuable-paged';
2
- import { LoggerFactory } from '@elderbyte/ts-logger';
3
- import { DataContextSimple } from './data-context-simple';
4
- import { DataContextActivePage } from './data-context-active-page';
5
- import { DataContextContinuableToken } from './data-context-continuable-token';
6
- import { DataContextSourceEventBinding } from './data-context-source-event-binding';
7
- import { LocalPagedDataSource } from '../datasource/local/local-paged-data-source';
8
- import { LocalListDataSource } from '../datasource/local/local-list-data-source';
9
- import { SortUtil } from '../../utils/sort-util';
10
- import { isContinuableDataSource, isListDataSource, isPagedDataSource, } from '../datasource/data-source';
11
- import { DelegateDataSource } from '../datasource/fetcher/delegate-data-source';
12
- import { AutoStartSpec, DataContextAutoStarter } from './data-context-auto-starter';
13
- import { FilterUtil } from '../../utils/filter-util';
14
- /**
15
- * Provides the ability to build a IDataContext<T>.
16
- */
17
- export class DataContextBuilder {
18
- /***************************************************************************
19
- * *
20
- * Static *
21
- * *
22
- **************************************************************************/
23
- /**
24
- * Creates a new DataContextBuilder.
25
- * @returns A new DataContextBuilder for the given data type.
26
- */
27
- static start() {
28
- return new DataContextBuilder();
29
- }
30
- /***************************************************************************
31
- * *
32
- * Constructor *
33
- * *
34
- **************************************************************************/
35
- constructor() {
36
- /***************************************************************************
37
- * *
38
- * Fields *
39
- * *
40
- **************************************************************************/
41
- this.logger = LoggerFactory.getLogger(this.constructor.name);
42
- this._skipLocalSort = false;
43
- this._pageSize = 50;
44
- this._reloadOnLocalChanges = false;
45
- this._activePaged = false;
46
- }
47
- /***************************************************************************
48
- * *
49
- * Public API *
50
- * *
51
- **************************************************************************/
52
- /**
53
- * Optional index function where each element will be indexed by.
54
- * If you have configured this, you can use the findByIndex(key) on the data-context.
55
- */
56
- indexBy(indexFn) {
57
- this._indexFn = indexFn;
58
- return this;
59
- }
60
- /**
61
- * The desired size of a page/chunk when loading data.
62
- * Note that continuable apis might just take this as a wish or even completely ignore this param.
63
- */
64
- pageSize(size) {
65
- this._pageSize = size;
66
- return this;
67
- }
68
- /**
69
- * Sort the data context locally.
70
- *
71
- * Note that this might be a costly operation when there are a lot of elements present.
72
- * Prefer server side sorting if possible.
73
- */
74
- localSort(localSort) {
75
- this._localSort = localSort ? localSort : SortUtil.sortData;
76
- return this;
77
- }
78
- /**
79
- * Enable active paging (in contrast to the infinite load) in the data context.
80
- * Only supported if the underlying datasource supports pagination.
81
- */
82
- activePaged() {
83
- this._activePaged = true;
84
- return this;
85
- }
86
- /**
87
- * For each element which is added to the datacontext, apply the given function.
88
- */
89
- localApply(localApply) {
90
- this._localApply = localApply;
91
- return this;
92
- }
93
- /**
94
- * On a local change event, automatically reload data in the data-context.
95
- * This means whenever there was an modify operation on the rest client,
96
- * such as Update, Delete or Create, the data will be reloaded.
97
- */
98
- reloadOnLocalChanges() {
99
- this._reloadOnLocalChanges = true;
100
- return this;
101
- }
102
- autoStartAsap(sort) {
103
- return this.autoStartOn(AutoStartSpec.asap(sort));
104
- }
105
- autoStartOnFilters(filters, sort) {
106
- return this.autoStartOn(AutoStartSpec.requireFilters(filters, sort));
107
- }
108
- autoStartOnFiltersAll(filters, sort) {
109
- return this.autoStartOn(AutoStartSpec.requireFiltersAll(filters, sort));
110
- }
111
- autoStartOnFiltersAny(filters, sort) {
112
- return this.autoStartOn(AutoStartSpec.requireFiltersAny(filters, sort));
113
- }
114
- autoStartOn(spec) {
115
- this._autoStartSpec = spec;
116
- return this;
117
- }
118
- /***************************************************************************
119
- * *
120
- * DataSource Builder *
121
- * *
122
- **************************************************************************/
123
- /**
124
- * Build a new DataContext from the given DataSource.
125
- *
126
- * Common DataSources are RestClient, LocalListDataSource and DelegateDataSource.
127
- *
128
- * @param ds
129
- */
130
- build(ds) {
131
- return this.buildFromSource(ds);
132
- }
133
- /***************************************************************************
134
- * *
135
- * Local Data Builder *
136
- * *
137
- **************************************************************************/
138
- buildLocal(items, idProperty) {
139
- return this.build(this.localListSource(items, idProperty));
140
- }
141
- buildLocalActivePaged(items, idProperty) {
142
- this._skipLocalSort = true;
143
- this.activePaged();
144
- return (this.build(LocalPagedDataSource.of(this.localListSource(items, idProperty))));
145
- }
146
- localListSource(items, idProperty) {
147
- return LocalListDataSource.from(items, idProperty, this._localSort, FilterUtil.filterData);
148
- }
149
- /***************************************************************************
150
- * *
151
- * Empty Data Builder *
152
- * *
153
- **************************************************************************/
154
- buildEmpty() {
155
- return this.build(DelegateDataSource.emptyListFetcher());
156
- }
157
- buildEmptyContinuable() {
158
- return this.build(DelegateDataSource.emptyContinuableFetcher());
159
- }
160
- buildEmptyActivePaged() {
161
- return (this.activePaged().build(DelegateDataSource.emptyPageFetcher()));
162
- }
163
- /***************************************************************************
164
- * *
165
- * Legacy Client Builder *
166
- * *
167
- **************************************************************************/
168
- /**
169
- * @deprecated Switch to build(dataSource)
170
- */
171
- buildClient(dataSource) {
172
- return this.build(dataSource);
173
- }
174
- /**
175
- * @deprecated Switch to build(dataSource)
176
- */
177
- buildPagedClient(dataSource) {
178
- return this.build(dataSource);
179
- }
180
- /**
181
- * @deprecated Switch to build(dataSource)
182
- */
183
- buildContinuationTokenClient(dataSource) {
184
- return this.build(dataSource);
185
- }
186
- /**
187
- * @deprecated Switch to .activePaged().build(dataSource)
188
- */
189
- buildActivePagedClient(dataSource) {
190
- return this.activePaged().build(dataSource);
191
- }
192
- /***************************************************************************
193
- * *
194
- * Private methods *
195
- * *
196
- **************************************************************************/
197
- buildFromSource(ds) {
198
- let dataContext;
199
- if (isListDataSource(ds)) {
200
- dataContext = this.fromListSource(ds);
201
- }
202
- else if (isPagedDataSource(ds)) {
203
- if (this._activePaged) {
204
- dataContext = this.fromActivePageSource(ds);
205
- }
206
- else {
207
- dataContext = this.fromPageSource(ds);
208
- }
209
- }
210
- else if (isContinuableDataSource(ds)) {
211
- dataContext = this.fromContinuationSource(ds);
212
- }
213
- else {
214
- throw new Error('Unsupported IDataSource type: ' + typeof ds);
215
- }
216
- if (this._autoStartSpec) {
217
- this.setupDataContextAutoStart(dataContext, this._autoStartSpec);
218
- }
219
- return this.setupDataContextAutoReload(dataContext, ds);
220
- }
221
- fromListSource(listSource) {
222
- return new DataContextSimple(listSource, this._indexFn, this._localApply, this._localSort);
223
- }
224
- fromPageSource(pageSource) {
225
- return new DataContextContinuablePaged(pageSource, this._pageSize, this._indexFn, this._localApply, this._localSort);
226
- }
227
- fromContinuationSource(continuationSource) {
228
- return new DataContextContinuableToken(continuationSource, this._pageSize, this._indexFn, this._localApply, this._localSort);
229
- }
230
- fromActivePageSource(pageSource) {
231
- return new DataContextActivePage(pageSource, this._pageSize, this._indexFn, this._localApply, this._skipLocalSort ? null : this._localSort);
232
- }
233
- setupDataContextAutoReload(dc, dataSource) {
234
- const binding = new DataContextSourceEventBinding(dc, dataSource, this._reloadOnLocalChanges);
235
- return dc;
236
- }
237
- setupDataContextAutoStart(dc, autoStartSpec) {
238
- if (this._autoStartSpec) {
239
- this.logger.debug('Setting up data context auto start with spec:', this._autoStartSpec);
240
- const binding = new DataContextAutoStarter(dc, autoStartSpec);
241
- }
242
- return dc;
243
- }
244
- }
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBRWxFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBRTlFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ25GLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFBO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNoRCxPQUFPLEVBS0wsdUJBQXVCLEVBQ3ZCLGdCQUFnQixFQUNoQixpQkFBaUIsR0FDbEIsTUFBTSwyQkFBMkIsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDbkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBRXBEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQWtCN0I7Ozs7Z0ZBSTRFO0lBRTVFOzs7T0FHRztJQUNJLE1BQU0s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QUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtZQUN2RixNQUFNLE9BQU8sR0FBRyxJQUFJLHNCQUFzQixDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQTtRQUMvRCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUE7SUFDWCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhQ29udGV4dENvbnRpbnVhYmxlUGFnZWQgfSBmcm9tICcuL2RhdGEtY29udGV4dC1jb250aW51YWJsZS1wYWdlZCdcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7IERhdGFDb250ZXh0U2ltcGxlIH0gZnJvbSAnLi9kYXRhLWNvbnRleHQtc2ltcGxlJ1xuaW1wb3J0IHsgRGF0YUNvbnRleHRBY3RpdmVQYWdlIH0gZnJvbSAnLi9kYXRhLWNvbnRleHQtYWN0aXZlLXBhZ2UnXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnLi4vc29ydCdcbmltcG9ydCB7IERhdGFDb250ZXh0Q29udGludWFibGVUb2tlbiB9IGZyb20gJy4vZGF0YS1jb250ZXh0LWNvbnRpbnVhYmxlLXRva2VuJ1xuaW1wb3J0IHsgSURhdGFDb250ZXh0LCBJRGF0YUNvbnRleHRBY3RpdmVQYWdlLCBJRGF0YUNvbnRleHRDb250aW51YWJsZSB9IGZyb20gJy4vZGF0YS1jb250ZXh0J1xuaW1wb3J0IHsgRGF0YUNvbnRleHRTb3VyY2VFdmVudEJpbmRpbmcgfSBmcm9tICcuL2RhdGEtY29udGV4dC1zb3VyY2UtZXZlbnQtYmluZGluZydcbmltcG9ydCB7IExvY2FsUGFnZWREYXRhU291cmNlIH0gZnJvbSAnLi4vZGF0YXNvdXJjZS9sb2NhbC9sb2NhbC1wYWdlZC1kYXRhLXNvdXJjZSdcbmltcG9ydCB7IExvY2FsTGlzdERhdGFTb3VyY2UgfSBmcm9tICcuLi9kYXRhc291cmNlL2xvY2FsL2xvY2FsLWxpc3QtZGF0YS1zb3VyY2UnXG5pbXBvcnQgeyBTb3J0VXRpbCB9IGZyb20gJy4uLy4uL3V0aWxzL3NvcnQtdXRpbCdcbmltcG9ydCB7XG4gIElDb250aW51YWJsZURhdGFTb3VyY2UsXG4gIElEYXRhU291cmNlLFxuICBJTGlzdERhdGFTb3VyY2UsXG4gIElQYWdlZERhdGFTb3VyY2UsXG4gIGlzQ29udGludWFibGVEYXRhU291cmNlLFxuICBpc0xpc3REYXRhU291cmNlLFxuICBpc1BhZ2VkRGF0YVNvdXJjZSxcbn0gZnJvbSAnLi4vZGF0YXNvdXJjZS9kYXRhLXNvdXJjZSdcbmltcG9ydCB7IERlbGVnYXRlRGF0YVNvdXJjZSB9IGZyb20gJy4uL2RhdGFzb3VyY2UvZmV0Y2hlci9kZWxlZ2F0ZS1kYXRhLXNvdXJjZSdcbmltcG9ydCB7IEF1dG9TdGFydFNwZWMsIERhdGFDb250ZXh0QXV0b1N0YXJ0ZXIgfSBmcm9tICcuL2RhdGEtY29udGV4dC1hdXRvLXN0YXJ0ZXInXG5pbXBvcnQgeyBGaWx0ZXJVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbHMvZmlsdGVyLXV0aWwnXG5cbi8qKlxuICogUHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gYnVpbGQgYSBJRGF0YUNvbnRleHQ8VD4uXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhQ29udGV4dEJ1aWxkZXI8VD4ge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSlcblxuICBwcml2YXRlIF9pbmRleEZuPzogKGl0ZW06IFQpID0+IGFueVxuICBwcml2YXRlIF9sb2NhbEFwcGx5PzogKGRhdGE6IFRbXSkgPT4gVFtdXG4gIHByaXZhdGUgX2xvY2FsU29ydD86IChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXVxuICBwcml2YXRlIF9za2lwTG9jYWxTb3J0ID0gZmFsc2VcbiAgcHJpdmF0ZSBfcGFnZVNpemUgPSA1MFxuICBwcml2YXRlIF9yZWxvYWRPbkxvY2FsQ2hhbmdlcyA9IGZhbHNlXG4gIHByaXZhdGUgX2FjdGl2ZVBhZ2VkID0gZmFsc2VcbiAgcHJpdmF0ZSBfYXV0b1N0YXJ0U3BlYz86IEF1dG9TdGFydFNwZWNcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogU3RhdGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBEYXRhQ29udGV4dEJ1aWxkZXIuXG4gICAqIEByZXR1cm5zIEEgbmV3IERhdGFDb250ZXh0QnVpbGRlciBmb3IgdGhlIGdpdmVuIGRhdGEgdHlwZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgc3RhcnQ8VD4oKTogRGF0YUNvbnRleHRCdWlsZGVyPFQ+IHtcbiAgICByZXR1cm4gbmV3IERhdGFDb250ZXh0QnVpbGRlcjxUPigpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGluZGV4IGZ1bmN0aW9uIHdoZXJlIGVhY2ggZWxlbWVudCB3aWxsIGJlIGluZGV4ZWQgYnkuXG4gICAqIElmIHlvdSBoYXZlIGNvbmZpZ3VyZWQgdGhpcywgeW91IGNhbiB1c2UgdGhlIGZpbmRCeUluZGV4KGtleSkgb24gdGhlIGRhdGEtY29udGV4dC5cbiAgICovXG4gIHB1YmxpYyBpbmRleEJ5KGluZGV4Rm4/OiAoaXRlbTogVCkgPT4gYW55KTogdGhpcyB7XG4gICAgdGhpcy5faW5kZXhGbiA9IGluZGV4Rm5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBkZXNpcmVkIHNpemUgb2YgYSBwYWdlL2NodW5rIHdoZW4gbG9hZGluZyBkYXRhLlxuICAgKiBOb3RlIHRoYXQgY29udGludWFibGUgYXBpcyBtaWdodCBqdXN0IHRha2UgdGhpcyBhcyBhIHdpc2ggb3IgZXZlbiBjb21wbGV0ZWx5IGlnbm9yZSB0aGlzIHBhcmFtLlxuICAgKi9cbiAgcHVibGljIHBhZ2VTaXplKHNpemU6IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMuX3BhZ2VTaXplID0gc2l6ZVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogU29ydCB0aGUgZGF0YSBjb250ZXh0IGxvY2FsbHkuXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGlzIG1pZ2h0IGJlIGEgY29zdGx5IG9wZXJhdGlvbiB3aGVuIHRoZXJlIGFyZSBhIGxvdCBvZiBlbGVtZW50cyBwcmVzZW50LlxuICAgKiBQcmVmZXIgc2VydmVyIHNpZGUgc29ydGluZyBpZiBwb3NzaWJsZS5cbiAgICovXG4gIHB1YmxpYyBsb2NhbFNvcnQobG9jYWxTb3J0PzogKGRhdGE6IFRbXSwgc29ydHM6IFNvcnRbXSkgPT4gVFtdKTogdGhpcyB7XG4gICAgdGhpcy5fbG9jYWxTb3J0ID0gbG9jYWxTb3J0ID8gbG9jYWxTb3J0IDogU29ydFV0aWwuc29ydERhdGFcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBhY3RpdmUgcGFnaW5nIChpbiBjb250cmFzdCB0byB0aGUgaW5maW5pdGUgbG9hZCkgaW4gdGhlIGRhdGEgY29udGV4dC5cbiAgICogT25seSBzdXBwb3J0ZWQgaWYgdGhlIHVuZGVybHlpbmcgZGF0YXNvdXJjZSBzdXBwb3J0cyBwYWdpbmF0aW9uLlxuICAgKi9cbiAgcHVibGljIGFjdGl2ZVBhZ2VkKCk6IHRoaXMge1xuICAgIHRoaXMuX2FjdGl2ZVBhZ2VkID0gdHJ1ZVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKipcbiAgICogRm9yIGVhY2ggZWxlbWVudCB3aGljaCBpcyBhZGRlZCB0byB0aGUgZGF0YWNvbnRleHQsIGFwcGx5IHRoZSBnaXZlbiBmdW5jdGlvbi5cbiAgICovXG4gIHB1YmxpYyBsb2NhbEFwcGx5KGxvY2FsQXBwbHk6IChkYXRhOiBUW10pID0+IFRbXSk6IHRoaXMge1xuICAgIHRoaXMuX2xvY2FsQXBwbHkgPSBsb2NhbEFwcGx5XG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBhIGxvY2FsIGNoYW5nZSBldmVudCwgYXV0b21hdGljYWxseSByZWxvYWQgZGF0YSBpbiB0aGUgZGF0YS1jb250ZXh0LlxuICAgKiBUaGlzIG1lYW5zIHdoZW5ldmVyIHRoZXJlIHdhcyBhbiBtb2RpZnkgb3BlcmF0aW9uIG9uIHRoZSByZXN0IGNsaWVudCxcbiAgICogc3VjaCBhcyBVcGRhdGUsIERlbGV0ZSBvciBDcmVhdGUsIHRoZSBkYXRhIHdpbGwgYmUgcmVsb2FkZWQuXG4gICAqL1xuICBwdWJsaWMgcmVsb2FkT25Mb2NhbENoYW5nZXMoKTogdGhpcyB7XG4gICAgdGhpcy5fcmVsb2FkT25Mb2NhbENoYW5nZXMgPSB0cnVlXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHB1YmxpYyBhdXRvU3RhcnRBc2FwKHNvcnQ/OiBTb3J0W10pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hdXRvU3RhcnRPbihBdXRvU3RhcnRTcGVjLmFzYXAoc29ydCkpXG4gIH1cblxuICBwdWJsaWMgYXV0b1N0YXJ0T25GaWx0ZXJzKGZpbHRlcnM6IEFycmF5PHN0cmluZ1tdPiwgc29ydD86IFNvcnRbXSk6IHRoaXMge1xuICAgIHJldHVybiB0aGlzLmF1dG9TdGFydE9uKEF1dG9TdGFydFNwZWMucmVxdWlyZUZpbHRlcnMoZmlsdGVycywgc29ydCkpXG4gIH1cblxuICBwdWJsaWMgYXV0b1N0YXJ0T25GaWx0ZXJzQWxsKGZpbHRlcnM6IHN0cmluZ1tdLCBzb3J0PzogU29ydFtdKTogdGhpcyB7XG4gICAgcmV0dXJuIHRoaXMuYXV0b1N0YXJ0T24oQXV0b1N0YXJ0U3BlYy5yZXF1aXJlRmlsdGVyc0FsbChmaWx0ZXJzLCBzb3J0KSlcbiAgfVxuXG4gIHB1YmxpYyBhdXRvU3RhcnRPbkZpbHRlcnNBbnkoZmlsdGVyczogc3RyaW5nW10sIHNvcnQ/OiBTb3J0W10pOiB0aGlzIHtcbiAgICByZXR1cm4gdGhpcy5hdXRvU3RhcnRPbihBdXRvU3RhcnRTcGVjLnJlcXVpcmVGaWx0ZXJzQW55KGZpbHRlcnMsIHNvcnQpKVxuICB9XG5cbiAgcHVibGljIGF1dG9TdGFydE9uKHNwZWM6IEF1dG9TdGFydFNwZWMpOiB0aGlzIHtcbiAgICB0aGlzLl9hdXRvU3RhcnRTcGVjID0gc3BlY1xuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRGF0YVNvdXJjZSBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQnVpbGQgYSBuZXcgRGF0YUNvbnRleHQgZnJvbSB0aGUgZ2l2ZW4gRGF0YVNvdXJjZS5cbiAgICpcbiAgICogQ29tbW9uIERhdGFTb3VyY2VzIGFyZSBSZXN0Q2xpZW50LCBMb2NhbExpc3REYXRhU291cmNlIGFuZCBEZWxlZ2F0ZURhdGFTb3VyY2UuXG4gICAqXG4gICAqIEBwYXJhbSBkc1xuICAgKi9cbiAgcHVibGljIGJ1aWxkKGRzOiBJRGF0YVNvdXJjZTxUPik6IElEYXRhQ29udGV4dDxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRGcm9tU291cmNlKGRzKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExvY2FsIERhdGEgQnVpbGRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGJ1aWxkTG9jYWwoaXRlbXM6IFRbXSwgaWRQcm9wZXJ0eT86IHN0cmluZyk6IElEYXRhQ29udGV4dDxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGQodGhpcy5sb2NhbExpc3RTb3VyY2UoaXRlbXMsIGlkUHJvcGVydHkpKVxuICB9XG5cbiAgcHVibGljIGJ1aWxkTG9jYWxBY3RpdmVQYWdlZChpdGVtczogVFtdLCBpZFByb3BlcnR5Pzogc3RyaW5nKTogSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiB7XG4gICAgdGhpcy5fc2tpcExvY2FsU29ydCA9IHRydWVcbiAgICB0aGlzLmFjdGl2ZVBhZ2VkKClcbiAgICByZXR1cm4gPElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4+KFxuICAgICAgdGhpcy5idWlsZChMb2NhbFBhZ2VkRGF0YVNvdXJjZS5vZih0aGlzLmxvY2FsTGlzdFNvdXJjZShpdGVtcywgaWRQcm9wZXJ0eSkpKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgbG9jYWxMaXN0U291cmNlKGl0ZW1zOiBUW10sIGlkUHJvcGVydHk/OiBzdHJpbmcpOiBMb2NhbExpc3REYXRhU291cmNlPFQ+IHtcbiAgICByZXR1cm4gTG9jYWxMaXN0RGF0YVNvdXJjZS5mcm9tKGl0ZW1zLCBpZFByb3BlcnR5LCB0aGlzLl9sb2NhbFNvcnQsIEZpbHRlclV0aWwuZmlsdGVyRGF0YSlcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBFbXB0eSBEYXRhIEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBidWlsZEVtcHR5KCk6IElEYXRhQ29udGV4dDxUPiB7XG4gICAgcmV0dXJuIHRoaXMuYnVpbGQoRGVsZWdhdGVEYXRhU291cmNlLmVtcHR5TGlzdEZldGNoZXIoKSlcbiAgfVxuXG4gIHB1YmxpYyBidWlsZEVtcHR5Q29udGludWFibGUoKTogSURhdGFDb250ZXh0Q29udGludWFibGU8VD4ge1xuICAgIHJldHVybiA8SURhdGFDb250ZXh0Q29udGludWFibGU8VD4+dGhpcy5idWlsZChEZWxlZ2F0ZURhdGFTb3VyY2UuZW1wdHlDb250aW51YWJsZUZldGNoZXIoKSlcbiAgfVxuXG4gIHB1YmxpYyBidWlsZEVtcHR5QWN0aXZlUGFnZWQoKTogSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiB7XG4gICAgcmV0dXJuIDxJRGF0YUNvbnRleHRBY3RpdmVQYWdlPFQ+PihcbiAgICAgIHRoaXMuYWN0aXZlUGFnZWQoKS5idWlsZChEZWxlZ2F0ZURhdGFTb3VyY2UuZW1wdHlQYWdlRmV0Y2hlcigpKVxuICAgIClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMZWdhY3kgQ2xpZW50IEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBTd2l0Y2ggdG8gYnVpbGQoZGF0YVNvdXJjZSlcbiAgICovXG4gIHB1YmxpYyBidWlsZENsaWVudChkYXRhU291cmNlOiBJTGlzdERhdGFTb3VyY2U8VD4pOiBJRGF0YUNvbnRleHQ8VD4ge1xuICAgIHJldHVybiB0aGlzLmJ1aWxkKGRhdGFTb3VyY2UpXG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgU3dpdGNoIHRvIGJ1aWxkKGRhdGFTb3VyY2UpXG4gICAqL1xuICBwdWJsaWMgYnVpbGRQYWdlZENsaWVudChkYXRhU291cmNlOiBJUGFnZWREYXRhU291cmNlPFQ+KTogSURhdGFDb250ZXh0Q29udGludWFibGU8VD4ge1xuICAgIHJldHVybiA8SURhdGFDb250ZXh0Q29udGludWFibGU8VD4+dGhpcy5idWlsZChkYXRhU291cmNlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFN3aXRjaCB0byBidWlsZChkYXRhU291cmNlKVxuICAgKi9cbiAgcHVibGljIGJ1aWxkQ29udGludWF0aW9uVG9rZW5DbGllbnQoXG4gICAgZGF0YVNvdXJjZTogSUNvbnRpbnVhYmxlRGF0YVNvdXJjZTxUPlxuICApOiBJRGF0YUNvbnRleHRDb250aW51YWJsZTxUPiB7XG4gICAgcmV0dXJuIDxJRGF0YUNvbnRleHRDb250aW51YWJsZTxUPj50aGlzLmJ1aWxkKGRhdGFTb3VyY2UpXG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgU3dpdGNoIHRvIC5hY3RpdmVQYWdlZCgpLmJ1aWxkKGRhdGFTb3VyY2UpXG4gICAqL1xuICBwdWJsaWMgYnVpbGRBY3RpdmVQYWdlZENsaWVudChkYXRhU291cmNlOiBJUGFnZWREYXRhU291cmNlPFQ+KTogSURhdGFDb250ZXh0QWN0aXZlUGFnZTxUPiB7XG4gICAgcmV0dXJuIDxJRGF0YUNvbnRleHRBY3RpdmVQYWdlPFQ+PnRoaXMuYWN0aXZlUGFnZWQoKS5idWlsZChkYXRhU291cmNlKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBidWlsZEZyb21Tb3VyY2UoZHM6IElEYXRhU291cmNlPFQ+KTogSURhdGFDb250ZXh0PFQ+IHtcbiAgICBsZXQgZGF0YUNvbnRleHQ6IElEYXRhQ29udGV4dDxUPlxuXG4gICAgaWYgKGlzTGlzdERhdGFTb3VyY2UoZHMpKSB7XG4gICAgICBkYXRhQ29udGV4dCA9IHRoaXMuZnJvbUxpc3RTb3VyY2UoZHMpXG4gICAgfSBlbHNlIGlmIChpc1BhZ2VkRGF0YVNvdXJjZShkcykpIHtcbiAgICAgIGlmICh0aGlzLl9hY3RpdmVQYWdlZCkge1xuICAgICAgICBkYXRhQ29udGV4dCA9IHRoaXMuZnJvbUFjdGl2ZVBhZ2VTb3VyY2UoZHMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRhQ29udGV4dCA9IHRoaXMuZnJvbVBhZ2VTb3VyY2UoZHMpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc0NvbnRpbnVhYmxlRGF0YVNvdXJjZShkcykpIHtcbiAgICAgIGRhdGFDb250ZXh0ID0gdGhpcy5mcm9tQ29udGludWF0aW9uU291cmNlKGRzKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIElEYXRhU291cmNlIHR5cGU6ICcgKyB0eXBlb2YgZHMpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2F1dG9TdGFydFNwZWMpIHtcbiAgICAgIHRoaXMuc2V0dXBEYXRhQ29udGV4dEF1dG9TdGFydChkYXRhQ29udGV4dCwgdGhpcy5fYXV0b1N0YXJ0U3BlYylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zZXR1cERhdGFDb250ZXh0QXV0b1JlbG9hZChkYXRhQ29udGV4dCwgZHMpXG4gIH1cblxuICBwcml2YXRlIGZyb21MaXN0U291cmNlKGxpc3RTb3VyY2U6IElMaXN0RGF0YVNvdXJjZTxUPik6IElEYXRhQ29udGV4dDxUPiB7XG4gICAgcmV0dXJuIG5ldyBEYXRhQ29udGV4dFNpbXBsZTxUPihsaXN0U291cmNlLCB0aGlzLl9pbmRleEZuLCB0aGlzLl9sb2NhbEFwcGx5LCB0aGlzLl9sb2NhbFNvcnQpXG4gIH1cblxuICBwcml2YXRlIGZyb21QYWdlU291cmNlKHBhZ2VTb3VyY2U6IElQYWdlZERhdGFTb3VyY2U8VD4pOiBJRGF0YUNvbnRleHRDb250aW51YWJsZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBEYXRhQ29udGV4dENvbnRpbnVhYmxlUGFnZWQ8VD4oXG4gICAgICBwYWdlU291cmNlLFxuICAgICAgdGhpcy5fcGFnZVNpemUsXG4gICAgICB0aGlzLl9pbmRleEZuLFxuICAgICAgdGhpcy5fbG9jYWxBcHBseSxcbiAgICAgIHRoaXMuX2xvY2FsU29ydFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgZnJvbUNvbnRpbnVhdGlvblNvdXJjZShcbiAgICBjb250aW51YXRpb25Tb3VyY2U6IElDb250aW51YWJsZURhdGFTb3VyY2U8VD5cbiAgKTogSURhdGFDb250ZXh0Q29udGludWFibGU8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRDb250aW51YWJsZVRva2VuPFQ+KFxuICAgICAgY29udGludWF0aW9uU291cmNlLFxuICAgICAgdGhpcy5fcGFnZVNpemUsXG4gICAgICB0aGlzLl9pbmRleEZuLFxuICAgICAgdGhpcy5fbG9jYWxBcHBseSxcbiAgICAgIHRoaXMuX2xvY2FsU29ydFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgZnJvbUFjdGl2ZVBhZ2VTb3VyY2UocGFnZVNvdXJjZTogSVBhZ2VkRGF0YVNvdXJjZTxUPik6IElEYXRhQ29udGV4dEFjdGl2ZVBhZ2U8VD4ge1xuICAgIHJldHVybiBuZXcgRGF0YUNvbnRleHRBY3RpdmVQYWdlPFQ+KFxuICAgICAgcGFnZVNvdXJjZSxcbiAgICAgIHRoaXMuX3BhZ2VTaXplLFxuICAgICAgdGhpcy5faW5kZXhGbixcbiAgICAgIHRoaXMuX2xvY2FsQXBwbHksXG4gICAgICB0aGlzLl9za2lwTG9jYWxTb3J0ID8gbnVsbCA6IHRoaXMuX2xvY2FsU29ydFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBEYXRhQ29udGV4dEF1dG9SZWxvYWQ8REMgZXh0ZW5kcyBJRGF0YUNvbnRleHQ8VD4+KFxuICAgIGRjOiBEQyxcbiAgICBkYXRhU291cmNlOiBJRGF0YVNvdXJjZTxhbnk+XG4gICk6IERDIHtcbiAgICBjb25zdCBiaW5kaW5nID0gbmV3IERhdGFDb250ZXh0U291cmNlRXZlbnRCaW5kaW5nKGRjLCBkYXRhU291cmNlLCB0aGlzLl9yZWxvYWRPbkxvY2FsQ2hhbmdlcylcbiAgICByZXR1cm4gZGNcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBEYXRhQ29udGV4dEF1dG9TdGFydDxEQyBleHRlbmRzIElEYXRhQ29udGV4dDxUPj4oXG4gICAgZGM6IERDLFxuICAgIGF1dG9TdGFydFNwZWM6IEF1dG9TdGFydFNwZWNcbiAgKTogREMge1xuICAgIGlmICh0aGlzLl9hdXRvU3RhcnRTcGVjKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0dGluZyB1cCBkYXRhIGNvbnRleHQgYXV0byBzdGFydCB3aXRoIHNwZWM6JywgdGhpcy5fYXV0b1N0YXJ0U3BlYylcbiAgICAgIGNvbnN0IGJpbmRpbmcgPSBuZXcgRGF0YUNvbnRleHRBdXRvU3RhcnRlcihkYywgYXV0b1N0YXJ0U3BlYylcbiAgICB9XG4gICAgcmV0dXJuIGRjXG4gIH1cbn1cbiJdfQ==
@@ -1,67 +0,0 @@
1
- import { DataContextBase } from './data-context-base';
2
- import { LoggerFactory } from '@elderbyte/ts-logger';
3
- /**
4
- * Extends a simple flat list data-context with infinite-scroll pagination support.
5
- *
6
- */
7
- export class DataContextContinuableBase extends DataContextBase {
8
- /***************************************************************************
9
- * *
10
- * Constructors *
11
- * *
12
- **************************************************************************/
13
- constructor(dataSource, chunkSize, indexFn, localApply, localSort) {
14
- super(dataSource, indexFn, localApply, localSort);
15
- /***************************************************************************
16
- * *
17
- * Fields *
18
- * *
19
- **************************************************************************/
20
- this.cblogger = LoggerFactory.getLogger(this.constructor.name);
21
- this._chunkSize = chunkSize;
22
- }
23
- /***************************************************************************
24
- * *
25
- * Public API *
26
- * *
27
- **************************************************************************/
28
- loadAll(sorts, filters) {
29
- this.cblogger.debug(this.id + ': Starting to load all data ...');
30
- // load first page
31
- this.start(sorts, filters).subscribe(() => {
32
- this.cblogger.debug(this.id + ': First page has been loaded. Loading remaining data ...');
33
- // load rest in a recursive manner
34
- this.loadAllRec();
35
- }, (err) => {
36
- this.onError(err);
37
- this.cblogger.error(this.id + ': Failed to load first page of load all procedure!', err);
38
- });
39
- }
40
- get chunkSize() {
41
- return this._chunkSize;
42
- }
43
- set chunkSize(size) {
44
- if (this._chunkSize !== size) {
45
- this._chunkSize = size;
46
- this.onChunkSizeChanged(size);
47
- }
48
- }
49
- /***************************************************************************
50
- * *
51
- * Private Methods *
52
- * *
53
- **************************************************************************/
54
- onChunkSizeChanged(newSize) { }
55
- loadAllRec() {
56
- this.loadMore().subscribe(() => {
57
- this.cblogger.debug(this.id + ': Loading data chunk finished, loading next...');
58
- this.loadAllRec();
59
- }, (err) => {
60
- this.onError(err);
61
- this.cblogger.error(this.id + ': Loading all failed!', err);
62
- }, () => {
63
- this.cblogger.info(this.id + ': All data loaded completely.');
64
- });
65
- }
66
- }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWNvbnRpbnVhYmxlLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0LWNvbnRpbnVhYmxlLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBR3JELE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUs1RDs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLDBCQUNwQixTQUFRLGVBQWtCO0lBYTFCOzs7O2dGQUk0RTtJQUU1RSxZQUNFLFVBQTBCLEVBQzFCLFNBQWlCLEVBQ2pCLE9BQXlCLEVBQ3pCLFVBQThCLEVBQzlCLFNBQTRDO1FBRTVDLEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQTtRQXZCbkQ7Ozs7b0ZBSTRFO1FBRTNELGFBQVEsR0FBVyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7UUFrQmhGLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFBO0lBQzdCLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFckUsT0FBTyxDQUFDLEtBQWMsRUFBRSxPQUFrQjtRQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLGlDQUFpQyxDQUFDLENBQUE7UUFFaEUsa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FDbEMsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRywwREFBMEQsQ0FBQyxDQUFBO1lBQ3pGLGtDQUFrQztZQUNsQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDbkIsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsb0RBQW9ELEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDMUYsQ0FBQyxDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsSUFBVyxTQUFTLENBQUMsSUFBWTtRQUMvQixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUE7WUFDdEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFBO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRWxFLGtCQUFrQixDQUFDLE9BQWUsSUFBUyxDQUFDO0lBRTlDLFVBQVU7UUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FDdkIsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxnREFBZ0QsQ0FBQyxDQUFBO1lBQy9FLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNuQixDQUFDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUM3RCxDQUFDLEVBQ0QsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRywrQkFBK0IsQ0FBQyxDQUFBO1FBQy9ELENBQUMsQ0FDRixDQUFBO0lBQ0gsQ0FBQztDQUtGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YUNvbnRleHRCYXNlIH0gZnJvbSAnLi9kYXRhLWNvbnRleHQtYmFzZSdcbmltcG9ydCB7IFNvcnQgfSBmcm9tICcuLi9zb3J0J1xuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vZmlsdGVycy9maWx0ZXInXG5pbXBvcnQgeyBMb2dnZXIsIExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgSURhdGFDb250ZXh0Q29udGludWFibGUgfSBmcm9tICcuL2RhdGEtY29udGV4dCdcbmltcG9ydCB7IElEYXRhU291cmNlIH0gZnJvbSAnLi4vZGF0YXNvdXJjZS9kYXRhLXNvdXJjZSdcblxuLyoqXG4gKiBFeHRlbmRzIGEgc2ltcGxlIGZsYXQgbGlzdCBkYXRhLWNvbnRleHQgd2l0aCBpbmZpbml0ZS1zY3JvbGwgcGFnaW5hdGlvbiBzdXBwb3J0LlxuICpcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIERhdGFDb250ZXh0Q29udGludWFibGVCYXNlPFQ+XG4gIGV4dGVuZHMgRGF0YUNvbnRleHRCYXNlPFQ+XG4gIGltcGxlbWVudHMgSURhdGFDb250ZXh0Q29udGludWFibGU8VD5cbntcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBjYmxvZ2dlcjogTG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIHByaXZhdGUgX2NodW5rU2l6ZTogbnVtYmVyXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9ycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIGRhdGFTb3VyY2U6IElEYXRhU291cmNlPFQ+LFxuICAgIGNodW5rU2l6ZTogbnVtYmVyLFxuICAgIGluZGV4Rm46IChpdGVtOiBUKSA9PiBhbnksXG4gICAgbG9jYWxBcHBseTogKGRhdGE6IFRbXSkgPT4gVFtdLFxuICAgIGxvY2FsU29ydDogKGRhdGE6IFRbXSwgc29ydHM6IFNvcnRbXSkgPT4gVFtdXG4gICkge1xuICAgIHN1cGVyKGRhdGFTb3VyY2UsIGluZGV4Rm4sIGxvY2FsQXBwbHksIGxvY2FsU29ydClcbiAgICB0aGlzLl9jaHVua1NpemUgPSBjaHVua1NpemVcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBsb2FkQWxsKHNvcnRzPzogU29ydFtdLCBmaWx0ZXJzPzogRmlsdGVyW10pOiB2b2lkIHtcbiAgICB0aGlzLmNibG9nZ2VyLmRlYnVnKHRoaXMuaWQgKyAnOiBTdGFydGluZyB0byBsb2FkIGFsbCBkYXRhIC4uLicpXG5cbiAgICAvLyBsb2FkIGZpcnN0IHBhZ2VcbiAgICB0aGlzLnN0YXJ0KHNvcnRzLCBmaWx0ZXJzKS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2Jsb2dnZXIuZGVidWcodGhpcy5pZCArICc6IEZpcnN0IHBhZ2UgaGFzIGJlZW4gbG9hZGVkLiBMb2FkaW5nIHJlbWFpbmluZyBkYXRhIC4uLicpXG4gICAgICAgIC8vIGxvYWQgcmVzdCBpbiBhIHJlY3Vyc2l2ZSBtYW5uZXJcbiAgICAgICAgdGhpcy5sb2FkQWxsUmVjKClcbiAgICAgIH0sXG4gICAgICAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMub25FcnJvcihlcnIpXG4gICAgICAgIHRoaXMuY2Jsb2dnZXIuZXJyb3IodGhpcy5pZCArICc6IEZhaWxlZCB0byBsb2FkIGZpcnN0IHBhZ2Ugb2YgbG9hZCBhbGwgcHJvY2VkdXJlIScsIGVycilcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBwdWJsaWMgZ2V0IGNodW5rU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jaHVua1NpemVcbiAgfVxuXG4gIHB1YmxpYyBzZXQgY2h1bmtTaXplKHNpemU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl9jaHVua1NpemUgIT09IHNpemUpIHtcbiAgICAgIHRoaXMuX2NodW5rU2l6ZSA9IHNpemVcbiAgICAgIHRoaXMub25DaHVua1NpemVDaGFuZ2VkKHNpemUpXG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIG9uQ2h1bmtTaXplQ2hhbmdlZChuZXdTaXplOiBudW1iZXIpOiB2b2lkIHt9XG5cbiAgcHJpdmF0ZSBsb2FkQWxsUmVjKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZE1vcmUoKS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2Jsb2dnZXIuZGVidWcodGhpcy5pZCArICc6IExvYWRpbmcgZGF0YSBjaHVuayBmaW5pc2hlZCwgbG9hZGluZyBuZXh0Li4uJylcbiAgICAgICAgdGhpcy5sb2FkQWxsUmVjKClcbiAgICAgIH0sXG4gICAgICAoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMub25FcnJvcihlcnIpXG4gICAgICAgIHRoaXMuY2Jsb2dnZXIuZXJyb3IodGhpcy5pZCArICc6IExvYWRpbmcgYWxsIGZhaWxlZCEnLCBlcnIpXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICB0aGlzLmNibG9nZ2VyLmluZm8odGhpcy5pZCArICc6IEFsbCBkYXRhIGxvYWRlZCBjb21wbGV0ZWx5LicpXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgcHVibGljIGFic3RyYWN0IGxvYWRNb3JlKCk6IE9ic2VydmFibGU8YW55PlxuICBwdWJsaWMgYWJzdHJhY3QgZ2V0IGhhc01vcmVEYXRhU25hcHNob3QoKTogYm9vbGVhblxuICBwdWJsaWMgYWJzdHJhY3QgZ2V0IGhhc01vcmVEYXRhKCk6IE9ic2VydmFibGU8Ym9vbGVhbj5cbn1cbiJdfQ==
@@ -1,142 +0,0 @@
1
- import { combineLatest, EMPTY, Subject } from 'rxjs';
2
- import { Pageable } from '../page';
3
- import { LoggerFactory } from '@elderbyte/ts-logger';
4
- import { DataContextContinuableBase } from './data-context-continuable-base';
5
- import { first, map, takeUntil } from 'rxjs/operators';
6
- /**
7
- * Extends a simple flat list data-context with infinite-scroll pagination support.
8
- *
9
- */
10
- export class DataContextContinuablePaged extends DataContextContinuableBase {
11
- /***************************************************************************
12
- * *
13
- * Constructors *
14
- * *
15
- **************************************************************************/
16
- constructor(dataSource, pageSize, indexFn, localApply, localSort) {
17
- super(dataSource, pageSize, indexFn, localApply, localSort);
18
- /***************************************************************************
19
- * *
20
- * Fields *
21
- * *
22
- **************************************************************************/
23
- this.logger = LoggerFactory.getLogger(this.constructor.name);
24
- this._pageCache = new Map();
25
- this._latestPage = 0;
26
- this._hasMoreData = combineLatest([this.total, this.data]).pipe(map(([total, data]) => this.checkHasMoreData(total, data)), takeUntil(this.destroy$));
27
- }
28
- /***************************************************************************
29
- * *
30
- * Properties *
31
- * *
32
- **************************************************************************/
33
- get dataSource() {
34
- return super.dataSource;
35
- }
36
- /***************************************************************************
37
- * *
38
- * Public API *
39
- * *
40
- **************************************************************************/
41
- /**
42
- * Load the next chunk of data.
43
- * Useful for infinite scroll like data flows.
44
- *
45
- */
46
- loadMore() {
47
- if (this.hasMoreDataSnapshot) {
48
- this.logger.info(this.id + ': Loading more...' + this._latestPage);
49
- if (this.loadingSnapshot) {
50
- return EMPTY;
51
- }
52
- const nextPage = this._latestPage + 1;
53
- return this.fetchPage(nextPage, this.chunkSize);
54
- }
55
- else {
56
- this.logger.debug(this.id + ': Cannot load more data, since no more data available.');
57
- return EMPTY;
58
- }
59
- }
60
- get hasMoreData() {
61
- return this._hasMoreData;
62
- }
63
- get hasMoreDataSnapshot() {
64
- return this.checkHasMoreData(this.totalSnapshot, this.dataSnapshot);
65
- }
66
- /***************************************************************************
67
- * *
68
- * Private Methods *
69
- * *
70
- **************************************************************************/
71
- checkHasMoreData(total, data) {
72
- if (total) {
73
- return total > data.length;
74
- }
75
- return false;
76
- }
77
- onChunkSizeChanged(newSize) {
78
- this.reload('ChunkSizeChanged');
79
- }
80
- reloadInternal() {
81
- // Since continuable data-contexts are appending data,
82
- // we need to clear it for a reload.
83
- this.clearAll(true);
84
- return this.fetchPage(0, this.chunkSize, true);
85
- }
86
- clearAll(silent = false) {
87
- super.clearAll(silent);
88
- this._pageCache = new Map();
89
- this._latestPage = 0;
90
- }
91
- fetchPage(pageIndex, pageSize, clear = false) {
92
- const subject = new Subject();
93
- const pageRequest = new Pageable(pageIndex, pageSize, this.sort.sortsSnapshot);
94
- if (this._pageCache.has(pageIndex)) {
95
- // Page already loaded - skipping request!
96
- this.logger.trace(this.id + ': Skipping fetching page since its already in page observable cache.');
97
- subject.next();
98
- }
99
- else {
100
- this.onLoading();
101
- this.logger.debug(this.id + `: Loading page ${pageIndex} using pageable:`, pageRequest);
102
- const pageObs = this.dataSource.findAllPaged(pageRequest, this.filter.filtersSnapshot);
103
- this._pageCache.set(pageIndex, pageObs);
104
- pageObs.subscribe((page) => {
105
- this.logger.debug(this.id + ': Got page data:', page);
106
- this.populatePageData(page, clear);
107
- if (this._latestPage < page.number) {
108
- this._latestPage = page.number; // TODO This might cause that pages are skipped
109
- }
110
- subject.next();
111
- this.onIdle();
112
- }, (err) => {
113
- this.onError(err);
114
- this.clearData();
115
- this.setTotal(0);
116
- this.logger.error(this.id + ': Failed to query data', err);
117
- subject.error(err);
118
- });
119
- }
120
- return subject.pipe(first());
121
- }
122
- /**
123
- * Load the data from the given page into the current data context
124
- */
125
- populatePageData(page, clear) {
126
- try {
127
- this.setTotal(page.totalElements);
128
- const start = page.number * page.size;
129
- if (clear) {
130
- this.setData(page.content);
131
- }
132
- else {
133
- this.insertData(page.content, start);
134
- }
135
- }
136
- catch (err) {
137
- this.onError(err);
138
- this.logger.error(this.id + ': Failed to populate data with page', page, err);
139
- }
140
- }
141
- }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb250ZXh0LWNvbnRpbnVhYmxlLXBhZ2VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dC1jb250aW51YWJsZS1wYWdlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDaEUsT0FBTyxFQUFRLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUN4QyxPQUFPLEVBQVUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDNUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFJdEQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLDJCQUErQixTQUFRLDBCQUE2QjtJQWMvRTs7OztnRkFJNEU7SUFFNUUsWUFDRSxVQUErQixFQUMvQixRQUFnQixFQUNoQixPQUF5QixFQUN6QixVQUE4QixFQUM5QixTQUE0QztRQUU1QyxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFBO1FBMUI3RDs7OztvRkFJNEU7UUFFM0QsV0FBTSxHQUFXLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUV4RSxlQUFVLEdBQXFDLElBQUksR0FBRyxFQUFFLENBQUE7UUFDeEQsZ0JBQVcsR0FBRyxDQUFDLENBQUE7UUFtQnJCLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJ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LENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFDMUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNwQixDQUFDLENBQ0YsQ0FBQTtRQUNILENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0IsQ0FBQyxJQUFhLEVBQUUsS0FBYztRQUNwRCxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtZQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7WUFDckMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUM1QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQ3RDLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxxQ0FBcUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7UUFDL0UsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIEVNUFRZLCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IFBhZ2UsIFBhZ2VhYmxlIH0gZnJvbSAnLi4vcGFnZSdcbmltcG9ydCB7IExvZ2dlciwgTG9nZ2VyRmFjdG9yeSB9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJ1xuaW1wb3J0IHsgRGF0YUNvbnRleHRDb250aW51YWJsZUJhc2UgfSBmcm9tICcuL2RhdGEtY29udGV4dC1jb250aW51YWJsZS1iYXNlJ1xuaW1wb3J0IHsgZmlyc3QsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnLi4vc29ydCdcbmltcG9ydCB7IElQYWdlZERhdGFTb3VyY2UgfSBmcm9tICcuLi9kYXRhc291cmNlL2RhdGEtc291cmNlJ1xuXG4vKipcbiAqIEV4dGVuZHMgYSBzaW1wbGUgZmxhdCBsaXN0IGRhdGEtY29udGV4dCB3aXRoIGluZmluaXRlLXNjcm9sbCBwYWdpbmF0aW9uIHN1cHBvcnQuXG4gKlxuICovXG5leHBvcnQgY2xhc3MgRGF0YUNvbnRleHRDb250aW51YWJsZVBhZ2VkPFQ+IGV4dGVuZHMgRGF0YUNvbnRleHRDb250aW51YWJsZUJhc2U8VD4ge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIHByaXZhdGUgX3BhZ2VDYWNoZTogTWFwPG51bWJlciwgT2JzZXJ2YWJsZTxQYWdlPFQ+Pj4gPSBuZXcgTWFwKClcbiAgcHJpdmF0ZSBfbGF0ZXN0UGFnZSA9IDBcblxuICBwcml2YXRlIHJlYWRvbmx5IF9oYXNNb3JlRGF0YTogT2JzZXJ2YWJsZTxib29sZWFuPlxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGRhdGFTb3VyY2U6IElQYWdlZERhdGFTb3VyY2U8VD4sXG4gICAgcGFnZVNpemU6IG51bWJlcixcbiAgICBpbmRleEZuOiAoaXRlbTogVCkgPT4gYW55LFxuICAgIGxvY2FsQXBwbHk6IChkYXRhOiBUW10pID0+IFRbXSxcbiAgICBsb2NhbFNvcnQ6IChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXVxuICApIHtcbiAgICBzdXBlcihkYXRhU291cmNlLCBwYWdlU2l6ZSwgaW5kZXhGbiwgbG9jYWxBcHBseSwgbG9jYWxTb3J0KVxuXG4gICAgdGhpcy5faGFzTW9yZURhdGEgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnRvdGFsLCB0aGlzLmRhdGFdKS5waXBlKFxuICAgICAgbWFwKChbdG90YWwsIGRhdGFdKSA9PiB0aGlzLmNoZWNrSGFzTW9yZURhdGEodG90YWwsIGRhdGEpKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgIClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBJUGFnZWREYXRhU291cmNlPFQ+IHtcbiAgICByZXR1cm4gPElQYWdlZERhdGFTb3VyY2U8VD4+c3VwZXIuZGF0YVNvdXJjZVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIG5leHQgY2h1bmsgb2YgZGF0YS5cbiAgICogVXNlZnVsIGZvciBpbmZpbml0ZSBzY3JvbGwgbGlrZSBkYXRhIGZsb3dzLlxuICAgKlxuICAgKi9cbiAgcHVibGljIGxvYWRNb3JlKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKHRoaXMuaGFzTW9yZURhdGFTbmFwc2hvdCkge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyh0aGlzLmlkICsgJzogTG9hZGluZyBtb3JlLi4uJyArIHRoaXMuX2xhdGVzdFBhZ2UpXG5cbiAgICAgIGlmICh0aGlzLmxvYWRpbmdTbmFwc2hvdCkge1xuICAgICAgICByZXR1cm4gRU1QVFlcbiAgICAgIH1cbiAgICAgIGNvbnN0IG5leHRQYWdlID0gdGhpcy5fbGF0ZXN0UGFnZSArIDFcbiAgICAgIHJldHVybiB0aGlzLmZldGNoUGFnZShuZXh0UGFnZSwgdGhpcy5jaHVua1NpemUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKHRoaXMuaWQgKyAnOiBDYW5ub3QgbG9hZCBtb3JlIGRhdGEsIHNpbmNlIG5vIG1vcmUgZGF0YSBhdmFpbGFibGUuJylcbiAgICAgIHJldHVybiBFTVBUWVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzTW9yZURhdGEoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX2hhc01vcmVEYXRhXG4gIH1cblxuICBwdWJsaWMgZ2V0IGhhc01vcmVEYXRhU25hcHNob3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2hlY2tIYXNNb3JlRGF0YSh0aGlzLnRvdGFsU25hcHNob3QsIHRoaXMuZGF0YVNuYXBzaG90KVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBjaGVja0hhc01vcmVEYXRhKHRvdGFsOiBudW1iZXIgfCB1bmRlZmluZWQsIGRhdGE6IFRbXSk6IGJvb2xlYW4ge1xuICAgIGlmICh0b3RhbCkge1xuICAgICAgcmV0dXJuIHRvdGFsID4gZGF0YS5sZW5ndGhcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBwcm90ZWN0ZWQgb25DaHVua1NpemVDaGFuZ2VkKG5ld1NpemU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucmVsb2FkKCdDaHVua1NpemVDaGFuZ2VkJylcbiAgfVxuXG4gIHByb3RlY3RlZCByZWxvYWRJbnRlcm5hbCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIC8vIFNpbmNlIGNvbnRpbnVhYmxlIGRhdGEtY29udGV4dHMgYXJlIGFwcGVuZGluZyBkYXRhLFxuICAgIC8vIHdlIG5lZWQgdG8gY2xlYXIgaXQgZm9yIGEgcmVsb2FkLlxuICAgIHRoaXMuY2xlYXJBbGwodHJ1ZSlcbiAgICByZXR1cm4gdGhpcy5mZXRjaFBhZ2UoMCwgdGhpcy5jaHVua1NpemUsIHRydWUpXG4gIH1cblxuICBwcm90ZWN0ZWQgY2xlYXJBbGwoc2lsZW50ID0gZmFsc2UpOiB2b2lkIHtcbiAgICBzdXBlci5jbGVhckFsbChzaWxlbnQpXG4gICAgdGhpcy5fcGFnZUNhY2hlID0gbmV3IE1hcCgpXG4gICAgdGhpcy5fbGF0ZXN0UGFnZSA9IDBcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hQYWdlKHBhZ2VJbmRleDogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyLCBjbGVhciA9IGZhbHNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gICAgY29uc3QgcGFnZVJlcXVlc3QgPSBuZXcgUGFnZWFibGUocGFnZUluZGV4LCBwYWdlU2l6ZSwgdGhpcy5zb3J0LnNvcnRzU25hcHNob3QpXG5cbiAgICBpZiAodGhpcy5fcGFnZUNhY2hlLmhhcyhwYWdlSW5kZXgpKSB7XG4gICAgICAvLyBQYWdlIGFscmVhZHkgbG9hZGVkIC0gc2tpcHBpbmcgcmVxdWVzdCFcbiAgICAgIHRoaXMubG9nZ2VyLnRyYWNlKFxuICAgICAgICB0aGlzLmlkICsgJzogU2tpcHBpbmcgZmV0Y2hpbmcgcGFnZSBzaW5jZSBpdHMgYWxyZWFkeSBpbiBwYWdlIG9ic2VydmFibGUgY2FjaGUuJ1xuICAgICAgKVxuICAgICAgc3ViamVjdC5uZXh0KClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkxvYWRpbmcoKVxuXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1Zyh0aGlzLmlkICsgYDogTG9hZGluZyBwYWdlICR7cGFnZUluZGV4fSB1c2luZyBwYWdlYWJsZTpgLCBwYWdlUmVxdWVzdClcblxuICAgICAgY29uc3QgcGFnZU9icyA9IHRoaXMuZGF0YVNvdXJjZS5maW5kQWxsUGFnZWQocGFnZVJlcXVlc3QsIHRoaXMuZmlsdGVyLmZpbHRlcnNTbmFwc2hvdClcblxuICAgICAgdGhpcy5fcGFnZUNhY2hlLnNldChwYWdlSW5kZXgsIHBhZ2VPYnMpXG5cbiAgICAgIHBhZ2VPYnMuc3Vic2NyaWJlKFxuICAgICAgICAocGFnZTogUGFnZTxUPikgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKHRoaXMuaWQgKyAnOiBHb3QgcGFnZSBkYXRhOicsIHBhZ2UpXG5cbiAgICAgICAgICB0aGlzLnBvcHVsYXRlUGFnZURhdGEocGFnZSwgY2xlYXIpXG5cbiAgICAgICAgICBpZiAodGhpcy5fbGF0ZXN0UGFnZSA8IHBhZ2UubnVtYmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9sYXRlc3RQYWdlID0gcGFnZS5udW1iZXIgLy8gVE9ETyBUaGlzIG1pZ2h0IGNhdXNlIHRoYXQgcGFnZXMgYXJlIHNraXBwZWRcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdWJqZWN0Lm5leHQoKVxuICAgICAgICAgIHRoaXMub25JZGxlKClcbiAgICAgICAgfSxcbiAgICAgICAgKGVycikgPT4ge1xuICAgICAgICAgIHRoaXMub25FcnJvcihlcnIpXG4gICAgICAgICAgdGhpcy5jbGVhckRhdGEoKVxuICAgICAgICAgIHRoaXMuc2V0VG90YWwoMClcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcih0aGlzLmlkICsgJzogRmFpbGVkIHRvIHF1ZXJ5IGRhdGEnLCBlcnIpXG4gICAgICAgICAgc3ViamVjdC5lcnJvcihlcnIpXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gc3ViamVjdC5waXBlKGZpcnN0KCkpXG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgZGF0YSBmcm9tIHRoZSBnaXZlbiBwYWdlIGludG8gdGhlIGN1cnJlbnQgZGF0YSBjb250ZXh0XG4gICAqL1xuICBwcml2YXRlIHBvcHVsYXRlUGFnZURhdGEocGFnZTogUGFnZTxUPiwgY2xlYXI6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zZXRUb3RhbChwYWdlLnRvdGFsRWxlbWVudHMpXG4gICAgICBjb25zdCBzdGFydCA9IHBhZ2UubnVtYmVyICogcGFnZS5zaXplXG4gICAgICBpZiAoY2xlYXIpIHtcbiAgICAgICAgdGhpcy5zZXREYXRhKHBhZ2UuY29udGVudClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaW5zZXJ0RGF0YShwYWdlLmNvbnRlbnQsIHN0YXJ0KVxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5vbkVycm9yKGVycilcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKHRoaXMuaWQgKyAnOiBGYWlsZWQgdG8gcG9wdWxhdGUgZGF0YSB3aXRoIHBhZ2UnLCBwYWdlLCBlcnIpXG4gICAgfVxuICB9XG59XG4iXX0=