@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,75 +0,0 @@
1
- import { Page } from '../../page';
2
- import { LocalListDataSource } from './local-list-data-source';
3
- import { map } from 'rxjs/operators';
4
- export class LocalPagedDataSource {
5
- /***************************************************************************
6
- * *
7
- * Static Builder *
8
- * *
9
- **************************************************************************/
10
- /**
11
- * Creates an empty local list data-source.
12
- * You can set / modify data by using the data property.
13
- * @param idProperty
14
- * @param localSort
15
- * @param localFilter
16
- */
17
- static empty(idProperty, localSort, localFilter) {
18
- return LocalPagedDataSource.of(LocalListDataSource.empty(idProperty, localSort, localFilter));
19
- }
20
- static of(listDataSource) {
21
- return new LocalPagedDataSource(listDataSource);
22
- }
23
- /***************************************************************************
24
- * *
25
- * Constructor *
26
- * *
27
- **************************************************************************/
28
- constructor(listDataSource) {
29
- if (!listDataSource) {
30
- throw new Error('listDataSource must not be null!');
31
- }
32
- this.localListFetcher = listDataSource;
33
- }
34
- /***************************************************************************
35
- * *
36
- * Public API *
37
- * *
38
- **************************************************************************/
39
- get dataChanged() {
40
- return this.localListFetcher.dataChanged;
41
- }
42
- findById(id) {
43
- return this.localListFetcher.findById(id);
44
- }
45
- findByIds(ids) {
46
- return this.localListFetcher.findByIds(ids);
47
- }
48
- findAllPaged(pageable, filters) {
49
- return this.localListFetcher
50
- .findAllFiltered(filters, pageable.sorts)
51
- .pipe(map((data) => this.pageSlice(pageable, data)));
52
- }
53
- getId(entity) {
54
- return this.localListFetcher.getId(entity);
55
- }
56
- /***************************************************************************
57
- * *
58
- * Private methods *
59
- * *
60
- **************************************************************************/
61
- pageSlice(pageable, data) {
62
- let page;
63
- if (data) {
64
- const start = pageable.page * pageable.size;
65
- const end = start + pageable.size;
66
- const slice = data.slice(start, end);
67
- page = Page.fromPage(slice, data.length, pageable);
68
- }
69
- else {
70
- page = Page.from([]);
71
- }
72
- return page;
73
- }
74
- }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtcGFnZWQtZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL2xvY2FsL2xvY2FsLXBhZ2VkLWRhdGEtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQVksTUFBTSxZQUFZLENBQUE7QUFHM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBS3BDLE1BQU0sT0FBTyxvQkFBb0I7SUFTL0I7Ozs7Z0ZBSTRFO0lBRTVFOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQ2pCLFVBQXlCLEVBQ3pCLFNBQTZDLEVBQzdDLFdBQW1EO1FBRW5ELE9BQU8sb0JBQW9CLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7SUFDL0YsQ0FBQztJQUVNLE1BQU0sQ0FBQyxFQUFFLENBQUksY0FBc0M7UUFDeEQsT0FBTyxJQUFJLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsWUFBWSxjQUFzQztRQUNoRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO1FBQ3JELENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsY0FBYyxDQUFBO0lBQ3hDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQTtJQUMxQyxDQUFDO0lBRU0sUUFBUSxDQUFDLEVBQU87UUFDckIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVTtRQUN6QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUVNLFlBQVksQ0FBQyxRQUFrQixFQUFFLE9BQWtCO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGdCQUFnQjthQUN6QixlQUFlLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUM7YUFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3hELENBQUM7SUFFTSxLQUFLLENBQUMsTUFBUztRQUNwQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVwRSxTQUFTLENBQUMsUUFBa0IsRUFBRSxJQUFTO1FBQzdDLElBQUksSUFBYSxDQUFBO1FBRWpCLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUE7WUFDM0MsTUFBTSxHQUFHLEdBQUcsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUE7WUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUE7WUFDcEMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDcEQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN0QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlLCBQYWdlYWJsZSB9IGZyb20gJy4uLy4uL3BhZ2UnXG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9maWx0ZXJzL2ZpbHRlcidcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgTG9jYWxMaXN0RGF0YVNvdXJjZSB9IGZyb20gJy4vbG9jYWwtbGlzdC1kYXRhLXNvdXJjZSdcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgU29ydCB9IGZyb20gJy4uLy4uL3NvcnQnXG5pbXBvcnQgeyBJUGFnZWREYXRhU291cmNlIH0gZnJvbSAnLi4vZGF0YS1zb3VyY2UnXG5pbXBvcnQgeyBEYXRhU291cmNlQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi9kYXRhLXNvdXJjZS1jaGFuZ2UtZXZlbnQnXG5cbmV4cG9ydCBjbGFzcyBMb2NhbFBhZ2VkRGF0YVNvdXJjZTxUPiBpbXBsZW1lbnRzIElQYWdlZERhdGFTb3VyY2U8VD4ge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsTGlzdEZldGNoZXI6IExvY2FsTGlzdERhdGFTb3VyY2U8VD5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogU3RhdGljIEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBlbXB0eSBsb2NhbCBsaXN0IGRhdGEtc291cmNlLlxuICAgKiBZb3UgY2FuIHNldCAvIG1vZGlmeSBkYXRhIGJ5IHVzaW5nIHRoZSBkYXRhIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gaWRQcm9wZXJ0eVxuICAgKiBAcGFyYW0gbG9jYWxTb3J0XG4gICAqIEBwYXJhbSBsb2NhbEZpbHRlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlbXB0eTxUPihcbiAgICBpZFByb3BlcnR5OiBzdHJpbmcgfCBudWxsLFxuICAgIGxvY2FsU29ydD86IChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXSxcbiAgICBsb2NhbEZpbHRlcj86IChkYXRhOiBUW10sIGZpbHRlcnM6IEZpbHRlcltdKSA9PiBUW11cbiAgKTogTG9jYWxQYWdlZERhdGFTb3VyY2U8VD4ge1xuICAgIHJldHVybiBMb2NhbFBhZ2VkRGF0YVNvdXJjZS5vZihMb2NhbExpc3REYXRhU291cmNlLmVtcHR5KGlkUHJvcGVydHksIGxvY2FsU29ydCwgbG9jYWxGaWx0ZXIpKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZjxUPihsaXN0RGF0YVNvdXJjZTogTG9jYWxMaXN0RGF0YVNvdXJjZTxUPik6IExvY2FsUGFnZWREYXRhU291cmNlPFQ+IHtcbiAgICByZXR1cm4gbmV3IExvY2FsUGFnZWREYXRhU291cmNlKGxpc3REYXRhU291cmNlKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IobGlzdERhdGFTb3VyY2U6IExvY2FsTGlzdERhdGFTb3VyY2U8VD4pIHtcbiAgICBpZiAoIWxpc3REYXRhU291cmNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2xpc3REYXRhU291cmNlIG11c3Qgbm90IGJlIG51bGwhJylcbiAgICB9XG4gICAgdGhpcy5sb2NhbExpc3RGZXRjaGVyID0gbGlzdERhdGFTb3VyY2VcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZGF0YUNoYW5nZWQoKTogT2JzZXJ2YWJsZTxEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbExpc3RGZXRjaGVyLmRhdGFDaGFuZ2VkXG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWQoaWQ6IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmxvY2FsTGlzdEZldGNoZXIuZmluZEJ5SWQoaWQpXG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWRzKGlkczogYW55W10pOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmxvY2FsTGlzdEZldGNoZXIuZmluZEJ5SWRzKGlkcylcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQWxsUGFnZWQocGFnZWFibGU6IFBhZ2VhYmxlLCBmaWx0ZXJzPzogRmlsdGVyW10pOiBPYnNlcnZhYmxlPFBhZ2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbExpc3RGZXRjaGVyXG4gICAgICAuZmluZEFsbEZpbHRlcmVkKGZpbHRlcnMsIHBhZ2VhYmxlLnNvcnRzKVxuICAgICAgLnBpcGUobWFwKChkYXRhKSA9PiB0aGlzLnBhZ2VTbGljZShwYWdlYWJsZSwgZGF0YSkpKVxuICB9XG5cbiAgcHVibGljIGdldElkKGVudGl0eTogVCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxMaXN0RmV0Y2hlci5nZXRJZChlbnRpdHkpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHBhZ2VTbGljZShwYWdlYWJsZTogUGFnZWFibGUsIGRhdGE6IFRbXSk6IFBhZ2U8VD4ge1xuICAgIGxldCBwYWdlOiBQYWdlPFQ+XG5cbiAgICBpZiAoZGF0YSkge1xuICAgICAgY29uc3Qgc3RhcnQgPSBwYWdlYWJsZS5wYWdlICogcGFnZWFibGUuc2l6ZVxuICAgICAgY29uc3QgZW5kID0gc3RhcnQgKyBwYWdlYWJsZS5zaXplXG4gICAgICBjb25zdCBzbGljZSA9IGRhdGEuc2xpY2Uoc3RhcnQsIGVuZClcbiAgICAgIHBhZ2UgPSBQYWdlLmZyb21QYWdlKHNsaWNlLCBkYXRhLmxlbmd0aCwgcGFnZWFibGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHBhZ2UgPSBQYWdlLmZyb20oW10pXG4gICAgfVxuICAgIHJldHVybiBwYWdlXG4gIH1cbn1cbiJdfQ==
@@ -1,58 +0,0 @@
1
- export class DeepPartialPatcher {
2
- /***************************************************************************
3
- * *
4
- * Public API *
5
- * *
6
- **************************************************************************/
7
- /**
8
- * All modified parts are deep cloned so the original is never modified.
9
- */
10
- static patchDeepClone(original, patch) {
11
- return this.mapReducePatch(original, patch);
12
- }
13
- /**
14
- * Returns a shallow copy of the original, but may modify nested objects.
15
- */
16
- static patchShallowCopy(original, patch) {
17
- const shallowCopy = { ...original };
18
- return this.patchOriginal(shallowCopy, patch);
19
- }
20
- /**
21
- * Modifies the original directly. Returns a reference to the original object.
22
- */
23
- static patchOriginal(original, patch) {
24
- const result = original;
25
- for (const key in patch) {
26
- if (patch[key] && typeof patch[key] === 'object' && !Array.isArray(patch[key])) {
27
- // Recursively apply patch for nested objects
28
- result[key] = DeepPartialPatcher.patchOriginal(result[key] ?? new Object(patch[key]), patch[key]);
29
- }
30
- else {
31
- // Apply patch for non-object fields
32
- result[key] = patch[key];
33
- }
34
- }
35
- return result;
36
- }
37
- /***************************************************************************
38
- * *
39
- * Private methods *
40
- * *
41
- **************************************************************************/
42
- static mapReducePatch(obj, pobj) {
43
- return Object.entries(obj).reduce((acc, [key, value]) => {
44
- if (!(key in pobj)) {
45
- return { ...acc, [key]: value }; // If key doesn't exist in pobj, copy the value from obj
46
- }
47
- if (typeof pobj[key] === 'object' && pobj[key] !== null && !Array.isArray(pobj[key])) {
48
- // If it's an object (but not an array), recursively apply rmap
49
- return { ...acc, [key]: this.mapReducePatch(obj[key], pobj[key]) };
50
- }
51
- else {
52
- // Otherwise, copy the value from pobj
53
- return { ...acc, [key]: pobj[key] };
54
- }
55
- }, {});
56
- }
57
- }
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1wYXJ0aWFsLXBhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL3BhdGNoL2RlZXAtcGFydGlhbC1wYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0I7Ozs7Z0ZBSTRFO0lBRTVFOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBSSxRQUFXLEVBQUUsS0FBMEI7UUFDckUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQU0sQ0FBQTtJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUksUUFBVyxFQUFFLEtBQTBCO1FBQ3ZFLE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQTtRQUNuQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUksUUFBVyxFQUFFLEtBQTBCO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQTtRQUV2QixLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3hCLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDL0UsNkNBQTZDO2dCQUM3QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUM1QyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ3JDLEtBQUssQ0FBQyxHQUFHLENBQWlDLENBQ3BDLENBQUE7WUFDVixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sb0NBQW9DO2dCQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBUSxDQUFBO1lBQ2pDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXBFLE1BQU0sQ0FBQyxjQUFjLENBQzNCLEdBQXdCLEVBQ3hCLElBQXlCO1FBRXpCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUEsQ0FBQyx3REFBd0Q7WUFDMUYsQ0FBQztZQUNELElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JGLCtEQUErRDtnQkFDL0QsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtZQUNwRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sc0NBQXNDO2dCQUN0QyxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQTtZQUNyQyxDQUFDO1FBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ1IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRGVlcFBhcnRpYWxQYXRjaDxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF0/OiBUW0tdIGV4dGVuZHMgb2JqZWN0ID8gRGVlcFBhcnRpYWxQYXRjaDxUW0tdPiA6IFRbS11cbn1cblxuZXhwb3J0IGNsYXNzIERlZXBQYXJ0aWFsUGF0Y2hlciB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBBbGwgbW9kaWZpZWQgcGFydHMgYXJlIGRlZXAgY2xvbmVkIHNvIHRoZSBvcmlnaW5hbCBpcyBuZXZlciBtb2RpZmllZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGF0Y2hEZWVwQ2xvbmU8VD4ob3JpZ2luYWw6IFQsIHBhdGNoOiBEZWVwUGFydGlhbFBhdGNoPFQ+KTogVCB7XG4gICAgcmV0dXJuIHRoaXMubWFwUmVkdWNlUGF0Y2gob3JpZ2luYWwsIHBhdGNoKSBhcyBUXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHNoYWxsb3cgY29weSBvZiB0aGUgb3JpZ2luYWwsIGJ1dCBtYXkgbW9kaWZ5IG5lc3RlZCBvYmplY3RzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXRjaFNoYWxsb3dDb3B5PFQ+KG9yaWdpbmFsOiBULCBwYXRjaDogRGVlcFBhcnRpYWxQYXRjaDxUPik6IFQge1xuICAgIGNvbnN0IHNoYWxsb3dDb3B5ID0geyAuLi5vcmlnaW5hbCB9XG4gICAgcmV0dXJuIHRoaXMucGF0Y2hPcmlnaW5hbChzaGFsbG93Q29weSwgcGF0Y2gpXG4gIH1cblxuICAvKipcbiAgICogTW9kaWZpZXMgdGhlIG9yaWdpbmFsIGRpcmVjdGx5LiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBvcmlnaW5hbCBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhdGNoT3JpZ2luYWw8VD4ob3JpZ2luYWw6IFQsIHBhdGNoOiBEZWVwUGFydGlhbFBhdGNoPFQ+KTogVCB7XG4gICAgY29uc3QgcmVzdWx0ID0gb3JpZ2luYWxcblxuICAgIGZvciAoY29uc3Qga2V5IGluIHBhdGNoKSB7XG4gICAgICBpZiAocGF0Y2hba2V5XSAmJiB0eXBlb2YgcGF0Y2hba2V5XSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkocGF0Y2hba2V5XSkpIHtcbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgYXBwbHkgcGF0Y2ggZm9yIG5lc3RlZCBvYmplY3RzXG4gICAgICAgIHJlc3VsdFtrZXldID0gRGVlcFBhcnRpYWxQYXRjaGVyLnBhdGNoT3JpZ2luYWwoXG4gICAgICAgICAgcmVzdWx0W2tleV0gPz8gbmV3IE9iamVjdChwYXRjaFtrZXldKSxcbiAgICAgICAgICBwYXRjaFtrZXldIGFzIERlZXBQYXJ0aWFsUGF0Y2g8VFtrZXlvZiBUXT5cbiAgICAgICAgKSBhcyBhbnlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFwcGx5IHBhdGNoIGZvciBub24tb2JqZWN0IGZpZWxkc1xuICAgICAgICByZXN1bHRba2V5XSA9IHBhdGNoW2tleV0gYXMgYW55XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzdGF0aWMgbWFwUmVkdWNlUGF0Y2goXG4gICAgb2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iaikucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaWYgKCEoa2V5IGluIHBvYmopKSB7XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgW2tleV06IHZhbHVlIH0gLy8gSWYga2V5IGRvZXNuJ3QgZXhpc3QgaW4gcG9iaiwgY29weSB0aGUgdmFsdWUgZnJvbSBvYmpcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgcG9ialtrZXldID09PSAnb2JqZWN0JyAmJiBwb2JqW2tleV0gIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkocG9ialtrZXldKSkge1xuICAgICAgICAvLyBJZiBpdCdzIGFuIG9iamVjdCAoYnV0IG5vdCBhbiBhcnJheSksIHJlY3Vyc2l2ZWx5IGFwcGx5IHJtYXBcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdGhpcy5tYXBSZWR1Y2VQYXRjaChvYmpba2V5XSwgcG9ialtrZXldKSB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2UsIGNvcHkgdGhlIHZhbHVlIGZyb20gcG9ialxuICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtrZXldOiBwb2JqW2tleV0gfVxuICAgICAgfVxuICAgIH0sIHt9KVxuICB9XG59XG4iXX0=
@@ -1,10 +0,0 @@
1
- export * from './data-source';
2
- export * from './data-source-base';
3
- export * from './data-source-adapter';
4
- export * from './data-source-processor';
5
- export * from './rest/public_api';
6
- export * from './local/local-list-data-source';
7
- export * from './local/local-paged-data-source';
8
- export * from './fetcher/delegate-data-source';
9
- export * from './data-source-change-event';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQTtBQUM3QixjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQTtBQUV2QyxjQUFjLG1CQUFtQixDQUFBO0FBRWpDLGNBQWMsZ0NBQWdDLENBQUE7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQTtBQUUvQyxjQUFjLGdDQUFnQyxDQUFBO0FBRTlDLGNBQWMsNEJBQTRCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGEtc291cmNlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXNvdXJjZS1iYXNlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXNvdXJjZS1hZGFwdGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXNvdXJjZS1wcm9jZXNzb3InXG5cbmV4cG9ydCAqIGZyb20gJy4vcmVzdC9wdWJsaWNfYXBpJ1xuXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsL2xvY2FsLWxpc3QtZGF0YS1zb3VyY2UnXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsL2xvY2FsLXBhZ2VkLWRhdGEtc291cmNlJ1xuXG5leHBvcnQgKiBmcm9tICcuL2ZldGNoZXIvZGVsZWdhdGUtZGF0YS1zb3VyY2UnXG5cbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1zb3VyY2UtY2hhbmdlLWV2ZW50J1xuIl19
@@ -1,2 +0,0 @@
1
- export * from './rest-client';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvcmVzdC9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXN0LWNsaWVudCdcbiJdfQ==
@@ -1,290 +0,0 @@
1
- import { EMPTY, forkJoin, of } from 'rxjs';
2
- import { expand, map, reduce, tap } from 'rxjs/operators';
3
- import { HttpParamsBuilder } from '../../http-params-builder';
4
- import { Filter } from '../../filters/filter';
5
- import { Pageable } from '../../page';
6
- import { LoggerFactory } from '@elderbyte/ts-logger';
7
- import { TokenChunkRequest } from '../../token-chunk-request';
8
- import { Batcher } from '../../../utils/batcher';
9
- import { DataSourceChangeEvent } from '../data-source-change-event';
10
- import { DataSourceBase } from '../data-source-base';
11
- export class InternalRestClientConfig {
12
- constructor(userConfig) {
13
- this.idField = 'id';
14
- this.idsParam = 'ids';
15
- if (userConfig) {
16
- if (userConfig.idField) {
17
- this.idField = userConfig.idField;
18
- }
19
- if (userConfig.idsParam) {
20
- this.idsParam = userConfig.idsParam;
21
- }
22
- }
23
- }
24
- }
25
- /**
26
- * Allows to customize the rest client
27
- */
28
- export class RestClientConfig {
29
- }
30
- export class RestClient extends DataSourceBase {
31
- /***************************************************************************
32
- * *
33
- * Constructor *
34
- * *
35
- **************************************************************************/
36
- constructor(restEndpoint, http, config) {
37
- super(new InternalRestClientConfig(config).idField);
38
- this.restEndpoint = restEndpoint;
39
- this.http = http;
40
- /***************************************************************************
41
- * *
42
- * Fields *
43
- * *
44
- **************************************************************************/
45
- this._logger = LoggerFactory.getLogger(this.constructor.name);
46
- this.config = new InternalRestClientConfig(config);
47
- }
48
- /***************************************************************************
49
- * *
50
- * Public API *
51
- * *
52
- **************************************************************************/
53
- findById(id, params) {
54
- if (id === undefined || id === null) {
55
- throw new Error('findById: id argument required!');
56
- }
57
- params = HttpParamsBuilder.start(params).build();
58
- return this.http.get(this.getEntityUrl(id), { params: params });
59
- }
60
- findByIds(ids, params) {
61
- if (ids === undefined || ids === null) {
62
- throw new Error('findByIds: ids array argument required!');
63
- }
64
- this._logger.warn('Very inefficient findByIds handling ' + ids.length);
65
- return forkJoin(ids.map((id) => this.findById(id, params)));
66
- }
67
- /**
68
- * Creates or Updates the given entity depending if it already has a valid id.
69
- */
70
- save(entity, params) {
71
- const id = this.getId(entity);
72
- return id ? this.update(entity, params) : this.create(entity, params);
73
- }
74
- create(newEntity, params) {
75
- return this.http
76
- .post(this.restEndpoint, newEntity, {
77
- params: params,
78
- })
79
- .pipe(tap((e) => this.publishChangeEvent(DataSourceChangeEvent.created([e]))));
80
- }
81
- update(update, params) {
82
- return this.http
83
- .put(this.getEntityUrlBy(update), update, {
84
- params: params,
85
- })
86
- .pipe(tap((e) => this.publishChangeEvent(DataSourceChangeEvent.modified([e]))));
87
- }
88
- updateAll(updatedEntities, params) {
89
- return this.http
90
- .put(this.restEndpoint, updatedEntities, {
91
- params: params,
92
- })
93
- .pipe(tap((entities) => this.publishChangeEvent(DataSourceChangeEvent.modified(entities))));
94
- }
95
- delete(entity, params) {
96
- return this.http
97
- .delete(this.getEntityUrlBy(entity), {
98
- responseType: 'text',
99
- params: params,
100
- })
101
- .pipe(tap(() => this.publishChangeEvent(DataSourceChangeEvent.deleted([this.getId(entity)]))));
102
- }
103
- deleteAll(entities, params) {
104
- const ids = entities.map((e) => String(this.getId(e)));
105
- const maxBatchSize = 100;
106
- const deleteRequests = Batcher.batchMap(ids, maxBatchSize, (batch) => this.deleteIdBatch(batch, params));
107
- this._logger.debug('Deleting ' + entities.length + ' in ' + deleteRequests.length + ' batches: ', deleteRequests);
108
- return forkJoin(deleteRequests);
109
- }
110
- /***************************************************************************
111
- * *
112
- * Sub Resource Builder *
113
- * *
114
- **************************************************************************/
115
- subResourceList(parent, subPath, config) {
116
- return new RestClientList(this.getEntityUrlBy(parent) + '/' + subPath, this.http, config);
117
- }
118
- subResourcePaged(parent, subPath, config) {
119
- return new RestClientPaged(this.getEntityUrlBy(parent) + '/' + subPath, this.http, config);
120
- }
121
- subResourceContinuable(parent, subPath, config) {
122
- return new RestClientContinuable(this.getEntityUrlBy(parent) + '/' + subPath, this.http, config);
123
- }
124
- /***************************************************************************
125
- * *
126
- * Protected methods *
127
- * *
128
- **************************************************************************/
129
- patchInternal(id, entityPatch, params) {
130
- return this.http
131
- .patch(this.getEntityUrl(id), entityPatch, {
132
- params: params,
133
- })
134
- .pipe(tap((e) => this.publishChangeEvent(DataSourceChangeEvent.modified([e]))));
135
- }
136
- patchAllInternal(entityPatches, params) {
137
- return this.http
138
- .patch(this.restEndpoint, entityPatches, {
139
- params: params,
140
- })
141
- .pipe(tap((e) => this.publishChangeEvent(DataSourceChangeEvent.modified(e))));
142
- }
143
- /**
144
- * @deprecated Switch to publishChangeEvent
145
- */
146
- onLocalChanged(entity) {
147
- this.publishChangeEvent(DataSourceChangeEvent.unknownChanges());
148
- }
149
- getEntityUrlBy(entity) {
150
- return this.getEntityUrl(this.getId(entity));
151
- }
152
- getEntityUrl(id) {
153
- return this.restEndpoint + '/' + id;
154
- }
155
- /***************************************************************************
156
- * *
157
- * Private methods *
158
- * *
159
- **************************************************************************/
160
- /**
161
- * Deletes the given ids in a batch call.
162
- * Note that due HTTP Request URI limitations,
163
- * the number of ids that can be deleted in a single batch is
164
- * limited (around 150, depending on id length, since they are
165
- * part of the request uri parameters.
166
- */
167
- deleteIdBatch(ids, params) {
168
- const builder = HttpParamsBuilder.start(params);
169
- builder.appendFilter(new Filter(this.config.idsParam, ids));
170
- return this.http
171
- .delete(this.restEndpoint, {
172
- params: builder.build(),
173
- responseType: 'text',
174
- })
175
- .pipe(tap(() => this.publishChangeEvent(DataSourceChangeEvent.deleted(ids))));
176
- }
177
- }
178
- export class RestClientList extends RestClient {
179
- /***************************************************************************
180
- * *
181
- * Constructor *
182
- * *
183
- **************************************************************************/
184
- constructor(restEndpoint, http, config) {
185
- super(restEndpoint, http, config);
186
- }
187
- /***************************************************************************
188
- * *
189
- * Public API *
190
- * *
191
- **************************************************************************/
192
- findAllFiltered(filters, sorts, params) {
193
- return this.findAll(HttpParamsBuilder.start(params).appendFilters(filters).appendSorts(sorts).build());
194
- }
195
- findByIds(ids, params) {
196
- if (ids?.length > 0) {
197
- return this.findAllFiltered([new Filter(this.config.idsParam, ids)], [], params);
198
- }
199
- else {
200
- return of([]);
201
- }
202
- }
203
- findAll(params) {
204
- return this.http.get(this.restEndpoint, {
205
- params: params,
206
- });
207
- }
208
- }
209
- export class RestClientPaged extends RestClient {
210
- /***************************************************************************
211
- * *
212
- * Constructor *
213
- * *
214
- **************************************************************************/
215
- constructor(restEndpoint, http, config) {
216
- super(restEndpoint, http, config);
217
- }
218
- /***************************************************************************
219
- * *
220
- * Public API *
221
- * *
222
- **************************************************************************/
223
- findAllPaged(pageable, filters, params) {
224
- return this.getPaged(this.restEndpoint, pageable, filters, params);
225
- }
226
- findByIds(ids, params) {
227
- if (ids?.length > 0) {
228
- return this.findAllPaged(new Pageable(0, ids.length), [new Filter(this.config.idsParam, ids)], params).pipe(map((page) => page.content));
229
- }
230
- else {
231
- return of([]);
232
- }
233
- }
234
- /***************************************************************************
235
- * *
236
- * Private methods *
237
- * *
238
- **************************************************************************/
239
- /**
240
- * Gets the requested data page as Page<T>
241
- * @param url The resource url
242
- * @param pageable The page request
243
- * @param filters The filtersSnapshot request
244
- * @param params Additional parameters
245
- */
246
- getPaged(url, pageable, filters, params) {
247
- params = HttpParamsBuilder.start(params).appendPageable(pageable).appendFilters(filters).build();
248
- return this.http.get(url, { params: params });
249
- }
250
- }
251
- export class RestClientContinuable extends RestClient {
252
- /***************************************************************************
253
- * *
254
- * Constructor *
255
- * *
256
- **************************************************************************/
257
- constructor(restEndpoint, http, config) {
258
- super(restEndpoint, http, config);
259
- }
260
- /***************************************************************************
261
- * *
262
- * Public API *
263
- * *
264
- **************************************************************************/
265
- findAllContinuable(request, params) {
266
- return this.http.get(this.restEndpoint, {
267
- params: HttpParamsBuilder.start(params).appendContinuationRequest(request).build(),
268
- });
269
- }
270
- findByIds(ids, params) {
271
- if (ids?.length > 0) {
272
- return this.loadAll([new Filter(this.config.idsParam, ids)], [], params);
273
- }
274
- else {
275
- return of([]);
276
- }
277
- }
278
- loadAll(filters, sorts, params) {
279
- return this.findAllContinuable(new TokenChunkRequest(null, filters, sorts), params).pipe(expand((listing) => {
280
- // the previous "listing" -> This is recursive
281
- return listing.nextContinuationToken // if there's "nextContinuationToken", we refetch or we EMPTY to complete the "expand()"
282
- ? this.findAllContinuable(new TokenChunkRequest(listing.nextContinuationToken, filters, sorts), params)
283
- : EMPTY;
284
- }), map((listing) => listing.content), reduce((agg, listing) => {
285
- agg.push(...listing);
286
- return agg;
287
- }, []));
288
- }
289
- }
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL3Jlc3QvcmVzdC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUU3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDN0MsT0FBTyxFQUFRLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFPN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUVwRCxNQUFNLE9BQU8sd0JBQXdCO0lBSW5DLFlBQVksVUFBNkI7UUFIbEMsWUFBTyxHQUFHLElBQUksQ0FBQTtRQUNkLGFBQVEsR0FBRyxLQUFLLENBQUE7UUFHckIsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUE7WUFDbkMsQ0FBQztZQUNELElBQUks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QUM7WUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDMUUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNmLENBQUM7SUFDSCxDQUFDO0lBRU8sT0FBTyxDQUFDLE9BQWtCLEVBQUUsS0FBYyxFQUFFLE1BQW1CO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksaUJBQWlCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3RGLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2pCLDhDQUE4QztZQUM5QyxPQUFPLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyx3RkFBd0Y7Z0JBQzNILENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQ3JCLElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFDcEUsTUFBTSxDQUNQO2dCQUNILENBQUMsQ0FBQyxLQUFLLENBQUE7UUFDWCxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFDakMsTUFBTSxDQUNKLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ2YsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFBO1lBQ3BCLE9BQU8sR0FBRyxDQUFBO1FBQ1osQ0FBQyxFQUNJLEVBQUUsQ0FDUixDQUNGLENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBFTVBUWSwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGV4cGFuZCwgbWFwLCByZWR1Y2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgSHR0cFBhcmFtc0J1aWxkZXIgfSBmcm9tICcuLi8uLi9odHRwLXBhcmFtcy1idWlsZGVyJ1xuaW1wb3J0IHsgU29ydCB9IGZyb20gJy4uLy4uL3NvcnQnXG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9maWx0ZXJzL2ZpbHRlcidcbmltcG9ydCB7IFBhZ2UsIFBhZ2VhYmxlIH0gZnJvbSAnLi4vLi4vcGFnZSdcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7IENvbnRpbnVhYmxlTGlzdGluZyB9IGZyb20gJy4uLy4uL2NvbnRpbnVhYmxlLWxpc3RpbmcnXG5pbXBvcnQgeyBUb2tlbkNodW5rUmVxdWVzdCB9IGZyb20gJy4uLy4uL3Rva2VuLWNodW5rLXJlcXVlc3QnXG5pbXBvcnQge1xuICBJQ29udGludWFibGVEYXRhU291cmNlLFxuICBJRGF0YVNvdXJjZSxcbiAgSUxpc3REYXRhU291cmNlLFxuICBJUGFnZWREYXRhU291cmNlLFxufSBmcm9tICcuLi9kYXRhLXNvdXJjZSdcbmltcG9ydCB7IEJhdGNoZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9iYXRjaGVyJ1xuaW1wb3J0IHsgRGF0YVNvdXJjZUNoYW5nZUV2ZW50IH0gZnJvbSAnLi4vZGF0YS1zb3VyY2UtY2hhbmdlLWV2ZW50J1xuaW1wb3J0IHsgRGF0YVNvdXJjZUJhc2UgfSBmcm9tICcuLi9kYXRhLXNvdXJjZS1iYXNlJ1xuXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnIHtcbiAgcHVibGljIGlkRmllbGQgPSAnaWQnXG4gIHB1YmxpYyBpZHNQYXJhbSA9ICdpZHMnXG5cbiAgY29uc3RydWN0b3IodXNlckNvbmZpZz86IFJlc3RDbGllbnRDb25maWcpIHtcbiAgICBpZiAodXNlckNvbmZpZykge1xuICAgICAgaWYgKHVzZXJDb25maWcuaWRGaWVsZCkge1xuICAgICAgICB0aGlzLmlkRmllbGQgPSB1c2VyQ29uZmlnLmlkRmllbGRcbiAgICAgIH1cbiAgICAgIGlmICh1c2VyQ29uZmlnLmlkc1BhcmFtKSB7XG4gICAgICAgIHRoaXMuaWRzUGFyYW0gPSB1c2VyQ29uZmlnLmlkc1BhcmFtXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQWxsb3dzIHRvIGN1c3RvbWl6ZSB0aGUgcmVzdCBjbGllbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc3RDbGllbnRDb25maWcge1xuICAvKipcbiAgICogVGhlIGZpZWxkIHRvIHVzZSBhcyBpZC4gRGVmYXVsdHMgdG8gJ2lkJy5cbiAgICovXG4gIHB1YmxpYyBpZEZpZWxkPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFRoZSBxdWVyeSBwYXJhbSB0byB1c2UgZm9yIG11bHRpcGxlIGlkcy4gRGVmYXVsdHMgdG8gJ2lkcydcbiAgICovXG4gIHB1YmxpYyBpZHNQYXJhbT86IHN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudDxULCBUSUQ+IGV4dGVuZHMgRGF0YVNvdXJjZUJhc2U8VD4gaW1wbGVtZW50cyBJRGF0YVNvdXJjZTxUPiB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZzogSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlc3RFbmRwb2ludDogc3RyaW5nLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWdcbiAgKSB7XG4gICAgc3VwZXIobmV3IEludGVybmFsUmVzdENsaWVudENvbmZpZyhjb25maWcpLmlkRmllbGQpXG4gICAgdGhpcy5jb25maWcgPSBuZXcgSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnKGNvbmZpZylcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBmaW5kQnlJZChpZDogVElELCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgaWYgKGlkID09PSB1bmRlZmluZWQgfHwgaWQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZmluZEJ5SWQ6IGlkIGFyZ3VtZW50IHJlcXVpcmVkIScpXG4gICAgfVxuICAgIHBhcmFtcyA9IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcykuYnVpbGQoKVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHRoaXMuZ2V0RW50aXR5VXJsKGlkKSwgeyBwYXJhbXM6IHBhcmFtcyB9KVxuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBpZiAoaWRzID09PSB1bmRlZmluZWQgfHwgaWRzID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZpbmRCeUlkczogaWRzIGFycmF5IGFyZ3VtZW50IHJlcXVpcmVkIScpXG4gICAgfVxuICAgIHRoaXMuX2xvZ2dlci53YXJuKCdWZXJ5IGluZWZmaWNpZW50IGZpbmRCeUlkcyBoYW5kbGluZyAnICsgaWRzLmxlbmd0aClcbiAgICByZXR1cm4gZm9ya0pvaW4oaWRzLm1hcCgoaWQpID0+IHRoaXMuZmluZEJ5SWQoaWQsIHBhcmFtcykpKVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgb3IgVXBkYXRlcyB0aGUgZ2l2ZW4gZW50aXR5IGRlcGVuZGluZyBpZiBpdCBhbHJlYWR5IGhhcyBhIHZhbGlkIGlkLlxuICAgKi9cbiAgcHVibGljIHNhdmUoZW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmdldElkKGVudGl0eSlcbiAgICByZXR1cm4gaWQgPyB0aGlzLnVwZGF0ZShlbnRpdHksIHBhcmFtcykgOiB0aGlzLmNyZWF0ZShlbnRpdHksIHBhcmFtcylcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGU8VEMgPSBUPihuZXdFbnRpdHk6IFRDLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8VD4odGhpcy5yZXN0RW5kcG9pbnQsIG5ld0VudGl0eSwge1xuICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIH0pXG4gICAgICAucGlwZSh0YXAoKGUpID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC5jcmVhdGVkKFtlXSkpKSlcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGU8VEVudGl0eVVwZGF0ZT4odXBkYXRlOiBURW50aXR5VXBkYXRlLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnB1dDxUPih0aGlzLmdldEVudGl0eVVybEJ5KDxUPig8dW5rbm93bj51cGRhdGUpKSwgdXBkYXRlLCB7XG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHRhcCgoZSkgPT4gdGhpcy5wdWJsaXNoQ2hhbmdlRXZlbnQoRGF0YVNvdXJjZUNoYW5nZUV2ZW50Lm1vZGlmaWVkKFtlXSkpKSlcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBbGw8VEVudGl0eVVwZGF0ZT4oXG4gICAgdXBkYXRlZEVudGl0aWVzOiBURW50aXR5VXBkYXRlW10sXG4gICAgcGFyYW1zPzogSHR0cFBhcmFtc1xuICApOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wdXQ8VFtdPih0aGlzLnJlc3RFbmRwb2ludCwgdXBkYXRlZEVudGl0aWVzLCB7XG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHRhcCgoZW50aXRpZXMpID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC5tb2RpZmllZChlbnRpdGllcykpKSlcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUoZW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZGVsZXRlKHRoaXMuZ2V0RW50aXR5VXJsQnkoZW50aXR5KSwge1xuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICB9KVxuICAgICAgLnBpcGUodGFwKCgpID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC5kZWxldGVkKFt0aGlzLmdldElkKGVudGl0eSldKSkpKVxuICB9XG5cbiAgcHVibGljIGRlbGV0ZUFsbChlbnRpdGllczogVFtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBpZHMgPSBlbnRpdGllcy5tYXAoKGUpID0+IFN0cmluZyh0aGlzLmdldElkKGUpKSlcblxuICAgIGNvbnN0IG1heEJhdGNoU2l6ZSA9IDEwMFxuICAgIGNvbnN0IGRlbGV0ZVJlcXVlc3RzID0gQmF0Y2hlci5iYXRjaE1hcChpZHMsIG1heEJhdGNoU2l6ZSwgKGJhdGNoKSA9PlxuICAgICAgdGhpcy5kZWxldGVJZEJhdGNoKGJhdGNoLCBwYXJhbXMpXG4gICAgKVxuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZyhcbiAgICAgICdEZWxldGluZyAnICsgZW50aXRpZXMubGVuZ3RoICsgJyBpbiAnICsgZGVsZXRlUmVxdWVzdHMubGVuZ3RoICsgJyBiYXRjaGVzOiAnLFxuICAgICAgZGVsZXRlUmVxdWVzdHNcbiAgICApXG4gICAgcmV0dXJuIGZvcmtKb2luKGRlbGV0ZVJlcXVlc3RzKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN1YiBSZXNvdXJjZSBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN1YlJlc291cmNlTGlzdDxUUywgVFNJRD4oXG4gICAgcGFyZW50OiBULFxuICAgIHN1YlBhdGg6IHN0cmluZyxcbiAgICBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnXG4gICk6IFJlc3RDbGllbnRMaXN0PFRTLCBUU0lEPiB7XG4gICAgcmV0dXJuIG5ldyBSZXN0Q2xpZW50TGlzdCh0aGlzLmdldEVudGl0eVVybEJ5KHBhcmVudCkgKyAnLycgKyBzdWJQYXRoLCB0aGlzLmh0dHAsIGNvbmZpZylcbiAgfVxuXG4gIHB1YmxpYyBzdWJSZXNvdXJjZVBhZ2VkPFRTLCBUU0lEPihcbiAgICBwYXJlbnQ6IFQsXG4gICAgc3ViUGF0aDogc3RyaW5nLFxuICAgIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWdcbiAgKTogUmVzdENsaWVudFBhZ2VkPFRTLCBUU0lEPiB7XG4gICAgcmV0dXJuIG5ldyBSZXN0Q2xpZW50UGFnZWQodGhpcy5nZXRFbnRpdHlVcmxCeShwYXJlbnQpICsgJy8nICsgc3ViUGF0aCwgdGhpcy5odHRwLCBjb25maWcpXG4gIH1cblxuICBwdWJsaWMgc3ViUmVzb3VyY2VDb250aW51YWJsZTxUUywgVFNJRD4oXG4gICAgcGFyZW50OiBULFxuICAgIHN1YlBhdGg6IHN0cmluZyxcbiAgICBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnXG4gICk6IFJlc3RDbGllbnRDb250aW51YWJsZTxUUywgVFNJRD4ge1xuICAgIHJldHVybiBuZXcgUmVzdENsaWVudENvbnRpbnVhYmxlKHRoaXMuZ2V0RW50aXR5VXJsQnkocGFyZW50KSArICcvJyArIHN1YlBhdGgsIHRoaXMuaHR0cCwgY29uZmlnKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3RlY3RlZCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIHBhdGNoSW50ZXJuYWw8UD4oaWQ6IFRJRCwgZW50aXR5UGF0Y2g6IFAsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucGF0Y2g8VD4odGhpcy5nZXRFbnRpdHlVcmwoaWQpLCBlbnRpdHlQYXRjaCwge1xuICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIH0pXG4gICAgICAucGlwZSh0YXAoKGUpID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC5tb2RpZmllZChbZV0pKSkpXG4gIH1cblxuICBwcm90ZWN0ZWQgcGF0Y2hBbGxJbnRlcm5hbDxQPihlbnRpdHlQYXRjaGVzOiBQW10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wYXRjaDxUW10+KHRoaXMucmVzdEVuZHBvaW50LCBlbnRpdHlQYXRjaGVzLCB7XG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHRhcCgoZSkgPT4gdGhpcy5wdWJsaXNoQ2hhbmdlRXZlbnQoRGF0YVNvdXJjZUNoYW5nZUV2ZW50Lm1vZGlmaWVkKGUpKSkpXG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgU3dpdGNoIHRvIHB1Ymxpc2hDaGFuZ2VFdmVudFxuICAgKi9cbiAgcHJvdGVjdGVkIG9uTG9jYWxDaGFuZ2VkKGVudGl0eT86IFQpOiB2b2lkIHtcbiAgICB0aGlzLnB1Ymxpc2hDaGFuZ2VFdmVudChEYXRhU291cmNlQ2hhbmdlRXZlbnQudW5rbm93bkNoYW5nZXMoKSlcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRFbnRpdHlVcmxCeShlbnRpdHk6IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEVudGl0eVVybCh0aGlzLmdldElkKGVudGl0eSkpXG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RW50aXR5VXJsKGlkOiBUSUQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc3RFbmRwb2ludCArICcvJyArIGlkXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogRGVsZXRlcyB0aGUgZ2l2ZW4gaWRzIGluIGEgYmF0Y2ggY2FsbC5cbiAgICogTm90ZSB0aGF0IGR1ZSBIVFRQIFJlcXVlc3QgVVJJIGxpbWl0YXRpb25zLFxuICAgKiB0aGUgbnVtYmVyIG9mIGlkcyB0aGF0IGNhbiBiZSBkZWxldGVkIGluIGEgc2luZ2xlIGJhdGNoIGlzXG4gICAqIGxpbWl0ZWQgKGFyb3VuZCAxNTAsIGRlcGVuZGluZyBvbiBpZCBsZW5ndGgsIHNpbmNlIHRoZXkgYXJlXG4gICAqIHBhcnQgb2YgdGhlIHJlcXVlc3QgdXJpIHBhcmFtZXRlcnMuXG4gICAqL1xuICBwcml2YXRlIGRlbGV0ZUlkQmF0Y2goaWRzOiBzdHJpbmdbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgYnVpbGRlciA9IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcylcbiAgICBidWlsZGVyLmFwcGVuZEZpbHRlcihuZXcgRmlsdGVyKHRoaXMuY29uZmlnLmlkc1BhcmFtLCBpZHMpKVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5kZWxldGUodGhpcy5yZXN0RW5kcG9pbnQsIHtcbiAgICAgICAgcGFyYW1zOiBidWlsZGVyLmJ1aWxkKCksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHRhcCgoKSA9PiB0aGlzLnB1Ymxpc2hDaGFuZ2VFdmVudChEYXRhU291cmNlQ2hhbmdlRXZlbnQuZGVsZXRlZChpZHMpKSkpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlc3RDbGllbnRMaXN0PFQsIFRJRD4gZXh0ZW5kcyBSZXN0Q2xpZW50PFQsIFRJRD4gaW1wbGVtZW50cyBJTGlzdERhdGFTb3VyY2U8VD4ge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihyZXN0RW5kcG9pbnQ6IHN0cmluZywgaHR0cDogSHR0cENsaWVudCwgY29uZmlnPzogUmVzdENsaWVudENvbmZpZykge1xuICAgIHN1cGVyKHJlc3RFbmRwb2ludCwgaHR0cCwgY29uZmlnKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGZpbmRBbGxGaWx0ZXJlZChmaWx0ZXJzPzogRmlsdGVyW10sIHNvcnRzPzogU29ydFtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5maW5kQWxsKFxuICAgICAgSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKS5hcHBlbmRGaWx0ZXJzKGZpbHRlcnMpLmFwcGVuZFNvcnRzKHNvcnRzKS5idWlsZCgpXG4gICAgKVxuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBpZiAoaWRzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5maW5kQWxsRmlsdGVyZWQoW25ldyBGaWx0ZXIodGhpcy5jb25maWcuaWRzUGFyYW0sIGlkcyldLCBbXSwgcGFyYW1zKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YoW10pXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbmRBbGwocGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VFtdPih0aGlzLnJlc3RFbmRwb2ludCwge1xuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgfSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudFBhZ2VkPFQsIFRJRD4gZXh0ZW5kcyBSZXN0Q2xpZW50PFQsIFRJRD4gaW1wbGVtZW50cyBJUGFnZWREYXRhU291cmNlPFQ+IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IocmVzdEVuZHBvaW50OiBzdHJpbmcsIGh0dHA6IEh0dHBDbGllbnQsIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWcpIHtcbiAgICBzdXBlcihyZXN0RW5kcG9pbnQsIGh0dHAsIGNvbmZpZylcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBmaW5kQWxsUGFnZWQoXG4gICAgcGFnZWFibGU6IFBhZ2VhYmxlLFxuICAgIGZpbHRlcnM/OiBGaWx0ZXJbXSxcbiAgICBwYXJhbXM/OiBIdHRwUGFyYW1zXG4gICk6IE9ic2VydmFibGU8UGFnZTxUPj4ge1xuICAgIHJldHVybiB0aGlzLmdldFBhZ2VkKHRoaXMucmVzdEVuZHBvaW50LCBwYWdlYWJsZSwgZmlsdGVycywgcGFyYW1zKVxuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBpZiAoaWRzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5maW5kQWxsUGFnZWQoXG4gICAgICAgIG5ldyBQYWdlYWJsZSgwLCBpZHMubGVuZ3RoKSxcbiAgICAgICAgW25ldyBGaWx0ZXIodGhpcy5jb25maWcuaWRzUGFyYW0sIGlkcyldLFxuICAgICAgICBwYXJhbXNcbiAgICAgICkucGlwZShtYXAoKHBhZ2UpID0+IHBhZ2UuY29udGVudCkpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihbXSlcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogR2V0cyB0aGUgcmVxdWVzdGVkIGRhdGEgcGFnZSBhcyBQYWdlPFQ+XG4gICAqIEBwYXJhbSB1cmwgVGhlIHJlc291cmNlIHVybFxuICAgKiBAcGFyYW0gcGFnZWFibGUgVGhlIHBhZ2UgcmVxdWVzdFxuICAgKiBAcGFyYW0gZmlsdGVycyBUaGUgZmlsdGVyc1NuYXBzaG90IHJlcXVlc3RcbiAgICogQHBhcmFtIHBhcmFtcyBBZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAgICovXG4gIHByaXZhdGUgZ2V0UGFnZWQoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgcGFnZWFibGU6IFBhZ2VhYmxlLFxuICAgIGZpbHRlcnM/OiBGaWx0ZXJbXSxcbiAgICBwYXJhbXM/OiBIdHRwUGFyYW1zXG4gICk6IE9ic2VydmFibGU8UGFnZTxUPj4ge1xuICAgIHBhcmFtcyA9IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcykuYXBwZW5kUGFnZWFibGUocGFnZWFibGUpLmFwcGVuZEZpbHRlcnMoZmlsdGVycykuYnVpbGQoKVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBhZ2U8VD4+KHVybCwgeyBwYXJhbXM6IHBhcmFtcyB9KVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXN0Q2xpZW50Q29udGludWFibGU8VCwgVElEPlxuICBleHRlbmRzIFJlc3RDbGllbnQ8VCwgVElEPlxuICBpbXBsZW1lbnRzIElDb250aW51YWJsZURhdGFTb3VyY2U8VD5cbntcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IocmVzdEVuZHBvaW50OiBzdHJpbmcsIGh0dHA6IEh0dHBDbGllbnQsIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWcpIHtcbiAgICBzdXBlcihyZXN0RW5kcG9pbnQsIGh0dHAsIGNvbmZpZylcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBmaW5kQWxsQ29udGludWFibGUoXG4gICAgcmVxdWVzdDogVG9rZW5DaHVua1JlcXVlc3QsXG4gICAgcGFyYW1zPzogSHR0cFBhcmFtc1xuICApOiBPYnNlcnZhYmxlPENvbnRpbnVhYmxlTGlzdGluZzxUPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENvbnRpbnVhYmxlTGlzdGluZzxUPj4odGhpcy5yZXN0RW5kcG9pbnQsIHtcbiAgICAgIHBhcmFtczogSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKS5hcHBlbmRDb250aW51YXRpb25SZXF1ZXN0KHJlcXVlc3QpLmJ1aWxkKCksXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJZHMoaWRzOiBhbnlbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgaWYgKGlkcz8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMubG9hZEFsbChbbmV3IEZpbHRlcih0aGlzLmNvbmZpZy5pZHNQYXJhbSwgaWRzKV0sIFtdLCBwYXJhbXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihbXSlcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRBbGwoZmlsdGVycz86IEZpbHRlcltdLCBzb3J0cz86IFNvcnRbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZmluZEFsbENvbnRpbnVhYmxlKG5ldyBUb2tlbkNodW5rUmVxdWVzdChudWxsLCBmaWx0ZXJzLCBzb3J0cyksIHBhcmFtcykucGlwZShcbiAgICAgIGV4cGFuZCgobGlzdGluZykgPT4ge1xuICAgICAgICAvLyB0aGUgcHJldmlvdXMgXCJsaXN0aW5nXCIgLT4gVGhpcyBpcyByZWN1cnNpdmVcbiAgICAgICAgcmV0dXJuIGxpc3RpbmcubmV4dENvbnRpbnVhdGlvblRva2VuIC8vIGlmIHRoZXJlJ3MgXCJuZXh0Q29udGludWF0aW9uVG9rZW5cIiwgd2UgcmVmZXRjaCBvciB3ZSBFTVBUWSB0byBjb21wbGV0ZSB0aGUgXCJleHBhbmQoKVwiXG4gICAgICAgICAgPyB0aGlzLmZpbmRBbGxDb250aW51YWJsZShcbiAgICAgICAgICAgICAgbmV3IFRva2VuQ2h1bmtSZXF1ZXN0KGxpc3RpbmcubmV4dENvbnRpbnVhdGlvblRva2VuLCBmaWx0ZXJzLCBzb3J0cyksXG4gICAgICAgICAgICAgIHBhcmFtc1xuICAgICAgICAgICAgKVxuICAgICAgICAgIDogRU1QVFlcbiAgICAgIH0pLFxuICAgICAgbWFwKChsaXN0aW5nKSA9PiBsaXN0aW5nLmNvbnRlbnQpLFxuICAgICAgcmVkdWNlKFxuICAgICAgICAoYWdnLCBsaXN0aW5nKSA9PiB7XG4gICAgICAgICAgYWdnLnB1c2goLi4ubGlzdGluZylcbiAgICAgICAgICByZXR1cm4gYWdnXG4gICAgICAgIH0sXG4gICAgICAgIDxUW10+W11cbiAgICAgIClcbiAgICApXG4gIH1cbn1cbiJdfQ==