@one-paragon/angular-utilities 0.3.11-beta.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) 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 +27 -0
  12. package/esm2022/http-request-state/HttpRequestStateStore.mjs +98 -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 +5 -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/table-builder/classes/DefaultSettings.mjs +6 -0
  40. package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +21 -0
  41. package/esm2022/table-builder/classes/TableBuilderConfig.mjs +18 -0
  42. package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +49 -0
  43. package/esm2022/table-builder/classes/TableState.mjs +44 -0
  44. package/esm2022/table-builder/classes/display-col.mjs +2 -0
  45. package/esm2022/table-builder/classes/filter-info.mjs +73 -0
  46. package/esm2022/table-builder/classes/table-builder-general-settings.mjs +86 -0
  47. package/esm2022/table-builder/classes/table-builder.mjs +41 -0
  48. package/esm2022/table-builder/classes/table-store.mjs +320 -0
  49. package/esm2022/table-builder/components/array-column.component.mjs +57 -0
  50. package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +106 -0
  51. package/esm2022/table-builder/components/column-builder/column-helpers.mjs +26 -0
  52. package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +29 -0
  53. package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +24 -0
  54. package/esm2022/table-builder/components/filter/filter.component.mjs +67 -0
  55. package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +101 -0
  56. package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +52 -0
  57. package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +192 -0
  58. package/esm2022/table-builder/components/generic-table/paginator.component.mjs +80 -0
  59. package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +23 -0
  60. package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +100 -0
  61. package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +64 -0
  62. package/esm2022/table-builder/components/index.mjs +10 -0
  63. package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +40 -0
  64. package/esm2022/table-builder/components/link-column.component.mjs +78 -0
  65. package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +29 -0
  66. package/esm2022/table-builder/components/scroll-strategy.mjs +63 -0
  67. package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +43 -0
  68. package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +81 -0
  69. package/esm2022/table-builder/components/table-container/table-container-imports.mjs +26 -0
  70. package/esm2022/table-builder/components/table-container/table-container.helpers/data-state.helpers.mjs +135 -0
  71. package/esm2022/table-builder/components/table-container/table-container.helpers/filter-state.helpers.mjs +83 -0
  72. package/esm2022/table-builder/components/table-container/table-container.helpers/groupBy.helpers.mjs +56 -0
  73. package/esm2022/table-builder/components/table-container/table-container.helpers/sort-state.helpers.mjs +36 -0
  74. package/esm2022/table-builder/components/table-container/table-container.mjs +291 -0
  75. package/esm2022/table-builder/components/table-container/tableProps.mjs +7 -0
  76. package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +105 -0
  77. package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +47 -0
  78. package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +36 -0
  79. package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +25 -0
  80. package/esm2022/table-builder/directives/custom-cell-directive.mjs +60 -0
  81. package/esm2022/table-builder/directives/index.mjs +6 -0
  82. package/esm2022/table-builder/directives/multi-sort.directive.mjs +50 -0
  83. package/esm2022/table-builder/directives/resize-column.directive.mjs +88 -0
  84. package/esm2022/table-builder/directives/table-wrapper.directive.mjs +20 -0
  85. package/esm2022/table-builder/directives/tb-filter.directive.mjs +410 -0
  86. package/esm2022/table-builder/enums/filterTypes.mjs +72 -0
  87. package/esm2022/table-builder/functions/boolean-filter-function.mjs +10 -0
  88. package/esm2022/table-builder/functions/date-filter-function.mjs +58 -0
  89. package/esm2022/table-builder/functions/download-data.mjs +12 -0
  90. package/esm2022/table-builder/functions/null-filter-function.mjs +8 -0
  91. package/esm2022/table-builder/functions/number-filter-function.mjs +32 -0
  92. package/esm2022/table-builder/functions/sort-data-function.mjs +17 -0
  93. package/esm2022/table-builder/functions/string-filter-function.mjs +41 -0
  94. package/esm2022/table-builder/interfaces/ColumnInfo.mjs +2 -0
  95. package/esm2022/table-builder/interfaces/dictionary.mjs +2 -0
  96. package/esm2022/table-builder/interfaces/report-def.mjs +45 -0
  97. package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +115 -0
  98. package/esm2022/table-builder/pipes/column-total.pipe.mjs +22 -0
  99. package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +18 -0
  100. package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +45 -0
  101. package/esm2022/table-builder/pipes/key-display.mjs +20 -0
  102. package/esm2022/table-builder/services/export-to-csv.service.mjs +88 -0
  103. package/esm2022/table-builder/services/link-creator.service.mjs +51 -0
  104. package/esm2022/table-builder/services/table-template-service.mjs +55 -0
  105. package/esm2022/table-builder/services/transform-creator.mjs +100 -0
  106. package/esm2022/table-builder/table-builder.module.mjs +124 -0
  107. package/esm2022/utilities/array-helpers.mjs +14 -0
  108. package/esm2022/utilities/directives/auto-focus.directive.mjs +27 -0
  109. package/esm2022/utilities/directives/clickEmitterDirective.mjs +22 -0
  110. package/esm2022/utilities/directives/clickSubject.mjs +28 -0
  111. package/esm2022/utilities/directives/conditional-classes.directive.mjs +36 -0
  112. package/esm2022/utilities/directives/dialog-service.mjs +23 -0
  113. package/esm2022/utilities/directives/dialog.mjs +139 -0
  114. package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +60 -0
  115. package/esm2022/utilities/directives/prevent-enter.directive.mjs +20 -0
  116. package/esm2022/utilities/directives/stop-propagation.directive.mjs +26 -0
  117. package/esm2022/utilities/directives/styler.mjs +42 -0
  118. package/esm2022/utilities/directives/trim-whitespace.directive.mjs +30 -0
  119. package/esm2022/utilities/index.mjs +16 -0
  120. package/esm2022/utilities/module.mjs +90 -0
  121. package/esm2022/utilities/pipes/function.pipe.mjs +22 -0
  122. package/esm2022/utilities/pipes/phone.pipe.mjs +20 -0
  123. package/esm2022/utilities/pipes/space-case.pipes.mjs +28 -0
  124. package/fesm2022/one-paragon-angular-utilities.mjs +5180 -0
  125. package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -0
  126. package/http-request-state/HttpRequestStateFactory.d.ts +15 -0
  127. package/http-request-state/HttpRequestStateStore.d.ts +49 -0
  128. package/http-request-state/directives/HttpStateDirectiveBase.d.ts +16 -0
  129. package/http-request-state/directives/http-error-state-directive.d.ts +12 -0
  130. package/http-request-state/directives/http-inProgress-state-directive.d.ts +12 -0
  131. package/http-request-state/directives/http-notStarted-state-directive.d.ts +12 -0
  132. package/http-request-state/directives/http-success-state-directive.d.ts +21 -0
  133. package/http-request-state/directives/request-state-directive.d.ts +35 -0
  134. package/http-request-state/helpers.d.ts +9 -0
  135. package/http-request-state/http-request-state.d.ts +12 -0
  136. package/http-request-state/http-state-module.d.ts +11 -0
  137. package/{src/http-request-state/index.ts → http-request-state/index.d.ts} +1 -1
  138. package/http-request-state/rxjs/getRequestorBody.d.ts +3 -0
  139. package/http-request-state/rxjs/getRequestorState.d.ts +3 -0
  140. package/http-request-state/rxjs/tapError.d.ts +3 -0
  141. package/http-request-state/rxjs/tapSuccess.d.ts +3 -0
  142. package/http-request-state/types.d.ts +36 -0
  143. package/index.d.ts +5 -0
  144. package/ngrx/actionable-selector.d.ts +17 -0
  145. package/ngrx/index.d.ts +1 -0
  146. package/package.json +30 -16
  147. package/{src/public-api.ts → public-api.d.ts} +16 -35
  148. package/rxjs/defaultShareReplay.d.ts +2 -0
  149. package/{src/rxjs/index.ts → rxjs/index.d.ts} +4 -4
  150. package/rxjs/mapError.d.ts +2 -0
  151. package/rxjs/rxjs-operators.d.ts +13 -0
  152. package/rxjs/subjectifier.d.ts +9 -0
  153. package/table-builder/classes/DefaultSettings.d.ts +9 -0
  154. package/table-builder/classes/MatTableObservableDataSource.d.ts +9 -0
  155. package/table-builder/classes/TableBuilderConfig.d.ts +21 -0
  156. package/table-builder/classes/TableBuilderDataSource.d.ts +11 -0
  157. package/table-builder/classes/TableState.d.ts +52 -0
  158. package/table-builder/classes/filter-info.d.ts +127 -0
  159. package/table-builder/classes/table-builder-general-settings.d.ts +55 -0
  160. package/table-builder/classes/table-builder.d.ts +12 -0
  161. package/table-builder/classes/table-store.d.ts +127 -0
  162. package/table-builder/components/array-column.component.d.ts +15 -0
  163. package/table-builder/components/column-builder/column-builder.component.d.ts +47 -0
  164. package/table-builder/components/column-builder/column-helpers.d.ts +28 -0
  165. package/table-builder/components/date-filter/date-filter.component.d.ts +10 -0
  166. package/table-builder/components/date-time-filter/date-time-filter.component.d.ts +10 -0
  167. package/table-builder/components/filter/filter.component.d.ts +112 -0
  168. package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +27 -0
  169. package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +16 -0
  170. package/table-builder/components/generic-table/generic-table.component.d.ts +62 -0
  171. package/table-builder/components/generic-table/paginator.component.d.ts +26 -0
  172. package/table-builder/components/group-by-list/group-by-list.component.d.ts +7 -0
  173. package/table-builder/components/header-menu/header-menu.component.d.ts +25 -0
  174. package/table-builder/components/in-filter/in-filter.component.d.ts +21 -0
  175. package/{src/table-builder/components/index.ts → table-builder/components/index.d.ts} +9 -9
  176. package/table-builder/components/initialization-component/initialization-component.d.ts +13 -0
  177. package/table-builder/components/link-column.component.d.ts +25 -0
  178. package/table-builder/components/number-filter/number-filter.component.d.ts +12 -0
  179. package/table-builder/components/scroll-strategy.d.ts +23 -0
  180. package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +24 -0
  181. package/table-builder/components/sort-menu/sort-menu.component.d.ts +25 -0
  182. package/{src/table-builder/components/table-container/table-container-imports.ts → table-builder/components/table-container/table-container-imports.d.ts} +14 -30
  183. package/table-builder/components/table-container/table-container.d.ts +70 -0
  184. package/table-builder/components/table-container/table-container.helpers/data-state.helpers.d.ts +6 -0
  185. package/table-builder/components/table-container/table-container.helpers/filter-state.helpers.d.ts +17 -0
  186. package/table-builder/components/table-container/table-container.helpers/groupBy.helpers.d.ts +15 -0
  187. package/table-builder/components/table-container/table-container.helpers/sort-state.helpers.d.ts +8 -0
  188. package/table-builder/components/table-container/tableProps.d.ts +11 -0
  189. package/table-builder/components/table-container/virtual-scroll-container.d.ts +19 -0
  190. package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +16 -0
  191. package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +14 -0
  192. package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +14 -0
  193. package/table-builder/directives/custom-cell-directive.d.ts +19 -0
  194. package/{src/table-builder/directives/index.ts → table-builder/directives/index.d.ts} +5 -6
  195. package/table-builder/directives/multi-sort.directive.d.ts +11 -0
  196. package/table-builder/directives/resize-column.directive.d.ts +44 -0
  197. package/table-builder/directives/table-wrapper.directive.d.ts +8 -0
  198. package/table-builder/directives/tb-filter.directive.d.ts +120 -0
  199. package/table-builder/enums/filterTypes.d.ts +77 -0
  200. package/table-builder/functions/boolean-filter-function.d.ts +3 -0
  201. package/table-builder/functions/date-filter-function.d.ts +4 -0
  202. package/table-builder/functions/download-data.d.ts +1 -0
  203. package/table-builder/functions/null-filter-function.d.ts +2 -0
  204. package/table-builder/functions/number-filter-function.d.ts +4 -0
  205. package/table-builder/functions/sort-data-function.d.ts +6 -0
  206. package/table-builder/functions/string-filter-function.d.ts +7 -0
  207. package/{src/table-builder/interfaces/ColumnInfo.ts → table-builder/interfaces/ColumnInfo.d.ts} +2 -3
  208. package/{src/table-builder/interfaces/dictionary.ts → table-builder/interfaces/dictionary.d.ts} +3 -3
  209. package/table-builder/interfaces/report-def.d.ts +148 -0
  210. package/table-builder/ngrx/tableBuilderStateStore.d.ts +62 -0
  211. package/table-builder/pipes/column-total.pipe.d.ts +8 -0
  212. package/table-builder/pipes/format-filter-type.pipe.d.ts +8 -0
  213. package/table-builder/pipes/format-filter-value.pipe.d.ts +14 -0
  214. package/table-builder/pipes/key-display.d.ts +11 -0
  215. package/table-builder/services/export-to-csv.service.d.ts +22 -0
  216. package/table-builder/services/link-creator.service.d.ts +16 -0
  217. package/table-builder/services/table-template-service.d.ts +15 -0
  218. package/table-builder/services/transform-creator.d.ts +21 -0
  219. package/table-builder/table-builder.module.d.ts +21 -0
  220. package/utilities/array-helpers.d.ts +1 -0
  221. package/utilities/directives/auto-focus.directive.d.ts +10 -0
  222. package/utilities/directives/clickEmitterDirective.d.ts +7 -0
  223. package/utilities/directives/clickSubject.d.ts +9 -0
  224. package/utilities/directives/conditional-classes.directive.d.ts +14 -0
  225. package/utilities/directives/dialog-service.d.ts +10 -0
  226. package/utilities/directives/dialog.d.ts +46 -0
  227. package/utilities/directives/mat-toggle-group-directive.d.ts +21 -0
  228. package/utilities/directives/prevent-enter.directive.d.ts +6 -0
  229. package/utilities/directives/stop-propagation.directive.d.ts +7 -0
  230. package/utilities/directives/styler.d.ts +17 -0
  231. package/utilities/directives/trim-whitespace.directive.d.ts +9 -0
  232. package/{src/utilities/index.ts → utilities/index.d.ts} +15 -22
  233. package/utilities/module.d.ts +19 -0
  234. package/utilities/pipes/function.pipe.d.ts +7 -0
  235. package/utilities/pipes/phone.pipe.d.ts +7 -0
  236. package/utilities/pipes/space-case.pipes.d.ts +17 -0
  237. package/karma.conf.js +0 -44
  238. package/ng-package.json +0 -7
  239. package/src/action-state/action-state-spinner/action-state-spinner.component.css +0 -16
  240. package/src/action-state/action-state-spinner/action-state-spinner.component.html +0 -6
  241. package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +0 -25
  242. package/src/action-state/action-state-spinner/action-state-spinner.component.ts +0 -26
  243. package/src/action-state/action-state-ui/action-state-ui.module.ts +0 -13
  244. package/src/action-state/ngrx-ext/ngrx-ext.module.ts +0 -15
  245. package/src/action-state/ngrx.ts +0 -69
  246. package/src/http-request-state/HttpRequestStateFactory.ts +0 -29
  247. package/src/http-request-state/HttpRequestStateStore.ts +0 -147
  248. package/src/http-request-state/directives/HttpStateDirectiveBase.ts +0 -38
  249. package/src/http-request-state/directives/http-error-state-directive.ts +0 -32
  250. package/src/http-request-state/directives/http-inProgress-state-directive.ts +0 -32
  251. package/src/http-request-state/directives/http-notStarted-state-directive.ts +0 -31
  252. package/src/http-request-state/directives/http-success-state-directive.ts +0 -40
  253. package/src/http-request-state/directives/request-state-directive.spec.ts +0 -72
  254. package/src/http-request-state/directives/request-state-directive.ts +0 -79
  255. package/src/http-request-state/helpers.ts +0 -30
  256. package/src/http-request-state/http-request-state.ts +0 -69
  257. package/src/http-request-state/http-state-module.ts +0 -23
  258. package/src/http-request-state/observable.spec.ts +0 -43
  259. package/src/http-request-state/rxjs/getRequestorBody.ts +0 -10
  260. package/src/http-request-state/rxjs/getRequestorState.ts +0 -8
  261. package/src/http-request-state/rxjs/tapError.ts +0 -16
  262. package/src/http-request-state/rxjs/tapSuccess.ts +0 -16
  263. package/src/http-request-state/strategies.spec.ts +0 -42
  264. package/src/http-request-state/types.ts +0 -50
  265. package/src/ngrx/actionable-selector.ts +0 -95
  266. package/src/ngrx/index.ts +0 -1
  267. package/src/rxjs/defaultShareReplay.ts +0 -8
  268. package/src/rxjs/mapError.ts +0 -8
  269. package/src/rxjs/rxjs-operators.ts +0 -132
  270. package/src/rxjs/subjectifier.ts +0 -15
  271. package/src/specs/clickSubject.spec.ts +0 -95
  272. package/src/specs/dialog.spec.ts +0 -101
  273. package/src/specs/toggleGroupDirective.spec.ts +0 -229
  274. package/src/table-builder/classes/DefaultSettings.ts +0 -11
  275. package/src/table-builder/classes/MatTableObservableDataSource.ts +0 -23
  276. package/src/table-builder/classes/TableBuilderConfig.ts +0 -35
  277. package/src/table-builder/classes/TableBuilderDataSource.ts +0 -57
  278. package/src/table-builder/classes/TableState.ts +0 -83
  279. package/src/table-builder/classes/filter-info.ts +0 -131
  280. package/src/table-builder/classes/table-builder-general-settings.ts +0 -90
  281. package/src/table-builder/classes/table-builder.ts +0 -52
  282. package/src/table-builder/classes/table-store.ts +0 -394
  283. package/src/table-builder/components/array-column.component.ts +0 -36
  284. package/src/table-builder/components/column-builder/column-builder.component.html +0 -58
  285. package/src/table-builder/components/column-builder/column-builder.component.scss +0 -43
  286. package/src/table-builder/components/column-builder/column-builder.component.spec.ts +0 -49
  287. package/src/table-builder/components/column-builder/column-builder.component.ts +0 -117
  288. package/src/table-builder/components/column-builder/column-helpers.ts +0 -38
  289. package/src/table-builder/components/date-filter/date-filter.component.html +0 -23
  290. package/src/table-builder/components/date-filter/date-filter.component.ts +0 -24
  291. package/src/table-builder/components/date-time-filter/date-time-filter.component.html +0 -9
  292. package/src/table-builder/components/date-time-filter/date-time-filter.component.ts +0 -22
  293. package/src/table-builder/components/filter/filter.component.html +0 -88
  294. package/src/table-builder/components/filter/filter.component.scss +0 -64
  295. package/src/table-builder/components/filter/filter.component.spec.ts +0 -87
  296. package/src/table-builder/components/filter/filter.component.ts +0 -55
  297. package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +0 -92
  298. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +0 -55
  299. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +0 -57
  300. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +0 -55
  301. package/src/table-builder/components/generic-table/generic-table.component.html +0 -71
  302. package/src/table-builder/components/generic-table/generic-table.component.scss +0 -51
  303. package/src/table-builder/components/generic-table/generic-table.component.ts +0 -220
  304. package/src/table-builder/components/generic-table/paginator.component.ts +0 -94
  305. package/src/table-builder/components/group-by-list/group-by-list.component.css +0 -8
  306. package/src/table-builder/components/group-by-list/group-by-list.component.html +0 -12
  307. package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +0 -23
  308. package/src/table-builder/components/group-by-list/group-by-list.component.ts +0 -21
  309. package/src/table-builder/components/header-menu/header-menu.component.html +0 -98
  310. package/src/table-builder/components/header-menu/header-menu.component.scss +0 -96
  311. package/src/table-builder/components/header-menu/header-menu.component.ts +0 -98
  312. package/src/table-builder/components/in-filter/in-filter.component.css +0 -3
  313. package/src/table-builder/components/in-filter/in-filter.component.html +0 -20
  314. package/src/table-builder/components/in-filter/in-filter.component.ts +0 -64
  315. package/src/table-builder/components/initialization-component/initialization-component.html +0 -29
  316. package/src/table-builder/components/initialization-component/initialization-component.ts +0 -24
  317. package/src/table-builder/components/link-column.component.ts +0 -47
  318. package/src/table-builder/components/number-filter/number-filter.component.css +0 -10
  319. package/src/table-builder/components/number-filter/number-filter.component.html +0 -19
  320. package/src/table-builder/components/number-filter/number-filter.component.spec.ts +0 -30
  321. package/src/table-builder/components/number-filter/number-filter.component.ts +0 -25
  322. package/src/table-builder/components/scroll-strategy.ts +0 -82
  323. package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +0 -62
  324. package/src/table-builder/components/sort-menu/sort-menu.component.html +0 -111
  325. package/src/table-builder/components/sort-menu/sort-menu.component.scss +0 -119
  326. package/src/table-builder/components/sort-menu/sort-menu.component.ts +0 -95
  327. package/src/table-builder/components/table-container/table-container.css +0 -45
  328. package/src/table-builder/components/table-container/table-container.helpers/data-state.helpers.ts +0 -141
  329. package/src/table-builder/components/table-container/table-container.helpers/filter-state.helpers.ts +0 -106
  330. package/src/table-builder/components/table-container/table-container.helpers/groupBy.helpers.ts +0 -69
  331. package/src/table-builder/components/table-container/table-container.helpers/sort-state.helpers.ts +0 -45
  332. package/src/table-builder/components/table-container/table-container.html +0 -117
  333. package/src/table-builder/components/table-container/table-container.spec.ts +0 -154
  334. package/src/table-builder/components/table-container/table-container.ts +0 -325
  335. package/src/table-builder/components/table-container/tableProps.ts +0 -18
  336. package/src/table-builder/components/table-container/virtual-scroll-container.ts +0 -126
  337. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +0 -31
  338. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +0 -52
  339. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +0 -42
  340. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +0 -10
  341. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +0 -86
  342. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +0 -38
  343. package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +0 -23
  344. package/src/table-builder/directives/custom-cell-directive.ts +0 -46
  345. package/src/table-builder/directives/multi-sort.directive.spec.ts +0 -124
  346. package/src/table-builder/directives/multi-sort.directive.ts +0 -49
  347. package/src/table-builder/directives/resize-column.directive.ts +0 -105
  348. package/src/table-builder/directives/table-wrapper.directive.ts +0 -14
  349. package/src/table-builder/directives/tb-filter.directive.ts +0 -370
  350. package/src/table-builder/enums/filterTypes.ts +0 -79
  351. package/src/table-builder/functions/boolean-filter-function.ts +0 -13
  352. package/src/table-builder/functions/date-filter-function.ts +0 -69
  353. package/src/table-builder/functions/download-data.ts +0 -11
  354. package/src/table-builder/functions/null-filter-function.ts +0 -9
  355. package/src/table-builder/functions/number-filter-function.ts +0 -42
  356. package/src/table-builder/functions/sort-data-function.ts +0 -23
  357. package/src/table-builder/functions/string-filter-function.ts +0 -52
  358. package/src/table-builder/interfaces/column-template.ts +0 -9
  359. package/src/table-builder/interfaces/report-def.ts +0 -153
  360. package/src/table-builder/ngrx/tableBuilderStateStore.ts +0 -143
  361. package/src/table-builder/pipes/column-total.pipe.ts +0 -17
  362. package/src/table-builder/pipes/format-filter-type.pipe.ts +0 -12
  363. package/src/table-builder/pipes/format-filter-value.pipe.ts +0 -41
  364. package/src/table-builder/pipes/key-display.ts +0 -16
  365. package/src/table-builder/services/export-to-csv.service.ts +0 -96
  366. package/src/table-builder/services/link-creator.service.ts +0 -68
  367. package/src/table-builder/services/table-template-service.ts +0 -55
  368. package/src/table-builder/services/transform-creator.ts +0 -92
  369. package/src/table-builder/specs/table-custom-filters.spec.ts +0 -262
  370. package/src/table-builder/styles/collapser.styles.scss +0 -15
  371. package/src/table-builder/table-builder.module.ts +0 -73
  372. package/src/test.ts +0 -17
  373. package/src/utilities/array-helpers.ts +0 -13
  374. package/src/utilities/directives/auto-focus.directive.ts +0 -20
  375. package/src/utilities/directives/clickEmitterDirective.ts +0 -16
  376. package/src/utilities/directives/clickSubject.ts +0 -20
  377. package/src/utilities/directives/conditional-classes.directive.ts +0 -36
  378. package/src/utilities/directives/dialog-service.ts +0 -19
  379. package/src/utilities/directives/dialog.ts +0 -142
  380. package/src/utilities/directives/mat-toggle-group-directive.ts +0 -61
  381. package/src/utilities/directives/prevent-enter.directive.ts +0 -13
  382. package/src/utilities/directives/stop-propagation.directive.ts +0 -20
  383. package/src/utilities/directives/styler.ts +0 -39
  384. package/src/utilities/directives/trim-whitespace.directive.ts +0 -21
  385. package/src/utilities/module.ts +0 -55
  386. package/src/utilities/pipes/function.pipe.ts +0 -16
  387. package/src/utilities/pipes/phone.pipe.ts +0 -15
  388. package/src/utilities/pipes/space-case.pipes.spec.ts +0 -47
  389. package/src/utilities/pipes/space-case.pipes.ts +0 -23
  390. package/tsconfig.lib.json +0 -19
  391. package/tsconfig.lib.prod.json +0 -10
  392. package/tsconfig.spec.json +0 -17
  393. /package/{src/http-request-state/directives/index.ts → http-request-state/directives/index.d.ts} +0 -0
  394. /package/{src/http-request-state/rxjs/index.ts → http-request-state/rxjs/index.d.ts} +0 -0
  395. /package/{src/table-builder/classes/display-col.ts → table-builder/classes/display-col.d.ts} +0 -0
@@ -1,325 +0,0 @@
1
- import {
2
- Component,
3
- Input,
4
- EventEmitter,
5
- Output,
6
- ContentChildren,
7
- QueryList,
8
- ChangeDetectionStrategy,
9
- Predicate,
10
- ViewChild,
11
- inject,
12
- TemplateRef,
13
- ContentChild,
14
- ElementRef,
15
- } from '@angular/core';
16
- import { BehaviorSubject, Observable, from, ReplaySubject, combineLatest, of } from 'rxjs';
17
- import { ArrayAdditional, FieldType, MetaData } from '../../interfaces/report-def';
18
- import { first, last, map, tap, withLatestFrom, mergeAll, scan, switchAll, startWith, timestamp } from 'rxjs/operators';
19
- import { TableBuilder } from '../../classes/table-builder';
20
- import { MatRowDef } from '@angular/material/table';
21
- import { CustomCellDirective, TableCustomFilterDirective, TableFilterDirective } from '../../directives';
22
- import { stateIs, TableStore } from '../../classes/table-store';
23
- import { mapArray, notNull } from '../../../rxjs/rxjs-operators';
24
- import { ExportToCsvService } from '../../services/export-to-csv.service';
25
- import { ArrayDefaults } from '../../classes/DefaultSettings';
26
- import { TableBuilderConfigToken } from '../../classes/TableBuilderConfig';
27
- import { InitializationState, TableState } from '../../classes/TableState';
28
- import { sortData } from '../../functions/sort-data-function';
29
- import { WrapperFilterStore } from '../table-container-filter/table-wrapper-filter-store';
30
- import { cloneDeep } from 'lodash';
31
- import { ColumnInfo } from '../../interfaces/ColumnInfo';
32
- import { defaultShareReplay } from '../../../rxjs';
33
- import { createFilterFunc, isCustomFilter, isFilterInfo } from '../../classes/filter-info';
34
- import { Dictionary } from '../../interfaces/dictionary';
35
- import { TableWrapperDirective } from '../../directives/table-wrapper.directive';
36
- import { createLinkCreatorDict } from '../../services/link-creator.service';
37
- import { TableBuilderStateStore } from '../../ngrx/tableBuilderStateStore';
38
- import { containerImports } from './table-container-imports';
39
- import { updateFilterInfoState, updateFilterPredicateState, updateFilterState } from './table-container.helpers/filter-state.helpers';
40
- import { initialSortState, updateSortState } from './table-container.helpers/sort-state.helpers';
41
- import { initialGroupByState, updateGroupByState } from './table-container.helpers/groupBy.helpers';
42
- import { sortAndFilterData } from './table-container.helpers/data-state.helpers';
43
- import { TableProps, defaultProps } from './tableProps';
44
- import { PaginatorComponent } from '../generic-table/paginator.component';
45
- import { TableBuilderDataSource } from '../../classes/TableBuilderDataSource';
46
-
47
-
48
- @Component({
49
- selector: 'tb-table-container',
50
- templateUrl: './table-container.html',
51
- styleUrls: ['./table-container.css','../../styles/collapser.styles.scss'],
52
- changeDetection: ChangeDetectionStrategy.OnPush,
53
- providers: [TableStore, ExportToCsvService, WrapperFilterStore],
54
- standalone: true,
55
- imports: containerImports,
56
-
57
- }) export class TableContainerComponent<T = any> {
58
- props: TableProps = defaultProps;
59
-
60
- @Input() set indexColumn(val: boolean) {
61
- this.props.indexColumn = val;
62
- }
63
- @Input() set selectionColumn(val: boolean) {
64
- this.props.selectionColumn = val;
65
- }
66
- @Input() set isSticky(val: boolean) {
67
- this.props.isSticky = val;
68
- }
69
- @Input() set stickyFooter(val: boolean) {
70
- this.props.stickyFooter = val;
71
- }
72
- @Input() set pageSize(value: number) {
73
- this.state.setPageSize(value);
74
- }
75
- @Input() set groupHeaderTemplate( template: TemplateRef<any>) {
76
- this.props.groupHeaderTemplate = template;
77
- }
78
-
79
- @ViewChild(PaginatorComponent) paginatorComponent?: PaginatorComponent;
80
-
81
- @ContentChildren(TableCustomFilterDirective, {descendants: true}) customFilterDirectives!: QueryList<TableCustomFilterDirective>;
82
- @ContentChildren(TableFilterDirective, {descendants: true}) filterDirectives!: QueryList<TableFilterDirective>;
83
- @ContentChildren(MatRowDef) customRows!: QueryList<MatRowDef<any>>;
84
- @ContentChildren(CustomCellDirective) customCells!: QueryList<CustomCellDirective>;
85
- @ContentChild('table', {read: ElementRef}) tableElRef!: ElementRef;
86
- @Input() tableId!: string;
87
- @Input() tableBuilder!: TableBuilder;
88
- @Input() trackBy!: string;
89
- @Input() inputFilters?: Observable<Array<Predicate<T>>>;
90
-
91
- @Output() selection$ = new EventEmitter();
92
- displayDataSubject = new ReplaySubject<Observable<T[]>>(1);
93
- displayData = this.displayDataSubject.pipe(
94
- switchAll(),
95
- defaultShareReplay(),
96
- );
97
-
98
- dataSubject = new ReplaySubject<Observable<T[]>>(1);
99
- @Output() data = this.dataSubject.pipe(
100
- switchAll(),
101
- defaultShareReplay(),
102
- );
103
- @Output() onStateReset = new EventEmitter();
104
- @Output() onSaveState = new EventEmitter();
105
- state = inject(TableStore);
106
- @Output() state$ = this.state.getSavableState().pipe(
107
- map(state => cloneDeep(state)),
108
- defaultShareReplay(),
109
- );
110
-
111
- collapseFooter$ = this.state.state$.pipe(map(state => state.persistedTableSettings.collapseFooter));
112
-
113
- myColumns$!: Observable<ColumnInfo[]>;
114
- stateKeys$?: Observable<string[] | null>;
115
- currentStateKey$?: Observable<string>;
116
-
117
- config = inject(TableBuilderConfigToken);
118
- exportToCsvService = inject(ExportToCsvService<T>);
119
- wrapper = inject(TableWrapperDirective, { optional: true });
120
- store = inject(TableBuilderStateStore);
121
- _ = this.state.on( this.state.getSavableState().pipe(last()), finalState => {
122
- if(this.tableId) {
123
- this.store.setLocalProfile({key:this.tableId,value: finalState});
124
- }
125
- });
126
-
127
-
128
- firstPage(): void {
129
- this.paginatorComponent?.paginator?.firstPage();
130
- }
131
-
132
- lastPage(): void {
133
- this.paginatorComponent?.paginator?.lastPage();
134
- }
135
-
136
- resetState() {
137
- this.customFilterDirectives.forEach( cf => cf.reset());
138
- this.filterDirectives.forEach( cf => cf.reset() );
139
- this.state.resetState();
140
- this.onStateReset.next(null)
141
- }
142
-
143
- initializeState() {
144
- this.state.setTableSettings(this.tableBuilder.settings);
145
- this.state.runOnceWhen(
146
- stateIs(InitializationState.MetaDataLoaded),
147
- () => {
148
- if(this.tableId) {
149
- const persistedState$ = this.store.selectLocalProfileState(this.tableId).pipe(
150
- tap( persistedState => {
151
- if(!persistedState) {
152
- this.state.setInitializationState(InitializationState.LoadedFromStore);
153
- }
154
- }),
155
- notNull(),
156
- );
157
- this.state.updateStateFromPersistedState(persistedState$);
158
- } else {
159
- this.state.setInitializationState(InitializationState.LoadedFromStore);
160
- }
161
- });
162
- }
163
- customFilters$ = new BehaviorSubject<Predicate<T>[]>([]);
164
- initializeData() {
165
-
166
- const predicateFilters$ = combineLatest([this.inputFilters?.pipe(startWith([])) ?? of([] as Predicate<T>[]), this.customFilters$])
167
- .pipe(map(([a, b]) => [...a, ...b]));
168
-
169
- const filters$ = combineLatest([
170
- this.state.filters$.pipe(scan(updateFilterInfoState, { allFilters: {} }), timestamp()),
171
- predicateFilters$.pipe(scan(updateFilterPredicateState, {allFilters: [] as Predicate<T>[]}), timestamp())
172
- ])
173
- .pipe(
174
- map(([filterInfo, pred]) => updateFilterState(filterInfo, pred))
175
- );
176
-
177
- const sortsState$ = this.state.sort$.pipe(scan(updateSortState, initialSortState));
178
-
179
- const sortedAndFilteredData$ = sortAndFilterData(this.tableBuilder.getData$(), sortsState$, filters$);
180
-
181
- const flatGrouped$ = combineLatest([sortedAndFilteredData$.pipe(timestamp()), this.state.groupByKeys$.pipe(timestamp()), this.state.expandedGroups$.pipe(timestamp())]).pipe(
182
- scan(updateGroupByState, initialGroupByState),
183
- map(({displayData}) => displayData),
184
- defaultShareReplay()
185
- );
186
-
187
- this.displayDataSubject.next(flatGrouped$);
188
- this.dataSubject.next(sortedAndFilteredData$);
189
-
190
- this.state.on(this.displayData, (data) => {
191
- this.state.updateState({dataLen: data.length})
192
- });
193
- }
194
- ngOnInit() {
195
- const ds = new TableBuilderDataSource<T>(
196
- this.displayData,
197
- this.state,
198
- );
199
- this.state.updateState({props: {
200
- dataSource: ds,
201
- ...this.props
202
- }})
203
- this.initializeState();
204
- this.initializeData();
205
-
206
- if(this.tableId) {
207
- this.stateKeys$ = this.store.selectLocalProfileKeys(this.tableId);
208
- this.currentStateKey$ = this.store.selectLocalProfileCurrentKey(this.tableId);
209
- }
210
- }
211
-
212
- exportToCsv(): void {
213
- const sorted = this.data.pipe(
214
- withLatestFrom(this.state.sort$),
215
- map(([data, sorted]) => sortData(data, sorted))
216
- );
217
- this.exportToCsvService.exportToCsv(sorted);
218
- }
219
-
220
- saveState() {
221
- this.state.getSavableState().pipe(
222
- first()
223
- ).subscribe(tableState => {
224
- this.onSaveState.next(null);
225
- this.store.saveLocalProfile({ key: this.tableId, value:tableState, persist: true} );
226
- this.store.setLocalProfile({ key: this.tableId, value:tableState } );
227
- });
228
- }
229
-
230
- setProfileState(val: string) {
231
- this.store.setLocalProfilesState({key:this.tableId, current: val});
232
- }
233
-
234
- deleteProfileState(stateKey: string) {
235
- this.store.deleteLocalProfile({key:this.tableId, stateKey});
236
- }
237
-
238
- ngAfterContentInit() {
239
- this.initializeColumns();
240
- this.state.runOnceWhen(
241
- stateIs(InitializationState.LoadedFromStore),
242
- state => {
243
- this.addFilterDirectives(state);
244
- this.state.updateState({initializationState: InitializationState.Ready});
245
- });
246
- }
247
-
248
- initializeColumns() {
249
- const customCellMap = new Map(this.customCells.map(cc => [cc.customCell,cc]));
250
- this.state.setMetaData(this.tableBuilder.metaData$!.pipe(
251
- map((mds) => {
252
- mds = mds.map(this.mapMetaDatas);
253
- return [
254
- ...mds,
255
- ...this.customCells.map( cc => cc.getMetaData(mds.find( item => item.key === cc.customCell )) )
256
- ]
257
- })
258
- ));
259
- this.state.setLinkMaps(this.tableBuilder.metaData$!.pipe(
260
- map(createLinkCreatorDict)
261
- ))
262
-
263
- this.myColumns$ = this.state.metaDataArray$.pipe(
264
- mapArray( metaData => ({metaData, customCell: customCellMap.get(metaData.key)!}))
265
- );
266
- }
267
-
268
- mapMetaDatas = (meta : MetaData<T>) => {
269
- if(meta.fieldType === FieldType.Array){
270
- const additional = {...meta.additional} as ArrayAdditional;
271
- additional.arrayStyle = additional?.arrayStyle ?? ArrayDefaults.arrayStyle;
272
- additional.limit = additional.limit ?? this.config.arrayInfo?.limit ?? ArrayDefaults.limit;
273
- return {...meta,additional}
274
- }
275
- return meta;
276
- }
277
-
278
- collapseHeader$ = this.state.state$.pipe(map(state => state.persistedTableSettings.collapseHeader));
279
-
280
- addFilterDirectives = (state: TableState) => {
281
- let allFilterDirectives = [...this.filterDirectives, ...this.customFilterDirectives];
282
- if(this.wrapper) {
283
- allFilterDirectives = [...allFilterDirectives, ...this.wrapper.registrations];
284
- }
285
-
286
- const customFilters: (TableCustomFilterDirective | TableFilterDirective )[] = [];
287
-
288
- allFilterDirectives.filter( f => !f.used).forEach( f => {
289
- f.used = true;
290
- if(f.savable) {
291
- var filter = state.filters[f.filterId];
292
- if(isFilterInfo(filter)) {
293
- const filterDirective: TableFilterDirective = f as TableFilterDirective;
294
- filterDirective.fieldType = filter.fieldType;
295
- filterDirective.filterType = filter.filterType;
296
- filterDirective.setFilterValue(filter.filterValue);
297
- filterDirective.key = filter.key;
298
- filterDirective.update();
299
- }
300
- if(isCustomFilter(filter)) {
301
- f.active = filter.active ?? false;
302
- }
303
- this.state.addFilter((f.filter$ as any));
304
- } else {
305
- customFilters.push(f);
306
- }
307
- });
308
-
309
- const customFilters$ = from( customFilters.map( cf => cf.filter$ )).pipe(
310
- mergeAll(),
311
- scan( (a,b)=> {
312
- if(b.active) {
313
- a[b.filterId] = isCustomFilter(b) ? b.predicate : createFilterFunc(b);
314
- } else {
315
- delete a[b.filterId] ;
316
- }
317
- return a;
318
- }, {} as Dictionary<Predicate<any>>),
319
- map( f => Object.values(f))
320
- );
321
- this.state.on(customFilters$, (f) => {
322
- this.customFilters$.next(f);
323
- });
324
- }
325
- }
@@ -1,18 +0,0 @@
1
- import { TemplateRef } from '@angular/core';
2
- import { TableBuilderDataSource } from '../../classes/TableBuilderDataSource';
3
-
4
- export interface TableProps {
5
- indexColumn: boolean;
6
- selectionColumn: boolean;
7
- isSticky: boolean;
8
- stickyFooter:boolean;
9
- groupHeaderTemplate?: TemplateRef<any>;
10
- dataSource?: TableBuilderDataSource<any>;
11
- }
12
-
13
- export const defaultProps: TableProps = {
14
- indexColumn: false,
15
- selectionColumn: false,
16
- isSticky: true,
17
- stickyFooter: false,
18
- }
@@ -1,126 +0,0 @@
1
- import {
2
- ChangeDetectionStrategy,
3
- Component,
4
- ElementRef,
5
- OnDestroy,
6
- OnInit,
7
- ViewChild,
8
- forwardRef,
9
- } from '@angular/core';
10
- import {
11
- CdkVirtualScrollViewport,
12
- ScrollingModule,
13
- VIRTUAL_SCROLL_STRATEGY,
14
- } from '@angular/cdk/scrolling';
15
- import { distinctUntilChanged, map } from 'rxjs';
16
- import { defaultShareReplay } from '../../../rxjs';
17
- import { TableStore } from '../../classes/table-store';
18
- import { TableVirtualScrollStrategy } from '../scroll-strategy';
19
- import { VirtualScrollOptions } from '../../classes/table-builder-general-settings';
20
-
21
- @Component({
22
- selector: 'tb-virtual-scroll-container',
23
- template: `
24
- <cdk-virtual-scroll-viewport>
25
- <ng-content/>
26
- </cdk-virtual-scroll-viewport>
27
- `,
28
- changeDetection: ChangeDetectionStrategy.OnPush,
29
- standalone: true,
30
- imports: [ScrollingModule],
31
- viewProviders: [
32
- {
33
- provide: VIRTUAL_SCROLL_STRATEGY,
34
- useFactory: (c: VirtualScrollContainer) => c.scrollStrategy,
35
- deps: [forwardRef(() => VirtualScrollContainer)],
36
- },
37
- ],
38
- })
39
- export class VirtualScrollContainer implements OnInit, OnDestroy {
40
- constructor(
41
- private state: TableStore
42
- ) {}
43
-
44
- @ViewChild(CdkVirtualScrollViewport, { static: true }) viewport!:CdkVirtualScrollViewport;
45
- defaultOptions = new VirtualScrollOptions();
46
- scrollStrategy = new TableVirtualScrollStrategy(
47
- (this.state.tableSettings().useVirtualScroll! as VirtualScrollOptions).itemHeight|| this.defaultOptions.itemHeight,
48
- (this.state.tableSettings().useVirtualScroll! as VirtualScrollOptions).headerOffset || this.defaultOptions.headerOffset
49
- )
50
- ngOnInit(): void {
51
- addEventListener('resize', this.resizeHandler);
52
- setTimeout(() => {
53
- this.setSize(this.viewport.elementRef);
54
- }, 0);
55
-
56
- if (this.state.tableSettings().usePaginator) {
57
- this.state.on(
58
- this.state.select((s) => s.pageSize),
59
- (len) => this.scrollStrategy.setDataLength(len)
60
- );
61
- } else {
62
- this.state.on(
63
- this.state.select((s) => s.dataLen),
64
- (len) => this.scrollStrategy.setDataLength(len)
65
- );
66
- }
67
- this.state.on(this.viewport.renderedRangeStream, (range) => {
68
- this.state.updateState({
69
- virtualStart: range.start,
70
- virtualEnd: range.end,
71
- });
72
- });
73
- var offset$ = this.viewport.scrolledIndexChange.pipe(
74
- map(() => this.viewport.getOffsetToRenderedContentStart() ?? 0),
75
- distinctUntilChanged(),
76
- defaultShareReplay()
77
- );
78
-
79
- this.state.on(offset$, (offset) => {
80
- this.state.updateState({ virtualScrollOffset: offset });
81
- });
82
- }
83
-
84
- ngOnDestroy(): void {
85
- removeEventListener('resize', this.resizeHandler);
86
- }
87
-
88
- setSize(el: ElementRef<HTMLElement>) {
89
- const vsViewport: Element = el.nativeElement;
90
- const vsContentWrapper: Element = vsViewport?.children[0];
91
- const hasHorizontalScrollBar =
92
- vsViewport?.scrollWidth > vsViewport?.clientWidth;
93
- const rect = vsContentWrapper.getBoundingClientRect();
94
- let wrapperHeight = 0;
95
- if (rect.top >= 0) {
96
- wrapperHeight = rect.bottom;
97
- } else {
98
- wrapperHeight = rect.bottom + rect.top;
99
- }
100
- if (wrapperHeight < window.innerHeight) {
101
- vsViewport.setAttribute(
102
- 'style',
103
- `height: ${
104
- vsContentWrapper.clientHeight + (hasHorizontalScrollBar ? 17 : 0)
105
- }px !important;`
106
- );
107
- } else {
108
- vsViewport.setAttribute(
109
- 'style',
110
- `height: ${
111
- window.innerHeight - el.nativeElement.offsetTop - (0 || 167)
112
- }px !important;`
113
- );
114
- }
115
- this.viewport?.checkViewportSize();
116
- const virtualScrollOffset = this.viewport.getOffsetToRenderedContentStart() ?? 0
117
- this.state.updateState({ virtualScrollOffset });
118
- }
119
-
120
- resizeHandler = () => {
121
- if (this.viewport) {
122
- this.setSize(this.viewport.elementRef);
123
- }
124
- };
125
-
126
- }
@@ -1,31 +0,0 @@
1
- <div class="d-w" *ngrxLet="currentFilters$ as currentFilters" >
2
-
3
- @if (currentFilters.length) {
4
- <button class="cancel-button" mat-icon-button (click)="clearAll()" matTooltip="Close all Filters Cards">
5
- <mat-icon class="cancel-button" color="primary">close</mat-icon>
6
- </button>
7
- <div class="float">
8
- @for (filter of currentFilters; track filter.key) {
9
- <div class="filter">
10
- <tb-filter [filter]="filter" (close)="deleteByIndex($index)" />
11
- </div>
12
- }
13
- </div>
14
- }
15
-
16
- <mat-chip-set *ngrxLet="filters$ as filters">
17
- @for (filter of filters; track filter.key) {
18
- <mat-chip (dblclick)="addFilter(filter)" (removed)="tableState.removeFilter(filter.filterId!)">
19
- {{ filter.key | keyDisplay | async }} {{filter.filterType | formatFilterType : filter.filterValue}} {{ filter.filterValue | formatFilterValue: filter.key : filter.filterType | async }}
20
- <mat-icon matChipRemove>cancel</mat-icon>
21
- </mat-chip>
22
- }
23
- @if (filters.length > 1) {
24
- <mat-chip (removed)="tableState.clearFilters()">
25
- Clear All
26
- <mat-icon matChipRemove>cancel</mat-icon>
27
- </mat-chip>
28
- }
29
- </mat-chip-set>
30
-
31
- </div>
@@ -1,52 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
2
- import { TableStore } from '../../../classes/table-store';
3
- import { FilterInfo, isFilterInfo } from '../../../classes/filter-info';
4
- import { map } from 'rxjs/operators';
5
- import { WrapperFilterStore } from '../table-wrapper-filter-store';
6
- import { Observable } from 'rxjs';
7
- import { LetDirective } from '@ngrx/component';
8
- import { AsyncPipe } from '@angular/common';
9
- import { MatButtonModule } from '@angular/material/button';
10
- import { MatTooltipModule } from '@angular/material/tooltip';
11
- import { MatIconModule } from '@angular/material/icon';
12
- import { FilterComponent } from '../../filter/filter.component';
13
- import { MatChipsModule } from '@angular/material/chips';
14
- import { KeyDisplayPipe } from '../../../pipes/key-display';
15
- import { FormatFilterTypePipe } from '../../../pipes/format-filter-type.pipe';
16
- import { FormatFilterValuePipe } from '../../../pipes/format-filter-value.pipe';
17
-
18
- @Component({
19
- selector: 'lib-filter-list',
20
- templateUrl: './filter-list.component.html',
21
- styleUrls: ['../gen-filter-displayer/gen-filter-displayer.component.css'],
22
- changeDetection: ChangeDetectionStrategy.OnPush,
23
- standalone: true,
24
- imports: [
25
- LetDirective, MatButtonModule, MatTooltipModule, MatIconModule, FilterComponent,
26
- MatChipsModule, AsyncPipe, KeyDisplayPipe, FormatFilterTypePipe, FormatFilterValuePipe
27
- ]
28
- })
29
- export class FilterChipsComponent {
30
-
31
- tableState = inject(TableStore);
32
- filterStore = inject(WrapperFilterStore);
33
-
34
- filters$: Observable<FilterInfo<any>[]> = this.tableState.filters$.pipe(
35
- map(filters =>
36
- Object.values(filters).filter(f => isFilterInfo(f) && !f._isExternallyManaged) as FilterInfo<any>[]
37
- ));
38
-
39
- deleteByIndex(index: number) {
40
- this.filterStore.deleteByIndex(index);
41
- }
42
-
43
- addFilter(filter:FilterInfo<any>){
44
- this.filterStore.addFilter(filter);
45
- }
46
-
47
- clearAll() {
48
- this.filterStore.clearAll();
49
- }
50
-
51
- currentFilters$ = this.filterStore.currentFilters$;
52
- }
@@ -1,42 +0,0 @@
1
- .filter {
2
- margin: 15px;
3
- display: inline-block;
4
- }
5
- .filter-button {
6
- color: cornflowerblue;
7
- font-size: 22px;
8
- font-weight: 700;
9
- }
10
-
11
- .cancel-button {
12
- margin-right: 30px;
13
- font-weight: 700;
14
- }
15
- .filter-wrapper{
16
- margin-top: 1em;
17
- margin-bottom: 1em;
18
- float: right;
19
- }
20
- .menu {
21
- margin-bottom: 10px;
22
- width: 109.1%;
23
- }
24
-
25
- .filter-labels {
26
- color: cornflowerblue;
27
- font-size: 17px;
28
- font-weight: 600;
29
- }
30
- .float{
31
- position: absolute;
32
- width: fit-content;
33
- z-index: 101;
34
- top: 10px;
35
- right: 180px;
36
- max-width: 90vw;
37
- }
38
- .d-w{
39
- display: flex;
40
- flex-direction: row;
41
- justify-content: flex-end;
42
- }
@@ -1,10 +0,0 @@
1
- <button stop-propagation class="filter-button" mat-icon-button [matMenuTriggerFor]="menu" matTooltip="Add Filter">
2
- <mat-icon class="filter-icon" color="primary">filter_list</mat-icon>
3
- </button>
4
- <mat-menu #menu="matMenu">
5
- @for (md of filterCols$ | async; track md.key) {
6
- <button (click)="addFilter(md)" mat-menu-item>
7
- <span class="filter-labels">{{md.displayName || (md.key | spaceCase)}}</span>
8
- </button>
9
- }
10
- </mat-menu>
@@ -1,86 +0,0 @@
1
- import { firstValueFrom, of } from 'rxjs';
2
- import { map } from 'rxjs/operators';
3
- import { TestBed, ComponentFixture, ComponentFixtureAutoDetect, tick, fakeAsync, flush } from '@angular/core/testing';
4
- import { GenFilterDisplayerComponent } from './gen-filter-displayer.component';
5
- import { SpaceCasePipe } from '../../../../utilities/pipes/space-case.pipes';
6
- import { FilterComponent } from '../../filter/filter.component';
7
- import { CommonModule } from '@angular/common';
8
- import { FormsModule } from '@angular/forms';
9
- import { FieldType } from '../../../interfaces/report-def';
10
- import { By } from '@angular/platform-browser';
11
- import { NoopAnimationsModule } from '@angular/platform-browser/animations';
12
- import { DateFilterComponent } from '../../date-filter/date-filter.component';
13
- import { TableBuilderModule } from '../../../table-builder.module';
14
- import { StoreModule } from '@ngrx/store';
15
- import { EffectsModule } from '@ngrx/effects';
16
- import { TableStore } from '../../../classes/table-store';
17
- import { WrapperFilterStore } from '../table-wrapper-filter-store';
18
-
19
-
20
- function getMetaData() {
21
- return of([
22
- {
23
- key: 'name',
24
- displayName: 'first name',
25
- fieldType: FieldType.String,
26
- additional: {},
27
- order: 1
28
- },
29
- {
30
- key: 'last',
31
- displayName: 'last name',
32
- fieldType: FieldType.String,
33
- additional: {},
34
- order: 2
35
- }
36
- ]);
37
- }
38
-
39
- describe('generic filter displayer', () => {
40
- let fixture: ComponentFixture<GenFilterDisplayerComponent>;
41
- let component: GenFilterDisplayerComponent;
42
-
43
- const clickFilter = (idx: number) => {
44
- const btn = fixture.debugElement.query(By.css('.filter-button')).nativeElement;
45
-
46
- btn.click();
47
- const menu = fixture.debugElement.queryAll(By.css('.mat-menu-item'));
48
- menu[idx].nativeElement.click();
49
- };
50
- beforeEach(() => {
51
-
52
- TestBed.configureTestingModule({
53
- declarations: [
54
- GenFilterDisplayerComponent,
55
- SpaceCasePipe,
56
- FilterComponent,
57
- DateFilterComponent,
58
- ],
59
- providers: [TableStore, WrapperFilterStore,
60
- { provide: ComponentFixtureAutoDetect, useValue: true }
61
- ],
62
- imports: [
63
- NoopAnimationsModule,
64
- CommonModule,
65
- FormsModule,
66
- TableBuilderModule.forRoot({ defaultTableState: { sorted: []} }),
67
- StoreModule.forRoot({}),
68
- EffectsModule.forRoot([])]
69
- })
70
- .compileComponents();
71
- fixture = TestBed.createComponent(GenFilterDisplayerComponent);
72
- component = fixture.componentInstance;
73
- component.filterCols$ = getMetaData();
74
- });
75
-
76
- it('should get the generic filter displayer component', () => {
77
- expect(component).toBeDefined();
78
- });
79
-
80
- it('should be able to create a filter', async () => {
81
- clickFilter(0);
82
- const filter = await firstValueFrom(fixture.componentInstance.filterStore.state$.pipe(map(x => x.filterInfo)));
83
- expect(filter.length).toBe(1);
84
- });
85
-
86
- });