@one-paragon/angular-utilities 1.2.16 → 1.2.18

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 (407) 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 +191 -0
  14. package/src/http-request-state/directives/HttpStateDirectiveBase.ts +29 -0
  15. package/src/http-request-state/directives/http-error-state-directive.ts +21 -0
  16. package/src/http-request-state/directives/http-inProgress-state-directive.ts +19 -0
  17. package/src/http-request-state/directives/http-notStarted-state-directive.ts +19 -0
  18. package/src/http-request-state/directives/http-success-state-directive.ts +29 -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 +78 -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 +55 -0
  34. package/src/ngrx/actionable-selector.ts +152 -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 +17 -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 +36 -0
  49. package/src/table-builder/classes/TableBuilderDataSource.ts +61 -0
  50. package/src/table-builder/classes/TableState.ts +93 -0
  51. package/src/table-builder/classes/data-store.ts +10 -0
  52. package/{table-builder/classes/display-col.d.ts → src/table-builder/classes/display-col.ts} +5 -5
  53. package/src/table-builder/classes/filter-info.ts +108 -0
  54. package/src/table-builder/classes/table-builder-general-settings.ts +141 -0
  55. package/src/table-builder/classes/table-builder.ts +95 -0
  56. package/src/table-builder/classes/table-store.ts +476 -0
  57. package/src/table-builder/components/array-column.component.ts +36 -0
  58. package/src/table-builder/components/column-builder/column-builder.component.html +61 -0
  59. package/src/table-builder/components/column-builder/column-builder.component.scss +43 -0
  60. package/src/table-builder/components/column-builder/column-builder.component.spec.ts +49 -0
  61. package/src/table-builder/components/column-builder/column-builder.component.ts +146 -0
  62. package/src/table-builder/components/column-builder/column-helpers.ts +52 -0
  63. package/src/table-builder/components/date-filter/date-filter.component.html +23 -0
  64. package/src/table-builder/components/date-filter/date-filter.component.ts +24 -0
  65. package/src/table-builder/components/date-time-filter/date-time-filter.component.html +9 -0
  66. package/src/table-builder/components/date-time-filter/date-time-filter.component.ts +22 -0
  67. package/src/table-builder/components/filter/filter.component.html +91 -0
  68. package/src/table-builder/components/filter/filter.component.scss +60 -0
  69. package/src/table-builder/components/filter/filter.component.spec.ts +87 -0
  70. package/src/table-builder/components/filter/filter.component.ts +60 -0
  71. package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +93 -0
  72. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +55 -0
  73. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +57 -0
  74. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +46 -0
  75. package/src/table-builder/components/generic-table/generic-table.component.html +77 -0
  76. package/src/table-builder/components/generic-table/generic-table.component.scss +38 -0
  77. package/src/table-builder/components/generic-table/generic-table.component.ts +325 -0
  78. package/src/table-builder/components/generic-table/paginator.component.ts +99 -0
  79. package/src/table-builder/components/group-by-list/group-by-list.component.css +8 -0
  80. package/src/table-builder/components/group-by-list/group-by-list.component.html +12 -0
  81. package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +23 -0
  82. package/src/table-builder/components/group-by-list/group-by-list.component.ts +21 -0
  83. package/src/table-builder/components/header-menu/header-menu.component.html +104 -0
  84. package/src/table-builder/components/header-menu/header-menu.component.scss +96 -0
  85. package/src/table-builder/components/header-menu/header-menu.component.ts +99 -0
  86. package/src/table-builder/components/in-filter/in-filter.component.css +3 -0
  87. package/src/table-builder/components/in-filter/in-filter.component.html +20 -0
  88. package/src/table-builder/components/in-filter/in-filter.component.ts +66 -0
  89. package/{table-builder/components/index.d.ts → src/table-builder/components/index.ts} +9 -9
  90. package/src/table-builder/components/initialization-component/initialization-component.html +29 -0
  91. package/src/table-builder/components/initialization-component/initialization-component.ts +24 -0
  92. package/src/table-builder/components/link-column.component.ts +47 -0
  93. package/src/table-builder/components/number-filter/number-filter.component.css +10 -0
  94. package/src/table-builder/components/number-filter/number-filter.component.html +19 -0
  95. package/src/table-builder/components/number-filter/number-filter.component.spec.ts +30 -0
  96. package/src/table-builder/components/number-filter/number-filter.component.ts +25 -0
  97. package/src/table-builder/components/profiles-menu/profiles-menu.component.html +78 -0
  98. package/src/table-builder/components/profiles-menu/profiles-menu.component.scss +126 -0
  99. package/src/table-builder/components/profiles-menu/profiles-menu.component.spec.ts +23 -0
  100. package/src/table-builder/components/profiles-menu/profiles-menu.component.ts +65 -0
  101. package/src/table-builder/components/scroll-strategy.ts +76 -0
  102. package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +66 -0
  103. package/src/table-builder/components/sort-menu/sort-menu.component.html +111 -0
  104. package/src/table-builder/components/sort-menu/sort-menu.component.scss +119 -0
  105. package/src/table-builder/components/sort-menu/sort-menu.component.ts +98 -0
  106. package/{table-builder/components/table-container/table-container-imports.d.ts → src/table-builder/components/table-container/table-container-imports.ts} +32 -14
  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 +94 -0
  112. package/src/table-builder/components/table-container/table-container.scss +47 -0
  113. package/src/table-builder/components/table-container/table-container.spec.ts +154 -0
  114. package/src/table-builder/components/table-container/table-container.ts +356 -0
  115. package/src/table-builder/components/table-container/tableProps.ts +20 -0
  116. package/src/table-builder/components/table-container/virtual-scroll-container.ts +156 -0
  117. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +31 -0
  118. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +46 -0
  119. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +42 -0
  120. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +10 -0
  121. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +85 -0
  122. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +33 -0
  123. package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +23 -0
  124. package/src/table-builder/directives/custom-cell-directive.ts +58 -0
  125. package/{table-builder/directives/index.d.ts → src/table-builder/directives/index.ts} +6 -5
  126. package/src/table-builder/directives/multi-sort.directive.spec.ts +124 -0
  127. package/src/table-builder/directives/multi-sort.directive.ts +51 -0
  128. package/src/table-builder/directives/resize-column.directive.ts +108 -0
  129. package/src/table-builder/directives/table-wrapper.directive.ts +14 -0
  130. package/src/table-builder/directives/tb-filter.directive.ts +382 -0
  131. package/src/table-builder/enums/filterTypes.ts +40 -0
  132. package/src/table-builder/functions/boolean-filter-function.ts +12 -0
  133. package/src/table-builder/functions/date-filter-function.ts +68 -0
  134. package/src/table-builder/functions/download-data.ts +11 -0
  135. package/src/table-builder/functions/null-filter-function.ts +9 -0
  136. package/src/table-builder/functions/number-filter-function.ts +41 -0
  137. package/src/table-builder/functions/sort-data-function.ts +23 -0
  138. package/src/table-builder/functions/string-filter-function.ts +51 -0
  139. package/{table-builder/interfaces/ColumnInfo.d.ts → src/table-builder/interfaces/ColumnInfo.ts} +7 -6
  140. package/src/table-builder/interfaces/column-template.ts +9 -0
  141. package/{table-builder/interfaces/dictionary.d.ts → src/table-builder/interfaces/dictionary.ts} +3 -3
  142. package/src/table-builder/interfaces/report-def.ts +155 -0
  143. package/src/table-builder/ngrx/tableBuilderStateStore.ts +199 -0
  144. package/src/table-builder/pipes/column-total.pipe.ts +17 -0
  145. package/src/table-builder/pipes/format-filter-type.pipe.ts +12 -0
  146. package/src/table-builder/pipes/format-filter-value.pipe.ts +42 -0
  147. package/src/table-builder/pipes/key-display.ts +16 -0
  148. package/src/table-builder/services/export-to-csv.service.ts +78 -0
  149. package/src/table-builder/services/link-creator.service.ts +67 -0
  150. package/src/table-builder/services/table-template-service.ts +59 -0
  151. package/src/table-builder/services/transform-creator.ts +95 -0
  152. package/src/table-builder/specs/table-custom-filters.spec.ts +262 -0
  153. package/src/table-builder/styles/collapser.styles.scss +16 -0
  154. package/src/table-builder/table-builder.module.ts +73 -0
  155. package/src/test.ts +17 -0
  156. package/src/utilities/array-helpers.ts +13 -0
  157. package/src/utilities/directives/auto-focus.directive.ts +21 -0
  158. package/src/utilities/directives/clickEmitterDirective.ts +16 -0
  159. package/src/utilities/directives/clickSubject.ts +20 -0
  160. package/src/utilities/directives/conditional-classes.directive.ts +36 -0
  161. package/src/utilities/directives/dialog-service.ts +19 -0
  162. package/src/utilities/directives/dialog.ts +144 -0
  163. package/src/utilities/directives/mat-toggle-group-directive.ts +61 -0
  164. package/src/utilities/directives/prevent-enter.directive.ts +13 -0
  165. package/src/utilities/directives/stop-propagation.directive.ts +20 -0
  166. package/src/utilities/directives/styler.ts +40 -0
  167. package/src/utilities/directives/trim-whitespace.directive.ts +21 -0
  168. package/{utilities/index.d.ts → src/utilities/index.ts} +22 -15
  169. package/src/utilities/module.ts +55 -0
  170. package/src/utilities/pipes/function.pipe.ts +16 -0
  171. package/src/utilities/pipes/phone.pipe.ts +15 -0
  172. package/src/utilities/pipes/space-case.pipes.spec.ts +47 -0
  173. package/src/utilities/pipes/space-case.pipes.ts +23 -0
  174. package/tsconfig.lib.json +19 -0
  175. package/tsconfig.lib.prod.json +10 -0
  176. package/tsconfig.spec.json +17 -0
  177. package/action-state/action-state-spinner/action-state-spinner.component.d.ts +0 -12
  178. package/action-state/action-state-ui/action-state-ui.module.d.ts +0 -7
  179. package/action-state/ngrx-ext/ngrx-ext.module.d.ts +0 -8
  180. package/action-state/ngrx.d.ts +0 -31
  181. package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +0 -24
  182. package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +0 -20
  183. package/esm2022/action-state/index.mjs +0 -8
  184. package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +0 -23
  185. package/esm2022/action-state/ngrx.mjs +0 -47
  186. package/esm2022/http-request-state/HttpRequestStateFactory.mjs +0 -51
  187. package/esm2022/http-request-state/HttpRequestStateStore.mjs +0 -121
  188. package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +0 -30
  189. package/esm2022/http-request-state/directives/http-error-state-directive.mjs +0 -23
  190. package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +0 -23
  191. package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +0 -23
  192. package/esm2022/http-request-state/directives/http-success-state-directive.mjs +0 -29
  193. package/esm2022/http-request-state/directives/index.mjs +0 -6
  194. package/esm2022/http-request-state/directives/request-state-directive.mjs +0 -61
  195. package/esm2022/http-request-state/helpers.mjs +0 -22
  196. package/esm2022/http-request-state/http-request-state.mjs +0 -39
  197. package/esm2022/http-request-state/http-state-module.mjs +0 -40
  198. package/esm2022/http-request-state/index.mjs +0 -7
  199. package/esm2022/http-request-state/rxjs/getRequestorBody.mjs +0 -4
  200. package/esm2022/http-request-state/rxjs/getRequestorState.mjs +0 -3
  201. package/esm2022/http-request-state/rxjs/index.mjs +0 -5
  202. package/esm2022/http-request-state/rxjs/tapError.mjs +0 -12
  203. package/esm2022/http-request-state/rxjs/tapSuccess.mjs +0 -12
  204. package/esm2022/http-request-state/types.mjs +0 -16
  205. package/esm2022/ngrx/actionable-selector.mjs +0 -71
  206. package/esm2022/ngrx/index.mjs +0 -2
  207. package/esm2022/one-paragon-angular-utilities.mjs +0 -5
  208. package/esm2022/public-api.mjs +0 -20
  209. package/esm2022/rxjs/defaultShareReplay.mjs +0 -7
  210. package/esm2022/rxjs/index.mjs +0 -6
  211. package/esm2022/rxjs/mapError.mjs +0 -8
  212. package/esm2022/rxjs/rxjs-operators.mjs +0 -92
  213. package/esm2022/rxjs/subjectifier.mjs +0 -15
  214. package/esm2022/rxjs/subscriber.directive.mjs +0 -50
  215. package/esm2022/table-builder/classes/DefaultSettings.mjs +0 -6
  216. package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +0 -23
  217. package/esm2022/table-builder/classes/TableBuilderConfig.mjs +0 -18
  218. package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +0 -48
  219. package/esm2022/table-builder/classes/TableState.mjs +0 -48
  220. package/esm2022/table-builder/classes/data-store.mjs +0 -15
  221. package/esm2022/table-builder/classes/display-col.mjs +0 -2
  222. package/esm2022/table-builder/classes/filter-info.mjs +0 -61
  223. package/esm2022/table-builder/classes/table-builder-general-settings.mjs +0 -116
  224. package/esm2022/table-builder/classes/table-builder.mjs +0 -77
  225. package/esm2022/table-builder/classes/table-store.mjs +0 -388
  226. package/esm2022/table-builder/components/array-column.component.mjs +0 -53
  227. package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +0 -134
  228. package/esm2022/table-builder/components/column-builder/column-helpers.mjs +0 -45
  229. package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +0 -29
  230. package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +0 -24
  231. package/esm2022/table-builder/components/filter/filter.component.mjs +0 -64
  232. package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +0 -102
  233. package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +0 -47
  234. package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +0 -310
  235. package/esm2022/table-builder/components/generic-table/paginator.component.mjs +0 -100
  236. package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +0 -21
  237. package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +0 -103
  238. package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +0 -65
  239. package/esm2022/table-builder/components/index.mjs +0 -10
  240. package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +0 -47
  241. package/esm2022/table-builder/components/link-column.component.mjs +0 -74
  242. package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +0 -29
  243. package/esm2022/table-builder/components/profiles-menu/profiles-menu.component.mjs +0 -64
  244. package/esm2022/table-builder/components/scroll-strategy.mjs +0 -60
  245. package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +0 -46
  246. package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +0 -82
  247. package/esm2022/table-builder/components/table-container/table-container-imports.mjs +0 -26
  248. package/esm2022/table-builder/components/table-container/table-container.helpers/data-state.helpers.mjs +0 -135
  249. package/esm2022/table-builder/components/table-container/table-container.helpers/filter-state.helpers.mjs +0 -83
  250. package/esm2022/table-builder/components/table-container/table-container.helpers/groupBy.helpers.mjs +0 -71
  251. package/esm2022/table-builder/components/table-container/table-container.helpers/sort-state.helpers.mjs +0 -36
  252. package/esm2022/table-builder/components/table-container/table-container.mjs +0 -336
  253. package/esm2022/table-builder/components/table-container/tableProps.mjs +0 -8
  254. package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +0 -155
  255. package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +0 -44
  256. package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +0 -36
  257. package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +0 -25
  258. package/esm2022/table-builder/directives/custom-cell-directive.mjs +0 -73
  259. package/esm2022/table-builder/directives/index.mjs +0 -6
  260. package/esm2022/table-builder/directives/multi-sort.directive.mjs +0 -50
  261. package/esm2022/table-builder/directives/resize-column.directive.mjs +0 -87
  262. package/esm2022/table-builder/directives/table-wrapper.directive.mjs +0 -18
  263. package/esm2022/table-builder/directives/tb-filter.directive.mjs +0 -396
  264. package/esm2022/table-builder/enums/filterTypes.mjs +0 -29
  265. package/esm2022/table-builder/functions/boolean-filter-function.mjs +0 -10
  266. package/esm2022/table-builder/functions/date-filter-function.mjs +0 -58
  267. package/esm2022/table-builder/functions/download-data.mjs +0 -12
  268. package/esm2022/table-builder/functions/null-filter-function.mjs +0 -8
  269. package/esm2022/table-builder/functions/number-filter-function.mjs +0 -32
  270. package/esm2022/table-builder/functions/sort-data-function.mjs +0 -17
  271. package/esm2022/table-builder/functions/string-filter-function.mjs +0 -41
  272. package/esm2022/table-builder/interfaces/ColumnInfo.mjs +0 -2
  273. package/esm2022/table-builder/interfaces/dictionary.mjs +0 -2
  274. package/esm2022/table-builder/interfaces/report-def.mjs +0 -50
  275. package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +0 -154
  276. package/esm2022/table-builder/pipes/column-total.pipe.mjs +0 -22
  277. package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +0 -18
  278. package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +0 -43
  279. package/esm2022/table-builder/pipes/key-display.mjs +0 -18
  280. package/esm2022/table-builder/services/export-to-csv.service.mjs +0 -75
  281. package/esm2022/table-builder/services/link-creator.service.mjs +0 -50
  282. package/esm2022/table-builder/services/table-template-service.mjs +0 -60
  283. package/esm2022/table-builder/services/transform-creator.mjs +0 -100
  284. package/esm2022/table-builder/table-builder.module.mjs +0 -124
  285. package/esm2022/utilities/array-helpers.mjs +0 -14
  286. package/esm2022/utilities/directives/auto-focus.directive.mjs +0 -25
  287. package/esm2022/utilities/directives/clickEmitterDirective.mjs +0 -22
  288. package/esm2022/utilities/directives/clickSubject.mjs +0 -29
  289. package/esm2022/utilities/directives/conditional-classes.directive.mjs +0 -36
  290. package/esm2022/utilities/directives/dialog-service.mjs +0 -21
  291. package/esm2022/utilities/directives/dialog.mjs +0 -145
  292. package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +0 -59
  293. package/esm2022/utilities/directives/prevent-enter.directive.mjs +0 -20
  294. package/esm2022/utilities/directives/stop-propagation.directive.mjs +0 -26
  295. package/esm2022/utilities/directives/styler.mjs +0 -41
  296. package/esm2022/utilities/directives/trim-whitespace.directive.mjs +0 -28
  297. package/esm2022/utilities/index.mjs +0 -16
  298. package/esm2022/utilities/module.mjs +0 -90
  299. package/esm2022/utilities/pipes/function.pipe.mjs +0 -22
  300. package/esm2022/utilities/pipes/phone.pipe.mjs +0 -20
  301. package/esm2022/utilities/pipes/space-case.pipes.mjs +0 -28
  302. package/fesm2022/one-paragon-angular-utilities.mjs +0 -5700
  303. package/fesm2022/one-paragon-angular-utilities.mjs.map +0 -1
  304. package/http-request-state/HttpRequestStateFactory.d.ts +0 -17
  305. package/http-request-state/HttpRequestStateStore.d.ts +0 -54
  306. package/http-request-state/directives/HttpStateDirectiveBase.d.ts +0 -14
  307. package/http-request-state/directives/http-error-state-directive.d.ts +0 -9
  308. package/http-request-state/directives/http-inProgress-state-directive.d.ts +0 -9
  309. package/http-request-state/directives/http-notStarted-state-directive.d.ts +0 -9
  310. package/http-request-state/directives/http-success-state-directive.d.ts +0 -16
  311. package/http-request-state/directives/request-state-directive.d.ts +0 -34
  312. package/http-request-state/helpers.d.ts +0 -9
  313. package/http-request-state/http-request-state.d.ts +0 -12
  314. package/http-request-state/http-state-module.d.ts +0 -11
  315. package/http-request-state/rxjs/getRequestorBody.d.ts +0 -3
  316. package/http-request-state/rxjs/getRequestorState.d.ts +0 -3
  317. package/http-request-state/rxjs/tapError.d.ts +0 -3
  318. package/http-request-state/rxjs/tapSuccess.d.ts +0 -3
  319. package/http-request-state/types.d.ts +0 -41
  320. package/index.d.ts +0 -5
  321. package/ngrx/actionable-selector.d.ts +0 -17
  322. package/ngrx/index.d.ts +0 -1
  323. package/rxjs/defaultShareReplay.d.ts +0 -2
  324. package/rxjs/mapError.d.ts +0 -2
  325. package/rxjs/rxjs-operators.d.ts +0 -13
  326. package/rxjs/subjectifier.d.ts +0 -8
  327. package/rxjs/subscriber.directive.d.ts +0 -14
  328. package/table-builder/classes/DefaultSettings.d.ts +0 -9
  329. package/table-builder/classes/MatTableObservableDataSource.d.ts +0 -9
  330. package/table-builder/classes/TableBuilderConfig.d.ts +0 -23
  331. package/table-builder/classes/TableBuilderDataSource.d.ts +0 -12
  332. package/table-builder/classes/TableState.d.ts +0 -66
  333. package/table-builder/classes/data-store.d.ts +0 -8
  334. package/table-builder/classes/filter-info.d.ts +0 -35
  335. package/table-builder/classes/table-builder-general-settings.d.ts +0 -85
  336. package/table-builder/classes/table-builder.d.ts +0 -18
  337. package/table-builder/classes/table-store.d.ts +0 -138
  338. package/table-builder/components/array-column.component.d.ts +0 -15
  339. package/table-builder/components/column-builder/column-builder.component.d.ts +0 -47
  340. package/table-builder/components/column-builder/column-helpers.d.ts +0 -36
  341. package/table-builder/components/date-filter/date-filter.component.d.ts +0 -37
  342. package/table-builder/components/date-time-filter/date-time-filter.component.d.ts +0 -37
  343. package/table-builder/components/filter/filter.component.d.ts +0 -46
  344. package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +0 -24
  345. package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +0 -17
  346. package/table-builder/components/generic-table/generic-table.component.d.ts +0 -89
  347. package/table-builder/components/generic-table/paginator.component.d.ts +0 -30
  348. package/table-builder/components/group-by-list/group-by-list.component.d.ts +0 -7
  349. package/table-builder/components/header-menu/header-menu.component.d.ts +0 -51
  350. package/table-builder/components/in-filter/in-filter.component.d.ts +0 -20
  351. package/table-builder/components/initialization-component/initialization-component.d.ts +0 -13
  352. package/table-builder/components/link-column.component.d.ts +0 -25
  353. package/table-builder/components/number-filter/number-filter.component.d.ts +0 -39
  354. package/table-builder/components/profiles-menu/profiles-menu.component.d.ts +0 -32
  355. package/table-builder/components/scroll-strategy.d.ts +0 -22
  356. package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +0 -24
  357. package/table-builder/components/sort-menu/sort-menu.component.d.ts +0 -24
  358. package/table-builder/components/table-container/table-container.d.ts +0 -80
  359. package/table-builder/components/table-container/table-container.helpers/data-state.helpers.d.ts +0 -6
  360. package/table-builder/components/table-container/table-container.helpers/filter-state.helpers.d.ts +0 -17
  361. package/table-builder/components/table-container/table-container.helpers/groupBy.helpers.d.ts +0 -17
  362. package/table-builder/components/table-container/table-container.helpers/sort-state.helpers.d.ts +0 -8
  363. package/table-builder/components/table-container/tableProps.d.ts +0 -12
  364. package/table-builder/components/table-container/virtual-scroll-container.d.ts +0 -36
  365. package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +0 -15
  366. package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +0 -12
  367. package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +0 -14
  368. package/table-builder/directives/custom-cell-directive.d.ts +0 -33
  369. package/table-builder/directives/multi-sort.directive.d.ts +0 -10
  370. package/table-builder/directives/resize-column.directive.d.ts +0 -43
  371. package/table-builder/directives/table-wrapper.directive.d.ts +0 -8
  372. package/table-builder/directives/tb-filter.directive.d.ts +0 -115
  373. package/table-builder/enums/filterTypes.d.ts +0 -36
  374. package/table-builder/functions/boolean-filter-function.d.ts +0 -3
  375. package/table-builder/functions/date-filter-function.d.ts +0 -4
  376. package/table-builder/functions/download-data.d.ts +0 -1
  377. package/table-builder/functions/null-filter-function.d.ts +0 -2
  378. package/table-builder/functions/number-filter-function.d.ts +0 -4
  379. package/table-builder/functions/sort-data-function.d.ts +0 -6
  380. package/table-builder/functions/string-filter-function.d.ts +0 -5
  381. package/table-builder/interfaces/report-def.d.ts +0 -147
  382. package/table-builder/ngrx/tableBuilderStateStore.d.ts +0 -70
  383. package/table-builder/pipes/column-total.pipe.d.ts +0 -8
  384. package/table-builder/pipes/format-filter-type.pipe.d.ts +0 -8
  385. package/table-builder/pipes/format-filter-value.pipe.d.ts +0 -12
  386. package/table-builder/pipes/key-display.d.ts +0 -10
  387. package/table-builder/services/export-to-csv.service.d.ts +0 -14
  388. package/table-builder/services/link-creator.service.d.ts +0 -16
  389. package/table-builder/services/table-template-service.d.ts +0 -14
  390. package/table-builder/services/transform-creator.d.ts +0 -16
  391. package/table-builder/table-builder.module.d.ts +0 -21
  392. package/utilities/array-helpers.d.ts +0 -1
  393. package/utilities/directives/auto-focus.directive.d.ts +0 -9
  394. package/utilities/directives/clickEmitterDirective.d.ts +0 -7
  395. package/utilities/directives/clickSubject.d.ts +0 -9
  396. package/utilities/directives/conditional-classes.directive.d.ts +0 -13
  397. package/utilities/directives/dialog-service.d.ts +0 -10
  398. package/utilities/directives/dialog.d.ts +0 -44
  399. package/utilities/directives/mat-toggle-group-directive.d.ts +0 -21
  400. package/utilities/directives/prevent-enter.directive.d.ts +0 -6
  401. package/utilities/directives/stop-propagation.directive.d.ts +0 -7
  402. package/utilities/directives/styler.d.ts +0 -15
  403. package/utilities/directives/trim-whitespace.directive.d.ts +0 -7
  404. package/utilities/module.d.ts +0 -19
  405. package/utilities/pipes/function.pipe.d.ts +0 -7
  406. package/utilities/pipes/phone.pipe.d.ts +0 -7
  407. package/utilities/pipes/space-case.pipes.d.ts +0 -17
@@ -1,134 +0,0 @@
1
- import { Component, ChangeDetectionStrategy, ViewChild, Injector, computed, inject } from '@angular/core';
2
- import { FieldType } from '../../interfaces/report-def';
3
- import { MatColumnDef, MatTable, MatTableModule } from '@angular/material/table';
4
- import { ResizeColumnDirective } from '../../directives';
5
- import { TransformCreator } from '../../services/transform-creator';
6
- import { TableStore } from '../../classes/table-store';
7
- import { map } from 'rxjs/operators';
8
- import { TableTemplateService } from '../../services/table-template-service';
9
- import { CdkDropList, CDK_DROP_LIST, DragDropModule } from '@angular/cdk/drag-drop';
10
- import { AsyncPipe, CurrencyPipe, DecimalPipe, NgTemplateOutlet } from '@angular/common';
11
- import { ConditionalClassesDirective, FunctionPipe, SpaceCasePipe } from '../../../utilities';
12
- import { MatSortModule } from '@angular/material/sort';
13
- import { HeaderMenuComponent } from '../header-menu/header-menu.component';
14
- import { MatTooltipModule } from '@angular/material/tooltip';
15
- import { LetDirective } from '@ngrx/component';
16
- import { ColumnTotalPipe } from '../../pipes/column-total.pipe';
17
- import { StylerDirective } from '../../../utilities/directives/styler';
18
- import { columnStyles } from './column-helpers';
19
- import { TableBuilderConfigToken } from '../../classes/TableBuilderConfig';
20
- import * as i0 from "@angular/core";
21
- import * as i1 from "@angular/material/table";
22
- import * as i2 from "@angular/cdk/drag-drop";
23
- import * as i3 from "@angular/material/sort";
24
- import * as i4 from "@angular/material/tooltip";
25
- export class ColumnBuilderComponent {
26
- transformCreator = inject(TransformCreator);
27
- table = inject(MatTable);
28
- state = inject(TableStore);
29
- templateService = inject(TableTemplateService);
30
- injector = inject(Injector);
31
- columnDef;
32
- bodyTemplate;
33
- tableConfig = inject(TableBuilderConfigToken);
34
- FieldType = FieldType;
35
- filter;
36
- _metaData;
37
- get metaData() {
38
- return this._metaData;
39
- }
40
- set metaData(md) {
41
- if (this.metaData && this.metaData.fieldType !== md.fieldType) {
42
- this._metaData = md;
43
- this.initialSetUp();
44
- this.furtherSetUp();
45
- }
46
- else {
47
- this._metaData = md;
48
- }
49
- }
50
- customCell = undefined;
51
- data$;
52
- outerTemplate;
53
- innerTemplate;
54
- transform;
55
- getInnerTemplate() {
56
- if (this.metaData.template)
57
- return this.metaData.template;
58
- if (this.customCell?.TemplateRef)
59
- return this.customCell.TemplateRef;
60
- return this.templateService.getTemplate(this.metaData);
61
- }
62
- showFilters$;
63
- getOuterTemplate() {
64
- return this.customCell?.columnDef?.cell?.template ?? this.bodyTemplate;
65
- }
66
- classes;
67
- styles = computed(() => {
68
- return columnStyles(this.metaData, this.state.$getUserDefinedWidth(this.metaData.key)(), this.state.tableSettingsMinWidth());
69
- });
70
- ngOnInit() {
71
- this.initialSetUp();
72
- }
73
- ngAfterViewInit() {
74
- this.furtherSetUp();
75
- this.table.addColumnDef(this.columnDef);
76
- }
77
- initialSetUp() {
78
- if (this.metaData.fieldType === FieldType.Currency) {
79
- this.classes = {
80
- ['negative-currency']: (element) => element[this.metaData.key] < 0,
81
- ...this.metaData.classes
82
- };
83
- }
84
- else {
85
- this.classes = this.metaData.classes;
86
- }
87
- this.filter = { key: this.metaData.key, fieldType: this.metaData.fieldType };
88
- this.showFilters$ = this.state.tableSettings$.pipe(map(settings => !(settings.hideColumnHeaderFilters || this.metaData.noFilter)));
89
- this.additional = this.metaData.fieldType === FieldType.Link
90
- ? this.state.getLinkInfo(this.metaData)()
91
- :
92
- this.metaData.fieldType === FieldType.Array
93
- ? this.metaData.additional?.limit || this.tableConfig?.arrayDefaults?.arrayStyle
94
- : undefined;
95
- }
96
- furtherSetUp() {
97
- this.outerTemplate = this.getOuterTemplate();
98
- this.innerTemplate = this.getInnerTemplate();
99
- this.transform = this.transformCreator.createTransformer(this.metaData);
100
- }
101
- cellClicked(element, key) {
102
- if (this.metaData.click) {
103
- this.metaData.click(element, key);
104
- }
105
- }
106
- getTooltip = (element) => {
107
- if (typeof this.metaData.toolTip === 'string') {
108
- return this.metaData.toolTip;
109
- }
110
- return this.metaData.toolTip(element);
111
- };
112
- additional;
113
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ColumnBuilderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
114
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: ColumnBuilderComponent, isStandalone: true, selector: "ng-component", viewQueries: [{ propertyName: "columnDef", first: true, predicate: MatColumnDef, descendants: true }, { propertyName: "bodyTemplate", first: true, predicate: ["body"], descendants: true }], ngImport: i0, template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles() as styles\" >\r\n\r\n <!-- header -->\r\n <ng-template matHeaderCellDef #myHeader>\r\n <mat-header-cell cdkDrag [style]='styles.header' resizeColumn [key]=\"metaData.key\" class=\"column-head\"\r\n [class]='metaData.additional?.columnPartClasses?.header'>\r\n <div class=\"header-container\" cdkDragHandle>\r\n @if(!customCell?.columnDef?.headerCell)\r\n {\r\n @if(metaData.fieldType !== FieldType.NotMapped){\r\n <div mat-sort-header [disabled]=\"metaData.noSort\" style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n } @else if(metaData.fieldType === FieldType.NotMapped){\r\n <div style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n }\r\n @if((showFilters$ | async)){\r\n <tb-header-menu #menu [metaData]='metaData' />\r\n }\r\n }\r\n @else\r\n {\r\n <ng-container *ngTemplateOutlet=\"customCell!.columnDef!.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\r\n </ng-container>\r\n }\r\n </div>\r\n </mat-header-cell>\r\n </ng-template>\r\n\r\n <!-- body -->\r\n <ng-container *matCellDef=\"let element;\">\r\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: { metaData: metaData, element: element , styles: styles.body, $implicit: element }\"/>\r\n </ng-container>\r\n <ng-template #body let-element='element' >\r\n <mat-cell [matTooltip]=\"metaData.toolTip ? (getTooltip | func : element) : ''\" [conditionalClasses]='metaData.classes' [element]='element' [styler]='styles.body' (click)='cellClicked(element, metaData.key)' >\r\n <ng-container *ngTemplateOutlet=\"innerTemplate; context: { value: (transform | func : element), element: element, additional: additional, $implicit: element }; Injector: injector\" />\r\n </mat-cell>\r\n </ng-template>\r\n\r\n <!-- footer -->\r\n <ng-template matFooterCellDef>\r\n @if(customCell?.columnDef?.footerCell){\r\n <ng-container\r\n *ngTemplateOutlet=\"customCell!.columnDef!.footerCell.template; context: {metaData: metaData, data: data$, styles : styles.footer }\"/>\r\n } @else {\r\n <mat-footer-cell [style]='styles.footer' *ngrxLet=\"data$ as data\" [class]='metaData.additional?.columnPartClasses?.footer'>\r\n @if(!!data?.length && metaData.additional?.footer){\r\n <span class=\"bold\">\r\n @switch (metaData.fieldType) {\r\n @case (FieldType.Currency) { {{ data | columnTotal: metaData | currency }} }\r\n @case (FieldType.Number) { {{ data | columnTotal: metaData | number }} }\r\n }\r\n </span>\r\n }\r\n\r\n </mat-footer-cell>\r\n }\r\n </ng-template>\r\n</ng-container>\r\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:#fff;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"], dependencies: [{ kind: "ngmodule", type: MatTableModule }, { kind: "directive", type: i1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i1.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i1.MatFooterCell, selector: "mat-footer-cell, td[mat-footer-cell]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ResizeColumnDirective, selector: "[resizeColumn]", inputs: ["resizeColumn", "key"] }, { kind: "pipe", type: FunctionPipe, name: "func" }, { kind: "directive", type: StylerDirective, selector: "[styler]", inputs: ["element", "styler"] }, { kind: "directive", type: ConditionalClassesDirective, selector: "[conditionalClasses]", inputs: ["element", "conditionalClasses"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "component", type: i3.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "pipe", type: SpaceCasePipe, name: "spaceCase" }, { kind: "component", type: HeaderMenuComponent, selector: "tb-header-menu", inputs: ["metaData"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: LetDirective, selector: "[ngrxLet]", inputs: ["ngrxLet", "ngrxLetSuspenseTpl"] }, { kind: "pipe", type: ColumnTotalPipe, name: "columnTotal" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: DecimalPipe, name: "number" }], viewProviders: [
115
- { provide: CDK_DROP_LIST, useExisting: CdkDropList },
116
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
117
- }
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ColumnBuilderComponent, decorators: [{
119
- type: Component,
120
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [
121
- { provide: CDK_DROP_LIST, useExisting: CdkDropList },
122
- ], standalone: true, imports: [
123
- MatTableModule, NgTemplateOutlet, ResizeColumnDirective, FunctionPipe, StylerDirective,
124
- ConditionalClassesDirective, DragDropModule, MatSortModule, SpaceCasePipe, HeaderMenuComponent,
125
- AsyncPipe, MatTooltipModule, LetDirective, ColumnTotalPipe, CurrencyPipe, DecimalPipe
126
- ], template: "<ng-container [matColumnDef]=\"metaData.key\" *ngrxLet=\"styles() as styles\" >\r\n\r\n <!-- header -->\r\n <ng-template matHeaderCellDef #myHeader>\r\n <mat-header-cell cdkDrag [style]='styles.header' resizeColumn [key]=\"metaData.key\" class=\"column-head\"\r\n [class]='metaData.additional?.columnPartClasses?.header'>\r\n <div class=\"header-container\" cdkDragHandle>\r\n @if(!customCell?.columnDef?.headerCell)\r\n {\r\n @if(metaData.fieldType !== FieldType.NotMapped){\r\n <div mat-sort-header [disabled]=\"metaData.noSort\" style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n } @else if(metaData.fieldType === FieldType.NotMapped){\r\n <div style=\"width: 100%\">\r\n {{ metaData.displayName ? metaData.displayName : ( metaData.key | spaceCase ) }}\r\n </div>\r\n }\r\n @if((showFilters$ | async)){\r\n <tb-header-menu #menu [metaData]='metaData' />\r\n }\r\n }\r\n @else\r\n {\r\n <ng-container *ngTemplateOutlet=\"customCell!.columnDef!.headerCell.template; context: {metaData: metaData, styles: styles.header} \">\r\n </ng-container>\r\n }\r\n </div>\r\n </mat-header-cell>\r\n </ng-template>\r\n\r\n <!-- body -->\r\n <ng-container *matCellDef=\"let element;\">\r\n <ng-container *ngTemplateOutlet=\"outerTemplate; context: { metaData: metaData, element: element , styles: styles.body, $implicit: element }\"/>\r\n </ng-container>\r\n <ng-template #body let-element='element' >\r\n <mat-cell [matTooltip]=\"metaData.toolTip ? (getTooltip | func : element) : ''\" [conditionalClasses]='metaData.classes' [element]='element' [styler]='styles.body' (click)='cellClicked(element, metaData.key)' >\r\n <ng-container *ngTemplateOutlet=\"innerTemplate; context: { value: (transform | func : element), element: element, additional: additional, $implicit: element }; Injector: injector\" />\r\n </mat-cell>\r\n </ng-template>\r\n\r\n <!-- footer -->\r\n <ng-template matFooterCellDef>\r\n @if(customCell?.columnDef?.footerCell){\r\n <ng-container\r\n *ngTemplateOutlet=\"customCell!.columnDef!.footerCell.template; context: {metaData: metaData, data: data$, styles : styles.footer }\"/>\r\n } @else {\r\n <mat-footer-cell [style]='styles.footer' *ngrxLet=\"data$ as data\" [class]='metaData.additional?.columnPartClasses?.footer'>\r\n @if(!!data?.length && metaData.additional?.footer){\r\n <span class=\"bold\">\r\n @switch (metaData.fieldType) {\r\n @case (FieldType.Currency) { {{ data | columnTotal: metaData | currency }} }\r\n @case (FieldType.Number) { {{ data | columnTotal: metaData | number }} }\r\n }\r\n </span>\r\n }\r\n\r\n </mat-footer-cell>\r\n }\r\n </ng-template>\r\n</ng-container>\r\n", styles: [".header-container{display:flex;flex-direction:row;width:100%;align-items:center}.negative-currency{color:red}.column-head{position:relative}.bold,.group-footer{font-weight:900}.cdk-drag-preview{background:#fff;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:33%;border-right-width:0px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.drag-handle{color:#add8e6;cursor:move;margin-right:9px}\n"] }]
127
- }], propDecorators: { columnDef: [{
128
- type: ViewChild,
129
- args: [MatColumnDef]
130
- }], bodyTemplate: [{
131
- type: ViewChild,
132
- args: ['body']
133
- }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9jb2x1bW4tYnVpbGRlci9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQWUsU0FBUyxFQUFxQixRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQW1CLFNBQVMsRUFBWSxNQUFNLDZCQUE2QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpGLE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFD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REEsdWlCRDNCSSxjQUFjLDRuQkFBRSxnQkFBZ0Isb0pBQUUscUJBQXFCLHVGQUFFLFlBQVksNkNBQUUsZUFBZSxvRkFDdEYsMkJBQTJCLDJHQUFFLGNBQWMsK2xCQUFFLGFBQWEsaVBBQUUsYUFBYSxrREFBRSxtQkFBbUIsNEVBQzlGLFNBQVMsNkNBQUUsZ0JBQWdCLDZUQUFFLFlBQVksNEZBQUUsZUFBZSwrQ0FBRSxZQUFZLDRDQUFFLFdBQVcsb0NBUHhFO1lBQ2IsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7U0FDckQ7OzJGQVFVLHNCQUFzQjtrQkFkbEMsU0FBUztzQ0FHUyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQzt3QkFDYixFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRTtxQkFDckQsY0FDVyxJQUFJLFdBQ1A7d0JBQ1AsY0FBYyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxlQUFlO3dCQUN0RiwyQkFBMkIsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxtQkFBbUI7d0JBQzlGLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXO3FCQUN0Rjs4QkFTd0IsU0FBUztzQkFBakMsU0FBUzt1QkFBQyxZQUFZO2dCQUNKLFlBQVk7c0JBQTlCLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIE9uSW5pdCwgUHJlZGljYXRlLCBJbmplY3RvciwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcnJheUFkZGl0aW9uYWwsIEZpZWxkVHlwZSwgTWV0YURhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xyXG5pbXBvcnQgeyBNYXRDb2x1bW5EZWYsIE1hdFRhYmxlLCBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDdXN0b21DZWxsRGlyZWN0aXZlLCBSZXNpemVDb2x1bW5EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgRmlsdGVySW5mbyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBUcmFuc2Zvcm1DcmVhdG9yIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNmb3JtLWNyZWF0b3InO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGFibGVUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWJsZS10ZW1wbGF0ZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2RrRHJvcExpc3QsIENES19EUk9QX0xJU1QsIERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdAbmdyeC9lbnRpdHknO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIEN1cnJlbmN5UGlwZSwgRGVjaW1hbFBpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25kaXRpb25hbENsYXNzZXNEaXJlY3RpdmUsIEZ1bmN0aW9uUGlwZSwgU3BhY2VDYXNlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgSGVhZGVyTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sdW1uVG90YWxQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY29sdW1uLXRvdGFsLnBpcGUnO1xyXG5pbXBvcnQgeyBTdHlsZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvZGlyZWN0aXZlcy9zdHlsZXInO1xyXG5pbXBvcnQgeyBjb2x1bW5TdHlsZXMgfSBmcm9tICcuL2NvbHVtbi1oZWxwZXJzJztcclxuaW1wb3J0IHsgVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4gfSBmcm9tICcuLi8uLi9jbGFzc2VzL1RhYmxlQnVpbGRlckNvbmZpZyc7XHJcbmltcG9ydCB7IExpbmtJbmZvIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGluay1jcmVhdG9yLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICB2aWV3UHJvdmlkZXJzOiBbXHJcbiAgICB7IHByb3ZpZGU6IENES19EUk9QX0xJU1QsIHVzZUV4aXN0aW5nOiBDZGtEcm9wTGlzdCB9LFxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRUYWJsZU1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCwgUmVzaXplQ29sdW1uRGlyZWN0aXZlLCBGdW5jdGlvblBpcGUsIFN0eWxlckRpcmVjdGl2ZSxcclxuICAgIENvbmRpdGlvbmFsQ2xhc3Nlc0RpcmVjdGl2ZSwgRHJhZ0Ryb3BNb2R1bGUsIE1hdFNvcnRNb2R1bGUsIFNwYWNlQ2FzZVBpcGUsIEhlYWRlck1lbnVDb21wb25lbnQsXHJcbiAgICBBc3luY1BpcGUsIE1hdFRvb2x0aXBNb2R1bGUsIExldERpcmVjdGl2ZSwgQ29sdW1uVG90YWxQaXBlLCBDdXJyZW5jeVBpcGUsIERlY2ltYWxQaXBlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29sdW1uQnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1DcmVhdG9yID0gaW5qZWN0KFRyYW5zZm9ybUNyZWF0b3IpO1xyXG4gIHByaXZhdGUgdGFibGUgPSBpbmplY3Q8TWF0VGFibGU8YW55Pj4oTWF0VGFibGUpO1xyXG4gIHByaXZhdGUgc3RhdGUgPSBpbmplY3QoVGFibGVTdG9yZSk7XHJcbiAgcHJpdmF0ZSB0ZW1wbGF0ZVNlcnZpY2UgPSBpbmplY3QoVGFibGVUZW1wbGF0ZVNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcblxyXG4gIEBWaWV3Q2hpbGQoTWF0Q29sdW1uRGVmKSBjb2x1bW5EZWYhOiBNYXRDb2x1bW5EZWY7XHJcbiAgQFZpZXdDaGlsZCgnYm9keScpIGJvZHlUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgdGFibGVDb25maWcgPSBpbmplY3QoVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4pO1xyXG4gIEZpZWxkVHlwZSA9IEZpZWxkVHlwZTtcclxuICBmaWx0ZXIhOiBQYXJ0aWFsPEZpbHRlckluZm8+O1xyXG4gIF9tZXRhRGF0YSE6IE1ldGFEYXRhO1xyXG4gIGdldCBtZXRhRGF0YSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuX21ldGFEYXRhO1xyXG4gIH1cclxuICBzZXQgbWV0YURhdGEobWQ6IE1ldGFEYXRhKXtcclxuICAgIGlmKHRoaXMubWV0YURhdGEgJiYgdGhpcy5tZXRhRGF0YS5maWVsZFR5cGUgIT09IG1kLmZpZWxkVHlwZSl7XHJcbiAgICAgIHRoaXMuX21ldGFEYXRhID0gbWQ7XHJcbiAgICAgIHRoaXMuaW5pdGlhbFNldFVwKCk7XHJcbiAgICAgIHRoaXMuZnVydGhlclNldFVwKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9tZXRhRGF0YSA9IG1kO1xyXG4gICAgfVxyXG4gIH1cclxuICBjdXN0b21DZWxsPzogQ3VzdG9tQ2VsbERpcmVjdGl2ZSA9IHVuZGVmaW5lZDtcclxuICBkYXRhJCE6IE9ic2VydmFibGU8YW55W10+O1xyXG5cclxuICBvdXRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBpbm5lclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICB0cmFuc2Zvcm0hOiAobzogYW55LCAuLi5hcmdzOiBhbnlbXSk9PiBhbnkgO1xyXG5cclxuICBnZXRJbm5lclRlbXBsYXRlKCkgOlRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgaWYodGhpcy5tZXRhRGF0YS50ZW1wbGF0ZSkgcmV0dXJuIHRoaXMubWV0YURhdGEudGVtcGxhdGU7XHJcbiAgICBpZiAodGhpcy5jdXN0b21DZWxsPy5UZW1wbGF0ZVJlZikgIHJldHVybiB0aGlzLmN1c3RvbUNlbGwuVGVtcGxhdGVSZWY7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZ2V0VGVtcGxhdGUodGhpcy5tZXRhRGF0YSk7XHJcbiAgfVxyXG4gIHNob3dGaWx0ZXJzJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgZ2V0T3V0ZXJUZW1wbGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uY2VsbD8udGVtcGxhdGUgPz8gdGhpcy5ib2R5VGVtcGxhdGU7XHJcbiAgfVxyXG4gIGNsYXNzZXM/OiBEaWN0aW9uYXJ5PFByZWRpY2F0ZTxhbnk+PjtcclxuICBzdHlsZXMgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICByZXR1cm4gY29sdW1uU3R5bGVzKHRoaXMubWV0YURhdGEsIHRoaXMuc3RhdGUuJGdldFVzZXJEZWZpbmVkV2lkdGgodGhpcy5tZXRhRGF0YS5rZXkpKCksIHRoaXMuc3RhdGUudGFibGVTZXR0aW5nc01pbldpZHRoKCkpO1xyXG4gIH0pXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRpYWxTZXRVcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5mdXJ0aGVyU2V0VXAoKTtcclxuICAgIHRoaXMudGFibGUuYWRkQ29sdW1uRGVmKHRoaXMuY29sdW1uRGVmKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxTZXRVcCgpe1xyXG4gICAgaWYodGhpcy5tZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5DdXJyZW5jeSkge1xyXG4gICAgICB0aGlzLmNsYXNzZXMgPSB7XHJcbiAgICAgICAgWyduZWdhdGl2ZS1jdXJyZW5jeSddOiAoZWxlbWVudCkgPT4gZWxlbWVudFt0aGlzLm1ldGFEYXRhLmtleV0gPCAwLFxyXG4gICAgICAgIC4uLnRoaXMubWV0YURhdGEuY2xhc3Nlc1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5jbGFzc2VzID0gdGhpcy5tZXRhRGF0YS5jbGFzc2VzO1xyXG4gICAgfVxyXG4gICAgdGhpcy5maWx0ZXIgPSB7a2V5OiB0aGlzLm1ldGFEYXRhLmtleSwgZmllbGRUeXBlOiB0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZX07XHJcblxyXG4gICAgdGhpcy5zaG93RmlsdGVycyQgPSB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MkLnBpcGUobWFwKHNldHRpbmdzID0+ICEoc2V0dGluZ3MuaGlkZUNvbHVtbkhlYWRlckZpbHRlcnMgfHwgdGhpcy5tZXRhRGF0YS5ub0ZpbHRlcikpKTtcclxuICAgIHRoaXMuYWRkaXRpb25hbCA9IHRoaXMubWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuTGlua1xyXG4gICAgICA/IHRoaXMuc3RhdGUuZ2V0TGlua0luZm8odGhpcy5tZXRhRGF0YSkoKVxyXG4gICAgICA6XHJcbiAgICAgIHRoaXMubWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQXJyYXlcclxuICAgICAgPyAodGhpcy5tZXRhRGF0YS5hZGRpdGlvbmFsIGFzIEFycmF5QWRkaXRpb25hbCk/LmxpbWl0IHx8IHRoaXMudGFibGVDb25maWc/LmFycmF5RGVmYXVsdHM/LmFycmF5U3R5bGVcclxuICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBmdXJ0aGVyU2V0VXAoKXtcclxuICAgIHRoaXMub3V0ZXJUZW1wbGF0ZSA9IHRoaXMuZ2V0T3V0ZXJUZW1wbGF0ZSgpO1xyXG4gICAgdGhpcy5pbm5lclRlbXBsYXRlID0gdGhpcy5nZXRJbm5lclRlbXBsYXRlKCk7XHJcbiAgICB0aGlzLnRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtQ3JlYXRvci5jcmVhdGVUcmFuc2Zvcm1lcih0aGlzLm1ldGFEYXRhKTtcclxuICB9XHJcblxyXG4gIGNlbGxDbGlja2VkKGVsZW1lbnQ6IGFueSwga2V5OiBzdHJpbmcpIHtcclxuICAgIGlmKHRoaXMubWV0YURhdGEuY2xpY2spIHtcclxuICAgICAgdGhpcy5tZXRhRGF0YS5jbGljayhlbGVtZW50LGtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUb29sdGlwID0gKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgaWYodHlwZW9mIHRoaXMubWV0YURhdGEudG9vbFRpcCA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubWV0YURhdGEudG9vbFRpcDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLm1ldGFEYXRhLnRvb2xUaXAhKGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgYWRkaXRpb25hbDogTGlua0luZm8gfCBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cIm1ldGFEYXRhLmtleVwiICpuZ3J4TGV0PVwic3R5bGVzKCkgYXMgc3R5bGVzXCIgPlxyXG5cclxuICA8IS0tIGhlYWRlciAtLT5cclxuICA8bmctdGVtcGxhdGUgbWF0SGVhZGVyQ2VsbERlZiAjbXlIZWFkZXI+XHJcbiAgICA8bWF0LWhlYWRlci1jZWxsIGNka0RyYWcgW3N0eWxlXT0nc3R5bGVzLmhlYWRlcicgcmVzaXplQ29sdW1uIFtrZXldPVwibWV0YURhdGEua2V5XCIgY2xhc3M9XCJjb2x1bW4taGVhZFwiXHJcbiAgICAgIFtjbGFzc109J21ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRDbGFzc2VzPy5oZWFkZXInPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNvbnRhaW5lclwiIGNka0RyYWdIYW5kbGU+XHJcbiAgICAgICAgQGlmKCFjdXN0b21DZWxsPy5jb2x1bW5EZWY/LmhlYWRlckNlbGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBAaWYobWV0YURhdGEuZmllbGRUeXBlICE9PSBGaWVsZFR5cGUuTm90TWFwcGVkKXtcclxuICAgICAgICAgICAgICA8ZGl2IG1hdC1zb3J0LWhlYWRlciBbZGlzYWJsZWRdPVwibWV0YURhdGEubm9Tb3J0XCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbWV0YURhdGEuZGlzcGxheU5hbWUgPyAgbWV0YURhdGEuZGlzcGxheU5hbWUgOiAoIG1ldGFEYXRhLmtleSB8IHNwYWNlQ2FzZSApIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH0gQGVsc2UgaWYobWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuTm90TWFwcGVkKXtcclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cclxuICAgICAgICAgICAgICAgIHt7IG1ldGFEYXRhLmRpc3BsYXlOYW1lID8gIG1ldGFEYXRhLmRpc3BsYXlOYW1lIDogKCBtZXRhRGF0YS5rZXkgfCBzcGFjZUNhc2UgKSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZigoc2hvd0ZpbHRlcnMkIHwgYXN5bmMpKXtcclxuICAgICAgICAgICAgICA8dGItaGVhZGVyLW1lbnUgI21lbnUgW21ldGFEYXRhXT0nbWV0YURhdGEnIC8+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tQ2VsbCEuY29sdW1uRGVmIS5oZWFkZXJDZWxsLnRlbXBsYXRlOyBjb250ZXh0OiB7bWV0YURhdGE6IG1ldGFEYXRhLCBzdHlsZXM6ICBzdHlsZXMuaGVhZGVyfSBcIj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1oZWFkZXItY2VsbD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8IS0tIGJvZHkgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50O1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm91dGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgbWV0YURhdGE6IG1ldGFEYXRhLCBlbGVtZW50OiBlbGVtZW50ICwgc3R5bGVzOiBzdHlsZXMuYm9keSwgJGltcGxpY2l0OiBlbGVtZW50IH1cIi8+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLXRlbXBsYXRlICNib2R5IGxldC1lbGVtZW50PSdlbGVtZW50JyA+XHJcbiAgICA8bWF0LWNlbGwgIFttYXRUb29sdGlwXT1cIm1ldGFEYXRhLnRvb2xUaXAgPyAoZ2V0VG9vbHRpcCB8IGZ1bmMgOiBlbGVtZW50KSA6ICcnXCIgIFtjb25kaXRpb25hbENsYXNzZXNdPSdtZXRhRGF0YS5jbGFzc2VzJyBbZWxlbWVudF09J2VsZW1lbnQnIFtzdHlsZXJdPSdzdHlsZXMuYm9keScgKGNsaWNrKT0nY2VsbENsaWNrZWQoZWxlbWVudCwgbWV0YURhdGEua2V5KScgPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJUZW1wbGF0ZTsgY29udGV4dDogeyB2YWx1ZTogKHRyYW5zZm9ybSB8IGZ1bmMgOiBlbGVtZW50KSwgZWxlbWVudDogZWxlbWVudCwgYWRkaXRpb25hbDogYWRkaXRpb25hbCwgJGltcGxpY2l0OiBlbGVtZW50IH07IEluamVjdG9yOiBpbmplY3RvclwiIC8+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDwhLS0gZm9vdGVyIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSBtYXRGb290ZXJDZWxsRGVmPlxyXG4gICAgQGlmKGN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uZm9vdGVyQ2VsbCl7XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21DZWxsIS5jb2x1bW5EZWYhLmZvb3RlckNlbGwudGVtcGxhdGU7IGNvbnRleHQ6IHttZXRhRGF0YTogbWV0YURhdGEsIGRhdGE6IGRhdGEkLCBzdHlsZXMgOiBzdHlsZXMuZm9vdGVyIH1cIi8+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPG1hdC1mb290ZXItY2VsbCAgW3N0eWxlXT0nc3R5bGVzLmZvb3RlcicgKm5ncnhMZXQ9XCJkYXRhJCBhcyBkYXRhXCIgW2NsYXNzXT0nbWV0YURhdGEuYWRkaXRpb25hbD8uY29sdW1uUGFydENsYXNzZXM/LmZvb3Rlcic+XHJcbiAgICAgICAgQGlmKCEhZGF0YT8ubGVuZ3RoICYmIG1ldGFEYXRhLmFkZGl0aW9uYWw/LmZvb3Rlcil7XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJvbGRcIj5cclxuICAgICAgICAgICAgQHN3aXRjaCAobWV0YURhdGEuZmllbGRUeXBlKSB7XHJcbiAgICAgICAgICAgICAgQGNhc2UgKEZpZWxkVHlwZS5DdXJyZW5jeSkgeyB7eyBkYXRhIHwgY29sdW1uVG90YWw6IG1ldGFEYXRhIHwgY3VycmVuY3kgfX0gfVxyXG4gICAgICAgICAgICAgIEBjYXNlIChGaWVsZFR5cGUuTnVtYmVyKSB7IHt7IGRhdGEgfCBjb2x1bW5Ub3RhbDogbWV0YURhdGEgfCBudW1iZXIgfX0gfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgPC9tYXQtZm9vdGVyLWNlbGw+XHJcbiAgICB9XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -1,45 +0,0 @@
1
- import { metaDataArrToDict } from "../../interfaces/report-def";
2
- export const calculateWidths = (metaData, userDefinedWidth) => {
3
- const definedWidth = (userDefinedWidth && `${userDefinedWidth}px`) || metaData.width;
4
- return definedWidth;
5
- };
6
- export function calculateUserDefinedWidth(userDefinedWidth) {
7
- if (userDefinedWidth)
8
- return { flex: `0 0 ${userDefinedWidth}px`, maxWidth: 'none' };
9
- return undefined;
10
- }
11
- export function calculateTableDefinedWidth(metaData, tableSettingsMinWidth) {
12
- if (metaData.width)
13
- return ({ flex: `0 0 ${metaData.width}`, maxWidth: 'none' });
14
- const style = { flex: `${1}` };
15
- if (tableSettingsMinWidth)
16
- style['minWidth'] = `${tableSettingsMinWidth}px`;
17
- return style;
18
- }
19
- export const calculateFlexWidth = (metaData, userDefinedWidth, tableSettingsMinWidth) => {
20
- const definedWidth = calculateWidths(metaData, userDefinedWidth);
21
- if (definedWidth)
22
- return ({ flex: `0 0 ${definedWidth}`, maxWidth: 'none' });
23
- const style = { flex: `${1}` };
24
- if (tableSettingsMinWidth)
25
- style['minWidth'] = `${tableSettingsMinWidth}px`;
26
- return style;
27
- };
28
- export const columnStyles = (metaData, userDefinedWidth, tableSettingsMinWidth) => {
29
- const fullMetaStyles = metaData.additional?.styles ?? {};
30
- const userWidth = calculateUserDefinedWidth(userDefinedWidth) ?? {};
31
- const tableWidth = userDefinedWidth ? {} : calculateTableDefinedWidth(metaData, tableSettingsMinWidth);
32
- const styles = {
33
- header: { ...tableWidth, ...fullMetaStyles, ...metaData.additional?.columnPartStyles?.header, ...userWidth },
34
- footer: { ...tableWidth, ...fullMetaStyles, ...metaData.additional?.columnPartStyles?.footer, ...userWidth },
35
- body: { ...tableWidth, ...fullMetaStyles, ...metaData.additional?.columnPartStyles?.body, ...userWidth },
36
- };
37
- return styles;
38
- };
39
- export const calculateFlexWidths = (metaDatas, userDefinedWidths, tableSettingsMinWidth) => {
40
- return metaDataArrToDict(metaDatas, md => calculateFlexWidth(md, userDefinedWidths[md.key], tableSettingsMinWidth));
41
- };
42
- export const columnsStyles = (metaDatas, userDefinedWidths) => {
43
- return metaDataArrToDict(metaDatas, md => columnStyles(md, userDefinedWidths[md.key]));
44
- };
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVyxpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBR3hFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQWtCLEVBQUUsZ0JBQW9DLEVBQUUsRUFBRTtJQUMxRixNQUFNLFlBQVksR0FBRyxDQUFDLGdCQUFnQixJQUFJLEdBQUcsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDckYsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLGdCQUFvQztJQUM1RSxJQUFHLGdCQUFnQjtRQUFFLE9BQU8sRUFBQyxJQUFJLEVBQUUsT0FBTyxnQkFBZ0IsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNuRixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLFFBQWtCLEVBQUUscUJBQXlDO0lBQ3RHLElBQUcsUUFBUSxDQUFDLEtBQUs7UUFBRSxPQUFPLENBQUMsRUFBQyxJQUFJLEVBQUUsT0FBTyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7SUFDOUUsTUFBTSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBQyxDQUFDO0lBQzlCLElBQUcscUJBQXFCO1FBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcscUJBQXFCLElBQUksQ0FBQztJQUMzRSxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFFBQWtCLEVBQUUsZ0JBQW9DLEVBQUUscUJBQXlDLEVBQUUsRUFBRTtJQUN4SSxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDakUsSUFBRyxZQUFZO1FBQUUsT0FBTyxDQUFDLEVBQUMsSUFBSSxFQUFFLE9BQU8sWUFBWSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDM0UsTUFBTSxLQUFLLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBQyxDQUFDO0lBQzlCLElBQUcscUJBQXFCO1FBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcscUJBQXFCLElBQUksQ0FBQztJQUMzRSxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLFFBQWtCLEVBQUUsZ0JBQW9DLEVBQUUscUJBQTBDLEVBQUUsRUFBRTtJQUNuSSxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsVUFBVSxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7SUFDekQsTUFBTSxTQUFTLEdBQUcseUJBQXlCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEUsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsUUFBUSxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDdkcsTUFBTSxNQUFNLEdBSVI7UUFDRixNQUFNLEVBQUUsRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxFQUFDO1FBQzNHLE1BQU0sRUFBRSxFQUFFLEdBQUcsVUFBVSxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLEVBQUM7UUFDM0csSUFBSSxFQUFFLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxRQUFRLENBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxHQUFHLFNBQVMsRUFBQztLQUN4RyxDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxTQUFxQixFQUFFLGlCQUFxQyxFQUFFLHFCQUF5QyxFQUFFLEVBQUU7SUFDN0ksT0FBTyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUMsQ0FBQztBQUN0SCxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxTQUFxQixFQUFFLGlCQUFxQyxFQUFFLEVBQUU7SUFDNUYsT0FBTyxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDekYsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaWN0aW9uYXJ5fSBmcm9tIFwiQG5ncngvZW50aXR5XCI7XHJcbmltcG9ydCB7TWV0YURhdGEsIG1ldGFEYXRhQXJyVG9EaWN0fSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmXCI7XHJcbmltcG9ydCB7U3R5bGVyU3R5bGV9IGZyb20gXCIuLi8uLi8uLi91dGlsaXRpZXMvZGlyZWN0aXZlcy9zdHlsZXJcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBjYWxjdWxhdGVXaWR0aHMgPSAobWV0YURhdGE6IE1ldGFEYXRhLCB1c2VyRGVmaW5lZFdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQpID0+IHtcclxuICBjb25zdCBkZWZpbmVkV2lkdGggPSAodXNlckRlZmluZWRXaWR0aCAmJiBgJHt1c2VyRGVmaW5lZFdpZHRofXB4YCkgfHwgbWV0YURhdGEud2lkdGg7XHJcbiAgcmV0dXJuIGRlZmluZWRXaWR0aDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZVVzZXJEZWZpbmVkV2lkdGgodXNlckRlZmluZWRXaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkKXtcclxuICBpZih1c2VyRGVmaW5lZFdpZHRoKSByZXR1cm4ge2ZsZXg6IGAwIDAgJHt1c2VyRGVmaW5lZFdpZHRofXB4YCwgbWF4V2lkdGg6ICdub25lJyB9O1xyXG4gIHJldHVybiB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVUYWJsZURlZmluZWRXaWR0aChtZXRhRGF0YTogTWV0YURhdGEsIHRhYmxlU2V0dGluZ3NNaW5XaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkKXtcclxuICBpZihtZXRhRGF0YS53aWR0aCkgcmV0dXJuICh7ZmxleDogYDAgMCAke21ldGFEYXRhLndpZHRofWAsIG1heFdpZHRoOiAnbm9uZSd9KTtcclxuICBjb25zdCBzdHlsZSA9IHsgZmxleDogYCR7MX1gfTtcclxuICBpZih0YWJsZVNldHRpbmdzTWluV2lkdGgpIHN0eWxlWydtaW5XaWR0aCddID0gYCR7dGFibGVTZXR0aW5nc01pbldpZHRofXB4YDtcclxuICByZXR1cm4gc3R5bGU7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjYWxjdWxhdGVGbGV4V2lkdGggPSAobWV0YURhdGE6IE1ldGFEYXRhLCB1c2VyRGVmaW5lZFdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQsIHRhYmxlU2V0dGluZ3NNaW5XaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkKSA9PiB7XHJcbiAgY29uc3QgZGVmaW5lZFdpZHRoID0gY2FsY3VsYXRlV2lkdGhzKG1ldGFEYXRhLCB1c2VyRGVmaW5lZFdpZHRoKTtcclxuICBpZihkZWZpbmVkV2lkdGgpIHJldHVybiAoe2ZsZXg6IGAwIDAgJHtkZWZpbmVkV2lkdGh9YCwgbWF4V2lkdGg6ICdub25lJyB9KTtcclxuICBjb25zdCBzdHlsZSA9IHsgZmxleDogYCR7MX1gfTtcclxuICBpZih0YWJsZVNldHRpbmdzTWluV2lkdGgpIHN0eWxlWydtaW5XaWR0aCddID0gYCR7dGFibGVTZXR0aW5nc01pbldpZHRofXB4YDtcclxuICByZXR1cm4gc3R5bGU7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjb2x1bW5TdHlsZXMgPSAobWV0YURhdGE6IE1ldGFEYXRhLCB1c2VyRGVmaW5lZFdpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQsIHRhYmxlU2V0dGluZ3NNaW5XaWR0aD86IG51bWJlciB8IHVuZGVmaW5lZCkgPT4ge1xyXG4gIGNvbnN0IGZ1bGxNZXRhU3R5bGVzID0gbWV0YURhdGEuYWRkaXRpb25hbD8uc3R5bGVzID8/IHt9O1xyXG4gIGNvbnN0IHVzZXJXaWR0aCA9IGNhbGN1bGF0ZVVzZXJEZWZpbmVkV2lkdGgodXNlckRlZmluZWRXaWR0aCkgPz8ge307XHJcbiAgY29uc3QgdGFibGVXaWR0aCA9IHVzZXJEZWZpbmVkV2lkdGggPyB7fSA6IGNhbGN1bGF0ZVRhYmxlRGVmaW5lZFdpZHRoKG1ldGFEYXRhLCB0YWJsZVNldHRpbmdzTWluV2lkdGgpO1xyXG4gIGNvbnN0IHN0eWxlczoge1xyXG4gICAgaGVhZGVyOiBEaWN0aW9uYXJ5PHN0cmluZz47XHJcbiAgICBib2R5OiBTdHlsZXJTdHlsZTtcclxuICAgIGZvb3RlcjogRGljdGlvbmFyeTxzdHJpbmc+O1xyXG4gIH0gPSB7XHJcbiAgICBoZWFkZXI6IHsgLi4udGFibGVXaWR0aCwgLi4uZnVsbE1ldGFTdHlsZXMsIC4uLm1ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRTdHlsZXM/LmhlYWRlciwgLi4udXNlcldpZHRofSxcclxuICAgIGZvb3RlcjogeyAuLi50YWJsZVdpZHRoLCAuLi5mdWxsTWV0YVN0eWxlcywgLi4ubWV0YURhdGEuYWRkaXRpb25hbD8uY29sdW1uUGFydFN0eWxlcz8uZm9vdGVyLCAuLi51c2VyV2lkdGh9LFxyXG4gICAgYm9keTogeyAuLi50YWJsZVdpZHRoLCAuLi5mdWxsTWV0YVN0eWxlcywgLi4ubWV0YURhdGEuYWRkaXRpb25hbD8uY29sdW1uUGFydFN0eWxlcz8uYm9keSwgLi4udXNlcldpZHRofSxcclxuICB9O1xyXG4gIHJldHVybiBzdHlsZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjYWxjdWxhdGVGbGV4V2lkdGhzID0gKG1ldGFEYXRhczogTWV0YURhdGFbXSwgdXNlckRlZmluZWRXaWR0aHM6IERpY3Rpb25hcnk8bnVtYmVyPiwgdGFibGVTZXR0aW5nc01pbldpZHRoOiBudW1iZXIgfCB1bmRlZmluZWQpID0+IHtcclxuICByZXR1cm4gbWV0YURhdGFBcnJUb0RpY3QobWV0YURhdGFzLCBtZCA9PiBjYWxjdWxhdGVGbGV4V2lkdGgobWQsIHVzZXJEZWZpbmVkV2lkdGhzW21kLmtleV0sIHRhYmxlU2V0dGluZ3NNaW5XaWR0aCkpO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY29sdW1uc1N0eWxlcyA9IChtZXRhRGF0YXM6IE1ldGFEYXRhW10sIHVzZXJEZWZpbmVkV2lkdGhzOiBEaWN0aW9uYXJ5PG51bWJlcj4pID0+IHtcclxuICByZXR1cm4gbWV0YURhdGFBcnJUb0RpY3QobWV0YURhdGFzLCBtZCA9PiBjb2x1bW5TdHlsZXMobWQsIHVzZXJEZWZpbmVkV2lkdGhzW21kLmtleV0pKTtcclxufVxyXG4iXX0=
@@ -1,29 +0,0 @@
1
- import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
2
- import { FilterTypes } from '../../enums/filterTypes';
3
- import { ControlContainer, FormsModule, NgForm } from '@angular/forms';
4
- import { MatInputModule } from '@angular/material/input';
5
- import { MatDatepickerModule } from '@angular/material/datepicker';
6
- import { PreventEnterDirective } from '../../../utilities';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/material/input";
9
- import * as i2 from "@angular/material/form-field";
10
- import * as i3 from "@angular/forms";
11
- import * as i4 from "@angular/material/datepicker";
12
- export class DateFilterComponent {
13
- FilterType = FilterTypes;
14
- info;
15
- CurrentFilterType;
16
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DateFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: DateFilterComponent, isStandalone: true, selector: "tb-date-filter", inputs: { info: "info", CurrentFilterType: "CurrentFilterType" }, ngImport: i0, template: "@if (CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull) {\r\n <mat-form-field>\r\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\r\n <mat-datepicker-toggle class=\"small-button date-toggle\" matSuffix [for]=\"cal\" preventEnter />\r\n <mat-datepicker #cal />\r\n </mat-form-field>\r\n}\r\n@if(CurrentFilterType === FilterType.DateBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <mat-form-field class=\"my-filter\" >\r\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"From\" [matDatepicker]=\"fromVal\"\r\n (click)=\"fromVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"fromVal\" preventEnter />\r\n <mat-datepicker #fromVal></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"toVal\" preventEnter />\r\n <mat-datepicker #toVal />\r\n </mat-form-field>\r\n </ng-container>\r\n}\r\n\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.head-row{width:100%}.filter-row{width:fit-content}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{float:right;font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DateFilterComponent, decorators: [{
20
- type: Component,
21
- args: [{ selector: 'tb-date-filter', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], standalone: true, imports: [
22
- MatInputModule, FormsModule, MatDatepickerModule, PreventEnterDirective
23
- ], template: "@if (CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull) {\r\n <mat-form-field>\r\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\r\n <mat-datepicker-toggle class=\"small-button date-toggle\" matSuffix [for]=\"cal\" preventEnter />\r\n <mat-datepicker #cal />\r\n </mat-form-field>\r\n}\r\n@if(CurrentFilterType === FilterType.DateBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <mat-form-field class=\"my-filter\" >\r\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"From\" [matDatepicker]=\"fromVal\"\r\n (click)=\"fromVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"fromVal\" preventEnter />\r\n <mat-datepicker #fromVal></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"toVal\" preventEnter />\r\n <mat-datepicker #toVal />\r\n </mat-form-field>\r\n </ng-container>\r\n}\r\n\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.head-row{width:100%}.filter-row{width:fit-content}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{float:right;font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"] }]
24
- }], propDecorators: { info: [{
25
- type: Input
26
- }], CurrentFilterType: [{
27
- type: Input
28
- }] } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9kYXRlLWZpbHRlci9kYXRlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtZmlsdGVyL2RhdGUtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBYTNELE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsVUFBVSxHQUFHLFdBQVcsQ0FBQztJQUNoQixJQUFJLENBQWlCO0lBQ3JCLGlCQUFpQixDQUFjO3VHQUgvQixtQkFBbUI7MkZBQW5CLG1CQUFtQiw0SUNuQmhDLGd2Q0F1QkEsOHlCRFBRLGNBQWMsc3JCQUFFLFdBQVcsMDRCQUFFLG1CQUFtQix1ZkFIckMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLENBQUM7OzJGQU14RCxtQkFBbUI7a0JBWC9CLFNBQVM7K0JBQ0ksZ0JBQWdCLG1CQUVULHVCQUF1QixDQUFDLE1BQU0saUJBRWhDLENBQUMsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFDLGNBQ3JELElBQUksV0FDUDt3QkFDTCxjQUFjLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQjtxQkFDMUU7OEJBSVEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhcnRpYWxGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSwgRmlsdGVyVHlwZXMgfSBmcm9tICcuLi8uLi9lbnVtcy9maWx0ZXJUeXBlcyc7XHJcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1zTW9kdWxlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IFByZXZlbnRFbnRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndGItZGF0ZS1maWx0ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4uL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHZpZXdQcm92aWRlcnM6IFt7cHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybX1dLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBNYXRJbnB1dE1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hdERhdGVwaWNrZXJNb2R1bGUsIFByZXZlbnRFbnRlckRpcmVjdGl2ZVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZUZpbHRlckNvbXBvbmVudCB7XHJcbiAgICBGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZXM7XHJcbiAgICBASW5wdXQoKSBpbmZvITogUGFydGlhbEZpbHRlcjtcclxuICAgIEBJbnB1dCgpIEN1cnJlbnRGaWx0ZXJUeXBlITogRmlsdGVyVHlwZTtcclxufVxyXG4iLCJAaWYgKEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLkRhdGVCZXR3ZWVuICYmIEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLklzTnVsbCkge1xyXG4gIDxtYXQtZm9ybS1maWVsZD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBuYW1lPVwiZmlsdGVyVmFsdWVcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlXCIgW21hdERhdGVwaWNrZXJdPVwiY2FsXCIvPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBjbGFzcz1cInNtYWxsLWJ1dHRvbiBkYXRlLXRvZ2dsZVwiIG1hdFN1ZmZpeCBbZm9yXT1cImNhbFwiIHByZXZlbnRFbnRlciAvPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyICNjYWwgLz5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG59XHJcbkBpZihDdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5EYXRlQmV0d2Vlbil7XHJcbiAgPG5nLWNvbnRhaW5lciBuZ01vZGVsR3JvdXA9XCJmaWx0ZXJWYWx1ZVwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibXktZmlsdGVyXCIgPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgbmFtZT1cIlN0YXJ0XCIgW25nTW9kZWxdPVwiaW5mby5maWx0ZXJWYWx1ZT8uU3RhcnRcIiAgcGxhY2Vob2xkZXI9XCJGcm9tXCIgW21hdERhdGVwaWNrZXJdPVwiZnJvbVZhbFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZnJvbVZhbC5vcGVuKClcIi8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IGNsYXNzPVwic21hbGwtYnV0dG9uIGRhdGUtdG9nZ2xlXCIgW2Zvcl09XCJmcm9tVmFsXCIgcHJldmVudEVudGVyIC8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZnJvbVZhbD48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IG5hbWU9XCJFbmRcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5FbmRcIiAgcGxhY2Vob2xkZXI9XCJUb1wiIFttYXREYXRlcGlja2VyXT1cInRvVmFsXCIgKGNsaWNrKT1cInRvVmFsLm9wZW4oKVwiLz5cclxuICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggY2xhc3M9XCJzbWFsbC1idXR0b24gZGF0ZS10b2dnbGVcIiBbZm9yXT1cInRvVmFsXCIgcHJldmVudEVudGVyIC8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjdG9WYWwgLz5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbn1cclxuXHJcbiJdfQ==
@@ -1,24 +0,0 @@
1
- import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
2
- import { FilterTypes } from '../../enums/filterTypes';
3
- import { ControlContainer, FormsModule, NgForm } from '@angular/forms';
4
- import { PreventEnterDirective } from '../../../utilities';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/forms";
7
- export class DateTimeFilterComponent {
8
- FilterType = FilterTypes;
9
- info;
10
- CurrentFilterType;
11
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DateTimeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: DateTimeFilterComponent, isStandalone: true, selector: "tb-date-time-filter", inputs: { info: "info", CurrentFilterType: "CurrentFilterType" }, ngImport: i0, template: "@if(CurrentFilterType !== FilterType.DateTimeBetween && CurrentFilterType !== FilterType.IsNull){\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue\" preventEnter name=\"filterValue\" class=\"op-date-time-input\"/>\r\n}\r\n@if(CurrentFilterType === FilterType.DateTimeBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.Start\" preventEnter name=\"Start\" class=\"op-date-time-input\"/>\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.End\" preventEnter name=\"End\" class=\"op-date-time-input\"/>\r\n </ng-container>\r\n}", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.head-row{width:100%}.filter-row{width:fit-content}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{float:right;font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DateTimeFilterComponent, decorators: [{
15
- type: Component,
16
- args: [{ selector: 'tb-date-time-filter', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], standalone: true, imports: [
17
- FormsModule, PreventEnterDirective
18
- ], template: "@if(CurrentFilterType !== FilterType.DateTimeBetween && CurrentFilterType !== FilterType.IsNull){\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue\" preventEnter name=\"filterValue\" class=\"op-date-time-input\"/>\r\n}\r\n@if(CurrentFilterType === FilterType.DateTimeBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.Start\" preventEnter name=\"Start\" class=\"op-date-time-input\"/>\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.End\" preventEnter name=\"End\" class=\"op-date-time-input\"/>\r\n </ng-container>\r\n}", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.head-row{width:100%}.filter-row{width:fit-content}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{float:right;font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"] }]
19
- }], propDecorators: { info: [{
20
- type: Input
21
- }], CurrentFilterType: [{
22
- type: Input
23
- }] } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtdGltZS1maWx0ZXIvZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtdGltZS1maWx0ZXIvZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBYTNELE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsVUFBVSxHQUFHLFdBQVcsQ0FBQztJQUNoQixJQUFJLENBQWlCO0lBQ3JCLGlCQUFpQixDQUFjO3VHQUg3Qix1QkFBdUI7MkZBQXZCLHVCQUF1QixpSkNqQnBDLDJuQkFRQyw4eUJETUcsV0FBVyxnNEJBSEUsQ0FBQyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLENBQUM7OzJGQU10RCx1QkFBdUI7a0JBWG5DLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUVkLHVCQUF1QixDQUFDLE1BQU0saUJBRWhDLENBQUMsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFDLGNBQ3JELElBQUksV0FDUDt3QkFDUCxXQUFXLEVBQUUscUJBQXFCO3FCQUNuQzs4QkFJUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFydGlhbEZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlLCBGaWx0ZXJUeXBlcyB9IGZyb20gJy4uLy4uL2VudW1zL2ZpbHRlclR5cGVzJztcclxuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybXNNb2R1bGUsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUHJldmVudEVudGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGItZGF0ZS10aW1lLWZpbHRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtdGltZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0eWxlVXJsczogWycuLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgdmlld1Byb3ZpZGVyczogW3twcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogTmdGb3JtfV0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGb3Jtc01vZHVsZSwgUHJldmVudEVudGVyRGlyZWN0aXZlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVGaWx0ZXJDb21wb25lbnQge1xyXG4gIEZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlcztcclxuICBASW5wdXQoKSBpbmZvITogUGFydGlhbEZpbHRlcjtcclxuICBASW5wdXQoKSBDdXJyZW50RmlsdGVyVHlwZSE6IEZpbHRlclR5cGU7XHJcbn1cclxuIiwiQGlmKEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLkRhdGVUaW1lQmV0d2VlbiAmJiBDdXJyZW50RmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5Jc051bGwpe1xyXG4gIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlXCIgcHJldmVudEVudGVyIG5hbWU9XCJmaWx0ZXJWYWx1ZVwiIGNsYXNzPVwib3AtZGF0ZS10aW1lLWlucHV0XCIvPlxyXG59XHJcbkBpZihDdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5EYXRlVGltZUJldHdlZW4pe1xyXG4gIDxuZy1jb250YWluZXIgbmdNb2RlbEdyb3VwPVwiZmlsdGVyVmFsdWVcIj5cclxuICAgIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5TdGFydFwiIHByZXZlbnRFbnRlciBuYW1lPVwiU3RhcnRcIiBjbGFzcz1cIm9wLWRhdGUtdGltZS1pbnB1dFwiLz5cclxuICAgIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5FbmRcIiBwcmV2ZW50RW50ZXIgbmFtZT1cIkVuZFwiIGNsYXNzPVwib3AtZGF0ZS10aW1lLWlucHV0XCIvPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG59Il19
@@ -1,64 +0,0 @@
1
- import { Component, ChangeDetectionStrategy, inject, input, computed, output, signal } from '@angular/core';
2
- import { filterTypeMap } from '../../classes/filter-info';
3
- import { TableStore } from '../../classes/table-store';
4
- import { FilterTypes } from '../../enums/filterTypes';
5
- import { FieldType } from '../../interfaces/report-def';
6
- import { MatCardModule } from '@angular/material/card';
7
- import { KeyValuePipe, NgTemplateOutlet } from '@angular/common';
8
- import { FormsModule } from '@angular/forms';
9
- import { PreventEnterDirective, SpaceCasePipe } from '../../../utilities';
10
- import { MatButtonModule } from '@angular/material/button';
11
- import { MatTooltipModule } from '@angular/material/tooltip';
12
- import { MatIconModule } from '@angular/material/icon';
13
- import { MatInputModule } from '@angular/material/input';
14
- import { MatSelectModule } from '@angular/material/select';
15
- import { NumberFilterComponent } from '../number-filter/number-filter.component';
16
- import { DateFilterComponent } from '../date-filter/date-filter.component';
17
- import { DateTimeFilterComponent } from '../date-time-filter/date-time-filter.component';
18
- import { MatRadioModule } from '@angular/material/radio';
19
- import { InFilterComponent } from '../in-filter/in-filter.component';
20
- import { InListFilterComponent } from './in-list/in-list-filter.component';
21
- import * as i0 from "@angular/core";
22
- import * as i1 from "@angular/material/card";
23
- import * as i2 from "@angular/forms";
24
- import * as i3 from "@angular/material/button";
25
- import * as i4 from "@angular/material/tooltip";
26
- import * as i5 from "@angular/material/icon";
27
- import * as i6 from "@angular/material/input";
28
- import * as i7 from "@angular/material/form-field";
29
- import * as i8 from "@angular/material/select";
30
- import * as i9 from "@angular/material/core";
31
- import * as i10 from "@angular/material/radio";
32
- export class FilterComponent {
33
- state = inject(TableStore);
34
- filterTypes = filterTypeMap;
35
- FilterType = FilterTypes;
36
- FieldType = FieldType;
37
- $filter = input.required({
38
- alias: 'filter',
39
- transform: (f) => ({ ...f })
40
- });
41
- close = output();
42
- $enteredFilterType = signal(undefined);
43
- $currentFilterType = computed(() => this.$enteredFilterType() || this.$filter()?.filterType);
44
- $availableFilterTypes = computed(() => this.filterTypes[this.$filter()?.fieldType]);
45
- onEnter(filter, event) {
46
- event.preventDefault();
47
- if (filter.filterValue != null && filter.filterType) {
48
- this.state.addFilter(filter);
49
- this.close.emit();
50
- }
51
- }
52
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
53
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: FilterComponent, isStandalone: true, selector: "tb-filter", inputs: { $filter: { classPropertyName: "$filter", publicName: "filter", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { close: "close" }, ngImport: i0, template: "@let filter = $filter();\r\n@let currentFilterType = $currentFilterType();\r\n\r\n@if (filter) {\r\n<mat-card appearance=\"outlined\" class=\"filter-card\">\r\n <mat-card-content>\r\n <form #form=\"ngForm\" (keydown.enter)=\"onEnter(form.value,$event)\" (keydown.escape)=\"close.emit()\">\r\n <input type=\"hidden\" name=\"filterId\" [ngModel]=\"filter.filterId\" />\r\n <input type=\"hidden\" name=\"key\" [ngModel]=\"filter.key\" />\r\n <input type=\"hidden\" name=\"fieldType\" [ngModel]=\"filter.fieldType\" />\r\n <div class=\"head-row\" >\r\n <h4 class=\"filter-name\">{{(filter.key | spaceCase)}} Filter</h4>\r\n <button class=\"cancel-button small-button\" color=\"primary\" mat-icon-button (click)=\"close.emit();\" type=\"button\"\r\n matTooltip=\"Close\">\r\n <mat-icon class=\"cancel-button\" color=\"primary\">close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"filter-row\">\r\n <div class=\"inline\">\r\n <mat-form-field class=\"my-filter\" >\r\n <mat-select placeholder=\"Select Filter Type\" name=\"filterType\" [ngModel]=\"$currentFilterType()\" (ngModelChange)=\"$enteredFilterType.set($event)\" [panelWidth]=\"null\">\r\n @for (kvp of filterTypes[filter.fieldType]; track kvp) {\r\n <mat-option [value]=\"kvp\">\r\n {{ kvp }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n @if(filter.fieldType === FieldType.String || filter.fieldType === FieldType.Array || filter.fieldType === FieldType.Link ||\r\n filter.fieldType === FieldType.Unknown || filter.fieldType === FieldType.PhoneNumber) {\r\n <ng-container *ngTemplateOutlet=\"String\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Number || filter.fieldType === FieldType.Currency){\r\n <tb-number-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Boolean){\r\n <ng-container *ngTemplateOutlet=\"Boolean\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Date){\r\n <tb-date-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" />\r\n }\r\n @else if(filter.fieldType === FieldType.DateTime){\r\n <tb-date-time-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Enum){\r\n <ng-container *ngTemplateOutlet=\"Enum\" />\r\n }\r\n\r\n @if(currentFilterType === FilterType.IsNull){\r\n <mat-radio-group name=\"filterValue\" [ngModel]=\"filter.filterValue\">\r\n <mat-radio-button [value]=\"true\">True</mat-radio-button>\r\n <mat-radio-button [value]=\"false\">False</mat-radio-button>\r\n </mat-radio-group>\r\n }\r\n </div>\r\n <button mat-button (click)=\"state.addFilter(form.value)\" disableRipple [disabled]=\"form.value.filterValue==undefined || !form.value.filterType\">\r\n Apply\r\n </button>\r\n \r\n \r\n <ng-template #String>\r\n @if(currentFilterType !== FilterType.IsNull && currentFilterType !== FilterType.In){\r\n <mat-form-field class=\"my-filter\">\r\n <input matInput name=\"filterValue\" [ngModel]=\"filter.filterValue\" />\r\n </mat-form-field>\r\n } @else if(currentFilterType === FilterType.In) {\r\n <lib-in-filter [type]=\"FieldType.String\" name='filterValue' [(ngModel)]=\"filter.filterValue\" />\r\n }\r\n </ng-template>\r\n \r\n <ng-template #Boolean >\r\n @if(currentFilterType === FilterType.BooleanEquals){\r\n <div class=\"switch\">\r\n <mat-radio-group name=\"filterValue\" [ngModel]=\"filter.filterValue\" >\r\n <mat-radio-button [value]=\"true\" preventEnter>True</mat-radio-button>\r\n <mat-radio-button [value]=\"false\" preventEnter>False</mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n }\r\n </ng-template>\r\n <ng-template #Enum>\r\n @if(currentFilterType === FilterType.In){\r\n <tb-in-list-filter [key]='filter.key' name='filterValue' [(ngModel)]='filter.filterValue' ></tb-in-list-filter>\r\n\r\n }\r\n </ng-template>\r\n </form>\r\n </mat-card-content>\r\n</mat-card>\r\n}\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.head-row{width:100%}.filter-row{width:fit-content}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{float:right;font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1.MatCardContent, selector: "mat-card-content" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: SpaceCasePipe, name: "spaceCase" }, { 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"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: NumberFilterComponent, selector: "tb-number-filter", inputs: ["CurrentFilterType", "info"] }, { kind: "component", type: DateFilterComponent, selector: "tb-date-filter", inputs: ["info", "CurrentFilterType"] }, { kind: "component", type: DateTimeFilterComponent, selector: "tb-date-time-filter", inputs: ["info", "CurrentFilterType"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i10.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i10.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: InFilterComponent, selector: "lib-in-filter", inputs: ["type"] }, { kind: "component", type: InListFilterComponent, selector: "tb-in-list-filter , [tb-in-list-filter]", inputs: ["key"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
- }
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FilterComponent, decorators: [{
56
- type: Component,
57
- args: [{ selector: 'tb-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
58
- MatCardModule, FormsModule, SpaceCasePipe, MatButtonModule, MatTooltipModule, MatIconModule,
59
- MatInputModule, MatSelectModule, KeyValuePipe, NumberFilterComponent,
60
- DateFilterComponent, DateTimeFilterComponent, MatRadioModule, InFilterComponent, InListFilterComponent,
61
- PreventEnterDirective, NgTemplateOutlet
62
- ], template: "@let filter = $filter();\r\n@let currentFilterType = $currentFilterType();\r\n\r\n@if (filter) {\r\n<mat-card appearance=\"outlined\" class=\"filter-card\">\r\n <mat-card-content>\r\n <form #form=\"ngForm\" (keydown.enter)=\"onEnter(form.value,$event)\" (keydown.escape)=\"close.emit()\">\r\n <input type=\"hidden\" name=\"filterId\" [ngModel]=\"filter.filterId\" />\r\n <input type=\"hidden\" name=\"key\" [ngModel]=\"filter.key\" />\r\n <input type=\"hidden\" name=\"fieldType\" [ngModel]=\"filter.fieldType\" />\r\n <div class=\"head-row\" >\r\n <h4 class=\"filter-name\">{{(filter.key | spaceCase)}} Filter</h4>\r\n <button class=\"cancel-button small-button\" color=\"primary\" mat-icon-button (click)=\"close.emit();\" type=\"button\"\r\n matTooltip=\"Close\">\r\n <mat-icon class=\"cancel-button\" color=\"primary\">close</mat-icon>\r\n </button>\r\n </div>\r\n <div class=\"filter-row\">\r\n <div class=\"inline\">\r\n <mat-form-field class=\"my-filter\" >\r\n <mat-select placeholder=\"Select Filter Type\" name=\"filterType\" [ngModel]=\"$currentFilterType()\" (ngModelChange)=\"$enteredFilterType.set($event)\" [panelWidth]=\"null\">\r\n @for (kvp of filterTypes[filter.fieldType]; track kvp) {\r\n <mat-option [value]=\"kvp\">\r\n {{ kvp }}\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n @if(filter.fieldType === FieldType.String || filter.fieldType === FieldType.Array || filter.fieldType === FieldType.Link ||\r\n filter.fieldType === FieldType.Unknown || filter.fieldType === FieldType.PhoneNumber) {\r\n <ng-container *ngTemplateOutlet=\"String\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Number || filter.fieldType === FieldType.Currency){\r\n <tb-number-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Boolean){\r\n <ng-container *ngTemplateOutlet=\"Boolean\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Date){\r\n <tb-date-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" />\r\n }\r\n @else if(filter.fieldType === FieldType.DateTime){\r\n <tb-date-time-filter [info]=\"filter\" [CurrentFilterType]=\"currentFilterType!\" />\r\n }\r\n @else if(filter.fieldType === FieldType.Enum){\r\n <ng-container *ngTemplateOutlet=\"Enum\" />\r\n }\r\n\r\n @if(currentFilterType === FilterType.IsNull){\r\n <mat-radio-group name=\"filterValue\" [ngModel]=\"filter.filterValue\">\r\n <mat-radio-button [value]=\"true\">True</mat-radio-button>\r\n <mat-radio-button [value]=\"false\">False</mat-radio-button>\r\n </mat-radio-group>\r\n }\r\n </div>\r\n <button mat-button (click)=\"state.addFilter(form.value)\" disableRipple [disabled]=\"form.value.filterValue==undefined || !form.value.filterType\">\r\n Apply\r\n </button>\r\n \r\n \r\n <ng-template #String>\r\n @if(currentFilterType !== FilterType.IsNull && currentFilterType !== FilterType.In){\r\n <mat-form-field class=\"my-filter\">\r\n <input matInput name=\"filterValue\" [ngModel]=\"filter.filterValue\" />\r\n </mat-form-field>\r\n } @else if(currentFilterType === FilterType.In) {\r\n <lib-in-filter [type]=\"FieldType.String\" name='filterValue' [(ngModel)]=\"filter.filterValue\" />\r\n }\r\n </ng-template>\r\n \r\n <ng-template #Boolean >\r\n @if(currentFilterType === FilterType.BooleanEquals){\r\n <div class=\"switch\">\r\n <mat-radio-group name=\"filterValue\" [ngModel]=\"filter.filterValue\" >\r\n <mat-radio-button [value]=\"true\" preventEnter>True</mat-radio-button>\r\n <mat-radio-button [value]=\"false\" preventEnter>False</mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n }\r\n </ng-template>\r\n <ng-template #Enum>\r\n @if(currentFilterType === FilterType.In){\r\n <tb-in-list-filter [key]='filter.key' name='filterValue' [(ngModel)]='filter.filterValue' ></tb-in-list-filter>\r\n\r\n }\r\n </ng-template>\r\n </form>\r\n </mat-card-content>\r\n</mat-card>\r\n}\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.my-filter{margin-right:15px}.cancel-button{float:right}.head-row{width:100%}.filter-row{width:fit-content}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{float:right;font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"] }]
63
- }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVHLE9BQU8sRUFBRSxhQUFhLEVBQTZCLE1BQU0sMkJBQTJCLENBQUM7QUFDckYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7OztBQWUzRSxNQUFNLE9BQU8sZUFBZTtJQUNoQixLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXJDLFdBQVcsR0FBRyxhQUFhLENBQUM7SUFDNUIsVUFBVSxHQUFHLFdBQVcsQ0FBQztJQUN6QixTQUFTLEdBQUcsU0FBUyxDQUFDO0lBRXRCLE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUErQjtRQUNyRCxLQUFLLEVBQUUsUUFBUTtRQUNmLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7S0FDN0IsQ0FBQyxDQUFDO0lBRUgsS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBRWpCLGtCQUFrQixHQUFHLE1BQU0sQ0FBeUIsU0FBUyxDQUFDLENBQUM7SUFDL0Qsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM5RixxQkFBcUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUVwRixPQUFPLENBQUMsTUFBa0IsRUFBRSxLQUFVO1FBQ3BDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLE1BQU0sQ0FBQyxXQUFXLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO3VHQXhCVSxlQUFlOzJGQUFmLGVBQWUsME9DbEM1Qiw4OUlBMkZBLDh5QkQvRE0sYUFBYSwwTkFBRSxXQUFXLG1pQ0FBRSxhQUFhLGlEQUFFLGVBQWUsd1VBQUUsZ0JBQWdCLDRUQUFFLGFBQWEsbUxBQzNGLGNBQWMscWpCQUFFLGVBQWUsb3JCQUFnQixxQkFBcUIsb0dBQ3BFLG1CQUFtQixrR0FBRSx1QkFBdUIsc0dBQUUsY0FBYyx1bEJBQUUsaUJBQWlCLDRFQUFFLHFCQUFxQixxR0FDL0UsZ0JBQWdCOzsyRkFHaEMsZUFBZTtrQkFiM0IsU0FBUzsrQkFDSSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGFBQWEsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhO3dCQUMzRixjQUFjLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxxQkFBcUI7d0JBQ3BFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUI7d0JBQ3RHLHFCQUFxQixFQUFFLGdCQUFnQjtxQkFDeEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBpbmplY3QsIGlucHV0LCBjb21wdXRlZCwgb3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZmlsdGVyVHlwZU1hcCwgRmlsdGVySW5mbywgUGFydGlhbEZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IEZpbHRlclR5cGUsIEZpbHRlclR5cGVzIH0gZnJvbSAnLi4vLi4vZW51bXMvZmlsdGVyVHlwZXMnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7IEtleVZhbHVlUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBQcmV2ZW50RW50ZXJEaXJlY3RpdmUsIFNwYWNlQ2FzZVBpcGUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IE51bWJlckZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL251bWJlci1maWx0ZXIvbnVtYmVyLWZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS1maWx0ZXIvZGF0ZS1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZVRpbWVGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9kYXRlLXRpbWUtZmlsdGVyL2RhdGUtdGltZS1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XHJcbmltcG9ydCB7IEluRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vaW4tZmlsdGVyL2luLWZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbkxpc3RGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2luLWxpc3QvaW4tbGlzdC1maWx0ZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd0Yi1maWx0ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgTWF0Q2FyZE1vZHVsZSwgRm9ybXNNb2R1bGUsIFNwYWNlQ2FzZVBpcGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0VG9vbHRpcE1vZHVsZSwgTWF0SWNvbk1vZHVsZSxcclxuICAgICAgTWF0SW5wdXRNb2R1bGUsIE1hdFNlbGVjdE1vZHVsZSwgS2V5VmFsdWVQaXBlLCBOdW1iZXJGaWx0ZXJDb21wb25lbnQsXHJcbiAgICAgIERhdGVGaWx0ZXJDb21wb25lbnQsIERhdGVUaW1lRmlsdGVyQ29tcG9uZW50LCBNYXRSYWRpb01vZHVsZSwgSW5GaWx0ZXJDb21wb25lbnQsIEluTGlzdEZpbHRlckNvbXBvbmVudCxcclxuICAgICAgUHJldmVudEVudGVyRGlyZWN0aXZlLCBOZ1RlbXBsYXRlT3V0bGV0XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDb21wb25lbnQ8VCBleHRlbmRzIEZpZWxkVHlwZT4ge1xyXG4gIHByb3RlY3RlZCBzdGF0ZSA9IGluamVjdChUYWJsZVN0b3JlKTtcclxuXHJcbiAgZmlsdGVyVHlwZXMgPSBmaWx0ZXJUeXBlTWFwO1xyXG4gIEZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlcztcclxuICBGaWVsZFR5cGUgPSBGaWVsZFR5cGU7XHJcblxyXG4gICRmaWx0ZXIgPSBpbnB1dC5yZXF1aXJlZDxQYXJ0aWFsRmlsdGVyLCBQYXJ0aWFsRmlsdGVyPih7IFxyXG4gICAgYWxpYXM6ICdmaWx0ZXInLFxyXG4gICAgdHJhbnNmb3JtOiAoZikgPT4gKHsgLi4uZiB9KVxyXG4gIH0pO1xyXG5cclxuICBjbG9zZSA9IG91dHB1dCgpO1xyXG5cclxuICAkZW50ZXJlZEZpbHRlclR5cGUgPSBzaWduYWw8RmlsdGVyVHlwZSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuICAkY3VycmVudEZpbHRlclR5cGUgPSBjb21wdXRlZCgoKSA9PiAgdGhpcy4kZW50ZXJlZEZpbHRlclR5cGUoKSB8fCB0aGlzLiRmaWx0ZXIoKT8uZmlsdGVyVHlwZSk7XHJcbiAgJGF2YWlsYWJsZUZpbHRlclR5cGVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5maWx0ZXJUeXBlc1t0aGlzLiRmaWx0ZXIoKT8uZmllbGRUeXBlXSk7XHJcblxyXG4gIG9uRW50ZXIoZmlsdGVyOiBGaWx0ZXJJbmZvLCBldmVudDogYW55KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgaWYgKGZpbHRlci5maWx0ZXJWYWx1ZSAhPSBudWxsICYmIGZpbHRlci5maWx0ZXJUeXBlKSB7XHJcbiAgICAgIHRoaXMuc3RhdGUuYWRkRmlsdGVyKGZpbHRlcik7XHJcbiAgICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJAbGV0IGZpbHRlciA9ICRmaWx0ZXIoKTtcclxuQGxldCBjdXJyZW50RmlsdGVyVHlwZSA9ICRjdXJyZW50RmlsdGVyVHlwZSgpO1xyXG5cclxuQGlmIChmaWx0ZXIpIHtcclxuPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwiZmlsdGVyLWNhcmRcIj5cclxuICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgIDxmb3JtICNmb3JtPVwibmdGb3JtXCIgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXIoZm9ybS52YWx1ZSwkZXZlbnQpXCIgKGtleWRvd24uZXNjYXBlKT1cImNsb3NlLmVtaXQoKVwiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJmaWx0ZXJJZFwiIFtuZ01vZGVsXT1cImZpbHRlci5maWx0ZXJJZFwiIC8+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImtleVwiIFtuZ01vZGVsXT1cImZpbHRlci5rZXlcIiAvPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJmaWVsZFR5cGVcIiBbbmdNb2RlbF09XCJmaWx0ZXIuZmllbGRUeXBlXCIgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWQtcm93XCIgPlxyXG4gICAgICAgIDxoNCBjbGFzcz1cImZpbHRlci1uYW1lXCI+e3soZmlsdGVyLmtleSB8IHNwYWNlQ2FzZSl9fSBGaWx0ZXI8L2g0PlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjYW5jZWwtYnV0dG9uIHNtYWxsLWJ1dHRvblwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2xvc2UuZW1pdCgpO1wiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiQ2xvc2VcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIiBjb2xvcj1cInByaW1hcnlcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlubGluZVwiPlxyXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJteS1maWx0ZXJcIiA+XHJcbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgRmlsdGVyIFR5cGVcIiBuYW1lPVwiZmlsdGVyVHlwZVwiICBbbmdNb2RlbF09XCIkY3VycmVudEZpbHRlclR5cGUoKVwiIChuZ01vZGVsQ2hhbmdlKT1cIiRlbnRlcmVkRmlsdGVyVHlwZS5zZXQoJGV2ZW50KVwiIFtwYW5lbFdpZHRoXT1cIm51bGxcIj5cclxuICAgICAgICAgICAgICAgICAgQGZvciAoa3ZwIG9mIGZpbHRlclR5cGVzW2ZpbHRlci5maWVsZFR5cGVdOyB0cmFjayBrdnApIHtcclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwia3ZwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7eyBrdnAgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgQGlmKGZpbHRlci5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5TdHJpbmcgfHwgZmlsdGVyLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkFycmF5IHx8IGZpbHRlci5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5MaW5rIHx8XHJcbiAgICAgICAgICBmaWx0ZXIuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuVW5rbm93biB8fCBmaWx0ZXIuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuUGhvbmVOdW1iZXIpIHtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIlN0cmluZ1wiIC8+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAZWxzZSBpZihmaWx0ZXIuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuTnVtYmVyIHx8IGZpbHRlci5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5DdXJyZW5jeSl7XHJcbiAgICAgICAgICAgIDx0Yi1udW1iZXItZmlsdGVyIFtpbmZvXT1cImZpbHRlclwiIFtDdXJyZW50RmlsdGVyVHlwZV09XCJjdXJyZW50RmlsdGVyVHlwZSFcIiAvPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGVsc2UgaWYoZmlsdGVyLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkJvb2xlYW4pe1xyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiQm9vbGVhblwiIC8+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAZWxzZSBpZihmaWx0ZXIuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRGF0ZSl7XHJcbiAgICAgICAgICAgIDx0Yi1kYXRlLWZpbHRlciBbaW5mb109XCJmaWx0ZXJcIiBbQ3VycmVudEZpbHRlclR5cGVdPVwiY3VycmVudEZpbHRlclR5cGUhXCIgLz5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBlbHNlIGlmKGZpbHRlci5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5EYXRlVGltZSl7XHJcbiAgICAgICAgICAgIDx0Yi1kYXRlLXRpbWUtZmlsdGVyIFtpbmZvXT1cImZpbHRlclwiIFtDdXJyZW50RmlsdGVyVHlwZV09XCJjdXJyZW50RmlsdGVyVHlwZSFcIiAvPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGVsc2UgaWYoZmlsdGVyLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkVudW0pe1xyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRW51bVwiIC8+XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgQGlmKGN1cnJlbnRGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLklzTnVsbCl7XHJcbiAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgbmFtZT1cImZpbHRlclZhbHVlXCIgW25nTW9kZWxdPVwiZmlsdGVyLmZpbHRlclZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cInRydWVcIj5UcnVlPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJmYWxzZVwiPkZhbHNlPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwic3RhdGUuYWRkRmlsdGVyKGZvcm0udmFsdWUpXCIgZGlzYWJsZVJpcHBsZSBbZGlzYWJsZWRdPVwiZm9ybS52YWx1ZS5maWx0ZXJWYWx1ZT09dW5kZWZpbmVkIHx8ICFmb3JtLnZhbHVlLmZpbHRlclR5cGVcIj5cclxuICAgICAgICBBcHBseVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIFxyXG4gICAgXHJcbiAgICA8bmctdGVtcGxhdGUgI1N0cmluZz5cclxuICAgICAgQGlmKGN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLklzTnVsbCAmJiBjdXJyZW50RmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5Jbil7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibXktZmlsdGVyXCI+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgbmFtZT1cImZpbHRlclZhbHVlXCIgW25nTW9kZWxdPVwiZmlsdGVyLmZpbHRlclZhbHVlXCIgLz5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICB9IEBlbHNlIGlmKGN1cnJlbnRGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLkluKSB7XHJcbiAgICAgICAgPGxpYi1pbi1maWx0ZXIgW3R5cGVdPVwiRmllbGRUeXBlLlN0cmluZ1wiIG5hbWU9J2ZpbHRlclZhbHVlJyBbKG5nTW9kZWwpXT1cImZpbHRlci5maWx0ZXJWYWx1ZVwiIC8+XHJcbiAgICAgIH1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICBcclxuICAgIDxuZy10ZW1wbGF0ZSAjQm9vbGVhbiA+XHJcbiAgICAgIEBpZihjdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5Cb29sZWFuRXF1YWxzKXtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3dpdGNoXCI+XHJcbiAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIG5hbWU9XCJmaWx0ZXJWYWx1ZVwiIFtuZ01vZGVsXT1cImZpbHRlci5maWx0ZXJWYWx1ZVwiID5cclxuICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cInRydWVcIiBwcmV2ZW50RW50ZXI+VHJ1ZTwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cImZhbHNlXCIgcHJldmVudEVudGVyPkZhbHNlPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI0VudW0+XHJcbiAgICAgIEBpZihjdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5Jbil7XHJcbiAgICAgICAgPHRiLWluLWxpc3QtZmlsdGVyIFtrZXldPSdmaWx0ZXIua2V5JyBuYW1lPSdmaWx0ZXJWYWx1ZScgWyhuZ01vZGVsKV09J2ZpbHRlci5maWx0ZXJWYWx1ZScgPjwvdGItaW4tbGlzdC1maWx0ZXI+XHJcblxyXG4gICAgICB9XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbWF0LWNhcmQtY29udGVudD5cclxuPC9tYXQtY2FyZD5cclxufVxyXG4iXX0=
@@ -1,102 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, inject } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { map, tap } from 'rxjs/operators';
4
- import { TableStore } from '../../../classes/table-store';
5
- import { FieldType } from '../../../interfaces/report-def';
6
- import { AsyncPipe, KeyValuePipe } from '@angular/common';
7
- import { MatCheckboxModule } from '@angular/material/checkbox';
8
- import { SpaceCasePipe, StopPropagationDirective } from '../../../../utilities';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "@angular/material/checkbox";
11
- export class InListFilterComponent {
12
- ref = inject(ChangeDetectorRef);
13
- tableState = inject(TableStore);
14
- value = [];
15
- FieldType = FieldType;
16
- writeValue(obj) {
17
- this.value = obj;
18
- if (this.value) {
19
- this.selectedKeys = this.value.map(f => f);
20
- }
21
- this.ref.markForCheck();
22
- }
23
- onChange = (_) => { };
24
- registerOnChange(fn) {
25
- this.onChange = fn;
26
- }
27
- onTouched = () => { };
28
- registerOnTouched(fn) {
29
- this.onTouched = fn;
30
- }
31
- key;
32
- keyValues$;
33
- selectedKeys = [];
34
- metaData;
35
- ngOnInit() {
36
- this.keyValues$ = this.tableState.getMetaData$(this.key).pipe(tap(metaData => this.metaData = metaData), map(metaData => {
37
- if (metaData.additional?.filterOptions?.filterableValues) {
38
- return metaData.additional.filterOptions.filterableValues.reduce((prev, cur) => { prev[cur] = cur; return prev; }, {});
39
- }
40
- else {
41
- if (metaData.fieldType === FieldType.Enum) {
42
- return metaData.additional.enumMap;
43
- }
44
- }
45
- return {};
46
- }));
47
- }
48
- selectFilterChanged($event, val) {
49
- if ($event.checked) {
50
- this.selectedKeys = [...this.selectedKeys, val];
51
- }
52
- else {
53
- this.selectedKeys = this.selectedKeys.filter(item => item !== val);
54
- }
55
- this.value = this.selectedKeys;
56
- this.onChange(this.value);
57
- }
58
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: InListFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
59
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: InListFilterComponent, isStandalone: true, selector: "tb-in-list-filter , [tb-in-list-filter]", inputs: { key: "key" }, providers: [{
60
- provide: NG_VALUE_ACCESSOR,
61
- useExisting: InListFilterComponent,
62
- multi: true
63
- }], ngImport: i0, template: `
64
- @for (item of keyValues$ | async| keyvalue; track item.key) {
65
- <div>
66
- <mat-checkbox [checked]='selectedKeys.includes(item.key)' stop-propagation (change)='selectFilterChanged($event, item.key)' >
67
- {{metaData.fieldType === FieldType.Enum ? (item.value | spaceCase) : item.value}}
68
- </mat-checkbox>
69
- </div>
70
- }
71
-
72
- `, isInline: true, dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: StopPropagationDirective, selector: "[stop-propagation]" }, { kind: "pipe", type: SpaceCasePipe, name: "spaceCase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73
- }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: InListFilterComponent, decorators: [{
75
- type: Component,
76
- args: [{
77
- selector: 'tb-in-list-filter , [tb-in-list-filter]',
78
- template: `
79
- @for (item of keyValues$ | async| keyvalue; track item.key) {
80
- <div>
81
- <mat-checkbox [checked]='selectedKeys.includes(item.key)' stop-propagation (change)='selectFilterChanged($event, item.key)' >
82
- {{metaData.fieldType === FieldType.Enum ? (item.value | spaceCase) : item.value}}
83
- </mat-checkbox>
84
- </div>
85
- }
86
-
87
- `,
88
- changeDetection: ChangeDetectionStrategy.OnPush,
89
- providers: [{
90
- provide: NG_VALUE_ACCESSOR,
91
- useExisting: InListFilterComponent,
92
- multi: true
93
- }],
94
- standalone: true,
95
- imports: [
96
- AsyncPipe, KeyValuePipe, MatCheckboxModule, StopPropagationDirective, SpaceCasePipe
97
- ]
98
- }]
99
- }], propDecorators: { key: [{
100
- type: Input
101
- }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tbGlzdC1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9maWx0ZXIvaW4tbGlzdC9pbi1saXN0LWZpbHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQW9CLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQXdCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFMUQsT0FBTyxFQUFFLFNBQVMsRUFBWSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUEwQmhGLE1BQU0sT0FBTyxxQkFBcUI7SUFDeEIsR0FBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2hDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFeEMsS0FBSyxHQUFhLEVBQUUsQ0FBQztJQUNyQixTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQ3RCLFVBQVUsQ0FBQyxHQUFhO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO1FBRWpCLElBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFD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Q0FBQzs0QkFDVixPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHVCQUF1Qjs0QkFDbEMsS0FBSyxFQUFFLElBQUk7eUJBQ1osQ0FBQztvQkFDRixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNQLFNBQVMsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsYUFBYTtxQkFDcEY7aUJBQ0Y7OEJBeUJVLEdBQUc7c0JBQVgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnknO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUsIE1ldGFEYXRhIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBLZXlWYWx1ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgU3BhY2VDYXNlUGlwZSwgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RiLWluLWxpc3QtZmlsdGVyICwgW3RiLWluLWxpc3QtZmlsdGVyXScsXHJcbiAgdGVtcGxhdGU6IGBcclxuICBAZm9yIChpdGVtIG9mIGtleVZhbHVlcyQgfCBhc3luY3wga2V5dmFsdWU7IHRyYWNrIGl0ZW0ua2V5KSB7XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8bWF0LWNoZWNrYm94IFtjaGVja2VkXT0nc2VsZWN0ZWRLZXlzLmluY2x1ZGVzKGl0ZW0ua2V5KScgc3RvcC1wcm9wYWdhdGlvbiAoY2hhbmdlKT0nc2VsZWN0RmlsdGVyQ2hhbmdlZCgkZXZlbnQsIGl0ZW0ua2V5KScgPlxyXG4gICAgICAgIHt7bWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRW51bSA/IChpdGVtLnZhbHVlIHwgc3BhY2VDYXNlKSA6IGl0ZW0udmFsdWV9fVxyXG4gICAgICA8L21hdC1jaGVja2JveD5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuXHJcbiAgYCxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIHVzZUV4aXN0aW5nOiBJbkxpc3RGaWx0ZXJDb21wb25lbnQsXHJcbiAgICBtdWx0aTogdHJ1ZVxyXG4gIH1dLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQXN5bmNQaXBlLCBLZXlWYWx1ZVBpcGUsIE1hdENoZWNrYm94TW9kdWxlLCBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUsIFNwYWNlQ2FzZVBpcGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbkxpc3RGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcHJpdmF0ZSByZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgdGFibGVTdGF0ZSA9IGluamVjdChUYWJsZVN0b3JlKTtcclxuXHJcbiAgdmFsdWU6IHN0cmluZ1tdID0gW107XHJcbiAgRmllbGRUeXBlID0gRmllbGRUeXBlO1xyXG4gIHdyaXRlVmFsdWUob2JqOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IG9iajtcclxuXHJcbiAgICBpZih0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRLZXlzID0gdGhpcy52YWx1ZS5tYXAoIGYgPT4gZiApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuICBASW5wdXQoKSBrZXkhOiBzdHJpbmc7XHJcblxyXG4gIGtleVZhbHVlcyQhIDogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PHN0cmluZz4+O1xyXG4gIHNlbGVjdGVkS2V5cyA6IHN0cmluZ1tdID0gW107XHJcbiAgbWV0YURhdGEhOiBNZXRhRGF0YTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmtleVZhbHVlcyQgPSB0aGlzLnRhYmxlU3RhdGUuZ2V0TWV0YURhdGEkKHRoaXMua2V5KS5waXBlKFxyXG4gICAgICB0YXAobWV0YURhdGEgPT4gdGhpcy5tZXRhRGF0YSA9IG1ldGFEYXRhKSxcclxuICAgICAgbWFwKCBtZXRhRGF0YSA9PiB7XHJcbiAgICAgICAgaWYobWV0YURhdGEuYWRkaXRpb25hbD8uZmlsdGVyT3B0aW9ucz8uZmlsdGVyYWJsZVZhbHVlcyApIHtcclxuICAgICAgICAgIHJldHVybiAgbWV0YURhdGEuYWRkaXRpb25hbC5maWx0ZXJPcHRpb25zLmZpbHRlcmFibGVWYWx1ZXMucmVkdWNlKCAocHJldjogYW55LCBjdXIpPT4geyBwcmV2W2N1cl0gPSBjdXI7IHJldHVybiBwcmV2IH0sIHt9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYobWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRW51bSApIHtcclxuICAgICAgICAgICAgcmV0dXJuIG1ldGFEYXRhLmFkZGl0aW9uYWwhLmVudW1NYXA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7fTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RGaWx0ZXJDaGFuZ2VkKCRldmVudCwgdmFsKSB7XHJcbiAgICBpZigkZXZlbnQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkS2V5cyA9IFsuLi50aGlzLnNlbGVjdGVkS2V5cywgdmFsXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRLZXlzID0gdGhpcy5zZWxlY3RlZEtleXMuZmlsdGVyKCBpdGVtID0+IGl0ZW0gIT09IHZhbCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuc2VsZWN0ZWRLZXlzO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==