@elderbyte/ngx-starter 18.15.2 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. package/fesm2022/elderbyte-ngx-starter.mjs +1097 -1125
  2. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  3. package/lib/common/forms/elder-form-field-control-base.directive.d.ts +1 -1
  4. package/lib/common/forms/elder-from-field-base.d.ts +1 -1
  5. package/lib/common/forms/elder-from-field-customizable-base.d.ts +1 -1
  6. package/lib/common/forms/elder-from-field-entity-base.d.ts +1 -1
  7. package/lib/common/forms/elder-from-field-multi-entity-base.d.ts +1 -1
  8. package/lib/common/forms/form-field-base.component.d.ts +1 -1
  9. package/lib/common/forms/multi-model-base.component.d.ts +1 -1
  10. package/lib/common/forms/template-composite-control.d.ts +1 -1
  11. package/lib/common/forms/value-accessor-base.d.ts +1 -1
  12. package/lib/common/reactive-map.d.ts +1 -1
  13. package/lib/components/data-view/base/elder-data-view-base.d.ts +1 -1
  14. package/lib/components/forms/directives/base/elder-class-hostbinding-base.d.ts +1 -1
  15. package/lib/components/iframes/typed-event-message.d.ts +1 -1
  16. package/lib/components/panels/elder-panel.module.d.ts +5 -7
  17. package/lib/components/select/elder-select-base.d.ts +1 -1
  18. package/lib/components/select/multi/elder-multi-select-base.d.ts +1 -1
  19. package/lib/components/select/multi/elder-multi-select-form-field.d.ts +1 -1
  20. package/lib/components/select/single/elder-select-form-field.d.ts +1 -1
  21. package/package.json +6 -8
  22. package/src/lib/components/errors/exception-detail/elder-exception-detail.component.scss +2 -3
  23. package/src/lib/components/shell/header/elder-app-header/elder-app-header.component.scss +3 -0
  24. package/esm2022/elderbyte-ngx-starter.mjs +0 -5
  25. package/esm2022/lib/common/arrays.mjs +0 -29
  26. package/esm2022/lib/common/async/public_api.mjs +0 -2
  27. package/esm2022/lib/common/async/refreshing-entity.mjs +0 -88
  28. package/esm2022/lib/common/csv/csv-serializer.mjs +0 -55
  29. package/esm2022/lib/common/csv/csv-spec.mjs +0 -99
  30. package/esm2022/lib/common/csv/public_api.mjs +0 -3
  31. package/esm2022/lib/common/data/continuable-listing.mjs +0 -10
  32. package/esm2022/lib/common/data/data-context/data-context-active-page.mjs +0 -131
  33. package/esm2022/lib/common/data/data-context/data-context-auto-starter.mjs +0 -78
  34. package/esm2022/lib/common/data/data-context/data-context-base.mjs +0 -339
  35. package/esm2022/lib/common/data/data-context/data-context-builder.mjs +0 -245
  36. package/esm2022/lib/common/data/data-context/data-context-continuable-base.mjs +0 -67
  37. package/esm2022/lib/common/data/data-context/data-context-continuable-paged.mjs +0 -142
  38. package/esm2022/lib/common/data/data-context/data-context-continuable-token.mjs +0 -146
  39. package/esm2022/lib/common/data/data-context/data-context-life-cycle-binding.mjs +0 -32
  40. package/esm2022/lib/common/data/data-context/data-context-simple.mjs +0 -61
  41. package/esm2022/lib/common/data/data-context/data-context-source-event-binding.mjs +0 -63
  42. package/esm2022/lib/common/data/data-context/data-context-status.mjs +0 -46
  43. package/esm2022/lib/common/data/data-context/data-context.mjs +0 -30
  44. package/esm2022/lib/common/data/data-context/indexed-entities.mjs +0 -153
  45. package/esm2022/lib/common/data/data-context/mat-table-data-context-binding.mjs +0 -145
  46. package/esm2022/lib/common/data/data-context/public_api.mjs +0 -15
  47. package/esm2022/lib/common/data/datasource/data-source-adapter.mjs +0 -59
  48. package/esm2022/lib/common/data/datasource/data-source-base.mjs +0 -38
  49. package/esm2022/lib/common/data/datasource/data-source-change-event.mjs +0 -34
  50. package/esm2022/lib/common/data/datasource/data-source-processor.mjs +0 -198
  51. package/esm2022/lib/common/data/datasource/data-source.mjs +0 -23
  52. package/esm2022/lib/common/data/datasource/entity-id-util.mjs +0 -11
  53. package/esm2022/lib/common/data/datasource/fetcher/delegate-data-source.mjs +0 -127
  54. package/esm2022/lib/common/data/datasource/local/local-list-data-source.mjs +0 -153
  55. package/esm2022/lib/common/data/datasource/local/local-paged-data-source.mjs +0 -75
  56. package/esm2022/lib/common/data/datasource/patch/deep-partial-patcher.mjs +0 -58
  57. package/esm2022/lib/common/data/datasource/public_api.mjs +0 -10
  58. package/esm2022/lib/common/data/datasource/rest/public_api.mjs +0 -2
  59. package/esm2022/lib/common/data/datasource/rest/rest-client.mjs +0 -290
  60. package/esm2022/lib/common/data/entity-set-patch.mjs +0 -161
  61. package/esm2022/lib/common/data/field-comparator.mjs +0 -108
  62. package/esm2022/lib/common/data/filters/filter-commons.mjs +0 -12
  63. package/esm2022/lib/common/data/filters/filter-context.mjs +0 -135
  64. package/esm2022/lib/common/data/filters/filter-value.mjs +0 -2
  65. package/esm2022/lib/common/data/filters/filter.mjs +0 -104
  66. package/esm2022/lib/common/data/http-params-builder.mjs +0 -116
  67. package/esm2022/lib/common/data/page.mjs +0 -58
  68. package/esm2022/lib/common/data/public_api.mjs +0 -12
  69. package/esm2022/lib/common/data/required-filter-evaluator.mjs +0 -71
  70. package/esm2022/lib/common/data/sort-context.mjs +0 -73
  71. package/esm2022/lib/common/data/sort.mjs +0 -11
  72. package/esm2022/lib/common/data/token-chunk-request.mjs +0 -8
  73. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +0 -84
  74. package/esm2022/lib/common/enums/public_api.mjs +0 -2
  75. package/esm2022/lib/common/errors/exception-detail.mjs +0 -2
  76. package/esm2022/lib/common/errors/public_api.mjs +0 -3
  77. package/esm2022/lib/common/errors/standard-error-detail.mjs +0 -2
  78. package/esm2022/lib/common/exceptions/public_api.mjs +0 -2
  79. package/esm2022/lib/common/exceptions/unreachable-case-error.mjs +0 -8
  80. package/esm2022/lib/common/format/bytes-format.mjs +0 -15
  81. package/esm2022/lib/common/format/bytes-per-second-format.mjs +0 -41
  82. package/esm2022/lib/common/format/curency-format-util.mjs +0 -43
  83. package/esm2022/lib/common/format/duration-format-util.mjs +0 -44
  84. package/esm2022/lib/common/format/iso-interval-format-util.mjs +0 -111
  85. package/esm2022/lib/common/format/public_api.mjs +0 -6
  86. package/esm2022/lib/common/forms/elder-entity-value-accessor.mjs +0 -22
  87. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +0 -188
  88. package/esm2022/lib/common/forms/elder-from-field-base.mjs +0 -94
  89. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +0 -52
  90. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +0 -39
  91. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +0 -47
  92. package/esm2022/lib/common/forms/elder-multi-entity-value-accessor.mjs +0 -22
  93. package/esm2022/lib/common/forms/form-field-base.component.mjs +0 -111
  94. package/esm2022/lib/common/forms/multi-model-base.component.mjs +0 -32
  95. package/esm2022/lib/common/forms/public_api.mjs +0 -12
  96. package/esm2022/lib/common/forms/template-composite-control.mjs +0 -136
  97. package/esm2022/lib/common/forms/value-accessor-base.mjs +0 -146
  98. package/esm2022/lib/common/forms/view-providers.mjs +0 -30
  99. package/esm2022/lib/common/http/http-client-builder.service.mjs +0 -14
  100. package/esm2022/lib/common/http/http-client-pristine.mjs +0 -21
  101. package/esm2022/lib/common/http/public_api.mjs +0 -5
  102. package/esm2022/lib/common/http/transfer/data-transfer-base.mjs +0 -77
  103. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +0 -106
  104. package/esm2022/lib/common/http/transfer/data-transfer-progress-aggregate.mjs +0 -60
  105. package/esm2022/lib/common/http/transfer/data-transfer-progress.mjs +0 -17
  106. package/esm2022/lib/common/http/transfer/data-transfer-state.mjs +0 -82
  107. package/esm2022/lib/common/http/transfer/data-transfer-status.mjs +0 -24
  108. package/esm2022/lib/common/http/transfer/data-transfer.mjs +0 -2
  109. package/esm2022/lib/common/http/transfer/http-data-transfer.mjs +0 -132
  110. package/esm2022/lib/common/http/transfer/public_api.mjs +0 -7
  111. package/esm2022/lib/common/http/upload/file-upload-client.mjs +0 -42
  112. package/esm2022/lib/common/i18n/entity/elder-multi-translate-loader.mjs +0 -53
  113. package/esm2022/lib/common/i18n/entity/impl/i18n-base.mjs +0 -6
  114. package/esm2022/lib/common/i18n/entity/impl/i18n-text.mjs +0 -16
  115. package/esm2022/lib/common/i18n/entity/impl/translated.mjs +0 -15
  116. package/esm2022/lib/common/i18n/entity/language-tag.mjs +0 -12
  117. package/esm2022/lib/common/i18n/entity/locale.mjs +0 -12
  118. package/esm2022/lib/common/i18n/entity/localisation-picker.mjs +0 -30
  119. package/esm2022/lib/common/i18n/entity/localized.mjs +0 -2
  120. package/esm2022/lib/common/i18n/entity/public_api.mjs +0 -10
  121. package/esm2022/lib/common/i18n/entity/translated-converter.mjs +0 -18
  122. package/esm2022/lib/common/i18n/entity/translated.mjs +0 -2
  123. package/esm2022/lib/common/i18n/public_api.mjs +0 -2
  124. package/esm2022/lib/common/json-map.mjs +0 -17
  125. package/esm2022/lib/common/objects.mjs +0 -43
  126. package/esm2022/lib/common/public_api.mjs +0 -23
  127. package/esm2022/lib/common/reactive-map.mjs +0 -69
  128. package/esm2022/lib/common/rxjs/operators/lazy-sample.mjs +0 -34
  129. package/esm2022/lib/common/rxjs/public_api.mjs +0 -2
  130. package/esm2022/lib/common/selection/public_api.mjs +0 -2
  131. package/esm2022/lib/common/selection/selection-model.mjs +0 -213
  132. package/esm2022/lib/common/sets.mjs +0 -45
  133. package/esm2022/lib/common/suggestion-provider.mjs +0 -12
  134. package/esm2022/lib/common/templates/template-slot-manager.mjs +0 -135
  135. package/esm2022/lib/common/theme-sizes.mjs +0 -2
  136. package/esm2022/lib/common/time/date-util.mjs +0 -91
  137. package/esm2022/lib/common/time/interval-coerce.mjs +0 -30
  138. package/esm2022/lib/common/time/interval.mjs +0 -442
  139. package/esm2022/lib/common/time/period-duration.mjs +0 -133
  140. package/esm2022/lib/common/time/public_api.mjs +0 -8
  141. package/esm2022/lib/common/time/temporal-plain-date-interval.mjs +0 -34
  142. package/esm2022/lib/common/time/temporal-util.mjs +0 -205
  143. package/esm2022/lib/common/time/time-util.mjs +0 -38
  144. package/esm2022/lib/common/url/elder-router.service.mjs +0 -54
  145. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +0 -117
  146. package/esm2022/lib/common/url/public_api.mjs +0 -4
  147. package/esm2022/lib/common/url/url-query-params.mjs +0 -133
  148. package/esm2022/lib/common/utils/batcher.mjs +0 -35
  149. package/esm2022/lib/common/utils/collection-util.mjs +0 -111
  150. package/esm2022/lib/common/utils/filter-util.mjs +0 -133
  151. package/esm2022/lib/common/utils/focus-util.mjs +0 -23
  152. package/esm2022/lib/common/utils/input-utils.mjs +0 -6
  153. package/esm2022/lib/common/utils/next-number-util.mjs +0 -89
  154. package/esm2022/lib/common/utils/ng-zone-utils.mjs +0 -16
  155. package/esm2022/lib/common/utils/parse-util.mjs +0 -17
  156. package/esm2022/lib/common/utils/property-path-util.mjs +0 -28
  157. package/esm2022/lib/common/utils/public_api.mjs +0 -14
  158. package/esm2022/lib/common/utils/query-list-binding.mjs +0 -68
  159. package/esm2022/lib/common/utils/signal-input.mjs +0 -3
  160. package/esm2022/lib/common/utils/sort-util.mjs +0 -42
  161. package/esm2022/lib/common/utils/url-builder.mjs +0 -275
  162. package/esm2022/lib/common/utils/uuid-util.mjs +0 -28
  163. package/esm2022/lib/common/utils/value-wrapper.mjs +0 -19
  164. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +0 -15
  165. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +0 -20
  166. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +0 -50
  167. package/esm2022/lib/components/auditing/elder-audit.module.mjs +0 -40
  168. package/esm2022/lib/components/auditing/i-audited-entity.mjs +0 -3
  169. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +0 -162
  170. package/esm2022/lib/components/badge/elder-badge.directive.mjs +0 -124
  171. package/esm2022/lib/components/badge/elder-badge.module.mjs +0 -58
  172. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +0 -13
  173. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +0 -21
  174. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +0 -118
  175. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +0 -18
  176. package/esm2022/lib/components/card-organizer/card-organizer-data.mjs +0 -93
  177. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +0 -220
  178. package/esm2022/lib/components/card-organizer/card-stack.mjs +0 -176
  179. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +0 -62
  180. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +0 -17
  181. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +0 -167
  182. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +0 -71
  183. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +0 -171
  184. package/esm2022/lib/components/chips/elder-chips.module.mjs +0 -45
  185. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +0 -57
  186. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +0 -61
  187. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +0 -46
  188. package/esm2022/lib/components/connectivity/public_api.mjs +0 -3
  189. package/esm2022/lib/components/containers/elder-containers.module.mjs +0 -18
  190. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +0 -24
  191. package/esm2022/lib/components/containers/public_api.mjs +0 -2
  192. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +0 -77
  193. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.mjs +0 -38
  194. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +0 -38
  195. package/esm2022/lib/components/csv/elder-csv-stream-exporter.mjs +0 -114
  196. package/esm2022/lib/components/csv/elder-csv.module.mjs +0 -24
  197. package/esm2022/lib/components/currency/elder-currency.module.mjs +0 -18
  198. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +0 -37
  199. package/esm2022/lib/components/currency/model/currency-code.mjs +0 -38
  200. package/esm2022/lib/components/currency/model/currency-unit-registry.mjs +0 -30
  201. package/esm2022/lib/components/currency/model/currency-unit.mjs +0 -10
  202. package/esm2022/lib/components/currency/model/currency.mjs +0 -15
  203. package/esm2022/lib/components/currency/public_api.mjs +0 -7
  204. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +0 -91
  205. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +0 -93
  206. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +0 -102
  207. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +0 -34
  208. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +0 -57
  209. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +0 -34
  210. package/esm2022/lib/components/data-view/base/data-view-options-provider-binding.mjs +0 -69
  211. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +0 -265
  212. package/esm2022/lib/components/data-view/base/elder-data-view-options-provider.mjs +0 -44
  213. package/esm2022/lib/components/data-view/base/elder-data-view-options.mjs +0 -45
  214. package/esm2022/lib/components/data-view/base/elder-data-view.mjs +0 -3
  215. package/esm2022/lib/components/data-view/base/public_api.mjs +0 -6
  216. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-context.mjs +0 -30
  217. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-dc.directive.mjs +0 -55
  218. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort.mjs +0 -68
  219. package/esm2022/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.mjs +0 -101
  220. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +0 -45
  221. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +0 -125
  222. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +0 -140
  223. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +0 -100
  224. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +0 -103
  225. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +0 -36
  226. package/esm2022/lib/components/data-view/common/selection/master-selection-state.mjs +0 -10
  227. package/esm2022/lib/components/data-view/elder-data-view-interaction-mode.mjs +0 -2
  228. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +0 -345
  229. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +0 -91
  230. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +0 -75
  231. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +0 -50
  232. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +0 -79
  233. package/esm2022/lib/components/data-view/master-detail/elder-master-detail-mode.mjs +0 -2
  234. package/esm2022/lib/components/data-view/master-detail/elder-master-detail-provider.mjs +0 -20
  235. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +0 -119
  236. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +0 -116
  237. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +0 -89
  238. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +0 -23
  239. package/esm2022/lib/components/data-view/master-detail/master-detail-activation-event.mjs +0 -12
  240. package/esm2022/lib/components/data-view/public_api.mjs +0 -7
  241. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +0 -18
  242. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +0 -104
  243. package/esm2022/lib/components/data-view/table/activation/activation-event-source.mjs +0 -7
  244. package/esm2022/lib/components/data-view/table/activation/elder-activation-context.mjs +0 -2
  245. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +0 -114
  246. package/esm2022/lib/components/data-view/table/activation/elder-table-activation-options.mjs +0 -2
  247. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +0 -315
  248. package/esm2022/lib/components/data-view/table/activation/item-activation-event.mjs +0 -8
  249. package/esm2022/lib/components/data-view/table/activation/item-activation-options.mjs +0 -7
  250. package/esm2022/lib/components/data-view/table/activation/public_api.mjs +0 -8
  251. package/esm2022/lib/components/data-view/table/elder-center-cell.directive.mjs +0 -23
  252. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +0 -30
  253. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +0 -73
  254. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +0 -21
  255. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +0 -338
  256. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +0 -18
  257. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +0 -92
  258. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +0 -26
  259. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +0 -156
  260. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +0 -23
  261. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +0 -184
  262. package/esm2022/lib/components/data-view/table/model/elder-column-layout.mjs +0 -110
  263. package/esm2022/lib/components/data-view/table/model/elder-table-model-cdk-table-binding.mjs +0 -85
  264. package/esm2022/lib/components/data-view/table/model/elder-table-model-provider.mjs +0 -40
  265. package/esm2022/lib/components/data-view/table/model/elder-table-model-query-group.mjs +0 -89
  266. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +0 -167
  267. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +0 -37
  268. package/esm2022/lib/components/dialogs/elder-dialog-config.mjs +0 -3
  269. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +0 -87
  270. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +0 -199
  271. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +0 -57
  272. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +0 -43
  273. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +0 -47
  274. package/esm2022/lib/components/errors/elder-error.module.mjs +0 -39
  275. package/esm2022/lib/components/errors/error-util.mjs +0 -94
  276. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +0 -77
  277. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +0 -55
  278. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +0 -35
  279. package/esm2022/lib/components/files/blob-url.mjs +0 -10
  280. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +0 -224
  281. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +0 -44
  282. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +0 -84
  283. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +0 -145
  284. package/esm2022/lib/components/files/elder-file-select-input.mjs +0 -119
  285. package/esm2022/lib/components/files/elder-file-select.directive.mjs +0 -167
  286. package/esm2022/lib/components/files/elder-file.module.mjs +0 -85
  287. package/esm2022/lib/components/files/file-select/file-select.component.mjs +0 -54
  288. package/esm2022/lib/components/files/file-system-api.mjs +0 -100
  289. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +0 -80
  290. package/esm2022/lib/components/files/listing/file-entry.mjs +0 -92
  291. package/esm2022/lib/components/files/listing/file-listing-rx.mjs +0 -64
  292. package/esm2022/lib/components/files/listing/file-listing-system-handle.mjs +0 -35
  293. package/esm2022/lib/components/files/listing/file-listing-webkit.mjs +0 -76
  294. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +0 -51
  295. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +0 -34
  296. package/esm2022/lib/components/forms/directives/checkbox/elder-single-state-checkbox-controller.mjs +0 -97
  297. package/esm2022/lib/components/forms/directives/checkbox/elder-single-state-checkbox.directive.mjs +0 -50
  298. package/esm2022/lib/components/forms/directives/checkbox/elder-triple-state-checkbox-controller.mjs +0 -102
  299. package/esm2022/lib/components/forms/directives/checkbox/elder-triple-state-checkbox.directive.mjs +0 -50
  300. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +0 -38
  301. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +0 -43
  302. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +0 -83
  303. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +0 -84
  304. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +0 -42
  305. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +0 -35
  306. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +0 -142
  307. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +0 -67
  308. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +0 -78
  309. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +0 -112
  310. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +0 -102
  311. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +0 -37
  312. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +0 -30
  313. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +0 -161
  314. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +0 -28
  315. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +0 -88
  316. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +0 -47
  317. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +0 -48
  318. package/esm2022/lib/components/forms/directives/validation/strategies/fallback-validation-message-strategy.mjs +0 -6
  319. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +0 -53
  320. package/esm2022/lib/components/forms/directives/validation/validation-message-strategy.mjs +0 -2
  321. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +0 -36
  322. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +0 -36
  323. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +0 -112
  324. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +0 -69
  325. package/esm2022/lib/components/forms/elder-forms.module.mjs +0 -22
  326. package/esm2022/lib/components/forms/public_api.mjs +0 -6
  327. package/esm2022/lib/components/forms/search/domain/context/search-context.mjs +0 -73
  328. package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +0 -42
  329. package/esm2022/lib/components/forms/search/domain/input/input-value.mjs +0 -2
  330. package/esm2022/lib/components/forms/search/domain/input/search-input-state.mjs +0 -88
  331. package/esm2022/lib/components/forms/search/domain/input/search-input.mjs +0 -2
  332. package/esm2022/lib/components/forms/search/domain/input/simple-search-input.mjs +0 -50
  333. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +0 -92
  334. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +0 -166
  335. package/esm2022/lib/components/forms/search/domain/url/search-query-params-parser.mjs +0 -81
  336. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +0 -256
  337. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +0 -258
  338. package/esm2022/lib/components/forms/search/elder-search.module.mjs +0 -115
  339. package/esm2022/lib/components/forms/search/filter/default-input-filter-converter.mjs +0 -45
  340. package/esm2022/lib/components/forms/search/filter/input-filter-converter.mjs +0 -2
  341. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +0 -131
  342. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +0 -24
  343. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +0 -136
  344. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +0 -47
  345. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +0 -95
  346. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +0 -90
  347. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +0 -19
  348. package/esm2022/lib/components/graph/elder-progress-bar/sub-bar.mjs +0 -7
  349. package/esm2022/lib/components/graph/public_api.mjs +0 -2
  350. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +0 -29
  351. package/esm2022/lib/components/headers/elder-header.module.mjs +0 -42
  352. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +0 -63
  353. package/esm2022/lib/components/http-support/public_api.mjs +0 -2
  354. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +0 -125
  355. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +0 -157
  356. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +0 -39
  357. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +0 -30
  358. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +0 -177
  359. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +0 -31
  360. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +0 -56
  361. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +0 -40
  362. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +0 -31
  363. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +0 -74
  364. package/esm2022/lib/components/i18n/language/elder-language-config.mjs +0 -3
  365. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +0 -70
  366. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +0 -73
  367. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +0 -120
  368. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +0 -79
  369. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +0 -53
  370. package/esm2022/lib/components/i18n/public_api.mjs +0 -4
  371. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +0 -129
  372. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +0 -141
  373. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +0 -106
  374. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +0 -41
  375. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +0 -51
  376. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +0 -144
  377. package/esm2022/lib/components/iframes/iframe-messages.mjs +0 -5
  378. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +0 -80
  379. package/esm2022/lib/components/iframes/iframe.service.mjs +0 -54
  380. package/esm2022/lib/components/iframes/typed-event-message.mjs +0 -42
  381. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +0 -65
  382. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +0 -166
  383. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +0 -20
  384. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +0 -9
  385. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +0 -233
  386. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +0 -202
  387. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +0 -120
  388. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +0 -61
  389. package/esm2022/lib/components/input/autocomplete/many/word-position-finder.mjs +0 -58
  390. package/esm2022/lib/components/input/public_api.mjs +0 -2
  391. package/esm2022/lib/components/labels/elder-labels.module.mjs +0 -50
  392. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +0 -239
  393. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +0 -268
  394. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +0 -92
  395. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +0 -65
  396. package/esm2022/lib/components/measures/elder-measures.module.mjs +0 -130
  397. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +0 -31
  398. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +0 -43
  399. package/esm2022/lib/components/measures/elder-unit.service.mjs +0 -113
  400. package/esm2022/lib/components/measures/model/dimensions.mjs +0 -17
  401. package/esm2022/lib/components/measures/model/quantity.mjs +0 -12
  402. package/esm2022/lib/components/measures/model/unit-dimension.mjs +0 -14
  403. package/esm2022/lib/components/measures/model/unit-registry.mjs +0 -81
  404. package/esm2022/lib/components/measures/model/unit.mjs +0 -143
  405. package/esm2022/lib/components/measures/public_api.mjs +0 -8
  406. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +0 -44
  407. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +0 -173
  408. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +0 -84
  409. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +0 -73
  410. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +0 -341
  411. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +0 -184
  412. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +0 -59
  413. package/esm2022/lib/components/navigation/bread-crumbs/path/path.mjs +0 -37
  414. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +0 -60
  415. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +0 -121
  416. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +0 -174
  417. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +0 -68
  418. package/esm2022/lib/components/navigation/public_api.mjs +0 -4
  419. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +0 -48
  420. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +0 -83
  421. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +0 -68
  422. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +0 -71
  423. package/esm2022/lib/components/navigation/toolbar/toolbar-column-position.mjs +0 -2
  424. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +0 -39
  425. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +0 -86
  426. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +0 -44
  427. package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +0 -41
  428. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +0 -73
  429. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +0 -232
  430. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +0 -35
  431. package/esm2022/lib/components/page/exit-guard/page-exit-guard.module.mjs +0 -20
  432. package/esm2022/lib/components/page/exit-guard/page-exit-guard.service.mjs +0 -129
  433. package/esm2022/lib/components/page/exit-guard/page-exit-lock/page-exit-lock.component.mjs +0 -25
  434. package/esm2022/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.mjs +0 -29
  435. package/esm2022/lib/components/page/exit-guard/page-exit-lock-overview/page-exit-lock-overview.component.mjs +0 -26
  436. package/esm2022/lib/components/page/public_api.mjs +0 -2
  437. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +0 -12
  438. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +0 -12
  439. package/esm2022/lib/components/panels/elder-panel.module.mjs +0 -60
  440. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +0 -26
  441. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +0 -70
  442. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +0 -74
  443. package/esm2022/lib/components/public_api.mjs +0 -43
  444. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +0 -63
  445. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +0 -17
  446. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +0 -95
  447. package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +0 -38
  448. package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +0 -64
  449. package/esm2022/lib/components/select/auto/elder-select-first-util.mjs +0 -55
  450. package/esm2022/lib/components/select/elder-select-base.mjs +0 -333
  451. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +0 -48
  452. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +0 -139
  453. package/esm2022/lib/components/select/elder-select-value.directive.mjs +0 -18
  454. package/esm2022/lib/components/select/elder-select.module.mjs +0 -229
  455. package/esm2022/lib/components/select/filter/elder-chip-filter-style-resolver.mjs +0 -74
  456. package/esm2022/lib/components/select/filter/elder-chips-include-exclude.directive.mjs +0 -148
  457. package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +0 -51
  458. package/esm2022/lib/components/select/filter/include-exclude-model-filter-adapter.mjs +0 -61
  459. package/esm2022/lib/components/select/filter/include-exclude-selection-model.mjs +0 -160
  460. package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +0 -16
  461. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +0 -386
  462. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/chip-options-provider.mjs +0 -87
  463. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +0 -263
  464. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/select-option-chip-spec.mjs +0 -15
  465. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +0 -274
  466. package/esm2022/lib/components/select/multi/elder-multi-select-chips/select-chip-spec.mjs +0 -15
  467. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +0 -86
  468. package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +0 -34
  469. package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +0 -146
  470. package/esm2022/lib/components/select/multi/public_api.mjs +0 -5
  471. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +0 -89
  472. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +0 -126
  473. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +0 -58
  474. package/esm2022/lib/components/select/public_api.mjs +0 -5
  475. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +0 -60
  476. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +0 -444
  477. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +0 -45
  478. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +0 -148
  479. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +0 -46
  480. package/esm2022/lib/components/shell/drawers/drawer-outlet-binding.mjs +0 -64
  481. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +0 -119
  482. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +0 -128
  483. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +0 -47
  484. package/esm2022/lib/components/shell/elder-shell.module.mjs +0 -101
  485. package/esm2022/lib/components/shell/elder-shell.service.mjs +0 -142
  486. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +0 -75
  487. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +0 -238
  488. package/esm2022/lib/components/shell/shell-content-slot.mjs +0 -2
  489. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +0 -137
  490. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +0 -26
  491. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +0 -257
  492. package/esm2022/lib/components/tabs/elder-tab.module.mjs +0 -21
  493. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +0 -62
  494. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +0 -73
  495. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +0 -74
  496. package/esm2022/lib/components/theme/elder-theme.directive.mjs +0 -64
  497. package/esm2022/lib/components/theme/elder-theme.module.mjs +0 -68
  498. package/esm2022/lib/components/theme/elder-theme.service.mjs +0 -121
  499. package/esm2022/lib/components/theme/known-elder-themes.mjs +0 -6
  500. package/esm2022/lib/components/theme/public_api.mjs +0 -2
  501. package/esm2022/lib/components/theme/theme-spec.mjs +0 -11
  502. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +0 -43
  503. package/esm2022/lib/components/time/date-formats/locale-date-formats.mjs +0 -28
  504. package/esm2022/lib/components/time/duration/duration-bucket.mjs +0 -68
  505. package/esm2022/lib/components/time/duration/duration-format.mjs +0 -271
  506. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +0 -110
  507. package/esm2022/lib/components/time/duration/iso-duration-str.mjs +0 -2
  508. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +0 -96
  509. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +0 -98
  510. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +0 -217
  511. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-anchor-controller.mjs +0 -21
  512. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-calendar-controller.mjs +0 -24
  513. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-controller.mjs +0 -43
  514. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-form-controller.mjs +0 -69
  515. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-select-controller.mjs +0 -117
  516. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-shift-controller.mjs +0 -44
  517. package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.component.mjs +0 -198
  518. package/esm2022/lib/components/time/elder-interval-picker/interval-picker-binding/elder-interval-picker-binding.directive.mjs +0 -41
  519. package/esm2022/lib/components/time/elder-interval-picker/interval-picker-toggle/elder-interval-picker-toggle.component.mjs +0 -144
  520. package/esm2022/lib/components/time/elder-interval-picker/manager/interval-picker-state-manager.mjs +0 -93
  521. package/esm2022/lib/components/time/elder-interval-picker/model/anchor-state.mjs +0 -54
  522. package/esm2022/lib/components/time/elder-interval-picker/model/interval-state.mjs +0 -37
  523. package/esm2022/lib/components/time/elder-interval-picker/model/smart-shift-state.mjs +0 -10
  524. package/esm2022/lib/components/time/elder-interval-picker/presenter/interval-picker-presenter.mjs +0 -96
  525. package/esm2022/lib/components/time/elder-interval-picker/util/interval-picker-util.mjs +0 -194
  526. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +0 -268
  527. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +0 -85
  528. package/esm2022/lib/components/time/elder-time.module.mjs +0 -154
  529. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +0 -118
  530. package/esm2022/lib/components/time/period/period-bucket.mjs +0 -31
  531. package/esm2022/lib/components/time/period/period-format.mjs +0 -89
  532. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +0 -39
  533. package/esm2022/lib/components/time/public_api.mjs +0 -8
  534. package/esm2022/lib/components/toasts/elder-toast.module.mjs +0 -36
  535. package/esm2022/lib/components/toasts/elder-toast.service.mjs +0 -170
  536. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +0 -80
  537. package/esm2022/lib/components/toasts/toast-type.mjs +0 -7
  538. package/esm2022/lib/components/toasts/toast.mjs +0 -2
  539. package/esm2022/lib/components/url-fragment/elder-url-fragment.mjs +0 -9
  540. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +0 -52
  541. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +0 -95
  542. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +0 -64
  543. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +0 -18
  544. package/esm2022/lib/features/event-source/fetch/public_api.mjs +0 -3
  545. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.mjs +0 -219
  546. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +0 -53
  547. package/esm2022/lib/features/event-source/public_api.mjs +0 -3
  548. package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +0 -56
  549. package/esm2022/lib/features/event-source/standard/public_api.mjs +0 -3
  550. package/esm2022/lib/features/event-source/standard/reactive-event-source.mjs +0 -199
  551. package/esm2022/lib/features/kafent/access-token-provider.mjs +0 -20
  552. package/esm2022/lib/features/kafent/kafent-config.mjs +0 -24
  553. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +0 -25
  554. package/esm2022/lib/features/kafent/kafent-event.mjs +0 -3
  555. package/esm2022/lib/features/kafent/kafent-event.service.mjs +0 -115
  556. package/esm2022/lib/features/kafent/kafent-live-event-request.mjs +0 -2
  557. package/esm2022/lib/features/kafent/kafent.module.mjs +0 -58
  558. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +0 -131
  559. package/esm2022/lib/features/kafent/sse/kafent-topic-sse.mjs +0 -97
  560. package/esm2022/lib/features/public_api.mjs +0 -3
  561. package/esm2022/lib/pipes/bytes.pipe.mjs +0 -27
  562. package/esm2022/lib/pipes/elder-pipes.module.mjs +0 -114
  563. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +0 -24
  564. package/esm2022/lib/pipes/elder-round.pipe.mjs +0 -36
  565. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +0 -21
  566. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +0 -41
  567. package/esm2022/lib/pipes/iso-duration.pipe.mjs +0 -41
  568. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +0 -49
  569. package/esm2022/lib/pipes/iso-interval.pipe.mjs +0 -62
  570. package/esm2022/lib/pipes/public_api.mjs +0 -2
  571. package/esm2022/lib/pipes/time-ago.pipe.mjs +0 -110
  572. package/esm2022/lib/pipes/time-duration.pipe.mjs +0 -101
  573. package/esm2022/lib/pipes/weight.pipe.mjs +0 -60
  574. package/esm2022/public_api.mjs +0 -8
  575. package/lib/components/panels/flat/elder-panel.component.d.ts +0 -15
  576. package/src/lib/components/panels/flat/elder-panel.component.scss +0 -3
@@ -1,161 +0,0 @@
1
- import { JsonMapUtil } from '../json-map';
2
- export class EntitySetPatch {
3
- /***************************************************************************
4
- * *
5
- * Static Builder *
6
- * *
7
- **************************************************************************/
8
- static start(idToMapKeyFn) {
9
- return new EntitySetPatch(idToMapKeyFn);
10
- }
11
- static idToMapKeyDefault(id) {
12
- if (typeof id === 'string') {
13
- return id;
14
- }
15
- else if (typeof id === 'number') {
16
- return id;
17
- }
18
- else {
19
- return id + '';
20
- }
21
- }
22
- /***************************************************************************
23
- * *
24
- * Constructor *
25
- * *
26
- **************************************************************************/
27
- constructor(idToMapKeyFn) {
28
- this.upsertsById = {};
29
- this.updatesById = {};
30
- this.upsertOnes = [];
31
- this.updateOnes = [];
32
- this.idToMapKeyFn = idToMapKeyFn ?? EntitySetPatch.idToMapKeyDefault;
33
- }
34
- /***************************************************************************
35
- * *
36
- * Query *
37
- * *
38
- **************************************************************************/
39
- getUpsertsById() {
40
- return JsonMapUtil.toMap(this.upsertsById);
41
- }
42
- getUpdatesById() {
43
- return JsonMapUtil.toMap(this.updatesById);
44
- }
45
- getUpsertOnes() {
46
- return [...this.upsertOnes];
47
- }
48
- getUpdateOnes() {
49
- return [...this.updateOnes];
50
- }
51
- /**
52
- * Gets all ids which should be deleted.
53
- * Also consider isDeleteOther, which means
54
- * everything gets deleted.
55
- */
56
- collectDeletions() {
57
- return [
58
- ...Array.from(this.getUpsertsById().entries())
59
- .filter(([id, update]) => !update)
60
- .map(([id, update]) => id),
61
- ...Array.from(this.getUpdatesById().entries())
62
- .filter(([id, update]) => !update)
63
- .map(([id, update]) => id),
64
- ];
65
- }
66
- /**
67
- * Delete all entities which are not
68
- * explicitly defined in this update.
69
- * "Replace with" semantics.
70
- */
71
- get isDeleteOther() {
72
- return this.deleteOther;
73
- }
74
- /**
75
- * Collects all upserts. (Updates are ignored)
76
- */
77
- collectUpserts() {
78
- return [
79
- ...Array.from(this.getUpsertsById().entries())
80
- .filter(([id, update]) => !!update)
81
- .map(([id, update]) => update),
82
- ...this.upsertOnes,
83
- ];
84
- }
85
- /**
86
- * Collects all updates. (Upserts are ignored)
87
- */
88
- collectUpdates() {
89
- return [
90
- ...Array.from(this.getUpdatesById().entries())
91
- .filter(([id, update]) => !!update)
92
- .map(([id, update]) => update),
93
- ...this.updateOnes,
94
- ];
95
- }
96
- collectUpdatesAndUpserts() {
97
- return [...this.collectUpserts(), ...this.collectUpdates()];
98
- }
99
- /***************************************************************************
100
- * *
101
- * Builder API *
102
- * *
103
- **************************************************************************/
104
- update(updateOne) {
105
- this.updateOnes.push(updateOne);
106
- return this;
107
- }
108
- updateAll(updateOne) {
109
- this.updateOnes.push(...updateOne);
110
- return this;
111
- }
112
- updateById(id, updateOne) {
113
- this.updatesById[this.idToMapKeyFn(id)] = updateOne;
114
- return this;
115
- }
116
- updateAllById(updates) {
117
- updates.forEach((v, k) => this.updateById(k, v));
118
- return this;
119
- }
120
- upsert(updateOne) {
121
- this.upsertOnes.push(updateOne);
122
- return this;
123
- }
124
- upsertAll(updateOne) {
125
- this.upsertOnes.push(...updateOne);
126
- return this;
127
- }
128
- upsertById(id, updateOne) {
129
- this.upsertsById[this.idToMapKeyFn(id)] = updateOne;
130
- return this;
131
- }
132
- upsertAllById(upserts) {
133
- upserts.forEach((v, k) => this.upsertById(k, v));
134
- return this;
135
- }
136
- deleteById(...idArgs) {
137
- idArgs.forEach((id) => this.upsertById(id, null));
138
- return this;
139
- }
140
- deleteByIds(ids) {
141
- ids.forEach((id) => this.upsertById(id, null));
142
- return this;
143
- }
144
- deleteAllOther() {
145
- this.deleteOther = true;
146
- return this;
147
- }
148
- deleteAll() {
149
- this.clear();
150
- this.deleteAllOther();
151
- return this;
152
- }
153
- clear() {
154
- this.upsertOnes = [];
155
- this.upsertsById = {};
156
- this.updateOnes = [];
157
- this.updatesById = {};
158
- return this;
159
- }
160
- }
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNldC1wYXRjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2VudGl0eS1zZXQtcGF0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVsRCxNQUFNLE9BQU8sY0FBYztJQWV6Qjs7OztnRkFJNEU7SUFFckUsTUFBTSxDQUFDLEtBQUssQ0FDakIsWUFBMEM7UUFFMUMsT0FBTyxJQUFJLGNBQWMsQ0FBaUIsWUFBWSxDQUFDLENBQUE7SUFDekQsQ0FBQztJQUVPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBSyxFQUFNO1FBQ3pDLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0IsT0FBTyxFQUFFLENBQUE7UUFDWCxDQUFDO2FBQU0sSUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxPQUFPLEVBQUUsQ0FBQTtRQUNYLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFBO1FBQ2hCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQVksWUFBMEM7UUFsQzlDLGdCQUFXLEdBQXdCLEVBQUUsQ0FBQTtRQUNyQyxnQkFBVyxHQUF3QixFQUFFLENBQUE7UUFDckMsZUFBVSxHQUFpQixFQUFFLENBQUE7UUFDN0IsZUFBVSxHQUFpQixFQUFFLENBQUE7UUFnQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxJQUFJLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQTtJQUN0RSxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLGNBQWM7UUFDbkIsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRU0sY0FB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QixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQzlDLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7UUFDdkIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNaLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUNyQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUE7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUE7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUE7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUE7UUFDckIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKc29uTWFwLCBKc29uTWFwVXRpbCB9IGZyb20gJy4uL2pzb24tbWFwJ1xuXG5leHBvcnQgY2xhc3MgRW50aXR5U2V0UGF0Y2g8SUQsIEl0ZW1VcGRhdGU+IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBpZFRvTWFwS2V5Rm46IChpZDogSUQpID0+IHN0cmluZyB8IG51bWJlclxuXG4gIHByaXZhdGUgdXBzZXJ0c0J5SWQ6IEpzb25NYXA8SXRlbVVwZGF0ZT4gPSB7fVxuICBwcml2YXRlIHVwZGF0ZXNCeUlkOiBKc29uTWFwPEl0ZW1VcGRhdGU+ID0ge31cbiAgcHJpdmF0ZSB1cHNlcnRPbmVzOiBJdGVtVXBkYXRlW10gPSBbXVxuICBwcml2YXRlIHVwZGF0ZU9uZXM6IEl0ZW1VcGRhdGVbXSA9IFtdXG4gIHByaXZhdGUgZGVsZXRlT3RoZXI/OiBib29sZWFuXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN0YXRpYyBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN0YXRpYyBzdGFydDxJRCwgSXRlbVVwZGF0ZT4oXG4gICAgaWRUb01hcEtleUZuPzogKGlkOiBJRCkgPT4gc3RyaW5nIHwgbnVtYmVyXG4gICk6IEVudGl0eVNldFBhdGNoPElELCBJdGVtVXBkYXRlPiB7XG4gICAgcmV0dXJuIG5ldyBFbnRpdHlTZXRQYXRjaDxJRCwgSXRlbVVwZGF0ZT4oaWRUb01hcEtleUZuKVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaWRUb01hcEtleURlZmF1bHQ8SUQ+KGlkOiBJRCk6IHN0cmluZyB8IG51bWJlciB7XG4gICAgaWYgKHR5cGVvZiBpZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBpZFxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGlkID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIGlkXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBpZCArICcnXG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoaWRUb01hcEtleUZuPzogKGlkOiBJRCkgPT4gc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgdGhpcy5pZFRvTWFwS2V5Rm4gPSBpZFRvTWFwS2V5Rm4gPz8gRW50aXR5U2V0UGF0Y2guaWRUb01hcEtleURlZmF1bHRcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBRdWVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXRVcHNlcnRzQnlJZCgpOiBNYXA8SUQsIEl0ZW1VcGRhdGU+IHtcbiAgICByZXR1cm4gSnNvbk1hcFV0aWwudG9NYXAodGhpcy51cHNlcnRzQnlJZClcbiAgfVxuXG4gIHB1YmxpYyBnZXRVcGRhdGVzQnlJZCgpOiBNYXA8SUQsIEl0ZW1VcGRhdGU+IHtcbiAgICByZXR1cm4gSnNvbk1hcFV0aWwudG9NYXAodGhpcy51cGRhdGVzQnlJZClcbiAgfVxuXG4gIHB1YmxpYyBnZXRVcHNlcnRPbmVzKCk6IEl0ZW1VcGRhdGVbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnVwc2VydE9uZXNdXG4gIH1cblxuICBwdWJsaWMgZ2V0VXBkYXRlT25lcygpOiBJdGVtVXBkYXRlW10ge1xuICAgIHJldHVybiBbLi4udGhpcy51cGRhdGVPbmVzXVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIGlkcyB3aGljaCBzaG91bGQgYmUgZGVsZXRlZC5cbiAgICogQWxzbyBjb25zaWRlciBpc0RlbGV0ZU90aGVyLCB3aGljaCBtZWFuc1xuICAgKiBldmVyeXRoaW5nIGdldHMgZGVsZXRlZC5cbiAgICovXG4gIHB1YmxpYyBjb2xsZWN0RGVsZXRpb25zKCk6IElEW10ge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuZ2V0VXBzZXJ0c0J5SWQoKS5lbnRyaWVzKCkpXG4gICAgICAgIC5maWx0ZXIoKFtpZCwgdXBkYXRlXSkgPT4gIXVwZGF0ZSlcbiAgICAgICAgLm1hcCgoW2lkLCB1cGRhdGVdKSA9PiBpZCksXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuZ2V0VXBkYXRlc0J5SWQoKS5lbnRyaWVzKCkpXG4gICAgICAgIC5maWx0ZXIoKFtpZCwgdXBkYXRlXSkgPT4gIXVwZGF0ZSlcbiAgICAgICAgLm1hcCgoW2lkLCB1cGRhdGVdKSA9PiBpZCksXG4gICAgXVxuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbGwgZW50aXRpZXMgd2hpY2ggYXJlIG5vdFxuICAgKiBleHBsaWNpdGx5IGRlZmluZWQgaW4gdGhpcyB1cGRhdGUuXG4gICAqIFwiUmVwbGFjZSB3aXRoXCIgc2VtYW50aWNzLlxuICAgKi9cbiAgcHVibGljIGdldCBpc0RlbGV0ZU90aGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZU90aGVyXG4gIH1cblxuICAvKipcbiAgICogQ29sbGVjdHMgYWxsIHVwc2VydHMuIChVcGRhdGVzIGFyZSBpZ25vcmVkKVxuICAgKi9cbiAgcHVibGljIGNvbGxlY3RVcHNlcnRzKCk6IEl0ZW1VcGRhdGVbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5nZXRVcHNlcnRzQnlJZCgpLmVudHJpZXMoKSlcbiAgICAgICAgLmZpbHRlcigoW2lkLCB1cGRhdGVdKSA9PiAhIXVwZGF0ZSlcbiAgICAgICAgLm1hcCgoW2lkLCB1cGRhdGVdKSA9PiB1cGRhdGUpLFxuICAgICAgLi4udGhpcy51cHNlcnRPbmVzLFxuICAgIF1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xsZWN0cyBhbGwgdXBkYXRlcy4gKFVwc2VydHMgYXJlIGlnbm9yZWQpXG4gICAqL1xuICBwdWJsaWMgY29sbGVjdFVwZGF0ZXMoKTogSXRlbVVwZGF0ZVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLmdldFVwZGF0ZXNCeUlkKCkuZW50cmllcygpKVxuICAgICAgICAuZmlsdGVyKChbaWQsIHVwZGF0ZV0pID0+ICEhdXBkYXRlKVxuICAgICAgICAubWFwKChbaWQsIHVwZGF0ZV0pID0+IHVwZGF0ZSksXG4gICAgICAuLi50aGlzLnVwZGF0ZU9uZXMsXG4gICAgXVxuICB9XG5cbiAgcHVibGljIGNvbGxlY3RVcGRhdGVzQW5kVXBzZXJ0cygpOiBJdGVtVXBkYXRlW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5jb2xsZWN0VXBzZXJ0cygpLCAuLi50aGlzLmNvbGxlY3RVcGRhdGVzKCldXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQnVpbGRlciBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgdXBkYXRlKHVwZGF0ZU9uZTogSXRlbVVwZGF0ZSk6IHRoaXMge1xuICAgIHRoaXMudXBkYXRlT25lcy5wdXNoKHVwZGF0ZU9uZSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFsbCh1cGRhdGVPbmU6IEl0ZW1VcGRhdGVbXSk6IHRoaXMge1xuICAgIHRoaXMudXBkYXRlT25lcy5wdXNoKC4uLnVwZGF0ZU9uZSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUJ5SWQoaWQ6IElELCB1cGRhdGVPbmU6IEl0ZW1VcGRhdGUpOiB0aGlzIHtcbiAgICB0aGlzLnVwZGF0ZXNCeUlkW3RoaXMuaWRUb01hcEtleUZuKGlkKV0gPSB1cGRhdGVPbmVcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFsbEJ5SWQodXBkYXRlczogTWFwPElELCBJdGVtVXBkYXRlPik6IHRoaXMge1xuICAgIHVwZGF0ZXMuZm9yRWFjaCgodiwgaykgPT4gdGhpcy51cGRhdGVCeUlkKGssIHYpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBwdWJsaWMgdXBzZXJ0KHVwZGF0ZU9uZTogSXRlbVVwZGF0ZSk6IHRoaXMge1xuICAgIHRoaXMudXBzZXJ0T25lcy5wdXNoKHVwZGF0ZU9uZSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcHVibGljIHVwc2VydEFsbCh1cGRhdGVPbmU6IEl0ZW1VcGRhdGVbXSk6IHRoaXMge1xuICAgIHRoaXMudXBzZXJ0T25lcy5wdXNoKC4uLnVwZGF0ZU9uZSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcHVibGljIHVwc2VydEJ5SWQoaWQ6IElELCB1cGRhdGVPbmU6IEl0ZW1VcGRhdGUpOiB0aGlzIHtcbiAgICB0aGlzLnVwc2VydHNCeUlkW3RoaXMuaWRUb01hcEtleUZuKGlkKV0gPSB1cGRhdGVPbmVcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcHVibGljIHVwc2VydEFsbEJ5SWQodXBzZXJ0czogTWFwPElELCBJdGVtVXBkYXRlPik6IHRoaXMge1xuICAgIHVwc2VydHMuZm9yRWFjaCgodiwgaykgPT4gdGhpcy51cHNlcnRCeUlkKGssIHYpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQnlJZCguLi5pZEFyZ3M6IElEW10pOiB0aGlzIHtcbiAgICBpZEFyZ3MuZm9yRWFjaCgoaWQpID0+IHRoaXMudXBzZXJ0QnlJZChpZCwgbnVsbCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVCeUlkcyhpZHM6IElEW10pOiB0aGlzIHtcbiAgICBpZHMuZm9yRWFjaCgoaWQpID0+IHRoaXMudXBzZXJ0QnlJZChpZCwgbnVsbCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVBbGxPdGhlcigpOiB0aGlzIHtcbiAgICB0aGlzLmRlbGV0ZU90aGVyID0gdHJ1ZVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQWxsKCk6IHRoaXMge1xuICAgIHRoaXMuY2xlYXIoKVxuICAgIHRoaXMuZGVsZXRlQWxsT3RoZXIoKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdGhpcyB7XG4gICAgdGhpcy51cHNlcnRPbmVzID0gW11cbiAgICB0aGlzLnVwc2VydHNCeUlkID0ge31cbiAgICB0aGlzLnVwZGF0ZU9uZXMgPSBbXVxuICAgIHRoaXMudXBkYXRlc0J5SWQgPSB7fVxuICAgIHJldHVybiB0aGlzXG4gIH1cbn1cbiJdfQ==
@@ -1,108 +0,0 @@
1
- export function naturalValueComparator(a, b) {
2
- if (a === b) {
3
- return 0;
4
- }
5
- if (a === null || a === undefined) {
6
- return -1;
7
- }
8
- if (b === null || b === undefined) {
9
- return 1;
10
- }
11
- return a < b ? -1 : a > b ? 1 : 0;
12
- }
13
- export function alphaNumStringComparator(a, b) {
14
- if (a === b) {
15
- return 0;
16
- }
17
- if (a === null || a === undefined) {
18
- return -1;
19
- }
20
- if (b === null || b === undefined) {
21
- return 1;
22
- }
23
- return a.localeCompare(b, 'en', { numeric: true });
24
- }
25
- /**
26
- * Provides the ability to build a sorting comparator dynamically using
27
- * a given array of fields / additional syntax.
28
- *
29
- * - Supports ASC / DESC
30
- * - Supports multiple fields
31
- * - Supports nested fields
32
- *
33
- * Example:
34
- *
35
- * ComparatorBuilder.fieldSort('simple', '-reveresed', 'some.very.deep.nested.path')
36
- *
37
- */
38
- export class ComparatorBuilder {
39
- /***************************************************************************
40
- * *
41
- * Fields *
42
- * *
43
- **************************************************************************/
44
- static { this.NATURAL_VALUE_COMPARATOR = naturalValueComparator; }
45
- static { this.ALPHANUM_STRING_COMPARATOR = alphaNumStringComparator; }
46
- /***************************************************************************
47
- * *
48
- * Public API *
49
- * *
50
- **************************************************************************/
51
- /**
52
- * Dynamically builds a comparator function, using the given fields for sorting.
53
- *
54
- * @param fields One or more field name to sort.
55
- */
56
- static fieldSort(...fields) {
57
- const props = fields;
58
- return function (obj1, obj2) {
59
- let i = 0;
60
- let result = 0;
61
- const numberOfProperties = props.length;
62
- /* try getting a different result from 0 (equal)
63
- * as long as we have extra properties to compare
64
- */
65
- while (result === 0 && i < numberOfProperties) {
66
- result = ComparatorBuilder.dynamicSort(props[i], ComparatorBuilder.NATURAL_VALUE_COMPARATOR, ComparatorBuilder.ALPHANUM_STRING_COMPARATOR)(obj1, obj2);
67
- i++;
68
- }
69
- return result;
70
- };
71
- }
72
- /***************************************************************************
73
- * *
74
- * Private methods *
75
- * *
76
- **************************************************************************/
77
- static dynamicSort(property, genericValueComparator, stringValueComparator) {
78
- let sortOrder = 1;
79
- if (property[0] === '-') {
80
- sortOrder = -1;
81
- property = property.substring(1);
82
- }
83
- return (a, b) => {
84
- const aValue = ComparatorBuilder.resolveProperty(a, property);
85
- const bValue = ComparatorBuilder.resolveProperty(b, property);
86
- let result;
87
- if (typeof aValue === 'string' && typeof bValue === 'string') {
88
- result = stringValueComparator(aValue, bValue);
89
- }
90
- else {
91
- result = genericValueComparator(aValue, bValue);
92
- }
93
- return result * sortOrder;
94
- };
95
- }
96
- static resolveProperty(obj, property) {
97
- const parts = property.split('.');
98
- let resolved = obj;
99
- for (const part of parts) {
100
- if (!resolved) {
101
- return null;
102
- }
103
- resolved = resolved[part];
104
- }
105
- return resolved;
106
- }
107
- }
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtY29tcGFyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2ZpZWxkLWNvbXBhcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLHNCQUFzQixDQUFDLENBQU0sRUFBRSxDQUFNO0lBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ1osT0FBTyxDQUFDLENBQUE7SUFDVixDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQ1gsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbEMsT0FBTyxDQUFDLENBQUE7SUFDVixDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDbkMsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxDQUFNLEVBQUUsQ0FBTTtJQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNaLE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUNYLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUNELE9B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KGE6IFQsIGI6IFQpID0+IG51bWJlclxuXG5leHBvcnQgZnVuY3Rpb24gbmF0dXJhbFZhbHVlQ29tcGFyYXRvcihhOiBhbnksIGI6IGFueSk6IG51bWJlciB7XG4gIGlmIChhID09PSBiKSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuICBpZiAoYSA9PT0gbnVsbCB8fCBhID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gLTFcbiAgfVxuICBpZiAoYiA9PT0gbnVsbCB8fCBiID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gMVxuICB9XG4gIHJldHVybiBhIDwgYiA/IC0xIDogYSA+IGIgPyAxIDogMFxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxwaGFOdW1TdHJpbmdDb21wYXJhdG9yKGE6IGFueSwgYjogYW55KTogbnVtYmVyIHtcbiAgaWYgKGEgPT09IGIpIHtcbiAgICByZXR1cm4gMFxuICB9XG4gIGlmIChhID09PSBudWxsIHx8IGEgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAtMVxuICB9XG4gIGlmIChiID09PSBudWxsIHx8IGIgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAxXG4gIH1cbiAgcmV0dXJuIGEubG9jYWxlQ29tcGFyZShiLCAnZW4nLCB7IG51bWVyaWM6IHRydWUgfSlcbn1cblxuLyoqXG4gKiBQcm92aWRlcyB0aGUgYWJpbGl0eSB0byBidWlsZCBhIHNvcnRpbmcgY29tcGFyYXRvciBkeW5hbWljYWxseSB1c2luZ1xuICogYSBnaXZlbiBhcnJheSBvZiBmaWVsZHMgLyBhZGRpdGlvbmFsIHN5bnRheC5cbiAqXG4gKiAtIFN1cHBvcnRzIEFTQyAvIERFU0NcbiAqIC0gU3VwcG9ydHMgbXVsdGlwbGUgZmllbGRzXG4gKiAtIFN1cHBvcnRzIG5lc3RlZCBmaWVsZHNcbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIENvbXBhcmF0b3JCdWlsZGVyLmZpZWxkU29ydCgnc2ltcGxlJywgJy1yZXZlcmVzZWQnLCAnc29tZS52ZXJ5LmRlZXAubmVzdGVkLnBhdGgnKVxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBhcmF0b3JCdWlsZGVyIHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN0YXRpYyBOQVRVUkFMX1ZBTFVFX0NPTVBBUkFUT1I6IENvbXBhcmF0b3JGbjxhbnk+ID0gbmF0dXJhbFZhbHVlQ29tcGFyYXRvclxuICBwdWJsaWMgc3RhdGljIEFMUEhBTlVNX1NUUklOR19DT01QQVJBVE9SOiBDb21wYXJhdG9yRm48c3RyaW5nPiA9IGFscGhhTnVtU3RyaW5nQ29tcGFyYXRvclxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBEeW5hbWljYWxseSBidWlsZHMgYSBjb21wYXJhdG9yIGZ1bmN0aW9uLCB1c2luZyB0aGUgZ2l2ZW4gZmllbGRzIGZvciBzb3J0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gZmllbGRzIE9uZSBvciBtb3JlIGZpZWxkIG5hbWUgdG8gc29ydC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZmllbGRTb3J0PFQgPSBhbnk+KC4uLmZpZWxkczogc3RyaW5nW10pOiBDb21wYXJhdG9yRm48VD4ge1xuICAgIGNvbnN0IHByb3BzID0gZmllbGRzXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChvYmoxLCBvYmoyKSB7XG4gICAgICBsZXQgaSA9IDBcbiAgICAgIGxldCByZXN1bHQgPSAwXG4gICAgICBjb25zdCBudW1iZXJPZlByb3BlcnRpZXMgPSBwcm9wcy5sZW5ndGhcbiAgICAgIC8qIHRyeSBnZXR0aW5nIGEgZGlmZmVyZW50IHJlc3VsdCBmcm9tIDAgKGVxdWFsKVxuICAgICAgICogYXMgbG9uZyBhcyB3ZSBoYXZlIGV4dHJhIHByb3BlcnRpZXMgdG8gY29tcGFyZVxuICAgICAgICovXG4gICAgICB3aGlsZSAocmVzdWx0ID09PSAwICYmIGkgPCBudW1iZXJPZlByb3BlcnRpZXMpIHtcbiAgICAgICAgcmVzdWx0ID0gQ29tcGFyYXRvckJ1aWxkZXIuZHluYW1pY1NvcnQoXG4gICAgICAgICAgcHJvcHNbaV0sXG4gICAgICAgICAgQ29tcGFyYXRvckJ1aWxkZXIuTkFUVVJBTF9WQUxVRV9DT01QQVJBVE9SLFxuICAgICAgICAgIENvbXBhcmF0b3JCdWlsZGVyLkFMUEhBTlVNX1NUUklOR19DT01QQVJBVE9SXG4gICAgICAgICkob2JqMSwgb2JqMilcbiAgICAgICAgaSsrXG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzdGF0aWMgZHluYW1pY1NvcnQ8VCA9IGFueT4oXG4gICAgcHJvcGVydHk6IHN0cmluZyxcbiAgICBnZW5lcmljVmFsdWVDb21wYXJhdG9yOiBDb21wYXJhdG9yRm48VD4sXG4gICAgc3RyaW5nVmFsdWVDb21wYXJhdG9yOiBDb21wYXJhdG9yRm48c3RyaW5nPlxuICApOiBDb21wYXJhdG9yRm48VD4ge1xuICAgIGxldCBzb3J0T3JkZXIgPSAxXG4gICAgaWYgKHByb3BlcnR5WzBdID09PSAnLScpIHtcbiAgICAgIHNvcnRPcmRlciA9IC0xXG4gICAgICBwcm9wZXJ0eSA9IHByb3BlcnR5LnN1YnN0cmluZygxKVxuICAgIH1cblxuICAgIHJldHVybiAoYSwgYikgPT4ge1xuICAgICAgY29uc3QgYVZhbHVlID0gQ29tcGFyYXRvckJ1aWxkZXIucmVzb2x2ZVByb3BlcnR5KGEsIHByb3BlcnR5KVxuICAgICAgY29uc3QgYlZhbHVlID0gQ29tcGFyYXRvckJ1aWxkZXIucmVzb2x2ZVByb3BlcnR5KGIsIHByb3BlcnR5KVxuICAgICAgbGV0IHJlc3VsdDogbnVtYmVyXG4gICAgICBpZiAodHlwZW9mIGFWYWx1ZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIGJWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzdWx0ID0gc3RyaW5nVmFsdWVDb21wYXJhdG9yKGFWYWx1ZSwgYlZhbHVlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gZ2VuZXJpY1ZhbHVlQ29tcGFyYXRvcihhVmFsdWUsIGJWYWx1ZSlcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQgKiBzb3J0T3JkZXJcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZXNvbHZlUHJvcGVydHkob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IHBhcnRzID0gcHJvcGVydHkuc3BsaXQoJy4nKVxuICAgIGxldCByZXNvbHZlZDogYW55ID0gb2JqXG5cbiAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgIGlmICghcmVzb2x2ZWQpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIHJlc29sdmVkID0gcmVzb2x2ZWRbcGFydF1cbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVkXG4gIH1cbn1cbiJdfQ==
@@ -1,12 +0,0 @@
1
- export default class FilterCommons {
2
- static isArrayAndNotEmpty(value) {
3
- return this.isArray(value) && this.isNotEmptyArray(value);
4
- }
5
- static isArray(value) {
6
- return value !== null && Array.isArray(value);
7
- }
8
- static isNotEmptyArray(value) {
9
- return value.length > 0;
10
- }
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbW1vbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlci1jb21tb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxPQUFPLE9BQU8sYUFBYTtJQUN6QixNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBa0I7UUFDakQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBa0I7UUFDdEMsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBa0I7UUFDOUMsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJWYWx1ZSB9IGZyb20gJy4vZmlsdGVyLXZhbHVlJ1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWx0ZXJDb21tb25zIHtcbiAgcHVibGljIHN0YXRpYyBpc0FycmF5QW5kTm90RW1wdHkodmFsdWU6IEZpbHRlclZhbHVlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNBcnJheSh2YWx1ZSkgJiYgdGhpcy5pc05vdEVtcHR5QXJyYXkodmFsdWUpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzQXJyYXkodmFsdWU6IEZpbHRlclZhbHVlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzTm90RW1wdHlBcnJheSh2YWx1ZTogRmlsdGVyVmFsdWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUubGVuZ3RoID4gMFxuICB9XG59XG4iXX0=
@@ -1,135 +0,0 @@
1
- import { Filter } from './filter';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { distinctUntilChanged } from 'rxjs/operators';
4
- import { FilterUtil } from '../../utils/filter-util';
5
- export class FilterContext {
6
- constructor() {
7
- /***************************************************************************
8
- * *
9
- * Fields *
10
- * *
11
- **************************************************************************/
12
- this._filters$ = new BehaviorSubject([]);
13
- /***************************************************************************
14
- * *
15
- * Private methods *
16
- * *
17
- **************************************************************************/
18
- }
19
- static empty() {
20
- return new FilterContext();
21
- }
22
- /***************************************************************************
23
- * *
24
- * Static Utilities *
25
- * *
26
- **************************************************************************/
27
- /**
28
- * Update the given filters with new ones, merging the two.
29
- * The updated filters take precedence.
30
- * @param filters
31
- * @param updatedFilters
32
- */
33
- static updateFilters(filters, updatedFilters) {
34
- const filterMap = new Map();
35
- if (filters) {
36
- filters.forEach((f) => filterMap.set(f.key, f));
37
- }
38
- if (updatedFilters) {
39
- updatedFilters.forEach((f) => {
40
- if (Filter.hasValue(f)) {
41
- filterMap.set(f.key, f);
42
- }
43
- else {
44
- if (filterMap.has(f.key)) {
45
- filterMap.delete(f.key);
46
- }
47
- }
48
- });
49
- }
50
- return Array.from(filterMap.values());
51
- }
52
- static of(filters) {
53
- const filterContext = new FilterContext();
54
- filterContext.replaceFilters(filters);
55
- return filterContext;
56
- }
57
- /***************************************************************************
58
- * *
59
- * Read API *
60
- * *
61
- **************************************************************************/
62
- get isEmpty() {
63
- return this.filtersSnapshot.length == 0;
64
- }
65
- get filters() {
66
- return this._filters$
67
- .asObservable()
68
- .pipe(distinctUntilChanged((a, b) => FilterUtil.equals(a, b)));
69
- }
70
- get filtersSnapshot() {
71
- return [...this._filters$.getValue()];
72
- }
73
- findFilterValue(key) {
74
- const f = this.findFilter(key);
75
- return f ? f.value : undefined;
76
- }
77
- findFilter(key) {
78
- return this.filtersSnapshot.filter((f) => f.key === key).find((first) => true);
79
- }
80
- /***************************************************************************
81
- * *
82
- * Public API *
83
- * *
84
- **************************************************************************/
85
- removeFilter(key) {
86
- const current = this.filtersSnapshot;
87
- const newFilters = current.filter((f) => f.key !== key);
88
- if (current.length !== newFilters.length) {
89
- this.replaceFilters(newFilters);
90
- }
91
- }
92
- /**
93
- * This method updatees / adds the given filter, leaving
94
- * existing ones untouched.
95
- * @param updatedFilter
96
- */
97
- updateFilter(updatedFilter) {
98
- if (updatedFilter) {
99
- this.updateFilters([updatedFilter]);
100
- }
101
- }
102
- /**
103
- * This method updates / adds the given filters, leaving
104
- * existing ones untouched.
105
- * @param updatedFilters
106
- */
107
- updateFilters(updatedFilters) {
108
- if (updatedFilters && updatedFilters.length > 0) {
109
- this.replaceFilters(FilterContext.updateFilters(this.filtersSnapshot, updatedFilters));
110
- }
111
- }
112
- /**
113
- * Replace all existing filters with the given new ones.
114
- * @param newFilters
115
- */
116
- replaceFilters(newFilters) {
117
- this._filters$.next(newFilters || []);
118
- }
119
- clear() {
120
- this.replaceFilters([]);
121
- }
122
- mergeFilters(filters) {
123
- filters.forEach((filter) => this.mergeFilter(filter));
124
- }
125
- mergeFilter(filter) {
126
- const existing = this.findFilter(filter.key);
127
- if (!existing) {
128
- this.updateFilter(filter);
129
- }
130
- else {
131
- this.updateFilter(Filter.merge(existing, filter));
132
- }
133
- }
134
- }
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlci1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDakMsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUNsRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFFcEQsTUFBTSxPQUFPLGFBQWE7SUFBMUI7UUFLRTs7OztvRkFJNEU7UUFFM0QsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFBO1FBb0k5RDs7OztvRkFJNEU7SUFDOUUsQ0FBQztJQW5KUSxNQUFNLENBQUMsS0FBSztRQUNqQixPQUFPLElBQUksYUFBYSxFQUFFLENBQUE7SUFDNUIsQ0FBQztJQVVEOzs7O2dGQUk0RTtJQUU1RTs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBaUIsRUFBRSxjQUF3QjtRQUNyRSxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQTtRQUUzQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakQsQ0FBQztRQUVELElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUMzQixJQUFJLE1BQU0sQ0FBQyxRQUFR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QTtRQUN4RixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGNBQWMsQ0FBQyxVQUFxQjtRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFFTSxZQUFZLENBQUMsT0FBaUI7UUFDbkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7SUFFTSxXQUFXLENBQUMsTUFBYztRQUMvQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUM1QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzNCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQ25ELENBQUM7SUFDSCxDQUFDO0NBT0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuL2ZpbHRlcidcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgRmlsdGVyVXRpbCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbHRlci11dGlsJ1xuXG5leHBvcnQgY2xhc3MgRmlsdGVyQ29udGV4dCB7XG4gIHB1YmxpYyBzdGF0aWMgZW1wdHkoKTogRmlsdGVyQ29udGV4dCB7XG4gICAgcmV0dXJuIG5ldyBGaWx0ZXJDb250ZXh0KClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN0YXRpYyBVdGlsaXRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgZ2l2ZW4gZmlsdGVycyB3aXRoIG5ldyBvbmVzLCBtZXJnaW5nIHRoZSB0d28uXG4gICAqIFRoZSB1cGRhdGVkIGZpbHRlcnMgdGFrZSBwcmVjZWRlbmNlLlxuICAgKiBAcGFyYW0gZmlsdGVyc1xuICAgKiBAcGFyYW0gdXBkYXRlZEZpbHRlcnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXBkYXRlRmlsdGVycyhmaWx0ZXJzOiBGaWx0ZXJbXSwgdXBkYXRlZEZpbHRlcnM6IEZpbHRlcltdKTogRmlsdGVyW10ge1xuICAgIGNvbnN0IGZpbHRlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBGaWx0ZXI+KClcblxuICAgIGlmIChmaWx0ZXJzKSB7XG4gICAgICBmaWx0ZXJzLmZvckVhY2goKGYpID0+IGZpbHRlck1hcC5zZXQoZi5rZXksIGYpKVxuICAgIH1cblxuICAgIGlmICh1cGRhdGVkRmlsdGVycykge1xuICAgICAgdXBkYXRlZEZpbHRlcnMuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgICBpZiAoRmlsdGVyLmhhc1ZhbHVlKGYpKSB7XG4gICAgICAgICAgZmlsdGVyTWFwLnNldChmLmtleSwgZilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZmlsdGVyTWFwLmhhcyhmLmtleSkpIHtcbiAgICAgICAgICAgIGZpbHRlck1hcC5kZWxldGUoZi5rZXkpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5mcm9tKGZpbHRlck1hcC52YWx1ZXMoKSlcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgb2YoZmlsdGVyczogRmlsdGVyW10pOiBGaWx0ZXJDb250ZXh0IHtcbiAgICBjb25zdCBmaWx0ZXJDb250ZXh0ID0gbmV3IEZpbHRlckNvbnRleHQoKVxuICAgIGZpbHRlckNvbnRleHQucmVwbGFjZUZpbHRlcnMoZmlsdGVycylcbiAgICByZXR1cm4gZmlsdGVyQ29udGV4dFxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFJlYWQgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnNTbmFwc2hvdC5sZW5ndGggPT0gMFxuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJzKCk6IE9ic2VydmFibGU8RmlsdGVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVycyRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IEZpbHRlclV0aWwuZXF1YWxzKGEsIGIpKSlcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsdGVyc1NuYXBzaG90KCk6IEZpbHRlcltdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX2ZpbHRlcnMkLmdldFZhbHVlKCldXG4gIH1cblxuICBwdWJsaWMgZmluZEZpbHRlclZhbHVlKGtleTogc3RyaW5nKTogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGYgPSB0aGlzLmZpbmRGaWx0ZXIoa2V5KVxuICAgIHJldHVybiBmID8gZi52YWx1ZSA6IHVuZGVmaW5lZFxuICB9XG5cbiAgcHVibGljIGZpbmRGaWx0ZXIoa2V5OiBzdHJpbmcpOiBGaWx0ZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnNTbmFwc2hvdC5maWx0ZXIoKGYpID0+IGYua2V5ID09PSBrZXkpLmZpbmQoKGZpcnN0KSA9PiB0cnVlKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHJlbW92ZUZpbHRlcihrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmZpbHRlcnNTbmFwc2hvdFxuICAgIGNvbnN0IG5ld0ZpbHRlcnMgPSBjdXJyZW50LmZpbHRlcigoZikgPT4gZi5rZXkgIT09IGtleSlcbiAgICBpZiAoY3VycmVudC5sZW5ndGggIT09IG5ld0ZpbHRlcnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnJlcGxhY2VGaWx0ZXJzKG5ld0ZpbHRlcnMpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHVwZGF0ZWVzIC8gYWRkcyB0aGUgZ2l2ZW4gZmlsdGVyLCBsZWF2aW5nXG4gICAqIGV4aXN0aW5nIG9uZXMgdW50b3VjaGVkLlxuICAgKiBAcGFyYW0gdXBkYXRlZEZpbHRlclxuICAgKi9cbiAgcHVibGljIHVwZGF0ZUZpbHRlcih1cGRhdGVkRmlsdGVyPzogRmlsdGVyKTogdm9pZCB7XG4gICAgaWYgKHVwZGF0ZWRGaWx0ZXIpIHtcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVycyhbdXBkYXRlZEZpbHRlcl0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHVwZGF0ZXMgLyBhZGRzIHRoZSBnaXZlbiBmaWx0ZXJzLCBsZWF2aW5nXG4gICAqIGV4aXN0aW5nIG9uZXMgdW50b3VjaGVkLlxuICAgKiBAcGFyYW0gdXBkYXRlZEZpbHRlcnNcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVGaWx0ZXJzKHVwZGF0ZWRGaWx0ZXJzPzogRmlsdGVyW10pOiB2b2lkIHtcbiAgICBpZiAodXBkYXRlZEZpbHRlcnMgJiYgdXBkYXRlZEZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5yZXBsYWNlRmlsdGVycyhGaWx0ZXJDb250ZXh0LnVwZGF0ZUZpbHRlcnModGhpcy5maWx0ZXJzU25hcHNob3QsIHVwZGF0ZWRGaWx0ZXJzKSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZSBhbGwgZXhpc3RpbmcgZmlsdGVycyB3aXRoIHRoZSBnaXZlbiBuZXcgb25lcy5cbiAgICogQHBhcmFtIG5ld0ZpbHRlcnNcbiAgICovXG4gIHB1YmxpYyByZXBsYWNlRmlsdGVycyhuZXdGaWx0ZXJzPzogRmlsdGVyW10pIHtcbiAgICB0aGlzLl9maWx0ZXJzJC5uZXh0KG5ld0ZpbHRlcnMgfHwgW10pXG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5yZXBsYWNlRmlsdGVycyhbXSlcbiAgfVxuXG4gIHB1YmxpYyBtZXJnZUZpbHRlcnMoZmlsdGVyczogRmlsdGVyW10pIHtcbiAgICBmaWx0ZXJzLmZvckVhY2goKGZpbHRlcikgPT4gdGhpcy5tZXJnZUZpbHRlcihmaWx0ZXIpKVxuICB9XG5cbiAgcHVibGljIG1lcmdlRmlsdGVyKGZpbHRlcjogRmlsdGVyKTogdm9pZCB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmZpbmRGaWx0ZXIoZmlsdGVyLmtleSlcbiAgICBpZiAoIWV4aXN0aW5nKSB7XG4gICAgICB0aGlzLnVwZGF0ZUZpbHRlcihmaWx0ZXIpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVyKEZpbHRlci5tZXJnZShleGlzdGluZywgZmlsdGVyKSlcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZmlsdGVycy9maWx0ZXItdmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZpbHRlclZhbHVlID0gc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsXG4iXX0=
@@ -1,104 +0,0 @@
1
- import { Objects } from '../../objects';
2
- import { CollectionUtil } from '../../utils/collection-util';
3
- export class Filter {
4
- /***************************************************************************
5
- * *
6
- * Constructor *
7
- * *
8
- **************************************************************************/
9
- constructor(key, value) {
10
- if (!key) {
11
- throw new Error('ArgumentNull: Filter.key can not be null!');
12
- }
13
- this.key = key;
14
- this.value = value;
15
- }
16
- /***************************************************************************
17
- * *
18
- * Public API *
19
- * *
20
- **************************************************************************/
21
- static merge(current, forcedFilter) {
22
- let newFilterValue;
23
- if (Filter.isMulti(current) || Filter.isMulti(forcedFilter)) {
24
- // We have a list of values. We just have to ensure our forced values are in there
25
- const valueSet = new Set();
26
- Filter.addValuesToSet(valueSet, current);
27
- Filter.addValuesToSet(valueSet, forcedFilter);
28
- newFilterValue = Array.from(valueSet);
29
- }
30
- else {
31
- newFilterValue = forcedFilter.value;
32
- }
33
- return new Filter(current.key, newFilterValue);
34
- }
35
- /**
36
- * Checks if this filter supports multiple values.
37
- * @param filter
38
- */
39
- static isMulti(filter) {
40
- return Array.isArray(filter.value);
41
- }
42
- /**
43
- * Checks if this filter has a value.
44
- * This is the case when the value is non-null.
45
- * In case of an array, empty and non-empty return both true.
46
- */
47
- static hasValue(self) {
48
- if (!self) {
49
- return false;
50
- }
51
- if (Objects.nonNull(self.value)) {
52
- return true;
53
- }
54
- return false;
55
- }
56
- /**
57
- * Checks this filter has the same value as the other given filter.
58
- * @param self
59
- * @param other
60
- */
61
- static equals(self, other) {
62
- if (self === other) {
63
- return true;
64
- } // Same obj reference
65
- if (!self) {
66
- return false;
67
- }
68
- if (!other) {
69
- return false;
70
- }
71
- if (self.key !== other.key) {
72
- return false;
73
- }
74
- if (self.value === other.value) {
75
- return true;
76
- } // Same key and same value reference
77
- // In case the filter has a multi value array, we need to compare those by value
78
- if (Array.isArray(self.value) || Array.isArray(other.value)) {
79
- const valueArr = Array.isArray(self.value) ? self.value : [self.value];
80
- const otherArr = Array.isArray(other.value) ? other.value : [other.value];
81
- return CollectionUtil.equalSetDeep(new Set(valueArr), new Set(otherArr));
82
- }
83
- else {
84
- return false; // Otherwise, they are not equal
85
- }
86
- }
87
- /***************************************************************************
88
- * *
89
- * Private methods *
90
- * *
91
- **************************************************************************/
92
- static addValuesToSet(valueSet, filter) {
93
- const filterValue = filter.value;
94
- if (Array.isArray(filterValue)) {
95
- const values = filterValue;
96
- values.forEach((v) => valueSet.add(v));
97
- }
98
- else {
99
- const value = filterValue;
100
- valueSet.add(value);
101
- }
102
- }
103
- }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZmlsdGVycy9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFFNUQsTUFBTSxPQUFPLE1BQU07SUFtQmpCOzs7O2dGQUk0RTtJQUU1RSxZQUFZLEdBQVcsRUFBRSxLQUErQjtRQUN0RCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUE7UUFDOUQsQ0FBQztRQUVELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO1FBQ2QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDcEIsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQWUsRUFBRSxZQUFvQjtRQUN2RCxJQUFJLGNBQWlDLENBQUE7UUFDckMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUM1RCxrRkFBa0Y7WUFDbEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtZQUNsQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQTtZQUN4QyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQTtZQUM3QyxjQUFjLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNOLGNBQWMsR0FBRyxZ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UUFDckIsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9iamVjdHMgfSBmcm9tICcuLi8uLi9vYmplY3RzJ1xuaW1wb3J0IHsgQ29sbGVjdGlvblV0aWwgfSBmcm9tICcuLi8uLi91dGlscy9jb2xsZWN0aW9uLXV0aWwnXG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXIge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogVGhlIGZpbHRlciBrZXkuXG4gICAqIFVuaXF1ZSBpbnNpZGUgYSBGaWx0ZXJDb250ZXh0IG9yIEZpbHRlciByZXF1ZXN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGtleTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFRoZSBmaWx0ZXIgdmFsdWUgYXMgc3RyaW5nLlxuICAgKiBNdWx0aXBsZSBzdHJpbmcgdmFsdWVzIGFyZSBzdXBwb3J0ZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbFxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsKSB7XG4gICAgaWYgKCFrZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXJndW1lbnROdWxsOiBGaWx0ZXIua2V5IGNhbiBub3QgYmUgbnVsbCEnKVxuICAgIH1cblxuICAgIHRoaXMua2V5ID0ga2V5XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc3RhdGljIG1lcmdlKGN1cnJlbnQ6IEZpbHRlciwgZm9yY2VkRmlsdGVyOiBGaWx0ZXIpOiBGaWx0ZXIge1xuICAgIGxldCBuZXdGaWx0ZXJWYWx1ZTogc3RyaW5nIHwgc3RyaW5nW11cbiAgICBpZiAoRmlsdGVyLmlzTXVsdGkoY3VycmVudCkgfHwgRmlsdGVyLmlzTXVsdGkoZm9yY2VkRmlsdGVyKSkge1xuICAgICAgLy8gV2UgaGF2ZSBhIGxpc3Qgb2YgdmFsdWVzLiBXZSBqdXN0IGhhdmUgdG8gZW5zdXJlIG91ciBmb3JjZWQgdmFsdWVzIGFyZSBpbiB0aGVyZVxuICAgICAgY29uc3QgdmFsdWVTZXQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICAgICAgRmlsdGVyLmFkZFZhbHVlc1RvU2V0KHZhbHVlU2V0LCBjdXJyZW50KVxuICAgICAgRmlsdGVyLmFkZFZhbHVlc1RvU2V0KHZhbHVlU2V0LCBmb3JjZWRGaWx0ZXIpXG4gICAgICBuZXdGaWx0ZXJWYWx1ZSA9IEFycmF5LmZyb20odmFsdWVTZXQpXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0ZpbHRlclZhbHVlID0gZm9yY2VkRmlsdGVyLnZhbHVlXG4gICAgfVxuICAgIHJldHVybiBuZXcgRmlsdGVyKGN1cnJlbnQua2V5LCBuZXdGaWx0ZXJWYWx1ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBmaWx0ZXIgc3VwcG9ydHMgbXVsdGlwbGUgdmFsdWVzLlxuICAgKiBAcGFyYW0gZmlsdGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzTXVsdGkoZmlsdGVyOiBGaWx0ZXIpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShmaWx0ZXIudmFsdWUpXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgZmlsdGVyIGhhcyBhIHZhbHVlLlxuICAgKiBUaGlzIGlzIHRoZSBjYXNlIHdoZW4gdGhlIHZhbHVlIGlzIG5vbi1udWxsLlxuICAgKiBJbiBjYXNlIG9mIGFuIGFycmF5LCBlbXB0eSBhbmQgbm9uLWVtcHR5IHJldHVybiBib3RoIHRydWUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhhc1ZhbHVlKHNlbGY6IEZpbHRlcik6IGJvb2xlYW4ge1xuICAgIGlmICghc2VsZikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKE9iamVjdHMubm9uTnVsbChzZWxmLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHRoaXMgZmlsdGVyIGhhcyB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgb3RoZXIgZ2l2ZW4gZmlsdGVyLlxuICAgKiBAcGFyYW0gc2VsZlxuICAgKiBAcGFyYW0gb3RoZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXF1YWxzKHNlbGY6IEZpbHRlciwgb3RoZXI6IEZpbHRlcik6IGJvb2xlYW4ge1xuICAgIGlmIChzZWxmID09PSBvdGhlcikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IC8vIFNhbWUgb2JqIHJlZmVyZW5jZVxuXG4gICAgaWYgKCFzZWxmKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgaWYgKCFvdGhlcikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIGlmIChzZWxmLmtleSAhPT0gb3RoZXIua2V5KSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgaWYgKHNlbGYudmFsdWUgPT09IG90aGVyLnZhbHVlKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gLy8gU2FtZSBrZXkgYW5kIHNhbWUgdmFsdWUgcmVmZXJlbmNlXG5cbiAgICAvLyBJbiBjYXNlIHRoZSBmaWx0ZXIgaGFzIGEgbXVsdGkgdmFsdWUgYXJyYXksIHdlIG5lZWQgdG8gY29tcGFyZSB0aG9zZSBieSB2YWx1ZVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2VsZi52YWx1ZSkgfHwgQXJyYXkuaXNBcnJheShvdGhlci52YWx1ZSkpIHtcbiAgICAgIGNvbnN0IHZhbHVlQXJyID0gQXJyYXkuaXNBcnJheShzZWxmLnZhbHVlKSA/IChzZWxmLnZhbHVlIGFzIHN0cmluZ1tdKSA6IFtzZWxmLnZhbHVlXVxuICAgICAgY29uc3Qgb3RoZXJBcnIgPSBBcnJheS5pc0FycmF5KG90aGVyLnZhbHVlKSA/IChvdGhlci52YWx1ZSBhcyBzdHJpbmdbXSkgOiBbb3RoZXIudmFsdWVdXG4gICAgICByZXR1cm4gQ29sbGVjdGlvblV0aWwuZXF1YWxTZXREZWVwKG5ldyBTZXQ8c3RyaW5nPih2YWx1ZUFyciksIG5ldyBTZXQ8c3RyaW5nPihvdGhlckFycikpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZSAvLyBPdGhlcndpc2UsIHRoZXkgYXJlIG5vdCBlcXVhbFxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc3RhdGljIGFkZFZhbHVlc1RvU2V0KHZhbHVlU2V0OiBTZXQ8c3RyaW5nPiwgZmlsdGVyOiBGaWx0ZXIpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IGZpbHRlci52YWx1ZVxuICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlclZhbHVlKSkge1xuICAgICAgY29uc3QgdmFsdWVzID0gZmlsdGVyVmFsdWUgYXMgc3RyaW5nW11cbiAgICAgIHZhbHVlcy5mb3JFYWNoKCh2KSA9PiB2YWx1ZVNldC5hZGQodikpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZmlsdGVyVmFsdWUgYXMgc3RyaW5nXG4gICAgICB2YWx1ZVNldC5hZGQodmFsdWUpXG4gICAgfVxuICB9XG59XG4iXX0=