@one-paragon/angular-utilities 1.1.8 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (404) hide show
  1. package/action-state/action-state-spinner/action-state-spinner.component.d.ts +12 -0
  2. package/action-state/action-state-ui/action-state-ui.module.d.ts +7 -0
  3. package/{src/action-state/index.ts → action-state/index.d.ts} +4 -8
  4. package/action-state/ngrx-ext/ngrx-ext.module.d.ts +8 -0
  5. package/action-state/ngrx.d.ts +31 -0
  6. package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +24 -0
  7. package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +20 -0
  8. package/esm2022/action-state/index.mjs +8 -0
  9. package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +23 -0
  10. package/esm2022/action-state/ngrx.mjs +42 -0
  11. package/esm2022/http-request-state/HttpRequestStateFactory.mjs +52 -0
  12. package/esm2022/http-request-state/HttpRequestStateStore.mjs +101 -0
  13. package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +34 -0
  14. package/esm2022/http-request-state/directives/http-error-state-directive.mjs +29 -0
  15. package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +29 -0
  16. package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +29 -0
  17. package/esm2022/http-request-state/directives/http-success-state-directive.mjs +34 -0
  18. package/esm2022/http-request-state/directives/index.mjs +6 -0
  19. package/esm2022/http-request-state/directives/request-state-directive.mjs +60 -0
  20. package/esm2022/http-request-state/helpers.mjs +22 -0
  21. package/esm2022/http-request-state/http-request-state.mjs +39 -0
  22. package/esm2022/http-request-state/http-state-module.mjs +40 -0
  23. package/esm2022/http-request-state/index.mjs +7 -0
  24. package/esm2022/http-request-state/rxjs/getRequestorBody.mjs +4 -0
  25. package/esm2022/http-request-state/rxjs/getRequestorState.mjs +3 -0
  26. package/esm2022/http-request-state/rxjs/index.mjs +5 -0
  27. package/esm2022/http-request-state/rxjs/tapError.mjs +12 -0
  28. package/esm2022/http-request-state/rxjs/tapSuccess.mjs +12 -0
  29. package/esm2022/http-request-state/types.mjs +16 -0
  30. package/esm2022/ngrx/actionable-selector.mjs +73 -0
  31. package/esm2022/ngrx/index.mjs +2 -0
  32. package/esm2022/one-paragon-angular-utilities.mjs +5 -0
  33. package/esm2022/public-api.mjs +20 -0
  34. package/esm2022/rxjs/defaultShareReplay.mjs +7 -0
  35. package/esm2022/rxjs/index.mjs +6 -0
  36. package/esm2022/rxjs/mapError.mjs +8 -0
  37. package/esm2022/rxjs/rxjs-operators.mjs +92 -0
  38. package/esm2022/rxjs/subjectifier.mjs +15 -0
  39. package/esm2022/rxjs/subscriber.directive.mjs +52 -0
  40. package/esm2022/table-builder/classes/DefaultSettings.mjs +6 -0
  41. package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +21 -0
  42. package/esm2022/table-builder/classes/TableBuilderConfig.mjs +18 -0
  43. package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +50 -0
  44. package/esm2022/table-builder/classes/TableState.mjs +47 -0
  45. package/esm2022/table-builder/classes/display-col.mjs +2 -0
  46. package/esm2022/table-builder/classes/filter-info.mjs +73 -0
  47. package/esm2022/table-builder/classes/table-builder-general-settings.mjs +107 -0
  48. package/esm2022/table-builder/classes/table-builder.mjs +74 -0
  49. package/esm2022/table-builder/classes/table-store.mjs +357 -0
  50. package/esm2022/table-builder/components/array-column.component.mjs +57 -0
  51. package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +125 -0
  52. package/esm2022/table-builder/components/column-builder/column-helpers.mjs +26 -0
  53. package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +29 -0
  54. package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +24 -0
  55. package/esm2022/table-builder/components/filter/filter.component.mjs +67 -0
  56. package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +101 -0
  57. package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +53 -0
  58. package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +225 -0
  59. package/esm2022/table-builder/components/generic-table/paginator.component.mjs +94 -0
  60. package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +23 -0
  61. package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +100 -0
  62. package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +64 -0
  63. package/esm2022/table-builder/components/index.mjs +10 -0
  64. package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +40 -0
  65. package/esm2022/table-builder/components/link-column.component.mjs +78 -0
  66. package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +29 -0
  67. package/esm2022/table-builder/components/profiles-menu/profiles-menu.component.mjs +66 -0
  68. package/esm2022/table-builder/components/scroll-strategy.mjs +68 -0
  69. package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +44 -0
  70. package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +81 -0
  71. package/esm2022/table-builder/components/table-container/table-container-imports.mjs +26 -0
  72. package/esm2022/table-builder/components/table-container/table-container.helpers/data-state.helpers.mjs +135 -0
  73. package/esm2022/table-builder/components/table-container/table-container.helpers/filter-state.helpers.mjs +83 -0
  74. package/esm2022/table-builder/components/table-container/table-container.helpers/groupBy.helpers.mjs +71 -0
  75. package/esm2022/table-builder/components/table-container/table-container.helpers/sort-state.helpers.mjs +36 -0
  76. package/esm2022/table-builder/components/table-container/table-container.mjs +287 -0
  77. package/esm2022/table-builder/components/table-container/tableProps.mjs +7 -0
  78. package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +119 -0
  79. package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +47 -0
  80. package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +36 -0
  81. package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +25 -0
  82. package/esm2022/table-builder/directives/custom-cell-directive.mjs +70 -0
  83. package/esm2022/table-builder/directives/index.mjs +6 -0
  84. package/esm2022/table-builder/directives/multi-sort.directive.mjs +50 -0
  85. package/esm2022/table-builder/directives/resize-column.directive.mjs +88 -0
  86. package/esm2022/table-builder/directives/table-wrapper.directive.mjs +20 -0
  87. package/esm2022/table-builder/directives/tb-filter.directive.mjs +410 -0
  88. package/esm2022/table-builder/enums/filterTypes.mjs +72 -0
  89. package/esm2022/table-builder/functions/boolean-filter-function.mjs +10 -0
  90. package/esm2022/table-builder/functions/date-filter-function.mjs +58 -0
  91. package/esm2022/table-builder/functions/download-data.mjs +12 -0
  92. package/esm2022/table-builder/functions/null-filter-function.mjs +8 -0
  93. package/esm2022/table-builder/functions/number-filter-function.mjs +32 -0
  94. package/esm2022/table-builder/functions/sort-data-function.mjs +17 -0
  95. package/esm2022/table-builder/functions/string-filter-function.mjs +41 -0
  96. package/esm2022/table-builder/interfaces/ColumnInfo.mjs +2 -0
  97. package/esm2022/table-builder/interfaces/dictionary.mjs +2 -0
  98. package/esm2022/table-builder/interfaces/report-def.mjs +50 -0
  99. package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +154 -0
  100. package/esm2022/table-builder/pipes/column-total.pipe.mjs +22 -0
  101. package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +18 -0
  102. package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +45 -0
  103. package/esm2022/table-builder/pipes/key-display.mjs +20 -0
  104. package/esm2022/table-builder/services/export-to-csv.service.mjs +91 -0
  105. package/esm2022/table-builder/services/link-creator.service.mjs +50 -0
  106. package/esm2022/table-builder/services/table-template-service.mjs +57 -0
  107. package/esm2022/table-builder/services/transform-creator.mjs +105 -0
  108. package/esm2022/table-builder/table-builder.module.mjs +124 -0
  109. package/esm2022/utilities/array-helpers.mjs +14 -0
  110. package/esm2022/utilities/directives/auto-focus.directive.mjs +27 -0
  111. package/esm2022/utilities/directives/clickEmitterDirective.mjs +22 -0
  112. package/esm2022/utilities/directives/clickSubject.mjs +28 -0
  113. package/esm2022/utilities/directives/conditional-classes.directive.mjs +36 -0
  114. package/esm2022/utilities/directives/dialog-service.mjs +23 -0
  115. package/esm2022/utilities/directives/dialog.mjs +146 -0
  116. package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +60 -0
  117. package/esm2022/utilities/directives/prevent-enter.directive.mjs +20 -0
  118. package/esm2022/utilities/directives/stop-propagation.directive.mjs +26 -0
  119. package/esm2022/utilities/directives/styler.mjs +42 -0
  120. package/esm2022/utilities/directives/trim-whitespace.directive.mjs +30 -0
  121. package/esm2022/utilities/index.mjs +16 -0
  122. package/esm2022/utilities/module.mjs +90 -0
  123. package/esm2022/utilities/pipes/function.pipe.mjs +22 -0
  124. package/esm2022/utilities/pipes/phone.pipe.mjs +20 -0
  125. package/esm2022/utilities/pipes/space-case.pipes.mjs +28 -0
  126. package/fesm2022/one-paragon-angular-utilities.mjs +5564 -0
  127. package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -0
  128. package/http-request-state/HttpRequestStateFactory.d.ts +17 -0
  129. package/http-request-state/HttpRequestStateStore.d.ts +49 -0
  130. package/http-request-state/directives/HttpStateDirectiveBase.d.ts +16 -0
  131. package/http-request-state/directives/http-error-state-directive.d.ts +12 -0
  132. package/http-request-state/directives/http-inProgress-state-directive.d.ts +12 -0
  133. package/http-request-state/directives/http-notStarted-state-directive.d.ts +12 -0
  134. package/http-request-state/directives/http-success-state-directive.d.ts +21 -0
  135. package/{src/http-request-state/directives/index.ts → http-request-state/directives/index.d.ts} +5 -5
  136. package/http-request-state/directives/request-state-directive.d.ts +35 -0
  137. package/http-request-state/helpers.d.ts +9 -0
  138. package/http-request-state/http-request-state.d.ts +12 -0
  139. package/http-request-state/http-state-module.d.ts +11 -0
  140. package/{src/http-request-state/index.ts → http-request-state/index.d.ts} +6 -6
  141. package/http-request-state/rxjs/getRequestorBody.d.ts +3 -0
  142. package/http-request-state/rxjs/getRequestorState.d.ts +3 -0
  143. package/{src/http-request-state/rxjs/index.ts → http-request-state/rxjs/index.d.ts} +4 -4
  144. package/http-request-state/rxjs/tapError.d.ts +3 -0
  145. package/http-request-state/rxjs/tapSuccess.d.ts +3 -0
  146. package/http-request-state/types.d.ts +41 -0
  147. package/index.d.ts +5 -0
  148. package/ngrx/actionable-selector.d.ts +17 -0
  149. package/ngrx/index.d.ts +1 -0
  150. package/package.json +30 -16
  151. package/{src/public-api.ts → public-api.d.ts} +16 -35
  152. package/rxjs/defaultShareReplay.d.ts +2 -0
  153. package/{src/rxjs/index.ts → rxjs/index.d.ts} +5 -5
  154. package/rxjs/mapError.d.ts +2 -0
  155. package/rxjs/rxjs-operators.d.ts +13 -0
  156. package/rxjs/subjectifier.d.ts +9 -0
  157. package/rxjs/subscriber.directive.d.ts +14 -0
  158. package/table-builder/classes/DefaultSettings.d.ts +9 -0
  159. package/table-builder/classes/MatTableObservableDataSource.d.ts +9 -0
  160. package/table-builder/classes/TableBuilderConfig.d.ts +21 -0
  161. package/table-builder/classes/TableBuilderDataSource.d.ts +14 -0
  162. package/table-builder/classes/TableState.d.ts +56 -0
  163. package/{src/table-builder/classes/display-col.ts → table-builder/classes/display-col.d.ts} +5 -5
  164. package/table-builder/classes/filter-info.d.ts +127 -0
  165. package/table-builder/classes/table-builder-general-settings.d.ts +72 -0
  166. package/table-builder/classes/table-builder.d.ts +18 -0
  167. package/table-builder/classes/table-store.d.ts +146 -0
  168. package/table-builder/components/array-column.component.d.ts +15 -0
  169. package/table-builder/components/column-builder/column-builder.component.d.ts +51 -0
  170. package/table-builder/components/column-builder/column-helpers.d.ts +28 -0
  171. package/table-builder/components/date-filter/date-filter.component.d.ts +10 -0
  172. package/table-builder/components/date-time-filter/date-time-filter.component.d.ts +10 -0
  173. package/table-builder/components/filter/filter.component.d.ts +112 -0
  174. package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +27 -0
  175. package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +16 -0
  176. package/table-builder/components/generic-table/generic-table.component.d.ts +68 -0
  177. package/table-builder/components/generic-table/paginator.component.d.ts +30 -0
  178. package/table-builder/components/group-by-list/group-by-list.component.d.ts +7 -0
  179. package/table-builder/components/header-menu/header-menu.component.d.ts +25 -0
  180. package/table-builder/components/in-filter/in-filter.component.d.ts +21 -0
  181. package/{src/table-builder/components/index.ts → table-builder/components/index.d.ts} +9 -9
  182. package/table-builder/components/initialization-component/initialization-component.d.ts +13 -0
  183. package/table-builder/components/link-column.component.d.ts +25 -0
  184. package/table-builder/components/number-filter/number-filter.component.d.ts +12 -0
  185. package/table-builder/components/profiles-menu/profiles-menu.component.d.ts +32 -0
  186. package/table-builder/components/scroll-strategy.d.ts +25 -0
  187. package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +24 -0
  188. package/table-builder/components/sort-menu/sort-menu.component.d.ts +25 -0
  189. package/{src/table-builder/components/table-container/table-container-imports.ts → table-builder/components/table-container/table-container-imports.d.ts} +14 -32
  190. package/table-builder/components/table-container/table-container.d.ts +73 -0
  191. package/table-builder/components/table-container/table-container.helpers/data-state.helpers.d.ts +6 -0
  192. package/table-builder/components/table-container/table-container.helpers/filter-state.helpers.d.ts +17 -0
  193. package/table-builder/components/table-container/table-container.helpers/groupBy.helpers.d.ts +17 -0
  194. package/table-builder/components/table-container/table-container.helpers/sort-state.helpers.d.ts +8 -0
  195. package/table-builder/components/table-container/tableProps.d.ts +11 -0
  196. package/table-builder/components/table-container/virtual-scroll-container.d.ts +23 -0
  197. package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +16 -0
  198. package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +14 -0
  199. package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +14 -0
  200. package/table-builder/directives/custom-cell-directive.d.ts +31 -0
  201. package/{src/table-builder/directives/index.ts → table-builder/directives/index.d.ts} +5 -6
  202. package/table-builder/directives/multi-sort.directive.d.ts +11 -0
  203. package/table-builder/directives/resize-column.directive.d.ts +44 -0
  204. package/table-builder/directives/table-wrapper.directive.d.ts +8 -0
  205. package/table-builder/directives/tb-filter.directive.d.ts +120 -0
  206. package/table-builder/enums/filterTypes.d.ts +77 -0
  207. package/table-builder/functions/boolean-filter-function.d.ts +3 -0
  208. package/table-builder/functions/date-filter-function.d.ts +4 -0
  209. package/table-builder/functions/download-data.d.ts +1 -0
  210. package/table-builder/functions/null-filter-function.d.ts +2 -0
  211. package/table-builder/functions/number-filter-function.d.ts +4 -0
  212. package/table-builder/functions/sort-data-function.d.ts +6 -0
  213. package/table-builder/functions/string-filter-function.d.ts +7 -0
  214. package/{src/table-builder/interfaces/ColumnInfo.ts → table-builder/interfaces/ColumnInfo.d.ts} +6 -7
  215. package/{src/table-builder/interfaces/dictionary.ts → table-builder/interfaces/dictionary.d.ts} +3 -3
  216. package/table-builder/interfaces/report-def.d.ts +147 -0
  217. package/table-builder/ngrx/tableBuilderStateStore.d.ts +70 -0
  218. package/table-builder/pipes/column-total.pipe.d.ts +8 -0
  219. package/table-builder/pipes/format-filter-type.pipe.d.ts +8 -0
  220. package/table-builder/pipes/format-filter-value.pipe.d.ts +14 -0
  221. package/table-builder/pipes/key-display.d.ts +11 -0
  222. package/table-builder/services/export-to-csv.service.d.ts +22 -0
  223. package/table-builder/services/link-creator.service.d.ts +16 -0
  224. package/table-builder/services/table-template-service.d.ts +15 -0
  225. package/table-builder/services/transform-creator.d.ts +21 -0
  226. package/table-builder/table-builder.module.d.ts +21 -0
  227. package/utilities/array-helpers.d.ts +1 -0
  228. package/utilities/directives/auto-focus.directive.d.ts +10 -0
  229. package/utilities/directives/clickEmitterDirective.d.ts +7 -0
  230. package/utilities/directives/clickSubject.d.ts +9 -0
  231. package/utilities/directives/conditional-classes.directive.d.ts +14 -0
  232. package/utilities/directives/dialog-service.d.ts +10 -0
  233. package/utilities/directives/dialog.d.ts +47 -0
  234. package/utilities/directives/mat-toggle-group-directive.d.ts +21 -0
  235. package/utilities/directives/prevent-enter.directive.d.ts +6 -0
  236. package/utilities/directives/stop-propagation.directive.d.ts +7 -0
  237. package/utilities/directives/styler.d.ts +17 -0
  238. package/utilities/directives/trim-whitespace.directive.d.ts +9 -0
  239. package/{src/utilities/index.ts → utilities/index.d.ts} +15 -22
  240. package/utilities/module.d.ts +19 -0
  241. package/utilities/pipes/function.pipe.d.ts +7 -0
  242. package/utilities/pipes/phone.pipe.d.ts +7 -0
  243. package/utilities/pipes/space-case.pipes.d.ts +17 -0
  244. package/karma.conf.js +0 -44
  245. package/ng-package.json +0 -7
  246. package/src/action-state/action-state-spinner/action-state-spinner.component.css +0 -16
  247. package/src/action-state/action-state-spinner/action-state-spinner.component.html +0 -6
  248. package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +0 -25
  249. package/src/action-state/action-state-spinner/action-state-spinner.component.ts +0 -26
  250. package/src/action-state/action-state-ui/action-state-ui.module.ts +0 -13
  251. package/src/action-state/ngrx-ext/ngrx-ext.module.ts +0 -15
  252. package/src/action-state/ngrx.ts +0 -69
  253. package/src/http-request-state/HttpRequestStateFactory.ts +0 -66
  254. package/src/http-request-state/HttpRequestStateStore.ts +0 -151
  255. package/src/http-request-state/directives/HttpStateDirectiveBase.ts +0 -38
  256. package/src/http-request-state/directives/http-error-state-directive.ts +0 -32
  257. package/src/http-request-state/directives/http-inProgress-state-directive.ts +0 -32
  258. package/src/http-request-state/directives/http-notStarted-state-directive.ts +0 -31
  259. package/src/http-request-state/directives/http-success-state-directive.ts +0 -40
  260. package/src/http-request-state/directives/request-state-directive.spec.ts +0 -72
  261. package/src/http-request-state/directives/request-state-directive.ts +0 -79
  262. package/src/http-request-state/helpers.ts +0 -30
  263. package/src/http-request-state/http-request-state.ts +0 -69
  264. package/src/http-request-state/http-state-module.ts +0 -23
  265. package/src/http-request-state/observable.spec.ts +0 -43
  266. package/src/http-request-state/rxjs/getRequestorBody.ts +0 -10
  267. package/src/http-request-state/rxjs/getRequestorState.ts +0 -8
  268. package/src/http-request-state/rxjs/tapError.ts +0 -16
  269. package/src/http-request-state/rxjs/tapSuccess.ts +0 -16
  270. package/src/http-request-state/strategies.spec.ts +0 -42
  271. package/src/http-request-state/types.ts +0 -56
  272. package/src/ngrx/actionable-selector.ts +0 -95
  273. package/src/ngrx/index.ts +0 -1
  274. package/src/rxjs/defaultShareReplay.ts +0 -8
  275. package/src/rxjs/mapError.ts +0 -8
  276. package/src/rxjs/rxjs-operators.ts +0 -132
  277. package/src/rxjs/subjectifier.ts +0 -15
  278. package/src/rxjs/subscriber.directive.ts +0 -57
  279. package/src/specs/clickSubject.spec.ts +0 -95
  280. package/src/specs/dialog.spec.ts +0 -101
  281. package/src/specs/toggleGroupDirective.spec.ts +0 -229
  282. package/src/table-builder/classes/DefaultSettings.ts +0 -11
  283. package/src/table-builder/classes/MatTableObservableDataSource.ts +0 -23
  284. package/src/table-builder/classes/TableBuilderConfig.ts +0 -35
  285. package/src/table-builder/classes/TableBuilderDataSource.ts +0 -57
  286. package/src/table-builder/classes/TableState.ts +0 -87
  287. package/src/table-builder/classes/filter-info.ts +0 -131
  288. package/src/table-builder/classes/table-builder-general-settings.ts +0 -115
  289. package/src/table-builder/classes/table-builder.ts +0 -94
  290. package/src/table-builder/classes/table-store.ts +0 -435
  291. package/src/table-builder/components/array-column.component.ts +0 -36
  292. package/src/table-builder/components/column-builder/column-builder.component.html +0 -61
  293. package/src/table-builder/components/column-builder/column-builder.component.scss +0 -43
  294. package/src/table-builder/components/column-builder/column-builder.component.spec.ts +0 -49
  295. package/src/table-builder/components/column-builder/column-builder.component.ts +0 -137
  296. package/src/table-builder/components/column-builder/column-helpers.ts +0 -36
  297. package/src/table-builder/components/date-filter/date-filter.component.html +0 -23
  298. package/src/table-builder/components/date-filter/date-filter.component.ts +0 -24
  299. package/src/table-builder/components/date-time-filter/date-time-filter.component.html +0 -9
  300. package/src/table-builder/components/date-time-filter/date-time-filter.component.ts +0 -22
  301. package/src/table-builder/components/filter/filter.component.html +0 -88
  302. package/src/table-builder/components/filter/filter.component.scss +0 -64
  303. package/src/table-builder/components/filter/filter.component.spec.ts +0 -87
  304. package/src/table-builder/components/filter/filter.component.ts +0 -55
  305. package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +0 -92
  306. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +0 -55
  307. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +0 -57
  308. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +0 -57
  309. package/src/table-builder/components/generic-table/generic-table.component.html +0 -71
  310. package/src/table-builder/components/generic-table/generic-table.component.scss +0 -51
  311. package/src/table-builder/components/generic-table/generic-table.component.ts +0 -264
  312. package/src/table-builder/components/generic-table/paginator.component.ts +0 -106
  313. package/src/table-builder/components/group-by-list/group-by-list.component.css +0 -8
  314. package/src/table-builder/components/group-by-list/group-by-list.component.html +0 -12
  315. package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +0 -23
  316. package/src/table-builder/components/group-by-list/group-by-list.component.ts +0 -21
  317. package/src/table-builder/components/header-menu/header-menu.component.html +0 -104
  318. package/src/table-builder/components/header-menu/header-menu.component.scss +0 -96
  319. package/src/table-builder/components/header-menu/header-menu.component.ts +0 -98
  320. package/src/table-builder/components/in-filter/in-filter.component.css +0 -3
  321. package/src/table-builder/components/in-filter/in-filter.component.html +0 -20
  322. package/src/table-builder/components/in-filter/in-filter.component.ts +0 -64
  323. package/src/table-builder/components/initialization-component/initialization-component.html +0 -29
  324. package/src/table-builder/components/initialization-component/initialization-component.ts +0 -24
  325. package/src/table-builder/components/link-column.component.ts +0 -47
  326. package/src/table-builder/components/number-filter/number-filter.component.css +0 -10
  327. package/src/table-builder/components/number-filter/number-filter.component.html +0 -19
  328. package/src/table-builder/components/number-filter/number-filter.component.spec.ts +0 -30
  329. package/src/table-builder/components/number-filter/number-filter.component.ts +0 -25
  330. package/src/table-builder/components/profiles-menu/profiles-menu.component.html +0 -74
  331. package/src/table-builder/components/profiles-menu/profiles-menu.component.scss +0 -98
  332. package/src/table-builder/components/profiles-menu/profiles-menu.component.spec.ts +0 -23
  333. package/src/table-builder/components/profiles-menu/profiles-menu.component.ts +0 -65
  334. package/src/table-builder/components/scroll-strategy.ts +0 -89
  335. package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +0 -63
  336. package/src/table-builder/components/sort-menu/sort-menu.component.html +0 -111
  337. package/src/table-builder/components/sort-menu/sort-menu.component.scss +0 -119
  338. package/src/table-builder/components/sort-menu/sort-menu.component.ts +0 -95
  339. package/src/table-builder/components/table-container/table-container.css +0 -54
  340. package/src/table-builder/components/table-container/table-container.helpers/data-state.helpers.ts +0 -141
  341. package/src/table-builder/components/table-container/table-container.helpers/filter-state.helpers.ts +0 -106
  342. package/src/table-builder/components/table-container/table-container.helpers/groupBy.helpers.ts +0 -86
  343. package/src/table-builder/components/table-container/table-container.helpers/sort-state.helpers.ts +0 -45
  344. package/src/table-builder/components/table-container/table-container.html +0 -96
  345. package/src/table-builder/components/table-container/table-container.spec.ts +0 -154
  346. package/src/table-builder/components/table-container/table-container.ts +0 -319
  347. package/src/table-builder/components/table-container/tableProps.ts +0 -18
  348. package/src/table-builder/components/table-container/virtual-scroll-container.ts +0 -141
  349. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +0 -31
  350. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +0 -52
  351. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +0 -42
  352. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +0 -10
  353. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +0 -86
  354. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +0 -38
  355. package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +0 -23
  356. package/src/table-builder/directives/custom-cell-directive.ts +0 -58
  357. package/src/table-builder/directives/multi-sort.directive.spec.ts +0 -124
  358. package/src/table-builder/directives/multi-sort.directive.ts +0 -49
  359. package/src/table-builder/directives/resize-column.directive.ts +0 -105
  360. package/src/table-builder/directives/table-wrapper.directive.ts +0 -14
  361. package/src/table-builder/directives/tb-filter.directive.ts +0 -370
  362. package/src/table-builder/enums/filterTypes.ts +0 -79
  363. package/src/table-builder/functions/boolean-filter-function.ts +0 -13
  364. package/src/table-builder/functions/date-filter-function.ts +0 -69
  365. package/src/table-builder/functions/download-data.ts +0 -11
  366. package/src/table-builder/functions/null-filter-function.ts +0 -9
  367. package/src/table-builder/functions/number-filter-function.ts +0 -42
  368. package/src/table-builder/functions/sort-data-function.ts +0 -23
  369. package/src/table-builder/functions/string-filter-function.ts +0 -52
  370. package/src/table-builder/interfaces/column-template.ts +0 -9
  371. package/src/table-builder/interfaces/report-def.ts +0 -155
  372. package/src/table-builder/ngrx/tableBuilderStateStore.ts +0 -199
  373. package/src/table-builder/pipes/column-total.pipe.ts +0 -17
  374. package/src/table-builder/pipes/format-filter-type.pipe.ts +0 -12
  375. package/src/table-builder/pipes/format-filter-value.pipe.ts +0 -41
  376. package/src/table-builder/pipes/key-display.ts +0 -16
  377. package/src/table-builder/services/export-to-csv.service.ts +0 -98
  378. package/src/table-builder/services/link-creator.service.ts +0 -67
  379. package/src/table-builder/services/table-template-service.ts +0 -57
  380. package/src/table-builder/services/transform-creator.ts +0 -96
  381. package/src/table-builder/specs/table-custom-filters.spec.ts +0 -262
  382. package/src/table-builder/styles/collapser.styles.scss +0 -19
  383. package/src/table-builder/table-builder.module.ts +0 -73
  384. package/src/test.ts +0 -17
  385. package/src/utilities/array-helpers.ts +0 -13
  386. package/src/utilities/directives/auto-focus.directive.ts +0 -20
  387. package/src/utilities/directives/clickEmitterDirective.ts +0 -16
  388. package/src/utilities/directives/clickSubject.ts +0 -20
  389. package/src/utilities/directives/conditional-classes.directive.ts +0 -36
  390. package/src/utilities/directives/dialog-service.ts +0 -19
  391. package/src/utilities/directives/dialog.ts +0 -147
  392. package/src/utilities/directives/mat-toggle-group-directive.ts +0 -61
  393. package/src/utilities/directives/prevent-enter.directive.ts +0 -13
  394. package/src/utilities/directives/stop-propagation.directive.ts +0 -20
  395. package/src/utilities/directives/styler.ts +0 -39
  396. package/src/utilities/directives/trim-whitespace.directive.ts +0 -21
  397. package/src/utilities/module.ts +0 -55
  398. package/src/utilities/pipes/function.pipe.ts +0 -16
  399. package/src/utilities/pipes/phone.pipe.ts +0 -15
  400. package/src/utilities/pipes/space-case.pipes.spec.ts +0 -47
  401. package/src/utilities/pipes/space-case.pipes.ts +0 -23
  402. package/tsconfig.lib.json +0 -19
  403. package/tsconfig.lib.prod.json +0 -10
  404. package/tsconfig.spec.json +0 -17
@@ -0,0 +1,125 @@
1
+ import { Component, ChangeDetectionStrategy, ViewChild, computed, inject } from '@angular/core';
2
+ import { FieldType } from '../../interfaces/report-def';
3
+ import { MatColumnDef, MatTableModule } from '@angular/material/table';
4
+ import { ResizeColumnDirective } from '../../directives';
5
+ import { map } from 'rxjs/operators';
6
+ import { CdkDropList, CDK_DROP_LIST, DragDropModule } from '@angular/cdk/drag-drop';
7
+ import { AsyncPipe, CurrencyPipe, DecimalPipe, NgTemplateOutlet } from '@angular/common';
8
+ import { ConditionalClassesDirective, FunctionPipe, SpaceCasePipe } from '../../../utilities';
9
+ import { MatSortModule } from '@angular/material/sort';
10
+ import { HeaderMenuComponent } from '../header-menu/header-menu.component';
11
+ import { MatTooltipModule } from '@angular/material/tooltip';
12
+ import { LetDirective } from '@ngrx/component';
13
+ import { ColumnTotalPipe } from '../../pipes/column-total.pipe';
14
+ import { StylerDirective } from '../../../utilities/directives/styler';
15
+ import { columnStyles } from './column-helpers';
16
+ import { TableBuilderConfigToken } from '../../classes/TableBuilderConfig';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "../../services/transform-creator";
19
+ import * as i2 from "@angular/material/table";
20
+ import * as i3 from "../../classes/table-store";
21
+ import * as i4 from "../../services/table-template-service";
22
+ import * as i5 from "@angular/cdk/drag-drop";
23
+ import * as i6 from "@angular/material/sort";
24
+ import * as i7 from "@angular/material/tooltip";
25
+ export class ColumnBuilderComponent {
26
+ get metaData() {
27
+ return this._metaData;
28
+ }
29
+ set metaData(md) {
30
+ if (this.metaData && this.metaData.fieldType !== md.fieldType) {
31
+ this._metaData = md;
32
+ this.initialSetUp();
33
+ this.furtherSetUp();
34
+ }
35
+ else {
36
+ this._metaData = md;
37
+ }
38
+ }
39
+ constructor(transformCreator, table, state, templateService, injector) {
40
+ this.transformCreator = transformCreator;
41
+ this.table = table;
42
+ this.state = state;
43
+ this.templateService = templateService;
44
+ this.injector = injector;
45
+ this.tableConfig = inject(TableBuilderConfigToken);
46
+ this.FieldType = FieldType;
47
+ this.customCell = undefined;
48
+ this.styles = computed(() => {
49
+ return columnStyles(this.metaData, this.state.getUserDefinedWidth(this.metaData.key)());
50
+ });
51
+ this.getTooltip = (element) => {
52
+ if (typeof this.metaData.toolTip === 'string') {
53
+ return this.metaData.toolTip;
54
+ }
55
+ return this.metaData.toolTip(element);
56
+ };
57
+ }
58
+ getInnerTemplate() {
59
+ if (this.metaData.template)
60
+ return this.metaData.template;
61
+ if (this.customCell?.TemplateRef)
62
+ return this.customCell.TemplateRef;
63
+ return this.templateService.getTemplate(this.metaData);
64
+ }
65
+ getOuterTemplate() {
66
+ return this.customCell?.columnDef?.cell?.template ?? this.bodyTemplate;
67
+ }
68
+ ngOnInit() {
69
+ this.initialSetUp();
70
+ }
71
+ ngAfterViewInit() {
72
+ this.furtherSetUp();
73
+ this.table.addColumnDef(this.columnDef);
74
+ }
75
+ initialSetUp() {
76
+ if (this.metaData.fieldType === FieldType.Currency) {
77
+ this.classes = {
78
+ ['negative-currency']: (element) => element[this.metaData.key] < 0,
79
+ ...this.metaData.classes
80
+ };
81
+ }
82
+ else {
83
+ this.classes = this.metaData.classes;
84
+ }
85
+ this.filter = { key: this.metaData.key, fieldType: this.metaData.fieldType };
86
+ this.showFilters$ = this.state.tableSettings$.pipe(map(settings => !(settings.hideColumnHeaderFilters || this.metaData.noFilter)));
87
+ this.additional = this.metaData.fieldType === FieldType.Link
88
+ ? this.state.getLinkInfo(this.metaData)()
89
+ :
90
+ this.metaData.fieldType === FieldType.Array
91
+ ? this.metaData.additional?.limit || this.tableConfig?.arrayInfo?.arrayStyle
92
+ : undefined;
93
+ }
94
+ furtherSetUp() {
95
+ this.outerTemplate = this.getOuterTemplate();
96
+ this.innerTemplate = this.getInnerTemplate();
97
+ this.transform = this.transformCreator.createTransformer(this.metaData);
98
+ }
99
+ cellClicked(element, key) {
100
+ if (this.metaData.click) {
101
+ this.metaData.click(element, key);
102
+ }
103
+ }
104
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ColumnBuilderComponent, deps: [{ token: i1.TransformCreator }, { token: i2.MatTable }, { token: i3.TableStore }, { token: i4.TableTemplateService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
105
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", 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(!customCell?.columnDef?.cell && (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: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatFooterCellDef, selector: "[matFooterCellDef]" }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "directive", type: i2.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: i5.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: i5.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "ngmodule", type: MatSortModule }, { kind: "component", type: i6.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: i7.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: [
106
+ { provide: CDK_DROP_LIST, useExisting: CdkDropList },
107
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
108
+ }
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ColumnBuilderComponent, decorators: [{
110
+ type: Component,
111
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [
112
+ { provide: CDK_DROP_LIST, useExisting: CdkDropList },
113
+ ], standalone: true, imports: [
114
+ MatTableModule, NgTemplateOutlet, ResizeColumnDirective, FunctionPipe, StylerDirective,
115
+ ConditionalClassesDirective, DragDropModule, MatSortModule, SpaceCasePipe, HeaderMenuComponent,
116
+ AsyncPipe, MatTooltipModule, LetDirective, ColumnTotalPipe, CurrencyPipe, DecimalPipe
117
+ ], 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(!customCell?.columnDef?.cell && (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"] }]
118
+ }], ctorParameters: () => [{ type: i1.TransformCreator }, { type: i2.MatTable }, { type: i3.TableStore }, { type: i4.TableTemplateService }, { type: i0.Injector }], propDecorators: { columnDef: [{
119
+ type: ViewChild,
120
+ args: [MatColumnDef]
121
+ }], bodyTemplate: [{
122
+ type: ViewChild,
123
+ args: ['body']
124
+ }] } });
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9jb2x1bW4tYnVpbGRlci9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQWUsU0FBUyxFQUErQixRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFJLE9BQU8sRUFBbUIsU0FBUyxFQUFZLE1BQU0sNkJBQTZCLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBWSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVqRixPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJOUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7O0FBa0IzRSxNQUFNLE9BQU8sc0JBQXNCO0lBT2pDLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsRUFBWTtRQUN2QixJQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEtBQUssRUFBRSxDQUFDLFNBQVMsRUFBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQVFELFlBQ1UsZ0JBQWtDLEVBQ2xDLEtBQW9CLEVBQ3JCLEtBQWlCLEVBQ2hCLGVBQXFDLEVBQ25DLFFBQWtCO1FBSnBCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQUNyQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2hCLG9CQUFlLEdBQWYsZUFBZSxDQUFzQjtRQUNuQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBNUI5QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzlDLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFldEIsZUFBVSxHQUF5QixTQUFTLENBQUM7UUF5QjdDLFdBQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JCLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN6RixDQUFDLENBQUMsQ0FBQTtRQTJDRixlQUFVLEdBQUcsQ0FBQyxPQUFZLEVBQUUsRUFBRTtZQUM1QixJQUFHLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzdDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDL0IsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFBO0lBOURLLENBQUM7SUFFUCxnQkFBZ0I7UUFDZCxJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUTtZQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVc7WUFBRyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQ3RFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN6RSxDQUFDO0lBS0QsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHO2dCQUNiLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztnQkFDbEUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU87YUFDekIsQ0FBQTtRQUNILENBQUM7YUFDSSxDQUFDO1lBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN2QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUMsQ0FBQztRQUUzRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLHVCQUF1QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25JLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLElBQUk7WUFDMUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN6QyxDQUFDO2dCQUNELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxLQUFLO29CQUMzQyxDQUFDLENBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUE4QixFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVO29CQUNqRyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQVksRUFBRSxHQUFXO1FBQ25DLElBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7OEdBdkZVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLG1IQUN0QixZQUFZLHVJQ3hDekIsd2dHQTZEQSx1aUJEM0JJLGNBQWMsNG5CQUFFLGdCQUFnQixvSkFBRSxxQkFBcUIsdUZBQUUsWUFBWSw2Q0FBRSxlQUFlLG9GQUN0RiwyQkFBMkIsMkdBQUUsY0FBYywrbEJBQUUsYUFBYSxpUEFBRSxhQUFhLGtEQUFFLG1CQUFtQiw0RUFDOUYsU0FBUyw2Q0FBRSxnQkFBZ0IsNlRBQUUsWUFBWSw0RkFBRSxlQUFlLCtDQUFFLFlBQVksNENBQUUsV0FBVyxvQ0FQeEU7WUFDYixFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRTtTQUNyRDs7MkZBUVUsc0JBQXNCO2tCQWRsQyxTQUFTO3NDQUdTLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDO3dCQUNiLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFO3FCQUNyRCxjQUNXLElBQUksV0FDUDt3QkFDUCxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxFQUFFLGVBQWU7d0JBQ3RGLDJCQUEyQixFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLG1CQUFtQjt3QkFDOUYsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLFdBQVc7cUJBQ3RGOytMQUd3QixTQUFTO3NCQUFqQyxTQUFTO3VCQUFDLFlBQVk7Z0JBQ0osWUFBWTtzQkFBOUIsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgT25Jbml0LCBQcmVkaWNhdGUsIEluamVjdG9yLCBjb21wdXRlZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFycmF5QWRkaXRpb25hbCwgRmllbGRUeXBlLCBNZXRhRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IE1hdENvbHVtbkRlZiwgTWF0VGFibGUsIE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEN1c3RvbUNlbGxEaXJlY3RpdmUsIFJlc2l6ZUNvbHVtbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJJbmZvIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXItaW5mbyc7XHJcbmltcG9ydCB7IFRyYW5zZm9ybUNyZWF0b3IgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFuc2Zvcm0tY3JlYXRvcic7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUYWJsZVRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RhYmxlLXRlbXBsYXRlLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDZGtEcm9wTGlzdCwgQ0RLX0RST1BfTElTVCwgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ0BuZ3J4L2VudGl0eSc7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSwgQ3VycmVuY3lQaXBlLCBEZWNpbWFsUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbmRpdGlvbmFsQ2xhc3Nlc0RpcmVjdGl2ZSwgRnVuY3Rpb25QaXBlLCBTcGFjZUNhc2VQaXBlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgTWF0U29ydE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBIZWFkZXJNZW51Q29tcG9uZW50IH0gZnJvbSAnLi4vaGVhZGVyLW1lbnUvaGVhZGVyLW1lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBMZXREaXJlY3RpdmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2x1bW5Ub3RhbFBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy9jb2x1bW4tdG90YWwucGlwZSc7XHJcbmltcG9ydCB7IFN0eWxlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9kaXJlY3RpdmVzL3N0eWxlcic7XHJcbmltcG9ydCB7IGNvbHVtblN0eWxlcyB9IGZyb20gJy4vY29sdW1uLWhlbHBlcnMnO1xyXG5pbXBvcnQgeyBUYWJsZUJ1aWxkZXJDb25maWdUb2tlbiB9IGZyb20gJy4uLy4uL2NsYXNzZXMvVGFibGVCdWlsZGVyQ29uZmlnJztcclxuaW1wb3J0IHsgTGlua0luZm8gfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9saW5rLWNyZWF0b3Iuc2VydmljZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHZpZXdQcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogQ0RLX0RST1BfTElTVCwgdXNlRXhpc3Rpbmc6IENka0Ryb3BMaXN0IH0sXHJcbiAgXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdFRhYmxlTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0LCBSZXNpemVDb2x1bW5EaXJlY3RpdmUsIEZ1bmN0aW9uUGlwZSwgU3R5bGVyRGlyZWN0aXZlLFxyXG4gICAgQ29uZGl0aW9uYWxDbGFzc2VzRGlyZWN0aXZlLCBEcmFnRHJvcE1vZHVsZSwgTWF0U29ydE1vZHVsZSwgU3BhY2VDYXNlUGlwZSwgSGVhZGVyTWVudUNvbXBvbmVudCxcclxuICAgIEFzeW5jUGlwZSwgTWF0VG9vbHRpcE1vZHVsZSwgTGV0RGlyZWN0aXZlLCBDb2x1bW5Ub3RhbFBpcGUsIEN1cnJlbmN5UGlwZSwgRGVjaW1hbFBpcGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW5CdWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKE1hdENvbHVtbkRlZikgY29sdW1uRGVmITogTWF0Q29sdW1uRGVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2JvZHknKSBib2R5VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHRhYmxlQ29uZmlnID0gaW5qZWN0KFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuKTtcclxuICBGaWVsZFR5cGUgPSBGaWVsZFR5cGU7XHJcbiAgZmlsdGVyITogUGFydGlhbDxGaWx0ZXJJbmZvPjtcclxuICBfbWV0YURhdGEhOiBNZXRhRGF0YTtcclxuICBnZXQgbWV0YURhdGEoKXtcclxuICAgIHJldHVybiB0aGlzLl9tZXRhRGF0YTtcclxuICB9XHJcbiAgc2V0IG1ldGFEYXRhKG1kOiBNZXRhRGF0YSl7XHJcbiAgICBpZih0aGlzLm1ldGFEYXRhICYmIHRoaXMubWV0YURhdGEuZmllbGRUeXBlICE9PSBtZC5maWVsZFR5cGUpe1xyXG4gICAgICB0aGlzLl9tZXRhRGF0YSA9IG1kO1xyXG4gICAgICB0aGlzLmluaXRpYWxTZXRVcCgpO1xyXG4gICAgICB0aGlzLmZ1cnRoZXJTZXRVcCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbWV0YURhdGEgPSBtZDtcclxuICAgIH1cclxuICB9XHJcbiAgY3VzdG9tQ2VsbD86IEN1c3RvbUNlbGxEaXJlY3RpdmUgPSB1bmRlZmluZWQ7XHJcbiAgZGF0YSQhOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuXHJcbiAgb3V0ZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgaW5uZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgdHJhbnNmb3JtITogKG86IGFueSwgLi4uYXJnczogYW55W10pPT4gYW55IDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRyYW5zZm9ybUNyZWF0b3I6IFRyYW5zZm9ybUNyZWF0b3IsXHJcbiAgICBwcml2YXRlIHRhYmxlOiBNYXRUYWJsZTxhbnk+LFxyXG4gICAgcHVibGljIHN0YXRlOiBUYWJsZVN0b3JlLFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVNlcnZpY2U6IFRhYmxlVGVtcGxhdGVTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICkgeyB9XHJcblxyXG4gIGdldElubmVyVGVtcGxhdGUoKSA6VGVtcGxhdGVSZWY8YW55PiB7XHJcbiAgICBpZih0aGlzLm1ldGFEYXRhLnRlbXBsYXRlKSByZXR1cm4gdGhpcy5tZXRhRGF0YS50ZW1wbGF0ZTtcclxuICAgIGlmICh0aGlzLmN1c3RvbUNlbGw/LlRlbXBsYXRlUmVmKSAgcmV0dXJuIHRoaXMuY3VzdG9tQ2VsbC5UZW1wbGF0ZVJlZjtcclxuICAgIHJldHVybiB0aGlzLnRlbXBsYXRlU2VydmljZS5nZXRUZW1wbGF0ZSh0aGlzLm1ldGFEYXRhKTtcclxuICB9XHJcbiAgc2hvd0ZpbHRlcnMkITogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICBnZXRPdXRlclRlbXBsYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tQ2VsbD8uY29sdW1uRGVmPy5jZWxsPy50ZW1wbGF0ZSA/PyB0aGlzLmJvZHlUZW1wbGF0ZTtcclxuICB9XHJcbiAgY2xhc3Nlcz86IERpY3Rpb25hcnk8UHJlZGljYXRlPGFueT4+O1xyXG4gIHN0eWxlcyA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHJldHVybiBjb2x1bW5TdHlsZXModGhpcy5tZXRhRGF0YSwgdGhpcy5zdGF0ZS5nZXRVc2VyRGVmaW5lZFdpZHRoKHRoaXMubWV0YURhdGEua2V5KSgpKVxyXG4gIH0pXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRpYWxTZXRVcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5mdXJ0aGVyU2V0VXAoKTtcclxuICAgIHRoaXMudGFibGUuYWRkQ29sdW1uRGVmKHRoaXMuY29sdW1uRGVmKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxTZXRVcCgpe1xyXG4gICAgaWYodGhpcy5tZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5DdXJyZW5jeSkge1xyXG4gICAgICB0aGlzLmNsYXNzZXMgPSB7XHJcbiAgICAgICAgWyduZWdhdGl2ZS1jdXJyZW5jeSddOiAoZWxlbWVudCkgPT4gZWxlbWVudFt0aGlzLm1ldGFEYXRhLmtleV0gPCAwLFxyXG4gICAgICAgIC4uLnRoaXMubWV0YURhdGEuY2xhc3Nlc1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5jbGFzc2VzID0gdGhpcy5tZXRhRGF0YS5jbGFzc2VzO1xyXG4gICAgfVxyXG4gICAgdGhpcy5maWx0ZXIgPSB7a2V5OiB0aGlzLm1ldGFEYXRhLmtleSwgZmllbGRUeXBlOiB0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZX07XHJcblxyXG4gICAgdGhpcy5zaG93RmlsdGVycyQgPSB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MkLnBpcGUobWFwKHNldHRpbmdzID0+ICEoc2V0dGluZ3MuaGlkZUNvbHVtbkhlYWRlckZpbHRlcnMgfHwgdGhpcy5tZXRhRGF0YS5ub0ZpbHRlcikpKTtcclxuICAgIHRoaXMuYWRkaXRpb25hbCA9IHRoaXMubWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuTGlua1xyXG4gICAgICA/IHRoaXMuc3RhdGUuZ2V0TGlua0luZm8odGhpcy5tZXRhRGF0YSkoKVxyXG4gICAgICA6XHJcbiAgICAgIHRoaXMubWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQXJyYXlcclxuICAgICAgPyAodGhpcy5tZXRhRGF0YS5hZGRpdGlvbmFsIGFzIEFycmF5QWRkaXRpb25hbCk/LmxpbWl0IHx8IHRoaXMudGFibGVDb25maWc/LmFycmF5SW5mbz8uYXJyYXlTdHlsZVxyXG4gICAgICA6IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIGZ1cnRoZXJTZXRVcCgpe1xyXG4gICAgdGhpcy5vdXRlclRlbXBsYXRlID0gdGhpcy5nZXRPdXRlclRlbXBsYXRlKCk7XHJcbiAgICB0aGlzLmlubmVyVGVtcGxhdGUgPSB0aGlzLmdldElubmVyVGVtcGxhdGUoKTtcclxuICAgIHRoaXMudHJhbnNmb3JtID0gdGhpcy50cmFuc2Zvcm1DcmVhdG9yLmNyZWF0ZVRyYW5zZm9ybWVyKHRoaXMubWV0YURhdGEpO1xyXG4gIH1cclxuXHJcbiAgY2VsbENsaWNrZWQoZWxlbWVudDogYW55LCBrZXk6IHN0cmluZykge1xyXG4gICAgaWYodGhpcy5tZXRhRGF0YS5jbGljaykge1xyXG4gICAgICB0aGlzLm1ldGFEYXRhLmNsaWNrKGVsZW1lbnQsa2V5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFRvb2x0aXAgPSAoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICBpZih0eXBlb2YgdGhpcy5tZXRhRGF0YS50b29sVGlwID09PSAnc3RyaW5nJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5tZXRhRGF0YS50b29sVGlwO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMubWV0YURhdGEudG9vbFRpcCEoZWxlbWVudCk7XHJcbiAgfVxyXG5cclxuICBhZGRpdGlvbmFsOiBMaW5rSW5mbyB8IG51bWJlciB8IHVuZGVmaW5lZDtcclxufVxyXG4iLCI8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwibWV0YURhdGEua2V5XCIgKm5ncnhMZXQ9XCJzdHlsZXMoKSBhcyBzdHlsZXNcIiA+XHJcblxyXG4gIDwhLS0gaGVhZGVyIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSBtYXRIZWFkZXJDZWxsRGVmICNteUhlYWRlcj5cclxuICAgIDxtYXQtaGVhZGVyLWNlbGwgY2RrRHJhZyBbc3R5bGVdPSdzdHlsZXMuaGVhZGVyJyByZXNpemVDb2x1bW4gW2tleV09XCJtZXRhRGF0YS5rZXlcIiBjbGFzcz1cImNvbHVtbi1oZWFkXCJcclxuICAgICAgW2NsYXNzXT0nbWV0YURhdGEuYWRkaXRpb25hbD8uY29sdW1uUGFydENsYXNzZXM/LmhlYWRlcic+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItY29udGFpbmVyXCIgY2RrRHJhZ0hhbmRsZT5cclxuICAgICAgICBAaWYoIWN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uaGVhZGVyQ2VsbClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIEBpZihtZXRhRGF0YS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5Ob3RNYXBwZWQpe1xyXG4gICAgICAgICAgICAgIDxkaXYgbWF0LXNvcnQtaGVhZGVyIFtkaXNhYmxlZF09XCJtZXRhRGF0YS5ub1NvcnRcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBtZXRhRGF0YS5kaXNwbGF5TmFtZSA/ICBtZXRhRGF0YS5kaXNwbGF5TmFtZSA6ICggbWV0YURhdGEua2V5IHwgc3BhY2VDYXNlICkgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfSBAZWxzZSBpZihtZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5Ob3RNYXBwZWQpe1xyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbWV0YURhdGEuZGlzcGxheU5hbWUgPyAgbWV0YURhdGEuZGlzcGxheU5hbWUgOiAoIG1ldGFEYXRhLmtleSB8IHNwYWNlQ2FzZSApIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGlmKCFjdXN0b21DZWxsPy5jb2x1bW5EZWY/LmNlbGwgJiYgKHNob3dGaWx0ZXJzJCB8IGFzeW5jKSl7XHJcbiAgICAgICAgICAgICAgPHRiLWhlYWRlci1tZW51ICNtZW51IFttZXRhRGF0YV09J21ldGFEYXRhJyAvPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUNlbGwhLmNvbHVtbkRlZi5oZWFkZXJDZWxsLnRlbXBsYXRlOyBjb250ZXh0OiB7bWV0YURhdGE6IG1ldGFEYXRhLCBzdHlsZXM6ICBzdHlsZXMuaGVhZGVyfSBcIj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1oZWFkZXItY2VsbD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8IS0tIGJvZHkgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50O1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm91dGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgbWV0YURhdGE6IG1ldGFEYXRhLCBlbGVtZW50OiBlbGVtZW50ICwgc3R5bGVzOiBzdHlsZXMuYm9keSwgJGltcGxpY2l0OiBlbGVtZW50IH1cIi8+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLXRlbXBsYXRlICNib2R5IGxldC1lbGVtZW50PSdlbGVtZW50JyA+XHJcbiAgICA8bWF0LWNlbGwgIFttYXRUb29sdGlwXT1cIm1ldGFEYXRhLnRvb2xUaXAgPyAoZ2V0VG9vbHRpcCB8IGZ1bmMgOiBlbGVtZW50KSA6ICcnXCIgIFtjb25kaXRpb25hbENsYXNzZXNdPSdtZXRhRGF0YS5jbGFzc2VzJyBbZWxlbWVudF09J2VsZW1lbnQnIFtzdHlsZXJdPSdzdHlsZXMuYm9keScgKGNsaWNrKT0nY2VsbENsaWNrZWQoZWxlbWVudCwgbWV0YURhdGEua2V5KScgPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJUZW1wbGF0ZTsgY29udGV4dDogeyB2YWx1ZTogKHRyYW5zZm9ybSB8IGZ1bmMgOiBlbGVtZW50KSwgZWxlbWVudDogZWxlbWVudCwgYWRkaXRpb25hbDogYWRkaXRpb25hbCwgJGltcGxpY2l0OiBlbGVtZW50IH07IEluamVjdG9yOiBpbmplY3RvclwiIC8+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDwhLS0gZm9vdGVyIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSBtYXRGb290ZXJDZWxsRGVmPlxyXG4gICAgQGlmKGN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uZm9vdGVyQ2VsbCl7XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21DZWxsIS5jb2x1bW5EZWYuZm9vdGVyQ2VsbC50ZW1wbGF0ZTtjb250ZXh0OiB7bWV0YURhdGE6IG1ldGFEYXRhLCBkYXRhOiBkYXRhJCwgc3R5bGVzIDogc3R5bGVzLmZvb3RlciB9XCIvPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIDxtYXQtZm9vdGVyLWNlbGwgIFtzdHlsZV09J3N0eWxlcy5mb290ZXInICpuZ3J4TGV0PVwiZGF0YSQgYXMgZGF0YVwiIFtjbGFzc109J21ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRDbGFzc2VzPy5mb290ZXInPlxyXG4gICAgICAgIEBpZighIWRhdGE/Lmxlbmd0aCAmJiBtZXRhRGF0YS5hZGRpdGlvbmFsPy5mb290ZXIpe1xyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2xkXCI+XHJcbiAgICAgICAgICAgIEBzd2l0Y2ggKG1ldGFEYXRhLmZpZWxkVHlwZSkge1xyXG4gICAgICAgICAgICAgIEBjYXNlIChGaWVsZFR5cGUuQ3VycmVuY3kpIHsge3sgZGF0YSB8IGNvbHVtblRvdGFsOiBtZXRhRGF0YSB8IGN1cnJlbmN5IH19IH1cclxuICAgICAgICAgICAgICBAY2FzZSAoRmllbGRUeXBlLk51bWJlcikgeyB7eyBkYXRhIHwgY29sdW1uVG90YWw6IG1ldGFEYXRhIHwgbnVtYmVyIH19IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIDwvbWF0LWZvb3Rlci1jZWxsPlxyXG4gICAgfVxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -0,0 +1,26 @@
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 const calculateFlexWidth = (metaData, userDefinedWidth) => {
7
+ const definedWidth = calculateWidths(metaData, userDefinedWidth);
8
+ return definedWidth ? ({ flex: `0 0 ${definedWidth}`, maxWidth: 'none' }) : ({ flex: `${1}` });
9
+ };
10
+ export const columnStyles = (metaData, userDefinedWidth) => {
11
+ const fullMetaStyles = metaData.additional?.styles ?? {};
12
+ const flexWidth = calculateFlexWidth(metaData, userDefinedWidth);
13
+ const styles = {
14
+ header: { ...fullMetaStyles, ...metaData.additional?.columnPartStyles?.header, ...flexWidth },
15
+ footer: { ...fullMetaStyles, ...metaData.additional?.columnPartStyles?.footer, ...flexWidth },
16
+ body: { ...fullMetaStyles, ...metaData.additional?.columnPartStyles?.body, ...flexWidth },
17
+ };
18
+ return styles;
19
+ };
20
+ export const calculateFlexWidths = (metaDatas, userDefinedWidths) => {
21
+ return metaDataArrToDict(metaDatas, md => calculateFlexWidth(md, userDefinedWidths[md.key]));
22
+ };
23
+ export const columnsStyles = (metaDatas, userDefinedWidths) => {
24
+ return metaDataArrToDict(metaDatas, md => columnStyles(md, userDefinedWidths[md.key]));
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBWSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRzFFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQWtCLEVBQUUsZ0JBQXFDLEVBQUUsRUFBRTtJQUMzRixNQUFNLFlBQVksR0FBRyxDQUFDLGdCQUFnQixJQUFJLEdBQUcsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDckYsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxRQUFrQixFQUFFLGdCQUFxQyxFQUFFLEVBQUU7SUFDOUYsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsSUFBSSxFQUFFLE9BQU8sWUFBWSxFQUFFLEVBQUUsUUFBUSxFQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUM7QUFDNUYsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsUUFBa0IsRUFBRSxnQkFBcUMsRUFBRSxFQUFFO0lBQ3hGLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUN6RCxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUNqRSxNQUFNLE1BQU0sR0FJUjtRQUNGLE1BQU0sRUFBRyxFQUFDLEdBQUcsY0FBYyxFQUFDLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxTQUFTLEVBQUM7UUFDM0YsTUFBTSxFQUFFLEVBQUMsR0FBRyxjQUFjLEVBQUMsR0FBRyxRQUFRLENBQUMsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxHQUFHLFNBQVMsRUFBQztRQUMxRixJQUFJLEVBQUUsRUFBQyxHQUFHLGNBQWMsRUFBQyxHQUFHLFFBQVEsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLEdBQUcsU0FBUyxFQUFDO0tBQ3ZGLENBQUM7SUFDRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLFNBQXFCLEVBQUUsaUJBQXNDLEVBQUUsRUFBRTtJQUNuRyxPQUFPLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9GLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLFNBQXFCLEVBQUUsaUJBQXNDLEVBQUUsRUFBRTtJQUM3RixPQUFPLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN6RixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSBcIkBuZ3J4L2VudGl0eVwiO1xyXG5pbXBvcnQgeyBNZXRhRGF0YSwgbWV0YURhdGFBcnJUb0RpY3QgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmXCI7XHJcbmltcG9ydCB7IFN0eWxlclN0eWxlIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxpdGllcy9kaXJlY3RpdmVzL3N0eWxlclwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZVdpZHRocyA9IChtZXRhRGF0YTogTWV0YURhdGEsIHVzZXJEZWZpbmVkV2lkdGggOiBudW1iZXIgfCB1bmRlZmluZWQpID0+IHtcclxuICBjb25zdCBkZWZpbmVkV2lkdGggPSAodXNlckRlZmluZWRXaWR0aCAmJiBgJHt1c2VyRGVmaW5lZFdpZHRofXB4YCkgfHwgbWV0YURhdGEud2lkdGg7XHJcbiAgcmV0dXJuIGRlZmluZWRXaWR0aDtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGNhbGN1bGF0ZUZsZXhXaWR0aCA9IChtZXRhRGF0YTogTWV0YURhdGEsIHVzZXJEZWZpbmVkV2lkdGggOiBudW1iZXIgfCB1bmRlZmluZWQpID0+IHtcclxuICBjb25zdCBkZWZpbmVkV2lkdGggPSBjYWxjdWxhdGVXaWR0aHMobWV0YURhdGEsIHVzZXJEZWZpbmVkV2lkdGgpO1xyXG4gIHJldHVybiBkZWZpbmVkV2lkdGggPyAoe2ZsZXg6IGAwIDAgJHtkZWZpbmVkV2lkdGh9YCwgbWF4V2lkdGg6J25vbmUnfSkgOiAoe2ZsZXg6IGAkezF9YH0pO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY29sdW1uU3R5bGVzID0gKG1ldGFEYXRhOiBNZXRhRGF0YSwgdXNlckRlZmluZWRXaWR0aCA6IG51bWJlciB8IHVuZGVmaW5lZCkgPT4ge1xyXG4gIGNvbnN0IGZ1bGxNZXRhU3R5bGVzID0gbWV0YURhdGEuYWRkaXRpb25hbD8uc3R5bGVzID8/IHt9O1xyXG4gIGNvbnN0IGZsZXhXaWR0aCA9IGNhbGN1bGF0ZUZsZXhXaWR0aChtZXRhRGF0YSwgdXNlckRlZmluZWRXaWR0aCk7XHJcbiAgY29uc3Qgc3R5bGVzOiB7XHJcbiAgICBoZWFkZXI6IERpY3Rpb25hcnk8c3RyaW5nPjtcclxuICAgIGJvZHk6IFN0eWxlclN0eWxlO1xyXG4gICAgZm9vdGVyOiBEaWN0aW9uYXJ5PHN0cmluZz47XHJcbiAgfSA9IHtcclxuICAgIGhlYWRlciA6IHsuLi5mdWxsTWV0YVN0eWxlcywuLi5tZXRhRGF0YS5hZGRpdGlvbmFsPy5jb2x1bW5QYXJ0U3R5bGVzPy5oZWFkZXIsIC4uLmZsZXhXaWR0aH0sXHJcbiAgICBmb290ZXI6IHsuLi5mdWxsTWV0YVN0eWxlcywuLi5tZXRhRGF0YS5hZGRpdGlvbmFsPy5jb2x1bW5QYXJ0U3R5bGVzPy5mb290ZXIsIC4uLmZsZXhXaWR0aH0sXHJcbiAgICBib2R5OiB7Li4uZnVsbE1ldGFTdHlsZXMsLi4ubWV0YURhdGEuYWRkaXRpb25hbD8uY29sdW1uUGFydFN0eWxlcz8uYm9keSwgLi4uZmxleFdpZHRofSxcclxuICB9O1xyXG4gIHJldHVybiBzdHlsZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjYWxjdWxhdGVGbGV4V2lkdGhzID0gKG1ldGFEYXRhczogTWV0YURhdGFbXSwgdXNlckRlZmluZWRXaWR0aHMgOiBEaWN0aW9uYXJ5PG51bWJlcj4pID0+IHtcclxuICByZXR1cm4gbWV0YURhdGFBcnJUb0RpY3QobWV0YURhdGFzLCBtZCA9PiBjYWxjdWxhdGVGbGV4V2lkdGgobWQsIHVzZXJEZWZpbmVkV2lkdGhzW21kLmtleV0pKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGNvbHVtbnNTdHlsZXMgPSAobWV0YURhdGFzOiBNZXRhRGF0YVtdLCB1c2VyRGVmaW5lZFdpZHRocyA6IERpY3Rpb25hcnk8bnVtYmVyPikgPT4ge1xyXG4gIHJldHVybiBtZXRhRGF0YUFyclRvRGljdChtZXRhRGF0YXMsIG1kID0+IGNvbHVtblN0eWxlcyhtZCwgdXNlckRlZmluZWRXaWR0aHNbbWQua2V5XSkpO1xyXG59Il19
@@ -0,0 +1,29 @@
1
+ import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
2
+ import { FilterType } 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
+ constructor() {
14
+ this.FilterType = FilterType;
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DateFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", 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.0", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9kYXRlLWZpbHRlci9kYXRlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtZmlsdGVyL2RhdGUtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBYTNELE1BQU0sT0FBTyxtQkFBbUI7SUFYaEM7UUFZSSxlQUFVLEdBQUcsVUFBVSxDQUFDO0tBRzNCOzhHQUpZLG1CQUFtQjtrR0FBbkIsbUJBQW1CLDRJQ25CaEMsZ3ZDQXVCQSw4eUJEUFEsY0FBYyxzckJBQUUsV0FBVywwNEJBQUUsbUJBQW1CLHVmQUhyQyxDQUFDLEVBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsQ0FBQzs7MkZBTXhELG1CQUFtQjtrQkFYL0IsU0FBUzsrQkFDSSxnQkFBZ0IsbUJBRVQsdUJBQXVCLENBQUMsTUFBTSxpQkFFaEMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLENBQUMsY0FDckQsSUFBSSxXQUNQO3dCQUNMLGNBQWMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCO3FCQUMxRTs4QkFJUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFydGlhbEZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMvZmlsdGVyVHlwZXMnO1xyXG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBGb3Jtc01vZHVsZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQgeyBQcmV2ZW50RW50ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3RiLWRhdGUtZmlsdGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0eWxlVXJsczogWycuLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICB2aWV3UHJvdmlkZXJzOiBbe3Byb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBOZ0Zvcm19XSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXREYXRlcGlja2VyTW9kdWxlLCBQcmV2ZW50RW50ZXJEaXJlY3RpdmVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVGaWx0ZXJDb21wb25lbnQge1xyXG4gICAgRmlsdGVyVHlwZSA9IEZpbHRlclR5cGU7XHJcbiAgICBASW5wdXQoKSBpbmZvITogUGFydGlhbEZpbHRlcjtcclxuICAgIEBJbnB1dCgpIEN1cnJlbnRGaWx0ZXJUeXBlITogRmlsdGVyVHlwZTtcclxufVxyXG4iLCJAaWYgKEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLkRhdGVCZXR3ZWVuICYmIEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLklzTnVsbCkge1xyXG4gIDxtYXQtZm9ybS1maWVsZD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBuYW1lPVwiZmlsdGVyVmFsdWVcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlXCIgW21hdERhdGVwaWNrZXJdPVwiY2FsXCIvPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBjbGFzcz1cInNtYWxsLWJ1dHRvbiBkYXRlLXRvZ2dsZVwiIG1hdFN1ZmZpeCBbZm9yXT1cImNhbFwiIHByZXZlbnRFbnRlciAvPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyICNjYWwgLz5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG59XHJcbkBpZihDdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5EYXRlQmV0d2Vlbil7XHJcbiAgPG5nLWNvbnRhaW5lciBuZ01vZGVsR3JvdXA9XCJmaWx0ZXJWYWx1ZVwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibXktZmlsdGVyXCIgPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgbmFtZT1cIlN0YXJ0XCIgW25nTW9kZWxdPVwiaW5mby5maWx0ZXJWYWx1ZT8uU3RhcnRcIiAgcGxhY2Vob2xkZXI9XCJGcm9tXCIgW21hdERhdGVwaWNrZXJdPVwiZnJvbVZhbFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZnJvbVZhbC5vcGVuKClcIi8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IGNsYXNzPVwic21hbGwtYnV0dG9uIGRhdGUtdG9nZ2xlXCIgW2Zvcl09XCJmcm9tVmFsXCIgcHJldmVudEVudGVyIC8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZnJvbVZhbD48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IG5hbWU9XCJFbmRcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5FbmRcIiAgcGxhY2Vob2xkZXI9XCJUb1wiIFttYXREYXRlcGlja2VyXT1cInRvVmFsXCIgKGNsaWNrKT1cInRvVmFsLm9wZW4oKVwiLz5cclxuICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggY2xhc3M9XCJzbWFsbC1idXR0b24gZGF0ZS10b2dnbGVcIiBbZm9yXT1cInRvVmFsXCIgcHJldmVudEVudGVyIC8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjdG9WYWwgLz5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbn1cclxuXHJcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
2
+ import { FilterType } 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
+ constructor() {
9
+ this.FilterType = FilterType;
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: DateTimeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", 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.0", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtdGltZS1maWx0ZXIvZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtdGltZS1maWx0ZXIvZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBYTNELE1BQU0sT0FBTyx1QkFBdUI7SUFYcEM7UUFZRSxlQUFVLEdBQUcsVUFBVSxDQUFDO0tBR3pCOzhHQUpZLHVCQUF1QjtrR0FBdkIsdUJBQXVCLGlKQ2pCcEMsMm5CQVFDLDh5QkRNRyxXQUFXLGc0QkFIRSxDQUFDLEVBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUMsQ0FBQzs7MkZBTXRELHVCQUF1QjtrQkFYbkMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBRWQsdUJBQXVCLENBQUMsTUFBTSxpQkFFaEMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLENBQUMsY0FDckQsSUFBSSxXQUNQO3dCQUNQLFdBQVcsRUFBRSxxQkFBcUI7cUJBQ25DOzhCQUlRLElBQUk7c0JBQVosS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYXJ0aWFsRmlsdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXItaW5mbyc7XHJcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9maWx0ZXJUeXBlcyc7XHJcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1zTW9kdWxlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFByZXZlbnRFbnRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RiLWRhdGUtdGltZS1maWx0ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXRpbWUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBzdHlsZVVybHM6IFsnLi4vZmlsdGVyL2ZpbHRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHZpZXdQcm92aWRlcnM6IFt7cHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybX1dLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsIFByZXZlbnRFbnRlckRpcmVjdGl2ZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVUaW1lRmlsdGVyQ29tcG9uZW50IHtcclxuICBGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZTtcclxuICBASW5wdXQoKSBpbmZvITogUGFydGlhbEZpbHRlcjtcclxuICBASW5wdXQoKSBDdXJyZW50RmlsdGVyVHlwZSE6IEZpbHRlclR5cGU7XHJcbn1cclxuIiwiQGlmKEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLkRhdGVUaW1lQmV0d2VlbiAmJiBDdXJyZW50RmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5Jc051bGwpe1xyXG4gIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlXCIgcHJldmVudEVudGVyIG5hbWU9XCJmaWx0ZXJWYWx1ZVwiIGNsYXNzPVwib3AtZGF0ZS10aW1lLWlucHV0XCIvPlxyXG59XHJcbkBpZihDdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5EYXRlVGltZUJldHdlZW4pe1xyXG4gIDxuZy1jb250YWluZXIgbmdNb2RlbEdyb3VwPVwiZmlsdGVyVmFsdWVcIj5cclxuICAgIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5TdGFydFwiIHByZXZlbnRFbnRlciBuYW1lPVwiU3RhcnRcIiBjbGFzcz1cIm9wLWRhdGUtdGltZS1pbnB1dFwiLz5cclxuICAgIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5FbmRcIiBwcmV2ZW50RW50ZXIgbmFtZT1cIkVuZFwiIGNsYXNzPVwib3AtZGF0ZS10aW1lLWlucHV0XCIvPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG59Il19
@@ -0,0 +1,67 @@
1
+ import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';
2
+ import { filterTypeMap } from '../../classes/filter-info';
3
+ import { FilterType } from '../../enums/filterTypes';
4
+ import { FieldType } from '../../interfaces/report-def';
5
+ import { MatCardModule } from '@angular/material/card';
6
+ import { KeyValuePipe, NgTemplateOutlet } from '@angular/common';
7
+ import { FormsModule } from '@angular/forms';
8
+ import { PreventEnterDirective, SpaceCasePipe } from '../../../utilities';
9
+ import { MatButtonModule } from '@angular/material/button';
10
+ import { MatTooltipModule } from '@angular/material/tooltip';
11
+ import { MatIconModule } from '@angular/material/icon';
12
+ import { MatInputModule } from '@angular/material/input';
13
+ import { MatSelectModule } from '@angular/material/select';
14
+ import { NumberFilterComponent } from '../number-filter/number-filter.component';
15
+ import { DateFilterComponent } from '../date-filter/date-filter.component';
16
+ import { DateTimeFilterComponent } from '../date-time-filter/date-time-filter.component';
17
+ import { MatRadioModule } from '@angular/material/radio';
18
+ import { InFilterComponent } from '../in-filter/in-filter.component';
19
+ import { InListFilterComponent } from './in-list/in-list-filter.component';
20
+ import * as i0 from "@angular/core";
21
+ import * as i1 from "../../classes/table-store";
22
+ import * as i2 from "@angular/material/card";
23
+ import * as i3 from "@angular/forms";
24
+ import * as i4 from "@angular/material/button";
25
+ import * as i5 from "@angular/material/tooltip";
26
+ import * as i6 from "@angular/material/icon";
27
+ import * as i7 from "@angular/material/input";
28
+ import * as i8 from "@angular/material/form-field";
29
+ import * as i9 from "@angular/material/select";
30
+ import * as i10 from "@angular/material/core";
31
+ import * as i11 from "@angular/material/radio";
32
+ export class FilterComponent {
33
+ constructor(state) {
34
+ this.state = state;
35
+ this.filterTypes = filterTypeMap;
36
+ this.FilterType = FilterType;
37
+ this.FieldType = FieldType;
38
+ this.close = new EventEmitter();
39
+ }
40
+ ngOnInit() {
41
+ this.currentFilterType = this.filter.filterType;
42
+ this.filter = { ...this.filter };
43
+ }
44
+ onEnter(filter, event) {
45
+ event.preventDefault();
46
+ if (filter.filterValue != null && filter.filterType) {
47
+ this.state.addFilter(filter);
48
+ this.close.emit();
49
+ }
50
+ }
51
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FilterComponent, deps: [{ token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Component }); }
52
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: FilterComponent, isStandalone: true, selector: "tb-filter", inputs: { filter: "filter" }, outputs: { close: "close" }, ngImport: i0, template: "@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\" [panelWidth]=\"null\">\r\n @for (kvp of filterTypes[filter.fieldType] | keyvalue; track kvp.key) {\r\n <mat-option [value]=\"kvp.value\">\r\n {{ kvp.key }}\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: i2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2.MatCardContent, selector: "mat-card-content" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.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: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.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: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i9.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: i10.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { 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: i11.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i11.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 }); }
53
+ }
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: FilterComponent, decorators: [{
55
+ type: Component,
56
+ args: [{ selector: 'tb-filter', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
57
+ MatCardModule, FormsModule, SpaceCasePipe, MatButtonModule, MatTooltipModule, MatIconModule,
58
+ MatInputModule, MatSelectModule, KeyValuePipe, NumberFilterComponent,
59
+ DateFilterComponent, DateTimeFilterComponent, MatRadioModule, InFilterComponent, InListFilterComponent,
60
+ PreventEnterDirective, NgTemplateOutlet
61
+ ], template: "@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\" [panelWidth]=\"null\">\r\n @for (kvp of filterTypes[filter.fieldType] | keyvalue; track kvp.key) {\r\n <mat-option [value]=\"kvp.value\">\r\n {{ kvp.key }}\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"] }]
62
+ }], ctorParameters: () => [{ type: i1.TableStore }], propDecorators: { filter: [{
63
+ type: Input
64
+ }], close: [{
65
+ type: Output
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUE2QixNQUFNLDJCQUEyQixDQUFDO0FBRXJGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFlM0UsTUFBTSxPQUFPLGVBQWU7SUFPMUIsWUFBb0IsS0FBaUI7UUFBakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQU5yQyxnQkFBVyxHQUFHLGFBQWEsQ0FBQztRQUM1QixlQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFFWixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVJLENBQUM7SUFFMUMsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFDLENBQUE7SUFDaEMsQ0FBQztJQUNELE9BQU8sQ0FBQyxNQUFrQixFQUFFLEtBQVU7UUFDcEMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsQ0FBQztJQUNILENBQUM7OEdBbkJVLGVBQWU7a0dBQWYsZUFBZSxnSUNsQzVCLGkzSUF3RkEsOHlCRDVETSxhQUFhLDBOQUFFLFdBQVcsbWlDQUFFLGFBQWEsaURBQUUsZUFBZSx3VUFBRSxnQkFBZ0IsNFRBQUUsYUFBYSxtTEFDM0YsY0FBYyxxakJBQUUsZUFBZSxnckJBQUUsWUFBWSxpREFBRSxxQkFBcUIsb0dBQ3BFLG1CQUFtQixrR0FBRSx1QkFBdUIsc0dBQUUsY0FBYyx1bEJBQUUsaUJBQWlCLDRFQUFFLHFCQUFxQixxR0FDL0UsZ0JBQWdCOzsyRkFHaEMsZUFBZTtrQkFiM0IsU0FBUzsrQkFDSSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLGFBQWEsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhO3dCQUMzRixjQUFjLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxxQkFBcUI7d0JBQ3BFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUI7d0JBQ3RHLHFCQUFxQixFQUFFLGdCQUFnQjtxQkFDeEM7K0VBTU0sTUFBTTtzQkFBZCxLQUFLO2dCQUNJLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmaWx0ZXJUeXBlTWFwLCBGaWx0ZXJJbmZvLCBQYXJ0aWFsRmlsdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXItaW5mbyc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zL2ZpbHRlclR5cGVzJztcclxuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xyXG5pbXBvcnQgeyBLZXlWYWx1ZVBpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUHJldmVudEVudGVyRGlyZWN0aXZlLCBTcGFjZUNhc2VQaXBlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBOdW1iZXJGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi9udW1iZXItZmlsdGVyL251bWJlci1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0ZUZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGUtZmlsdGVyL2RhdGUtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGVUaW1lRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS10aW1lLWZpbHRlci9kYXRlLXRpbWUtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xyXG5pbXBvcnQgeyBJbkZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2luLWZpbHRlci9pbi1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5MaXN0RmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9pbi1saXN0L2luLWxpc3QtZmlsdGVyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndGItZmlsdGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgIE1hdENhcmRNb2R1bGUsIEZvcm1zTW9kdWxlLCBTcGFjZUNhc2VQaXBlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGUsIE1hdEljb25Nb2R1bGUsXHJcbiAgICAgIE1hdElucHV0TW9kdWxlLCBNYXRTZWxlY3RNb2R1bGUsIEtleVZhbHVlUGlwZSwgTnVtYmVyRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgICBEYXRlRmlsdGVyQ29tcG9uZW50LCBEYXRlVGltZUZpbHRlckNvbXBvbmVudCwgTWF0UmFkaW9Nb2R1bGUsIEluRmlsdGVyQ29tcG9uZW50LCBJbkxpc3RGaWx0ZXJDb21wb25lbnQsXHJcbiAgICAgIFByZXZlbnRFbnRlckRpcmVjdGl2ZSwgTmdUZW1wbGF0ZU91dGxldFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyQ29tcG9uZW50IHtcclxuICBmaWx0ZXJUeXBlcyA9IGZpbHRlclR5cGVNYXA7XHJcbiAgRmlsdGVyVHlwZSA9IEZpbHRlclR5cGU7XHJcbiAgRmllbGRUeXBlID0gRmllbGRUeXBlO1xyXG4gIEBJbnB1dCgpIGZpbHRlciE6IFBhcnRpYWxGaWx0ZXI7XHJcbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGN1cnJlbnRGaWx0ZXJUeXBlPzogRmlsdGVyVHlwZTtcclxuICBjb25zdHJ1Y3RvciggcHVibGljIHN0YXRlOiBUYWJsZVN0b3JlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRGaWx0ZXJUeXBlID0gdGhpcy5maWx0ZXIuZmlsdGVyVHlwZTtcclxuICAgIHRoaXMuZmlsdGVyID0gey4uLnRoaXMuZmlsdGVyfVxyXG4gIH1cclxuICBvbkVudGVyKGZpbHRlcjogRmlsdGVySW5mbywgZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGlmIChmaWx0ZXIuZmlsdGVyVmFsdWUgIT0gbnVsbCAmJiBmaWx0ZXIuZmlsdGVyVHlwZSkge1xyXG4gICAgICB0aGlzLnN0YXRlLmFkZEZpbHRlcihmaWx0ZXIpO1xyXG4gICAgICB0aGlzLmNsb3NlLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGlmIChmaWx0ZXIpIHtcclxuPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwiZmlsdGVyLWNhcmRcIj5cclxuICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgIDxmb3JtICNmb3JtPVwibmdGb3JtXCIgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXIoZm9ybS52YWx1ZSwkZXZlbnQpXCIgKGtleWRvd24uZXNjYXBlKT1cImNsb3NlLmVtaXQoKVwiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJmaWx0ZXJJZFwiIFtuZ01vZGVsXT1cImZpbHRlci5maWx0ZXJJZFwiIC8+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImtleVwiIFtuZ01vZGVsXT1cImZpbHRlci5rZXlcIiAvPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJmaWVsZFR5cGVcIiBbbmdNb2RlbF09XCJmaWx0ZXIuZmllbGRUeXBlXCIgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWQtcm93XCIgPlxyXG4gICAgICAgIDxoNCBjbGFzcz1cImZpbHRlci1uYW1lXCI+e3soZmlsdGVyLmtleSB8IHNwYWNlQ2FzZSl9fSBGaWx0ZXI8L2g0PlxyXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjYW5jZWwtYnV0dG9uIHNtYWxsLWJ1dHRvblwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2xvc2UuZW1pdCgpO1wiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiQ2xvc2VcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIiBjb2xvcj1cInByaW1hcnlcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlubGluZVwiPlxyXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJteS1maWx0ZXJcIiA+XHJcbiAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdCAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgRmlsdGVyIFR5cGVcIiBuYW1lPVwiZmlsdGVyVHlwZVwiICBbKG5nTW9kZWwpXT1cImN1cnJlbnRGaWx0ZXJUeXBlXCIgW3BhbmVsV2lkdGhdPVwibnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgICBAZm9yIChrdnAgb2YgZmlsdGVyVHlwZXNbZmlsdGVyLmZpZWxkVHlwZV0gfCBrZXl2YWx1ZTsgdHJhY2sga3ZwLmtleSkge1xyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJrdnAudmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7IGt2cC5rZXkgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgQGlmKGZpbHRlci5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5TdHJpbmcgfHwgZmlsdGVyLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkFycmF5IHx8IGZpbHRlci5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5MaW5rIHx8XHJcbiAgICAgICAgICBmaWx0ZXIuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuVW5rbm93biB8fCBmaWx0ZXIuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuUGhvbmVOdW1iZXIpIHtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIlN0cmluZ1wiIC8+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAZWxzZSBpZihmaWx0ZXIuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuTnVtYmVyIHx8IGZpbHRlci5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5DdXJyZW5jeSl7XHJcbiAgICAgICAgICAgIDx0Yi1udW1iZXItZmlsdGVyIFtpbmZvXT1cImZpbHRlclwiIFtDdXJyZW50RmlsdGVyVHlwZV09XCJjdXJyZW50RmlsdGVyVHlwZSFcIiAvPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGVsc2UgaWYoZmlsdGVyLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkJvb2xlYW4pe1xyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiQm9vbGVhblwiIC8+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAZWxzZSBpZihmaWx0ZXIuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRGF0ZSl7XHJcbiAgICAgICAgICAgIDx0Yi1kYXRlLWZpbHRlciBbaW5mb109XCJmaWx0ZXJcIiBbQ3VycmVudEZpbHRlclR5cGVdPVwiY3VycmVudEZpbHRlclR5cGUhXCIgLz5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBlbHNlIGlmKGZpbHRlci5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5EYXRlVGltZSl7XHJcbiAgICAgICAgICAgIDx0Yi1kYXRlLXRpbWUtZmlsdGVyIFtpbmZvXT1cImZpbHRlclwiIFtDdXJyZW50RmlsdGVyVHlwZV09XCJjdXJyZW50RmlsdGVyVHlwZSFcIiAvPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGVsc2UgaWYoZmlsdGVyLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkVudW0pe1xyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiRW51bVwiIC8+XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgQGlmKGN1cnJlbnRGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLklzTnVsbCl7XHJcbiAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgbmFtZT1cImZpbHRlclZhbHVlXCIgW25nTW9kZWxdPVwiZmlsdGVyLmZpbHRlclZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cInRydWVcIj5UcnVlPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJmYWxzZVwiPkZhbHNlPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwic3RhdGUuYWRkRmlsdGVyKGZvcm0udmFsdWUpXCIgZGlzYWJsZVJpcHBsZSBbZGlzYWJsZWRdPVwiZm9ybS52YWx1ZS5maWx0ZXJWYWx1ZT09dW5kZWZpbmVkIHx8ICFmb3JtLnZhbHVlLmZpbHRlclR5cGVcIj5cclxuICAgICAgICBBcHBseVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIFxyXG4gICAgXHJcbiAgICA8bmctdGVtcGxhdGUgI1N0cmluZz5cclxuICAgICAgQGlmKGN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLklzTnVsbCAmJiBjdXJyZW50RmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5Jbil7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibXktZmlsdGVyXCI+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgbmFtZT1cImZpbHRlclZhbHVlXCIgW25nTW9kZWxdPVwiZmlsdGVyLmZpbHRlclZhbHVlXCIgLz5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICB9IEBlbHNlIGlmKGN1cnJlbnRGaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLkluKSB7XHJcbiAgICAgICAgPGxpYi1pbi1maWx0ZXIgW3R5cGVdPVwiRmllbGRUeXBlLlN0cmluZ1wiIG5hbWU9J2ZpbHRlclZhbHVlJyBbKG5nTW9kZWwpXT1cImZpbHRlci5maWx0ZXJWYWx1ZVwiIC8+XHJcbiAgICAgIH1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICBcclxuICAgIDxuZy10ZW1wbGF0ZSAjQm9vbGVhbiA+XHJcbiAgICAgIEBpZihjdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5Cb29sZWFuRXF1YWxzKXtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3dpdGNoXCI+XHJcbiAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIG5hbWU9XCJmaWx0ZXJWYWx1ZVwiIFtuZ01vZGVsXT1cImZpbHRlci5maWx0ZXJWYWx1ZVwiID5cclxuICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cInRydWVcIiBwcmV2ZW50RW50ZXI+VHJ1ZTwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cImZhbHNlXCIgcHJldmVudEVudGVyPkZhbHNlPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgI0VudW0+XHJcbiAgICAgIEBpZihjdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5Jbil7XHJcbiAgICAgICAgPHRiLWluLWxpc3QtZmlsdGVyIFtrZXldPSdmaWx0ZXIua2V5JyBuYW1lPSdmaWx0ZXJWYWx1ZScgWyhuZ01vZGVsKV09J2ZpbHRlci5maWx0ZXJWYWx1ZScgPjwvdGItaW4tbGlzdC1maWx0ZXI+XHJcblxyXG4gICAgICB9XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbWF0LWNhcmQtY29udGVudD5cclxuPC9tYXQtY2FyZD5cclxufVxyXG4iXX0=
@@ -0,0 +1,101 @@
1
+ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { map, tap } from 'rxjs/operators';
4
+ import { FieldType } from '../../../interfaces/report-def';
5
+ import { AsyncPipe, KeyValuePipe } from '@angular/common';
6
+ import { MatCheckboxModule } from '@angular/material/checkbox';
7
+ import { SpaceCasePipe, StopPropagationDirective } from '../../../../utilities';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../../classes/table-store";
10
+ import * as i2 from "@angular/material/checkbox";
11
+ export class InListFilterComponent {
12
+ constructor(ref, tableState) {
13
+ this.ref = ref;
14
+ this.tableState = tableState;
15
+ this.value = [];
16
+ this.FieldType = FieldType;
17
+ this.onChange = (_) => { };
18
+ this.onTouched = () => { };
19
+ this.selectedKeys = [];
20
+ }
21
+ writeValue(obj) {
22
+ this.value = obj;
23
+ if (this.value) {
24
+ this.selectedKeys = this.value.map(f => f);
25
+ }
26
+ this.ref.markForCheck();
27
+ }
28
+ registerOnChange(fn) {
29
+ this.onChange = fn;
30
+ }
31
+ registerOnTouched(fn) {
32
+ this.onTouched = fn;
33
+ }
34
+ ngOnInit() {
35
+ this.keyValues$ = this.tableState.getMetaData$(this.key).pipe(tap(metaData => this.metaData = metaData), map(metaData => {
36
+ if (metaData.additional?.filterOptions?.filterableValues) {
37
+ return metaData.additional.filterOptions.filterableValues.reduce((prev, cur) => { prev[cur] = cur; return prev; }, {});
38
+ }
39
+ else {
40
+ if (metaData.fieldType === FieldType.Enum) {
41
+ return metaData.additional.enumMap;
42
+ }
43
+ }
44
+ return {};
45
+ }));
46
+ }
47
+ selectFilterChanged($event, val) {
48
+ if ($event.checked) {
49
+ this.selectedKeys = [...this.selectedKeys, val];
50
+ }
51
+ else {
52
+ this.selectedKeys = this.selectedKeys.filter(item => item !== val);
53
+ }
54
+ this.value = this.selectedKeys;
55
+ this.onChange(this.value);
56
+ }
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InListFilterComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Component }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: InListFilterComponent, isStandalone: true, selector: "tb-in-list-filter , [tb-in-list-filter]", inputs: { key: "key" }, providers: [{
59
+ provide: NG_VALUE_ACCESSOR,
60
+ useExisting: InListFilterComponent,
61
+ multi: true
62
+ }], ngImport: i0, template: `
63
+ @for (item of keyValues$ | async| keyvalue; track item.key) {
64
+ <div>
65
+ <mat-checkbox [checked]='selectedKeys.includes(item.key)' stop-propagation (change)='selectFilterChanged($event, item.key)' >
66
+ {{metaData.fieldType === FieldType.Enum ? (item.value | spaceCase) : item.value}}
67
+ </mat-checkbox>
68
+ </div>
69
+ }
70
+
71
+ `, isInline: true, dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2.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 }); }
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: InListFilterComponent, decorators: [{
74
+ type: Component,
75
+ args: [{
76
+ selector: 'tb-in-list-filter , [tb-in-list-filter]',
77
+ template: `
78
+ @for (item of keyValues$ | async| keyvalue; track item.key) {
79
+ <div>
80
+ <mat-checkbox [checked]='selectedKeys.includes(item.key)' stop-propagation (change)='selectFilterChanged($event, item.key)' >
81
+ {{metaData.fieldType === FieldType.Enum ? (item.value | spaceCase) : item.value}}
82
+ </mat-checkbox>
83
+ </div>
84
+ }
85
+
86
+ `,
87
+ changeDetection: ChangeDetectionStrategy.OnPush,
88
+ providers: [{
89
+ provide: NG_VALUE_ACCESSOR,
90
+ useExisting: InListFilterComponent,
91
+ multi: true
92
+ }],
93
+ standalone: true,
94
+ imports: [
95
+ AsyncPipe, KeyValuePipe, MatCheckboxModule, StopPropagationDirective, SpaceCasePipe
96
+ ]
97
+ }]
98
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.TableStore }], propDecorators: { key: [{
99
+ type: Input
100
+ }] } });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tbGlzdC1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9maWx0ZXIvaW4tbGlzdC9pbi1saXN0LWZpbHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQXdCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxQyxPQUFPLEVBQUUsU0FBUyxFQUFZLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUEwQmhGLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsWUFBb0IsR0FBc0IsRUFBVSxVQUFzQjtRQUF0RCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDMUUsVUFBSyxHQUFhLEVBQUUsQ0FBQztRQUNyQixjQUFTLEdBQUcsU0FBUyxDQUFDO1FBVXRCLGFBQVEsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBSzNCLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFPdEIsaUJBQVksR0FBYyxFQUFFLENBQUM7SUF4QmlELENBQUM7SUFHL0UsVUFBVSxDQUFDLEdBQWE7UUFDdEIs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QkFDaEIsT0FBTyxFQUFFO3dCQUNQLFNBQVMsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsYUFBYTtxQkFDcEY7aUJBQ0Y7K0dBd0JVLEdBQUc7c0JBQVgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xyXG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy9kaWN0aW9uYXJ5JztcclxuaW1wb3J0IHsgRmllbGRUeXBlLCBNZXRhRGF0YSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSwgS2V5VmFsdWVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IFNwYWNlQ2FzZVBpcGUsIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0Yi1pbi1saXN0LWZpbHRlciAsIFt0Yi1pbi1saXN0LWZpbHRlcl0nLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgQGZvciAoaXRlbSBvZiBrZXlWYWx1ZXMkIHwgYXN5bmN8IGtleXZhbHVlOyB0cmFjayBpdGVtLmtleSkge1xyXG4gICAgPGRpdj5cclxuICAgICAgPG1hdC1jaGVja2JveCBbY2hlY2tlZF09J3NlbGVjdGVkS2V5cy5pbmNsdWRlcyhpdGVtLmtleSknIHN0b3AtcHJvcGFnYXRpb24gKGNoYW5nZSk9J3NlbGVjdEZpbHRlckNoYW5nZWQoJGV2ZW50LCBpdGVtLmtleSknID5cclxuICAgICAgICB7e21ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkVudW0gPyAoaXRlbS52YWx1ZSB8IHNwYWNlQ2FzZSkgOiBpdGVtLnZhbHVlfX1cclxuICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcblxyXG4gIGAsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICB1c2VFeGlzdGluZzogSW5MaXN0RmlsdGVyQ29tcG9uZW50LFxyXG4gICAgbXVsdGk6IHRydWVcclxuICB9XSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEFzeW5jUGlwZSwgS2V5VmFsdWVQaXBlLCBNYXRDaGVja2JveE1vZHVsZSwgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLCBTcGFjZUNhc2VQaXBlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5MaXN0RmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgdGFibGVTdGF0ZTogVGFibGVTdG9yZSApIHt9XHJcbiAgdmFsdWU6IHN0cmluZ1tdID0gW107XHJcbiAgRmllbGRUeXBlID0gRmllbGRUeXBlO1xyXG4gIHdyaXRlVmFsdWUob2JqOiBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IG9iajtcclxuXHJcbiAgICBpZih0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRLZXlzID0gdGhpcy52YWx1ZS5tYXAoIGYgPT4gZiApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuICBASW5wdXQoKSBrZXkhOiBzdHJpbmc7XHJcblxyXG4gIGtleVZhbHVlcyQhIDogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PHN0cmluZz4+O1xyXG4gIHNlbGVjdGVkS2V5cyA6IHN0cmluZ1tdID0gW107XHJcbiAgbWV0YURhdGEhOiBNZXRhRGF0YTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmtleVZhbHVlcyQgPSB0aGlzLnRhYmxlU3RhdGUuZ2V0TWV0YURhdGEkKHRoaXMua2V5KS5waXBlKFxyXG4gICAgICB0YXAobWV0YURhdGEgPT4gdGhpcy5tZXRhRGF0YSA9IG1ldGFEYXRhKSxcclxuICAgICAgbWFwKCBtZXRhRGF0YSA9PiB7XHJcbiAgICAgICAgaWYobWV0YURhdGEuYWRkaXRpb25hbD8uZmlsdGVyT3B0aW9ucz8uZmlsdGVyYWJsZVZhbHVlcyApIHtcclxuICAgICAgICAgIHJldHVybiAgbWV0YURhdGEuYWRkaXRpb25hbC5maWx0ZXJPcHRpb25zLmZpbHRlcmFibGVWYWx1ZXMucmVkdWNlKCAocHJldjogYW55LCBjdXIpPT4geyBwcmV2W2N1cl0gPSBjdXI7IHJldHVybiBwcmV2IH0sIHt9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYobWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRW51bSApIHtcclxuICAgICAgICAgICAgcmV0dXJuIG1ldGFEYXRhLmFkZGl0aW9uYWwhLmVudW1NYXA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7fTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RGaWx0ZXJDaGFuZ2VkKCRldmVudCwgdmFsKSB7XHJcbiAgICBpZigkZXZlbnQuY2hlY2tlZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkS2V5cyA9IFsuLi50aGlzLnNlbGVjdGVkS2V5cywgdmFsXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRLZXlzID0gdGhpcy5zZWxlY3RlZEtleXMuZmlsdGVyKCBpdGVtID0+IGl0ZW0gIT09IHZhbCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuc2VsZWN0ZWRLZXlzO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==