@one-paragon/angular-utilities 1.1.6 → 1.1.8

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 (404) hide show
  1. package/karma.conf.js +44 -0
  2. package/ng-package.json +7 -0
  3. package/package.json +16 -30
  4. package/src/action-state/action-state-spinner/action-state-spinner.component.css +16 -0
  5. package/src/action-state/action-state-spinner/action-state-spinner.component.html +6 -0
  6. package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +25 -0
  7. package/src/action-state/action-state-spinner/action-state-spinner.component.ts +26 -0
  8. package/src/action-state/action-state-ui/action-state-ui.module.ts +13 -0
  9. package/{action-state/index.d.ts → src/action-state/index.ts} +8 -4
  10. package/src/action-state/ngrx-ext/ngrx-ext.module.ts +15 -0
  11. package/src/action-state/ngrx.ts +69 -0
  12. package/src/http-request-state/HttpRequestStateFactory.ts +66 -0
  13. package/src/http-request-state/HttpRequestStateStore.ts +151 -0
  14. package/src/http-request-state/directives/HttpStateDirectiveBase.ts +38 -0
  15. package/src/http-request-state/directives/http-error-state-directive.ts +32 -0
  16. package/src/http-request-state/directives/http-inProgress-state-directive.ts +32 -0
  17. package/src/http-request-state/directives/http-notStarted-state-directive.ts +31 -0
  18. package/src/http-request-state/directives/http-success-state-directive.ts +40 -0
  19. package/{http-request-state/directives/index.d.ts → src/http-request-state/directives/index.ts} +5 -5
  20. package/src/http-request-state/directives/request-state-directive.spec.ts +72 -0
  21. package/src/http-request-state/directives/request-state-directive.ts +79 -0
  22. package/src/http-request-state/helpers.ts +30 -0
  23. package/src/http-request-state/http-request-state.ts +69 -0
  24. package/src/http-request-state/http-state-module.ts +23 -0
  25. package/{http-request-state/index.d.ts → src/http-request-state/index.ts} +6 -6
  26. package/src/http-request-state/observable.spec.ts +43 -0
  27. package/src/http-request-state/rxjs/getRequestorBody.ts +10 -0
  28. package/src/http-request-state/rxjs/getRequestorState.ts +8 -0
  29. package/{http-request-state/rxjs/index.d.ts → src/http-request-state/rxjs/index.ts} +4 -4
  30. package/src/http-request-state/rxjs/tapError.ts +16 -0
  31. package/src/http-request-state/rxjs/tapSuccess.ts +16 -0
  32. package/src/http-request-state/strategies.spec.ts +42 -0
  33. package/src/http-request-state/types.ts +56 -0
  34. package/src/ngrx/actionable-selector.ts +95 -0
  35. package/src/ngrx/index.ts +1 -0
  36. package/{public-api.d.ts → src/public-api.ts} +35 -16
  37. package/src/rxjs/defaultShareReplay.ts +8 -0
  38. package/{rxjs/index.d.ts → src/rxjs/index.ts} +5 -5
  39. package/src/rxjs/mapError.ts +8 -0
  40. package/src/rxjs/rxjs-operators.ts +132 -0
  41. package/src/rxjs/subjectifier.ts +15 -0
  42. package/src/rxjs/subscriber.directive.ts +57 -0
  43. package/src/specs/clickSubject.spec.ts +95 -0
  44. package/src/specs/dialog.spec.ts +101 -0
  45. package/src/specs/toggleGroupDirective.spec.ts +229 -0
  46. package/src/table-builder/classes/DefaultSettings.ts +11 -0
  47. package/src/table-builder/classes/MatTableObservableDataSource.ts +23 -0
  48. package/src/table-builder/classes/TableBuilderConfig.ts +35 -0
  49. package/src/table-builder/classes/TableBuilderDataSource.ts +57 -0
  50. package/src/table-builder/classes/TableState.ts +87 -0
  51. package/{table-builder/classes/display-col.d.ts → src/table-builder/classes/display-col.ts} +5 -5
  52. package/src/table-builder/classes/filter-info.ts +131 -0
  53. package/src/table-builder/classes/table-builder-general-settings.ts +115 -0
  54. package/src/table-builder/classes/table-builder.ts +94 -0
  55. package/src/table-builder/classes/table-store.ts +435 -0
  56. package/src/table-builder/components/array-column.component.ts +36 -0
  57. package/src/table-builder/components/column-builder/column-builder.component.html +61 -0
  58. package/src/table-builder/components/column-builder/column-builder.component.scss +43 -0
  59. package/src/table-builder/components/column-builder/column-builder.component.spec.ts +49 -0
  60. package/src/table-builder/components/column-builder/column-builder.component.ts +137 -0
  61. package/src/table-builder/components/column-builder/column-helpers.ts +36 -0
  62. package/src/table-builder/components/date-filter/date-filter.component.html +23 -0
  63. package/src/table-builder/components/date-filter/date-filter.component.ts +24 -0
  64. package/src/table-builder/components/date-time-filter/date-time-filter.component.html +9 -0
  65. package/src/table-builder/components/date-time-filter/date-time-filter.component.ts +22 -0
  66. package/src/table-builder/components/filter/filter.component.html +88 -0
  67. package/src/table-builder/components/filter/filter.component.scss +64 -0
  68. package/src/table-builder/components/filter/filter.component.spec.ts +87 -0
  69. package/src/table-builder/components/filter/filter.component.ts +55 -0
  70. package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +92 -0
  71. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +55 -0
  72. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +57 -0
  73. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +57 -0
  74. package/src/table-builder/components/generic-table/generic-table.component.html +71 -0
  75. package/src/table-builder/components/generic-table/generic-table.component.scss +51 -0
  76. package/src/table-builder/components/generic-table/generic-table.component.ts +264 -0
  77. package/src/table-builder/components/generic-table/paginator.component.ts +106 -0
  78. package/src/table-builder/components/group-by-list/group-by-list.component.css +8 -0
  79. package/src/table-builder/components/group-by-list/group-by-list.component.html +12 -0
  80. package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +23 -0
  81. package/src/table-builder/components/group-by-list/group-by-list.component.ts +21 -0
  82. package/src/table-builder/components/header-menu/header-menu.component.html +104 -0
  83. package/src/table-builder/components/header-menu/header-menu.component.scss +96 -0
  84. package/src/table-builder/components/header-menu/header-menu.component.ts +98 -0
  85. package/src/table-builder/components/in-filter/in-filter.component.css +3 -0
  86. package/src/table-builder/components/in-filter/in-filter.component.html +20 -0
  87. package/src/table-builder/components/in-filter/in-filter.component.ts +64 -0
  88. package/{table-builder/components/index.d.ts → src/table-builder/components/index.ts} +9 -9
  89. package/src/table-builder/components/initialization-component/initialization-component.html +29 -0
  90. package/src/table-builder/components/initialization-component/initialization-component.ts +24 -0
  91. package/src/table-builder/components/link-column.component.ts +47 -0
  92. package/src/table-builder/components/number-filter/number-filter.component.css +10 -0
  93. package/src/table-builder/components/number-filter/number-filter.component.html +19 -0
  94. package/src/table-builder/components/number-filter/number-filter.component.spec.ts +30 -0
  95. package/src/table-builder/components/number-filter/number-filter.component.ts +25 -0
  96. package/src/table-builder/components/profiles-menu/profiles-menu.component.html +74 -0
  97. package/src/table-builder/components/profiles-menu/profiles-menu.component.scss +98 -0
  98. package/src/table-builder/components/profiles-menu/profiles-menu.component.spec.ts +23 -0
  99. package/src/table-builder/components/profiles-menu/profiles-menu.component.ts +65 -0
  100. package/src/table-builder/components/scroll-strategy.ts +89 -0
  101. package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +63 -0
  102. package/src/table-builder/components/sort-menu/sort-menu.component.html +111 -0
  103. package/src/table-builder/components/sort-menu/sort-menu.component.scss +119 -0
  104. package/src/table-builder/components/sort-menu/sort-menu.component.ts +95 -0
  105. package/{table-builder/components/table-container/table-container-imports.d.ts → src/table-builder/components/table-container/table-container-imports.ts} +32 -14
  106. package/src/table-builder/components/table-container/table-container.css +54 -0
  107. package/src/table-builder/components/table-container/table-container.helpers/data-state.helpers.ts +141 -0
  108. package/src/table-builder/components/table-container/table-container.helpers/filter-state.helpers.ts +106 -0
  109. package/src/table-builder/components/table-container/table-container.helpers/groupBy.helpers.ts +86 -0
  110. package/src/table-builder/components/table-container/table-container.helpers/sort-state.helpers.ts +45 -0
  111. package/src/table-builder/components/table-container/table-container.html +96 -0
  112. package/src/table-builder/components/table-container/table-container.spec.ts +154 -0
  113. package/src/table-builder/components/table-container/table-container.ts +319 -0
  114. package/src/table-builder/components/table-container/tableProps.ts +18 -0
  115. package/src/table-builder/components/table-container/virtual-scroll-container.ts +141 -0
  116. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +31 -0
  117. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +52 -0
  118. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +42 -0
  119. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +10 -0
  120. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +86 -0
  121. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +38 -0
  122. package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +23 -0
  123. package/src/table-builder/directives/custom-cell-directive.ts +58 -0
  124. package/{table-builder/directives/index.d.ts → src/table-builder/directives/index.ts} +6 -5
  125. package/src/table-builder/directives/multi-sort.directive.spec.ts +124 -0
  126. package/src/table-builder/directives/multi-sort.directive.ts +49 -0
  127. package/src/table-builder/directives/resize-column.directive.ts +105 -0
  128. package/src/table-builder/directives/table-wrapper.directive.ts +14 -0
  129. package/src/table-builder/directives/tb-filter.directive.ts +370 -0
  130. package/src/table-builder/enums/filterTypes.ts +79 -0
  131. package/src/table-builder/functions/boolean-filter-function.ts +13 -0
  132. package/src/table-builder/functions/date-filter-function.ts +69 -0
  133. package/src/table-builder/functions/download-data.ts +11 -0
  134. package/src/table-builder/functions/null-filter-function.ts +9 -0
  135. package/src/table-builder/functions/number-filter-function.ts +42 -0
  136. package/src/table-builder/functions/sort-data-function.ts +23 -0
  137. package/src/table-builder/functions/string-filter-function.ts +52 -0
  138. package/{table-builder/interfaces/ColumnInfo.d.ts → src/table-builder/interfaces/ColumnInfo.ts} +7 -6
  139. package/src/table-builder/interfaces/column-template.ts +9 -0
  140. package/{table-builder/interfaces/dictionary.d.ts → src/table-builder/interfaces/dictionary.ts} +3 -3
  141. package/src/table-builder/interfaces/report-def.ts +155 -0
  142. package/src/table-builder/ngrx/tableBuilderStateStore.ts +199 -0
  143. package/src/table-builder/pipes/column-total.pipe.ts +17 -0
  144. package/src/table-builder/pipes/format-filter-type.pipe.ts +12 -0
  145. package/src/table-builder/pipes/format-filter-value.pipe.ts +41 -0
  146. package/src/table-builder/pipes/key-display.ts +16 -0
  147. package/src/table-builder/services/export-to-csv.service.ts +98 -0
  148. package/src/table-builder/services/link-creator.service.ts +67 -0
  149. package/src/table-builder/services/table-template-service.ts +57 -0
  150. package/src/table-builder/services/transform-creator.ts +96 -0
  151. package/src/table-builder/specs/table-custom-filters.spec.ts +262 -0
  152. package/src/table-builder/styles/collapser.styles.scss +19 -0
  153. package/src/table-builder/table-builder.module.ts +73 -0
  154. package/src/test.ts +17 -0
  155. package/src/utilities/array-helpers.ts +13 -0
  156. package/src/utilities/directives/auto-focus.directive.ts +20 -0
  157. package/src/utilities/directives/clickEmitterDirective.ts +16 -0
  158. package/src/utilities/directives/clickSubject.ts +20 -0
  159. package/src/utilities/directives/conditional-classes.directive.ts +36 -0
  160. package/src/utilities/directives/dialog-service.ts +19 -0
  161. package/src/utilities/directives/dialog.ts +147 -0
  162. package/src/utilities/directives/mat-toggle-group-directive.ts +61 -0
  163. package/src/utilities/directives/prevent-enter.directive.ts +13 -0
  164. package/src/utilities/directives/stop-propagation.directive.ts +20 -0
  165. package/src/utilities/directives/styler.ts +39 -0
  166. package/src/utilities/directives/trim-whitespace.directive.ts +21 -0
  167. package/{utilities/index.d.ts → src/utilities/index.ts} +22 -15
  168. package/src/utilities/module.ts +55 -0
  169. package/src/utilities/pipes/function.pipe.ts +16 -0
  170. package/src/utilities/pipes/phone.pipe.ts +15 -0
  171. package/src/utilities/pipes/space-case.pipes.spec.ts +47 -0
  172. package/src/utilities/pipes/space-case.pipes.ts +23 -0
  173. package/tsconfig.lib.json +19 -0
  174. package/tsconfig.lib.prod.json +10 -0
  175. package/tsconfig.spec.json +17 -0
  176. package/action-state/action-state-spinner/action-state-spinner.component.d.ts +0 -12
  177. package/action-state/action-state-ui/action-state-ui.module.d.ts +0 -7
  178. package/action-state/ngrx-ext/ngrx-ext.module.d.ts +0 -8
  179. package/action-state/ngrx.d.ts +0 -31
  180. package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +0 -24
  181. package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +0 -20
  182. package/esm2022/action-state/index.mjs +0 -8
  183. package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +0 -23
  184. package/esm2022/action-state/ngrx.mjs +0 -42
  185. package/esm2022/http-request-state/HttpRequestStateFactory.mjs +0 -52
  186. package/esm2022/http-request-state/HttpRequestStateStore.mjs +0 -101
  187. package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +0 -34
  188. package/esm2022/http-request-state/directives/http-error-state-directive.mjs +0 -29
  189. package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +0 -29
  190. package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +0 -29
  191. package/esm2022/http-request-state/directives/http-success-state-directive.mjs +0 -34
  192. package/esm2022/http-request-state/directives/index.mjs +0 -6
  193. package/esm2022/http-request-state/directives/request-state-directive.mjs +0 -60
  194. package/esm2022/http-request-state/helpers.mjs +0 -22
  195. package/esm2022/http-request-state/http-request-state.mjs +0 -39
  196. package/esm2022/http-request-state/http-state-module.mjs +0 -40
  197. package/esm2022/http-request-state/index.mjs +0 -7
  198. package/esm2022/http-request-state/rxjs/getRequestorBody.mjs +0 -4
  199. package/esm2022/http-request-state/rxjs/getRequestorState.mjs +0 -3
  200. package/esm2022/http-request-state/rxjs/index.mjs +0 -5
  201. package/esm2022/http-request-state/rxjs/tapError.mjs +0 -12
  202. package/esm2022/http-request-state/rxjs/tapSuccess.mjs +0 -12
  203. package/esm2022/http-request-state/types.mjs +0 -16
  204. package/esm2022/ngrx/actionable-selector.mjs +0 -73
  205. package/esm2022/ngrx/index.mjs +0 -2
  206. package/esm2022/one-paragon-angular-utilities.mjs +0 -5
  207. package/esm2022/public-api.mjs +0 -20
  208. package/esm2022/rxjs/defaultShareReplay.mjs +0 -7
  209. package/esm2022/rxjs/index.mjs +0 -6
  210. package/esm2022/rxjs/mapError.mjs +0 -8
  211. package/esm2022/rxjs/rxjs-operators.mjs +0 -92
  212. package/esm2022/rxjs/subjectifier.mjs +0 -15
  213. package/esm2022/rxjs/subscriber.directive.mjs +0 -52
  214. package/esm2022/table-builder/classes/DefaultSettings.mjs +0 -6
  215. package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +0 -21
  216. package/esm2022/table-builder/classes/TableBuilderConfig.mjs +0 -18
  217. package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +0 -44
  218. package/esm2022/table-builder/classes/TableState.mjs +0 -47
  219. package/esm2022/table-builder/classes/display-col.mjs +0 -2
  220. package/esm2022/table-builder/classes/filter-info.mjs +0 -73
  221. package/esm2022/table-builder/classes/table-builder-general-settings.mjs +0 -107
  222. package/esm2022/table-builder/classes/table-builder.mjs +0 -74
  223. package/esm2022/table-builder/classes/table-store.mjs +0 -357
  224. package/esm2022/table-builder/components/array-column.component.mjs +0 -57
  225. package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +0 -125
  226. package/esm2022/table-builder/components/column-builder/column-helpers.mjs +0 -26
  227. package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +0 -29
  228. package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +0 -24
  229. package/esm2022/table-builder/components/filter/filter.component.mjs +0 -67
  230. package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +0 -101
  231. package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +0 -53
  232. package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +0 -224
  233. package/esm2022/table-builder/components/generic-table/paginator.component.mjs +0 -94
  234. package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +0 -23
  235. package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +0 -100
  236. package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +0 -64
  237. package/esm2022/table-builder/components/index.mjs +0 -10
  238. package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +0 -40
  239. package/esm2022/table-builder/components/link-column.component.mjs +0 -78
  240. package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +0 -29
  241. package/esm2022/table-builder/components/profiles-menu/profiles-menu.component.mjs +0 -66
  242. package/esm2022/table-builder/components/scroll-strategy.mjs +0 -68
  243. package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +0 -44
  244. package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +0 -81
  245. package/esm2022/table-builder/components/table-container/table-container-imports.mjs +0 -26
  246. package/esm2022/table-builder/components/table-container/table-container.helpers/data-state.helpers.mjs +0 -135
  247. package/esm2022/table-builder/components/table-container/table-container.helpers/filter-state.helpers.mjs +0 -83
  248. package/esm2022/table-builder/components/table-container/table-container.helpers/groupBy.helpers.mjs +0 -71
  249. package/esm2022/table-builder/components/table-container/table-container.helpers/sort-state.helpers.mjs +0 -36
  250. package/esm2022/table-builder/components/table-container/table-container.mjs +0 -287
  251. package/esm2022/table-builder/components/table-container/tableProps.mjs +0 -7
  252. package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +0 -121
  253. package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +0 -47
  254. package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +0 -36
  255. package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +0 -25
  256. package/esm2022/table-builder/directives/custom-cell-directive.mjs +0 -70
  257. package/esm2022/table-builder/directives/index.mjs +0 -6
  258. package/esm2022/table-builder/directives/multi-sort.directive.mjs +0 -50
  259. package/esm2022/table-builder/directives/resize-column.directive.mjs +0 -88
  260. package/esm2022/table-builder/directives/table-wrapper.directive.mjs +0 -20
  261. package/esm2022/table-builder/directives/tb-filter.directive.mjs +0 -410
  262. package/esm2022/table-builder/enums/filterTypes.mjs +0 -72
  263. package/esm2022/table-builder/functions/boolean-filter-function.mjs +0 -10
  264. package/esm2022/table-builder/functions/date-filter-function.mjs +0 -58
  265. package/esm2022/table-builder/functions/download-data.mjs +0 -12
  266. package/esm2022/table-builder/functions/null-filter-function.mjs +0 -8
  267. package/esm2022/table-builder/functions/number-filter-function.mjs +0 -32
  268. package/esm2022/table-builder/functions/sort-data-function.mjs +0 -17
  269. package/esm2022/table-builder/functions/string-filter-function.mjs +0 -41
  270. package/esm2022/table-builder/interfaces/ColumnInfo.mjs +0 -2
  271. package/esm2022/table-builder/interfaces/dictionary.mjs +0 -2
  272. package/esm2022/table-builder/interfaces/report-def.mjs +0 -50
  273. package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +0 -154
  274. package/esm2022/table-builder/pipes/column-total.pipe.mjs +0 -22
  275. package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +0 -18
  276. package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +0 -45
  277. package/esm2022/table-builder/pipes/key-display.mjs +0 -20
  278. package/esm2022/table-builder/services/export-to-csv.service.mjs +0 -91
  279. package/esm2022/table-builder/services/link-creator.service.mjs +0 -50
  280. package/esm2022/table-builder/services/table-template-service.mjs +0 -57
  281. package/esm2022/table-builder/services/transform-creator.mjs +0 -105
  282. package/esm2022/table-builder/table-builder.module.mjs +0 -124
  283. package/esm2022/utilities/array-helpers.mjs +0 -14
  284. package/esm2022/utilities/directives/auto-focus.directive.mjs +0 -27
  285. package/esm2022/utilities/directives/clickEmitterDirective.mjs +0 -22
  286. package/esm2022/utilities/directives/clickSubject.mjs +0 -28
  287. package/esm2022/utilities/directives/conditional-classes.directive.mjs +0 -36
  288. package/esm2022/utilities/directives/dialog-service.mjs +0 -23
  289. package/esm2022/utilities/directives/dialog.mjs +0 -146
  290. package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +0 -60
  291. package/esm2022/utilities/directives/prevent-enter.directive.mjs +0 -20
  292. package/esm2022/utilities/directives/stop-propagation.directive.mjs +0 -26
  293. package/esm2022/utilities/directives/styler.mjs +0 -42
  294. package/esm2022/utilities/directives/trim-whitespace.directive.mjs +0 -30
  295. package/esm2022/utilities/index.mjs +0 -16
  296. package/esm2022/utilities/module.mjs +0 -90
  297. package/esm2022/utilities/pipes/function.pipe.mjs +0 -22
  298. package/esm2022/utilities/pipes/phone.pipe.mjs +0 -20
  299. package/esm2022/utilities/pipes/space-case.pipes.mjs +0 -28
  300. package/fesm2022/one-paragon-angular-utilities.mjs +0 -5559
  301. package/fesm2022/one-paragon-angular-utilities.mjs.map +0 -1
  302. package/http-request-state/HttpRequestStateFactory.d.ts +0 -17
  303. package/http-request-state/HttpRequestStateStore.d.ts +0 -49
  304. package/http-request-state/directives/HttpStateDirectiveBase.d.ts +0 -16
  305. package/http-request-state/directives/http-error-state-directive.d.ts +0 -12
  306. package/http-request-state/directives/http-inProgress-state-directive.d.ts +0 -12
  307. package/http-request-state/directives/http-notStarted-state-directive.d.ts +0 -12
  308. package/http-request-state/directives/http-success-state-directive.d.ts +0 -21
  309. package/http-request-state/directives/request-state-directive.d.ts +0 -35
  310. package/http-request-state/helpers.d.ts +0 -9
  311. package/http-request-state/http-request-state.d.ts +0 -12
  312. package/http-request-state/http-state-module.d.ts +0 -11
  313. package/http-request-state/rxjs/getRequestorBody.d.ts +0 -3
  314. package/http-request-state/rxjs/getRequestorState.d.ts +0 -3
  315. package/http-request-state/rxjs/tapError.d.ts +0 -3
  316. package/http-request-state/rxjs/tapSuccess.d.ts +0 -3
  317. package/http-request-state/types.d.ts +0 -41
  318. package/index.d.ts +0 -5
  319. package/ngrx/actionable-selector.d.ts +0 -17
  320. package/ngrx/index.d.ts +0 -1
  321. package/rxjs/defaultShareReplay.d.ts +0 -2
  322. package/rxjs/mapError.d.ts +0 -2
  323. package/rxjs/rxjs-operators.d.ts +0 -13
  324. package/rxjs/subjectifier.d.ts +0 -9
  325. package/rxjs/subscriber.directive.d.ts +0 -14
  326. package/table-builder/classes/DefaultSettings.d.ts +0 -9
  327. package/table-builder/classes/MatTableObservableDataSource.d.ts +0 -9
  328. package/table-builder/classes/TableBuilderConfig.d.ts +0 -21
  329. package/table-builder/classes/TableBuilderDataSource.d.ts +0 -14
  330. package/table-builder/classes/TableState.d.ts +0 -56
  331. package/table-builder/classes/filter-info.d.ts +0 -127
  332. package/table-builder/classes/table-builder-general-settings.d.ts +0 -72
  333. package/table-builder/classes/table-builder.d.ts +0 -18
  334. package/table-builder/classes/table-store.d.ts +0 -146
  335. package/table-builder/components/array-column.component.d.ts +0 -15
  336. package/table-builder/components/column-builder/column-builder.component.d.ts +0 -51
  337. package/table-builder/components/column-builder/column-helpers.d.ts +0 -28
  338. package/table-builder/components/date-filter/date-filter.component.d.ts +0 -10
  339. package/table-builder/components/date-time-filter/date-time-filter.component.d.ts +0 -10
  340. package/table-builder/components/filter/filter.component.d.ts +0 -112
  341. package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +0 -27
  342. package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +0 -16
  343. package/table-builder/components/generic-table/generic-table.component.d.ts +0 -67
  344. package/table-builder/components/generic-table/paginator.component.d.ts +0 -30
  345. package/table-builder/components/group-by-list/group-by-list.component.d.ts +0 -7
  346. package/table-builder/components/header-menu/header-menu.component.d.ts +0 -25
  347. package/table-builder/components/in-filter/in-filter.component.d.ts +0 -21
  348. package/table-builder/components/initialization-component/initialization-component.d.ts +0 -13
  349. package/table-builder/components/link-column.component.d.ts +0 -25
  350. package/table-builder/components/number-filter/number-filter.component.d.ts +0 -12
  351. package/table-builder/components/profiles-menu/profiles-menu.component.d.ts +0 -32
  352. package/table-builder/components/scroll-strategy.d.ts +0 -25
  353. package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +0 -24
  354. package/table-builder/components/sort-menu/sort-menu.component.d.ts +0 -25
  355. package/table-builder/components/table-container/table-container.d.ts +0 -73
  356. package/table-builder/components/table-container/table-container.helpers/data-state.helpers.d.ts +0 -6
  357. package/table-builder/components/table-container/table-container.helpers/filter-state.helpers.d.ts +0 -17
  358. package/table-builder/components/table-container/table-container.helpers/groupBy.helpers.d.ts +0 -17
  359. package/table-builder/components/table-container/table-container.helpers/sort-state.helpers.d.ts +0 -8
  360. package/table-builder/components/table-container/tableProps.d.ts +0 -11
  361. package/table-builder/components/table-container/virtual-scroll-container.d.ts +0 -23
  362. package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +0 -16
  363. package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +0 -14
  364. package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +0 -14
  365. package/table-builder/directives/custom-cell-directive.d.ts +0 -31
  366. package/table-builder/directives/multi-sort.directive.d.ts +0 -11
  367. package/table-builder/directives/resize-column.directive.d.ts +0 -44
  368. package/table-builder/directives/table-wrapper.directive.d.ts +0 -8
  369. package/table-builder/directives/tb-filter.directive.d.ts +0 -120
  370. package/table-builder/enums/filterTypes.d.ts +0 -77
  371. package/table-builder/functions/boolean-filter-function.d.ts +0 -3
  372. package/table-builder/functions/date-filter-function.d.ts +0 -4
  373. package/table-builder/functions/download-data.d.ts +0 -1
  374. package/table-builder/functions/null-filter-function.d.ts +0 -2
  375. package/table-builder/functions/number-filter-function.d.ts +0 -4
  376. package/table-builder/functions/sort-data-function.d.ts +0 -6
  377. package/table-builder/functions/string-filter-function.d.ts +0 -7
  378. package/table-builder/interfaces/report-def.d.ts +0 -147
  379. package/table-builder/ngrx/tableBuilderStateStore.d.ts +0 -70
  380. package/table-builder/pipes/column-total.pipe.d.ts +0 -8
  381. package/table-builder/pipes/format-filter-type.pipe.d.ts +0 -8
  382. package/table-builder/pipes/format-filter-value.pipe.d.ts +0 -14
  383. package/table-builder/pipes/key-display.d.ts +0 -11
  384. package/table-builder/services/export-to-csv.service.d.ts +0 -22
  385. package/table-builder/services/link-creator.service.d.ts +0 -16
  386. package/table-builder/services/table-template-service.d.ts +0 -15
  387. package/table-builder/services/transform-creator.d.ts +0 -21
  388. package/table-builder/table-builder.module.d.ts +0 -21
  389. package/utilities/array-helpers.d.ts +0 -1
  390. package/utilities/directives/auto-focus.directive.d.ts +0 -10
  391. package/utilities/directives/clickEmitterDirective.d.ts +0 -7
  392. package/utilities/directives/clickSubject.d.ts +0 -9
  393. package/utilities/directives/conditional-classes.directive.d.ts +0 -14
  394. package/utilities/directives/dialog-service.d.ts +0 -10
  395. package/utilities/directives/dialog.d.ts +0 -47
  396. package/utilities/directives/mat-toggle-group-directive.d.ts +0 -21
  397. package/utilities/directives/prevent-enter.directive.d.ts +0 -6
  398. package/utilities/directives/stop-propagation.directive.d.ts +0 -7
  399. package/utilities/directives/styler.d.ts +0 -17
  400. package/utilities/directives/trim-whitespace.directive.d.ts +0 -9
  401. package/utilities/module.d.ts +0 -19
  402. package/utilities/pipes/function.pipe.d.ts +0 -7
  403. package/utilities/pipes/phone.pipe.d.ts +0 -7
  404. package/utilities/pipes/space-case.pipes.d.ts +0 -17
@@ -1,53 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { map } from 'rxjs/operators';
3
- import { orderedCodeVisibleMetaData } from '../../classes/table-store';
4
- import { DragDropModule } from '@angular/cdk/drag-drop';
5
- import { AsyncPipe } from '@angular/common';
6
- import { MatTooltipModule } from '@angular/material/tooltip';
7
- import { MatIconModule } from '@angular/material/icon';
8
- import { MatButtonModule } from '@angular/material/button';
9
- import { MatMenuModule } from '@angular/material/menu';
10
- import { SpaceCasePipe, StopPropagationDirective } from '../../../utilities';
11
- import { defaultShareReplay } from '../../../rxjs';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "../../classes/table-store";
14
- import * as i2 from "@angular/material/tooltip";
15
- import * as i3 from "@angular/material/icon";
16
- import * as i4 from "@angular/material/button";
17
- import * as i5 from "@angular/material/menu";
18
- import * as i6 from "@angular/cdk/drag-drop";
19
- export class GenColDisplayerComponent {
20
- constructor(tableState) {
21
- this.tableState = tableState;
22
- this.columns$ = this.tableState.state$.pipe(map(state => orderedCodeVisibleMetaData(state)
23
- .map(md => ({
24
- key: md.key,
25
- displayName: md.displayName,
26
- isVisible: !state.hiddenKeys.includes(md.key)
27
- }))), defaultShareReplay());
28
- }
29
- reset(displayCols) {
30
- displayCols.forEach(c => c.isVisible = true);
31
- this.emit(displayCols);
32
- }
33
- drop(event) {
34
- this.tableState.setUserDefinedOrder({ newOrder: event.currentIndex, oldOrder: event.previousIndex });
35
- }
36
- unset(displayCols) {
37
- displayCols.forEach(c => c.isVisible = false);
38
- this.emit(displayCols);
39
- }
40
- emit(displayCols) {
41
- this.tableState.setHiddenColumns(displayCols.map(c => ({ key: c.key, visible: c.isVisible })));
42
- }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: GenColDisplayerComponent, deps: [{ token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.2", type: GenColDisplayerComponent, isStandalone: true, selector: "tb-col-displayer", ngImport: i0, template: "@if(columns$ | async; as displayCols){\r\n <span matTooltip=\"Show/hide columns\">\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\">\r\n <mat-icon color=\"primary\">visibility_off</mat-icon>\r\n </button>\r\n </span>\r\n <mat-menu #menu=\"matMenu\" class=\"my-mat-menu\">\r\n\r\n <button mat-menu-item>\r\n <span matTooltip=\"Close\">\r\n <button class=\"filter-button\" mat-icon-button>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </span>\r\n </button>\r\n\r\n <button mat-menu-item stop-propagation>\r\n <span matTooltip=\"Show all columns\">\r\n <button mat-icon-button (click)=\"reset(displayCols)\">\r\n <mat-icon color=\"primary\">done_all</mat-icon>\r\n </button>\r\n </span>\r\n\r\n <span matTooltip=\"Hide all columns\">\r\n <button mat-icon-button (click)=\"unset(displayCols)\">\r\n <mat-icon color=\"primary\">cancel</mat-icon>\r\n </button>\r\n </span>\r\n </button>\r\n\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\" stop-propagation [cdkDropListLockAxis]=\"'y'\">\r\n @for (col of displayCols; track col.key) {\r\n <button [class.isHidden]=\"!col.isVisible\" stop-propagation mat-menu-item cdkDrag [cdkDragData]=\"col\">\r\n <div (click)=\"col.isVisible = !col.isVisible; emit(displayCols)\" style=\"display: flex; align-items: center;\">\r\n @if(col.isVisible){\r\n <button mat-icon-button matTooltip=\"Hide Column\" class=\"show-hide\">\r\n <mat-icon color=\"primary\">check_box</mat-icon>\r\n </button>\r\n } @else {\r\n <button mat-icon-button matTooltip=\"Show Column\" class=\"show-hide\">\r\n <mat-icon>indeterminate_check_box</mat-icon>\r\n </button>\r\n }\r\n \r\n <p class=\"label\">\r\n {{col.displayName || (col.key | spaceCase) }}\r\n </p>\r\n\r\n </div>\r\n </button>\r\n }\r\n\r\n </div>\r\n </mat-menu>\r\n}", styles: [".show-hide{margin-right:15px;height:24px;width:24px;padding:4px}.label{color:#6495ed;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;text-align:left;margin:0;font-size:17px;font-weight:700;display:inline-block;width:66%}.row{margin:0;padding:0}.isHidden{background-color:#d3d3d3;color:#a9a9a9;font-weight:700;font-size:17px;white-space:nowrap}.filter-button{margin-top:10px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.mdc-list-item__primary-text{display:inline-block;width:100%}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: StopPropagationDirective, selector: "[stop-propagation]" }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "pipe", type: SpaceCasePipe, name: "spaceCase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
- }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: GenColDisplayerComponent, decorators: [{
47
- type: Component,
48
- args: [{ selector: 'tb-col-displayer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
49
- AsyncPipe, MatTooltipModule, MatIconModule, MatButtonModule, MatMenuModule, StopPropagationDirective,
50
- DragDropModule, SpaceCasePipe
51
- ], template: "@if(columns$ | async; as displayCols){\r\n <span matTooltip=\"Show/hide columns\">\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\">\r\n <mat-icon color=\"primary\">visibility_off</mat-icon>\r\n </button>\r\n </span>\r\n <mat-menu #menu=\"matMenu\" class=\"my-mat-menu\">\r\n\r\n <button mat-menu-item>\r\n <span matTooltip=\"Close\">\r\n <button class=\"filter-button\" mat-icon-button>\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n </span>\r\n </button>\r\n\r\n <button mat-menu-item stop-propagation>\r\n <span matTooltip=\"Show all columns\">\r\n <button mat-icon-button (click)=\"reset(displayCols)\">\r\n <mat-icon color=\"primary\">done_all</mat-icon>\r\n </button>\r\n </span>\r\n\r\n <span matTooltip=\"Hide all columns\">\r\n <button mat-icon-button (click)=\"unset(displayCols)\">\r\n <mat-icon color=\"primary\">cancel</mat-icon>\r\n </button>\r\n </span>\r\n </button>\r\n\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\" stop-propagation [cdkDropListLockAxis]=\"'y'\">\r\n @for (col of displayCols; track col.key) {\r\n <button [class.isHidden]=\"!col.isVisible\" stop-propagation mat-menu-item cdkDrag [cdkDragData]=\"col\">\r\n <div (click)=\"col.isVisible = !col.isVisible; emit(displayCols)\" style=\"display: flex; align-items: center;\">\r\n @if(col.isVisible){\r\n <button mat-icon-button matTooltip=\"Hide Column\" class=\"show-hide\">\r\n <mat-icon color=\"primary\">check_box</mat-icon>\r\n </button>\r\n } @else {\r\n <button mat-icon-button matTooltip=\"Show Column\" class=\"show-hide\">\r\n <mat-icon>indeterminate_check_box</mat-icon>\r\n </button>\r\n }\r\n \r\n <p class=\"label\">\r\n {{col.displayName || (col.key | spaceCase) }}\r\n </p>\r\n\r\n </div>\r\n </button>\r\n }\r\n\r\n </div>\r\n </mat-menu>\r\n}", styles: [".show-hide{margin-right:15px;height:24px;width:24px;padding:4px}.label{color:#6495ed;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;text-align:left;margin:0;font-size:17px;font-weight:700;display:inline-block;width:66%}.row{margin:0;padding:0}.isHidden{background-color:#d3d3d3;color:#a9a9a9;font-weight:700;font-size:17px;white-space:nowrap}.filter-button{margin-top:10px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.mdc-list-item__primary-text{display:inline-block;width:100%}\n"] }]
52
- }], ctorParameters: () => [{ type: i1.TableStore }] });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuLWNvbC1kaXNwbGF5ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9nZW4tY29sLWRpc3BsYXllci9nZW4tY29sLWRpc3BsYXllci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dlbi1jb2wtZGlzcGxheWVyL2dlbi1jb2wtZGlzcGxheWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHbEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSwwQkFBMEIsRUFBYyxNQUFNLDJCQUEyQixDQUFDO0FBQ25GLE9BQU8sRUFBYyxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFhbkQsTUFBTSxPQUFPLHdCQUF3QjtJQUVuQyxZQUFxQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUN6QyxHQUFHLENBQUUsS0FBSyxDQUFDLEVBQUUsQ0FDWCwwQkFBMEIsQ0FBQyxLQUFLLENBQUM7YUFDOUIsR0FBRyxDQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNYLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRztZQUNYLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVztZQUMzQixTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDO1NBQzlDLENBQUMsQ0FBQyxDQUNOLEVBQ0Qsa0JBQWtCLEVBQUUsQ0FDckIsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBeUI7UUFDN0IsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQTRCO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUE7SUFDckcsQ0FBQztJQUNELEtBQUssQ0FBQyxXQUF5QjtRQUM3QixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLENBQUMsV0FBeUI7UUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQzs4R0E5QlUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsNEVDekJyQyxvaEVBc0RDLHF1QkRqQ0csU0FBUyw2Q0FBRSxnQkFBZ0IsNFRBQUUsYUFBYSxtTEFBRSxlQUFlLDJJQUFFLGFBQWEsOHZCQUFFLHdCQUF3Qiw4REFDcEcsY0FBYyx3K0JBQUUsYUFBYTs7MkZBR3BCLHdCQUF3QjtrQkFYcEMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsU0FBUyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLHdCQUF3Qjt3QkFDcEcsY0FBYyxFQUFFLGFBQWE7cUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpc3BsYXlDb2wgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Rpc3BsYXktY29sJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IG9yZGVyZWRDb2RlVmlzaWJsZU1ldGFEYXRhLCBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7Q2RrRHJhZ0Ryb3AsIERyYWdEcm9wTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgU3BhY2VDYXNlUGlwZSwgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgZGVmYXVsdFNoYXJlUmVwbGF5IH0gZnJvbSAnLi4vLi4vLi4vcnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RiLWNvbC1kaXNwbGF5ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW4tY29sLWRpc3BsYXllci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ2VuLWNvbC1kaXNwbGF5ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBBc3luY1BpcGUsIE1hdFRvb2x0aXBNb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0TWVudU1vZHVsZSwgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsIFNwYWNlQ2FzZVBpcGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW5Db2xEaXNwbGF5ZXJDb21wb25lbnQge1xyXG4gIGNvbHVtbnMkOiBPYnNlcnZhYmxlPCBEaXNwbGF5Q29sW10+O1xyXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIHRhYmxlU3RhdGU6IFRhYmxlU3RvcmUgKSB7XHJcbiAgICB0aGlzLmNvbHVtbnMkID0gdGhpcy50YWJsZVN0YXRlLnN0YXRlJC5waXBlKFxyXG4gICAgICBtYXAoIHN0YXRlID0+XHJcbiAgICAgICAgb3JkZXJlZENvZGVWaXNpYmxlTWV0YURhdGEoc3RhdGUpXHJcbiAgICAgICAgICAubWFwKCBtZCA9PiAoe1xyXG4gICAgICAgICAgICBrZXk6IG1kLmtleSxcclxuICAgICAgICAgICAgZGlzcGxheU5hbWU6IG1kLmRpc3BsYXlOYW1lLFxyXG4gICAgICAgICAgICBpc1Zpc2libGU6ICFzdGF0ZS5oaWRkZW5LZXlzLmluY2x1ZGVzKG1kLmtleSlcclxuICAgICAgICAgIH0pKVxyXG4gICAgICApLFxyXG4gICAgICBkZWZhdWx0U2hhcmVSZXBsYXkoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlc2V0KGRpc3BsYXlDb2xzOiBEaXNwbGF5Q29sW10pIHtcclxuICAgIGRpc3BsYXlDb2xzLmZvckVhY2goYyA9PiBjLmlzVmlzaWJsZSA9IHRydWUpO1xyXG4gICAgdGhpcy5lbWl0KGRpc3BsYXlDb2xzKTtcclxuICB9XHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICB0aGlzLnRhYmxlU3RhdGUuc2V0VXNlckRlZmluZWRPcmRlcih7IG5ld09yZGVyOiBldmVudC5jdXJyZW50SW5kZXgsIG9sZE9yZGVyOmV2ZW50LnByZXZpb3VzSW5kZXggfSlcclxuICB9XHJcbiAgdW5zZXQoZGlzcGxheUNvbHM6IERpc3BsYXlDb2xbXSkge1xyXG4gICAgZGlzcGxheUNvbHMuZm9yRWFjaChjID0+IGMuaXNWaXNpYmxlID0gZmFsc2UpO1xyXG4gICAgdGhpcy5lbWl0KGRpc3BsYXlDb2xzKTtcclxuICB9XHJcblxyXG4gIGVtaXQoZGlzcGxheUNvbHM6IERpc3BsYXlDb2xbXSkge1xyXG4gICAgdGhpcy50YWJsZVN0YXRlLnNldEhpZGRlbkNvbHVtbnMoZGlzcGxheUNvbHMubWFwKCBjID0+ICh7a2V5OiBjLmtleSwgdmlzaWJsZTogYy5pc1Zpc2libGV9KSkpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYoY29sdW1ucyQgfCBhc3luYzsgYXMgZGlzcGxheUNvbHMpe1xyXG4gIDxzcGFuIG1hdFRvb2x0aXA9XCJTaG93L2hpZGUgY29sdW1uc1wiPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIj5cclxuICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPnZpc2liaWxpdHlfb2ZmPC9tYXQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvc3Bhbj5cclxuICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJteS1tYXQtbWVudVwiPlxyXG5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbT5cclxuICAgICAgPHNwYW4gbWF0VG9vbHRpcD1cIkNsb3NlXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImZpbHRlci1idXR0b25cIiBtYXQtaWNvbi1idXR0b24+XHJcbiAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gc3RvcC1wcm9wYWdhdGlvbj5cclxuICAgICAgPHNwYW4gbWF0VG9vbHRpcD1cIlNob3cgYWxsIGNvbHVtbnNcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVzZXQoZGlzcGxheUNvbHMpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCI+ZG9uZV9hbGw8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L3NwYW4+XHJcblxyXG4gICAgICA8c3BhbiBtYXRUb29sdGlwPVwiSGlkZSBhbGwgY29sdW1uc1wiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ1bnNldChkaXNwbGF5Q29scylcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIj5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuXHJcbiAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCIgc3RvcC1wcm9wYWdhdGlvbiBbY2RrRHJvcExpc3RMb2NrQXhpc109XCIneSdcIj5cclxuICAgICAgQGZvciAoY29sIG9mIGRpc3BsYXlDb2xzOyB0cmFjayBjb2wua2V5KSB7XHJcbiAgICAgICAgPGJ1dHRvbiBbY2xhc3MuaXNIaWRkZW5dPVwiIWNvbC5pc1Zpc2libGVcIiBzdG9wLXByb3BhZ2F0aW9uIG1hdC1tZW51LWl0ZW0gY2RrRHJhZyBbY2RrRHJhZ0RhdGFdPVwiY29sXCI+XHJcbiAgICAgICAgPGRpdiAoY2xpY2spPVwiY29sLmlzVmlzaWJsZSA9ICFjb2wuaXNWaXNpYmxlOyBlbWl0KGRpc3BsYXlDb2xzKVwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICAgIEBpZihjb2wuaXNWaXNpYmxlKXtcclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0VG9vbHRpcD1cIkhpZGUgQ29sdW1uXCIgY2xhc3M9XCJzaG93LWhpZGVcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCI+Y2hlY2tfYm94PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0VG9vbHRpcD1cIlNob3cgQ29sdW1uXCIgY2xhc3M9XCJzaG93LWhpZGVcIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24+aW5kZXRlcm1pbmF0ZV9jaGVja19ib3g8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJsYWJlbFwiPlxyXG4gICAgICAgICAgICB7e2NvbC5kaXNwbGF5TmFtZSB8fCAoY29sLmtleSB8IHNwYWNlQ2FzZSkgfX1cclxuICAgICAgICAgIDwvcD5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICB9XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9tYXQtbWVudT5cclxufSJdfQ==
@@ -1,224 +0,0 @@
1
- import { Component, ViewChild, Input, ChangeDetectionStrategy, Output, Injector, EventEmitter, } from '@angular/core';
2
- import { MatTable, MatTableModule } from '@angular/material/table';
3
- import { combineLatest } from 'rxjs';
4
- import { SelectionModel } from '@angular/cdk/collections';
5
- import { map, distinctUntilChanged } from 'rxjs/operators';
6
- import { ColumnBuilderComponent } from '../column-builder/column-builder.component';
7
- import { FieldType } from '../../interfaces/report-def';
8
- import { previousAndCurrent } from '../../../rxjs/rxjs-operators';
9
- import { CdkDropList, DragDropModule } from '@angular/cdk/drag-drop';
10
- import { FunctionPipe } from '../../../utilities';
11
- import { MatCheckboxModule } from '@angular/material/checkbox';
12
- import { MatButtonModule } from '@angular/material/button';
13
- import { MatIconModule } from '@angular/material/icon';
14
- import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
15
- import { MatTooltipModule } from '@angular/material/tooltip';
16
- import { LetDirective } from '@ngrx/component';
17
- import { initIndexSymbol } from '../table-container/table-container.helpers/sort-state.helpers';
18
- import * as i0 from "@angular/core";
19
- import * as i1 from "../../classes/table-store";
20
- import * as i2 from "../../services/transform-creator";
21
- import * as i3 from "@angular/material/table";
22
- import * as i4 from "@angular/cdk/drag-drop";
23
- import * as i5 from "@angular/material/checkbox";
24
- import * as i6 from "@angular/material/button";
25
- import * as i7 from "@angular/material/icon";
26
- export class GenericTableComponent {
27
- drop(event) {
28
- this.state.setUserDefinedOrder({ newOrder: event.currentIndex, oldOrder: event.previousIndex });
29
- }
30
- set trackBy(trackBy) {
31
- if (trackBy) {
32
- this._trackBy = trackBy;
33
- this.trackByFunction = (index, item) => item[trackBy];
34
- }
35
- this.setUpSelections(trackBy);
36
- }
37
- get trackBy() { return this._trackBy; }
38
- constructor(state, viewContainer, transformCreator, injector) {
39
- this.state = state;
40
- this.viewContainer = viewContainer;
41
- this.transformCreator = transformCreator;
42
- this.keys = [];
43
- this.rowDefArr = [];
44
- this.columns = [];
45
- this.myColumns = {};
46
- this.offsetIndex = 0;
47
- this.defaultTrackBy = (index, item) => item[initIndexSymbol];
48
- this.trackByFunction = this.defaultTrackBy;
49
- this.initializeRowDefs = (defs) => {
50
- this.rowDefArr.forEach(r => this.table.removeRowDef(r));
51
- this.rowDefArr = defs;
52
- defs.forEach(r => {
53
- r.columns = this.columns.concat(Object.values(this.myColumns).filter(c => c.metaData.fieldType !== FieldType.Hidden).map(c => c.metaData.key));
54
- if (this.table) {
55
- this.table.addRowDef(r);
56
- }
57
- });
58
- };
59
- this.selection$ = new EventEmitter();
60
- this.masterToggleChecked$ = this.selection$.pipe(map(() => this.selection.hasValue() && this.isAllSelected()));
61
- this.masterToggleIndeterminate$ = this.selection$.pipe(map(() => this.selection.hasValue() && !this.isAllSelected()));
62
- this.tableWidth = this.state.getUserDefinedTableSize$.pipe(previousAndCurrent(0), map(([previousUserDefinedWidth, currentUserDefinedWidth]) => {
63
- if (currentUserDefinedWidth) {
64
- return ({ width: `${currentUserDefinedWidth}px` });
65
- }
66
- if (wasReset()) {
67
- return ({ width: 'initial' });
68
- }
69
- return ({});
70
- function wasReset() {
71
- return (previousUserDefinedWidth ?? 0) >= 0 && currentUserDefinedWidth == null;
72
- }
73
- }));
74
- this.getTransform = (key, val) => {
75
- if (val == undefined || val === 'null')
76
- return '';
77
- try {
78
- return this.transformCreator.createTransformer(this.myColumns[key].metaData, true)({ [key]: val });
79
- }
80
- catch (error) {
81
- return val;
82
- }
83
- };
84
- this.$rowHeight = this.state.selectSignal(s => {
85
- if (this.state.$isVirtual() && s.notPersistedTableSettings.useVirtualScroll?.enforceRowHeight) {
86
- return s.notPersistedTableSettings.useVirtualScroll.rowHeight + 'px';
87
- }
88
- if (typeof s.notPersistedTableSettings.rowHeight === 'number') {
89
- return s.notPersistedTableSettings.rowHeight + 'px';
90
- }
91
- return s.notPersistedTableSettings.rowHeight;
92
- });
93
- this.$headerHeight = this.state.selectSignal(s => {
94
- if (this.state.$isVirtual() && s.notPersistedTableSettings.useVirtualScroll?.enforceHeaderHeight) {
95
- return s.notPersistedTableSettings.useVirtualScroll.headerHeight + 'px';
96
- }
97
- if (typeof s.notPersistedTableSettings.headerHeight === 'number') {
98
- return s.notPersistedTableSettings.headerHeight + 'px';
99
- }
100
- return s.notPersistedTableSettings.headerHeight;
101
- });
102
- this.injector = Injector.create({
103
- providers: [
104
- { provide: MatTable, useFactory: () => this.table },
105
- { provide: CdkDropList, useFactory: () => this.dropList },
106
- ],
107
- parent: injector
108
- });
109
- this.offset$ = this.state.select(s => s.virtualScrollOffset);
110
- this.setUpSelections();
111
- }
112
- ngOnChanges(changes) {
113
- if (changes.rows && this.rows && this.myColumns.length) {
114
- this.initializeRowDefs([...this.rows]);
115
- }
116
- }
117
- ngOnInit() {
118
- if (this.state.props().selectionColumn) {
119
- this.columns.push('select');
120
- }
121
- if (this.state.props().indexColumn) {
122
- this.columns.push('index');
123
- }
124
- this.state.on(this.columnInfos, columns => {
125
- columns.forEach(ci => this.addMetaData(ci));
126
- });
127
- this.initializeRowDefs([...this.rows]);
128
- this.state.on(this.state.displayedColumns$, keys => {
129
- this.keys = [...this.columns, ...keys];
130
- this.rowDefArr?.forEach(row => row.columns = this.keys);
131
- });
132
- this.state.on(this.state.props().dataSource.viewableData$, (data) => {
133
- if (this.selection.selected.length) {
134
- const trackByFunction = this.trackBy ? (s) => data.every(d => d[this.trackBy] !== s[this.trackBy]) : s => !data.includes(s);
135
- const removed = this.selection.selected.filter(trackByFunction);
136
- this.selection.deselect(...removed);
137
- }
138
- });
139
- this.showHeader$ = this.state.tableSettings$.pipe(map(settings => !(settings.hideColumnHeader)));
140
- this.showFooterRow$ = combineLatest([
141
- this.displayData$.pipe(map(d => !!d.length), distinctUntilChanged()),
142
- this.state.metaDataArray$.pipe(map(metaData => metaData.some(md => !!md.additional?.footer)), distinctUntilChanged()),
143
- this.columnInfos.pipe(map(columnInfos => columnInfos.some(ci => !!ci.customCell?.columnDef?.footerCell)), distinctUntilChanged()),
144
- ]).pipe(map(([hasData, hasFooterDef, hasCustomFooter]) => {
145
- const hasSelectionColumn = this.state.props().selectionColumn;
146
- return hasCustomFooter || (hasData && (hasFooterDef || hasSelectionColumn)) ? 'regular-footer' : hasData ? 'no-footer' : 'small-footer';
147
- }));
148
- if (this.state.tableSettings().usePaginator || this.state.tableSettings().useVirtualScroll) {
149
- this.state.on(this.state.state$, (state) => {
150
- this.offsetIndex = state.virtualEnds.start;
151
- if (this.state.tableSettings().usePaginator) {
152
- this.offsetIndex += (state.pageSize * state.currentPage);
153
- }
154
- });
155
- }
156
- }
157
- isGroupHeader(_, row) {
158
- return row.isGroupHeader;
159
- }
160
- setExpanded(key, groupKey, isExpanded) {
161
- this.state.updateExpandedGroups({ key, isExpanded, groupKey });
162
- }
163
- addMetaData(column) {
164
- const columnBuilder = this.myColumns[column.metaData.key];
165
- if (columnBuilder) {
166
- columnBuilder.metaData = column.metaData;
167
- }
168
- else {
169
- const component = this.viewContainer.createComponent(ColumnBuilderComponent, {
170
- index: 0,
171
- injector: this.injector
172
- });
173
- component.instance.customCell = column.customCell;
174
- component.instance.metaData = column.metaData;
175
- component.instance.data$ = this.data$;
176
- this.myColumns[column.metaData.key] = component.instance;
177
- }
178
- }
179
- setUpSelections(trackBy) {
180
- this.selection = trackBy ? new SelectionModel(true, [], true, (a, b) => a[trackBy] === b[trackBy]) : new SelectionModel(true, []);
181
- this.state.on(this.selection.changed, c => this.selection$.emit(c));
182
- }
183
- isAllSelected() {
184
- const numSelected = this.selection.selected.length;
185
- const numRows = this.state.props().dataSource?.data.length;
186
- return numSelected === numRows;
187
- }
188
- /** Selects all rows if they are not all selected; otherwise clear selection. */
189
- masterToggle() {
190
- this.isAllSelected() ?
191
- this.selection.clear() :
192
- this.selection.select(...this.state.props().dataSource.data);
193
- }
194
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: GenericTableComponent, deps: [{ token: i1.TableStore }, { token: i0.ViewContainerRef }, { token: i2.TransformCreator }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
195
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.2", type: GenericTableComponent, isStandalone: true, selector: "tb-generic-table", inputs: { trackBy: "trackBy", displayData$: "displayData$", data$: "data$", rows: "rows", columnBuilders: "columnBuilders", columnInfos: "columnInfos" }, outputs: { selection$: "selection$" }, viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true, static: true }, { propertyName: "dropList", first: true, predicate: CdkDropList, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-table\r\n cdkDropList\r\n cdkDropListLockAxis='x'\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n class=\"table-drag-list\"\r\n [class]=\"(showFooterRow$ | async)\"\r\n #table\r\n [dataSource]=\"state.props().dataSource!\"\r\n [trackBy]=\"trackByFunction\"\r\n [style]=\"tableWidth | async\"\r\n>\r\n\r\n <!-- select column -->\r\n <ng-container matColumnDef=\"select\">\r\n\r\n <mat-header-cell *matHeaderCellDef class=\"f-mat-header-cell\">\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"!!(masterToggleChecked$ | async)\"\r\n [indeterminate]=\"masterToggleIndeterminate$ | async\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n\r\n <mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"/>\r\n </mat-cell>\r\n\r\n <mat-footer-cell *matFooterCellDef>\r\n {{ selection.selected.length }}\r\n </mat-footer-cell>\r\n </ng-container>\r\n\r\n <!-- index column -->\r\n <ng-container matColumnDef=\"index\">\r\n <mat-header-cell *matHeaderCellDef class=\"f-mat-header-cell\" >#</mat-header-cell>\r\n <mat-cell *matCellDef=\"let i = index;\">\r\n {{ 1 + i + offsetIndex}}\r\n </mat-cell>\r\n <mat-footer-cell *matFooterCellDef></mat-footer-cell>\r\n </ng-container>\r\n\r\n <!-- Grouping -->\r\n <ng-container matColumnDef=\"groupHeader\">\r\n <mat-cell *matCellDef=\"let row\">\r\n <div [style.paddingLeft]=\"row.padding + 'px !important'\" *ngrxLet=\"(state.getIsExpanded | func : row.key : row.groupName ) as expanded\">\r\n <button mat-icon-button (click)=\"setExpanded(row.key, row.groupName, !expanded);\">\r\n @if(!expanded){\r\n <mat-icon>chevron_right</mat-icon>\r\n } @else {\r\n <mat-icon>expand_more</mat-icon>\r\n }\r\n </button>\r\n {{getTransform | func : row.key : row.groupHeaderDisplay}} ({{row.length}})\r\n </div>\r\n <div style=\"flex-grow: 1\">\r\n <ng-container *ngTemplateOutlet=\"state.props().groupHeaderTemplate!; context: { element: row }\"></ng-container>\r\n </div>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n @if(showHeader$ | async){\r\n <mat-header-row [style.height]=\"$headerHeight()\" [style.min-height]=\"$headerHeight()\" *matHeaderRowDef=\"keys; sticky: state.props().isSticky\" [style.top.px]=\"((offset$ | async)! * -1)\" />\r\n }\r\n <mat-row [style.height]=\"$rowHeight()\" [style.min-height]=\"$rowHeight()\" *matRowDef=\"let row; columns: keys; let i = index\" />\r\n <mat-row [style.height]=\"$rowHeight()\" [style.min-height]=\"$rowHeight()\" *matRowDef=\"let row; columns: ['groupHeader']; when: isGroupHeader\" style=\"background-color: white;\" />\r\n <mat-footer-row [style.height]=\"$rowHeight()\" [style.min-height]=\"$rowHeight()\" *matFooterRowDef=\"(showFooterRow$ | async) === 'regular-footer' ? keys : []; sticky: state.props().stickyFooter \" [style.bottom.px]=\"state.props().stickyFooter ? (offset$ | async) : undefined\" />\r\n\r\n</mat-table>\r\n", styles: [".mat-mdc-row:nth-child(odd){background-color:#cdeefe}.page-amounts{color:#0000008a;font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;margin-right:.2rem}:host::ng-deep .mat-mdc-paginator-container{min-height:initial!important}.group-header{display:flex}:host::ng-deep .table-drag-list.cdk-drop-list-dragging .drag-header:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}:host::ng-deep .mdc-data-table__cell,:host::ng-deep .mdc-data-table__header-cell{padding:0 0 0 .2rem;line-height:normal}::ng-deep .op-date-time-input{line-height:3rem;font-size:.9rem;font-family:Roboto,Helvetica Neue,sans-serif;padding-left:.2rem;width:12rem}.small-footer mat-footer-row{min-height:1rem;height:1rem}.no-footer mat-footer-row{display:none}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i3.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i3.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i3.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i3.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i3.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i3.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i3.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i3.MatFooterRowDef, selector: "[matFooterRowDef]", inputs: ["matFooterRowDef", "matFooterRowDefSticky"] }, { kind: "directive", type: i3.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i3.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i3.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "component", type: i3.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i3.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i3.MatFooterRow, selector: "mat-footer-row, tr[mat-footer-row]", exportAs: ["matFooterRow"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "pipe", type: FunctionPipe, name: "func" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
196
- }
197
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: GenericTableComponent, decorators: [{
198
- type: Component,
199
- args: [{ selector: 'tb-generic-table', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
200
- MatTableModule, DragDropModule, MatCheckboxModule, MatButtonModule, MatIconModule, NgTemplateOutlet,
201
- MatTooltipModule, AsyncPipe, LetDirective, FunctionPipe,
202
- ], template: "<mat-table\r\n cdkDropList\r\n cdkDropListLockAxis='x'\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"drop($event)\"\r\n class=\"table-drag-list\"\r\n [class]=\"(showFooterRow$ | async)\"\r\n #table\r\n [dataSource]=\"state.props().dataSource!\"\r\n [trackBy]=\"trackByFunction\"\r\n [style]=\"tableWidth | async\"\r\n>\r\n\r\n <!-- select column -->\r\n <ng-container matColumnDef=\"select\">\r\n\r\n <mat-header-cell *matHeaderCellDef class=\"f-mat-header-cell\">\r\n <mat-checkbox (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"!!(masterToggleChecked$ | async)\"\r\n [indeterminate]=\"masterToggleIndeterminate$ | async\">\r\n </mat-checkbox>\r\n </mat-header-cell>\r\n\r\n <mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"/>\r\n </mat-cell>\r\n\r\n <mat-footer-cell *matFooterCellDef>\r\n {{ selection.selected.length }}\r\n </mat-footer-cell>\r\n </ng-container>\r\n\r\n <!-- index column -->\r\n <ng-container matColumnDef=\"index\">\r\n <mat-header-cell *matHeaderCellDef class=\"f-mat-header-cell\" >#</mat-header-cell>\r\n <mat-cell *matCellDef=\"let i = index;\">\r\n {{ 1 + i + offsetIndex}}\r\n </mat-cell>\r\n <mat-footer-cell *matFooterCellDef></mat-footer-cell>\r\n </ng-container>\r\n\r\n <!-- Grouping -->\r\n <ng-container matColumnDef=\"groupHeader\">\r\n <mat-cell *matCellDef=\"let row\">\r\n <div [style.paddingLeft]=\"row.padding + 'px !important'\" *ngrxLet=\"(state.getIsExpanded | func : row.key : row.groupName ) as expanded\">\r\n <button mat-icon-button (click)=\"setExpanded(row.key, row.groupName, !expanded);\">\r\n @if(!expanded){\r\n <mat-icon>chevron_right</mat-icon>\r\n } @else {\r\n <mat-icon>expand_more</mat-icon>\r\n }\r\n </button>\r\n {{getTransform | func : row.key : row.groupHeaderDisplay}} ({{row.length}})\r\n </div>\r\n <div style=\"flex-grow: 1\">\r\n <ng-container *ngTemplateOutlet=\"state.props().groupHeaderTemplate!; context: { element: row }\"></ng-container>\r\n </div>\r\n </mat-cell>\r\n </ng-container>\r\n\r\n @if(showHeader$ | async){\r\n <mat-header-row [style.height]=\"$headerHeight()\" [style.min-height]=\"$headerHeight()\" *matHeaderRowDef=\"keys; sticky: state.props().isSticky\" [style.top.px]=\"((offset$ | async)! * -1)\" />\r\n }\r\n <mat-row [style.height]=\"$rowHeight()\" [style.min-height]=\"$rowHeight()\" *matRowDef=\"let row; columns: keys; let i = index\" />\r\n <mat-row [style.height]=\"$rowHeight()\" [style.min-height]=\"$rowHeight()\" *matRowDef=\"let row; columns: ['groupHeader']; when: isGroupHeader\" style=\"background-color: white;\" />\r\n <mat-footer-row [style.height]=\"$rowHeight()\" [style.min-height]=\"$rowHeight()\" *matFooterRowDef=\"(showFooterRow$ | async) === 'regular-footer' ? keys : []; sticky: state.props().stickyFooter \" [style.bottom.px]=\"state.props().stickyFooter ? (offset$ | async) : undefined\" />\r\n\r\n</mat-table>\r\n", styles: [".mat-mdc-row:nth-child(odd){background-color:#cdeefe}.page-amounts{color:#0000008a;font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;margin-right:.2rem}:host::ng-deep .mat-mdc-paginator-container{min-height:initial!important}.group-header{display:flex}:host::ng-deep .table-drag-list.cdk-drop-list-dragging .drag-header:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}:host::ng-deep .mdc-data-table__cell,:host::ng-deep .mdc-data-table__header-cell{padding:0 0 0 .2rem;line-height:normal}::ng-deep .op-date-time-input{line-height:3rem;font-size:.9rem;font-family:Roboto,Helvetica Neue,sans-serif;padding-left:.2rem;width:12rem}.small-footer mat-footer-row{min-height:1rem;height:1rem}.no-footer mat-footer-row{display:none}\n"] }]
203
- }], ctorParameters: () => [{ type: i1.TableStore }, { type: i0.ViewContainerRef }, { type: i2.TransformCreator }, { type: i0.Injector }], propDecorators: { trackBy: [{
204
- type: Input
205
- }], displayData$: [{
206
- type: Input
207
- }], data$: [{
208
- type: Input
209
- }], rows: [{
210
- type: Input
211
- }], columnBuilders: [{
212
- type: Input
213
- }], columnInfos: [{
214
- type: Input
215
- }], table: [{
216
- type: ViewChild,
217
- args: [MatTable, { static: true }]
218
- }], dropList: [{
219
- type: ViewChild,
220
- args: [CdkDropList, { static: true }]
221
- }], selection$: [{
222
- type: Output
223
- }] } });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dlbmVyaWMtdGFibGUvZ2VuZXJpYy10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dlbmVyaWMtdGFibGUvZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxLQUFLLEVBQ0wsdUJBQXVCLEVBQ3ZCLE1BQU0sRUFLTixRQUFRLEVBQ1IsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBYSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUUsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQW1CLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbEUsT0FBTyxFQUFlLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRC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cUI7a0JBWGpDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGNBQWMsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0I7d0JBQ25HLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWTtxQkFDeEQ7b0tBUVksT0FBTztzQkFBbkIsS0FBSztnQkFRRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVpQyxLQUFLO3NCQUEzQyxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0ssUUFBUTtzQkFBakQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQThIOUIsVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdDaGlsZCxcclxuICBJbnB1dCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgSW5qZWN0b3IsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRSb3dEZWYsIE1hdFRhYmxlLCBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25DaGFuZ2UsIFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xyXG5pbXBvcnQgeyBtYXAsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb2x1bW5CdWlsZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29sdW1uLWJ1aWxkZXIvY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGljdGlvbmFyeSc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IHByZXZpb3VzQW5kQ3VycmVudCB9IGZyb20gJy4uLy4uLy4uL3J4anMvcnhqcy1vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb2x1bW5JbmZvIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Db2x1bW5JbmZvJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIENka0Ryb3BMaXN0LCBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBGdW5jdGlvblBpcGUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IExldERpcmVjdGl2ZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYW5zZm9ybUNyZWF0b3IgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2Zvcm0tY3JlYXRvcic7XHJcbmltcG9ydCB7IGluaXRJbmRleFN5bWJvbCB9IGZyb20gJy4uL3RhYmxlLWNvbnRhaW5lci90YWJsZS1jb250YWluZXIuaGVscGVycy9zb3J0LXN0YXRlLmhlbHBlcnMnO1xyXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtYnVpbGRlci1nZW5lcmFsLXNldHRpbmdzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGItZ2VuZXJpYy10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2dlbmVyaWMtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdFRhYmxlTW9kdWxlLCBEcmFnRHJvcE1vZHVsZSwgTWF0Q2hlY2tib3hNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsIEFzeW5jUGlwZSwgTGV0RGlyZWN0aXZlLCBGdW5jdGlvblBpcGUsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgdGhpcy5zdGF0ZS5zZXRVc2VyRGVmaW5lZE9yZGVyKHsgbmV3T3JkZXI6ZXZlbnQuY3VycmVudEluZGV4LCBvbGRPcmRlcjpldmVudC5wcmV2aW91c0luZGV4IH0pXHJcbiAgfVxyXG4gIF90cmFja0J5Pzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNldCB0cmFja0J5KHRyYWNrQnk6IHN0cmluZyl7XHJcbiAgICBpZih0cmFja0J5KXtcclxuICAgICAgdGhpcy5fdHJhY2tCeSA9IHRyYWNrQnk7XHJcbiAgICAgIHRoaXMudHJhY2tCeUZ1bmN0aW9uID0gKGluZGV4Om51bWJlciwgaXRlbTogYW55KSA9PiBpdGVtW3RyYWNrQnldO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRVcFNlbGVjdGlvbnModHJhY2tCeSk7XHJcbiAgfVxyXG4gIGdldCB0cmFja0J5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLl90cmFja0J5IH1cclxuICBASW5wdXQoKSBkaXNwbGF5RGF0YSQhOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBASW5wdXQoKSBkYXRhJCE6IE9ic2VydmFibGU8YW55W10+O1xyXG4gIEBJbnB1dCgpIHJvd3MhOiBRdWVyeUxpc3Q8TWF0Um93RGVmPGFueT4+O1xyXG4gIEBJbnB1dCgpIGNvbHVtbkJ1aWxkZXJzITogQ29sdW1uQnVpbGRlckNvbXBvbmVudFtdO1xyXG4gIEBJbnB1dCgpIGNvbHVtbkluZm9zITogT2JzZXJ2YWJsZTxDb2x1bW5JbmZvW10+O1xyXG5cclxuICBAVmlld0NoaWxkKE1hdFRhYmxlLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJsZSE6IE1hdFRhYmxlPGFueT47XHJcbiAgQFZpZXdDaGlsZChDZGtEcm9wTGlzdCwgeyBzdGF0aWM6IHRydWUgfSkgZHJvcExpc3QhOiBDZGtEcm9wTGlzdDtcclxuXHJcbiAgY3VycmVudENvbHVtbnMhOiBzdHJpbmdbXTtcclxuICBrZXlzOiBzdHJpbmcgW10gPSBbXTtcclxuICBpbmplY3RvcjogSW5qZWN0b3I7XHJcbiAgcm93RGVmQXJyIDpNYXRSb3dEZWY8YW55PltdID0gW107XHJcbiAgY29sdW1uczpzdHJpbmcgW10gPSBbXTtcclxuICBteUNvbHVtbnM6IERpY3Rpb25hcnk8Q29sdW1uQnVpbGRlckNvbXBvbmVudD4gPSB7fTtcclxuICBzaG93SGVhZGVyJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgb2Zmc2V0JCEgOiBPYnNlcnZhYmxlPG51bWJlcj47XHJcbiAgb2Zmc2V0SW5kZXggPSAwO1xyXG4gIGRhdGFWaWV3ITogT2JzZXJ2YWJsZTxhbnlbXT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHN0YXRlOiBUYWJsZVN0b3JlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2Zvcm1DcmVhdG9yOiBUcmFuc2Zvcm1DcmVhdG9yLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgKSB7XHJcbiAgICB0aGlzLmluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge3Byb3ZpZGU6IE1hdFRhYmxlLCB1c2VGYWN0b3J5OiAoKT0+IHRoaXMudGFibGUgfSxcclxuICAgICAgICB7cHJvdmlkZTogQ2RrRHJvcExpc3QsIHVzZUZhY3Rvcnk6ICgpPT4gdGhpcy5kcm9wTGlzdCB9LFxyXG4gICAgICBdLFxyXG4gICAgICBwYXJlbnQ6IGluamVjdG9yXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLm9mZnNldCQgPSB0aGlzLnN0YXRlLnNlbGVjdCggcyA9PiBzLnZpcnR1YWxTY3JvbGxPZmZzZXQgKTtcclxuXHJcbiAgICB0aGlzLnNldFVwU2VsZWN0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgZGVmYXVsdFRyYWNrQnkgPSAoaW5kZXg6bnVtYmVyLCBpdGVtOiBhbnkpID0+IGl0ZW1baW5pdEluZGV4U3ltYm9sXTtcclxuICB0cmFja0J5RnVuY3Rpb24gPSB0aGlzLmRlZmF1bHRUcmFja0J5O1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLnJvd3MgJiYgdGhpcy5yb3dzICYmIHRoaXMubXlDb2x1bW5zLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVSb3dEZWZzKFsuLi50aGlzLnJvd3NdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuc3RhdGUucHJvcHMoKS5zZWxlY3Rpb25Db2x1bW4pIHtcclxuICAgICAgdGhpcy5jb2x1bW5zLnB1c2goJ3NlbGVjdCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnN0YXRlLnByb3BzKCkuaW5kZXhDb2x1bW4pIHtcclxuICAgICB0aGlzLmNvbHVtbnMucHVzaCgnaW5kZXgnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0YXRlLm9uKHRoaXMuY29sdW1uSW5mb3MsIGNvbHVtbnMgPT4ge1xyXG4gICAgICBjb2x1bW5zLmZvckVhY2goY2kgPT4gdGhpcy5hZGRNZXRhRGF0YShjaSkpXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmluaXRpYWxpemVSb3dEZWZzKFsuLi50aGlzLnJvd3NdKTtcclxuXHJcbiAgICB0aGlzLnN0YXRlLm9uKHRoaXMuc3RhdGUuZGlzcGxheWVkQ29sdW1ucyQsIGtleXMgPT4ge1xyXG4gICAgICB0aGlzLmtleXMgPSBbLi4udGhpcy5jb2x1bW5zLCAuLi5rZXlzXTtcclxuICAgICAgdGhpcy5yb3dEZWZBcnI/LmZvckVhY2gocm93ID0+IHJvdy5jb2x1bW5zID0gdGhpcy5rZXlzKVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zdGF0ZS5vbih0aGlzLnN0YXRlLnByb3BzKCkuZGF0YVNvdXJjZSEudmlld2FibGVEYXRhJCwgKGRhdGEpID0+IHtcclxuICAgICAgaWYodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoKXtcclxuICAgICAgICBjb25zdCB0cmFja0J5RnVuY3Rpb24gPSB0aGlzLnRyYWNrQnkgPyAocykgPT4gZGF0YS5ldmVyeShkID0+ICBkW3RoaXMudHJhY2tCeSFdICE9PSBzW3RoaXMudHJhY2tCeSFdKSA6IHMgPT4gIWRhdGEuaW5jbHVkZXMocyk7XHJcbiAgICAgICAgY29uc3QgcmVtb3ZlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmZpbHRlcih0cmFja0J5RnVuY3Rpb24pO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmRlc2VsZWN0KC4uLnJlbW92ZWQpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG5cclxuICAgIHRoaXMuc2hvd0hlYWRlciQgPSB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MkLnBpcGUobWFwKHNldHRpbmdzID0+ICEoc2V0dGluZ3MuaGlkZUNvbHVtbkhlYWRlcikpKTtcclxuXHJcbiAgICB0aGlzLnNob3dGb290ZXJSb3ckID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMuZGlzcGxheURhdGEkLnBpcGUobWFwKGQgPT4gISFkLmxlbmd0aCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxyXG4gICAgICB0aGlzLnN0YXRlLm1ldGFEYXRhQXJyYXkkLnBpcGUobWFwKG1ldGFEYXRhID0+IG1ldGFEYXRhLnNvbWUobWQgPT4gISFtZC5hZGRpdGlvbmFsPy5mb290ZXIpKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXHJcbiAgICAgIHRoaXMuY29sdW1uSW5mb3MucGlwZShtYXAoY29sdW1uSW5mb3MgPT4gY29sdW1uSW5mb3Muc29tZShjaSA9PiAhIWNpLmN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uZm9vdGVyQ2VsbCkpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcclxuICAgIF0pLnBpcGUobWFwKChbaGFzRGF0YSwgaGFzRm9vdGVyRGVmLCBoYXNDdXN0b21Gb290ZXJdKSA9PiB7XHJcbiAgICAgIGNvbnN0IGhhc1NlbGVjdGlvbkNvbHVtbiA9IHRoaXMuc3RhdGUucHJvcHMoKS5zZWxlY3Rpb25Db2x1bW47XHJcbiAgICAgIHJldHVybiBoYXNDdXN0b21Gb290ZXIgfHwgKGhhc0RhdGEgJiYgKGhhc0Zvb3RlckRlZiB8fCBoYXNTZWxlY3Rpb25Db2x1bW4pKSA/ICdyZWd1bGFyLWZvb3RlcicgOiBoYXNEYXRhID8gJ25vLWZvb3RlcicgOiAnc21hbGwtZm9vdGVyJztcclxuICAgIH0pKTtcclxuXHJcbiAgICBpZih0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MoKS51c2VQYWdpbmF0b3IgfHwgdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzKCkudXNlVmlydHVhbFNjcm9sbCkge1xyXG4gICAgICB0aGlzLnN0YXRlLm9uKHRoaXMuc3RhdGUuc3RhdGUkLCAoc3RhdGUpID0+IHtcclxuICAgICAgICB0aGlzLm9mZnNldEluZGV4ID0gc3RhdGUudmlydHVhbEVuZHMuc3RhcnQ7XHJcbiAgICAgICAgaWYodGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzKCkudXNlUGFnaW5hdG9yKSB7XHJcbiAgICAgICAgICB0aGlzLm9mZnNldEluZGV4ICs9IChzdGF0ZS5wYWdlU2l6ZSAqIHN0YXRlLmN1cnJlbnRQYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGlzR3JvdXBIZWFkZXIoXzogbnVtYmVyLCByb3c6IHsgaXNHcm91cEhlYWRlcjogYm9vbGVhbiB9KSB7XHJcbiAgICByZXR1cm4gcm93LmlzR3JvdXBIZWFkZXI7XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmRlZChrZXk6IHN0cmluZywgZ3JvdXBLZXk6IHN0cmluZywgaXNFeHBhbmRlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0ZS51cGRhdGVFeHBhbmRlZEdyb3Vwcyh7IGtleSAsIGlzRXhwYW5kZWQsIGdyb3VwS2V5IH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkTWV0YURhdGEoY29sdW1uOiBDb2x1bW5JbmZvKSB7XHJcbiAgICBjb25zdCBjb2x1bW5CdWlsZGVyID0gdGhpcy5teUNvbHVtbnNbY29sdW1uLm1ldGFEYXRhLmtleV07XHJcbiAgICBpZihjb2x1bW5CdWlsZGVyKSB7XHJcbiAgICAgIGNvbHVtbkJ1aWxkZXIubWV0YURhdGEgPSBjb2x1bW4ubWV0YURhdGE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KENvbHVtbkJ1aWxkZXJDb21wb25lbnQsIHtcclxuICAgICAgICBpbmRleDogMCxcclxuICAgICAgICBpbmplY3RvcjogdGhpcy5pbmplY3RvclxyXG4gICAgICB9KTtcclxuICAgICAgY29tcG9uZW50Lmluc3RhbmNlLmN1c3RvbUNlbGwgPSBjb2x1bW4uY3VzdG9tQ2VsbDtcclxuICAgICAgY29tcG9uZW50Lmluc3RhbmNlLm1ldGFEYXRhID0gY29sdW1uLm1ldGFEYXRhO1xyXG4gICAgICBjb21wb25lbnQuaW5zdGFuY2UuZGF0YSQgPSB0aGlzLmRhdGEkO1xyXG4gICAgICB0aGlzLm15Q29sdW1uc1tjb2x1bW4ubWV0YURhdGEua2V5XSA9IGNvbXBvbmVudC5pbnN0YW5jZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVSb3dEZWZzID0gKGRlZnM6TWF0Um93RGVmPGFueT5bXSk9PntcclxuICAgIHRoaXMucm93RGVmQXJyLmZvckVhY2gocj0+dGhpcy50YWJsZS5yZW1vdmVSb3dEZWYocikpO1xyXG4gICAgdGhpcy5yb3dEZWZBcnIgPSBkZWZzO1xyXG4gICAgZGVmcy5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICByLmNvbHVtbnMgPSB0aGlzLmNvbHVtbnMuY29uY2F0KE9iamVjdC52YWx1ZXModGhpcy5teUNvbHVtbnMpLmZpbHRlcihjID0+IGMubWV0YURhdGEuZmllbGRUeXBlICE9PSBGaWVsZFR5cGUuSGlkZGVuKS5tYXAoYyA9PiBjLm1ldGFEYXRhLmtleSkpO1xyXG4gICAgICBpZiAodGhpcy50YWJsZSkge1xyXG4gICAgICAgIHRoaXMudGFibGUuYWRkUm93RGVmKHIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdGlvbiEgOiBTZWxlY3Rpb25Nb2RlbDxhbnk+O1xyXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb24kID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25DaGFuZ2U8YW55Pj4oKTtcclxuICBtYXN0ZXJUb2dnbGVDaGVja2VkJCA9IHRoaXMuc2VsZWN0aW9uJC5waXBlKG1hcCgoKT0+dGhpcy5zZWxlY3Rpb24uaGFzVmFsdWUoKSAmJiB0aGlzLmlzQWxsU2VsZWN0ZWQoKSkpO1xyXG4gIG1hc3RlclRvZ2dsZUluZGV0ZXJtaW5hdGUkID0gdGhpcy5zZWxlY3Rpb24kLnBpcGUobWFwKCgpPT50aGlzLnNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmICF0aGlzLmlzQWxsU2VsZWN0ZWQoKSkpO1xyXG4gIHNldFVwU2VsZWN0aW9ucyh0cmFja0J5Pzogc3RyaW5nKXtcclxuICAgIHRoaXMuc2VsZWN0aW9uID0gdHJhY2tCeSA/IG5ldyBTZWxlY3Rpb25Nb2RlbDxhbnk+KHRydWUsIFtdLCB0cnVlLCAoYSwgYikgPT4gYVt0cmFja0J5XSA9PT0gYlt0cmFja0J5XSkgOiBuZXcgU2VsZWN0aW9uTW9kZWw8YW55Pih0cnVlLCBbXSk7XHJcbiAgICB0aGlzLnN0YXRlLm9uKHRoaXMuc2VsZWN0aW9uLmNoYW5nZWQsIGMgPT4gdGhpcy5zZWxlY3Rpb24kLmVtaXQoYykpO1xyXG4gIH1cclxuXHJcbiAgaXNBbGxTZWxlY3RlZCgpIHtcclxuICAgIGNvbnN0IG51bVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoO1xyXG4gICAgY29uc3QgbnVtUm93cyA9IHRoaXMuc3RhdGUucHJvcHMoKS5kYXRhU291cmNlPy5kYXRhLmxlbmd0aDtcclxuICAgIHJldHVybiBudW1TZWxlY3RlZCA9PT0gbnVtUm93cztcclxuICB9XHJcblxyXG4gIC8qKiBTZWxlY3RzIGFsbCByb3dzIGlmIHRoZXkgYXJlIG5vdCBhbGwgc2VsZWN0ZWQ7IG90aGVyd2lzZSBjbGVhciBzZWxlY3Rpb24uICovXHJcbiAgbWFzdGVyVG9nZ2xlKCkge1xyXG4gICAgdGhpcy5pc0FsbFNlbGVjdGVkKCkgP1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpIDpcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KC4uLnRoaXMuc3RhdGUucHJvcHMoKS5kYXRhU291cmNlIS5kYXRhKTtcclxuICB9XHJcblxyXG4gIHRhYmxlV2lkdGggPSB0aGlzLnN0YXRlLmdldFVzZXJEZWZpbmVkVGFibGVTaXplJC5waXBlKFxyXG4gICAgcHJldmlvdXNBbmRDdXJyZW50PG51bWJlciB8IHVuZGVmaW5lZD4oMCksXHJcbiAgICBtYXAoKFtwcmV2aW91c1VzZXJEZWZpbmVkV2lkdGgsIGN1cnJlbnRVc2VyRGVmaW5lZFdpZHRoXSkgPT4ge1xyXG4gICAgICBpZiggY3VycmVudFVzZXJEZWZpbmVkV2lkdGgpe1xyXG4gICAgICAgIHJldHVybiAoe3dpZHRoOmAke2N1cnJlbnRVc2VyRGVmaW5lZFdpZHRofXB4YH0pO1xyXG4gICAgICB9IGlmKCB3YXNSZXNldCgpICl7XHJcbiAgICAgICAgcmV0dXJuICh7d2lkdGg6J2luaXRpYWwnfSk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuICh7fSk7XHJcblxyXG4gICAgICBmdW5jdGlvbiB3YXNSZXNldCgpe1xyXG4gICAgICAgIHJldHVybiAocHJldmlvdXNVc2VyRGVmaW5lZFdpZHRoID8/IDApID49MCAmJiBjdXJyZW50VXNlckRlZmluZWRXaWR0aCA9PSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICk7XHJcblxyXG4gIHNob3dGb290ZXJSb3ckITogT2JzZXJ2YWJsZTwncmVndWxhci1mb290ZXInIHwgJ25vLWZvb3RlcicgfCAnc21hbGwtZm9vdGVyJz47XHJcbiAgZ2V0VHJhbnNmb3JtID0gKGtleTogc3RyaW5nLCB2YWw6IHN0cmluZykgPT4ge1xyXG4gICAgaWYodmFsID09IHVuZGVmaW5lZCB8fCB2YWwgPT09ICdudWxsJykgcmV0dXJuICcnO1xyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtQ3JlYXRvci5jcmVhdGVUcmFuc2Zvcm1lcih0aGlzLm15Q29sdW1uc1trZXldLm1ldGFEYXRhLCB0cnVlKSh7IFtrZXldOiB2YWx9KTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHJldHVybiB2YWw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAkcm93SGVpZ2h0ID0gdGhpcy5zdGF0ZS5zZWxlY3RTaWduYWwocyA9PiB7XHJcbiAgICAgIGlmKHRoaXMuc3RhdGUuJGlzVmlydHVhbCgpICYmIChzLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3MudXNlVmlydHVhbFNjcm9sbCBhcyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucyk/LmVuZm9yY2VSb3dIZWlnaHQpe1xyXG4gICAgICAgIHJldHVybiAocy5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzLnVzZVZpcnR1YWxTY3JvbGwgYXMgVmlydHVhbFNjcm9sbE9wdGlvbnMpIS5yb3dIZWlnaHQgKyAncHgnIDtcclxuICAgICAgfVxyXG4gICAgICBpZih0eXBlb2Ygcy5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzLnJvd0hlaWdodCA9PT0gJ251bWJlcicpe1xyXG4gICAgICAgIHJldHVybiBzLm5vdFBlcnNpc3RlZFRhYmxlU2V0dGluZ3Mucm93SGVpZ2h0ICsgJ3B4JztcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcy5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzLnJvd0hlaWdodDtcclxuICAgICAgXHJcbiAgICB9KTtcclxuXHJcbiAgJGhlYWRlckhlaWdodCA9IHRoaXMuc3RhdGUuc2VsZWN0U2lnbmFsKHMgPT4ge1xyXG4gICAgaWYodGhpcy5zdGF0ZS4kaXNWaXJ0dWFsKCkgJiYgKHMubm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncy51c2VWaXJ0dWFsU2Nyb2xsIGFzIFZpcnR1YWxTY3JvbGxPcHRpb25zKT8uZW5mb3JjZUhlYWRlckhlaWdodCl7XHJcbiAgICAgIHJldHVybiAocy5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzLnVzZVZpcnR1YWxTY3JvbGwgYXMgVmlydHVhbFNjcm9sbE9wdGlvbnMpIS5oZWFkZXJIZWlnaHQgKyAncHgnO1xyXG4gICAgfVxyXG4gICAgaWYodHlwZW9mIHMubm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncy5oZWFkZXJIZWlnaHQgPT09ICdudW1iZXInKXtcclxuICAgICAgcmV0dXJuIHMubm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncy5oZWFkZXJIZWlnaHQgKyAncHgnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHMubm90UGVyc2lzdGVkVGFibGVTZXR0aW5ncy5oZWFkZXJIZWlnaHQ7XHJcbiAgfSk7XHJcbn1cclxuIiwiPG1hdC10YWJsZVxyXG4gIGNka0Ryb3BMaXN0XHJcbiAgY2RrRHJvcExpc3RMb2NrQXhpcz0neCdcclxuICBjZGtEcm9wTGlzdE9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXHJcbiAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIlxyXG4gIGNsYXNzPVwidGFibGUtZHJhZy1saXN0XCJcclxuICBbY2xhc3NdPVwiKHNob3dGb290ZXJSb3ckIHwgYXN5bmMpXCJcclxuICAjdGFibGVcclxuICBbZGF0YVNvdXJjZV09XCJzdGF0ZS5wcm9wcygpLmRhdGFTb3VyY2UhXCJcclxuICBbdHJhY2tCeV09XCJ0cmFja0J5RnVuY3Rpb25cIlxyXG4gIFtzdHlsZV09XCJ0YWJsZVdpZHRoIHwgYXN5bmNcIlxyXG4+XHJcblxyXG4gIDwhLS0gc2VsZWN0IGNvbHVtbiAtLT5cclxuICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInNlbGVjdFwiPlxyXG5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJmLW1hdC1oZWFkZXItY2VsbFwiPlxyXG4gICAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwiJGV2ZW50ID8gbWFzdGVyVG9nZ2xlKCkgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCIhIShtYXN0ZXJUb2dnbGVDaGVja2VkJCB8IGFzeW5jKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwibWFzdGVyVG9nZ2xlSW5kZXRlcm1pbmF0ZSQgfCBhc3luY1wiPlxyXG4gICAgICA8L21hdC1jaGVja2JveD5cclxuICAgIDwvbWF0LWhlYWRlci1jZWxsPlxyXG5cclxuICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIj5cclxuICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBzZWxlY3Rpb24udG9nZ2xlKHJvdykgOiBudWxsXCJcclxuICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KVwiLz5cclxuICAgIDwvbWF0LWNlbGw+XHJcblxyXG4gICAgPG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZj5cclxuICAgICAge3sgc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCB9fVxyXG4gICAgPC9tYXQtZm9vdGVyLWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0gaW5kZXggY29sdW1uIC0tPlxyXG4gIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaW5kZXhcIj5cclxuICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBjbGFzcz1cImYtbWF0LWhlYWRlci1jZWxsXCIgPiM8L21hdC1oZWFkZXItY2VsbD5cclxuICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGkgPSBpbmRleDtcIj5cclxuICAgICAgICAge3sgMSArIGkgKyBvZmZzZXRJbmRleH19XHJcbiAgICAgIDwvbWF0LWNlbGw+XHJcbiAgICAgIDxtYXQtZm9vdGVyLWNlbGwgKm1hdEZvb3RlckNlbGxEZWY+PC9tYXQtZm9vdGVyLWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDwhLS0gR3JvdXBpbmcgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJncm91cEhlYWRlclwiPlxyXG4gICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvd1wiPlxyXG4gICAgICA8ZGl2IFtzdHlsZS5wYWRkaW5nTGVmdF09XCJyb3cucGFkZGluZyArICdweCAhaW1wb3J0YW50J1wiICpuZ3J4TGV0PVwiKHN0YXRlLmdldElzRXhwYW5kZWQgfCBmdW5jIDogcm93LmtleSA6IHJvdy5ncm91cE5hbWUgKSBhcyBleHBhbmRlZFwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzZXRFeHBhbmRlZChyb3cua2V5LCByb3cuZ3JvdXBOYW1lLCAhZXhwYW5kZWQpO1wiPlxyXG4gICAgICAgICAgQGlmKCFleHBhbmRlZCl7XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8bWF0LWljb24+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIHt7Z2V0VHJhbnNmb3JtIHwgZnVuYyA6IHJvdy5rZXkgOiAgcm93Lmdyb3VwSGVhZGVyRGlzcGxheX19ICh7e3Jvdy5sZW5ndGh9fSlcclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDFcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhdGUucHJvcHMoKS5ncm91cEhlYWRlclRlbXBsYXRlITsgY29udGV4dDogeyBlbGVtZW50OiByb3cgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWNlbGw+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIEBpZihzaG93SGVhZGVyJCB8IGFzeW5jKXtcclxuICAgIDxtYXQtaGVhZGVyLXJvdyBbc3R5bGUuaGVpZ2h0XT1cIiRoZWFkZXJIZWlnaHQoKVwiIFtzdHlsZS5taW4taGVpZ2h0XT1cIiRoZWFkZXJIZWlnaHQoKVwiICptYXRIZWFkZXJSb3dEZWY9XCJrZXlzOyBzdGlja3k6IHN0YXRlLnByb3BzKCkuaXNTdGlja3lcIiBbc3R5bGUudG9wLnB4XT1cIigob2Zmc2V0JCB8IGFzeW5jKSEgKiAtMSlcIiAgLz5cclxuICB9XHJcbiAgPG1hdC1yb3cgW3N0eWxlLmhlaWdodF09XCIkcm93SGVpZ2h0KClcIiBbc3R5bGUubWluLWhlaWdodF09XCIkcm93SGVpZ2h0KClcIiAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczoga2V5czsgbGV0IGkgPSBpbmRleFwiIC8+XHJcbiAgPG1hdC1yb3cgW3N0eWxlLmhlaWdodF09XCIkcm93SGVpZ2h0KClcIiBbc3R5bGUubWluLWhlaWdodF09XCIkcm93SGVpZ2h0KClcIiAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogWydncm91cEhlYWRlciddOyB3aGVuOiBpc0dyb3VwSGVhZGVyXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcIiAvPlxyXG4gIDxtYXQtZm9vdGVyLXJvdyBbc3R5bGUuaGVpZ2h0XT1cIiRyb3dIZWlnaHQoKVwiIFtzdHlsZS5taW4taGVpZ2h0XT1cIiRyb3dIZWlnaHQoKVwiICptYXRGb290ZXJSb3dEZWY9XCIoc2hvd0Zvb3RlclJvdyQgfCBhc3luYykgPT09ICdyZWd1bGFyLWZvb3RlcicgPyBrZXlzIDogW107IHN0aWNreTogc3RhdGUucHJvcHMoKS5zdGlja3lGb290ZXIgXCIgIFtzdHlsZS5ib3R0b20ucHhdPVwic3RhdGUucHJvcHMoKS5zdGlja3lGb290ZXIgPyAob2Zmc2V0JCB8IGFzeW5jKSA6IHVuZGVmaW5lZFwiICAvPlxyXG5cclxuPC9tYXQtdGFibGU+XHJcbiJdfQ==
@@ -1,94 +0,0 @@
1
- import { Component, ChangeDetectionStrategy, ViewChild, Input, computed, } from '@angular/core';
2
- import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';
3
- import { asyncScheduler, merge } from 'rxjs';
4
- import { delay, distinctUntilChanged, distinctUntilKeyChanged, map } from 'rxjs/operators';
5
- import { AsyncPipe, NgClass } from '@angular/common';
6
- import { MatButtonModule } from '@angular/material/button';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../../classes/table-store";
9
- import * as i2 from "@angular/material/paginator";
10
- import * as i3 from "@angular/material/button";
11
- export class PaginatorComponent {
12
- constructor(state) {
13
- this.state = state;
14
- this.$collapseFooter = computed(() => this.state.selectSignal(state => state.persistedTableSettings.collapseFooter)() || this.$showAll());
15
- this.ourPageEvent = false;
16
- this.$showAllOption = this.state.selectSignal(s => s.notPersistedTableSettings?.includeAllInPaginatorOptions);
17
- this.$showAll = this.state.selectSignal(s => s.showAll);
18
- this.updatePaginator = this.state.updater(state => ({ ...state, showAll: !state.showAll }));
19
- }
20
- ngOnInit() {
21
- this.ourPageEvent = true;
22
- this.state.on(metaDataPageSizeChange(this.state), setPaginatorPageSize(this.paginator));
23
- this.state.on(this.paginator.page, (pageEvent) => {
24
- this.state.updateState({ currentPage: pageEvent.pageIndex });
25
- });
26
- this.state.setPageSize(onPaginatorPageSizeChange(this.paginator));
27
- this.state.on(this.state.select(s => s.dataLen), (len) => this.paginator.length = len);
28
- }
29
- ngAfterViewInit() {
30
- this.currentPageData$ = merge(this.paginator.page.pipe(map(mapPaginationEventToCurrentPageDetails)), this.data$.pipe(distinctUntilKeyChanged("length"), delayToAllowForProperUpdate, map(updateCurrentPageDetailsOnDataLengthChange(this.paginator))));
31
- }
32
- paginatorChange() {
33
- if (!this.ourPageEvent) {
34
- setTimeout(() => this.tableElRef?.nativeElement?.scrollIntoView(), 0);
35
- }
36
- else {
37
- this.ourPageEvent = false;
38
- }
39
- }
40
- showAll() {
41
- this.updatePaginator();
42
- }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: PaginatorComponent, deps: [{ token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.2", type: PaginatorComponent, isStandalone: true, selector: "tb-paginator", inputs: { data$: "data$", tableElRef: "tableElRef" }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }], ngImport: i0, template: `
45
- <div class="paginator-row">
46
- @if(currentPageData$ | async; as pageData){
47
- <div [class]="{ 'hide' : ! $collapseFooter(), 'page-amounts':true}">
48
- @if(!$showAll()){{{pageData.currentStart}} - {{pageData.currentEnd}} of }{{pageData.total}}
49
- </div>
50
- }
51
- <mat-paginator [pageSizeOptions]="[5, 10, 20, 50, 100, 500]" showFirstLastButtons (page)="paginatorChange()"
52
- [class]="{ 'hide' : $collapseFooter() }">
53
- </mat-paginator>
54
- @if ($showAllOption()) {<button mat-button (click)="updatePaginator()"><span [style.text-decoration]="$showAll() ? 'line-through' : ''" >All</span></button>}
55
- </div>
56
- `, isInline: true, styles: [".mat-mdc-row:nth-child(odd){background-color:#cdeefe}.page-amounts{color:#0000008a;font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;margin-right:.2rem}:host::ng-deep .mat-mdc-paginator-container{min-height:initial!important}.group-header{display:flex}:host::ng-deep .table-drag-list.cdk-drop-list-dragging .drag-header:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}:host::ng-deep .mdc-data-table__cell,:host::ng-deep .mdc-data-table__header-cell{padding:0 0 0 .2rem;line-height:normal}::ng-deep .op-date-time-input{line-height:3rem;font-size:.9rem;font-family:Roboto,Helvetica Neue,sans-serif;padding-left:.2rem;width:12rem}.small-footer mat-footer-row{min-height:1rem;height:1rem}.no-footer mat-footer-row{display:none}\n", ".collapse-icon{font-size:16px;height:16px;color:#3f51b5;align-self:flex-start}.collapse-icon:hover{cursor:pointer}.hide{display:none}.paginator-row{display:flex;align-items:center}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i2.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
57
- }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: PaginatorComponent, decorators: [{
59
- type: Component,
60
- args: [{ selector: 'tb-paginator', standalone: true, imports: [AsyncPipe, MatPaginatorModule, NgClass, MatButtonModule], template: `
61
- <div class="paginator-row">
62
- @if(currentPageData$ | async; as pageData){
63
- <div [class]="{ 'hide' : ! $collapseFooter(), 'page-amounts':true}">
64
- @if(!$showAll()){{{pageData.currentStart}} - {{pageData.currentEnd}} of }{{pageData.total}}
65
- </div>
66
- }
67
- <mat-paginator [pageSizeOptions]="[5, 10, 20, 50, 100, 500]" showFirstLastButtons (page)="paginatorChange()"
68
- [class]="{ 'hide' : $collapseFooter() }">
69
- </mat-paginator>
70
- @if ($showAllOption()) {<button mat-button (click)="updatePaginator()"><span [style.text-decoration]="$showAll() ? 'line-through' : ''" >All</span></button>}
71
- </div>
72
- `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".mat-mdc-row:nth-child(odd){background-color:#cdeefe}.page-amounts{color:#0000008a;font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;margin-right:.2rem}:host::ng-deep .mat-mdc-paginator-container{min-height:initial!important}.group-header{display:flex}:host::ng-deep .table-drag-list.cdk-drop-list-dragging .drag-header:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}:host::ng-deep .mdc-data-table__cell,:host::ng-deep .mdc-data-table__header-cell{padding:0 0 0 .2rem;line-height:normal}::ng-deep .op-date-time-input{line-height:3rem;font-size:.9rem;font-family:Roboto,Helvetica Neue,sans-serif;padding-left:.2rem;width:12rem}.small-footer mat-footer-row{min-height:1rem;height:1rem}.no-footer mat-footer-row{display:none}\n", ".collapse-icon{font-size:16px;height:16px;color:#3f51b5;align-self:flex-start}.collapse-icon:hover{cursor:pointer}.hide{display:none}.paginator-row{display:flex;align-items:center}\n"] }]
73
- }], ctorParameters: () => [{ type: i1.TableStore }], propDecorators: { paginator: [{
74
- type: ViewChild,
75
- args: [MatPaginator, { static: true }]
76
- }], data$: [{
77
- type: Input
78
- }], tableElRef: [{
79
- type: Input,
80
- args: [{ required: true }]
81
- }] } });
82
- const mapPaginationEventToCurrentPageDetails = (pageData) => ({
83
- currentStart: (pageData.pageIndex * pageData.pageSize) + 1,
84
- currentEnd: Math.min(pageData.length, ((pageData.pageIndex + 1) * pageData.pageSize)),
85
- total: pageData.length
86
- });
87
- const updateCurrentPageDetailsOnDataLengthChange = (paginator) => () => ({ currentStart: (paginator.pageIndex * paginator.pageSize) + 1,
88
- currentEnd: Math.min(paginator.length, ((paginator.pageIndex + 1) * paginator.pageSize)),
89
- total: paginator.length });
90
- const delayToAllowForProperUpdate = delay(0, asyncScheduler);
91
- const metaDataPageSizeChange = (state) => state.state$.pipe(map(state => state.userDefined.pageSize || state.pageSize), distinctUntilChanged());
92
- const setPaginatorPageSize = (paginator) => (pageSize) => paginator._changePageSize(pageSize);
93
- const onPaginatorPageSizeChange = (paginator) => paginator.page.pipe(map(e => e.pageSize), distinctUntilChanged());
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvZ2VuZXJpYy10YWJsZS9wYWdpbmF0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBSUwsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQWEsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRixPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7OztBQXNCM0QsTUFBTSxPQUFPLGtCQUFrQjtJQU03QixZQUFvQixLQUFrQjtRQUFsQixVQUFLLEdBQUwsS0FBSyxDQUFhO1FBSHRDLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFnQ3JJLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLG1CQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FB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R0FBRyxDQUFDLFNBQXNCLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBZ0IsRUFBRSxFQUFFLENBQzVFLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFdEMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLFNBQXVCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUUsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBWaWV3Q2hpbGQsXHJcbiAgSW5wdXQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkluaXQsXHJcbiAgRWxlbWVudFJlZixcclxuICBjb21wdXRlZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yLCBNYXRQYWdpbmF0b3JNb2R1bGUsIFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IGFzeW5jU2NoZWR1bGVyLCBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGItcGFnaW5hdG9yJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtBc3luY1BpcGUsIE1hdFBhZ2luYXRvck1vZHVsZSwgTmdDbGFzcywgTWF0QnV0dG9uTW9kdWxlXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gIDxkaXYgY2xhc3M9XCJwYWdpbmF0b3Itcm93XCI+XHJcbiAgICBAaWYoY3VycmVudFBhZ2VEYXRhJCB8IGFzeW5jOyBhcyBwYWdlRGF0YSl7XHJcbiAgICAgIDxkaXYgW2NsYXNzXT1cInsgJ2hpZGUnIDogISAkY29sbGFwc2VGb290ZXIoKSwgJ3BhZ2UtYW1vdW50cyc6dHJ1ZX1cIj5cclxuICAgICAgICBAaWYoISRzaG93QWxsKCkpe3t7cGFnZURhdGEuY3VycmVudFN0YXJ0fX0gLSB7e3BhZ2VEYXRhLmN1cnJlbnRFbmR9fSBvZiB9e3twYWdlRGF0YS50b3RhbH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgPG1hdC1wYWdpbmF0b3IgW3BhZ2VTaXplT3B0aW9uc109XCJbNSwgMTAsIDIwLCA1MCwgMTAwLCA1MDBdXCIgc2hvd0ZpcnN0TGFzdEJ1dHRvbnMgKHBhZ2UpPVwicGFnaW5hdG9yQ2hhbmdlKClcIlxyXG4gICAgICBbY2xhc3NdPVwieyAnaGlkZScgOiAkY29sbGFwc2VGb290ZXIoKSB9XCI+XHJcbiAgICA8L21hdC1wYWdpbmF0b3I+XHJcbiAgICBAaWYgKCRzaG93QWxsT3B0aW9uKCkpIHs8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cInVwZGF0ZVBhZ2luYXRvcigpXCI+PHNwYW4gW3N0eWxlLnRleHQtZGVjb3JhdGlvbl09XCIkc2hvd0FsbCgpID8gJ2xpbmUtdGhyb3VnaCcgOiAnJ1wiID5BbGw8L3NwYW4+PC9idXR0b24+fVxyXG4gIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ2VuZXJpYy10YWJsZS5jb21wb25lbnQuc2NzcycsJy4uLy4uL3N0eWxlcy9jb2xsYXBzZXIuc3R5bGVzLnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2luYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdHtcclxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwgeyBzdGF0aWM6IHRydWUgfSkgcGFnaW5hdG9yITogTWF0UGFnaW5hdG9yO1xyXG4gIGN1cnJlbnRQYWdlRGF0YSQhOiBPYnNlcnZhYmxlPEN1cnJlbnRQYWdlRGV0YWlscz47XHJcbiAgJGNvbGxhcHNlRm9vdGVyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zdGF0ZS5zZWxlY3RTaWduYWwoc3RhdGUgPT4gc3RhdGUucGVyc2lzdGVkVGFibGVTZXR0aW5ncy5jb2xsYXBzZUZvb3RlcikoKSB8fCB0aGlzLiRzaG93QWxsKCkpO1xyXG4gIEBJbnB1dCgpIGRhdGEkITogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdGFibGVFbFJlZiEgOiBFbGVtZW50UmVmXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdGF0ZSA6IFRhYmxlU3RvcmUpe31cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgdGhpcy5vdXJQYWdlRXZlbnQgPSB0cnVlO1xyXG4gICAgdGhpcy5zdGF0ZS5vbihtZXRhRGF0YVBhZ2VTaXplQ2hhbmdlKHRoaXMuc3RhdGUpLCBzZXRQYWdpbmF0b3JQYWdlU2l6ZSh0aGlzLnBhZ2luYXRvcikpO1xyXG4gICAgdGhpcy5zdGF0ZS5vbih0aGlzLnBhZ2luYXRvci5wYWdlLCAocGFnZUV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuc3RhdGUudXBkYXRlU3RhdGUoe2N1cnJlbnRQYWdlOiBwYWdlRXZlbnQucGFnZUluZGV4fSApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnN0YXRlLnNldFBhZ2VTaXplKG9uUGFnaW5hdG9yUGFnZVNpemVDaGFuZ2UodGhpcy5wYWdpbmF0b3IpKVxyXG5cclxuICAgIHRoaXMuc3RhdGUub24oIHRoaXMuc3RhdGUuc2VsZWN0KCBzID0+IHMuZGF0YUxlbiksIChsZW4pID0+IHRoaXMucGFnaW5hdG9yLmxlbmd0aCA9IGxlbik7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRQYWdlRGF0YSQgPSBtZXJnZShcclxuICAgICAgdGhpcy5wYWdpbmF0b3IucGFnZS5waXBlKG1hcChtYXBQYWdpbmF0aW9uRXZlbnRUb0N1cnJlbnRQYWdlRGV0YWlscykpLFxyXG4gICAgICB0aGlzLmRhdGEkLnBpcGUoXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbEtleUNoYW5nZWQoXCJsZW5ndGhcIiksXHJcbiAgICAgICAgZGVsYXlUb0FsbG93Rm9yUHJvcGVyVXBkYXRlLFxyXG4gICAgICAgIG1hcCh1cGRhdGVDdXJyZW50UGFnZURldGFpbHNPbkRhdGFMZW5ndGhDaGFuZ2UodGhpcy5wYWdpbmF0b3IpKSksXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcGFnaW5hdG9yQ2hhbmdlKCkgOiB2b2lkIHtcclxuICAgIGlmKCF0aGlzLm91clBhZ2VFdmVudCl7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50YWJsZUVsUmVmPy5uYXRpdmVFbGVtZW50Py5zY3JvbGxJbnRvVmlldygpLCAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3VyUGFnZUV2ZW50ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG91clBhZ2VFdmVudCA9IGZhbHNlO1xyXG5cclxuICAkc2hvd0FsbE9wdGlvbiA9IHRoaXMuc3RhdGUuc2VsZWN0U2lnbmFsKHMgPT4gcy5ub3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzPy5pbmNsdWRlQWxsSW5QYWdpbmF0b3JPcHRpb25zKTtcclxuICAkc2hvd0FsbCA9IHRoaXMuc3RhdGUuc2VsZWN0U2lnbmFsKHMgPT4gcy5zaG93QWxsKTtcclxuICB1cGRhdGVQYWdpbmF0b3IgPSB0aGlzLnN0YXRlLnVwZGF0ZXIoc3RhdGUgPT4gKHsgLi4uc3RhdGUsIHNob3dBbGw6ICFzdGF0ZS5zaG93QWxsIH0pKTtcclxuICBzaG93QWxsKCl7XHJcbiAgICB0aGlzLnVwZGF0ZVBhZ2luYXRvcigpO1xyXG4gIH1cclxufVxyXG5cclxuY29uc3QgbWFwUGFnaW5hdGlvbkV2ZW50VG9DdXJyZW50UGFnZURldGFpbHMgPSAocGFnZURhdGE6IFBhZ2VFdmVudCk6Q3VycmVudFBhZ2VEZXRhaWxzID0+ICh7XHJcbiAgY3VycmVudFN0YXJ0IDogKHBhZ2VEYXRhLnBhZ2VJbmRleCAqIHBhZ2VEYXRhLnBhZ2VTaXplKSArIDEsXHJcbiAgY3VycmVudEVuZCA6IE1hdGgubWluKHBhZ2VEYXRhLmxlbmd0aCAsICgocGFnZURhdGEucGFnZUluZGV4ICsgMSkgKiBwYWdlRGF0YS5wYWdlU2l6ZSkpLFxyXG4gIHRvdGFsIDogcGFnZURhdGEubGVuZ3RoXHJcbn0pO1xyXG5cclxuY29uc3QgdXBkYXRlQ3VycmVudFBhZ2VEZXRhaWxzT25EYXRhTGVuZ3RoQ2hhbmdlID0gKHBhZ2luYXRvcjpNYXRQYWdpbmF0b3IpID0+ICgpID0+ICh7Y3VycmVudFN0YXJ0OihwYWdpbmF0b3IucGFnZUluZGV4ICogcGFnaW5hdG9yLnBhZ2VTaXplKSArIDEsXHJcbiAgY3VycmVudEVuZDogTWF0aC5taW4ocGFnaW5hdG9yLmxlbmd0aCAsICgocGFnaW5hdG9yLnBhZ2VJbmRleCArIDEpICogcGFnaW5hdG9yLnBhZ2VTaXplKSksXHJcbiAgdG90YWw6cGFnaW5hdG9yLmxlbmd0aH0pXHJcblxyXG5jb25zdCBkZWxheVRvQWxsb3dGb3JQcm9wZXJVcGRhdGUgPSBkZWxheTxhbnlbXT4oMCxhc3luY1NjaGVkdWxlcik7XHJcblxyXG5pbnRlcmZhY2UgQ3VycmVudFBhZ2VEZXRhaWxzIHtcclxuICBjdXJyZW50U3RhcnQ6bnVtYmVyLFxyXG4gIGN1cnJlbnRFbmQ6bnVtYmVyLFxyXG4gIHRvdGFsOm51bWJlclxyXG59XHJcblxyXG5jb25zdCBtZXRhRGF0YVBhZ2VTaXplQ2hhbmdlID0gKHN0YXRlOlRhYmxlU3RvcmUpID0+IHN0YXRlLnN0YXRlJC5waXBlKG1hcChzdGF0ZSA9PiBzdGF0ZS51c2VyRGVmaW5lZC5wYWdlU2l6ZSB8fCBzdGF0ZS5wYWdlU2l6ZSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG5cclxuY29uc3Qgc2V0UGFnaW5hdG9yUGFnZVNpemUgPSAocGFnaW5hdG9yOk1hdFBhZ2luYXRvcikgPT4gKHBhZ2VTaXplOiBudW1iZXIpID0+XHJcbiAgcGFnaW5hdG9yLl9jaGFuZ2VQYWdlU2l6ZShwYWdlU2l6ZSk7XHJcblxyXG5jb25zdCBvblBhZ2luYXRvclBhZ2VTaXplQ2hhbmdlID0gKHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yKSA9PiBwYWdpbmF0b3IucGFnZS5waXBlKG1hcCggZSA9PiBlLnBhZ2VTaXplICksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpOyJdfQ==
@@ -1,23 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
2
- import { TableStore } from '../../classes/table-store';
3
- import { MatChipsModule } from '@angular/material/chips';
4
- import { LetDirective } from '@ngrx/component';
5
- import { MatIconModule } from '@angular/material/icon';
6
- import { SpaceCasePipe } from '../../../utilities';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/material/chips";
9
- import * as i2 from "@angular/material/icon";
10
- export class GroupByListComponent {
11
- constructor() {
12
- this.tableStore = inject(TableStore);
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: GroupByListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.2", type: GroupByListComponent, isStandalone: true, selector: "group-by-list", ngImport: i0, template: "<mat-chip-set *ngrxLet=\"tableStore.groupByKeys$ as groupByKeys\">\r\n <span class=\"tb-group-label\">Group By:</span>\r\n @for (groupByKey of groupByKeys; track groupByKey) {\r\n @if($index > 0){\r\n <mat-icon class=\"nested-arrow\">arrow_right</mat-icon>\r\n }\r\n <mat-chip (removed)=\"tableStore.removeGroupByKey(groupByKey)\">\r\n {{groupByKey | spaceCase}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n</mat-chip-set>\r\n", styles: [".tb-group-label{padding-right:5px}.nested-arrow{margin-right:-8px;margin-left:-8px}\n"], dependencies: [{ kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i1.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "directive", type: i1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i1.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: SpaceCasePipe, name: "spaceCase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: GroupByListComponent, decorators: [{
18
- type: Component,
19
- args: [{ selector: 'group-by-list', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
20
- MatChipsModule, LetDirective, MatIconModule, SpaceCasePipe
21
- ], template: "<mat-chip-set *ngrxLet=\"tableStore.groupByKeys$ as groupByKeys\">\r\n <span class=\"tb-group-label\">Group By:</span>\r\n @for (groupByKey of groupByKeys; track groupByKey) {\r\n @if($index > 0){\r\n <mat-icon class=\"nested-arrow\">arrow_right</mat-icon>\r\n }\r\n <mat-chip (removed)=\"tableStore.removeGroupByKey(groupByKey)\">\r\n {{groupByKey | spaceCase}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n</mat-chip-set>\r\n", styles: [".tb-group-label{padding-right:5px}.nested-arrow{margin-right:-8px;margin-left:-8px}\n"] }]
22
- }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtYnktbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dyb3VwLWJ5LWxpc3QvZ3JvdXAtYnktbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2dyb3VwLWJ5LWxpc3QvZ3JvdXAtYnktbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBWW5ELE1BQU0sT0FBTyxvQkFBb0I7SUFWakM7UUFZRSxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ2pDOzhHQUhZLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHlFQ2pCakMscWVBWUEsOElERUksY0FBYyxtaEJBQUUsWUFBWSxnR0FBRSxhQUFhLCtLQUFFLGFBQWE7OzJGQUdqRCxvQkFBb0I7a0JBVmhDLFNBQVM7K0JBQ0UsZUFBZSxjQUdiLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0Qzt3QkFDUCxjQUFjLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxhQUFhO3FCQUMzRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xyXG5pbXBvcnQgeyBMZXREaXJlY3RpdmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IFNwYWNlQ2FzZVBpcGUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdncm91cC1ieS1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ3JvdXAtYnktbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JvdXAtYnktbGlzdC5jb21wb25lbnQuY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRDaGlwc01vZHVsZSwgTGV0RGlyZWN0aXZlLCBNYXRJY29uTW9kdWxlLCBTcGFjZUNhc2VQaXBlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JvdXBCeUxpc3RDb21wb25lbnQge1xyXG4gIFxyXG4gIHRhYmxlU3RvcmUgPSBpbmplY3QoVGFibGVTdG9yZSk7XHJcbn1cclxuIiwiPG1hdC1jaGlwLXNldCAqbmdyeExldD1cInRhYmxlU3RvcmUuZ3JvdXBCeUtleXMkIGFzIGdyb3VwQnlLZXlzXCI+XHJcbiAgPHNwYW4gY2xhc3M9XCJ0Yi1ncm91cC1sYWJlbFwiPkdyb3VwIEJ5Ojwvc3Bhbj5cclxuICBAZm9yIChncm91cEJ5S2V5IG9mIGdyb3VwQnlLZXlzOyB0cmFjayBncm91cEJ5S2V5KSB7XHJcbiAgICBAaWYoJGluZGV4ID4gMCl7XHJcbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIm5lc3RlZC1hcnJvd1wiPmFycm93X3JpZ2h0PC9tYXQtaWNvbj5cclxuICAgIH1cclxuICAgIDxtYXQtY2hpcCAocmVtb3ZlZCk9XCJ0YWJsZVN0b3JlLnJlbW92ZUdyb3VwQnlLZXkoZ3JvdXBCeUtleSlcIj5cclxuICAgICAge3tncm91cEJ5S2V5IHwgc3BhY2VDYXNlfX1cclxuICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuICAgIDwvbWF0LWNoaXA+XHJcbiAgfVxyXG48L21hdC1jaGlwLXNldD5cclxuIl19