@elderbyte/ngx-starter 18.15.2 → 19.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. package/fesm2022/elderbyte-ngx-starter.mjs +1097 -1125
  2. package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
  3. package/lib/common/forms/elder-form-field-control-base.directive.d.ts +1 -1
  4. package/lib/common/forms/elder-from-field-base.d.ts +1 -1
  5. package/lib/common/forms/elder-from-field-customizable-base.d.ts +1 -1
  6. package/lib/common/forms/elder-from-field-entity-base.d.ts +1 -1
  7. package/lib/common/forms/elder-from-field-multi-entity-base.d.ts +1 -1
  8. package/lib/common/forms/form-field-base.component.d.ts +1 -1
  9. package/lib/common/forms/multi-model-base.component.d.ts +1 -1
  10. package/lib/common/forms/template-composite-control.d.ts +1 -1
  11. package/lib/common/forms/value-accessor-base.d.ts +1 -1
  12. package/lib/common/reactive-map.d.ts +1 -1
  13. package/lib/components/data-view/base/elder-data-view-base.d.ts +1 -1
  14. package/lib/components/forms/directives/base/elder-class-hostbinding-base.d.ts +1 -1
  15. package/lib/components/iframes/typed-event-message.d.ts +1 -1
  16. package/lib/components/panels/elder-panel.module.d.ts +5 -7
  17. package/lib/components/select/elder-select-base.d.ts +1 -1
  18. package/lib/components/select/multi/elder-multi-select-base.d.ts +1 -1
  19. package/lib/components/select/multi/elder-multi-select-form-field.d.ts +1 -1
  20. package/lib/components/select/single/elder-select-form-field.d.ts +1 -1
  21. package/package.json +6 -8
  22. package/src/lib/components/errors/exception-detail/elder-exception-detail.component.scss +2 -3
  23. package/src/lib/components/panels/flat/_elder-panel-theme.scss +5 -1
  24. package/esm2022/elderbyte-ngx-starter.mjs +0 -5
  25. package/esm2022/lib/common/arrays.mjs +0 -29
  26. package/esm2022/lib/common/async/public_api.mjs +0 -2
  27. package/esm2022/lib/common/async/refreshing-entity.mjs +0 -88
  28. package/esm2022/lib/common/csv/csv-serializer.mjs +0 -55
  29. package/esm2022/lib/common/csv/csv-spec.mjs +0 -99
  30. package/esm2022/lib/common/csv/public_api.mjs +0 -3
  31. package/esm2022/lib/common/data/continuable-listing.mjs +0 -10
  32. package/esm2022/lib/common/data/data-context/data-context-active-page.mjs +0 -131
  33. package/esm2022/lib/common/data/data-context/data-context-auto-starter.mjs +0 -78
  34. package/esm2022/lib/common/data/data-context/data-context-base.mjs +0 -339
  35. package/esm2022/lib/common/data/data-context/data-context-builder.mjs +0 -245
  36. package/esm2022/lib/common/data/data-context/data-context-continuable-base.mjs +0 -67
  37. package/esm2022/lib/common/data/data-context/data-context-continuable-paged.mjs +0 -142
  38. package/esm2022/lib/common/data/data-context/data-context-continuable-token.mjs +0 -146
  39. package/esm2022/lib/common/data/data-context/data-context-life-cycle-binding.mjs +0 -32
  40. package/esm2022/lib/common/data/data-context/data-context-simple.mjs +0 -61
  41. package/esm2022/lib/common/data/data-context/data-context-source-event-binding.mjs +0 -63
  42. package/esm2022/lib/common/data/data-context/data-context-status.mjs +0 -46
  43. package/esm2022/lib/common/data/data-context/data-context.mjs +0 -30
  44. package/esm2022/lib/common/data/data-context/indexed-entities.mjs +0 -153
  45. package/esm2022/lib/common/data/data-context/mat-table-data-context-binding.mjs +0 -145
  46. package/esm2022/lib/common/data/data-context/public_api.mjs +0 -15
  47. package/esm2022/lib/common/data/datasource/data-source-adapter.mjs +0 -59
  48. package/esm2022/lib/common/data/datasource/data-source-base.mjs +0 -38
  49. package/esm2022/lib/common/data/datasource/data-source-change-event.mjs +0 -34
  50. package/esm2022/lib/common/data/datasource/data-source-processor.mjs +0 -198
  51. package/esm2022/lib/common/data/datasource/data-source.mjs +0 -23
  52. package/esm2022/lib/common/data/datasource/entity-id-util.mjs +0 -11
  53. package/esm2022/lib/common/data/datasource/fetcher/delegate-data-source.mjs +0 -127
  54. package/esm2022/lib/common/data/datasource/local/local-list-data-source.mjs +0 -153
  55. package/esm2022/lib/common/data/datasource/local/local-paged-data-source.mjs +0 -75
  56. package/esm2022/lib/common/data/datasource/patch/deep-partial-patcher.mjs +0 -58
  57. package/esm2022/lib/common/data/datasource/public_api.mjs +0 -10
  58. package/esm2022/lib/common/data/datasource/rest/public_api.mjs +0 -2
  59. package/esm2022/lib/common/data/datasource/rest/rest-client.mjs +0 -290
  60. package/esm2022/lib/common/data/entity-set-patch.mjs +0 -161
  61. package/esm2022/lib/common/data/field-comparator.mjs +0 -108
  62. package/esm2022/lib/common/data/filters/filter-commons.mjs +0 -12
  63. package/esm2022/lib/common/data/filters/filter-context.mjs +0 -135
  64. package/esm2022/lib/common/data/filters/filter-value.mjs +0 -2
  65. package/esm2022/lib/common/data/filters/filter.mjs +0 -104
  66. package/esm2022/lib/common/data/http-params-builder.mjs +0 -116
  67. package/esm2022/lib/common/data/page.mjs +0 -58
  68. package/esm2022/lib/common/data/public_api.mjs +0 -12
  69. package/esm2022/lib/common/data/required-filter-evaluator.mjs +0 -71
  70. package/esm2022/lib/common/data/sort-context.mjs +0 -73
  71. package/esm2022/lib/common/data/sort.mjs +0 -11
  72. package/esm2022/lib/common/data/token-chunk-request.mjs +0 -8
  73. package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +0 -84
  74. package/esm2022/lib/common/enums/public_api.mjs +0 -2
  75. package/esm2022/lib/common/errors/exception-detail.mjs +0 -2
  76. package/esm2022/lib/common/errors/public_api.mjs +0 -3
  77. package/esm2022/lib/common/errors/standard-error-detail.mjs +0 -2
  78. package/esm2022/lib/common/exceptions/public_api.mjs +0 -2
  79. package/esm2022/lib/common/exceptions/unreachable-case-error.mjs +0 -8
  80. package/esm2022/lib/common/format/bytes-format.mjs +0 -15
  81. package/esm2022/lib/common/format/bytes-per-second-format.mjs +0 -41
  82. package/esm2022/lib/common/format/curency-format-util.mjs +0 -43
  83. package/esm2022/lib/common/format/duration-format-util.mjs +0 -44
  84. package/esm2022/lib/common/format/iso-interval-format-util.mjs +0 -111
  85. package/esm2022/lib/common/format/public_api.mjs +0 -6
  86. package/esm2022/lib/common/forms/elder-entity-value-accessor.mjs +0 -22
  87. package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +0 -188
  88. package/esm2022/lib/common/forms/elder-from-field-base.mjs +0 -94
  89. package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +0 -52
  90. package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +0 -39
  91. package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +0 -47
  92. package/esm2022/lib/common/forms/elder-multi-entity-value-accessor.mjs +0 -22
  93. package/esm2022/lib/common/forms/form-field-base.component.mjs +0 -111
  94. package/esm2022/lib/common/forms/multi-model-base.component.mjs +0 -32
  95. package/esm2022/lib/common/forms/public_api.mjs +0 -12
  96. package/esm2022/lib/common/forms/template-composite-control.mjs +0 -136
  97. package/esm2022/lib/common/forms/value-accessor-base.mjs +0 -146
  98. package/esm2022/lib/common/forms/view-providers.mjs +0 -30
  99. package/esm2022/lib/common/http/http-client-builder.service.mjs +0 -14
  100. package/esm2022/lib/common/http/http-client-pristine.mjs +0 -21
  101. package/esm2022/lib/common/http/public_api.mjs +0 -5
  102. package/esm2022/lib/common/http/transfer/data-transfer-base.mjs +0 -77
  103. package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +0 -106
  104. package/esm2022/lib/common/http/transfer/data-transfer-progress-aggregate.mjs +0 -60
  105. package/esm2022/lib/common/http/transfer/data-transfer-progress.mjs +0 -17
  106. package/esm2022/lib/common/http/transfer/data-transfer-state.mjs +0 -82
  107. package/esm2022/lib/common/http/transfer/data-transfer-status.mjs +0 -24
  108. package/esm2022/lib/common/http/transfer/data-transfer.mjs +0 -2
  109. package/esm2022/lib/common/http/transfer/http-data-transfer.mjs +0 -132
  110. package/esm2022/lib/common/http/transfer/public_api.mjs +0 -7
  111. package/esm2022/lib/common/http/upload/file-upload-client.mjs +0 -42
  112. package/esm2022/lib/common/i18n/entity/elder-multi-translate-loader.mjs +0 -53
  113. package/esm2022/lib/common/i18n/entity/impl/i18n-base.mjs +0 -6
  114. package/esm2022/lib/common/i18n/entity/impl/i18n-text.mjs +0 -16
  115. package/esm2022/lib/common/i18n/entity/impl/translated.mjs +0 -15
  116. package/esm2022/lib/common/i18n/entity/language-tag.mjs +0 -12
  117. package/esm2022/lib/common/i18n/entity/locale.mjs +0 -12
  118. package/esm2022/lib/common/i18n/entity/localisation-picker.mjs +0 -30
  119. package/esm2022/lib/common/i18n/entity/localized.mjs +0 -2
  120. package/esm2022/lib/common/i18n/entity/public_api.mjs +0 -10
  121. package/esm2022/lib/common/i18n/entity/translated-converter.mjs +0 -18
  122. package/esm2022/lib/common/i18n/entity/translated.mjs +0 -2
  123. package/esm2022/lib/common/i18n/public_api.mjs +0 -2
  124. package/esm2022/lib/common/json-map.mjs +0 -17
  125. package/esm2022/lib/common/objects.mjs +0 -43
  126. package/esm2022/lib/common/public_api.mjs +0 -23
  127. package/esm2022/lib/common/reactive-map.mjs +0 -69
  128. package/esm2022/lib/common/rxjs/operators/lazy-sample.mjs +0 -34
  129. package/esm2022/lib/common/rxjs/public_api.mjs +0 -2
  130. package/esm2022/lib/common/selection/public_api.mjs +0 -2
  131. package/esm2022/lib/common/selection/selection-model.mjs +0 -213
  132. package/esm2022/lib/common/sets.mjs +0 -45
  133. package/esm2022/lib/common/suggestion-provider.mjs +0 -12
  134. package/esm2022/lib/common/templates/template-slot-manager.mjs +0 -135
  135. package/esm2022/lib/common/theme-sizes.mjs +0 -2
  136. package/esm2022/lib/common/time/date-util.mjs +0 -91
  137. package/esm2022/lib/common/time/interval-coerce.mjs +0 -30
  138. package/esm2022/lib/common/time/interval.mjs +0 -442
  139. package/esm2022/lib/common/time/period-duration.mjs +0 -133
  140. package/esm2022/lib/common/time/public_api.mjs +0 -8
  141. package/esm2022/lib/common/time/temporal-plain-date-interval.mjs +0 -34
  142. package/esm2022/lib/common/time/temporal-util.mjs +0 -205
  143. package/esm2022/lib/common/time/time-util.mjs +0 -38
  144. package/esm2022/lib/common/url/elder-router.service.mjs +0 -54
  145. package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +0 -117
  146. package/esm2022/lib/common/url/public_api.mjs +0 -4
  147. package/esm2022/lib/common/url/url-query-params.mjs +0 -133
  148. package/esm2022/lib/common/utils/batcher.mjs +0 -35
  149. package/esm2022/lib/common/utils/collection-util.mjs +0 -111
  150. package/esm2022/lib/common/utils/filter-util.mjs +0 -133
  151. package/esm2022/lib/common/utils/focus-util.mjs +0 -23
  152. package/esm2022/lib/common/utils/input-utils.mjs +0 -6
  153. package/esm2022/lib/common/utils/next-number-util.mjs +0 -89
  154. package/esm2022/lib/common/utils/ng-zone-utils.mjs +0 -16
  155. package/esm2022/lib/common/utils/parse-util.mjs +0 -17
  156. package/esm2022/lib/common/utils/property-path-util.mjs +0 -28
  157. package/esm2022/lib/common/utils/public_api.mjs +0 -14
  158. package/esm2022/lib/common/utils/query-list-binding.mjs +0 -68
  159. package/esm2022/lib/common/utils/signal-input.mjs +0 -3
  160. package/esm2022/lib/common/utils/sort-util.mjs +0 -42
  161. package/esm2022/lib/common/utils/url-builder.mjs +0 -275
  162. package/esm2022/lib/common/utils/uuid-util.mjs +0 -28
  163. package/esm2022/lib/common/utils/value-wrapper.mjs +0 -19
  164. package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +0 -15
  165. package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +0 -20
  166. package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +0 -50
  167. package/esm2022/lib/components/auditing/elder-audit.module.mjs +0 -40
  168. package/esm2022/lib/components/auditing/i-audited-entity.mjs +0 -3
  169. package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +0 -162
  170. package/esm2022/lib/components/badge/elder-badge.directive.mjs +0 -124
  171. package/esm2022/lib/components/badge/elder-badge.module.mjs +0 -58
  172. package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +0 -13
  173. package/esm2022/lib/components/button-group/elder-button-group.module.mjs +0 -21
  174. package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +0 -118
  175. package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +0 -18
  176. package/esm2022/lib/components/card-organizer/card-organizer-data.mjs +0 -93
  177. package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +0 -220
  178. package/esm2022/lib/components/card-organizer/card-stack.mjs +0 -176
  179. package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +0 -62
  180. package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +0 -17
  181. package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +0 -167
  182. package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +0 -71
  183. package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +0 -171
  184. package/esm2022/lib/components/chips/elder-chips.module.mjs +0 -45
  185. package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +0 -57
  186. package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +0 -61
  187. package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +0 -46
  188. package/esm2022/lib/components/connectivity/public_api.mjs +0 -3
  189. package/esm2022/lib/components/containers/elder-containers.module.mjs +0 -18
  190. package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +0 -24
  191. package/esm2022/lib/components/containers/public_api.mjs +0 -2
  192. package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +0 -77
  193. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.mjs +0 -38
  194. package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +0 -38
  195. package/esm2022/lib/components/csv/elder-csv-stream-exporter.mjs +0 -114
  196. package/esm2022/lib/components/csv/elder-csv.module.mjs +0 -24
  197. package/esm2022/lib/components/currency/elder-currency.module.mjs +0 -18
  198. package/esm2022/lib/components/currency/elder-currency.pipe.mjs +0 -37
  199. package/esm2022/lib/components/currency/model/currency-code.mjs +0 -38
  200. package/esm2022/lib/components/currency/model/currency-unit-registry.mjs +0 -30
  201. package/esm2022/lib/components/currency/model/currency-unit.mjs +0 -10
  202. package/esm2022/lib/components/currency/model/currency.mjs +0 -15
  203. package/esm2022/lib/components/currency/public_api.mjs +0 -7
  204. package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +0 -91
  205. package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +0 -93
  206. package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +0 -102
  207. package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +0 -34
  208. package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +0 -57
  209. package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +0 -34
  210. package/esm2022/lib/components/data-view/base/data-view-options-provider-binding.mjs +0 -69
  211. package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +0 -265
  212. package/esm2022/lib/components/data-view/base/elder-data-view-options-provider.mjs +0 -44
  213. package/esm2022/lib/components/data-view/base/elder-data-view-options.mjs +0 -45
  214. package/esm2022/lib/components/data-view/base/elder-data-view.mjs +0 -3
  215. package/esm2022/lib/components/data-view/base/public_api.mjs +0 -6
  216. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-context.mjs +0 -30
  217. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-dc.directive.mjs +0 -55
  218. package/esm2022/lib/components/data-view/common/composite-sort/composite-sort.mjs +0 -68
  219. package/esm2022/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.mjs +0 -101
  220. package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +0 -45
  221. package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +0 -125
  222. package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +0 -140
  223. package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +0 -100
  224. package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +0 -103
  225. package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +0 -36
  226. package/esm2022/lib/components/data-view/common/selection/master-selection-state.mjs +0 -10
  227. package/esm2022/lib/components/data-view/elder-data-view-interaction-mode.mjs +0 -2
  228. package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +0 -345
  229. package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +0 -91
  230. package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +0 -75
  231. package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +0 -50
  232. package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +0 -79
  233. package/esm2022/lib/components/data-view/master-detail/elder-master-detail-mode.mjs +0 -2
  234. package/esm2022/lib/components/data-view/master-detail/elder-master-detail-provider.mjs +0 -20
  235. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +0 -119
  236. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +0 -116
  237. package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +0 -89
  238. package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +0 -23
  239. package/esm2022/lib/components/data-view/master-detail/master-detail-activation-event.mjs +0 -12
  240. package/esm2022/lib/components/data-view/public_api.mjs +0 -7
  241. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +0 -18
  242. package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +0 -104
  243. package/esm2022/lib/components/data-view/table/activation/activation-event-source.mjs +0 -7
  244. package/esm2022/lib/components/data-view/table/activation/elder-activation-context.mjs +0 -2
  245. package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +0 -114
  246. package/esm2022/lib/components/data-view/table/activation/elder-table-activation-options.mjs +0 -2
  247. package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +0 -315
  248. package/esm2022/lib/components/data-view/table/activation/item-activation-event.mjs +0 -8
  249. package/esm2022/lib/components/data-view/table/activation/item-activation-options.mjs +0 -7
  250. package/esm2022/lib/components/data-view/table/activation/public_api.mjs +0 -8
  251. package/esm2022/lib/components/data-view/table/elder-center-cell.directive.mjs +0 -23
  252. package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +0 -30
  253. package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +0 -73
  254. package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +0 -21
  255. package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +0 -338
  256. package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +0 -18
  257. package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +0 -92
  258. package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +0 -26
  259. package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +0 -156
  260. package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +0 -23
  261. package/esm2022/lib/components/data-view/table/elder-table.module.mjs +0 -184
  262. package/esm2022/lib/components/data-view/table/model/elder-column-layout.mjs +0 -110
  263. package/esm2022/lib/components/data-view/table/model/elder-table-model-cdk-table-binding.mjs +0 -85
  264. package/esm2022/lib/components/data-view/table/model/elder-table-model-provider.mjs +0 -40
  265. package/esm2022/lib/components/data-view/table/model/elder-table-model-query-group.mjs +0 -89
  266. package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +0 -167
  267. package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +0 -37
  268. package/esm2022/lib/components/dialogs/elder-dialog-config.mjs +0 -3
  269. package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +0 -87
  270. package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +0 -199
  271. package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +0 -57
  272. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +0 -43
  273. package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +0 -47
  274. package/esm2022/lib/components/errors/elder-error.module.mjs +0 -39
  275. package/esm2022/lib/components/errors/error-util.mjs +0 -94
  276. package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +0 -77
  277. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +0 -55
  278. package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +0 -35
  279. package/esm2022/lib/components/files/blob-url.mjs +0 -10
  280. package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +0 -224
  281. package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +0 -44
  282. package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +0 -84
  283. package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +0 -145
  284. package/esm2022/lib/components/files/elder-file-select-input.mjs +0 -119
  285. package/esm2022/lib/components/files/elder-file-select.directive.mjs +0 -167
  286. package/esm2022/lib/components/files/elder-file.module.mjs +0 -85
  287. package/esm2022/lib/components/files/file-select/file-select.component.mjs +0 -54
  288. package/esm2022/lib/components/files/file-system-api.mjs +0 -100
  289. package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +0 -80
  290. package/esm2022/lib/components/files/listing/file-entry.mjs +0 -92
  291. package/esm2022/lib/components/files/listing/file-listing-rx.mjs +0 -64
  292. package/esm2022/lib/components/files/listing/file-listing-system-handle.mjs +0 -35
  293. package/esm2022/lib/components/files/listing/file-listing-webkit.mjs +0 -76
  294. package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +0 -51
  295. package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +0 -34
  296. package/esm2022/lib/components/forms/directives/checkbox/elder-single-state-checkbox-controller.mjs +0 -97
  297. package/esm2022/lib/components/forms/directives/checkbox/elder-single-state-checkbox.directive.mjs +0 -50
  298. package/esm2022/lib/components/forms/directives/checkbox/elder-triple-state-checkbox-controller.mjs +0 -102
  299. package/esm2022/lib/components/forms/directives/checkbox/elder-triple-state-checkbox.directive.mjs +0 -50
  300. package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +0 -38
  301. package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +0 -43
  302. package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +0 -83
  303. package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +0 -84
  304. package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +0 -42
  305. package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +0 -35
  306. package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +0 -142
  307. package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +0 -67
  308. package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +0 -78
  309. package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +0 -112
  310. package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +0 -102
  311. package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +0 -37
  312. package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +0 -30
  313. package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +0 -161
  314. package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +0 -28
  315. package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +0 -88
  316. package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +0 -47
  317. package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +0 -48
  318. package/esm2022/lib/components/forms/directives/validation/strategies/fallback-validation-message-strategy.mjs +0 -6
  319. package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +0 -53
  320. package/esm2022/lib/components/forms/directives/validation/validation-message-strategy.mjs +0 -2
  321. package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +0 -36
  322. package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +0 -36
  323. package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +0 -112
  324. package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +0 -69
  325. package/esm2022/lib/components/forms/elder-forms.module.mjs +0 -22
  326. package/esm2022/lib/components/forms/public_api.mjs +0 -6
  327. package/esm2022/lib/components/forms/search/domain/context/search-context.mjs +0 -73
  328. package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +0 -42
  329. package/esm2022/lib/components/forms/search/domain/input/input-value.mjs +0 -2
  330. package/esm2022/lib/components/forms/search/domain/input/search-input-state.mjs +0 -88
  331. package/esm2022/lib/components/forms/search/domain/input/search-input.mjs +0 -2
  332. package/esm2022/lib/components/forms/search/domain/input/simple-search-input.mjs +0 -50
  333. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +0 -92
  334. package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +0 -166
  335. package/esm2022/lib/components/forms/search/domain/url/search-query-params-parser.mjs +0 -81
  336. package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +0 -256
  337. package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +0 -258
  338. package/esm2022/lib/components/forms/search/elder-search.module.mjs +0 -115
  339. package/esm2022/lib/components/forms/search/filter/default-input-filter-converter.mjs +0 -45
  340. package/esm2022/lib/components/forms/search/filter/input-filter-converter.mjs +0 -2
  341. package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +0 -131
  342. package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +0 -24
  343. package/esm2022/lib/components/global-search/elder-global-search.component.mjs +0 -136
  344. package/esm2022/lib/components/global-search/elder-global-search.module.mjs +0 -47
  345. package/esm2022/lib/components/global-search/elder-global-search.service.mjs +0 -95
  346. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +0 -90
  347. package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +0 -19
  348. package/esm2022/lib/components/graph/elder-progress-bar/sub-bar.mjs +0 -7
  349. package/esm2022/lib/components/graph/public_api.mjs +0 -2
  350. package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +0 -29
  351. package/esm2022/lib/components/headers/elder-header.module.mjs +0 -42
  352. package/esm2022/lib/components/http-support/elder-http-client.service.mjs +0 -63
  353. package/esm2022/lib/components/http-support/public_api.mjs +0 -2
  354. package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +0 -125
  355. package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +0 -157
  356. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +0 -39
  357. package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +0 -30
  358. package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +0 -177
  359. package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +0 -31
  360. package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +0 -56
  361. package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +0 -40
  362. package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +0 -31
  363. package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +0 -74
  364. package/esm2022/lib/components/i18n/language/elder-language-config.mjs +0 -3
  365. package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +0 -70
  366. package/esm2022/lib/components/i18n/language/elder-language.module.mjs +0 -73
  367. package/esm2022/lib/components/i18n/language/elder-language.service.mjs +0 -120
  368. package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +0 -79
  369. package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +0 -53
  370. package/esm2022/lib/components/i18n/public_api.mjs +0 -4
  371. package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +0 -129
  372. package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +0 -141
  373. package/esm2022/lib/components/iframes/elder-iframe.module.mjs +0 -106
  374. package/esm2022/lib/components/iframes/iframe-close.directive.mjs +0 -41
  375. package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +0 -51
  376. package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +0 -144
  377. package/esm2022/lib/components/iframes/iframe-messages.mjs +0 -5
  378. package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +0 -80
  379. package/esm2022/lib/components/iframes/iframe.service.mjs +0 -54
  380. package/esm2022/lib/components/iframes/typed-event-message.mjs +0 -42
  381. package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +0 -65
  382. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +0 -166
  383. package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +0 -20
  384. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +0 -9
  385. package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +0 -233
  386. package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +0 -202
  387. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +0 -120
  388. package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +0 -61
  389. package/esm2022/lib/components/input/autocomplete/many/word-position-finder.mjs +0 -58
  390. package/esm2022/lib/components/input/public_api.mjs +0 -2
  391. package/esm2022/lib/components/labels/elder-labels.module.mjs +0 -50
  392. package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +0 -239
  393. package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +0 -268
  394. package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +0 -92
  395. package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +0 -65
  396. package/esm2022/lib/components/measures/elder-measures.module.mjs +0 -130
  397. package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +0 -31
  398. package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +0 -43
  399. package/esm2022/lib/components/measures/elder-unit.service.mjs +0 -113
  400. package/esm2022/lib/components/measures/model/dimensions.mjs +0 -17
  401. package/esm2022/lib/components/measures/model/quantity.mjs +0 -12
  402. package/esm2022/lib/components/measures/model/unit-dimension.mjs +0 -14
  403. package/esm2022/lib/components/measures/model/unit-registry.mjs +0 -81
  404. package/esm2022/lib/components/measures/model/unit.mjs +0 -143
  405. package/esm2022/lib/components/measures/public_api.mjs +0 -8
  406. package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +0 -44
  407. package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +0 -173
  408. package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +0 -84
  409. package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +0 -73
  410. package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +0 -341
  411. package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +0 -184
  412. package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +0 -59
  413. package/esm2022/lib/components/navigation/bread-crumbs/path/path.mjs +0 -37
  414. package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +0 -60
  415. package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +0 -121
  416. package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +0 -174
  417. package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +0 -68
  418. package/esm2022/lib/components/navigation/public_api.mjs +0 -4
  419. package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +0 -48
  420. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +0 -83
  421. package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +0 -68
  422. package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +0 -71
  423. package/esm2022/lib/components/navigation/toolbar/toolbar-column-position.mjs +0 -2
  424. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +0 -39
  425. package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +0 -86
  426. package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +0 -44
  427. package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +0 -41
  428. package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +0 -73
  429. package/esm2022/lib/components/overlays/elder-overlay.component.mjs +0 -232
  430. package/esm2022/lib/components/overlays/elder-overlay.module.mjs +0 -35
  431. package/esm2022/lib/components/page/exit-guard/page-exit-guard.module.mjs +0 -20
  432. package/esm2022/lib/components/page/exit-guard/page-exit-guard.service.mjs +0 -129
  433. package/esm2022/lib/components/page/exit-guard/page-exit-lock/page-exit-lock.component.mjs +0 -25
  434. package/esm2022/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.mjs +0 -29
  435. package/esm2022/lib/components/page/exit-guard/page-exit-lock-overview/page-exit-lock-overview.component.mjs +0 -26
  436. package/esm2022/lib/components/page/public_api.mjs +0 -2
  437. package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +0 -12
  438. package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +0 -12
  439. package/esm2022/lib/components/panels/elder-panel.module.mjs +0 -60
  440. package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +0 -26
  441. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +0 -70
  442. package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +0 -74
  443. package/esm2022/lib/components/public_api.mjs +0 -43
  444. package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +0 -63
  445. package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +0 -17
  446. package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +0 -95
  447. package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +0 -38
  448. package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +0 -64
  449. package/esm2022/lib/components/select/auto/elder-select-first-util.mjs +0 -55
  450. package/esm2022/lib/components/select/elder-select-base.mjs +0 -333
  451. package/esm2022/lib/components/select/elder-select-chip.directive.mjs +0 -48
  452. package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +0 -139
  453. package/esm2022/lib/components/select/elder-select-value.directive.mjs +0 -18
  454. package/esm2022/lib/components/select/elder-select.module.mjs +0 -229
  455. package/esm2022/lib/components/select/filter/elder-chip-filter-style-resolver.mjs +0 -74
  456. package/esm2022/lib/components/select/filter/elder-chips-include-exclude.directive.mjs +0 -148
  457. package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +0 -51
  458. package/esm2022/lib/components/select/filter/include-exclude-model-filter-adapter.mjs +0 -61
  459. package/esm2022/lib/components/select/filter/include-exclude-selection-model.mjs +0 -160
  460. package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +0 -16
  461. package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +0 -386
  462. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/chip-options-provider.mjs +0 -87
  463. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +0 -263
  464. package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/select-option-chip-spec.mjs +0 -15
  465. package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +0 -274
  466. package/esm2022/lib/components/select/multi/elder-multi-select-chips/select-chip-spec.mjs +0 -15
  467. package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +0 -86
  468. package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +0 -34
  469. package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +0 -146
  470. package/esm2022/lib/components/select/multi/public_api.mjs +0 -5
  471. package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +0 -89
  472. package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +0 -126
  473. package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +0 -58
  474. package/esm2022/lib/components/select/public_api.mjs +0 -5
  475. package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +0 -60
  476. package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +0 -444
  477. package/esm2022/lib/components/select/single/elder-select-form-field.mjs +0 -45
  478. package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +0 -148
  479. package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +0 -46
  480. package/esm2022/lib/components/shell/drawers/drawer-outlet-binding.mjs +0 -64
  481. package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +0 -119
  482. package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +0 -128
  483. package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +0 -47
  484. package/esm2022/lib/components/shell/elder-shell.module.mjs +0 -101
  485. package/esm2022/lib/components/shell/elder-shell.service.mjs +0 -142
  486. package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +0 -75
  487. package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +0 -238
  488. package/esm2022/lib/components/shell/shell-content-slot.mjs +0 -2
  489. package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +0 -137
  490. package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +0 -26
  491. package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +0 -257
  492. package/esm2022/lib/components/tabs/elder-tab.module.mjs +0 -21
  493. package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +0 -62
  494. package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +0 -73
  495. package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +0 -74
  496. package/esm2022/lib/components/theme/elder-theme.directive.mjs +0 -64
  497. package/esm2022/lib/components/theme/elder-theme.module.mjs +0 -68
  498. package/esm2022/lib/components/theme/elder-theme.service.mjs +0 -121
  499. package/esm2022/lib/components/theme/known-elder-themes.mjs +0 -6
  500. package/esm2022/lib/components/theme/public_api.mjs +0 -2
  501. package/esm2022/lib/components/theme/theme-spec.mjs +0 -11
  502. package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +0 -43
  503. package/esm2022/lib/components/time/date-formats/locale-date-formats.mjs +0 -28
  504. package/esm2022/lib/components/time/duration/duration-bucket.mjs +0 -68
  505. package/esm2022/lib/components/time/duration/duration-format.mjs +0 -271
  506. package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +0 -110
  507. package/esm2022/lib/components/time/duration/iso-duration-str.mjs +0 -2
  508. package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +0 -96
  509. package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +0 -98
  510. package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +0 -217
  511. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-anchor-controller.mjs +0 -21
  512. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-calendar-controller.mjs +0 -24
  513. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-controller.mjs +0 -43
  514. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-form-controller.mjs +0 -69
  515. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-select-controller.mjs +0 -117
  516. package/esm2022/lib/components/time/elder-interval-picker/controller/interval-shift-controller.mjs +0 -44
  517. package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.component.mjs +0 -198
  518. package/esm2022/lib/components/time/elder-interval-picker/interval-picker-binding/elder-interval-picker-binding.directive.mjs +0 -41
  519. package/esm2022/lib/components/time/elder-interval-picker/interval-picker-toggle/elder-interval-picker-toggle.component.mjs +0 -144
  520. package/esm2022/lib/components/time/elder-interval-picker/manager/interval-picker-state-manager.mjs +0 -93
  521. package/esm2022/lib/components/time/elder-interval-picker/model/anchor-state.mjs +0 -54
  522. package/esm2022/lib/components/time/elder-interval-picker/model/interval-state.mjs +0 -37
  523. package/esm2022/lib/components/time/elder-interval-picker/model/smart-shift-state.mjs +0 -10
  524. package/esm2022/lib/components/time/elder-interval-picker/presenter/interval-picker-presenter.mjs +0 -96
  525. package/esm2022/lib/components/time/elder-interval-picker/util/interval-picker-util.mjs +0 -194
  526. package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +0 -268
  527. package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +0 -85
  528. package/esm2022/lib/components/time/elder-time.module.mjs +0 -154
  529. package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +0 -118
  530. package/esm2022/lib/components/time/period/period-bucket.mjs +0 -31
  531. package/esm2022/lib/components/time/period/period-format.mjs +0 -89
  532. package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +0 -39
  533. package/esm2022/lib/components/time/public_api.mjs +0 -8
  534. package/esm2022/lib/components/toasts/elder-toast.module.mjs +0 -36
  535. package/esm2022/lib/components/toasts/elder-toast.service.mjs +0 -170
  536. package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +0 -80
  537. package/esm2022/lib/components/toasts/toast-type.mjs +0 -7
  538. package/esm2022/lib/components/toasts/toast.mjs +0 -2
  539. package/esm2022/lib/components/url-fragment/elder-url-fragment.mjs +0 -9
  540. package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +0 -52
  541. package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +0 -95
  542. package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +0 -64
  543. package/esm2022/lib/components/viewers/elder-viewers.module.mjs +0 -18
  544. package/esm2022/lib/features/event-source/fetch/public_api.mjs +0 -3
  545. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.mjs +0 -219
  546. package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +0 -53
  547. package/esm2022/lib/features/event-source/public_api.mjs +0 -3
  548. package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +0 -56
  549. package/esm2022/lib/features/event-source/standard/public_api.mjs +0 -3
  550. package/esm2022/lib/features/event-source/standard/reactive-event-source.mjs +0 -199
  551. package/esm2022/lib/features/kafent/access-token-provider.mjs +0 -20
  552. package/esm2022/lib/features/kafent/kafent-config.mjs +0 -24
  553. package/esm2022/lib/features/kafent/kafent-event-stream.mjs +0 -25
  554. package/esm2022/lib/features/kafent/kafent-event.mjs +0 -3
  555. package/esm2022/lib/features/kafent/kafent-event.service.mjs +0 -115
  556. package/esm2022/lib/features/kafent/kafent-live-event-request.mjs +0 -2
  557. package/esm2022/lib/features/kafent/kafent.module.mjs +0 -58
  558. package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +0 -131
  559. package/esm2022/lib/features/kafent/sse/kafent-topic-sse.mjs +0 -97
  560. package/esm2022/lib/features/public_api.mjs +0 -3
  561. package/esm2022/lib/pipes/bytes.pipe.mjs +0 -27
  562. package/esm2022/lib/pipes/elder-pipes.module.mjs +0 -114
  563. package/esm2022/lib/pipes/elder-repeat.pipe.mjs +0 -24
  564. package/esm2022/lib/pipes/elder-round.pipe.mjs +0 -36
  565. package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +0 -21
  566. package/esm2022/lib/pipes/elder-truncate.pipe.mjs +0 -41
  567. package/esm2022/lib/pipes/iso-duration.pipe.mjs +0 -41
  568. package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +0 -49
  569. package/esm2022/lib/pipes/iso-interval.pipe.mjs +0 -62
  570. package/esm2022/lib/pipes/public_api.mjs +0 -2
  571. package/esm2022/lib/pipes/time-ago.pipe.mjs +0 -110
  572. package/esm2022/lib/pipes/time-duration.pipe.mjs +0 -101
  573. package/esm2022/lib/pipes/weight.pipe.mjs +0 -60
  574. package/esm2022/public_api.mjs +0 -8
  575. package/lib/components/panels/flat/elder-panel.component.d.ts +0 -15
  576. package/src/lib/components/panels/flat/elder-panel.component.scss +0 -3
@@ -1,345 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ContentChild, Directive, forwardRef, Input, Optional, SkipSelf, TemplateRef, ViewChild, } from '@angular/core';
2
- import { LoggerFactory } from '@elderbyte/ts-logger';
3
- import { BehaviorSubject, combineLatest, of } from 'rxjs';
4
- import { isContinuableDataContext, } from '../../../../common/data/data-context/data-context';
5
- import { CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf, } from '@angular/cdk/scrolling';
6
- import { debounceTime, filter, map, startWith, switchMap, takeUntil } from 'rxjs/operators';
7
- import { ELDER_DATA_VIEW } from '../../base/elder-data-view';
8
- import { ElderDataViewBaseComponent } from '../../base/elder-data-view-base';
9
- import { MatPaginator } from '@angular/material/paginator';
10
- import { MatTableDataContextBindingBuilder } from '../../../../common/data/data-context/mat-table-data-context-binding';
11
- import { Breakpoints } from '@angular/cdk/layout';
12
- import { MatProgressBar } from '@angular/material/progress-bar';
13
- import { MatIcon } from '@angular/material/icon';
14
- import { ElderStopEventPropagationDirective } from '../../../forms/directives/elder-stop-event-propagation.directive';
15
- import { MatIconButton } from '@angular/material/button';
16
- import { ElderInfiniteScrollDirective } from '../../../infinitescroll/elder-infinite-scroll.directive';
17
- import { DataContextStateIndicatorComponent } from '../../common/data-context-state-indicator/data-context-state-indicator.component';
18
- import { MatDivider } from '@angular/material/divider';
19
- import { ElderSingleSortComponent } from '../../common/elder-single-sort/elder-single-sort.component';
20
- import { ElderSelectionMasterCheckboxComponent } from '../../common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component';
21
- import { DataContextSelectionDirective } from '../../common/selection/data-context-selection.directive';
22
- import { NgIf, NgTemplateOutlet, NgFor, AsyncPipe } from '@angular/common';
23
- import { MatCard } from '@angular/material/card';
24
- import { ElderCompositeSortComponent } from '../../common/composite-sort/elder-composite-sort/elder-composite-sort.component';
25
- import { CompositeSort } from '../../common/composite-sort/composite-sort';
26
- import { ElderCompositeSortDcDirective } from '../../common/composite-sort/composite-sort-dc.directive';
27
- import { UuidUtil } from '../../../../common/utils/uuid-util';
28
- import * as i0 from "@angular/core";
29
- import * as i1 from "../../../../common/selection/selection-model";
30
- import * as i2 from "../../base/elder-data-view-options-provider";
31
- import * as i3 from "@angular/cdk/layout";
32
- class GridRow {
33
- constructor(id, cells) {
34
- this.id = id;
35
- this.cells = cells;
36
- }
37
- }
38
- export class ElderGridTileDirective {
39
- constructor(templateRef, viewContainer) {
40
- this.templateRef = templateRef;
41
- this.viewContainer = viewContainer;
42
- }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridTileDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
44
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ElderGridTileDirective, isStandalone: true, selector: "[elderGridTile]", ngImport: i0 }); }
45
- }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridTileDirective, decorators: [{
47
- type: Directive,
48
- args: [{
49
- selector: '[elderGridTile]',
50
- standalone: true,
51
- }]
52
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
53
- /**
54
- * This directive projects marked content into a toolbar.
55
- */
56
- export class ElderGridToolbarDirective {
57
- constructor(templateRef, viewContainer) {
58
- this.templateRef = templateRef;
59
- this.viewContainer = viewContainer;
60
- }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridToolbarDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
62
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ElderGridToolbarDirective, isStandalone: true, selector: "[elderGridToolbar]", ngImport: i0 }); }
63
- }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridToolbarDirective, decorators: [{
65
- type: Directive,
66
- args: [{
67
- selector: '[elderGridToolbar]',
68
- standalone: true,
69
- }]
70
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
71
- export class ElderGridComponent extends ElderDataViewBaseComponent {
72
- set availableSorts(availableSorts) {
73
- this.availableCompositeSorts = CompositeSort.coerce(availableSorts);
74
- }
75
- /***************************************************************************
76
- * *
77
- * Constructor *
78
- * *
79
- **************************************************************************/
80
- constructor(selectionModel, dataViewOptionsProvider, breakpointObserver) {
81
- super(selectionModel, dataViewOptionsProvider);
82
- this.breakpointObserver = breakpointObserver;
83
- /***************************************************************************
84
- * *
85
- * Fields *
86
- * *
87
- **************************************************************************/
88
- this.log = LoggerFactory.getLogger(this.constructor.name);
89
- this._columnCount = new BehaviorSubject(4);
90
- this.sizeToColumns = new Map([
91
- [Breakpoints.XSmall, 1],
92
- [Breakpoints.Small, 2],
93
- [Breakpoints.Medium, 3],
94
- [Breakpoints.Large, 4],
95
- [Breakpoints.XLarge, 5],
96
- ]);
97
- /**
98
- * Load next chunk after current is done
99
- */
100
- this.loadNextQueued = false;
101
- this.scrollContainerId = 'documents-container-' + UuidUtil.weakUuid4();
102
- this.TrackGridRowByIdFn = (index, row) => row.id;
103
- this.toolbarVisible = true;
104
- this.footerVisible = true;
105
- this.itemHeight = 250;
106
- this.responsiveColumnCount = true;
107
- this.availableCompositeSorts = [];
108
- this.sortTranslationPrefix = 'documents.sorts.';
109
- this.hiddenField = null;
110
- /**
111
- * @deprecated No longer required. Id is automatically picked from the DataSource.
112
- */
113
- this.idField = 'id';
114
- this.selectionVisible = true;
115
- this.pageSizeOptions = [30, 50, 100, 150, 200];
116
- }
117
- /***************************************************************************
118
- * *
119
- * Lifecycle *
120
- * *
121
- **************************************************************************/
122
- ngOnInit() {
123
- super.ngOnInit();
124
- const columnCount$ = this.responsiveColumnCount ? this.responsiveColumn() : this._columnCount;
125
- this.dataRows$ = combineLatest([
126
- this.dataContext$.pipe(filter((dc) => !!dc), switchMap((dc) => dc.data)),
127
- columnCount$,
128
- ]).pipe(debounceTime(50), map(([data, columnCount]) => this.buildGridRow(data, columnCount)));
129
- }
130
- ngAfterViewInit() {
131
- MatTableDataContextBindingBuilder.start(this.dataContext$)
132
- .withPaginator(of(this.matPaginator))
133
- .bindUntil(this.destroy$);
134
- }
135
- /***************************************************************************
136
- * *
137
- * Properties *
138
- * *
139
- **************************************************************************/
140
- set tileTemplate(template) {
141
- this._tileTemplate = template;
142
- }
143
- get tileTemplate() {
144
- return this._tileTemplate || this.tileTemplateQuery;
145
- }
146
- set toolbarTemplate(template) {
147
- this._toolbarTemplate = template;
148
- }
149
- get toolbarTemplate() {
150
- return this._toolbarTemplate || this.toolbarTemplateQuery;
151
- }
152
- set data(data) {
153
- this.dataContext$.next(data);
154
- this.total$ = data.total.pipe(map((total) => (total ? total + '' : '∞')));
155
- if (isContinuableDataContext(data)) {
156
- this.canLoadMore$ = combineLatest([data.loading, data.hasMoreData]).pipe(map(([loading, hasMoreData]) => !loading && hasMoreData));
157
- }
158
- else {
159
- this.canLoadMore$ = of(false);
160
- }
161
- }
162
- get dataSnapshot() {
163
- return this.dataContinuable;
164
- }
165
- set columnCount(count) {
166
- this._columnCount.next(count);
167
- }
168
- get columnCount() {
169
- return this._columnCount.getValue();
170
- }
171
- /***************************************************************************
172
- * *
173
- * Public API *
174
- * *
175
- **************************************************************************/
176
- inSelectionMode(currentSelection) {
177
- if (this.interactionMode === 'selection') {
178
- return true;
179
- }
180
- if (currentSelection && currentSelection.length > 0) {
181
- return true;
182
- }
183
- }
184
- requestMoreDataZoned(event) {
185
- if (this.dataSnapshot.hasMoreDataSnapshot) {
186
- if (this.dataSnapshot.snapshot.isLoading) {
187
- this.loadNextQueued = true;
188
- }
189
- else {
190
- this.dataSnapshot.loadMore().subscribe((loaded) => {
191
- if (this.loadNextQueued) {
192
- this.loadNextQueued = false;
193
- this.requestMoreDataZoned(event);
194
- }
195
- });
196
- }
197
- }
198
- else {
199
- this.loadNextQueued = false;
200
- }
201
- }
202
- showTile(tile) {
203
- return tile && (this.hiddenField ? !tile[this.hiddenField] : true);
204
- }
205
- /***************************************************************************
206
- * *
207
- * Private Methods *
208
- * *
209
- **************************************************************************/
210
- scrollTop() {
211
- this.virtualScrollViewPort.scrollToIndex(0, 'smooth');
212
- }
213
- buildGridRow(nodes, columnCount) {
214
- const rows = [];
215
- const rowCount = nodes.length / columnCount;
216
- for (let rowIndex = 0; rowIndex < rowCount; rowIndex++) {
217
- const rowStartIndex = rowIndex * columnCount;
218
- const rowCells = nodes.slice(rowStartIndex, rowStartIndex + columnCount);
219
- while (rowCells.length < columnCount) {
220
- rowCells.push(null); // Fill up remaining
221
- }
222
- rows.push(new GridRow(this.rowId(rowCells), rowCells));
223
- }
224
- return rows;
225
- }
226
- rowId(cells) {
227
- return cells
228
- .map((cell) => {
229
- if (cell) {
230
- return this.getId(cell);
231
- }
232
- else {
233
- return '_';
234
- }
235
- })
236
- .join('-');
237
- }
238
- responsiveColumn() {
239
- const breakpoints = Array.from(this.sizeToColumns.keys());
240
- return this.breakpointObserver.observe(breakpoints).pipe(takeUntil(this.destroy$), map((result) => {
241
- let activeSize = Breakpoints.Medium;
242
- for (const query of Object.keys(result.breakpoints)) {
243
- if (result.breakpoints[query]) {
244
- activeSize = query;
245
- break;
246
- }
247
- }
248
- return this.sizeToColumns.get(activeSize);
249
- }), debounceTime(100), startWith(this.activeColumnCount()));
250
- }
251
- activeColumnCount() {
252
- let columnCount = 1;
253
- this.sizeToColumns.forEach((cols, mqAlias) => {
254
- if (this.breakpointObserver.isMatched(mqAlias)) {
255
- columnCount = cols;
256
- }
257
- });
258
- return columnCount;
259
- }
260
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridComponent, deps: [{ token: i1.SelectionModel, optional: true }, { token: i2.ElderDataViewOptionsProvider, optional: true, skipSelf: true }, { token: i3.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
261
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ElderGridComponent, isStandalone: true, selector: "elder-grid", inputs: { toolbarVisible: "toolbarVisible", footerVisible: "footerVisible", itemHeight: "itemHeight", responsiveColumnCount: "responsiveColumnCount", availableSorts: "availableSorts", sortTranslationPrefix: "sortTranslationPrefix", hiddenField: "hiddenField", idField: "idField", selectionVisible: "selectionVisible", pageSizeOptions: "pageSizeOptions", tileTemplate: "tileTemplate", toolbarTemplate: "toolbarTemplate", data: "data", columnCount: "columnCount" }, providers: [
262
- {
263
- provide: ELDER_DATA_VIEW,
264
- useExisting: forwardRef(() => ElderGridComponent),
265
- },
266
- ], queries: [{ propertyName: "tileTemplateQuery", first: true, predicate: ElderGridTileDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "toolbarTemplateQuery", first: true, predicate: ElderGridToolbarDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "virtualScrollViewPort", first: true, predicate: ["virtualScrollViewPort"], descendants: true, static: true }, { propertyName: "matPaginator", first: true, predicate: MatPaginator, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-card class=\"full\" [class.embedded]=\"embedded\" [appearance]=\"appearance\">\n @if (dataContext$ | async; as data) {\n <!-- Grid Browser -->\n <div\n class=\"layout-col full elder-grid-container\"\n [elderDataContextSelection]=\"data\"\n #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n >\n <!-- Toolbar Row -->\n @if (toolbarVisible) {\n <div class=\"layout-row place-start-center flex-none elder-grid-toolbar\">\n @if (selectionVisible) {\n <div class=\"layout-col flex-none\" style=\"padding-left: 8px; padding-right: 8px\">\n <elder-selection-master-checkbox\n class=\"flex-none\"\n style=\"padding-left: 12px\"\n ></elder-selection-master-checkbox>\n </div>\n }\n\n <!-- Toolbar -->\n @if (toolbarTemplate) {\n <ng-template\n *ngTemplateOutlet=\"toolbarTemplate; context: { $implicit: this }\"\n ></ng-template>\n }\n\n @if (availableCompositeSorts && availableCompositeSorts.length > 0) {\n <elder-composite-sort\n class=\"flex-none\"\n [availableSorts]=\"availableCompositeSorts\"\n [translationPrefix]=\"sortTranslationPrefix\"\n [elderCompositeSortDc]=\"data\"\n >\n </elder-composite-sort>\n }\n </div>\n\n <mat-divider></mat-divider>\n }\n\n <elder-data-context-state-indicator class=\"flex-none\" [dataContext]=\"data\">\n </elder-data-context-state-indicator>\n\n <!-- [cdkDropListSortingDisabled]=\"true\" -->\n <!-- cdkDropList -->\n <cdk-virtual-scroll-viewport\n class=\"layout-col flex elder-grid-browser\"\n id=\"{{ scrollContainerId }}\"\n [itemSize]=\"itemHeight\"\n [minBufferPx]=\"itemHeight * 2\"\n [maxBufferPx]=\"itemHeight * 3\"\n #virtualScrollViewPort\n elderInfiniteScroll\n [eventThrottle]=\"200\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"data.loading | async\"\n [containerId]=\"scrollContainerId\"\n [listenToHost]=\"false\"\n (closeToEnd)=\"requestMoreDataZoned($event)\"\n >\n <!-- (scrolling)=\"onScrolling($event)\" -->\n\n <div\n *cdkVirtualFor=\"\n let gridRow of dataRows$;\n trackBy: TrackGridRowByIdFn;\n templateCacheSize: 50\n \"\n class=\"elder-grid-tile-row\"\n [style.height]=\"itemHeight + 'px'\"\n >\n @for (tile of gridRow.cells; track getId(tile)) {\n <!-- Tile Cell -->\n @if (showTile(tile)) {\n <mat-card appearance=\"outlined\" class=\"elder-grid-tile\">\n <div\n class=\"elder-grid-tile-content\"\n (click)=\"onItemClick(tile)\"\n (dblclick)=\"onItemDoubleClick(tile)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tileTemplate || simpleTileTemplate;\n context: { $implicit: tile }\n \"\n ></ng-container>\n <!-- Overlay (Selection) -->\n @if (selectionVisible) {\n @if (selectionModel.selection | async; as selection) {\n <div\n class=\"elder-grid-tile-overlay elder-click-through\"\n [class.elder-grid-tile-overlay-hidden]=\"!inSelectionMode(selection)\"\n [class.elder-grid-tile-overlay-visible]=\"inSelectionMode(selection)\"\n >\n <button\n mat-icon-button\n type=\"button\"\n (click)=\"selectionModel.toggle(tile)\"\n elderStopEventPropagation\n class=\"elder-grid-tile-check\"\n >\n <mat-icon\n [class.elder-selected]=\"selectionModel.observeSelection(tile) | async\"\n >\n {{\n (selectionModel.observeSelection(tile) | async)\n ? 'check_circle'\n : 'radio_button_unchecked'\n }}\n </mat-icon>\n </button>\n </div>\n }\n }\n </div>\n </mat-card>\n } @else {\n <div class=\"elder-grid-tile-hidden\"></div>\n }\n }\n </div>\n </cdk-virtual-scroll-viewport>\n\n <mat-progress-bar\n class=\"flex-none\"\n [mode]=\"(data?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"data && (data.status | async)?.hasError ? 'warn' : 'primary'\"\n >\n </mat-progress-bar>\n\n <!-- Footer -->\n @if (footerVisible) {\n <div\n class=\"layout-row place-end-center gap-md flex-none elder-grid-footer\"\n style=\"padding-right: 12px\"\n >\n <!-- Continuable -->\n @if (isContinuable) {\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{ (dataSnapshot?.data | async)?.length }} / {{ total$ | async }}\n </span>\n\n <button\n mat-icon-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataSnapshot.loadMore()\"\n >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n }\n\n <!-- Paged -->\n @if (isActivePaged) {\n @if (dataActivePaged.page | async; as page) {\n <mat-paginator\n class=\"flex-none\"\n [length]=\"dataContext?.total | async\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions\"\n >\n </mat-paginator>\n }\n }\n\n <!-- Local Source -->\n @if (!isActivePaged && !isContinuable) {\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{ (dataSnapshot?.data | async)?.length }}\n </span>\n }\n </div>\n }\n </div>\n }\n</mat-card>\n\n<ng-template #simpleTileTemplate let-tile>\n @if (tile) {\n <div class=\"layout-col place-center-center flex\" style=\"background-color: lightblue\">\n <p class=\"noselect\">Tile: {{ tile }}</p>\n </div>\n }\n</ng-template>\n", styles: [":host{min-width:0;min-height:0}.elder-grid-tile-row{display:flex;flex-direction:row;padding:8px}.elder-grid-tile-row:first-child{padding-top:16px}.elder-grid-tile-hidden{flex:0 1 100%;margin:8px;width:100%;height:100%}.elder-grid-tile-content{position:relative;width:100%;height:100%;overflow:hidden}.elder-grid-tile-overlay{position:absolute;inset:0;-webkit-transition:background-color .1s ease-in,opacity .1s ease-in;transition:background-color .1s ease-in,opacity .1s ease-in}.elder-click-through{pointer-events:none}.elder-grid-tile-overlay-visible{opacity:1}.elder-grid-tile-overlay-hidden{opacity:0}\n"], dependencies: [{ kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: DataContextSelectionDirective, selector: "[elderDataContextSelection]", inputs: ["elderDataContextSelectionModel", "elderDataContextSelection"], exportAs: ["elderDataContextSelection"] }, { kind: "component", type: ElderSelectionMasterCheckboxComponent, selector: "elder-selection-master-checkbox" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: DataContextStateIndicatorComponent, selector: "elder-data-context-state-indicator", inputs: ["dataContext"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ElderInfiniteScrollDirective, selector: "[elderInfiniteScroll]", inputs: ["listenToHost", "eventThrottle", "offsetFactor", "ignoreScrollEvent", "containerId", "scrollContainer"], outputs: ["closeToEnd", "scrolling"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: ElderCompositeSortComponent, selector: "elder-composite-sort", inputs: ["availableSorts", "sorts", "translationPrefix"], outputs: ["sortsChange"] }, { kind: "directive", type: ElderCompositeSortDcDirective, selector: "[elderCompositeSortDc]", inputs: ["elderCompositeSortDc"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
267
- }
268
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridComponent, decorators: [{
269
- type: Component,
270
- args: [{ selector: 'elder-grid', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
271
- {
272
- provide: ELDER_DATA_VIEW,
273
- useExisting: forwardRef(() => ElderGridComponent),
274
- },
275
- ], standalone: true, imports: [
276
- MatCard,
277
- NgIf,
278
- DataContextSelectionDirective,
279
- ElderSelectionMasterCheckboxComponent,
280
- NgTemplateOutlet,
281
- ElderSingleSortComponent,
282
- MatDivider,
283
- DataContextStateIndicatorComponent,
284
- CdkVirtualScrollViewport,
285
- CdkFixedSizeVirtualScroll,
286
- ElderInfiniteScrollDirective,
287
- CdkVirtualForOf,
288
- NgFor,
289
- MatIconButton,
290
- ElderStopEventPropagationDirective,
291
- MatIcon,
292
- MatProgressBar,
293
- MatPaginator,
294
- AsyncPipe,
295
- ElderCompositeSortComponent,
296
- ElderCompositeSortDcDirective,
297
- ], template: "<mat-card class=\"full\" [class.embedded]=\"embedded\" [appearance]=\"appearance\">\n @if (dataContext$ | async; as data) {\n <!-- Grid Browser -->\n <div\n class=\"layout-col full elder-grid-container\"\n [elderDataContextSelection]=\"data\"\n #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n >\n <!-- Toolbar Row -->\n @if (toolbarVisible) {\n <div class=\"layout-row place-start-center flex-none elder-grid-toolbar\">\n @if (selectionVisible) {\n <div class=\"layout-col flex-none\" style=\"padding-left: 8px; padding-right: 8px\">\n <elder-selection-master-checkbox\n class=\"flex-none\"\n style=\"padding-left: 12px\"\n ></elder-selection-master-checkbox>\n </div>\n }\n\n <!-- Toolbar -->\n @if (toolbarTemplate) {\n <ng-template\n *ngTemplateOutlet=\"toolbarTemplate; context: { $implicit: this }\"\n ></ng-template>\n }\n\n @if (availableCompositeSorts && availableCompositeSorts.length > 0) {\n <elder-composite-sort\n class=\"flex-none\"\n [availableSorts]=\"availableCompositeSorts\"\n [translationPrefix]=\"sortTranslationPrefix\"\n [elderCompositeSortDc]=\"data\"\n >\n </elder-composite-sort>\n }\n </div>\n\n <mat-divider></mat-divider>\n }\n\n <elder-data-context-state-indicator class=\"flex-none\" [dataContext]=\"data\">\n </elder-data-context-state-indicator>\n\n <!-- [cdkDropListSortingDisabled]=\"true\" -->\n <!-- cdkDropList -->\n <cdk-virtual-scroll-viewport\n class=\"layout-col flex elder-grid-browser\"\n id=\"{{ scrollContainerId }}\"\n [itemSize]=\"itemHeight\"\n [minBufferPx]=\"itemHeight * 2\"\n [maxBufferPx]=\"itemHeight * 3\"\n #virtualScrollViewPort\n elderInfiniteScroll\n [eventThrottle]=\"200\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"data.loading | async\"\n [containerId]=\"scrollContainerId\"\n [listenToHost]=\"false\"\n (closeToEnd)=\"requestMoreDataZoned($event)\"\n >\n <!-- (scrolling)=\"onScrolling($event)\" -->\n\n <div\n *cdkVirtualFor=\"\n let gridRow of dataRows$;\n trackBy: TrackGridRowByIdFn;\n templateCacheSize: 50\n \"\n class=\"elder-grid-tile-row\"\n [style.height]=\"itemHeight + 'px'\"\n >\n @for (tile of gridRow.cells; track getId(tile)) {\n <!-- Tile Cell -->\n @if (showTile(tile)) {\n <mat-card appearance=\"outlined\" class=\"elder-grid-tile\">\n <div\n class=\"elder-grid-tile-content\"\n (click)=\"onItemClick(tile)\"\n (dblclick)=\"onItemDoubleClick(tile)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tileTemplate || simpleTileTemplate;\n context: { $implicit: tile }\n \"\n ></ng-container>\n <!-- Overlay (Selection) -->\n @if (selectionVisible) {\n @if (selectionModel.selection | async; as selection) {\n <div\n class=\"elder-grid-tile-overlay elder-click-through\"\n [class.elder-grid-tile-overlay-hidden]=\"!inSelectionMode(selection)\"\n [class.elder-grid-tile-overlay-visible]=\"inSelectionMode(selection)\"\n >\n <button\n mat-icon-button\n type=\"button\"\n (click)=\"selectionModel.toggle(tile)\"\n elderStopEventPropagation\n class=\"elder-grid-tile-check\"\n >\n <mat-icon\n [class.elder-selected]=\"selectionModel.observeSelection(tile) | async\"\n >\n {{\n (selectionModel.observeSelection(tile) | async)\n ? 'check_circle'\n : 'radio_button_unchecked'\n }}\n </mat-icon>\n </button>\n </div>\n }\n }\n </div>\n </mat-card>\n } @else {\n <div class=\"elder-grid-tile-hidden\"></div>\n }\n }\n </div>\n </cdk-virtual-scroll-viewport>\n\n <mat-progress-bar\n class=\"flex-none\"\n [mode]=\"(data?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"data && (data.status | async)?.hasError ? 'warn' : 'primary'\"\n >\n </mat-progress-bar>\n\n <!-- Footer -->\n @if (footerVisible) {\n <div\n class=\"layout-row place-end-center gap-md flex-none elder-grid-footer\"\n style=\"padding-right: 12px\"\n >\n <!-- Continuable -->\n @if (isContinuable) {\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{ (dataSnapshot?.data | async)?.length }} / {{ total$ | async }}\n </span>\n\n <button\n mat-icon-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataSnapshot.loadMore()\"\n >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n }\n\n <!-- Paged -->\n @if (isActivePaged) {\n @if (dataActivePaged.page | async; as page) {\n <mat-paginator\n class=\"flex-none\"\n [length]=\"dataContext?.total | async\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions\"\n >\n </mat-paginator>\n }\n }\n\n <!-- Local Source -->\n @if (!isActivePaged && !isContinuable) {\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{ (dataSnapshot?.data | async)?.length }}\n </span>\n }\n </div>\n }\n </div>\n }\n</mat-card>\n\n<ng-template #simpleTileTemplate let-tile>\n @if (tile) {\n <div class=\"layout-col place-center-center flex\" style=\"background-color: lightblue\">\n <p class=\"noselect\">Tile: {{ tile }}</p>\n </div>\n }\n</ng-template>\n", styles: [":host{min-width:0;min-height:0}.elder-grid-tile-row{display:flex;flex-direction:row;padding:8px}.elder-grid-tile-row:first-child{padding-top:16px}.elder-grid-tile-hidden{flex:0 1 100%;margin:8px;width:100%;height:100%}.elder-grid-tile-content{position:relative;width:100%;height:100%;overflow:hidden}.elder-grid-tile-overlay{position:absolute;inset:0;-webkit-transition:background-color .1s ease-in,opacity .1s ease-in;transition:background-color .1s ease-in,opacity .1s ease-in}.elder-click-through{pointer-events:none}.elder-grid-tile-overlay-visible{opacity:1}.elder-grid-tile-overlay-hidden{opacity:0}\n"] }]
298
- }], ctorParameters: () => [{ type: i1.SelectionModel, decorators: [{
299
- type: Optional
300
- }] }, { type: i2.ElderDataViewOptionsProvider, decorators: [{
301
- type: Optional
302
- }, {
303
- type: SkipSelf
304
- }] }, { type: i3.BreakpointObserver }], propDecorators: { tileTemplateQuery: [{
305
- type: ContentChild,
306
- args: [ElderGridTileDirective, { read: TemplateRef, static: true }]
307
- }], toolbarVisible: [{
308
- type: Input
309
- }], footerVisible: [{
310
- type: Input
311
- }], itemHeight: [{
312
- type: Input
313
- }], responsiveColumnCount: [{
314
- type: Input
315
- }], virtualScrollViewPort: [{
316
- type: ViewChild,
317
- args: ['virtualScrollViewPort', { static: true }]
318
- }], availableSorts: [{
319
- type: Input
320
- }], sortTranslationPrefix: [{
321
- type: Input
322
- }], hiddenField: [{
323
- type: Input
324
- }], idField: [{
325
- type: Input
326
- }], selectionVisible: [{
327
- type: Input
328
- }], pageSizeOptions: [{
329
- type: Input
330
- }], matPaginator: [{
331
- type: ViewChild,
332
- args: [MatPaginator]
333
- }], toolbarTemplateQuery: [{
334
- type: ContentChild,
335
- args: [ElderGridToolbarDirective, { read: TemplateRef, static: true }]
336
- }], tileTemplate: [{
337
- type: Input
338
- }], toolbarTemplate: [{
339
- type: Input
340
- }], data: [{
341
- type: Input
342
- }], columnCount: [{
343
- type: Input
344
- }] } });
345
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9ncmlkL2VsZGVyLWdyaWQvZWxkZXItZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9ncmlkL2VsZGVyLWdyaWQvZWxkZXItZ3JpZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsUUFBUSxFQUNSLFFBQVEsRUFDUixXQUFXLEVBRVgsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDckUsT0FBTyxFQUdMLHdCQUF3QixHQUN6QixNQUFNLG1EQUFtRCxDQUFBO0FBQzFELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLGVBQWUsR0FDaEIsTUFBTSx3QkFBd0IsQ0FBQTtBQUUvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUzRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDNUUsT0FB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QUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBSUMscUJBQXFCO3NCQUQzQixTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNekMsY0FBYztzQkFEeEIsS0FBSztnQkFNQyxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFPQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBR0MsWUFBWTtzQkFEbEIsU0FBUzt1QkFBQyxZQUFZO2dCQUloQixvQkFBb0I7c0JBRDFCLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBc0RqRSxZQUFZO3NCQUR0QixLQUFLO2dCQVVLLGVBQWU7c0JBRHpCLEtBQUs7Z0JBVUssSUFBSTtzQkFEZCxLQUFLO2dCQW9CSyxXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBTa2lwU2VsZixcbiAgVGVtcGxhdGVSZWYsXG4gIFRyYWNrQnlGdW5jdGlvbixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBJRGF0YUNvbnRleHQsXG4gIElEYXRhQ29udGV4dENvbnRpbnVhYmxlLFxuICBpc0NvbnRpbnVhYmxlRGF0YUNvbnRleHQsXG59IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQnXG5pbXBvcnQge1xuICBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsXG4gIENka0ZpeGVkU2l6ZVZpcnR1YWxTY3JvbGwsXG4gIENka1ZpcnR1YWxGb3JPZixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZydcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3NlbGVjdGlvbi9zZWxlY3Rpb24tbW9kZWwnXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvc29ydCdcbmltcG9ydCB7IEVMREVSX0RBVEFfVklFVyB9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3J1xuaW1wb3J0IHsgRWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL2VsZGVyLWRhdGEtdmlldy1iYXNlJ1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJ1xuaW1wb3J0IHsgTWF0VGFibGVEYXRhQ29udGV4dEJpbmRpbmdCdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L21hdC10YWJsZS1kYXRhLWNvbnRleHQtYmluZGluZydcbmltcG9ydCB7IEVsZGVyRGF0YVZpZXdPcHRpb25zUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9iYXNlL2VsZGVyLWRhdGEtdmlldy1vcHRpb25zLXByb3ZpZGVyJ1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcidcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgRWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2Zvcm1zL2RpcmVjdGl2ZXMvZWxkZXItc3RvcC1ldmVudC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUnXG5pbXBvcnQgeyBNYXRJY29uQnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJ1xuaW1wb3J0IHsgRWxkZXJJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2luZmluaXRlc2Nyb2xsL2VsZGVyLWluZmluaXRlLXNjcm9sbC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhQ29udGV4dFN0YXRlSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL2RhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3IvZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvci5jb21wb25lbnQnXG5pbXBvcnQgeyBNYXREaXZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcidcbmltcG9ydCB7IEVsZGVyU2luZ2xlU29ydENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9lbGRlci1zaW5nbGUtc29ydC9lbGRlci1zaW5nbGUtc29ydC5jb21wb25lbnQnXG5pbXBvcnQgeyBFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlbGVjdGlvbi9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94L2VsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3guY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YUNvbnRleHRTZWxlY3Rpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9jb21tb24vc2VsZWN0aW9uL2RhdGEtY29udGV4dC1zZWxlY3Rpb24uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgTmdGb3IsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE1hdENhcmQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJ1xuaW1wb3J0IHsgRWxkZXJDb21wb3NpdGVTb3J0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvbXBvc2l0ZS1zb3J0L2VsZGVyLWNvbXBvc2l0ZS1zb3J0L2VsZGVyLWNvbXBvc2l0ZS1zb3J0LmNvbXBvbmVudCdcbmltcG9ydCB7IENvbXBvc2l0ZVNvcnQgfSBmcm9tICcuLi8uLi9jb21tb24vY29tcG9zaXRlLXNvcnQvY29tcG9zaXRlLXNvcnQnXG5pbXBvcnQgeyBFbGRlckNvbXBvc2l0ZVNvcnREY0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb21wb3NpdGUtc29ydC9jb21wb3NpdGUtc29ydC1kYy5kaXJlY3RpdmUnXG5pbXBvcnQgeyBVdWlkVXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi91dGlscy91dWlkLXV0aWwnXG5cbmNsYXNzIEdyaWRSb3c8VD4ge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmcsXG4gICAgcHVibGljIGNlbGxzOiBUW11cbiAgKSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZWxkZXJHcmlkVGlsZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckdyaWRUaWxlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cbn1cblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBwcm9qZWN0cyBtYXJrZWQgY29udGVudCBpbnRvIGEgdG9vbGJhci5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyR3JpZFRvb2xiYXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJHcmlkVG9vbGJhckRpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLWdyaWQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVMREVSX0RBVEFfVklFVyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVsZGVyR3JpZENvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdENhcmQsXG4gICAgTmdJZixcbiAgICBEYXRhQ29udGV4dFNlbGVjdGlvbkRpcmVjdGl2ZSxcbiAgICBFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50LFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgRWxkZXJTaW5nbGVTb3J0Q29tcG9uZW50LFxuICAgIE1hdERpdmlkZXIsXG4gICAgRGF0YUNvbnRleHRTdGF0ZUluZGljYXRvckNvbXBvbmVudCxcbiAgICBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsXG4gICAgQ2RrRml4ZWRTaXplVmlydHVhbFNjcm9sbCxcbiAgICBFbGRlckluZmluaXRlU2Nyb2xsRGlyZWN0aXZlLFxuICAgIENka1ZpcnR1YWxGb3JPZixcbiAgICBOZ0ZvcixcbiAgICBNYXRJY29uQnV0dG9uLFxuICAgIEVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25EaXJlY3RpdmUsXG4gICAgTWF0SWNvbixcbiAgICBNYXRQcm9ncmVzc0JhcixcbiAgICBNYXRQYWdpbmF0b3IsXG4gICAgQXN5bmNQaXBlLFxuICAgIEVsZGVyQ29tcG9zaXRlU29ydENvbXBvbmVudCxcbiAgICBFbGRlckNvbXBvc2l0ZVNvcnREY0RpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJHcmlkQ29tcG9uZW50PFQgPSBhbnk+XG4gIGV4dGVuZHMgRWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXRcbntcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpXG5cbiAgcHJpdmF0ZSBfY29sdW1uQ291bnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oNClcblxuICBwcml2YXRlIHJlYWRvbmx5IHNpemVUb0NvbHVtbnMgPSBuZXcgTWFwKFtcbiAgICBbQnJlYWtwb2ludHMuWFNtYWxsLCAxXSxcbiAgICBbQnJlYWtwb2ludHMuU21hbGwsIDJdLFxuICAgIFtCcmVha3BvaW50cy5NZWRpdW0sIDNdLFxuICAgIFtCcmVha3BvaW50cy5MYXJnZSwgNF0sXG4gICAgW0JyZWFrcG9pbnRzLlhMYXJnZSwgNV0sXG4gIF0pXG5cbiAgLyoqXG4gICAqIExvYWQgbmV4dCBjaHVuayBhZnRlciBjdXJyZW50IGlzIGRvbmVcbiAgICovXG4gIHByaXZhdGUgbG9hZE5leHRRdWV1ZWQgPSBmYWxzZVxuXG4gIHB1YmxpYyByZWFkb25seSBzY3JvbGxDb250YWluZXJJZCA9ICdkb2N1bWVudHMtY29udGFpbmVyLScgKyBVdWlkVXRpbC53ZWFrVXVpZDQoKVxuXG4gIHB1YmxpYyByZWFkb25seSBUcmFja0dyaWRSb3dCeUlkRm46IFRyYWNrQnlGdW5jdGlvbjxHcmlkUm93PFQ+PiA9IChpbmRleCwgcm93KSA9PiByb3cuaWRcbiAgcHVibGljIGRhdGFSb3dzJDogT2JzZXJ2YWJsZTxHcmlkUm93PFQ+W10+XG5cbiAgcHVibGljIGNhbkxvYWRNb3JlJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuICBwdWJsaWMgdG90YWwkOiBPYnNlcnZhYmxlPHN0cmluZz5cblxuICBAQ29udGVudENoaWxkKEVsZGVyR3JpZFRpbGVEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgdGlsZVRlbXBsYXRlUXVlcnk6IFRlbXBsYXRlUmVmPGFueT5cbiAgcHJpdmF0ZSBfdGlsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRvb2xiYXJWaXNpYmxlID0gdHJ1ZVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb290ZXJWaXNpYmxlID0gdHJ1ZVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpdGVtSGVpZ2h0ID0gMjUwXG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3BvbnNpdmVDb2x1bW5Db3VudCA9IHRydWVcblxuICBAVmlld0NoaWxkKCd2aXJ0dWFsU2Nyb2xsVmlld1BvcnQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgdmlydHVhbFNjcm9sbFZpZXdQb3J0OiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnRcblxuICBwdWJsaWMgYXZhaWxhYmxlQ29tcG9zaXRlU29ydHM6IENvbXBvc2l0ZVNvcnRbXSA9IFtdXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhdmFpbGFibGVTb3J0cyhhdmFpbGFibGVTb3J0czogc3RyaW5nW10gfCBDb21wb3NpdGVTb3J0W10pIHtcbiAgICB0aGlzLmF2YWlsYWJsZUNvbXBvc2l0ZVNvcnRzID0gQ29tcG9zaXRlU29ydC5jb2VyY2UoYXZhaWxhYmxlU29ydHMpXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc29ydFRyYW5zbGF0aW9uUHJlZml4ID0gJ2RvY3VtZW50cy5zb3J0cy4nXG5cbiAgQElucHV0KClcbiAgcHVibGljIGhpZGRlbkZpZWxkOiBzdHJpbmcgPSBudWxsXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIE5vIGxvbmdlciByZXF1aXJlZC4gSWQgaXMgYXV0b21hdGljYWxseSBwaWNrZWQgZnJvbSB0aGUgRGF0YVNvdXJjZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZEZpZWxkID0gJ2lkJ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3Rpb25WaXNpYmxlID0gdHJ1ZVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdlU2l6ZU9wdGlvbnMgPSBbMzAsIDUwLCAxMDAsIDE1MCwgMjAwXVxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcilcbiAgcHVibGljIG1hdFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yXG5cbiAgQENvbnRlbnRDaGlsZChFbGRlckdyaWRUb29sYmFyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHRvb2xiYXJUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+XG4gIHByaXZhdGUgX3Rvb2xiYXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PlxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxhbnk+LFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyOiBFbGRlckRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyLFxuICAgIHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXJcbiAgKSB7XG4gICAgc3VwZXIoc2VsZWN0aW9uTW9kZWwsIGRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmVjeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KClcblxuICAgIGNvbnN0IGNvbHVtbkNvdW50JCA9IHRoaXMucmVzcG9uc2l2ZUNvbHVtbkNvdW50ID8gdGhpcy5yZXNwb25zaXZlQ29sdW1uKCkgOiB0aGlzLl9jb2x1bW5Db3VudFxuXG4gICAgdGhpcy5kYXRhUm93cyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZGF0YUNvbnRleHQkLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZGMpID0+ICEhZGMpLFxuICAgICAgICBzd2l0Y2hNYXAoKGRjKSA9PiBkYy5kYXRhKVxuICAgICAgKSxcbiAgICAgIGNvbHVtbkNvdW50JCxcbiAgICBdKS5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgIG1hcCgoW2RhdGEsIGNvbHVtbkNvdW50XSkgPT4gdGhpcy5idWlsZEdyaWRSb3coZGF0YSwgY29sdW1uQ291bnQpKVxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgTWF0VGFibGVEYXRhQ29udGV4dEJpbmRpbmdCdWlsZGVyLnN0YXJ0KHRoaXMuZGF0YUNvbnRleHQkKVxuICAgICAgLndpdGhQYWdpbmF0b3Iob2YodGhpcy5tYXRQYWdpbmF0b3IpKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0aWxlVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl90aWxlVGVtcGxhdGUgPSB0ZW1wbGF0ZVxuICB9XG5cbiAgcHVibGljIGdldCB0aWxlVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3RpbGVUZW1wbGF0ZSB8fCB0aGlzLnRpbGVUZW1wbGF0ZVF1ZXJ5XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHRvb2xiYXJUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuX3Rvb2xiYXJUZW1wbGF0ZSA9IHRlbXBsYXRlXG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvb2xiYXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fdG9vbGJhclRlbXBsYXRlIHx8IHRoaXMudG9vbGJhclRlbXBsYXRlUXVlcnlcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YShkYXRhOiBJRGF0YUNvbnRleHQ8YW55Pikge1xuICAgIHRoaXMuZGF0YUNvbnRleHQkLm5leHQoZGF0YSlcblxuICAgIHRoaXMudG90YWwkID0gZGF0YS50b3RhbC5waXBlKG1hcCgodG90YWwpID0+ICh0b3RhbCA/IHRvdGFsICsgJycgOiAn4oieJykpKVxuXG4gICAgaWYgKGlzQ29udGludWFibGVEYXRhQ29udGV4dChkYXRhKSkge1xuICAgICAgdGhpcy5jYW5Mb2FkTW9yZSQgPSBjb21iaW5lTGF0ZXN0KFtkYXRhLmxvYWRpbmcsIGRhdGEuaGFzTW9yZURhdGFdKS5waXBlKFxuICAgICAgICBtYXAoKFtsb2FkaW5nLCBoYXNNb3JlRGF0YV0pID0+ICFsb2FkaW5nICYmIGhhc01vcmVEYXRhKVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhbkxvYWRNb3JlJCA9IG9mKGZhbHNlKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YVNuYXBzaG90KCk6IElEYXRhQ29udGV4dENvbnRpbnVhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb250aW51YWJsZVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjb2x1bW5Db3VudChjb3VudDogbnVtYmVyKSB7XG4gICAgdGhpcy5fY29sdW1uQ291bnQubmV4dChjb3VudClcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uQ291bnQuZ2V0VmFsdWUoKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGluU2VsZWN0aW9uTW9kZShjdXJyZW50U2VsZWN0aW9uOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmludGVyYWN0aW9uTW9kZSA9PT0gJ3NlbGVjdGlvbicpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRTZWxlY3Rpb24gJiYgY3VycmVudFNlbGVjdGlvbi5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0TW9yZURhdGFab25lZChldmVudDogdW5rbm93bik6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGFTbmFwc2hvdC5oYXNNb3JlRGF0YVNuYXBzaG90KSB7XG4gICAgICBpZiAodGhpcy5kYXRhU25hcHNob3Quc25hcHNob3QuaXNMb2FkaW5nKSB7XG4gICAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSB0cnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRhdGFTbmFwc2hvdC5sb2FkTW9yZSgpLnN1YnNjcmliZSgobG9hZGVkKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMubG9hZE5leHRRdWV1ZWQpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSBmYWxzZVxuICAgICAgICAgICAgdGhpcy5yZXF1ZXN0TW9yZURhdGFab25lZChldmVudClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG93VGlsZSh0aWxlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGlsZSAmJiAodGhpcy5oaWRkZW5GaWVsZCA/ICF0aWxlW3RoaXMuaGlkZGVuRmllbGRdIDogdHJ1ZSlcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc2Nyb2xsVG9wKCkge1xuICAgIHRoaXMudmlydHVhbFNjcm9sbFZpZXdQb3J0LnNjcm9sbFRvSW5kZXgoMCwgJ3Ntb290aCcpXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkR3JpZFJvdyhub2RlczogVFtdLCBjb2x1bW5Db3VudDogbnVtYmVyKTogR3JpZFJvdzxUPltdIHtcbiAgICBjb25zdCByb3dzOiBHcmlkUm93PFQ+W10gPSBbXVxuXG4gICAgY29uc3Qgcm93Q291bnQgPSBub2Rlcy5sZW5ndGggLyBjb2x1bW5Db3VudFxuXG4gICAgZm9yIChsZXQgcm93SW5kZXggPSAwOyByb3dJbmRleCA8IHJvd0NvdW50OyByb3dJbmRleCsrKSB7XG4gICAgICBjb25zdCByb3dTdGFydEluZGV4ID0gcm93SW5kZXggKiBjb2x1bW5Db3VudFxuICAgICAgY29uc3Qgcm93Q2VsbHMgPSBub2Rlcy5zbGljZShyb3dTdGFydEluZGV4LCByb3dTdGFydEluZGV4ICsgY29sdW1uQ291bnQpXG5cbiAgICAgIHdoaWxlIChyb3dDZWxscy5sZW5ndGggPCBjb2x1bW5Db3VudCkge1xuICAgICAgICByb3dDZWxscy5wdXNoKG51bGwpIC8vIEZpbGwgdXAgcmVtYWluaW5nXG4gICAgICB9XG4gICAgICByb3dzLnB1c2gobmV3IEdyaWRSb3c8VD4odGhpcy5yb3dJZChyb3dDZWxscyksIHJvd0NlbGxzKSlcbiAgICB9XG5cbiAgICByZXR1cm4gcm93c1xuICB9XG5cbiAgcHJpdmF0ZSByb3dJZChjZWxsczogVFtdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2VsbHNcbiAgICAgIC5tYXAoKGNlbGwpID0+IHtcbiAgICAgICAgaWYgKGNlbGwpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRJZChjZWxsKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiAnXydcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5qb2luKCctJylcbiAgfVxuXG4gIHByaXZhdGUgcmVzcG9uc2l2ZUNvbHVtbigpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIGNvbnN0IGJyZWFrcG9pbnRzID0gQXJyYXkuZnJvbSh0aGlzLnNpemVUb0NvbHVtbnMua2V5cygpKVxuICAgIHJldHVybiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKGJyZWFrcG9pbnRzKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgbWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgbGV0IGFjdGl2ZVNpemUgPSBCcmVha3BvaW50cy5NZWRpdW1cbiAgICAgICAgZm9yIChjb25zdCBxdWVyeSBvZiBPYmplY3Qua2V5cyhyZXN1bHQuYnJlYWtwb2ludHMpKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5icmVha3BvaW50c1txdWVyeV0pIHtcbiAgICAgICAgICAgIGFjdGl2ZVNpemUgPSBxdWVyeVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZVRvQ29sdW1ucy5nZXQoYWN0aXZlU2l6ZSlcbiAgICAgIH0pLFxuICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICBzdGFydFdpdGgodGhpcy5hY3RpdmVDb2x1bW5Db3VudCgpKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZlQ29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICBsZXQgY29sdW1uQ291bnQgPSAxXG4gICAgdGhpcy5zaXplVG9Db2x1bW5zLmZvckVhY2goKGNvbHMsIG1xQWxpYXMpID0+IHtcbiAgICAgIGlmICh0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQobXFBbGlhcykpIHtcbiAgICAgICAgY29sdW1uQ291bnQgPSBjb2xzXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gY29sdW1uQ291bnRcbiAgfVxufVxuIiwiPG1hdC1jYXJkIGNsYXNzPVwiZnVsbFwiIFtjbGFzcy5lbWJlZGRlZF09XCJlbWJlZGRlZFwiIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIj5cbiAgQGlmIChkYXRhQ29udGV4dCQgfCBhc3luYzsgYXMgZGF0YSkge1xuICAgIDwhLS0gR3JpZCBCcm93c2VyIC0tPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibGF5b3V0LWNvbCBmdWxsIGVsZGVyLWdyaWQtY29udGFpbmVyXCJcbiAgICAgIFtlbGRlckRhdGFDb250ZXh0U2VsZWN0aW9uXT1cImRhdGFcIlxuICAgICAgI2RhdGFTZWxlY3Rpb249XCJlbGRlckRhdGFDb250ZXh0U2VsZWN0aW9uXCJcbiAgICAgIFtlbGRlckRhdGFDb250ZXh0U2VsZWN0aW9uTW9kZWxdPVwic2VsZWN0aW9uTW9kZWxcIlxuICAgID5cbiAgICAgIDwhLS0gVG9vbGJhciBSb3cgLS0+XG4gICAgICBAaWYgKHRvb2xiYXJWaXNpYmxlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWNlbnRlciBmbGV4LW5vbmUgZWxkZXItZ3JpZC10b29sYmFyXCI+XG4gICAgICAgICAgQGlmIChzZWxlY3Rpb25WaXNpYmxlKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmbGV4LW5vbmVcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXJpZ2h0OiA4cHhcIj5cbiAgICAgICAgICAgICAgPGVsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3hcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtbm9uZVwiXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDEycHhcIlxuICAgICAgICAgICAgICA+PC9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPCEtLSBUb29sYmFyIC0tPlxuICAgICAgICAgIEBpZiAodG9vbGJhclRlbXBsYXRlKSB7XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b29sYmFyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB0aGlzIH1cIlxuICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChhdmFpbGFibGVDb21wb3NpdGVTb3J0cyAmJiBhdmFpbGFibGVDb21wb3NpdGVTb3J0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICA8ZWxkZXItY29tcG9zaXRlLXNvcnRcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LW5vbmVcIlxuICAgICAgICAgICAgICBbYXZhaWxhYmxlU29ydHNdPVwiYXZhaWxhYmxlQ29tcG9zaXRlU29ydHNcIlxuICAgICAgICAgICAgICBbdHJhbnNsYXRpb25QcmVmaXhdPVwic29ydFRyYW5zbGF0aW9uUHJlZml4XCJcbiAgICAgICAgICAgICAgW2VsZGVyQ29tcG9zaXRlU29ydERjXT1cImRhdGFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9lbGRlci1jb21wb3NpdGUtc29ydD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgfVxuXG4gICAgICA8ZWxkZXItZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvciBjbGFzcz1cImZsZXgtbm9uZVwiIFtkYXRhQ29udGV4dF09XCJkYXRhXCI+XG4gICAgICA8L2VsZGVyLWRhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3I+XG5cbiAgICAgIDwhLS0gW2Nka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXT1cInRydWVcIiAtLT5cbiAgICAgIDwhLS0gY2RrRHJvcExpc3QgLS0+XG4gICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgICAgIGNsYXNzPVwibGF5b3V0LWNvbCBmbGV4IGVsZGVyLWdyaWQtYnJvd3NlclwiXG4gICAgICAgIGlkPVwie3sgc2Nyb2xsQ29udGFpbmVySWQgfX1cIlxuICAgICAgICBbaXRlbVNpemVdPVwiaXRlbUhlaWdodFwiXG4gICAgICAgIFttaW5CdWZmZXJQeF09XCJpdGVtSGVpZ2h0ICogMlwiXG4gICAgICAgIFttYXhCdWZmZXJQeF09XCJpdGVtSGVpZ2h0ICogM1wiXG4gICAgICAgICN2aXJ0dWFsU2Nyb2xsVmlld1BvcnRcbiAgICAgICAgZWxkZXJJbmZpbml0ZVNjcm9sbFxuICAgICAgICBbZXZlbnRUaHJvdHRsZV09XCIyMDBcIlxuICAgICAgICBbb2Zmc2V0RmFjdG9yXT1cIjJcIlxuICAgICAgICBbaWdub3JlU2Nyb2xsRXZlbnRdPVwiZGF0YS5sb2FkaW5nIHwgYXN5bmNcIlxuICAgICAgICBbY29udGFpbmVySWRdPVwic2Nyb2xsQ29udGFpbmVySWRcIlxuICAgICAgICBbbGlzdGVuVG9Ib3N0XT1cImZhbHNlXCJcbiAgICAgICAgKGNsb3NlVG9FbmQpPVwicmVxdWVzdE1vcmVEYXRhWm9uZWQoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gKHNjcm9sbGluZyk9XCJvblNjcm9sbGluZygkZXZlbnQpXCIgLS0+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpjZGtWaXJ0dWFsRm9yPVwiXG4gICAgICAgICAgICBsZXQgZ3JpZFJvdyBvZiBkYXRhUm93cyQ7XG4gICAgICAgICAgICB0cmFja0J5OiBUcmFja0dyaWRSb3dCeUlkRm47XG4gICAgICAgICAgICB0ZW1wbGF0ZUNhY2hlU2l6ZTogNTBcbiAgICAgICAgICBcIlxuICAgICAgICAgIGNsYXNzPVwiZWxkZXItZ3JpZC10aWxlLXJvd1wiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJpdGVtSGVpZ2h0ICsgJ3B4J1wiXG4gICAgICAgID5cbiAgICAgICAgICBAZm9yICh0aWxlIG9mIGdyaWRSb3cuY2VsbHM7IHRyYWNrIGdldElkKHRpbGUpKSB7XG4gICAgICAgICAgICA8IS0tIFRpbGUgQ2VsbCAtLT5cbiAgICAgICAgICAgIEBpZiAoc2hvd1RpbGUodGlsZSkpIHtcbiAgICAgICAgICAgICAgPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwiZWxkZXItZ3JpZC10aWxlXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1ncmlkLXRpbGUtY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2sodGlsZSlcIlxuICAgICAgICAgICAgICAgICAgKGRibGNsaWNrKT1cIm9uSXRlbURvdWJsZUNsaWNrKHRpbGUpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgdGlsZVRlbXBsYXRlIHx8IHNpbXBsZVRpbGVUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogdGlsZSB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8IS0tIE92ZXJsYXkgKFNlbGVjdGlvbikgLS0+XG4gICAgICAgICAgICAgICAgICBAaWYgKHNlbGVjdGlvblZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChzZWxlY3Rpb25Nb2RlbC5zZWxlY3Rpb24gfCBhc3luYzsgYXMgc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1ncmlkLXRpbGUtb3ZlcmxheSBlbGRlci1jbGljay10aHJvdWdoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5lbGRlci1ncmlkLXRpbGUtb3ZlcmxheS1oaWRkZW5dPVwiIWluU2VsZWN0aW9uTW9kZShzZWxlY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5lbGRlci1ncmlkLXRpbGUtb3ZlcmxheS12aXNpYmxlXT1cImluU2VsZWN0aW9uTW9kZShzZWxlY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGlvbk1vZGVsLnRvZ2dsZSh0aWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1ncmlkLXRpbGUtY2hlY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZWxkZXItc2VsZWN0ZWRdPVwic2VsZWN0aW9uTW9kZWwub2JzZXJ2ZVNlbGVjdGlvbih0aWxlKSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uTW9kZWwub2JzZXJ2ZVNlbGVjdGlvbih0aWxlKSB8IGFzeW5jKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdjaGVja19jaXJjbGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3JhZGlvX2J1dHRvbl91bmNoZWNrZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVsZGVyLWdyaWQtdGlsZS1oaWRkZW5cIj48L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG5cbiAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyXG4gICAgICAgIGNsYXNzPVwiZmxleC1ub25lXCJcbiAgICAgICAgW21vZGVdPVwiKGRhdGE/LmxvYWRpbmcgfCBhc3luYykgPyAnaW5kZXRlcm1pbmF0ZScgOiAnZGV0ZXJtaW5hdGUnXCJcbiAgICAgICAgW2NvbG9yXT1cImRhdGEgJiYgKGRhdGEuc3RhdHVzIHwgYXN5bmMpPy5oYXNFcnJvciA/ICd3YXJuJyA6ICdwcmltYXJ5J1wiXG4gICAgICA+XG4gICAgICA8L21hdC1wcm9ncmVzcy1iYXI+XG5cbiAgICAgIDwhLS0gRm9vdGVyIC0tPlxuICAgICAgQGlmIChmb290ZXJWaXNpYmxlKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImxheW91dC1yb3cgcGxhY2UtZW5kLWNlbnRlciBnYXAtbWQgZmxleC1ub25lIGVsZGVyLWdyaWQtZm9vdGVyXCJcbiAgICAgICAgICBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDEycHhcIlxuICAgICAgICA+XG4gICAgICAgICAgPCEtLSBDb250aW51YWJsZSAtLT5cbiAgICAgICAgICBAaWYgKGlzQ29udGludWFibGUpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb24gbm9zZWxlY3RcIiBzdHlsZT1cImNvbG9yOiBncmF5XCI+XG4gICAgICAgICAgICAgIHt7IChkYXRhU25hcHNob3Q/LmRhdGEgfCBhc3luYyk/Lmxlbmd0aCB9fSAvIHt7IHRvdGFsJCB8IGFzeW5jIH19XG4gICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIShjYW5Mb2FkTW9yZSQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGF0YVNuYXBzaG90LmxvYWRNb3JlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8IS0tIFBhZ2VkIC0tPlxuICAgICAgICAgIEBpZiAoaXNBY3RpdmVQYWdlZCkge1xuICAgICAgICAgICAgQGlmIChkYXRhQWN0aXZlUGFnZWQucGFnZSB8IGFzeW5jOyBhcyBwYWdlKSB7XG4gICAgICAgICAgICAgIDxtYXQtcGFnaW5hdG9yXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LW5vbmVcIlxuICAgICAgICAgICAgICAgIFtsZW5ndGhdPVwiZGF0YUNvbnRleHQ/LnRvdGFsIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFtwYWdlSW5kZXhdPVwicGFnZT8uaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJwYWdlPy5zaXplXCJcbiAgICAgICAgICAgICAgICBbcGFnZVNpemVPcHRpb25zXT1cInBhZ2VTaXplT3B0aW9uc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9tYXQtcGFnaW5hdG9yPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIDwhLS0gTG9jYWwgU291cmNlIC0tPlxuICAgICAgICAgIEBpZiAoIWlzQWN0aXZlUGFnZWQgJiYgIWlzQ29udGludWFibGUpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb24gbm9zZWxlY3RcIiBzdHlsZT1cImNvbG9yOiBncmF5XCI+XG4gICAgICAgICAgICAgIHt7IChkYXRhU25hcHNob3Q/LmRhdGEgfCBhc3luYyk/Lmxlbmd0aCB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvbWF0LWNhcmQ+XG5cbjxuZy10ZW1wbGF0ZSAjc2ltcGxlVGlsZVRlbXBsYXRlIGxldC10aWxlPlxuICBAaWYgKHRpbGUpIHtcbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBwbGFjZS1jZW50ZXItY2VudGVyIGZsZXhcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZVwiPlxuICAgICAgPHAgY2xhc3M9XCJub3NlbGVjdFwiPlRpbGU6IHt7IHRpbGUgfX08L3A+XG4gICAgPC9kaXY+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,91 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { ElderGridComponent, ElderGridTileDirective, ElderGridToolbarDirective, } from './elder-grid/elder-grid.component';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { MatCommonModule } from '@angular/material/core';
6
- import { MatDividerModule } from '@angular/material/divider';
7
- import { MatIconModule } from '@angular/material/icon';
8
- import { MatMenuModule } from '@angular/material/menu';
9
- import { MatProgressBarModule } from '@angular/material/progress-bar';
10
- import { MatSelectModule } from '@angular/material/select';
11
- import { A11yModule } from '@angular/cdk/a11y';
12
- import { DragDropModule } from '@angular/cdk/drag-drop';
13
- import { ScrollingModule } from '@angular/cdk/scrolling';
14
- import { TranslateModule } from '@ngx-translate/core';
15
- import { ElderInfiniteScrollModule } from '../../infinitescroll/elder-infinite-scroll.module';
16
- import { ElderFormsDirectivesModule } from '../../forms/directives/elder-forms-directives.module';
17
- import { ElderDataCommonModule } from '../common/elder-data-common.module';
18
- import { MatPaginatorModule } from '@angular/material/paginator';
19
- import { MatCardModule } from '@angular/material/card';
20
- import * as i0 from "@angular/core";
21
- export { ElderGridTileDirective, ElderGridToolbarDirective, ElderGridComponent, } from './elder-grid/elder-grid.component';
22
- export class ElderGridModule {
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
24
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ElderGridModule, imports: [CommonModule,
25
- MatCommonModule,
26
- MatProgressBarModule,
27
- MatMenuModule,
28
- A11yModule,
29
- MatDividerModule,
30
- MatIconModule,
31
- MatButtonModule,
32
- MatSelectModule,
33
- DragDropModule,
34
- ScrollingModule,
35
- TranslateModule,
36
- ElderDataCommonModule,
37
- ElderInfiniteScrollModule,
38
- ElderFormsDirectivesModule,
39
- MatPaginatorModule,
40
- MatCardModule,
41
- ElderGridComponent,
42
- ElderGridTileDirective,
43
- ElderGridToolbarDirective], exports: [ElderGridComponent, ElderGridTileDirective, ElderGridToolbarDirective] }); }
44
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridModule, imports: [CommonModule,
45
- MatCommonModule,
46
- MatProgressBarModule,
47
- MatMenuModule,
48
- A11yModule,
49
- MatDividerModule,
50
- MatIconModule,
51
- MatButtonModule,
52
- MatSelectModule,
53
- DragDropModule,
54
- ScrollingModule,
55
- TranslateModule,
56
- ElderDataCommonModule,
57
- ElderInfiniteScrollModule,
58
- ElderFormsDirectivesModule,
59
- MatPaginatorModule,
60
- MatCardModule,
61
- ElderGridComponent] }); }
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridModule, decorators: [{
64
- type: NgModule,
65
- args: [{
66
- imports: [
67
- CommonModule,
68
- MatCommonModule,
69
- MatProgressBarModule,
70
- MatMenuModule,
71
- A11yModule,
72
- MatDividerModule,
73
- MatIconModule,
74
- MatButtonModule,
75
- MatSelectModule,
76
- DragDropModule,
77
- ScrollingModule,
78
- TranslateModule,
79
- ElderDataCommonModule,
80
- ElderInfiniteScrollModule,
81
- ElderFormsDirectivesModule,
82
- MatPaginatorModule,
83
- MatCardModule,
84
- ElderGridComponent,
85
- ElderGridTileDirective,
86
- ElderGridToolbarDirective,
87
- ],
88
- exports: [ElderGridComponent, ElderGridTileDirective, ElderGridToolbarDirective],
89
- }]
90
- }] });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9ncmlkL2VsZGVyLWdyaWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLHlCQUF5QixHQUMxQixNQUFNLG1DQUFtQyxDQUFBO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFBO0FBQzdGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFBO0FBQ2pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQzFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTs7QUFFdEQsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsa0JBQWtCLEdBQ25CLE1BQU0sbUNBQW1DLENBQUE7QUEyQjFDLE1BQU0sT0FBTyxlQUFlOytHQUFmLGVBQWU7Z0hBQWYsZUFBZSxZQXZCeEIsWUFBWTtZQUNaLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLFVBQVU7WUFDVixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlO1lBQ2YsY0FBYztZQUNkLGVBQWU7WUFDZixlQUFlO1lBQ2YscUJBQXFCO1lBQ3JCLHlCQUF5QjtZQUN6QiwwQkFBMEI7WUFDMUIsa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsc0JBQXNCO1lBQ3RCLHlCQUF5QixhQUVqQixrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSx5QkFBeUI7Z0hBRXBFLGVBQWUsWUF2QnhCLFlBQVk7WUFDWixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLGFBQWE7WUFDYixVQUFVO1lBQ1YsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixlQUFlO1lBQ2YsZUFBZTtZQUNmLGNBQWM7WUFDZCxlQUFlO1lBQ2YsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIsMEJBQTBCO1lBQzFCLGtCQUFrQjtZQUNsQixhQUFhO1lBQ2Isa0JBQWtCOzs0RkFNVCxlQUFlO2tCQXpCM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0Qix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLHlCQUF5QixDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIEVsZGVyR3JpZENvbXBvbmVudCxcbiAgRWxkZXJHcmlkVGlsZURpcmVjdGl2ZSxcbiAgRWxkZXJHcmlkVG9vbGJhckRpcmVjdGl2ZSxcbn0gZnJvbSAnLi9lbGRlci1ncmlkL2VsZGVyLWdyaWQuY29tcG9uZW50J1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJ1xuaW1wb3J0IHsgTWF0Q29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSdcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJ1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSdcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJ1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0J1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5J1xuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJ1xuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBFbGRlckluZmluaXRlU2Nyb2xsTW9kdWxlIH0gZnJvbSAnLi4vLi4vaW5maW5pdGVzY3JvbGwvZWxkZXItaW5maW5pdGUtc2Nyb2xsLm1vZHVsZSdcbmltcG9ydCB7IEVsZGVyRm9ybXNEaXJlY3RpdmVzTW9kdWxlIH0gZnJvbSAnLi4vLi4vZm9ybXMvZGlyZWN0aXZlcy9lbGRlci1mb3Jtcy1kaXJlY3RpdmVzLm1vZHVsZSdcbmltcG9ydCB7IEVsZGVyRGF0YUNvbW1vbk1vZHVsZSB9IGZyb20gJy4uL2NvbW1vbi9lbGRlci1kYXRhLWNvbW1vbi5tb2R1bGUnXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCdcblxuZXhwb3J0IHtcbiAgRWxkZXJHcmlkVGlsZURpcmVjdGl2ZSxcbiAgRWxkZXJHcmlkVG9vbGJhckRpcmVjdGl2ZSxcbiAgRWxkZXJHcmlkQ29tcG9uZW50LFxufSBmcm9tICcuL2VsZGVyLWdyaWQvZWxkZXItZ3JpZC5jb21wb25lbnQnXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0Q29tbW9uTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgQTExeU1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEVsZGVyRGF0YUNvbW1vbk1vZHVsZSxcbiAgICBFbGRlckluZmluaXRlU2Nyb2xsTW9kdWxlLFxuICAgIEVsZGVyRm9ybXNEaXJlY3RpdmVzTW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBNYXRDYXJkTW9kdWxlLFxuICAgIEVsZGVyR3JpZENvbXBvbmVudCxcbiAgICBFbGRlckdyaWRUaWxlRGlyZWN0aXZlLFxuICAgIEVsZGVyR3JpZFRvb2xiYXJEaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtFbGRlckdyaWRDb21wb25lbnQsIEVsZGVyR3JpZFRpbGVEaXJlY3RpdmUsIEVsZGVyR3JpZFRvb2xiYXJEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckdyaWRNb2R1bGUge31cbiJdfQ==