@one-paragon/angular-utilities 0.1.21 → 0.1.23

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 (380) 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 +9 -0
  3. package/{src/action-state/index.ts → action-state/index.d.ts} +0 -4
  4. package/action-state/ngrx-ext/ngrx-ext.module.d.ts +8 -0
  5. package/action-state/ngrx.d.ts +31 -0
  6. package/esm2020/action-state/action-state-spinner/action-state-spinner.component.mjs +23 -0
  7. package/esm2020/action-state/action-state-ui/action-state-ui.module.mjs +28 -0
  8. package/esm2020/action-state/index.mjs +8 -0
  9. package/esm2020/action-state/ngrx-ext/ngrx-ext.module.mjs +23 -0
  10. package/esm2020/action-state/ngrx.mjs +42 -0
  11. package/esm2020/http-request-state/HttpRequestStateFactory.mjs +27 -0
  12. package/esm2020/http-request-state/HttpRequestStateStore.mjs +97 -0
  13. package/esm2020/http-request-state/directives/HttpStateDirectiveBase.mjs +34 -0
  14. package/esm2020/http-request-state/directives/http-error-state-directive.mjs +29 -0
  15. package/esm2020/http-request-state/directives/http-inProgress-state-directive.mjs +29 -0
  16. package/esm2020/http-request-state/directives/http-notStarted-state-directive.mjs +29 -0
  17. package/esm2020/http-request-state/directives/http-success-state-directive.mjs +29 -0
  18. package/esm2020/http-request-state/directives/index.mjs +6 -0
  19. package/esm2020/http-request-state/directives/request-state-directive.mjs +57 -0
  20. package/esm2020/http-request-state/helpers.mjs +22 -0
  21. package/esm2020/http-request-state/http-request-state.mjs +39 -0
  22. package/esm2020/http-request-state/http-state-module.mjs +41 -0
  23. package/esm2020/http-request-state/index.mjs +7 -0
  24. package/esm2020/http-request-state/rxjs/getRequestorBody.mjs +4 -0
  25. package/esm2020/http-request-state/rxjs/getRequestorState.mjs +3 -0
  26. package/esm2020/http-request-state/rxjs/index.mjs +5 -0
  27. package/esm2020/http-request-state/rxjs/tapError.mjs +12 -0
  28. package/esm2020/http-request-state/rxjs/tapSuccess.mjs +12 -0
  29. package/esm2020/http-request-state/types.mjs +16 -0
  30. package/esm2020/ngrx/actionable-selector.mjs +76 -0
  31. package/esm2020/ngrx/index.mjs +2 -0
  32. package/esm2020/one-paragon-angular-utilities.mjs +5 -0
  33. package/esm2020/public-api.mjs +19 -0
  34. package/esm2020/rxjs/defaultShareReplay.mjs +7 -0
  35. package/esm2020/rxjs/index.mjs +5 -0
  36. package/esm2020/rxjs/mapError.mjs +8 -0
  37. package/esm2020/rxjs/rxjs-operators.mjs +91 -0
  38. package/esm2020/rxjs/subjectifier.mjs +15 -0
  39. package/esm2020/table-builder/classes/DefaultSettings.mjs +6 -0
  40. package/esm2020/table-builder/classes/GenericTableDataSource.mjs +13 -0
  41. package/esm2020/table-builder/classes/MatTableObservableDataSource.mjs +21 -0
  42. package/esm2020/table-builder/classes/TableBuilderConfig.mjs +3 -0
  43. package/esm2020/table-builder/classes/TableState.mjs +32 -0
  44. package/esm2020/table-builder/classes/data-filter.mjs +26 -0
  45. package/esm2020/table-builder/classes/display-col.mjs +2 -0
  46. package/esm2020/table-builder/classes/filter-info.mjs +71 -0
  47. package/esm2020/table-builder/classes/table-builder-general-settings.mjs +68 -0
  48. package/esm2020/table-builder/classes/table-builder.mjs +61 -0
  49. package/esm2020/table-builder/classes/table-store.mjs +292 -0
  50. package/esm2020/table-builder/components/array-column.component.mjs +57 -0
  51. package/esm2020/table-builder/components/column-builder/column-builder.component.mjs +111 -0
  52. package/esm2020/table-builder/components/date-filter/date-filter.component.mjs +25 -0
  53. package/esm2020/table-builder/components/filter/filter.component.mjs +53 -0
  54. package/esm2020/table-builder/components/filter/in-list/in-list-filter.component.mjs +91 -0
  55. package/esm2020/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +45 -0
  56. package/esm2020/table-builder/components/generic-table/generic-table.component.mjs +198 -0
  57. package/esm2020/table-builder/components/generic-table/paginator.component.mjs +74 -0
  58. package/esm2020/table-builder/components/group-by-list/group-by-list.component.mjs +22 -0
  59. package/esm2020/table-builder/components/header-menu/header-menu.component.mjs +90 -0
  60. package/esm2020/table-builder/components/in-filter/in-filter.component.mjs +63 -0
  61. package/esm2020/table-builder/components/index.mjs +10 -0
  62. package/esm2020/table-builder/components/initialization-component/initialization-component.mjs +33 -0
  63. package/esm2020/table-builder/components/link-column.component.mjs +66 -0
  64. package/esm2020/table-builder/components/number-filter/number-filter.component.mjs +27 -0
  65. package/esm2020/table-builder/components/sort-menu/sort-menu.component-store.mjs +42 -0
  66. package/esm2020/table-builder/components/sort-menu/sort-menu.component.mjs +75 -0
  67. package/esm2020/table-builder/components/table-container/table-container.mjs +312 -0
  68. package/esm2020/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +42 -0
  69. package/esm2020/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +30 -0
  70. package/esm2020/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +25 -0
  71. package/esm2020/table-builder/directives/custom-cell-directive.mjs +59 -0
  72. package/esm2020/table-builder/directives/index.mjs +6 -0
  73. package/esm2020/table-builder/directives/multi-sort.directive.mjs +42 -0
  74. package/esm2020/table-builder/directives/resize-column.directive.mjs +86 -0
  75. package/esm2020/table-builder/directives/table-wrapper.directive.mjs +26 -0
  76. package/esm2020/table-builder/directives/tb-filter.directive.mjs +403 -0
  77. package/esm2020/table-builder/enums/filterTypes.mjs +59 -0
  78. package/esm2020/table-builder/functions/boolean-filter-function.mjs +10 -0
  79. package/esm2020/table-builder/functions/date-filter-function.mjs +32 -0
  80. package/esm2020/table-builder/functions/download-data.mjs +12 -0
  81. package/esm2020/table-builder/functions/null-filter-function.mjs +8 -0
  82. package/esm2020/table-builder/functions/number-filter-function.mjs +32 -0
  83. package/esm2020/table-builder/functions/sort-data-function.mjs +5 -0
  84. package/esm2020/table-builder/functions/string-filter-function.mjs +41 -0
  85. package/esm2020/table-builder/interfaces/ColumnInfo.mjs +2 -0
  86. package/esm2020/table-builder/interfaces/dictionary.mjs +2 -0
  87. package/esm2020/table-builder/interfaces/report-def.mjs +34 -0
  88. package/esm2020/table-builder/material.module.mjs +207 -0
  89. package/esm2020/table-builder/ngrx/actions.mjs +5 -0
  90. package/esm2020/table-builder/ngrx/effects.mjs +48 -0
  91. package/esm2020/table-builder/ngrx/reducer.mjs +52 -0
  92. package/esm2020/table-builder/ngrx/selectors.mjs +24 -0
  93. package/esm2020/table-builder/pipes/column-total.pipe.mjs +20 -0
  94. package/esm2020/table-builder/pipes/format-filter-type.pipe.mjs +18 -0
  95. package/esm2020/table-builder/pipes/format-filter-value.pipe.mjs +46 -0
  96. package/esm2020/table-builder/pipes/key-display.mjs +20 -0
  97. package/esm2020/table-builder/services/export-to-csv.service.mjs +84 -0
  98. package/esm2020/table-builder/services/link-creator.service.mjs +42 -0
  99. package/esm2020/table-builder/services/table-template-service.mjs +43 -0
  100. package/esm2020/table-builder/services/transform-creator.mjs +70 -0
  101. package/esm2020/table-builder/table-builder.module.mjs +204 -0
  102. package/esm2020/utilities/directives/auto-focus.directive.mjs +26 -0
  103. package/esm2020/utilities/directives/clickEmitterDirective.mjs +21 -0
  104. package/esm2020/utilities/directives/clickSubject.mjs +27 -0
  105. package/esm2020/utilities/directives/conditional-classes.directive.mjs +35 -0
  106. package/esm2020/utilities/directives/dialog-service.mjs +25 -0
  107. package/esm2020/utilities/directives/dialog.mjs +137 -0
  108. package/esm2020/utilities/directives/mat-toggle-group-directive.mjs +59 -0
  109. package/esm2020/utilities/directives/prevent-enter.directive.mjs +19 -0
  110. package/esm2020/utilities/directives/stop-propagation.directive.mjs +25 -0
  111. package/esm2020/utilities/directives/styler.mjs +26 -0
  112. package/esm2020/utilities/directives/trim-whitespace.directive.mjs +29 -0
  113. package/esm2020/utilities/index.mjs +16 -0
  114. package/esm2020/utilities/module.mjs +91 -0
  115. package/esm2020/utilities/pipes/function.pipe.mjs +21 -0
  116. package/esm2020/utilities/pipes/phone.pipe.mjs +20 -0
  117. package/esm2020/utilities/pipes/space-case.pipes.mjs +28 -0
  118. package/fesm2015/one-paragon-angular-utilities.mjs +4687 -0
  119. package/fesm2015/one-paragon-angular-utilities.mjs.map +1 -0
  120. package/fesm2020/one-paragon-angular-utilities.mjs +4655 -0
  121. package/fesm2020/one-paragon-angular-utilities.mjs.map +1 -0
  122. package/http-request-state/HttpRequestStateFactory.d.ts +14 -0
  123. package/http-request-state/HttpRequestStateStore.d.ts +48 -0
  124. package/http-request-state/directives/HttpStateDirectiveBase.d.ts +16 -0
  125. package/http-request-state/directives/http-error-state-directive.d.ts +12 -0
  126. package/http-request-state/directives/http-inProgress-state-directive.d.ts +12 -0
  127. package/http-request-state/directives/http-notStarted-state-directive.d.ts +12 -0
  128. package/http-request-state/directives/http-success-state-directive.d.ts +14 -0
  129. package/{src/http-request-state/directives/index.ts → http-request-state/directives/index.d.ts} +5 -5
  130. package/http-request-state/directives/request-state-directive.d.ts +29 -0
  131. package/http-request-state/helpers.d.ts +9 -0
  132. package/http-request-state/http-request-state.d.ts +12 -0
  133. package/http-request-state/http-state-module.d.ts +11 -0
  134. package/{src/http-request-state/index.ts → http-request-state/index.d.ts} +6 -6
  135. package/http-request-state/rxjs/getRequestorBody.d.ts +3 -0
  136. package/http-request-state/rxjs/getRequestorState.d.ts +3 -0
  137. package/{src/http-request-state/rxjs/index.ts → http-request-state/rxjs/index.d.ts} +4 -4
  138. package/http-request-state/rxjs/tapError.d.ts +3 -0
  139. package/http-request-state/rxjs/tapSuccess.d.ts +3 -0
  140. package/http-request-state/types.d.ts +36 -0
  141. package/index.d.ts +5 -0
  142. package/ngrx/actionable-selector.d.ts +15 -0
  143. package/ngrx/index.d.ts +1 -0
  144. package/package.json +36 -16
  145. package/{src/public-api.ts → public-api.d.ts} +3 -21
  146. package/rxjs/defaultShareReplay.d.ts +2 -0
  147. package/{src/rxjs/index.ts → rxjs/index.d.ts} +1 -1
  148. package/rxjs/mapError.d.ts +2 -0
  149. package/rxjs/rxjs-operators.d.ts +12 -0
  150. package/rxjs/subjectifier.d.ts +9 -0
  151. package/table-builder/classes/DefaultSettings.d.ts +8 -0
  152. package/table-builder/classes/GenericTableDataSource.d.ts +8 -0
  153. package/table-builder/classes/MatTableObservableDataSource.d.ts +9 -0
  154. package/table-builder/classes/TableBuilderConfig.d.ts +19 -0
  155. package/table-builder/classes/TableState.d.ts +46 -0
  156. package/table-builder/classes/data-filter.d.ts +9 -0
  157. package/{src/table-builder/classes/display-col.ts → table-builder/classes/display-col.d.ts} +5 -5
  158. package/table-builder/classes/filter-info.d.ts +40 -0
  159. package/table-builder/classes/table-builder-general-settings.d.ts +43 -0
  160. package/table-builder/classes/table-builder.d.ts +14 -0
  161. package/table-builder/classes/table-store.d.ts +114 -0
  162. package/table-builder/components/array-column.component.d.ts +14 -0
  163. package/table-builder/components/column-builder/column-builder.component.d.ts +50 -0
  164. package/table-builder/components/date-filter/date-filter.component.d.ts +10 -0
  165. package/table-builder/components/filter/filter.component.d.ts +294 -0
  166. package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +27 -0
  167. package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +16 -0
  168. package/table-builder/components/generic-table/generic-table.component.d.ts +71 -0
  169. package/table-builder/components/generic-table/paginator.component.d.ts +28 -0
  170. package/table-builder/components/group-by-list/group-by-list.component.d.ts +10 -0
  171. package/table-builder/components/header-menu/header-menu.component.d.ts +25 -0
  172. package/table-builder/components/in-filter/in-filter.component.d.ts +21 -0
  173. package/{src/table-builder/components/index.ts → table-builder/components/index.d.ts} +0 -0
  174. package/table-builder/components/initialization-component/initialization-component.d.ts +12 -0
  175. package/table-builder/components/link-column.component.d.ts +17 -0
  176. package/table-builder/components/number-filter/number-filter.component.d.ts +12 -0
  177. package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +24 -0
  178. package/table-builder/components/sort-menu/sort-menu.component.d.ts +25 -0
  179. package/table-builder/components/table-container/table-container.d.ts +65 -0
  180. package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +17 -0
  181. package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +14 -0
  182. package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +14 -0
  183. package/table-builder/directives/custom-cell-directive.d.ts +19 -0
  184. package/{src/table-builder/directives/index.ts → table-builder/directives/index.d.ts} +0 -1
  185. package/table-builder/directives/multi-sort.directive.d.ts +11 -0
  186. package/table-builder/directives/resize-column.directive.d.ts +43 -0
  187. package/table-builder/directives/table-wrapper.directive.d.ts +11 -0
  188. package/table-builder/directives/tb-filter.directive.d.ts +120 -0
  189. package/table-builder/enums/filterTypes.d.ts +31 -0
  190. package/table-builder/functions/boolean-filter-function.d.ts +3 -0
  191. package/table-builder/functions/date-filter-function.d.ts +3 -0
  192. package/table-builder/functions/download-data.d.ts +1 -0
  193. package/table-builder/functions/null-filter-function.d.ts +2 -0
  194. package/table-builder/functions/number-filter-function.d.ts +4 -0
  195. package/table-builder/functions/sort-data-function.d.ts +3 -0
  196. package/table-builder/functions/string-filter-function.d.ts +7 -0
  197. package/{src/table-builder/interfaces/ColumnInfo.ts → table-builder/interfaces/ColumnInfo.d.ts} +6 -7
  198. package/{src/table-builder/interfaces/dictionary.ts → table-builder/interfaces/dictionary.d.ts} +1 -1
  199. package/table-builder/interfaces/report-def.d.ts +135 -0
  200. package/table-builder/material.module.d.ts +32 -0
  201. package/table-builder/ngrx/actions.d.ts +23 -0
  202. package/table-builder/ngrx/effects.d.ts +19 -0
  203. package/table-builder/ngrx/reducer.d.ts +15 -0
  204. package/table-builder/ngrx/selectors.d.ts +22 -0
  205. package/table-builder/pipes/column-total.pipe.d.ts +8 -0
  206. package/table-builder/pipes/format-filter-type.pipe.d.ts +8 -0
  207. package/table-builder/pipes/format-filter-value.pipe.d.ts +14 -0
  208. package/table-builder/pipes/key-display.d.ts +11 -0
  209. package/table-builder/services/export-to-csv.service.d.ts +22 -0
  210. package/table-builder/services/link-creator.service.d.ts +12 -0
  211. package/table-builder/services/table-template-service.d.ts +14 -0
  212. package/table-builder/services/transform-creator.d.ts +19 -0
  213. package/table-builder/table-builder.module.d.ts +45 -0
  214. package/utilities/directives/auto-focus.directive.d.ts +10 -0
  215. package/utilities/directives/clickEmitterDirective.d.ts +7 -0
  216. package/utilities/directives/clickSubject.d.ts +9 -0
  217. package/utilities/directives/conditional-classes.directive.d.ts +14 -0
  218. package/utilities/directives/dialog-service.d.ts +10 -0
  219. package/utilities/directives/dialog.d.ts +46 -0
  220. package/utilities/directives/mat-toggle-group-directive.d.ts +21 -0
  221. package/utilities/directives/prevent-enter.directive.d.ts +6 -0
  222. package/utilities/directives/stop-propagation.directive.d.ts +7 -0
  223. package/utilities/directives/styler.d.ts +9 -0
  224. package/utilities/directives/trim-whitespace.directive.d.ts +9 -0
  225. package/{src/utilities/index.ts → utilities/index.d.ts} +1 -8
  226. package/utilities/module.d.ts +19 -0
  227. package/utilities/pipes/function.pipe.d.ts +7 -0
  228. package/utilities/pipes/phone.pipe.d.ts +7 -0
  229. package/utilities/pipes/space-case.pipes.d.ts +17 -0
  230. package/karma.conf.js +0 -44
  231. package/ng-package.json +0 -7
  232. package/src/action-state/action-state-spinner/action-state-spinner.component.css +0 -16
  233. package/src/action-state/action-state-spinner/action-state-spinner.component.html +0 -3
  234. package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +0 -25
  235. package/src/action-state/action-state-spinner/action-state-spinner.component.ts +0 -22
  236. package/src/action-state/action-state-ui/action-state-ui.module.ts +0 -19
  237. package/src/action-state/ngrx-ext/ngrx-ext.module.ts +0 -15
  238. package/src/action-state/ngrx.ts +0 -69
  239. package/src/http-request-state/HttpRequestStateFactory.ts +0 -26
  240. package/src/http-request-state/HttpRequestStateStore.ts +0 -147
  241. package/src/http-request-state/directives/HttpStateDirectiveBase.ts +0 -38
  242. package/src/http-request-state/directives/http-error-state-directive.ts +0 -32
  243. package/src/http-request-state/directives/http-inProgress-state-directive.ts +0 -32
  244. package/src/http-request-state/directives/http-notStarted-state-directive.ts +0 -31
  245. package/src/http-request-state/directives/http-success-state-directive.ts +0 -31
  246. package/src/http-request-state/directives/request-state-directive.spec.ts +0 -72
  247. package/src/http-request-state/directives/request-state-directive.ts +0 -70
  248. package/src/http-request-state/helpers.ts +0 -30
  249. package/src/http-request-state/http-request-state.ts +0 -69
  250. package/src/http-request-state/http-state-module.ts +0 -26
  251. package/src/http-request-state/observable.spec.ts +0 -43
  252. package/src/http-request-state/rxjs/getRequestorBody.ts +0 -10
  253. package/src/http-request-state/rxjs/getRequestorState.ts +0 -8
  254. package/src/http-request-state/rxjs/tapError.ts +0 -16
  255. package/src/http-request-state/rxjs/tapSuccess.ts +0 -16
  256. package/src/http-request-state/strategies.spec.ts +0 -42
  257. package/src/http-request-state/types.ts +0 -50
  258. package/src/ngrx/actionable-selector.ts +0 -95
  259. package/src/ngrx/index.ts +0 -1
  260. package/src/rxjs/defaultShareReplay.ts +0 -8
  261. package/src/rxjs/mapError.ts +0 -8
  262. package/src/rxjs/rxjs-operators.ts +0 -130
  263. package/src/rxjs/subjectifier.ts +0 -15
  264. package/src/specs/clickSubject.spec.ts +0 -95
  265. package/src/specs/dialog.spec.ts +0 -101
  266. package/src/specs/toggleGroupDirective.spec.ts +0 -231
  267. package/src/table-builder/classes/DefaultSettings.ts +0 -10
  268. package/src/table-builder/classes/GenericTableDataSource.ts +0 -22
  269. package/src/table-builder/classes/MatTableObservableDataSource.ts +0 -23
  270. package/src/table-builder/classes/TableBuilderConfig.ts +0 -19
  271. package/src/table-builder/classes/TableState.ts +0 -63
  272. package/src/table-builder/classes/data-filter.spec.ts +0 -72
  273. package/src/table-builder/classes/data-filter.ts +0 -32
  274. package/src/table-builder/classes/filter-info.ts +0 -132
  275. package/src/table-builder/classes/table-builder-general-settings.ts +0 -73
  276. package/src/table-builder/classes/table-builder.ts +0 -71
  277. package/src/table-builder/classes/table-store.ts +0 -360
  278. package/src/table-builder/components/array-column.component.ts +0 -39
  279. package/src/table-builder/components/column-builder/column-builder.component.html +0 -66
  280. package/src/table-builder/components/column-builder/column-builder.component.scss +0 -43
  281. package/src/table-builder/components/column-builder/column-builder.component.spec.ts +0 -51
  282. package/src/table-builder/components/column-builder/column-builder.component.ts +0 -126
  283. package/src/table-builder/components/date-filter/date-filter.component.html +0 -24
  284. package/src/table-builder/components/date-filter/date-filter.component.ts +0 -17
  285. package/src/table-builder/components/filter/filter.component.html +0 -78
  286. package/src/table-builder/components/filter/filter.component.scss +0 -64
  287. package/src/table-builder/components/filter/filter.component.spec.ts +0 -89
  288. package/src/table-builder/components/filter/filter.component.ts +0 -35
  289. package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +0 -82
  290. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +0 -52
  291. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +0 -57
  292. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +0 -44
  293. package/src/table-builder/components/generic-table/generic-table.component.html +0 -77
  294. package/src/table-builder/components/generic-table/generic-table.component.scss +0 -45
  295. package/src/table-builder/components/generic-table/generic-table.component.ts +0 -221
  296. package/src/table-builder/components/generic-table/paginator.component.ts +0 -89
  297. package/src/table-builder/components/group-by-list/group-by-list.component.css +0 -8
  298. package/src/table-builder/components/group-by-list/group-by-list.component.html +0 -10
  299. package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +0 -23
  300. package/src/table-builder/components/group-by-list/group-by-list.component.ts +0 -16
  301. package/src/table-builder/components/header-menu/header-menu.component.html +0 -117
  302. package/src/table-builder/components/header-menu/header-menu.component.scss +0 -92
  303. package/src/table-builder/components/header-menu/header-menu.component.ts +0 -81
  304. package/src/table-builder/components/in-filter/in-filter.component.css +0 -3
  305. package/src/table-builder/components/in-filter/in-filter.component.html +0 -13
  306. package/src/table-builder/components/in-filter/in-filter.component.ts +0 -60
  307. package/src/table-builder/components/initialization-component/initialization-component.html +0 -21
  308. package/src/table-builder/components/initialization-component/initialization-component.ts +0 -15
  309. package/src/table-builder/components/link-column.component.ts +0 -33
  310. package/src/table-builder/components/number-filter/number-filter.component.css +0 -10
  311. package/src/table-builder/components/number-filter/number-filter.component.html +0 -21
  312. package/src/table-builder/components/number-filter/number-filter.component.spec.ts +0 -30
  313. package/src/table-builder/components/number-filter/number-filter.component.ts +0 -19
  314. package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +0 -59
  315. package/src/table-builder/components/sort-menu/sort-menu.component.html +0 -101
  316. package/src/table-builder/components/sort-menu/sort-menu.component.scss +0 -119
  317. package/src/table-builder/components/sort-menu/sort-menu.component.ts +0 -82
  318. package/src/table-builder/components/table-container/table-container.css +0 -26
  319. package/src/table-builder/components/table-container/table-container.html +0 -113
  320. package/src/table-builder/components/table-container/table-container.spec.ts +0 -157
  321. package/src/table-builder/components/table-container/table-container.ts +0 -344
  322. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +0 -26
  323. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +0 -38
  324. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +0 -37
  325. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +0 -8
  326. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +0 -88
  327. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +0 -27
  328. package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +0 -23
  329. package/src/table-builder/directives/custom-cell-directive.ts +0 -45
  330. package/src/table-builder/directives/multi-sort.directive.spec.ts +0 -124
  331. package/src/table-builder/directives/multi-sort.directive.ts +0 -41
  332. package/src/table-builder/directives/resize-column.directive.ts +0 -104
  333. package/src/table-builder/directives/table-wrapper.directive.ts +0 -16
  334. package/src/table-builder/directives/tb-filter.directive.ts +0 -363
  335. package/src/table-builder/enums/filterTypes.ts +0 -65
  336. package/src/table-builder/functions/boolean-filter-function.ts +0 -13
  337. package/src/table-builder/functions/date-filter-function.ts +0 -40
  338. package/src/table-builder/functions/download-data.ts +0 -11
  339. package/src/table-builder/functions/null-filter-function.ts +0 -9
  340. package/src/table-builder/functions/number-filter-function.ts +0 -42
  341. package/src/table-builder/functions/sort-data-function.ts +0 -8
  342. package/src/table-builder/functions/string-filter-function.ts +0 -52
  343. package/src/table-builder/interfaces/column-template.ts +0 -9
  344. package/src/table-builder/interfaces/report-def.ts +0 -131
  345. package/src/table-builder/material.module.ts +0 -95
  346. package/src/table-builder/ngrx/actions.ts +0 -7
  347. package/src/table-builder/ngrx/effects.ts +0 -54
  348. package/src/table-builder/ngrx/reducer.ts +0 -72
  349. package/src/table-builder/ngrx/selectors.ts +0 -37
  350. package/src/table-builder/pipes/column-total.pipe.ts +0 -15
  351. package/src/table-builder/pipes/format-filter-type.pipe.ts +0 -12
  352. package/src/table-builder/pipes/format-filter-value.pipe.ts +0 -40
  353. package/src/table-builder/pipes/key-display.ts +0 -16
  354. package/src/table-builder/services/export-to-csv.service.ts +0 -92
  355. package/src/table-builder/services/link-creator.service.ts +0 -48
  356. package/src/table-builder/services/table-template-service.ts +0 -44
  357. package/src/table-builder/services/transform-creator.ts +0 -61
  358. package/src/table-builder/specs/table-custom-filters.spec.ts +0 -262
  359. package/src/table-builder/styles/collapser.styles.scss +0 -21
  360. package/src/table-builder/table-builder.module.ts +0 -138
  361. package/src/test.ts +0 -17
  362. package/src/utilities/directives/auto-focus.directive.ts +0 -19
  363. package/src/utilities/directives/clickEmitterDirective.ts +0 -15
  364. package/src/utilities/directives/clickSubject.ts +0 -19
  365. package/src/utilities/directives/conditional-classes.directive.ts +0 -35
  366. package/src/utilities/directives/dialog-service.ts +0 -22
  367. package/src/utilities/directives/dialog.ts +0 -142
  368. package/src/utilities/directives/mat-toggle-group-directive.ts +0 -60
  369. package/src/utilities/directives/prevent-enter.directive.ts +0 -12
  370. package/src/utilities/directives/stop-propagation.directive.ts +0 -19
  371. package/src/utilities/directives/styler.ts +0 -16
  372. package/src/utilities/directives/trim-whitespace.directive.ts +0 -20
  373. package/src/utilities/module.ts +0 -58
  374. package/src/utilities/pipes/function.pipe.ts +0 -15
  375. package/src/utilities/pipes/phone.pipe.ts +0 -15
  376. package/src/utilities/pipes/space-case.pipes.spec.ts +0 -47
  377. package/src/utilities/pipes/space-case.pipes.ts +0 -23
  378. package/tsconfig.lib.json +0 -19
  379. package/tsconfig.lib.prod.json +0 -10
  380. package/tsconfig.spec.json +0 -17
@@ -1,344 +0,0 @@
1
- import {
2
- Component,
3
- Input,
4
- EventEmitter,
5
- Output,
6
- ContentChildren,
7
- QueryList,
8
- ChangeDetectionStrategy,
9
- Inject,
10
- Predicate,
11
- Optional,
12
- TemplateRef,
13
- } from '@angular/core';
14
- import { BehaviorSubject, Observable, from, ReplaySubject, Subscription } from 'rxjs';
15
- import { ArrayAdditional, FieldType, MetaData } from '../../interfaces/report-def';
16
- import { first, last, map, switchMap, tap, withLatestFrom, mergeAll, scan } from 'rxjs/operators';
17
- import { TableBuilder } from '../../classes/table-builder';
18
- import { MatRowDef } from '@angular/material/table';
19
- import { CustomCellDirective, TableCustomFilterDirective, TableFilterDirective } from '../../directives';
20
- import { stateIs, TableStore } from '../../classes/table-store';
21
- import { DataFilter } from '../../classes/data-filter';
22
- import { combineArrays, mapArray, notNull } from '../../../rxjs/rxjs-operators';
23
- import { ExportToCsvService } from '../../services/export-to-csv.service';
24
- import { ArrayDefaults } from '../../classes/DefaultSettings';
25
- import { TableBuilderConfig, TableBuilderConfigToken } from '../../classes/TableBuilderConfig';
26
- import * as selectors from '../../ngrx/selectors';
27
- import { select, Store } from '@ngrx/store';
28
- import { deleteLocalProfilesState, setLocalProfile, setLocalProfilesState } from '../../ngrx/actions';
29
- import { Group, InitializationState, PersistedTableState } from '../../classes/TableState';
30
- import { sortData } from '../../functions/sort-data-function';
31
- import { WrapperFilterStore } from '../table-container-filter/table-wrapper-filter-store';
32
- import { cloneDeep, groupBy } from 'lodash';
33
- import { ColumnInfo } from '../../interfaces/ColumnInfo';
34
- import { defaultShareReplay } from '../../../rxjs';
35
- import { flattenDeep } from 'lodash';
36
- import { createFilterFunc, isCustomFilter, isFilterInfo } from '../../classes/filter-info';
37
- import { Dictionary } from '../../interfaces/dictionary';
38
- import { TableWrapperDirective } from '../../directives/table-wrapper.directive';
39
- import { createLinkCreator } from '../../services/link-creator.service';
40
-
41
- @Component({
42
- selector: 'tb-table-container',
43
- templateUrl: './table-container.html',
44
- styleUrls: ['./table-container.css','../../styles/collapser.styles.scss'],
45
- changeDetection: ChangeDetectionStrategy.OnPush,
46
- providers: [TableStore,ExportToCsvService,WrapperFilterStore]
47
- }) export class TableContainerComponent<T = any> {
48
-
49
- @ContentChildren(TableCustomFilterDirective, {descendants: true}) customFilters!: QueryList<TableCustomFilterDirective>;
50
- @ContentChildren(TableFilterDirective, {descendants: true}) filters!: QueryList<TableFilterDirective>;
51
-
52
- @Input() tableId!: string;
53
- @Input() tableBuilder!: TableBuilder;
54
- @Input() IndexColumn = false;
55
- @Input() SelectionColumn = false;
56
- @Input() trackBy!: string;
57
- @Input() isSticky = true;
58
- @Input() set pageSize(value: number) {
59
- this.state.setPageSize(value);
60
- }
61
- @Input() inputFilters?: Observable<Array<Predicate<T>>>;
62
- @Input() groupHeaderTemplate!: TemplateRef<any>;
63
- @Output() selection$ = new EventEmitter();
64
- dataSubject = new ReplaySubject<Observable<T[]>>(1);
65
- @Output() data = this.dataSubject.pipe(
66
- switchMap( d => d),
67
- defaultShareReplay(),
68
- );
69
-
70
- @ContentChildren(MatRowDef) customRows!: QueryList<MatRowDef<any>>;
71
-
72
- @ContentChildren(CustomCellDirective) customCells!: QueryList<CustomCellDirective>;
73
- @Output() OnStateReset = new EventEmitter();
74
- @Output() OnSaveState = new EventEmitter();
75
- @Output() state$ : Observable<PersistedTableState>;
76
-
77
- myColumns$!: Observable<ColumnInfo[]>;
78
-
79
- stateKeys$?: Observable<string[] | null>;
80
- currentStateKey$?: Observable<string>;
81
-
82
- disableSort!: boolean;
83
-
84
- constructor(
85
- public state: TableStore,
86
- public exportToCsvService: ExportToCsvService<T>,
87
- @Inject(TableBuilderConfigToken) private config: TableBuilderConfig,
88
- private store: Store<any>,
89
- @Optional() private wrapper: TableWrapperDirective,
90
- ) {
91
- this.state.on( this.state.getSavableState().pipe(last()), finalState => {
92
- if(this.tableId) {
93
- this.store.dispatch(setLocalProfile({key:this.tableId,value: finalState}));
94
- }
95
- });
96
- this.state$ = this.state.getSavableState().pipe(
97
- map(state => cloneDeep(state)),
98
- defaultShareReplay(),
99
- );
100
- }
101
-
102
- resetState() {
103
- this.customFilters.forEach( cf => cf.reset());
104
- this.filters.forEach( cf => cf.reset() );
105
- this.state.resetState();
106
- this.OnStateReset.next(null)
107
- }
108
-
109
- initializeState() {
110
- this.state.setTableSettings(this.tableBuilder.settings);
111
- this.state.runOnceWhen(stateIs(InitializationState.MetaDataLoaded), state => {
112
- if(this.tableId) {
113
- const persistedState$ = this.store.pipe(
114
- select(selectors.selectLocalProfileState<any>(this.tableId) ),
115
- tap( persistedState => {
116
- if(!persistedState) {
117
- this.state.setIntializationState(InitializationState.LoadedFromStore);
118
- }
119
- }),
120
- notNull(),
121
- );
122
- this.state.updateStateFromPersistedState(persistedState$);
123
-
124
- } else {
125
- this.state.setIntializationState(InitializationState.LoadedFromStore);
126
- }
127
- });
128
- }
129
- customFilters$ = new BehaviorSubject<Predicate<any>[]>([]);
130
- initializeData() {
131
-
132
-
133
- var allFilters = this.inputFilters ? combineArrays([
134
- this.customFilters$,
135
- this.inputFilters
136
- ]) : this.customFilters$;
137
-
138
- const filters$ = this.state.filters$.pipe(map( filters => Object.values(filters) ))
139
-
140
- const data = new DataFilter(allFilters)
141
- .appendFilters(filters$)
142
- .filterData(this.tableBuilder.getData$()).pipe(
143
- switchMap(data => this.state.groupByKeys$.pipe(
144
- map(groupBy => this.getData(data, groupBy)),
145
- ).pipe(
146
- switchMap(data => this.state.groups$.pipe(
147
- map(groups => this.setDisplay(data, groups))
148
- ))
149
- ))
150
- );
151
-
152
- this.dataSubject.next(data);
153
- }
154
-
155
- ngOnInit() {
156
- this.initializeState();
157
- this.initializeData();
158
-
159
- if(this.tableId) {
160
- this.stateKeys$ = this.store.select(selectors.selectLocalProfileKeys(this.tableId));
161
- this.currentStateKey$ = this.store.select(selectors.selectLocalProfileCurrentKey(this.tableId));
162
- }
163
- }
164
-
165
- exportToCsv(): void {
166
- const sorted = this.data.pipe(
167
- withLatestFrom(this.state.sorted$),
168
- map(([data, sorted]) => sortData(data, sorted))
169
- );
170
- this.exportToCsvService.exportToCsv(sorted);
171
- }
172
-
173
- saveState() {
174
- this.state.getSavableState().pipe(
175
- first()
176
- ).subscribe( tableState => {
177
- this.OnSaveState.next(null);
178
- this.store.dispatch(setLocalProfile({ key: this.tableId, value:tableState, persist: true} ));
179
- });
180
- }
181
-
182
- setProfileState(val: string) {
183
- this.store.dispatch(setLocalProfilesState({key:this.tableId, current: val}));
184
- }
185
-
186
- deleteProfileState(stateKey: string) {
187
- this.store.dispatch(deleteLocalProfilesState({key:this.tableId, stateKey}));
188
- }
189
-
190
-
191
- ngAfterContentInit() {
192
- this.InitializeColumns();
193
-
194
- this.state.runOnceWhen(stateIs(InitializationState.LoadedFromStore), state => {
195
-
196
- var allFilters = [...this.filters, ...this.customFilters];
197
- if(this.wrapper) {
198
- allFilters = [...allFilters, ...this.wrapper.customFilters, ...this.wrapper.filters, ...this.wrapper.registerations];
199
- }
200
-
201
- var customFilters: (TableCustomFilterDirective|TableFilterDirective )[] = [];
202
-
203
- allFilters.filter( f => !f.used).forEach( f => {
204
- f.used = true;
205
- if(f.savable) {
206
- var filter = state.filters[f.filterId];
207
- if(isFilterInfo(filter)) {
208
- const filterDirective: TableFilterDirective = f as TableFilterDirective;
209
- filterDirective.fieldType = filter.fieldType;
210
- filterDirective.filterType = filter.filterType;
211
- filterDirective.setFilterValue(filter.filterValue);
212
- filterDirective.key = filter.key;
213
- filterDirective.update();
214
- }
215
- if(isCustomFilter(filter)) {
216
- f.active = filter.active ?? false;
217
- }
218
- this.state.addFilter(f.filter$);
219
- } else {
220
- customFilters.push(f);
221
- }
222
- });
223
-
224
- const filters$ = from( customFilters.map( cf => cf.filter$ )).pipe(
225
- mergeAll(),
226
- scan( (a,b)=> {
227
- if(b.active) {
228
- a[b.filterId] = isCustomFilter(b) ? b.predicate : createFilterFunc(b);
229
- } else {
230
- delete a[b.filterId] ;
231
- }
232
- return a;
233
- }, {} as Dictionary<Predicate<any>>),
234
- map( f => Object.values(f))
235
- );
236
- this.state.on(filters$, (f) => {
237
- this.customFilters$.next(f);
238
- });
239
- this.state.updateState({initializationState: InitializationState.Ready});
240
- });
241
-
242
- }
243
-
244
- InitializeColumns() {
245
- const customCellMap = new Map(this.customCells.map(cc => [cc.customCell,cc]));
246
- this.state.setMetaData(this.tableBuilder.metaData$!.pipe(
247
- map((mds) => {
248
- mds = mds.map(this.mapMetaDatas);
249
- return [
250
- ...mds,
251
- ...this.customCells.map( cc => cc.getMetaData(mds.find( item => item.key === cc.customCell )) )
252
- ]
253
- })
254
- ));
255
- this.state.setLinkMaps(this.tableBuilder.metaData$!.pipe(
256
- map((mds) => {
257
- return mds.reduce((acc, md) => {
258
- if(md.fieldType === FieldType.Link){ acc[md.key]= createLinkCreator(md)}
259
- return acc;
260
- },{})
261
- })
262
- ))
263
-
264
- this.myColumns$ = this.state.metaDataArray$.pipe(
265
- mapArray( metaData => ({metaData, customCell: customCellMap.get(metaData.key)!}))
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
- getData(data: any[], groupByKeys: string[]): any[] {
281
- if (!groupByKeys.length) {
282
- this.disableSort = false;
283
- return data;
284
- }
285
- this.disableSort = true;
286
- return this.tbGroupBy(data, groupByKeys);
287
- }
288
-
289
- tbGroupBy = (data: any[], groupByKeys: string[], parentGroupName?: any): any[] => {
290
- let res = {};
291
- res = groupBy(data, groupByKeys[0]);
292
- const remainingGroupByKeys = groupByKeys.slice(1);
293
- if (remainingGroupByKeys.length) {
294
- Object.keys(res).forEach(key => res[key] = this.tbGroupBy(res[key], remainingGroupByKeys, key))
295
- }
296
- return flattenDeep(Object.keys(res).map(groupName => {
297
- const uniqName = parentGroupName ? `${parentGroupName}-${groupName}` : `${groupName}`;
298
- return [
299
- {
300
- isGroupHeader: true,
301
- groupHeaderName: `${groupName} (${res[groupName]?.filter(row => !row.isGroupHeader)?.length})`,
302
- data: res[groupName],
303
- groupName: uniqName,
304
- padding: 0
305
- },
306
- (res[groupName] as any[])?.map(d => ({ ...d, parentGroupName: d.parentGroupName || uniqName }))
307
- ];
308
- })).map(this.addIndentation);
309
- }
310
-
311
- addIndentation = (d: any) => {
312
- if (d.isGroupHeader) {
313
- if (d.padding) {
314
- d.padding += 20;
315
- } else {
316
- d.padding = 1;
317
- }
318
- }
319
- return d;
320
- }
321
-
322
- setDisplay = (data: any[], groups: Group[]): any[] => data
323
- .map(d => ({
324
- ...d,
325
- shouldDisplay: !d.parentGroupName || this.shouldDisplay(groups.find(g => g.groupName == d.parentGroupName), groups),
326
- isExpanded: groups.find(g => g.groupName == d.groupName)?.isExpanded
327
- }))
328
- .filter(d => d.shouldDisplay);
329
-
330
-
331
- shouldDisplay = (currentGroup?: Group, groups?: Group[]): boolean => {
332
- if (!currentGroup?.isExpanded) {
333
- return false;
334
- }
335
-
336
- const parentGroup = groups?.find(g => g.groupName == currentGroup.parentGroupName);
337
-
338
- if (parentGroup) {
339
- return this.shouldDisplay(parentGroup, groups);
340
- }
341
-
342
- return true;
343
- }
344
- }
@@ -1,26 +0,0 @@
1
- <div style="display: flex; flex-direction: row;justify-content: flex-end;" *ngrxLet="currentFilters$ as currentFilters" >
2
-
3
- <button class="cancel-button" *ngIf="currentFilters.length" mat-icon-button (click)="clearAll()"
4
- matTooltip="Close all Filters Cards">
5
- <mat-icon class="cancel-button" color="primary">close</mat-icon>
6
- </button>
7
-
8
-
9
- <div *ngIf="currentFilters.length" class="float">
10
- <div class="filter" *ngFor="let filter of (currentFilters$ | async); index as i;">
11
- <tb-filter [filter]="filter" (close)="deleteByIndex(i)" > </tb-filter>
12
- </div>
13
- </div>
14
-
15
- <mat-chip-set *ngrxLet="filters$ as filters">
16
- <mat-chip *ngFor="let filter of filters" (dblclick)="addFilter(filter)" (removed)="tableState.removeFilter(filter.filterId!)">
17
- {{ filter.key | keyDisplay | async }} {{filter.filterType | formatFilterType : filter.filterValue}} {{ filter.filterValue | formatFilterValue: filter.key : filter.filterType | async }}
18
- <mat-icon matChipRemove>cancel</mat-icon>
19
- </mat-chip>
20
- <mat-chip *ngIf="filters.length >= 2" (removed)="tableState.clearFilters()">
21
- Clear All
22
- <mat-icon matChipRemove>cancel</mat-icon>
23
- </mat-chip>
24
- </mat-chip-set>
25
-
26
- </div>
@@ -1,38 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { TableStore } from '../../../classes/table-store';
3
- import { CustomFilter, 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
-
8
- @Component({
9
- selector: 'lib-filter-list',
10
- templateUrl: './filter-list.component.html',
11
- styleUrls: ['../gen-filter-displayer/gen-filter-displayer.component.css']
12
- })
13
- export class FilterChipsComponent {
14
-
15
- constructor( public tableState: TableStore, private filterStore : WrapperFilterStore) {
16
- }
17
-
18
- filters$: Observable<FilterInfo<any>[]> = this.tableState.filters$.pipe(
19
- map( filters => Object.values(filters)
20
- .filter(isFilterInfo)
21
- .filter( f => !f._isExternalyManaged)
22
- )
23
- );
24
-
25
- deleteByIndex(index: number) {
26
- this.filterStore.deleteByIndex(index);
27
- }
28
-
29
- addFilter(filter:FilterInfo<any>){
30
- this.filterStore.addFilter(filter);
31
- }
32
-
33
- clearAll() {
34
- this.filterStore.clearAll();
35
- }
36
-
37
- currentFilters$ = this.filterStore.currentFilters$;
38
- }
@@ -1,37 +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
- }
@@ -1,8 +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
- <button *ngFor="let md of filterCols$ | async" (click)="addFilter(md)" mat-menu-item>
6
- <span class="filter-labels">{{md.displayName || (md.key | spaceCase)}}</span>
7
- </button>
8
- </mat-menu>
@@ -1,88 +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 { MaterialModule } from '../../../material.module';
6
- import { SpaceCasePipe } from '../../../../utilities/pipes/space-case.pipes';
7
- import { FilterComponent } from '../../filter/filter.component';
8
- import { CommonModule } from '@angular/common';
9
- import { FormsModule } from '@angular/forms';
10
- import { FieldType } from '../../../interfaces/report-def';
11
- import { By } from '@angular/platform-browser';
12
- import { NoopAnimationsModule } from '@angular/platform-browser/animations';
13
- import { DateFilterComponent } from '../../date-filter/date-filter.component';
14
- import { TableBuilderModule } from '../../../table-builder.module';
15
- import { StoreModule } from '@ngrx/store';
16
- import { EffectsModule } from '@ngrx/effects';
17
- import { TableStore } from '../../../classes/table-store';
18
- import { WrapperFilterStore } from '../table-wrapper-filter-store';
19
-
20
-
21
- function getMetaData() {
22
- return of([
23
- {
24
- key: 'name',
25
- displayName: 'first name',
26
- fieldType: FieldType.String,
27
- additional: {},
28
- order: 1
29
- },
30
- {
31
- key: 'last',
32
- displayName: 'last name',
33
- fieldType: FieldType.String,
34
- additional: {},
35
- order: 2
36
- }
37
- ]);
38
- }
39
-
40
- describe('generic filter displayer', () => {
41
- let fixture: ComponentFixture<GenFilterDisplayerComponent>;
42
- let component: GenFilterDisplayerComponent;
43
-
44
- const clickFilter = (idx: number) => {
45
- const btn = fixture.debugElement.query(By.css('.filter-button')).nativeElement;
46
-
47
- btn.click();
48
- const menu = fixture.debugElement.queryAll(By.css('.mat-menu-item'));
49
- menu[idx].nativeElement.click();
50
- };
51
- beforeEach(() => {
52
-
53
- TestBed.configureTestingModule({
54
- declarations: [
55
- GenFilterDisplayerComponent,
56
- SpaceCasePipe,
57
- FilterComponent,
58
- DateFilterComponent,
59
- ],
60
- providers: [TableStore, WrapperFilterStore,
61
- { provide: ComponentFixtureAutoDetect, useValue: true }
62
- ],
63
- imports: [
64
- NoopAnimationsModule,
65
- MaterialModule,
66
- CommonModule,
67
- FormsModule,
68
- TableBuilderModule.forRoot({ defaultTableState: { sorted: []} }),
69
- StoreModule.forRoot({}),
70
- EffectsModule.forRoot([])]
71
- })
72
- .compileComponents();
73
- fixture = TestBed.createComponent(GenFilterDisplayerComponent);
74
- component = fixture.componentInstance;
75
- component.filterCols$ = getMetaData();
76
- });
77
-
78
- it('should get the generic filter displayer component', () => {
79
- expect(component).toBeDefined();
80
- });
81
-
82
- it('should be able to create a filter', async () => {
83
- clickFilter(0);
84
- const filter = await firstValueFrom(fixture.componentInstance.filterStore.state$.pipe(map(x => x.filterInfo)));
85
- expect(filter.length).toBe(1);
86
- });
87
-
88
- });
@@ -1,27 +0,0 @@
1
- import { Component, ChangeDetectionStrategy } from '@angular/core';
2
- import { MetaData, FieldType } from '../../../interfaces/report-def';
3
- import { Observable } from 'rxjs';
4
- import { TableStore } from '../../../classes/table-store';
5
- import { map } from 'rxjs/operators';
6
- import { WrapperFilterStore } from '../table-wrapper-filter-store';
7
-
8
- @Component({
9
- selector: 'tb-filter-displayer',
10
- templateUrl: './gen-filter-displayer.component.html',
11
- styleUrls: ['./gen-filter-displayer.component.css'],
12
- changeDetection: ChangeDetectionStrategy.OnPush
13
- })
14
- export class GenFilterDisplayerComponent {
15
-
16
- constructor( public tableState: TableStore, public filterStore : WrapperFilterStore) {
17
- this.filterCols$ = tableState.metaDataArray$.pipe(
18
- map(md => Object.values( md ).filter(m => (m.fieldType !== FieldType.Hidden) && (!m.noFilter))),
19
- );
20
- }
21
-
22
- filterCols$: Observable<MetaData[]>;
23
-
24
- addFilter(metaData: MetaData) {
25
- this.filterStore.addFilter({key: metaData.key, fieldType: metaData.fieldType});
26
- }
27
- }
@@ -1,23 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- import { ComponentStore } from "@ngrx/component-store";
3
- import { map } from "rxjs/operators";
4
- import { PartialFilter } from "../../classes/filter-info";
5
- @Injectable()
6
- export class WrapperFilterStore extends ComponentStore<{filterInfo:PartialFilter[]}>{
7
- constructor(){
8
- super({filterInfo:[]});
9
- }
10
-
11
- clearAll = this.updater(()=>({filterInfo:[]}));
12
- deleteByIndex = this.updater((state,index:number)=>{
13
- const arr = [...state.filterInfo];
14
- arr.splice(index, 1);
15
- return {filterInfo:arr};
16
- });
17
-
18
- currentFilters$ = this.state$.pipe(map(state => state.filterInfo));
19
-
20
- addFilter = this.updater((state,filter:PartialFilter)=>{
21
- return ({...state,filterInfo:[...state.filterInfo,filter]});
22
- })
23
- }
@@ -1,45 +0,0 @@
1
- import { Directive, TemplateRef, Input, AfterContentInit, Optional } from '@angular/core';
2
- import { CdkColumnDef } from '@angular/cdk/table';
3
- import { SortDef, MetaData, FieldType } from '../interfaces/report-def';
4
-
5
- // here is how to use it
6
- // <generic-table [report]="report">
7
- // <p *customCell="'column1'; let element = element" [class.makeMeRed]="element?.port">If Port, i will be red</p>
8
- // <p *customCell="'column2'">I am custom cell two </p>
9
- // </generic-table>
10
- @Directive({
11
- selector: '[customCell]',
12
- })
13
- export class CustomCellDirective implements AfterContentInit {
14
- @Input() customCell!: string;
15
- @Input() displayName?: string;
16
- @Input() preSort?: SortDef;
17
- @Input() TemplateRef: TemplateRef<any>;
18
- @Input() customCellOrder?: number;
19
- @Input() customCellWidth?: string;
20
- constructor(
21
- @Optional() private templateRef: TemplateRef<any>,
22
- @Optional() public columnDef: CdkColumnDef
23
- ) {
24
- this.TemplateRef = this.templateRef;
25
- }
26
- ngAfterContentInit() {
27
- if (this.TemplateRef === null) {
28
- this.TemplateRef = this.templateRef;
29
- }
30
- }
31
-
32
- getMetaData(metaData? : MetaData): MetaData {
33
- return {
34
- key: this.customCell,
35
- displayName: this.displayName ?? metaData?.displayName,
36
- preSort: this.preSort ?? metaData?.preSort,
37
- fieldType: metaData?.fieldType ?? FieldType.Unknown,
38
- order: this.customCellOrder ?? metaData?.order,
39
- _internalNotUserDefined: !(!!metaData),
40
- width: this.customCellWidth ?? metaData?.width,
41
- customCell: true,
42
- noExport: !metaData
43
- };
44
- }
45
- }