@one-paragon/angular-utilities 1.0.4 → 1.1.2

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 (398) hide show
  1. package/action-state/action-state-spinner/action-state-spinner.component.d.ts +12 -0
  2. package/action-state/action-state-ui/action-state-ui.module.d.ts +7 -0
  3. package/{src/action-state/index.ts → action-state/index.d.ts} +4 -8
  4. package/action-state/ngrx-ext/ngrx-ext.module.d.ts +8 -0
  5. package/action-state/ngrx.d.ts +31 -0
  6. package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +24 -0
  7. package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +20 -0
  8. package/esm2022/action-state/index.mjs +8 -0
  9. package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +23 -0
  10. package/esm2022/action-state/ngrx.mjs +42 -0
  11. package/esm2022/http-request-state/HttpRequestStateFactory.mjs +52 -0
  12. package/esm2022/http-request-state/HttpRequestStateStore.mjs +101 -0
  13. package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +34 -0
  14. package/esm2022/http-request-state/directives/http-error-state-directive.mjs +29 -0
  15. package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +29 -0
  16. package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +29 -0
  17. package/esm2022/http-request-state/directives/http-success-state-directive.mjs +34 -0
  18. package/esm2022/http-request-state/directives/index.mjs +6 -0
  19. package/esm2022/http-request-state/directives/request-state-directive.mjs +60 -0
  20. package/esm2022/http-request-state/helpers.mjs +22 -0
  21. package/esm2022/http-request-state/http-request-state.mjs +39 -0
  22. package/esm2022/http-request-state/http-state-module.mjs +40 -0
  23. package/esm2022/http-request-state/index.mjs +7 -0
  24. package/esm2022/http-request-state/rxjs/getRequestorBody.mjs +4 -0
  25. package/esm2022/http-request-state/rxjs/getRequestorState.mjs +3 -0
  26. package/esm2022/http-request-state/rxjs/index.mjs +5 -0
  27. package/esm2022/http-request-state/rxjs/tapError.mjs +12 -0
  28. package/esm2022/http-request-state/rxjs/tapSuccess.mjs +12 -0
  29. package/esm2022/http-request-state/types.mjs +16 -0
  30. package/esm2022/ngrx/actionable-selector.mjs +73 -0
  31. package/esm2022/ngrx/index.mjs +2 -0
  32. package/esm2022/one-paragon-angular-utilities.mjs +5 -0
  33. package/esm2022/public-api.mjs +20 -0
  34. package/esm2022/rxjs/defaultShareReplay.mjs +7 -0
  35. package/esm2022/rxjs/index.mjs +6 -0
  36. package/esm2022/rxjs/mapError.mjs +8 -0
  37. package/esm2022/rxjs/rxjs-operators.mjs +92 -0
  38. package/esm2022/rxjs/subjectifier.mjs +15 -0
  39. package/esm2022/rxjs/subscriber.directive.mjs +50 -0
  40. package/esm2022/table-builder/classes/DefaultSettings.mjs +6 -0
  41. package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +21 -0
  42. package/esm2022/table-builder/classes/TableBuilderConfig.mjs +18 -0
  43. package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +53 -0
  44. package/esm2022/table-builder/classes/TableState.mjs +44 -0
  45. package/esm2022/table-builder/classes/display-col.mjs +2 -0
  46. package/esm2022/table-builder/classes/filter-info.mjs +73 -0
  47. package/esm2022/table-builder/classes/table-builder-general-settings.mjs +86 -0
  48. package/esm2022/table-builder/classes/table-builder.mjs +41 -0
  49. package/esm2022/table-builder/classes/table-store.mjs +356 -0
  50. package/esm2022/table-builder/components/array-column.component.mjs +57 -0
  51. package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +125 -0
  52. package/esm2022/table-builder/components/column-builder/column-helpers.mjs +26 -0
  53. package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +29 -0
  54. package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +24 -0
  55. package/esm2022/table-builder/components/filter/filter.component.mjs +67 -0
  56. package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +101 -0
  57. package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +53 -0
  58. package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +203 -0
  59. package/esm2022/table-builder/components/generic-table/paginator.component.mjs +80 -0
  60. package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +23 -0
  61. package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +100 -0
  62. package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +64 -0
  63. package/esm2022/table-builder/components/index.mjs +10 -0
  64. package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +40 -0
  65. package/esm2022/table-builder/components/link-column.component.mjs +78 -0
  66. package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +29 -0
  67. package/esm2022/table-builder/components/scroll-strategy.mjs +63 -0
  68. package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +43 -0
  69. package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +81 -0
  70. package/esm2022/table-builder/components/table-container/table-container-imports.mjs +26 -0
  71. package/esm2022/table-builder/components/table-container/table-container.helpers/data-state.helpers.mjs +135 -0
  72. package/esm2022/table-builder/components/table-container/table-container.helpers/filter-state.helpers.mjs +83 -0
  73. package/esm2022/table-builder/components/table-container/table-container.helpers/groupBy.helpers.mjs +71 -0
  74. package/esm2022/table-builder/components/table-container/table-container.helpers/sort-state.helpers.mjs +36 -0
  75. package/esm2022/table-builder/components/table-container/table-container.mjs +305 -0
  76. package/esm2022/table-builder/components/table-container/tableProps.mjs +7 -0
  77. package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +105 -0
  78. package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +47 -0
  79. package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +36 -0
  80. package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +25 -0
  81. package/esm2022/table-builder/directives/custom-cell-directive.mjs +70 -0
  82. package/esm2022/table-builder/directives/index.mjs +6 -0
  83. package/esm2022/table-builder/directives/multi-sort.directive.mjs +50 -0
  84. package/esm2022/table-builder/directives/resize-column.directive.mjs +88 -0
  85. package/esm2022/table-builder/directives/table-wrapper.directive.mjs +20 -0
  86. package/esm2022/table-builder/directives/tb-filter.directive.mjs +410 -0
  87. package/esm2022/table-builder/enums/filterTypes.mjs +72 -0
  88. package/esm2022/table-builder/functions/boolean-filter-function.mjs +10 -0
  89. package/esm2022/table-builder/functions/date-filter-function.mjs +58 -0
  90. package/esm2022/table-builder/functions/download-data.mjs +12 -0
  91. package/esm2022/table-builder/functions/null-filter-function.mjs +8 -0
  92. package/esm2022/table-builder/functions/number-filter-function.mjs +32 -0
  93. package/esm2022/table-builder/functions/sort-data-function.mjs +17 -0
  94. package/esm2022/table-builder/functions/string-filter-function.mjs +41 -0
  95. package/esm2022/table-builder/interfaces/ColumnInfo.mjs +2 -0
  96. package/esm2022/table-builder/interfaces/dictionary.mjs +2 -0
  97. package/esm2022/table-builder/interfaces/report-def.mjs +50 -0
  98. package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +115 -0
  99. package/esm2022/table-builder/pipes/column-total.pipe.mjs +22 -0
  100. package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +18 -0
  101. package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +45 -0
  102. package/esm2022/table-builder/pipes/key-display.mjs +20 -0
  103. package/esm2022/table-builder/services/export-to-csv.service.mjs +91 -0
  104. package/esm2022/table-builder/services/link-creator.service.mjs +50 -0
  105. package/esm2022/table-builder/services/table-template-service.mjs +56 -0
  106. package/esm2022/table-builder/services/transform-creator.mjs +105 -0
  107. package/esm2022/table-builder/table-builder.module.mjs +124 -0
  108. package/esm2022/utilities/array-helpers.mjs +14 -0
  109. package/esm2022/utilities/directives/auto-focus.directive.mjs +27 -0
  110. package/esm2022/utilities/directives/clickEmitterDirective.mjs +22 -0
  111. package/esm2022/utilities/directives/clickSubject.mjs +28 -0
  112. package/esm2022/utilities/directives/conditional-classes.directive.mjs +36 -0
  113. package/esm2022/utilities/directives/dialog-service.mjs +23 -0
  114. package/esm2022/utilities/directives/dialog.mjs +139 -0
  115. package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +60 -0
  116. package/esm2022/utilities/directives/prevent-enter.directive.mjs +20 -0
  117. package/esm2022/utilities/directives/stop-propagation.directive.mjs +26 -0
  118. package/esm2022/utilities/directives/styler.mjs +42 -0
  119. package/esm2022/utilities/directives/trim-whitespace.directive.mjs +30 -0
  120. package/esm2022/utilities/index.mjs +16 -0
  121. package/esm2022/utilities/module.mjs +90 -0
  122. package/esm2022/utilities/pipes/function.pipe.mjs +22 -0
  123. package/esm2022/utilities/pipes/phone.pipe.mjs +20 -0
  124. package/esm2022/utilities/pipes/space-case.pipes.mjs +28 -0
  125. package/fesm2022/one-paragon-angular-utilities.mjs +5376 -0
  126. package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -0
  127. package/http-request-state/HttpRequestStateFactory.d.ts +17 -0
  128. package/http-request-state/HttpRequestStateStore.d.ts +49 -0
  129. package/http-request-state/directives/HttpStateDirectiveBase.d.ts +16 -0
  130. package/http-request-state/directives/http-error-state-directive.d.ts +12 -0
  131. package/http-request-state/directives/http-inProgress-state-directive.d.ts +12 -0
  132. package/http-request-state/directives/http-notStarted-state-directive.d.ts +12 -0
  133. package/http-request-state/directives/http-success-state-directive.d.ts +21 -0
  134. package/{src/http-request-state/directives/index.ts → http-request-state/directives/index.d.ts} +5 -5
  135. package/http-request-state/directives/request-state-directive.d.ts +35 -0
  136. package/http-request-state/helpers.d.ts +9 -0
  137. package/http-request-state/http-request-state.d.ts +12 -0
  138. package/http-request-state/http-state-module.d.ts +11 -0
  139. package/{src/http-request-state/index.ts → http-request-state/index.d.ts} +6 -6
  140. package/http-request-state/rxjs/getRequestorBody.d.ts +3 -0
  141. package/http-request-state/rxjs/getRequestorState.d.ts +3 -0
  142. package/{src/http-request-state/rxjs/index.ts → http-request-state/rxjs/index.d.ts} +4 -4
  143. package/http-request-state/rxjs/tapError.d.ts +3 -0
  144. package/http-request-state/rxjs/tapSuccess.d.ts +3 -0
  145. package/http-request-state/types.d.ts +41 -0
  146. package/index.d.ts +5 -0
  147. package/ngrx/actionable-selector.d.ts +17 -0
  148. package/ngrx/index.d.ts +1 -0
  149. package/package.json +30 -16
  150. package/{src/public-api.ts → public-api.d.ts} +16 -35
  151. package/rxjs/defaultShareReplay.d.ts +2 -0
  152. package/{src/rxjs/index.ts → rxjs/index.d.ts} +5 -5
  153. package/rxjs/mapError.d.ts +2 -0
  154. package/rxjs/rxjs-operators.d.ts +13 -0
  155. package/rxjs/subjectifier.d.ts +9 -0
  156. package/rxjs/subscriber.directive.d.ts +13 -0
  157. package/table-builder/classes/DefaultSettings.d.ts +9 -0
  158. package/table-builder/classes/MatTableObservableDataSource.d.ts +9 -0
  159. package/table-builder/classes/TableBuilderConfig.d.ts +21 -0
  160. package/table-builder/classes/TableBuilderDataSource.d.ts +13 -0
  161. package/table-builder/classes/TableState.d.ts +53 -0
  162. package/{src/table-builder/classes/display-col.ts → table-builder/classes/display-col.d.ts} +5 -5
  163. package/table-builder/classes/filter-info.d.ts +127 -0
  164. package/table-builder/classes/table-builder-general-settings.d.ts +55 -0
  165. package/table-builder/classes/table-builder.d.ts +12 -0
  166. package/table-builder/classes/table-store.d.ts +143 -0
  167. package/table-builder/components/array-column.component.d.ts +15 -0
  168. package/table-builder/components/column-builder/column-builder.component.d.ts +51 -0
  169. package/table-builder/components/column-builder/column-helpers.d.ts +28 -0
  170. package/table-builder/components/date-filter/date-filter.component.d.ts +10 -0
  171. package/table-builder/components/date-time-filter/date-time-filter.component.d.ts +10 -0
  172. package/table-builder/components/filter/filter.component.d.ts +112 -0
  173. package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +27 -0
  174. package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +16 -0
  175. package/table-builder/components/generic-table/generic-table.component.d.ts +63 -0
  176. package/table-builder/components/generic-table/paginator.component.d.ts +26 -0
  177. package/table-builder/components/group-by-list/group-by-list.component.d.ts +7 -0
  178. package/table-builder/components/header-menu/header-menu.component.d.ts +25 -0
  179. package/table-builder/components/in-filter/in-filter.component.d.ts +21 -0
  180. package/{src/table-builder/components/index.ts → table-builder/components/index.d.ts} +9 -9
  181. package/table-builder/components/initialization-component/initialization-component.d.ts +13 -0
  182. package/table-builder/components/link-column.component.d.ts +25 -0
  183. package/table-builder/components/number-filter/number-filter.component.d.ts +12 -0
  184. package/table-builder/components/scroll-strategy.d.ts +23 -0
  185. package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +24 -0
  186. package/table-builder/components/sort-menu/sort-menu.component.d.ts +25 -0
  187. package/{src/table-builder/components/table-container/table-container-imports.ts → table-builder/components/table-container/table-container-imports.d.ts} +14 -30
  188. package/table-builder/components/table-container/table-container.d.ts +76 -0
  189. package/table-builder/components/table-container/table-container.helpers/data-state.helpers.d.ts +6 -0
  190. package/table-builder/components/table-container/table-container.helpers/filter-state.helpers.d.ts +17 -0
  191. package/table-builder/components/table-container/table-container.helpers/groupBy.helpers.d.ts +17 -0
  192. package/table-builder/components/table-container/table-container.helpers/sort-state.helpers.d.ts +8 -0
  193. package/table-builder/components/table-container/tableProps.d.ts +11 -0
  194. package/table-builder/components/table-container/virtual-scroll-container.d.ts +19 -0
  195. package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +16 -0
  196. package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +14 -0
  197. package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +14 -0
  198. package/table-builder/directives/custom-cell-directive.d.ts +31 -0
  199. package/{src/table-builder/directives/index.ts → table-builder/directives/index.d.ts} +5 -6
  200. package/table-builder/directives/multi-sort.directive.d.ts +11 -0
  201. package/table-builder/directives/resize-column.directive.d.ts +44 -0
  202. package/table-builder/directives/table-wrapper.directive.d.ts +8 -0
  203. package/table-builder/directives/tb-filter.directive.d.ts +120 -0
  204. package/table-builder/enums/filterTypes.d.ts +77 -0
  205. package/table-builder/functions/boolean-filter-function.d.ts +3 -0
  206. package/table-builder/functions/date-filter-function.d.ts +4 -0
  207. package/table-builder/functions/download-data.d.ts +1 -0
  208. package/table-builder/functions/null-filter-function.d.ts +2 -0
  209. package/table-builder/functions/number-filter-function.d.ts +4 -0
  210. package/table-builder/functions/sort-data-function.d.ts +6 -0
  211. package/table-builder/functions/string-filter-function.d.ts +7 -0
  212. package/{src/table-builder/interfaces/ColumnInfo.ts → table-builder/interfaces/ColumnInfo.d.ts} +6 -7
  213. package/{src/table-builder/interfaces/dictionary.ts → table-builder/interfaces/dictionary.d.ts} +3 -3
  214. package/table-builder/interfaces/report-def.d.ts +147 -0
  215. package/table-builder/ngrx/tableBuilderStateStore.d.ts +62 -0
  216. package/table-builder/pipes/column-total.pipe.d.ts +8 -0
  217. package/table-builder/pipes/format-filter-type.pipe.d.ts +8 -0
  218. package/table-builder/pipes/format-filter-value.pipe.d.ts +14 -0
  219. package/table-builder/pipes/key-display.d.ts +11 -0
  220. package/table-builder/services/export-to-csv.service.d.ts +22 -0
  221. package/table-builder/services/link-creator.service.d.ts +16 -0
  222. package/table-builder/services/table-template-service.d.ts +15 -0
  223. package/table-builder/services/transform-creator.d.ts +21 -0
  224. package/table-builder/table-builder.module.d.ts +21 -0
  225. package/utilities/array-helpers.d.ts +1 -0
  226. package/utilities/directives/auto-focus.directive.d.ts +10 -0
  227. package/utilities/directives/clickEmitterDirective.d.ts +7 -0
  228. package/utilities/directives/clickSubject.d.ts +9 -0
  229. package/utilities/directives/conditional-classes.directive.d.ts +14 -0
  230. package/utilities/directives/dialog-service.d.ts +10 -0
  231. package/utilities/directives/dialog.d.ts +46 -0
  232. package/utilities/directives/mat-toggle-group-directive.d.ts +21 -0
  233. package/utilities/directives/prevent-enter.directive.d.ts +6 -0
  234. package/utilities/directives/stop-propagation.directive.d.ts +7 -0
  235. package/utilities/directives/styler.d.ts +17 -0
  236. package/utilities/directives/trim-whitespace.directive.d.ts +9 -0
  237. package/{src/utilities/index.ts → utilities/index.d.ts} +15 -22
  238. package/utilities/module.d.ts +19 -0
  239. package/utilities/pipes/function.pipe.d.ts +7 -0
  240. package/utilities/pipes/phone.pipe.d.ts +7 -0
  241. package/utilities/pipes/space-case.pipes.d.ts +17 -0
  242. package/karma.conf.js +0 -44
  243. package/ng-package.json +0 -7
  244. package/src/action-state/action-state-spinner/action-state-spinner.component.css +0 -16
  245. package/src/action-state/action-state-spinner/action-state-spinner.component.html +0 -6
  246. package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +0 -25
  247. package/src/action-state/action-state-spinner/action-state-spinner.component.ts +0 -26
  248. package/src/action-state/action-state-ui/action-state-ui.module.ts +0 -13
  249. package/src/action-state/ngrx-ext/ngrx-ext.module.ts +0 -15
  250. package/src/action-state/ngrx.ts +0 -69
  251. package/src/http-request-state/HttpRequestStateFactory.ts +0 -66
  252. package/src/http-request-state/HttpRequestStateStore.ts +0 -151
  253. package/src/http-request-state/directives/HttpStateDirectiveBase.ts +0 -38
  254. package/src/http-request-state/directives/http-error-state-directive.ts +0 -32
  255. package/src/http-request-state/directives/http-inProgress-state-directive.ts +0 -32
  256. package/src/http-request-state/directives/http-notStarted-state-directive.ts +0 -31
  257. package/src/http-request-state/directives/http-success-state-directive.ts +0 -40
  258. package/src/http-request-state/directives/request-state-directive.spec.ts +0 -72
  259. package/src/http-request-state/directives/request-state-directive.ts +0 -79
  260. package/src/http-request-state/helpers.ts +0 -30
  261. package/src/http-request-state/http-request-state.ts +0 -69
  262. package/src/http-request-state/http-state-module.ts +0 -23
  263. package/src/http-request-state/observable.spec.ts +0 -43
  264. package/src/http-request-state/rxjs/getRequestorBody.ts +0 -10
  265. package/src/http-request-state/rxjs/getRequestorState.ts +0 -8
  266. package/src/http-request-state/rxjs/tapError.ts +0 -16
  267. package/src/http-request-state/rxjs/tapSuccess.ts +0 -16
  268. package/src/http-request-state/strategies.spec.ts +0 -42
  269. package/src/http-request-state/types.ts +0 -56
  270. package/src/ngrx/actionable-selector.ts +0 -95
  271. package/src/ngrx/index.ts +0 -1
  272. package/src/rxjs/defaultShareReplay.ts +0 -8
  273. package/src/rxjs/mapError.ts +0 -8
  274. package/src/rxjs/rxjs-operators.ts +0 -132
  275. package/src/rxjs/subjectifier.ts +0 -15
  276. package/src/rxjs/subscriber.directive.ts +0 -54
  277. package/src/specs/clickSubject.spec.ts +0 -95
  278. package/src/specs/dialog.spec.ts +0 -101
  279. package/src/specs/toggleGroupDirective.spec.ts +0 -229
  280. package/src/table-builder/classes/DefaultSettings.ts +0 -11
  281. package/src/table-builder/classes/MatTableObservableDataSource.ts +0 -23
  282. package/src/table-builder/classes/TableBuilderConfig.ts +0 -35
  283. package/src/table-builder/classes/TableBuilderDataSource.ts +0 -57
  284. package/src/table-builder/classes/TableState.ts +0 -83
  285. package/src/table-builder/classes/filter-info.ts +0 -131
  286. package/src/table-builder/classes/table-builder-general-settings.ts +0 -90
  287. package/src/table-builder/classes/table-builder.ts +0 -52
  288. package/src/table-builder/classes/table-store.ts +0 -416
  289. package/src/table-builder/components/array-column.component.ts +0 -36
  290. package/src/table-builder/components/column-builder/column-builder.component.html +0 -61
  291. package/src/table-builder/components/column-builder/column-builder.component.scss +0 -43
  292. package/src/table-builder/components/column-builder/column-builder.component.spec.ts +0 -49
  293. package/src/table-builder/components/column-builder/column-builder.component.ts +0 -137
  294. package/src/table-builder/components/column-builder/column-helpers.ts +0 -36
  295. package/src/table-builder/components/date-filter/date-filter.component.html +0 -23
  296. package/src/table-builder/components/date-filter/date-filter.component.ts +0 -24
  297. package/src/table-builder/components/date-time-filter/date-time-filter.component.html +0 -9
  298. package/src/table-builder/components/date-time-filter/date-time-filter.component.ts +0 -22
  299. package/src/table-builder/components/filter/filter.component.html +0 -88
  300. package/src/table-builder/components/filter/filter.component.scss +0 -64
  301. package/src/table-builder/components/filter/filter.component.spec.ts +0 -87
  302. package/src/table-builder/components/filter/filter.component.ts +0 -55
  303. package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +0 -92
  304. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +0 -55
  305. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +0 -57
  306. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +0 -57
  307. package/src/table-builder/components/generic-table/generic-table.component.html +0 -71
  308. package/src/table-builder/components/generic-table/generic-table.component.scss +0 -51
  309. package/src/table-builder/components/generic-table/generic-table.component.ts +0 -228
  310. package/src/table-builder/components/generic-table/paginator.component.ts +0 -94
  311. package/src/table-builder/components/group-by-list/group-by-list.component.css +0 -8
  312. package/src/table-builder/components/group-by-list/group-by-list.component.html +0 -12
  313. package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +0 -23
  314. package/src/table-builder/components/group-by-list/group-by-list.component.ts +0 -21
  315. package/src/table-builder/components/header-menu/header-menu.component.html +0 -104
  316. package/src/table-builder/components/header-menu/header-menu.component.scss +0 -96
  317. package/src/table-builder/components/header-menu/header-menu.component.ts +0 -98
  318. package/src/table-builder/components/in-filter/in-filter.component.css +0 -3
  319. package/src/table-builder/components/in-filter/in-filter.component.html +0 -20
  320. package/src/table-builder/components/in-filter/in-filter.component.ts +0 -64
  321. package/src/table-builder/components/initialization-component/initialization-component.html +0 -29
  322. package/src/table-builder/components/initialization-component/initialization-component.ts +0 -24
  323. package/src/table-builder/components/link-column.component.ts +0 -47
  324. package/src/table-builder/components/number-filter/number-filter.component.css +0 -10
  325. package/src/table-builder/components/number-filter/number-filter.component.html +0 -19
  326. package/src/table-builder/components/number-filter/number-filter.component.spec.ts +0 -30
  327. package/src/table-builder/components/number-filter/number-filter.component.ts +0 -25
  328. package/src/table-builder/components/scroll-strategy.ts +0 -82
  329. package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +0 -62
  330. package/src/table-builder/components/sort-menu/sort-menu.component.html +0 -111
  331. package/src/table-builder/components/sort-menu/sort-menu.component.scss +0 -119
  332. package/src/table-builder/components/sort-menu/sort-menu.component.ts +0 -95
  333. package/src/table-builder/components/table-container/table-container.css +0 -45
  334. package/src/table-builder/components/table-container/table-container.helpers/data-state.helpers.ts +0 -141
  335. package/src/table-builder/components/table-container/table-container.helpers/filter-state.helpers.ts +0 -106
  336. package/src/table-builder/components/table-container/table-container.helpers/groupBy.helpers.ts +0 -69
  337. package/src/table-builder/components/table-container/table-container.helpers/sort-state.helpers.ts +0 -45
  338. package/src/table-builder/components/table-container/table-container.html +0 -117
  339. package/src/table-builder/components/table-container/table-container.spec.ts +0 -154
  340. package/src/table-builder/components/table-container/table-container.ts +0 -331
  341. package/src/table-builder/components/table-container/tableProps.ts +0 -18
  342. package/src/table-builder/components/table-container/virtual-scroll-container.ts +0 -126
  343. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +0 -31
  344. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +0 -52
  345. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +0 -42
  346. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +0 -10
  347. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +0 -86
  348. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +0 -38
  349. package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +0 -23
  350. package/src/table-builder/directives/custom-cell-directive.ts +0 -59
  351. package/src/table-builder/directives/multi-sort.directive.spec.ts +0 -124
  352. package/src/table-builder/directives/multi-sort.directive.ts +0 -49
  353. package/src/table-builder/directives/resize-column.directive.ts +0 -105
  354. package/src/table-builder/directives/table-wrapper.directive.ts +0 -14
  355. package/src/table-builder/directives/tb-filter.directive.ts +0 -370
  356. package/src/table-builder/enums/filterTypes.ts +0 -79
  357. package/src/table-builder/functions/boolean-filter-function.ts +0 -13
  358. package/src/table-builder/functions/date-filter-function.ts +0 -69
  359. package/src/table-builder/functions/download-data.ts +0 -11
  360. package/src/table-builder/functions/null-filter-function.ts +0 -9
  361. package/src/table-builder/functions/number-filter-function.ts +0 -42
  362. package/src/table-builder/functions/sort-data-function.ts +0 -23
  363. package/src/table-builder/functions/string-filter-function.ts +0 -52
  364. package/src/table-builder/interfaces/column-template.ts +0 -9
  365. package/src/table-builder/interfaces/report-def.ts +0 -153
  366. package/src/table-builder/ngrx/tableBuilderStateStore.ts +0 -143
  367. package/src/table-builder/pipes/column-total.pipe.ts +0 -17
  368. package/src/table-builder/pipes/format-filter-type.pipe.ts +0 -12
  369. package/src/table-builder/pipes/format-filter-value.pipe.ts +0 -41
  370. package/src/table-builder/pipes/key-display.ts +0 -16
  371. package/src/table-builder/services/export-to-csv.service.ts +0 -95
  372. package/src/table-builder/services/link-creator.service.ts +0 -68
  373. package/src/table-builder/services/table-template-service.ts +0 -55
  374. package/src/table-builder/services/transform-creator.ts +0 -92
  375. package/src/table-builder/specs/table-custom-filters.spec.ts +0 -262
  376. package/src/table-builder/styles/collapser.styles.scss +0 -15
  377. package/src/table-builder/table-builder.module.ts +0 -73
  378. package/src/test.ts +0 -17
  379. package/src/utilities/array-helpers.ts +0 -13
  380. package/src/utilities/directives/auto-focus.directive.ts +0 -20
  381. package/src/utilities/directives/clickEmitterDirective.ts +0 -16
  382. package/src/utilities/directives/clickSubject.ts +0 -20
  383. package/src/utilities/directives/conditional-classes.directive.ts +0 -36
  384. package/src/utilities/directives/dialog-service.ts +0 -19
  385. package/src/utilities/directives/dialog.ts +0 -142
  386. package/src/utilities/directives/mat-toggle-group-directive.ts +0 -61
  387. package/src/utilities/directives/prevent-enter.directive.ts +0 -13
  388. package/src/utilities/directives/stop-propagation.directive.ts +0 -20
  389. package/src/utilities/directives/styler.ts +0 -39
  390. package/src/utilities/directives/trim-whitespace.directive.ts +0 -21
  391. package/src/utilities/module.ts +0 -55
  392. package/src/utilities/pipes/function.pipe.ts +0 -16
  393. package/src/utilities/pipes/phone.pipe.ts +0 -15
  394. package/src/utilities/pipes/space-case.pipes.spec.ts +0 -47
  395. package/src/utilities/pipes/space-case.pipes.ts +0 -23
  396. package/tsconfig.lib.json +0 -19
  397. package/tsconfig.lib.prod.json +0 -10
  398. package/tsconfig.spec.json +0 -17
@@ -1,229 +0,0 @@
1
- import { Component, DebugElement } from "@angular/core";
2
- import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing";
3
- import { MatSlideToggle, MatSlideToggleModule } from "@angular/material/slide-toggle";
4
- import { MatSlideToggleGroupDirective } from "../utilities/directives/mat-toggle-group-directive";
5
- import { HarnessLoader } from '@angular/cdk/testing';
6
- import { TestbedHarnessEnvironment } from '@angular/cdk/testing/testbed';
7
- import { MatSlideToggleHarness } from '@angular/material/slide-toggle/testing';
8
- import { By } from "@angular/platform-browser";
9
- import { count, firstValueFrom, lastValueFrom, skip, Subject, takeUntil } from "rxjs";
10
-
11
- abstract class ToggleTestComponent {
12
-
13
- }
14
-
15
-
16
- @Component({
17
- template: `
18
- <ng-container opMatSlideToggleGroup >
19
- <mat-slide-toggle name='toggle1' > Slide me! </mat-slide-toggle>
20
- </ng-container>
21
- `
22
- }) export class SingleToggleTestComponent extends ToggleTestComponent {
23
-
24
- }
25
-
26
- @Component({
27
- template: `
28
- <ng-container opMatSlideToggleGroup [allowMultiple]='true' >
29
- <mat-slide-toggle name='toggle1' > Slide me! </mat-slide-toggle>
30
- <mat-slide-toggle name='toggle2' > Slide me! </mat-slide-toggle>
31
- </ng-container>
32
- `
33
- }) export class MultiToggleWithMultipleTestComponent extends ToggleTestComponent {
34
-
35
- }
36
-
37
- @Component({
38
- template: `
39
- <ng-container opMatSlideToggleGroup >
40
- <mat-slide-toggle name='toggle1' > Slide me! </mat-slide-toggle>
41
- <mat-slide-toggle name='toggle2' > Slide me! </mat-slide-toggle>
42
- </ng-container>
43
- `
44
- }) export class MultiToggleTestComponent extends ToggleTestComponent {
45
-
46
- }
47
-
48
-
49
- let fixture: ComponentFixture<ToggleTestComponent>;
50
- let loader: HarnessLoader;
51
- let toggleHarnesses: MatSlideToggleHarness [];
52
- let toggleGroupDirective: MatSlideToggleGroupDirective;
53
-
54
- let toggles: DebugElement[];
55
-
56
-
57
- const setupTest = (type) => async (): Promise<void> => {
58
-
59
- TestBed.configureTestingModule({
60
- imports: [MatSlideToggleModule],
61
- declarations: [
62
- type,
63
- MatSlideToggleGroupDirective,
64
- ],
65
- providers: [ ]
66
- });
67
- fixture = TestBed.createComponent(type);
68
- fixture.detectChanges();
69
-
70
- loader = TestbedHarnessEnvironment.documentRootLoader(fixture);
71
- toggleHarnesses = await loader.getAllHarnesses(MatSlideToggleHarness);
72
- toggles = fixture.debugElement.queryAll(By.directive(MatSlideToggle));
73
- toggleGroupDirective = toggles[0].injector.get(MatSlideToggleGroupDirective);
74
-
75
-
76
- };
77
-
78
-
79
- async function toggleAndReturnValues(index: number) {
80
- const firstVal = firstValueFrom(toggleGroupDirective.valueEmitter.pipe(skip(1)));
81
- await toggleHarnesses[index].toggle();
82
- return await firstVal;
83
- }
84
-
85
- describe("opMatSlideToggleGroup", () => {
86
- describe("Single Toggle", () => {
87
- beforeEach(waitForAsync(setupTest(SingleToggleTestComponent)));
88
-
89
- it('should create', async () => {
90
- expect(toggleGroupDirective).toBeDefined();
91
- })
92
-
93
- it('starts with an initial value', async () => {
94
- const firstVal = firstValueFrom(toggleGroupDirective.valueEmitter);
95
- const val = await firstVal;
96
- expect(val).toEqual({'toggle1': false});
97
- });
98
-
99
- it('when toggling on should emit the latest value as true', async () => {
100
- const val = await toggleAndReturnValues(0);
101
- expect(val).toEqual({'toggle1': true});
102
- });
103
-
104
- it('can toggle on and then off', async () => {
105
-
106
- const val = await toggleAndReturnValues(0);
107
- expect(val).toEqual({'toggle1': true});
108
- const val2 = await toggleAndReturnValues(0);
109
- expect(val2).toEqual({'toggle1': false});
110
- });
111
- });
112
-
113
- describe("Multi Toggle", () => {
114
- beforeEach(waitForAsync(setupTest(MultiToggleWithMultipleTestComponent)));
115
-
116
- it('starts with an initial value', async () => {
117
- const firstVal = firstValueFrom(toggleGroupDirective.valueEmitter);
118
- const val = await firstVal;
119
- expect(val).toEqual({'toggle1': false,'toggle2': false});
120
- });
121
-
122
- it('can toggle first toggle', async () => {
123
- const val = await toggleAndReturnValues(0);
124
- expect(val).toEqual({'toggle1': true,'toggle2': false});
125
- });
126
-
127
- it('can toggle second toggle', async () => {
128
- const val = await toggleAndReturnValues(1);
129
- expect(val).toEqual({'toggle1': false,'toggle2': true});
130
- });
131
-
132
- it('can toggle both toggles', async () => {
133
- const val = await toggleAndReturnValues(0);
134
- expect(val).toEqual({'toggle1': true,'toggle2': false});
135
-
136
- const val2 = await toggleAndReturnValues(1);
137
- expect(val2).toEqual({'toggle1': true,'toggle2': true});
138
- });
139
-
140
- it('can toggle both toggles multiple times', async () => {
141
- let val = await toggleAndReturnValues(0);
142
- expect(val).toEqual({'toggle1': true,'toggle2': false});
143
-
144
- val = await toggleAndReturnValues(1);
145
- expect(val).toEqual({'toggle1': true,'toggle2': true});
146
-
147
- val = await toggleAndReturnValues(1);
148
- expect(val).toEqual({'toggle1': true,'toggle2': false});
149
-
150
- val = await toggleAndReturnValues(1);
151
- expect(val).toEqual({'toggle1': true,'toggle2': true});
152
-
153
- val = await toggleAndReturnValues(0);
154
- expect(val).toEqual({'toggle1': false,'toggle2': true});
155
- val = await toggleAndReturnValues(1);
156
- expect(val).toEqual({'toggle1': false,'toggle2': false});
157
- });
158
-
159
- });
160
-
161
- describe("Multi Toggle Only One Allowed", () => {
162
- beforeEach(waitForAsync(setupTest(MultiToggleTestComponent)));
163
-
164
- it('starts with an initial value', async () => {
165
- const firstVal = firstValueFrom(toggleGroupDirective.valueEmitter);
166
- const val = await firstVal;
167
- expect(val).toEqual({'toggle1': false,'toggle2': false});
168
- });
169
-
170
- it('can toggle first toggle', async () => {
171
- const val = await toggleAndReturnValues(0);
172
- expect(val).toEqual({'toggle1': true,'toggle2': false});
173
- });
174
-
175
- it('can toggle second toggle', async () => {
176
- const val = await toggleAndReturnValues(1);
177
- expect(val).toEqual({'toggle1': false,'toggle2': true});
178
- });
179
-
180
- it('when toggle both toggles only the last one remains set', async () => {
181
- const val = await toggleAndReturnValues(0);
182
- expect(val).toEqual({'toggle1': true,'toggle2': false});
183
-
184
- const val2 = await toggleAndReturnValues(1);
185
- expect(val2).toEqual({'toggle1': false,'toggle2': true});
186
-
187
- var toggle1Value = await toggleHarnesses[0].isChecked();
188
-
189
- expect(toggle1Value).toBeFalse();
190
- });
191
-
192
- it('can toggle both toggles multiple times and only the last one will be set', async () => {
193
- let val = await toggleAndReturnValues(0);
194
- expect(val).toEqual({'toggle1': true,'toggle2': false});
195
-
196
- val = await toggleAndReturnValues(1);
197
- expect(val).toEqual({'toggle1': false,'toggle2': true});
198
-
199
- val = await toggleAndReturnValues(1);
200
- expect(val).toEqual({'toggle1': false,'toggle2': false});
201
-
202
- val = await toggleAndReturnValues(1);
203
- expect(val).toEqual({'toggle1': false,'toggle2': true});
204
-
205
- val = await toggleAndReturnValues(0);
206
- expect(val).toEqual({'toggle1': true,'toggle2': false});
207
- val = await toggleAndReturnValues(1);
208
- expect(val).toEqual({'toggle1': false,'toggle2': true});
209
- });
210
-
211
- it('can toggle 2nd toggle doesnt emit an extra time', async () => {
212
- const end = new Subject();
213
- const total = lastValueFrom( toggleGroupDirective.valueEmitter.pipe(
214
- takeUntil(end),
215
- count( (a,i) => true ),
216
- ));
217
-
218
- await toggleHarnesses[0].toggle();
219
- await toggleHarnesses[1].toggle();
220
-
221
- end.next(null);
222
- const result = await total;
223
-
224
- expect(result).toEqual(3);
225
- });
226
-
227
- });
228
-
229
- });
@@ -1,11 +0,0 @@
1
- import { ArrayStyle } from '../interfaces/report-def';
2
-
3
- export interface DefaultSettings {
4
- dateFormat?: string;
5
- dateTimeFormat?: string;
6
- }
7
-
8
- export const ArrayDefaults = {
9
- limit : 3,
10
- arrayStyle : ArrayStyle.CommaDelimited
11
- }
@@ -1,23 +0,0 @@
1
- import { MatTableDataSource } from '@angular/material/table';
2
- import { Observable, Subscription } from 'rxjs';
3
-
4
- export class MatTableObservableDataSource<T> extends MatTableDataSource<T> {
5
- subscription?: Subscription;
6
- constructor(private dataSrc: Observable<T[]>) {
7
- super([]);
8
- }
9
-
10
- connect() {
11
- if (!this.subscription) {
12
- this.subscription = this.dataSrc.subscribe( data => this.data = data );
13
- }
14
- return super.connect();
15
- }
16
- disconnect() {
17
- if (this.subscription) {
18
- this.subscription.unsubscribe();
19
- this.subscription = undefined;
20
- }
21
- super.disconnect();
22
- }
23
- }
@@ -1,35 +0,0 @@
1
- import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';
2
- import { TableState, defaultTableState } from './TableState';
3
- import { DefaultSettings } from './DefaultSettings';
4
- import { ArrayAdditional, FieldType } from '../interfaces/report-def';
5
- import { MultiSortDirective } from '../directives';
6
- import { PhoneNumberPipe } from '../../utilities/pipes/phone.pipe';
7
- import { CurrencyPipe, DatePipe } from '@angular/common';
8
- import { SpaceCasePipe } from '../../utilities/pipes/space-case.pipes';
9
- export interface TableBuilderConfig {
10
- defaultTableState: Partial<TableState>;
11
- export?: TableBuilderExport;
12
- defaultSettings?: DefaultSettings;
13
- arrayInfo?: ArrayAdditional;
14
- transformers?: Partial<{ [key in keyof typeof FieldType]: (val: any) => any }>
15
- }
16
-
17
- export interface TableBuilderExport {
18
- dateFormat?: string;
19
- dateTimeFormat?: string;
20
- onSave?: (event?: any) => void;
21
- prepend? : string;
22
- }
23
-
24
- export const TableBuilderConfigToken = new InjectionToken<TableBuilderConfig>('TableBuilderConfig');
25
-
26
- export function provideTableBuilder(config?: TableBuilderConfig) : EnvironmentProviders {
27
- return makeEnvironmentProviders([
28
- MultiSortDirective,
29
- SpaceCasePipe,
30
- DatePipe,
31
- CurrencyPipe,
32
- PhoneNumberPipe,
33
- { provide : TableBuilderConfigToken , useValue: config || defaultTableState}
34
- ])
35
- }
@@ -1,57 +0,0 @@
1
- import { MatTableDataSource } from '@angular/material/table';
2
- import { Observable, Subscription, combineLatest, map } from 'rxjs';
3
- import { TableStore } from './table-store';
4
-
5
- export class TableBuilderDataSource<T> extends MatTableDataSource<T> {
6
- subscription?: Subscription;
7
-
8
- constructor(
9
- public dataSrc: Observable<T[]>,
10
- private state: TableStore,
11
- ) {
12
- super([]);
13
- }
14
-
15
- connect() {
16
- if (!this.subscription) {
17
- let dataSource$ = this.dataSrc;
18
-
19
- if(this.state.tableSettings().usePaginator) {
20
- const currentPage$ = this.state.select( s => s.currentPage);
21
- const pageSize$ = this.state.getPageSize;
22
- dataSource$ = combineLatest([
23
- currentPage$,
24
- pageSize$,
25
- dataSource$
26
- ]).pipe(map(([currentPage,pageSize,d]) => {
27
- const start = currentPage * pageSize;
28
- return d.slice(start, start + pageSize );
29
- }));
30
- }
31
-
32
- if(this.state.tableSettings().useVirtualScroll) {
33
- const start$ = this.state.select( s => s.virtualStart);
34
- const end$ = this.state.select( s => s.virtualEnd);
35
- dataSource$ = combineLatest([
36
- start$,
37
- end$,
38
- dataSource$
39
- ]).pipe(map( ([start,end,data]) => {
40
- return data.slice(start,end);
41
- }));
42
- }
43
-
44
- this.subscription = dataSource$.subscribe((data) => {
45
- this.data = data;
46
- });
47
- }
48
- return super.connect();
49
- }
50
- disconnect() {
51
- if (this.subscription) {
52
- this.subscription.unsubscribe();
53
- this.subscription = undefined;
54
- }
55
- super.disconnect();
56
- }
57
- }
@@ -1,83 +0,0 @@
1
- import { CustomFilter, FilterInfo } from './filter-info';
2
- import { Dictionary } from '../interfaces/dictionary';
3
- import { Sort } from '@angular/material/sort';
4
- import { MetaData, Target } from '../interfaces/report-def';
5
- import { NotPersistedTableSettings, PersistedTableSettings } from './table-builder-general-settings';
6
- import { LinkInfo } from '../services/link-creator.service';
7
- import { TableProps } from '../components/table-container/tableProps';
8
-
9
- export interface Group {
10
- groupName?: string;
11
- parentGroupName?: string;
12
- isExpanded?: boolean;
13
- }
14
-
15
- export interface GroupedData {
16
- key: string,
17
- expandedHeaders: string[]
18
- }
19
-
20
- export interface PersistedTableState {
21
- hiddenKeys?: string [];
22
- filters: Dictionary<FilterInfo | CustomFilter>;
23
- sorted : Sort [];
24
- userDefined : { order:Dictionary<number>, widths:Dictionary<number>, table:{ width?:number }, pageSize?: number };
25
- persistedTableSettings : PersistedTableSettings;
26
- groupBy: GroupedData[];
27
- }
28
-
29
- export interface TableState extends Required<PersistedTableState> {
30
- initializationState: InitializationState;
31
- metaData: Dictionary<MetaData>;
32
- notPersistedTableSettings : NotPersistedTableSettings;
33
- pageSize: number;
34
- currentPage: number;
35
- virtualScrollOffset: number;
36
- virtualStart: number;
37
- virtualEnd: number;
38
- dataLen: number;
39
- linkMaps: Dictionary<LinkInfo>;
40
- props: TableProps
41
- }
42
- type RequireNull<T> = { [K in keyof T]: null };
43
- class KeysToDelete implements RequireNull<Omit<TableState, keyof PersistedTableState>> {
44
- initializationState = null;
45
- metaData = null;
46
- notPersistedTableSettings = null;
47
- linkMaps = null;
48
- pageSize = null;
49
- currentPage = null;
50
- virtualScrollOffset = null;
51
- dataLen = null;
52
- virtualStart = null;
53
- virtualEnd = null;
54
- props = null;
55
- }
56
- export const keysToDelete = Object.keys(new KeysToDelete());
57
-
58
- export enum InitializationState {
59
- Created,
60
- MetaDataLoaded,
61
- LoadedFromStore,
62
- Ready,
63
- }
64
-
65
- export const defaultTableState: TableState = {
66
- initializationState: InitializationState.Created,
67
- metaData: {},
68
- filters: {},
69
- hiddenKeys: [],
70
- sorted: [],
71
- userDefined:{ order: {}, widths: {}, table: {}},
72
- persistedTableSettings : new PersistedTableSettings(),
73
- notPersistedTableSettings : new NotPersistedTableSettings(),
74
- pageSize: 10,
75
- linkMaps: {},
76
- groupBy: [],
77
- currentPage: 0,
78
- virtualScrollOffset: 0,
79
- dataLen: 0,
80
- virtualStart: 0,
81
- virtualEnd: 20,
82
- props: {} as TableProps
83
- };
@@ -1,131 +0,0 @@
1
- import { StringFilterMap, DateFilterMap, NumberFilterMap, BooleanFilterMap, FilterType, FilterToFiltersMap, EnumFilterMap, DateTimeFilterMap } from '../enums/filterTypes';
2
- import { EnumFilterFuncs, StringFilterFuncs } from '../functions/string-filter-function';
3
- import { NumberFilterFuncs } from '../functions/number-filter-function';
4
- import { DateFilterFuncs, DateTimeFilterFuncs } from '../functions/date-filter-function';
5
- import { BooleanFilterFuncs } from '../functions/boolean-filter-function';
6
- import { FieldType } from '../interfaces/report-def';
7
- import { Dictionary } from '../interfaces/dictionary';
8
- import { Predicate } from '@angular/core';
9
- import { get } from 'lodash';
10
-
11
- export type mappedFieldTypes =
12
- FieldType.Unknown |
13
- FieldType.Date |
14
- FieldType.DateTime |
15
- FieldType.Currency |
16
- FieldType.Array |
17
- FieldType.Number |
18
- FieldType.String |
19
- FieldType.Boolean |
20
- FieldType.PhoneNumber |
21
- FieldType.Link |
22
- FieldType.Enum;
23
-
24
- type MappedTypes = Exclude<typeof FieldType[keyof typeof FieldType],FieldType.Expression | FieldType.Hidden | FieldType.ImageUrl>
25
-
26
- export const filterTypeMap = {
27
- [FieldType.Unknown] : StringFilterMap,
28
- [FieldType.Date] : DateFilterMap,
29
- [FieldType.DateTime]: DateTimeFilterMap,
30
- [FieldType.Currency] : NumberFilterMap,
31
- [FieldType.Array] : StringFilterMap,
32
- [FieldType.Number] : NumberFilterMap,
33
- [FieldType.String] : StringFilterMap,
34
- [FieldType.Boolean] : BooleanFilterMap,
35
- [FieldType.PhoneNumber] : StringFilterMap,
36
- [FieldType.Link] : StringFilterMap,
37
- [FieldType.Enum] : EnumFilterMap,
38
- } as const satisfies {[key in MappedTypes]: FilterToFiltersMap};
39
-
40
- const filterFactoryMap: Dictionary<FilterFunc<any,any>> = {
41
- [FilterType.And] : (filter: FilterInfo ): ((obj: any) => boolean) => {
42
- const filters = (filter.filterValue as FilterInfo[]).map(createFilterFunc);
43
- return (obj: any) : boolean => filters.every( f => f(obj));
44
- },
45
- [FilterType.In] : (filter: FilterInfo ): (obj: any) => boolean => {
46
- const filters = (filter.filterValue as FilterInfo[]).map(createFilterFunc);
47
- return (obj: any) : boolean => filters.some( f => f(obj));
48
- },
49
- };
50
-
51
- const filterTypeFuncMap : Dictionary<Dictionary<FilterFunc<any,any>>> = {
52
- [FieldType.String] : StringFilterFuncs,
53
- [FieldType.Array] : StringFilterFuncs,
54
- [FieldType.Currency] : NumberFilterFuncs,
55
- [FieldType.PhoneNumber] : StringFilterFuncs,
56
- [FieldType.Date] : DateFilterFuncs,
57
- [FieldType.DateTime] : DateTimeFilterFuncs,
58
- [FieldType.Number] : NumberFilterFuncs,
59
- [FieldType.Boolean] : BooleanFilterFuncs,
60
- [FieldType.Unknown] : StringFilterFuncs,
61
- [FieldType.Enum] : EnumFilterFuncs ,
62
- [FieldType.Link] : StringFilterFuncs,
63
- };
64
-
65
- export interface FilterState {
66
- filterId: string;
67
- filterType: FilterType;
68
- filterValue?: any;
69
- active?: boolean;
70
-
71
- }
72
-
73
- export interface FilterInfo<T extends FieldType = any, U = any> extends FilterState {
74
- key: string & keyof U;
75
- fieldType: T;
76
- _isExternallyManaged?: boolean;
77
- }
78
-
79
- export interface PartialFilter<T extends FieldType = any> {
80
- filterId?: string;
81
- key: string;
82
- fieldType: T;
83
- filterType?: FilterType;
84
- filterValue?: any;
85
- }
86
-
87
-
88
-
89
- export interface CustomFilter<T extends FieldType = any> extends FilterState {
90
- predicate: Predicate<T>;
91
- filterType: FilterType.Custom;
92
- }
93
-
94
- export function isCustomFilter(filter : FilterInfo | CustomFilter) : filter is CustomFilter {
95
- return filter && filter.filterType === FilterType.Custom;
96
- }
97
-
98
- export function isFilterInfo(filter : FilterInfo | CustomFilter) : filter is FilterInfo {
99
- return filter && typeof (filter as FilterInfo).key === 'string' && filter.filterType !== FilterType.Custom;
100
- }
101
-
102
- const defaultPredicate: Predicate<any> = () => true;
103
-
104
- export function createFilterFunc(filter: FilterInfo | CustomFilter): Predicate<any> {
105
- if(isCustomFilter(filter)) {
106
- return filter.active ? filter.predicate : defaultPredicate;
107
- }
108
- if (filter.filterValue === undefined) {
109
- return defaultPredicate;
110
- }
111
-
112
- const func = filterTypeFuncMap[filter.fieldType][filter.filterType](filter);
113
- if(!func) {
114
- if(filterFactoryMap[filter.filterType]){
115
- return filterFactoryMap[filter.filterType!](filter);
116
- }
117
- }
118
-
119
- const cannotBeTrueForNull = !FalseyValueCanBeIncludedFilterTypes.includes(filter.filterType!);
120
- return (rowObj) => {
121
- const value = get(rowObj, filter.key);
122
- return ((value == undefined) && cannotBeTrueForNull)
123
- ? false
124
- : func( value);
125
- };
126
- }
127
-
128
- export type FilterFunc<T,V = T> = (filterInfo:FilterInfo) => (val:V) => boolean;
129
- export type Range<T> = {Start:T,End:T};
130
-
131
- const FalseyValueCanBeIncludedFilterTypes = [FilterType.IsNull,FilterType.NumberNotEqual,FilterType.DateIsNotOn,FilterType.StringDoesNotContain];
@@ -1,90 +0,0 @@
1
- import { merge } from "lodash";
2
-
3
- export class GeneralTableSettings {
4
- constructor(settings? : TableBuilderSettings){
5
- if(settings){
6
- merge(this.headerSettings, settings.headerSettings);
7
- merge(this.footerSettings, settings.footerSettings);
8
- merge(this.columnHeaderSettings, settings.columnHeaderSettings);
9
- merge(this.tableSettings, settings.tableSettings);
10
- }
11
- }
12
- headerSettings = new TableWrapperHeaderSettings();
13
- footerSettings = new TableWrapperFooterSettings();
14
- columnHeaderSettings = new TableColumnHeaderSettings();
15
- tableSettings = new TableSettings();
16
- }
17
-
18
- export interface TableBuilderSettings {
19
- headerSettings? : Partial<TableWrapperHeaderSettings>;
20
- footerSettings? : Partial<TableWrapperFooterSettings>;
21
- columnHeaderSettings? : Partial<TableColumnHeaderSettings>;
22
- tableSettings? : Partial<TableSettings>;
23
- }
24
-
25
- export class TableWrapperHeaderSettings {
26
- hideExport = false
27
- hideFilter = false
28
- hideColumnSettings = false
29
- hideHeader = false
30
- hideSort = false
31
- collapse = false
32
- showTitleWhenCollapsed = true;
33
- }
34
-
35
- export class TableWrapperFooterSettings {
36
- collapse = false
37
- }
38
-
39
- export class TableColumnHeaderSettings {
40
- noFilters = false;
41
- noHeader = false;
42
- }
43
-
44
- export class TableSettings {
45
- usePaginator = true;
46
- useVirtualScroll: true | VirtualScrollOptions | null = null;
47
- }
48
-
49
- export class PersistedTableSettings {
50
- constructor(tableSettings? :GeneralTableSettings | PersistedTableSettings){
51
- if (tableSettings){
52
- this.collapseHeader = (tableSettings as GeneralTableSettings).headerSettings?.collapse ?? (tableSettings as PersistedTableSettings).collapseHeader;
53
- this.collapseFooter = (tableSettings as GeneralTableSettings).footerSettings?.collapse ?? (tableSettings as PersistedTableSettings).collapseFooter;
54
- }
55
- }
56
- collapseHeader = false;
57
- collapseFooter = false;
58
- }
59
-
60
- export class NotPersistedTableSettings {
61
- constructor(tableSettings? :GeneralTableSettings){
62
- if(tableSettings){
63
- this.hideExport = tableSettings.headerSettings.hideExport;
64
- this.hideColumnSettings = tableSettings.headerSettings.hideColumnSettings;
65
- this.hideFilter = tableSettings.headerSettings.hideFilter;
66
- this.hideSort = tableSettings.headerSettings.hideSort;
67
- this.showTitleWhenHeaderCollapsed = tableSettings.headerSettings.showTitleWhenCollapsed;
68
- this.hideHeader = tableSettings.headerSettings.hideHeader;
69
- this.hideColumnHeaderFilters = tableSettings.columnHeaderSettings.noFilters;
70
- this.hideColumnHeader = tableSettings.columnHeaderSettings.noHeader;
71
- this.usePaginator = tableSettings.tableSettings.usePaginator;
72
- this.useVirtualScroll = tableSettings.tableSettings.useVirtualScroll;
73
- }
74
- }
75
- hideExport = true
76
- hideFilter = true
77
- hideColumnSettings = true
78
- hideSort = true
79
- showTitleWhenHeaderCollapsed = true;
80
- hideHeader = true
81
- hideColumnHeaderFilters = true;
82
- hideColumnHeader = true;
83
- usePaginator = true;
84
- useVirtualScroll: true | VirtualScrollOptions | null = null;
85
- }
86
-
87
- export class VirtualScrollOptions {
88
- itemHeight = 48;
89
- headerOffset = 56;
90
- }