@one-paragon/angular-utilities 1.2.12 → 1.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/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 +47 -0
  11. package/esm2022/http-request-state/HttpRequestStateFactory.mjs +51 -0
  12. package/esm2022/http-request-state/HttpRequestStateStore.mjs +121 -0
  13. package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +30 -0
  14. package/esm2022/http-request-state/directives/http-error-state-directive.mjs +23 -0
  15. package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +23 -0
  16. package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +23 -0
  17. package/esm2022/http-request-state/directives/http-success-state-directive.mjs +29 -0
  18. package/esm2022/http-request-state/directives/index.mjs +6 -0
  19. package/esm2022/http-request-state/directives/request-state-directive.mjs +61 -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 +71 -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 +23 -0
  42. package/esm2022/table-builder/classes/TableBuilderConfig.mjs +18 -0
  43. package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +45 -0
  44. package/esm2022/table-builder/classes/TableState.mjs +49 -0
  45. package/esm2022/table-builder/classes/data-store.mjs +15 -0
  46. package/esm2022/table-builder/classes/display-col.mjs +2 -0
  47. package/esm2022/table-builder/classes/filter-info.mjs +61 -0
  48. package/esm2022/table-builder/classes/table-builder-general-settings.mjs +112 -0
  49. package/esm2022/table-builder/classes/table-builder.mjs +77 -0
  50. package/esm2022/table-builder/classes/table-store.mjs +383 -0
  51. package/esm2022/table-builder/components/array-column.component.mjs +53 -0
  52. package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +134 -0
  53. package/esm2022/table-builder/components/column-builder/column-helpers.mjs +45 -0
  54. package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +29 -0
  55. package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +24 -0
  56. package/esm2022/table-builder/components/filter/filter.component.mjs +64 -0
  57. package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +102 -0
  58. package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +47 -0
  59. package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +301 -0
  60. package/esm2022/table-builder/components/generic-table/paginator.component.mjs +100 -0
  61. package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +21 -0
  62. package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +103 -0
  63. package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +65 -0
  64. package/esm2022/table-builder/components/index.mjs +10 -0
  65. package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +47 -0
  66. package/esm2022/table-builder/components/link-column.component.mjs +74 -0
  67. package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +29 -0
  68. package/esm2022/table-builder/components/profiles-menu/profiles-menu.component.mjs +64 -0
  69. package/esm2022/table-builder/components/scroll-strategy.mjs +60 -0
  70. package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +46 -0
  71. package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +82 -0
  72. package/esm2022/table-builder/components/table-container/table-container-imports.mjs +26 -0
  73. package/esm2022/table-builder/components/table-container/table-container.helpers/data-state.helpers.mjs +135 -0
  74. package/esm2022/table-builder/components/table-container/table-container.helpers/filter-state.helpers.mjs +83 -0
  75. package/esm2022/table-builder/components/table-container/table-container.helpers/groupBy.helpers.mjs +71 -0
  76. package/esm2022/table-builder/components/table-container/table-container.helpers/sort-state.helpers.mjs +36 -0
  77. package/esm2022/table-builder/components/table-container/table-container.mjs +327 -0
  78. package/esm2022/table-builder/components/table-container/tableProps.mjs +8 -0
  79. package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +151 -0
  80. package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +44 -0
  81. package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +36 -0
  82. package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +25 -0
  83. package/esm2022/table-builder/directives/custom-cell-directive.mjs +73 -0
  84. package/esm2022/table-builder/directives/index.mjs +6 -0
  85. package/esm2022/table-builder/directives/multi-sort.directive.mjs +50 -0
  86. package/esm2022/table-builder/directives/resize-column.directive.mjs +87 -0
  87. package/esm2022/table-builder/directives/table-wrapper.directive.mjs +18 -0
  88. package/esm2022/table-builder/directives/tb-filter.directive.mjs +396 -0
  89. package/esm2022/table-builder/enums/filterTypes.mjs +29 -0
  90. package/esm2022/table-builder/functions/boolean-filter-function.mjs +10 -0
  91. package/esm2022/table-builder/functions/date-filter-function.mjs +58 -0
  92. package/esm2022/table-builder/functions/download-data.mjs +12 -0
  93. package/esm2022/table-builder/functions/null-filter-function.mjs +8 -0
  94. package/esm2022/table-builder/functions/number-filter-function.mjs +32 -0
  95. package/esm2022/table-builder/functions/sort-data-function.mjs +17 -0
  96. package/esm2022/table-builder/functions/string-filter-function.mjs +41 -0
  97. package/esm2022/table-builder/interfaces/ColumnInfo.mjs +2 -0
  98. package/esm2022/table-builder/interfaces/dictionary.mjs +2 -0
  99. package/esm2022/table-builder/interfaces/report-def.mjs +50 -0
  100. package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +154 -0
  101. package/esm2022/table-builder/pipes/column-total.pipe.mjs +22 -0
  102. package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +18 -0
  103. package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +43 -0
  104. package/esm2022/table-builder/pipes/key-display.mjs +18 -0
  105. package/esm2022/table-builder/services/export-to-csv.service.mjs +75 -0
  106. package/esm2022/table-builder/services/link-creator.service.mjs +50 -0
  107. package/esm2022/table-builder/services/table-template-service.mjs +60 -0
  108. package/esm2022/table-builder/services/transform-creator.mjs +100 -0
  109. package/esm2022/table-builder/table-builder.module.mjs +124 -0
  110. package/esm2022/utilities/array-helpers.mjs +14 -0
  111. package/esm2022/utilities/directives/auto-focus.directive.mjs +25 -0
  112. package/esm2022/utilities/directives/clickEmitterDirective.mjs +22 -0
  113. package/esm2022/utilities/directives/clickSubject.mjs +29 -0
  114. package/esm2022/utilities/directives/conditional-classes.directive.mjs +36 -0
  115. package/esm2022/utilities/directives/dialog-service.mjs +21 -0
  116. package/esm2022/utilities/directives/dialog.mjs +145 -0
  117. package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +59 -0
  118. package/esm2022/utilities/directives/prevent-enter.directive.mjs +20 -0
  119. package/esm2022/utilities/directives/stop-propagation.directive.mjs +26 -0
  120. package/esm2022/utilities/directives/styler.mjs +41 -0
  121. package/esm2022/utilities/directives/trim-whitespace.directive.mjs +28 -0
  122. package/esm2022/utilities/index.mjs +16 -0
  123. package/esm2022/utilities/module.mjs +90 -0
  124. package/esm2022/utilities/pipes/function.pipe.mjs +22 -0
  125. package/esm2022/utilities/pipes/phone.pipe.mjs +20 -0
  126. package/esm2022/utilities/pipes/space-case.pipes.mjs +28 -0
  127. package/fesm2022/one-paragon-angular-utilities.mjs +5670 -0
  128. package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -0
  129. package/http-request-state/HttpRequestStateFactory.d.ts +17 -0
  130. package/http-request-state/HttpRequestStateStore.d.ts +54 -0
  131. package/http-request-state/directives/HttpStateDirectiveBase.d.ts +14 -0
  132. package/http-request-state/directives/http-error-state-directive.d.ts +9 -0
  133. package/http-request-state/directives/http-inProgress-state-directive.d.ts +9 -0
  134. package/http-request-state/directives/http-notStarted-state-directive.d.ts +9 -0
  135. package/http-request-state/directives/http-success-state-directive.d.ts +16 -0
  136. package/{src/http-request-state/directives/index.ts → http-request-state/directives/index.d.ts} +5 -5
  137. package/http-request-state/directives/request-state-directive.d.ts +34 -0
  138. package/http-request-state/helpers.d.ts +9 -0
  139. package/http-request-state/http-request-state.d.ts +12 -0
  140. package/http-request-state/http-state-module.d.ts +11 -0
  141. package/{src/http-request-state/index.ts → http-request-state/index.d.ts} +6 -6
  142. package/http-request-state/rxjs/getRequestorBody.d.ts +3 -0
  143. package/http-request-state/rxjs/getRequestorState.d.ts +3 -0
  144. package/{src/http-request-state/rxjs/index.ts → http-request-state/rxjs/index.d.ts} +4 -4
  145. package/http-request-state/rxjs/tapError.d.ts +3 -0
  146. package/http-request-state/rxjs/tapSuccess.d.ts +3 -0
  147. package/http-request-state/types.d.ts +41 -0
  148. package/index.d.ts +5 -0
  149. package/ngrx/actionable-selector.d.ts +17 -0
  150. package/ngrx/index.d.ts +1 -0
  151. package/package.json +30 -16
  152. package/{src/public-api.ts → public-api.d.ts} +16 -35
  153. package/rxjs/defaultShareReplay.d.ts +2 -0
  154. package/{src/rxjs/index.ts → rxjs/index.d.ts} +5 -5
  155. package/rxjs/mapError.d.ts +2 -0
  156. package/rxjs/rxjs-operators.d.ts +13 -0
  157. package/rxjs/subjectifier.d.ts +8 -0
  158. package/rxjs/subscriber.directive.d.ts +14 -0
  159. package/table-builder/classes/DefaultSettings.d.ts +9 -0
  160. package/table-builder/classes/MatTableObservableDataSource.d.ts +9 -0
  161. package/table-builder/classes/TableBuilderConfig.d.ts +21 -0
  162. package/table-builder/classes/TableBuilderDataSource.d.ts +12 -0
  163. package/table-builder/classes/TableState.d.ts +67 -0
  164. package/table-builder/classes/data-store.d.ts +8 -0
  165. package/{src/table-builder/classes/display-col.ts → table-builder/classes/display-col.d.ts} +5 -5
  166. package/table-builder/classes/filter-info.d.ts +35 -0
  167. package/table-builder/classes/table-builder-general-settings.d.ts +78 -0
  168. package/table-builder/classes/table-builder.d.ts +18 -0
  169. package/table-builder/classes/table-store.d.ts +138 -0
  170. package/table-builder/components/array-column.component.d.ts +15 -0
  171. package/table-builder/components/column-builder/column-builder.component.d.ts +47 -0
  172. package/table-builder/components/column-builder/column-helpers.d.ts +36 -0
  173. package/table-builder/components/date-filter/date-filter.component.d.ts +37 -0
  174. package/table-builder/components/date-time-filter/date-time-filter.component.d.ts +37 -0
  175. package/table-builder/components/filter/filter.component.d.ts +46 -0
  176. package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +24 -0
  177. package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +17 -0
  178. package/table-builder/components/generic-table/generic-table.component.d.ts +83 -0
  179. package/table-builder/components/generic-table/paginator.component.d.ts +30 -0
  180. package/table-builder/components/group-by-list/group-by-list.component.d.ts +7 -0
  181. package/table-builder/components/header-menu/header-menu.component.d.ts +51 -0
  182. package/table-builder/components/in-filter/in-filter.component.d.ts +20 -0
  183. package/{src/table-builder/components/index.ts → table-builder/components/index.d.ts} +9 -9
  184. package/table-builder/components/initialization-component/initialization-component.d.ts +13 -0
  185. package/table-builder/components/link-column.component.d.ts +25 -0
  186. package/table-builder/components/number-filter/number-filter.component.d.ts +39 -0
  187. package/table-builder/components/profiles-menu/profiles-menu.component.d.ts +32 -0
  188. package/table-builder/components/scroll-strategy.d.ts +22 -0
  189. package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +24 -0
  190. package/table-builder/components/sort-menu/sort-menu.component.d.ts +24 -0
  191. package/{src/table-builder/components/table-container/table-container-imports.ts → table-builder/components/table-container/table-container-imports.d.ts} +14 -32
  192. package/table-builder/components/table-container/table-container.d.ts +79 -0
  193. package/table-builder/components/table-container/table-container.helpers/data-state.helpers.d.ts +6 -0
  194. package/table-builder/components/table-container/table-container.helpers/filter-state.helpers.d.ts +17 -0
  195. package/table-builder/components/table-container/table-container.helpers/groupBy.helpers.d.ts +17 -0
  196. package/table-builder/components/table-container/table-container.helpers/sort-state.helpers.d.ts +8 -0
  197. package/table-builder/components/table-container/tableProps.d.ts +12 -0
  198. package/table-builder/components/table-container/virtual-scroll-container.d.ts +35 -0
  199. package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +15 -0
  200. package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +12 -0
  201. package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +14 -0
  202. package/table-builder/directives/custom-cell-directive.d.ts +33 -0
  203. package/{src/table-builder/directives/index.ts → table-builder/directives/index.d.ts} +5 -6
  204. package/table-builder/directives/multi-sort.directive.d.ts +10 -0
  205. package/table-builder/directives/resize-column.directive.d.ts +43 -0
  206. package/table-builder/directives/table-wrapper.directive.d.ts +8 -0
  207. package/table-builder/directives/tb-filter.directive.d.ts +115 -0
  208. package/table-builder/enums/filterTypes.d.ts +36 -0
  209. package/table-builder/functions/boolean-filter-function.d.ts +3 -0
  210. package/table-builder/functions/date-filter-function.d.ts +4 -0
  211. package/table-builder/functions/download-data.d.ts +1 -0
  212. package/table-builder/functions/null-filter-function.d.ts +2 -0
  213. package/table-builder/functions/number-filter-function.d.ts +4 -0
  214. package/table-builder/functions/sort-data-function.d.ts +6 -0
  215. package/table-builder/functions/string-filter-function.d.ts +5 -0
  216. package/{src/table-builder/interfaces/ColumnInfo.ts → table-builder/interfaces/ColumnInfo.d.ts} +6 -7
  217. package/{src/table-builder/interfaces/dictionary.ts → table-builder/interfaces/dictionary.d.ts} +3 -3
  218. package/table-builder/interfaces/report-def.d.ts +147 -0
  219. package/table-builder/ngrx/tableBuilderStateStore.d.ts +70 -0
  220. package/table-builder/pipes/column-total.pipe.d.ts +8 -0
  221. package/table-builder/pipes/format-filter-type.pipe.d.ts +8 -0
  222. package/table-builder/pipes/format-filter-value.pipe.d.ts +12 -0
  223. package/table-builder/pipes/key-display.d.ts +10 -0
  224. package/table-builder/services/export-to-csv.service.d.ts +14 -0
  225. package/table-builder/services/link-creator.service.d.ts +16 -0
  226. package/table-builder/services/table-template-service.d.ts +14 -0
  227. package/table-builder/services/transform-creator.d.ts +16 -0
  228. package/table-builder/table-builder.module.d.ts +21 -0
  229. package/utilities/array-helpers.d.ts +1 -0
  230. package/utilities/directives/auto-focus.directive.d.ts +9 -0
  231. package/utilities/directives/clickEmitterDirective.d.ts +7 -0
  232. package/utilities/directives/clickSubject.d.ts +9 -0
  233. package/utilities/directives/conditional-classes.directive.d.ts +13 -0
  234. package/utilities/directives/dialog-service.d.ts +10 -0
  235. package/utilities/directives/dialog.d.ts +44 -0
  236. package/utilities/directives/mat-toggle-group-directive.d.ts +21 -0
  237. package/utilities/directives/prevent-enter.directive.d.ts +6 -0
  238. package/utilities/directives/stop-propagation.directive.d.ts +7 -0
  239. package/utilities/directives/styler.d.ts +15 -0
  240. package/utilities/directives/trim-whitespace.directive.d.ts +7 -0
  241. package/{src/utilities/index.ts → utilities/index.d.ts} +15 -22
  242. package/utilities/module.d.ts +19 -0
  243. package/utilities/pipes/function.pipe.d.ts +7 -0
  244. package/utilities/pipes/phone.pipe.d.ts +7 -0
  245. package/utilities/pipes/space-case.pipes.d.ts +17 -0
  246. package/karma.conf.js +0 -44
  247. package/ng-package.json +0 -7
  248. package/src/action-state/action-state-spinner/action-state-spinner.component.css +0 -16
  249. package/src/action-state/action-state-spinner/action-state-spinner.component.html +0 -6
  250. package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +0 -25
  251. package/src/action-state/action-state-spinner/action-state-spinner.component.ts +0 -26
  252. package/src/action-state/action-state-ui/action-state-ui.module.ts +0 -13
  253. package/src/action-state/ngrx-ext/ngrx-ext.module.ts +0 -15
  254. package/src/action-state/ngrx.ts +0 -69
  255. package/src/http-request-state/HttpRequestStateFactory.ts +0 -66
  256. package/src/http-request-state/HttpRequestStateStore.ts +0 -173
  257. package/src/http-request-state/directives/HttpStateDirectiveBase.ts +0 -29
  258. package/src/http-request-state/directives/http-error-state-directive.ts +0 -21
  259. package/src/http-request-state/directives/http-inProgress-state-directive.ts +0 -19
  260. package/src/http-request-state/directives/http-notStarted-state-directive.ts +0 -19
  261. package/src/http-request-state/directives/http-success-state-directive.ts +0 -29
  262. package/src/http-request-state/directives/request-state-directive.spec.ts +0 -72
  263. package/src/http-request-state/directives/request-state-directive.ts +0 -78
  264. package/src/http-request-state/helpers.ts +0 -30
  265. package/src/http-request-state/http-request-state.ts +0 -69
  266. package/src/http-request-state/http-state-module.ts +0 -23
  267. package/src/http-request-state/observable.spec.ts +0 -43
  268. package/src/http-request-state/rxjs/getRequestorBody.ts +0 -10
  269. package/src/http-request-state/rxjs/getRequestorState.ts +0 -8
  270. package/src/http-request-state/rxjs/tapError.ts +0 -16
  271. package/src/http-request-state/rxjs/tapSuccess.ts +0 -16
  272. package/src/http-request-state/strategies.spec.ts +0 -42
  273. package/src/http-request-state/types.ts +0 -55
  274. package/src/ngrx/actionable-selector.ts +0 -95
  275. package/src/ngrx/index.ts +0 -1
  276. package/src/rxjs/defaultShareReplay.ts +0 -8
  277. package/src/rxjs/mapError.ts +0 -8
  278. package/src/rxjs/rxjs-operators.ts +0 -132
  279. package/src/rxjs/subjectifier.ts +0 -17
  280. package/src/rxjs/subscriber.directive.ts +0 -57
  281. package/src/specs/clickSubject.spec.ts +0 -95
  282. package/src/specs/dialog.spec.ts +0 -101
  283. package/src/specs/toggleGroupDirective.spec.ts +0 -229
  284. package/src/table-builder/classes/DefaultSettings.ts +0 -11
  285. package/src/table-builder/classes/MatTableObservableDataSource.ts +0 -23
  286. package/src/table-builder/classes/TableBuilderConfig.ts +0 -35
  287. package/src/table-builder/classes/TableBuilderDataSource.ts +0 -80
  288. package/src/table-builder/classes/TableState.ts +0 -96
  289. package/src/table-builder/classes/data-store.ts +0 -10
  290. package/src/table-builder/classes/filter-info.ts +0 -108
  291. package/src/table-builder/classes/table-builder-general-settings.ts +0 -129
  292. package/src/table-builder/classes/table-builder.ts +0 -94
  293. package/src/table-builder/classes/table-store.ts +0 -471
  294. package/src/table-builder/components/array-column.component.ts +0 -36
  295. package/src/table-builder/components/column-builder/column-builder.component.html +0 -61
  296. package/src/table-builder/components/column-builder/column-builder.component.scss +0 -43
  297. package/src/table-builder/components/column-builder/column-builder.component.spec.ts +0 -49
  298. package/src/table-builder/components/column-builder/column-builder.component.ts +0 -135
  299. package/src/table-builder/components/column-builder/column-helpers.ts +0 -53
  300. package/src/table-builder/components/date-filter/date-filter.component.html +0 -23
  301. package/src/table-builder/components/date-filter/date-filter.component.ts +0 -24
  302. package/src/table-builder/components/date-time-filter/date-time-filter.component.html +0 -9
  303. package/src/table-builder/components/date-time-filter/date-time-filter.component.ts +0 -22
  304. package/src/table-builder/components/filter/filter.component.html +0 -91
  305. package/src/table-builder/components/filter/filter.component.scss +0 -64
  306. package/src/table-builder/components/filter/filter.component.spec.ts +0 -87
  307. package/src/table-builder/components/filter/filter.component.ts +0 -60
  308. package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +0 -93
  309. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +0 -55
  310. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +0 -57
  311. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +0 -59
  312. package/src/table-builder/components/generic-table/generic-table.component.html +0 -78
  313. package/src/table-builder/components/generic-table/generic-table.component.scss +0 -42
  314. package/src/table-builder/components/generic-table/generic-table.component.ts +0 -299
  315. package/src/table-builder/components/generic-table/paginator.component.ts +0 -99
  316. package/src/table-builder/components/group-by-list/group-by-list.component.css +0 -8
  317. package/src/table-builder/components/group-by-list/group-by-list.component.html +0 -12
  318. package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +0 -23
  319. package/src/table-builder/components/group-by-list/group-by-list.component.ts +0 -21
  320. package/src/table-builder/components/header-menu/header-menu.component.html +0 -104
  321. package/src/table-builder/components/header-menu/header-menu.component.scss +0 -96
  322. package/src/table-builder/components/header-menu/header-menu.component.ts +0 -99
  323. package/src/table-builder/components/in-filter/in-filter.component.css +0 -3
  324. package/src/table-builder/components/in-filter/in-filter.component.html +0 -20
  325. package/src/table-builder/components/in-filter/in-filter.component.ts +0 -66
  326. package/src/table-builder/components/initialization-component/initialization-component.html +0 -29
  327. package/src/table-builder/components/initialization-component/initialization-component.ts +0 -24
  328. package/src/table-builder/components/link-column.component.ts +0 -47
  329. package/src/table-builder/components/number-filter/number-filter.component.css +0 -10
  330. package/src/table-builder/components/number-filter/number-filter.component.html +0 -19
  331. package/src/table-builder/components/number-filter/number-filter.component.spec.ts +0 -30
  332. package/src/table-builder/components/number-filter/number-filter.component.ts +0 -25
  333. package/src/table-builder/components/profiles-menu/profiles-menu.component.html +0 -74
  334. package/src/table-builder/components/profiles-menu/profiles-menu.component.scss +0 -98
  335. package/src/table-builder/components/profiles-menu/profiles-menu.component.spec.ts +0 -23
  336. package/src/table-builder/components/profiles-menu/profiles-menu.component.ts +0 -65
  337. package/src/table-builder/components/scroll-strategy.ts +0 -76
  338. package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +0 -66
  339. package/src/table-builder/components/sort-menu/sort-menu.component.html +0 -111
  340. package/src/table-builder/components/sort-menu/sort-menu.component.scss +0 -119
  341. package/src/table-builder/components/sort-menu/sort-menu.component.ts +0 -98
  342. package/src/table-builder/components/table-container/table-container.css +0 -54
  343. package/src/table-builder/components/table-container/table-container.helpers/data-state.helpers.ts +0 -141
  344. package/src/table-builder/components/table-container/table-container.helpers/filter-state.helpers.ts +0 -106
  345. package/src/table-builder/components/table-container/table-container.helpers/groupBy.helpers.ts +0 -86
  346. package/src/table-builder/components/table-container/table-container.helpers/sort-state.helpers.ts +0 -45
  347. package/src/table-builder/components/table-container/table-container.html +0 -95
  348. package/src/table-builder/components/table-container/table-container.spec.ts +0 -154
  349. package/src/table-builder/components/table-container/table-container.ts +0 -356
  350. package/src/table-builder/components/table-container/tableProps.ts +0 -20
  351. package/src/table-builder/components/table-container/virtual-scroll-container.ts +0 -145
  352. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +0 -31
  353. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +0 -46
  354. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +0 -42
  355. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +0 -10
  356. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +0 -86
  357. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +0 -34
  358. package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +0 -23
  359. package/src/table-builder/directives/custom-cell-directive.ts +0 -58
  360. package/src/table-builder/directives/multi-sort.directive.spec.ts +0 -124
  361. package/src/table-builder/directives/multi-sort.directive.ts +0 -51
  362. package/src/table-builder/directives/resize-column.directive.ts +0 -108
  363. package/src/table-builder/directives/table-wrapper.directive.ts +0 -14
  364. package/src/table-builder/directives/tb-filter.directive.ts +0 -396
  365. package/src/table-builder/enums/filterTypes.ts +0 -40
  366. package/src/table-builder/functions/boolean-filter-function.ts +0 -12
  367. package/src/table-builder/functions/date-filter-function.ts +0 -68
  368. package/src/table-builder/functions/download-data.ts +0 -11
  369. package/src/table-builder/functions/null-filter-function.ts +0 -9
  370. package/src/table-builder/functions/number-filter-function.ts +0 -41
  371. package/src/table-builder/functions/sort-data-function.ts +0 -23
  372. package/src/table-builder/functions/string-filter-function.ts +0 -51
  373. package/src/table-builder/interfaces/column-template.ts +0 -9
  374. package/src/table-builder/interfaces/report-def.ts +0 -155
  375. package/src/table-builder/ngrx/tableBuilderStateStore.ts +0 -199
  376. package/src/table-builder/pipes/column-total.pipe.ts +0 -17
  377. package/src/table-builder/pipes/format-filter-type.pipe.ts +0 -12
  378. package/src/table-builder/pipes/format-filter-value.pipe.ts +0 -42
  379. package/src/table-builder/pipes/key-display.ts +0 -16
  380. package/src/table-builder/services/export-to-csv.service.ts +0 -97
  381. package/src/table-builder/services/link-creator.service.ts +0 -67
  382. package/src/table-builder/services/table-template-service.ts +0 -59
  383. package/src/table-builder/services/transform-creator.ts +0 -95
  384. package/src/table-builder/specs/table-custom-filters.spec.ts +0 -262
  385. package/src/table-builder/styles/collapser.styles.scss +0 -16
  386. package/src/table-builder/table-builder.module.ts +0 -73
  387. package/src/test.ts +0 -17
  388. package/src/utilities/array-helpers.ts +0 -13
  389. package/src/utilities/directives/auto-focus.directive.ts +0 -21
  390. package/src/utilities/directives/clickEmitterDirective.ts +0 -16
  391. package/src/utilities/directives/clickSubject.ts +0 -20
  392. package/src/utilities/directives/conditional-classes.directive.ts +0 -36
  393. package/src/utilities/directives/dialog-service.ts +0 -19
  394. package/src/utilities/directives/dialog.ts +0 -144
  395. package/src/utilities/directives/mat-toggle-group-directive.ts +0 -61
  396. package/src/utilities/directives/prevent-enter.directive.ts +0 -13
  397. package/src/utilities/directives/stop-propagation.directive.ts +0 -20
  398. package/src/utilities/directives/styler.ts +0 -40
  399. package/src/utilities/directives/trim-whitespace.directive.ts +0 -21
  400. package/src/utilities/module.ts +0 -55
  401. package/src/utilities/pipes/function.pipe.ts +0 -16
  402. package/src/utilities/pipes/phone.pipe.ts +0 -15
  403. package/src/utilities/pipes/space-case.pipes.spec.ts +0 -47
  404. package/src/utilities/pipes/space-case.pipes.ts +0 -23
  405. package/tsconfig.lib.json +0 -19
  406. package/tsconfig.lib.prod.json +0 -10
  407. package/tsconfig.spec.json +0 -17
@@ -0,0 +1,32 @@
1
+ import { FilterTypes } from '../enums/filterTypes';
2
+ import { isNull } from './null-filter-function';
3
+ const numberEqalsFunc = (filterInfo) => (val) => {
4
+ return val === filterInfo.filterValue;
5
+ };
6
+ const numberNotEqualFunc = (filterInfo) => (val) => {
7
+ return val !== filterInfo.filterValue;
8
+ };
9
+ const numberGreaterThanFunc = (filterInfo) => (val) => {
10
+ return val > filterInfo.filterValue;
11
+ };
12
+ const numberLessThanFunc = (filterInfo) => (val) => {
13
+ return val < filterInfo.filterValue;
14
+ };
15
+ const numberBetweenFunc = (filterInfo) => {
16
+ const startVal = Number(filterInfo.filterValue.Start);
17
+ const endVal = Number(filterInfo.filterValue.End);
18
+ return ((val) => (val > startVal) && (val < endVal));
19
+ };
20
+ export const multipleNumberValuesEqualsFunc = (filterInfo) => {
21
+ return ((val) => filterInfo.filterValue.some((value) => val === value));
22
+ };
23
+ export const NumberFilterFuncs = {
24
+ [FilterTypes.NumberEquals]: numberEqalsFunc,
25
+ [FilterTypes.NumberNotEqual]: numberNotEqualFunc,
26
+ [FilterTypes.NumberGreaterThan]: numberGreaterThanFunc,
27
+ [FilterTypes.NumberLessThan]: numberLessThanFunc,
28
+ [FilterTypes.NumberBetween]: numberBetweenFunc,
29
+ [FilterTypes.IsNull]: isNull,
30
+ [FilterTypes.In]: multipleNumberValuesEqualsFunc,
31
+ };
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZpbHRlci1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2Z1bmN0aW9ucy9udW1iZXItZmlsdGVyLWZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSWhELE1BQU0sZUFBZSxHQUFvQixDQUFDLFVBQStCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBVyxFQUFZLEVBQUU7SUFDcEcsT0FBUSxHQUFHLEtBQUssVUFBVSxDQUFDLFdBQVcsQ0FBQztBQUMzQyxDQUFDLENBQUE7QUFFRCxNQUFNLGtCQUFrQixHQUFtQixDQUFDLFVBQStCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBVyxFQUFZLEVBQUU7SUFDeEcsT0FBTyxHQUFHLEtBQUssVUFBVSxDQUFDLFdBQVcsQ0FBQztBQUN4QyxDQUFDLENBQUE7QUFFRCxNQUFPLHFCQUFxQixHQUFtQixDQUFDLFVBQStCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBVyxFQUFZLEVBQUU7SUFDMUcsT0FBTyxHQUFHLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztBQUN4QyxDQUFDLENBQUE7QUFFRCxNQUFNLGtCQUFrQixHQUFtQixDQUFDLFVBQStCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBVyxFQUFZLEVBQUU7SUFDdEcsT0FBTyxHQUFHLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztBQUN4QyxDQUFDLENBQUE7QUFFRCxNQUFPLGlCQUFpQixHQUFvQyxDQUFDLFVBQXVCLEVBQUUsRUFBRTtJQUN0RixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUMsRUFBRSxDQUFBLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQStCLENBQUMsVUFBcUIsRUFBRSxFQUFFO0lBQ2xHLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFtQztJQUM3RCxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxlQUFlO0lBQzNDLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLGtCQUFrQjtJQUNoRCxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLHFCQUFxQjtJQUN0RCxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxrQkFBa0I7SUFDaEQsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUUsaUJBQWlCO0lBQzlDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU07SUFDNUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsOEJBQThCO0NBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSYW5nZSwgRmlsdGVyRnVuYywgRmlsdGVySW5mbywgRmlsdGVyRnVuY3MgfSBmcm9tICcuLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZXMsIE51bWJlckZpbHRlclR5cGVzIH0gZnJvbSAnLi4vZW51bXMvZmlsdGVyVHlwZXMnO1xyXG5pbXBvcnQgeyBpc051bGwgfSBmcm9tICcuL251bGwtZmlsdGVyLWZ1bmN0aW9uJztcclxuXHJcbnR5cGUgTnVtYmVyRmlsdGVyRnVuYyA9IEZpbHRlckZ1bmM8bnVtYmVyPlxyXG5cclxuY29uc3QgbnVtYmVyRXFhbHNGdW5jOk51bWJlckZpbHRlckZ1bmMgPSAoZmlsdGVySW5mbyA6IEZpbHRlckluZm88bnVtYmVyPikgPT4gKHZhbDogbnVtYmVyKTogYm9vbGVhbiAgPT57XHJcbiAgICByZXR1cm4gIHZhbCA9PT0gZmlsdGVySW5mby5maWx0ZXJWYWx1ZTtcclxufVxyXG5cclxuY29uc3QgbnVtYmVyTm90RXF1YWxGdW5jOk51bWJlckZpbHRlckZ1bmM9IChmaWx0ZXJJbmZvIDogRmlsdGVySW5mbzxudW1iZXI+KSA9PiAodmFsOiBudW1iZXIpOiBib29sZWFuICA9PntcclxuICByZXR1cm4gdmFsICE9PSBmaWx0ZXJJbmZvLmZpbHRlclZhbHVlO1xyXG59XHJcblxyXG5jb25zdCAgbnVtYmVyR3JlYXRlclRoYW5GdW5jOk51bWJlckZpbHRlckZ1bmM9IChmaWx0ZXJJbmZvIDogRmlsdGVySW5mbzxudW1iZXI+KSA9PiAodmFsOiBudW1iZXIpOiBib29sZWFuICA9PiB7XHJcbiAgICByZXR1cm4gdmFsID4gZmlsdGVySW5mby5maWx0ZXJWYWx1ZTtcclxufVxyXG5cclxuY29uc3QgbnVtYmVyTGVzc1RoYW5GdW5jOk51bWJlckZpbHRlckZ1bmM9IChmaWx0ZXJJbmZvIDogRmlsdGVySW5mbzxudW1iZXI+KSA9PiAodmFsOiBudW1iZXIpOiBib29sZWFuICA9PiB7XHJcbiAgICByZXR1cm4gdmFsIDwgZmlsdGVySW5mby5maWx0ZXJWYWx1ZTtcclxufVxyXG5cclxuY29uc3QgIG51bWJlckJldHdlZW5GdW5jOkZpbHRlckZ1bmM8UmFuZ2U8bnVtYmVyPixudW1iZXI+ID0gKGZpbHRlckluZm8gOiBGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgY29uc3Qgc3RhcnRWYWwgPSBOdW1iZXIoZmlsdGVySW5mby5maWx0ZXJWYWx1ZS5TdGFydCk7XHJcbiAgY29uc3QgZW5kVmFsID0gTnVtYmVyKGZpbHRlckluZm8uZmlsdGVyVmFsdWUuRW5kKTtcclxuICByZXR1cm4gKCh2YWwpPT4odmFsID4gc3RhcnRWYWwpICYmICh2YWwgPCBlbmRWYWwpKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IG11bHRpcGxlTnVtYmVyVmFsdWVzRXF1YWxzRnVuYzpGaWx0ZXJGdW5jPG51bWJlcltdLG51bWJlcj4gPSAoZmlsdGVySW5mbzpGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgcmV0dXJuICgodmFsKT0+ZmlsdGVySW5mby5maWx0ZXJWYWx1ZS5zb21lKCh2YWx1ZTogYW55KSA9PiB2YWwgPT09IHZhbHVlKSk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBOdW1iZXJGaWx0ZXJGdW5jczogRmlsdGVyRnVuY3M8TnVtYmVyRmlsdGVyVHlwZXM+ID0ge1xyXG4gICAgW0ZpbHRlclR5cGVzLk51bWJlckVxdWFsc106IG51bWJlckVxYWxzRnVuYyxcclxuICAgIFtGaWx0ZXJUeXBlcy5OdW1iZXJOb3RFcXVhbF06IG51bWJlck5vdEVxdWFsRnVuYyxcclxuICAgIFtGaWx0ZXJUeXBlcy5OdW1iZXJHcmVhdGVyVGhhbl06IG51bWJlckdyZWF0ZXJUaGFuRnVuYyxcclxuICAgIFtGaWx0ZXJUeXBlcy5OdW1iZXJMZXNzVGhhbl06IG51bWJlckxlc3NUaGFuRnVuYyxcclxuICAgIFtGaWx0ZXJUeXBlcy5OdW1iZXJCZXR3ZWVuXTogbnVtYmVyQmV0d2VlbkZ1bmMsXHJcbiAgICBbRmlsdGVyVHlwZXMuSXNOdWxsXTogaXNOdWxsLFxyXG4gICAgW0ZpbHRlclR5cGVzLkluXTogbXVsdGlwbGVOdW1iZXJWYWx1ZXNFcXVhbHNGdW5jLFxyXG59O1xyXG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { orderBy } from 'lodash';
2
+ export function sortData(data, sorted) {
3
+ const ordered = orderBy(data, sorted.map(r => r.active), sorted.map(r => r.direction));
4
+ return ordered;
5
+ }
6
+ export function filterData(data, filters, resetAll = false) {
7
+ for (let index = 0; index < data.length; index++) {
8
+ const element = data[index];
9
+ const hide = !filters.every(filter => filter(element));
10
+ if (hide || resetAll) {
11
+ element[tbNoShowSymbol] = hide;
12
+ }
13
+ }
14
+ return data;
15
+ }
16
+ export const tbNoShowSymbol = Symbol('tb_no_show');
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1kYXRhLWZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvZnVuY3Rpb25zL3NvcnQtZGF0YS1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBS2pDLE1BQU0sVUFBVSxRQUFRLENBQUksSUFBUyxFQUFFLE1BQWM7SUFDbkQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBa0IsQ0FBRSxDQUFDLENBQUM7SUFDakcsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUksSUFBUyxFQUFFLE9BQXVCLEVBQUUsUUFBUSxHQUFHLEtBQUs7SUFDaEYsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDdkQsSUFBRyxJQUFJLElBQUksUUFBUSxFQUFDLENBQUM7WUFDbkIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNqQyxDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb3J0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NvcnRcIjtcclxuaW1wb3J0IHsgb3JkZXJCeSB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFByZWRpY2F0ZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5leHBvcnQgdHlwZSBkaXJlYyA9ICdhc2MnIHwgJ2Rlc2MnIHwgYm9vbGVhbjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzb3J0RGF0YTxUPihkYXRhOiBUW10sIHNvcnRlZDogU29ydFtdKTogVFtdIHtcclxuICBjb25zdCBvcmRlcmVkID0gb3JkZXJCeShkYXRhLCBzb3J0ZWQubWFwKHIgPT4gci5hY3RpdmUpLCBzb3J0ZWQubWFwKHIgPT4gci5kaXJlY3Rpb24gYXMgZGlyZWMgKSk7XHJcbiAgcmV0dXJuIG9yZGVyZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJEYXRhPFQ+KGRhdGE6IFRbXSwgZmlsdGVyczogUHJlZGljYXRlPFQ+W10sIHJlc2V0QWxsID0gZmFsc2Upe1xyXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBkYXRhLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IGRhdGFbaW5kZXhdO1xyXG4gICAgY29uc3QgaGlkZSA9ICFmaWx0ZXJzLmV2ZXJ5KGZpbHRlciA9PiBmaWx0ZXIoZWxlbWVudCkpO1xyXG4gICAgaWYoaGlkZSB8fCByZXNldEFsbCl7XHJcbiAgICAgIGVsZW1lbnRbdGJOb1Nob3dTeW1ib2xdID0gaGlkZTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIGRhdGE7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCB0Yk5vU2hvd1N5bWJvbCA9IFN5bWJvbCgndGJfbm9fc2hvdycpO1xyXG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { FilterTypes } from '../enums/filterTypes';
2
+ import { isNull } from './null-filter-function';
3
+ const stringEqualFunc = (filterInfo) => {
4
+ const equelsVal = prepareForStringCompare(filterInfo.filterValue);
5
+ return ((val) => prepareForStringCompare(val) === equelsVal);
6
+ };
7
+ const stringContainsFunc = (filterInfo) => {
8
+ const containsVal = prepareForStringCompare(filterInfo.filterValue);
9
+ return ((val) => prepareForStringCompare(val).includes(containsVal));
10
+ };
11
+ const stringDoesNotContainFunc = (filterInfo) => {
12
+ const doesNotContainVal = prepareForStringCompare(filterInfo.filterValue);
13
+ return ((val) => !prepareForStringCompare(val)?.includes(doesNotContainVal));
14
+ };
15
+ const stringStartsWithFunc = (filterInfo) => {
16
+ const startsWith = prepareForStringCompare(filterInfo.filterValue);
17
+ return ((val) => prepareForStringCompare(val).startsWith(startsWith));
18
+ };
19
+ const stringEndsWithFunc = (filterInfo) => {
20
+ const startsWith = prepareForStringCompare(filterInfo.filterValue);
21
+ return ((val) => prepareForStringCompare(val).endsWith(startsWith));
22
+ };
23
+ const multipleStringValuesEqualsFunc = (filterInfo) => {
24
+ const filterVals = filterInfo.filterValue.map((v) => prepareForStringCompare(v));
25
+ return ((val) => filterVals.some((s) => prepareForStringCompare(val) === s));
26
+ };
27
+ export const StringFilterFuncs = {
28
+ [FilterTypes.StringEquals]: stringEqualFunc,
29
+ [FilterTypes.StringContains]: stringContainsFunc,
30
+ [FilterTypes.StringDoesNotContain]: stringDoesNotContainFunc,
31
+ [FilterTypes.StringStartWith]: stringStartsWithFunc,
32
+ [FilterTypes.StringEndsWith]: stringEndsWithFunc,
33
+ [FilterTypes.IsNull]: isNull,
34
+ [FilterTypes.In]: multipleStringValuesEqualsFunc,
35
+ };
36
+ export const EnumFilterFuncs = {
37
+ [FilterTypes.IsNull]: isNull,
38
+ [FilterTypes.In]: multipleStringValuesEqualsFunc,
39
+ };
40
+ export const prepareForStringCompare = (val) => val?.toString().trim().toLowerCase();
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWZpbHRlci1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2Z1bmN0aW9ucy9zdHJpbmctZmlsdGVyLWZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBbUIsV0FBVyxFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdoRCxNQUFNLGVBQWUsR0FBc0IsQ0FBQyxVQUFxQixFQUFFLEVBQUU7SUFDbkUsTUFBTSxTQUFTLEdBQUcsdUJBQXVCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsdUJBQXVCLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxDQUFFLENBQUM7QUFDOUQsQ0FBQyxDQUFBO0FBRUQsTUFBTSxrQkFBa0IsR0FBc0IsQ0FBQyxVQUFxQixFQUFFLEVBQUU7SUFDdEUsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFDckUsQ0FBQyxDQUFBO0FBRUQsTUFBTSx3QkFBd0IsR0FBc0IsQ0FBQyxVQUFxQixFQUFFLEVBQUU7SUFDNUUsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUUsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFDLEVBQUUsQ0FBQSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7QUFDN0UsQ0FBQyxDQUFBO0FBRUQsTUFBTSxvQkFBb0IsR0FBc0IsQ0FBQyxVQUFxQixFQUFFLEVBQUU7SUFDeEUsTUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25FLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDdEUsQ0FBQyxDQUFBO0FBRUQsTUFBTSxrQkFBa0IsR0FBc0IsQ0FBQyxVQUFxQixFQUFFLEVBQUU7SUFDdEUsTUFBTSxVQUFVLEdBQUcsdUJBQXVCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25FLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDcEUsQ0FBQyxDQUFBO0FBRUQsTUFBTSw4QkFBOEIsR0FBK0IsQ0FBQyxVQUFxQixFQUFFLEVBQUU7SUFDM0YsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUSxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JGLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFtQztJQUM3RCxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxlQUFlO0lBQzNDLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLGtCQUFrQjtJQUNoRCxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLHdCQUF3QjtJQUM1RCxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRSxvQkFBb0I7SUFDbkQsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsa0JBQWtCO0lBQ2hELENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU07SUFDNUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsOEJBQThCO0NBQ25ELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQWlDO0lBQzNELENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU07SUFDNUIsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUcsOEJBQThCO0NBQ2xELENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEdBQVMsRUFBUyxFQUFFLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsdGVyRnVuYywgRmlsdGVyRnVuY3MsIEZpbHRlckluZm8gfSBmcm9tICcuLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcclxuaW1wb3J0IHsgRW51bUZpbHRlclR5cGVzLCBGaWx0ZXJUeXBlcywgU3RyaW5nRmlsdGVyVHlwZXMgfSBmcm9tICcuLi9lbnVtcy9maWx0ZXJUeXBlcyc7XHJcbmltcG9ydCB7IGlzTnVsbCB9IGZyb20gJy4vbnVsbC1maWx0ZXItZnVuY3Rpb24nO1xyXG5cclxuXHJcbmNvbnN0IHN0cmluZ0VxdWFsRnVuYzpGaWx0ZXJGdW5jPHN0cmluZz4gPSAoZmlsdGVySW5mbzpGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgY29uc3QgZXF1ZWxzVmFsID0gcHJlcGFyZUZvclN0cmluZ0NvbXBhcmUoZmlsdGVySW5mby5maWx0ZXJWYWx1ZSk7XHJcbiAgcmV0dXJuICgodmFsKT0+cHJlcGFyZUZvclN0cmluZ0NvbXBhcmUodmFsKSA9PT0gZXF1ZWxzVmFsICk7XHJcbn1cclxuXHJcbmNvbnN0IHN0cmluZ0NvbnRhaW5zRnVuYzpGaWx0ZXJGdW5jPHN0cmluZz4gPSAoZmlsdGVySW5mbzpGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgY29uc3QgY29udGFpbnNWYWwgPSBwcmVwYXJlRm9yU3RyaW5nQ29tcGFyZShmaWx0ZXJJbmZvLmZpbHRlclZhbHVlKTtcclxuICByZXR1cm4gKCh2YWwpPT5wcmVwYXJlRm9yU3RyaW5nQ29tcGFyZSh2YWwpLmluY2x1ZGVzKGNvbnRhaW5zVmFsKSk7XHJcbn1cclxuXHJcbmNvbnN0IHN0cmluZ0RvZXNOb3RDb250YWluRnVuYzpGaWx0ZXJGdW5jPHN0cmluZz4gPSAoZmlsdGVySW5mbzpGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgY29uc3QgZG9lc05vdENvbnRhaW5WYWwgPSBwcmVwYXJlRm9yU3RyaW5nQ29tcGFyZShmaWx0ZXJJbmZvLmZpbHRlclZhbHVlKTtcclxuICByZXR1cm4gKCh2YWwpPT4hcHJlcGFyZUZvclN0cmluZ0NvbXBhcmUodmFsKT8uaW5jbHVkZXMoZG9lc05vdENvbnRhaW5WYWwpKTtcclxufVxyXG5cclxuY29uc3Qgc3RyaW5nU3RhcnRzV2l0aEZ1bmM6RmlsdGVyRnVuYzxzdHJpbmc+ID0gKGZpbHRlckluZm86RmlsdGVySW5mbykgPT4ge1xyXG4gIGNvbnN0IHN0YXJ0c1dpdGggPSBwcmVwYXJlRm9yU3RyaW5nQ29tcGFyZShmaWx0ZXJJbmZvLmZpbHRlclZhbHVlKTtcclxuICByZXR1cm4gKCh2YWwpPT5wcmVwYXJlRm9yU3RyaW5nQ29tcGFyZSh2YWwpLnN0YXJ0c1dpdGgoc3RhcnRzV2l0aCkpO1xyXG59XHJcblxyXG5jb25zdCBzdHJpbmdFbmRzV2l0aEZ1bmM6RmlsdGVyRnVuYzxzdHJpbmc+ID0gKGZpbHRlckluZm86RmlsdGVySW5mbykgPT4ge1xyXG4gIGNvbnN0IHN0YXJ0c1dpdGggPSBwcmVwYXJlRm9yU3RyaW5nQ29tcGFyZShmaWx0ZXJJbmZvLmZpbHRlclZhbHVlKTtcclxuICByZXR1cm4gKCh2YWwpPT5wcmVwYXJlRm9yU3RyaW5nQ29tcGFyZSh2YWwpLmVuZHNXaXRoKHN0YXJ0c1dpdGgpKTtcclxufVxyXG5cclxuY29uc3QgbXVsdGlwbGVTdHJpbmdWYWx1ZXNFcXVhbHNGdW5jOkZpbHRlckZ1bmM8c3RyaW5nW10sc3RyaW5nPiA9IChmaWx0ZXJJbmZvOkZpbHRlckluZm8pID0+IHtcclxuICBjb25zdCBmaWx0ZXJWYWxzID0gZmlsdGVySW5mby5maWx0ZXJWYWx1ZS5tYXAoICh2OiBzdHJpbmcpID0+IHByZXBhcmVGb3JTdHJpbmdDb21wYXJlKHYpKTtcclxuICByZXR1cm4gKCh2YWwpPT4gZmlsdGVyVmFscy5zb21lKChzOnN0cmluZykgPT4gcHJlcGFyZUZvclN0cmluZ0NvbXBhcmUodmFsKSA9PT0gcykpO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgU3RyaW5nRmlsdGVyRnVuY3M6IEZpbHRlckZ1bmNzPFN0cmluZ0ZpbHRlclR5cGVzPiA9IHtcclxuICAgIFtGaWx0ZXJUeXBlcy5TdHJpbmdFcXVhbHNdOiBzdHJpbmdFcXVhbEZ1bmMsXHJcbiAgICBbRmlsdGVyVHlwZXMuU3RyaW5nQ29udGFpbnNdOiBzdHJpbmdDb250YWluc0Z1bmMsXHJcbiAgICBbRmlsdGVyVHlwZXMuU3RyaW5nRG9lc05vdENvbnRhaW5dOiBzdHJpbmdEb2VzTm90Q29udGFpbkZ1bmMsXHJcbiAgICBbRmlsdGVyVHlwZXMuU3RyaW5nU3RhcnRXaXRoXTogc3RyaW5nU3RhcnRzV2l0aEZ1bmMsXHJcbiAgICBbRmlsdGVyVHlwZXMuU3RyaW5nRW5kc1dpdGhdOiBzdHJpbmdFbmRzV2l0aEZ1bmMsXHJcbiAgICBbRmlsdGVyVHlwZXMuSXNOdWxsXTogaXNOdWxsLFxyXG4gICAgW0ZpbHRlclR5cGVzLkluXTogbXVsdGlwbGVTdHJpbmdWYWx1ZXNFcXVhbHNGdW5jLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEVudW1GaWx0ZXJGdW5jczogRmlsdGVyRnVuY3M8RW51bUZpbHRlclR5cGVzPiA9IHtcclxuICBbRmlsdGVyVHlwZXMuSXNOdWxsXTogaXNOdWxsLFxyXG4gIFtGaWx0ZXJUeXBlcy5Jbl0gOiBtdWx0aXBsZVN0cmluZ1ZhbHVlc0VxdWFsc0Z1bmMsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgcHJlcGFyZUZvclN0cmluZ0NvbXBhcmUgPSAodmFsIDogYW55KTpzdHJpbmcgPT4gdmFsPy50b1N0cmluZygpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sdW1uSW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2ludGVyZmFjZXMvQ29sdW1uSW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tQ2VsbERpcmVjdGl2ZSB9IGZyb20gXCIuLi9kaXJlY3RpdmVzL2N1c3RvbS1jZWxsLWRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQgeyBNZXRhRGF0YSB9IGZyb20gXCIuL3JlcG9ydC1kZWZcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uSW5mbyB7XHJcbiAgbWV0YURhdGE6IE1ldGFEYXRhO1xyXG4gIGN1c3RvbUNlbGw/OiBDdXN0b21DZWxsRGlyZWN0aXZlO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGljdGlvbmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2ludGVyZmFjZXMvZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEaWN0aW9uYXJ5PFQ+IHtcclxuICBba2V5OiBzdHJpbmddOiBUO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,50 @@
1
+ export var FieldType;
2
+ (function (FieldType) {
3
+ FieldType[FieldType["Unknown"] = 0] = "Unknown";
4
+ FieldType[FieldType["Date"] = 1] = "Date";
5
+ FieldType[FieldType["Link"] = 2] = "Link";
6
+ FieldType[FieldType["ImageUrl"] = 3] = "ImageUrl";
7
+ FieldType[FieldType["Currency"] = 4] = "Currency";
8
+ FieldType[FieldType["Array"] = 5] = "Array";
9
+ FieldType[FieldType["Hidden"] = 6] = "Hidden";
10
+ FieldType[FieldType["Number"] = 7] = "Number";
11
+ FieldType[FieldType["String"] = 8] = "String";
12
+ FieldType[FieldType["Boolean"] = 9] = "Boolean";
13
+ FieldType[FieldType["PhoneNumber"] = 10] = "PhoneNumber";
14
+ /**
15
+ * @deprecated For mapped properties use proper type (for sorting and filtering) with `map`.
16
+ * For unmapped properties use `FieldType.NotMapped` with map.
17
+ */
18
+ FieldType[FieldType["Expression"] = 11] = "Expression";
19
+ FieldType[FieldType["Enum"] = 12] = "Enum";
20
+ FieldType[FieldType["DateTime"] = 13] = "DateTime";
21
+ FieldType[FieldType["NotMapped"] = 14] = "NotMapped";
22
+ })(FieldType || (FieldType = {}));
23
+ export var SortDirection;
24
+ (function (SortDirection) {
25
+ SortDirection["asc"] = "asc";
26
+ SortDirection["desc"] = "desc";
27
+ })(SortDirection || (SortDirection = {}));
28
+ export var Target;
29
+ (function (Target) {
30
+ Target["Blank"] = "_blank";
31
+ Target["Self"] = "_self";
32
+ Target["Parent"] = "_parent";
33
+ Target["Top"] = "_top";
34
+ })(Target || (Target = {}));
35
+ export var ArrayStyle;
36
+ (function (ArrayStyle) {
37
+ ArrayStyle[ArrayStyle["CommaDelimited"] = 0] = "CommaDelimited";
38
+ ArrayStyle[ArrayStyle["NewLine"] = 1] = "NewLine";
39
+ })(ArrayStyle || (ArrayStyle = {}));
40
+ export function metaDataArrToDict(arr, transform) {
41
+ const dict = {};
42
+ if (transform) {
43
+ arr.forEach(e => dict[e.key] = transform(e));
44
+ }
45
+ else {
46
+ arr.forEach(e => dict[e.key] = e);
47
+ }
48
+ return dict;
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2ludGVyZmFjZXMvcmVwb3J0LWRlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxNQUFNLENBQU4sSUFBWSxTQW9CWDtBQXBCRCxXQUFZLFNBQVM7SUFDakIsK0NBQVcsQ0FBQTtJQUNYLHlDQUFRLENBQUE7SUFDUix5Q0FBUSxDQUFBO0lBQ1IsaURBQVksQ0FBQTtJQUNaLGlEQUFZLENBQUE7SUFDWiwyQ0FBUyxDQUFBO0lBQ1QsNkNBQVUsQ0FBQTtJQUNWLDZDQUFVLENBQUE7SUFDViw2Q0FBVSxDQUFBO0lBQ1YsK0NBQVcsQ0FBQTtJQUNYLHdEQUFnQixDQUFBO0lBQ2hCOzs7T0FHRztJQUNILHNEQUFlLENBQUE7SUFDZiwwQ0FBUyxDQUFBO0lBQ1Qsa0RBQWEsQ0FBQTtJQUNiLG9EQUFjLENBQUE7QUFDbEIsQ0FBQyxFQXBCVyxTQUFTLEtBQVQsU0FBUyxRQW9CcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3JCLDRCQUFVLENBQUE7SUFDViw4QkFBWSxDQUFBO0FBQ2hCLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QjtBQUVELE1BQU0sQ0FBTixJQUFZLE1BS1g7QUFMRCxXQUFZLE1BQU07SUFDaEIsMEJBQWdCLENBQUE7SUFDaEIsd0JBQWMsQ0FBQTtJQUNkLDRCQUFrQixDQUFBO0lBQ2xCLHNCQUFZLENBQUE7QUFDZCxDQUFDLEVBTFcsTUFBTSxLQUFOLE1BQU0sUUFLakI7QUFnR0QsTUFBTSxDQUFOLElBQVksVUFHWDtBQUhELFdBQVksVUFBVTtJQUNwQiwrREFBYyxDQUFBO0lBQ2QsaURBQU8sQ0FBQTtBQUNULENBQUMsRUFIVyxVQUFVLEtBQVYsVUFBVSxRQUdyQjtBQVNELE1BQU0sVUFBVSxpQkFBaUIsQ0FBZSxHQUFlLEVBQUUsU0FBK0I7SUFDOUYsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLElBQUcsU0FBUyxFQUFDLENBQUM7UUFDWixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO1NBQU0sQ0FBQztRQUNOLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi9kaWN0aW9uYXJ5JztcclxuaW1wb3J0IHsgUGlwZVRyYW5zZm9ybSwgUHJlZGljYXRlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYWJsZUJ1aWxkZXJFeHBvcnQgfSBmcm9tICcuLi9jbGFzc2VzL1RhYmxlQnVpbGRlckNvbmZpZyc7XHJcbmltcG9ydCB7IFF1ZXJ5UGFyYW1zSGFuZGxpbmcgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuXHJcbmV4cG9ydCBlbnVtIEZpZWxkVHlwZSB7XHJcbiAgICBVbmtub3duID0gMCxcclxuICAgIERhdGUgPSAxLFxyXG4gICAgTGluayA9IDIsXHJcbiAgICBJbWFnZVVybCA9IDMsXHJcbiAgICBDdXJyZW5jeSA9IDQsXHJcbiAgICBBcnJheSA9IDUsXHJcbiAgICBIaWRkZW4gPSA2LFxyXG4gICAgTnVtYmVyID0gNyxcclxuICAgIFN0cmluZyA9IDgsXHJcbiAgICBCb29sZWFuID0gOSxcclxuICAgIFBob25lTnVtYmVyID0gMTAsXHJcbiAgICAvKipcclxuICAgICAqIEBkZXByZWNhdGVkIEZvciBtYXBwZWQgcHJvcGVydGllcyB1c2UgcHJvcGVyIHR5cGUgKGZvciBzb3J0aW5nIGFuZCBmaWx0ZXJpbmcpIHdpdGggYG1hcGAuXHJcbiAgICAgKiBGb3IgdW5tYXBwZWQgcHJvcGVydGllcyB1c2UgYEZpZWxkVHlwZS5Ob3RNYXBwZWRgIHdpdGggbWFwLlxyXG4gICAgICovXHJcbiAgICBFeHByZXNzaW9uID0gMTEsXHJcbiAgICBFbnVtID0gMTIsXHJcbiAgICBEYXRlVGltZSA9IDEzLFxyXG4gICAgTm90TWFwcGVkID0gMTQsXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNvcnREaXJlY3Rpb24ge1xyXG4gICAgYXNjPSAnYXNjJyxcclxuICAgIGRlc2M9ICdkZXNjJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBUYXJnZXQge1xyXG4gIEJsYW5rID0gJ19ibGFuaycsXHJcbiAgU2VsZiA9ICdfc2VsZicsXHJcbiAgUGFyZW50ID0gJ19wYXJlbnQnLFxyXG4gIFRvcCA9ICdfdG9wJ1xyXG59XHJcblxyXG5pbnRlcmZhY2UgQmFzZU1ldGEgPFQgPSBhbnk+IHtcclxuICBkaXNwbGF5TmFtZT86IHN0cmluZztcclxuICBhZGRpdGlvbmFsPzogQWRkaXRpb25hbDxUPjtcclxuICBvcmRlcj86IG51bWJlcjtcclxuICBwcmVTb3J0PzogU29ydERlZjtcclxuICB3aWR0aD86IHN0cmluZztcclxuICBub0V4cG9ydD86IGJvb2xlYW47XHJcbiAgbm9GaWx0ZXI/OiBib29sZWFuO1xyXG4gIG5vU29ydD86IGJvb2xlYW47XHJcbiAgY3VzdG9tQ2VsbD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgUGxlYXNlIHVzZSBtYXAgaW5zdGVhZFxyXG4gICAqL1xyXG4gIHRyYW5zZm9ybT86ICgobzogVCwgLi4uYXJnczogYW55W10pPT4gYW55KSB8ICgobzogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSk9PiBhbnkpIHwgUGlwZVRyYW5zZm9ybTtcclxuICBjbGljaz86IChlbGVtZW50OiBULCBrZXk6IHN0cmluZyApID0+IHZvaWQ7XHJcbiAgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGNsYXNzZXM/OiBEaWN0aW9uYXJ5PFByZWRpY2F0ZTxUPj47XHJcbiAgdG9vbFRpcD86IHN0cmluZyB8ICgodDpUKSA9PiBzdHJpbmcpO1xyXG4gIHVzZUljb24/OiBib29sZWFuO1xyXG4gIG1hcD8gOiAodDpUKSA9PiBhbnk7XHJcbn1cclxuXHJcbmludGVyZmFjZSBNYXBwZWRNZXRhRGF0YTxUID0gYW55LCBBZGRpdGlvbmFsRmllbGRzIGV4dGVuZHMgc3RyaW5nW10gPSBbXT4gZXh0ZW5kcyBCYXNlTWV0YTxUPiB7XHJcbiAga2V5OiAoa2V5b2YgVCB8IEFkZGl0aW9uYWxGaWVsZHNbbnVtYmVyXSkgJiBzdHJpbmc7XHJcbiAgZmllbGRUeXBlOiBFeGNsdWRlPHR5cGVvZiBGaWVsZFR5cGVba2V5b2YgdHlwZW9mIEZpZWxkVHlwZV0sIEZpZWxkVHlwZS5Ob3RNYXBwZWQgfCBGaWVsZFR5cGUuRXhwcmVzc2lvbj47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE1ldGFEYXRhPFQgPSBhbnksIEFkZGl0aW9uYWxGaWVsZHMgZXh0ZW5kcyBzdHJpbmdbXSA9IFtdPiA9IE1hcHBlZE1ldGFEYXRhPFQsIEFkZGl0aW9uYWxGaWVsZHM+IHwgTm90TWFwcGVkTWV0YURhdGE8VD47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE5vdE1hcHBlZE1ldGFEYXRhPFQgPSBhbnk+IGV4dGVuZHMgQmFzZU1ldGE8VD4ge1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIGZpZWxkVHlwZTogRmllbGRUeXBlLk5vdE1hcHBlZCB8IEZpZWxkVHlwZS5FeHByZXNzaW9uO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgIFJlcG9ydERlZjxEYXRhVHlwZSA9IGFueT4ge1xyXG4gICAgZGF0YTogRGF0YVR5cGVbXTtcclxuICAgIG1ldGFEYXRhOiBNZXRhRGF0YSBbXTtcclxuICAgIHRvdGFsUmVjb3Jkcz86IG51bWJlcjtcclxuICAgIGNvdW50OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU29ydERlZiB7XHJcbiAgICBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb247XHJcbiAgICBwcmVjZWRlbmNlPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlck9wdGlvbnMge1xyXG4gIGZpbHRlcmFibGVWYWx1ZXMgOiBzdHJpbmdbXVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVRpbWVPcHRpb25zIHtcclxuICBmb3JtYXQ/OiBzdHJpbmc7XHJcbiAgaW5jbHVkZVNlY29uZHM/OiBib29sZWFuO1xyXG4gIGluY2x1ZGVNaWxsaXNlY29uZHM6IGJvb2xlYW47XHJcbn1cclxudHlwZSBpbnRlcnBvbGF0ZWRSb3V0ZSA9IHN0cmluZztcclxuZXhwb3J0IGludGVyZmFjZSBBZGRpdGlvbmFsPFQgPSBhbnk+IHtcclxuICBsaW5rPyA6IHtcclxuICAgIGJhc2U/OiBzdHJpbmc7XHJcbiAgICB1cmxLZXk/OiBzdHJpbmc7XHJcbiAgICB0YXJnZXQ/OiBUYXJnZXQ7XHJcbiAgICB1c2VSb3V0ZXJMaW5rPzogYm9vbGVhbjtcclxuICAgIC8qKlxyXG4gICAgICogSWYgeW91IHdhbnQgdG8gdXNlIGEgcm91dGUgd2l0aCBpbnRlcnBvbGF0ZWQgcGFyYW1zLCB5b3UgY2FuIHVzZSB0aGlzLiBXcmFwIHRoZSBwcm9wZXJ0eSBuYW1lIGluIGN1cmx5IGJyYWNlcy5cclxuICAgICAqIEZvciBleGFtcGxlLCBpZiBpbnRlcnBvbGF0ZWRSb3V0ZSA9IC91c2Vycy97aWR9L2VkaXQsIHtpZH0gd2lsbCBiZSByZXBsYWNlZCB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUgZWxlbWVudCdzIGlkIHByb3BlcnR5LlxyXG4gICAgICovXHJcbiAgICBpbnRlcnBvbGF0ZWRSb3V0ZT86IGludGVycG9sYXRlZFJvdXRlO1xyXG4gICAgcm91dGVyTGlua09wdGlvbnM/OntcclxuICAgICAgcXVlcnlQYXJhbXM/OiBbc3RyaW5nLCBpbnRlcnBvbGF0ZWRSb3V0ZV1bXTtcclxuICAgICAgZnJhZ21lbnQ/OiBzdHJpbmc7XHJcbiAgICAgIHByZXNlcnZlRnJhZ21lbnQ/OiBib29sZWFuO1xyXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nPzogUXVlcnlQYXJhbXNIYW5kbGluZztcclxuICAgIH1cclxuICB9XHJcbiAgZm9vdGVyPzogeyB0eXBlOiAnc3VtJyB9O1xyXG4gIGV4cG9ydD86IFRhYmxlQnVpbGRlckV4cG9ydDtcclxuICBkYXRlRm9ybWF0Pzogc3RyaW5nO1xyXG4gIGRhdGVUaW1lT3B0aW9ucz86ICBEYXRlVGltZU9wdGlvbnM7XHJcbiAgZmlsdGVyT3B0aW9ucz86IEZpbHRlck9wdGlvbnM7XHJcbiAgc3R5bGVzPzogRGljdGlvbmFyeTxzdHJpbmcgfCB7Y29uZGl0aW9uOiAodDpUKSA9PiBib29sZWFuIHwgdHJ1ZSwgdmFsdWU6ICh0OlQpID0+IHN0cmluZyB8IHN0cmluZ30+O1xyXG4gIGNvbHVtblBhcnRTdHlsZXM/OiB7XHJcbiAgICBoZWFkZXI/OiBEaWN0aW9uYXJ5PHN0cmluZz4sXHJcbiAgICBib2R5PzogRGljdGlvbmFyeTxzdHJpbmcgfCB7Y29uZGl0aW9uOiAodDogVCkgPT4gYm9vbGVhbiB8IHRydWUsIHZhbHVlOiAodDogVCkgPT4gc3RyaW5nIHwgc3RyaW5nfT4sXHJcbiAgICBmb290ZXI/OiBEaWN0aW9uYXJ5PHN0cmluZz4sXHJcbiAgfVxyXG4gIGNvbHVtblBhcnRDbGFzc2VzPzoge1xyXG4gICAgaGVhZGVyPzogRGljdGlvbmFyeTxQcmVkaWNhdGU8VD4+LFxyXG4gICAgZm9vdGVyPzogRGljdGlvbmFyeTxQcmVkaWNhdGU8VD4+LFxyXG4gIH1cclxuICBlbnVtTWFwPzoge1trZXk6bnVtYmVyXTpzdHJpbmd9O1xyXG4gIGJvb2xlYW4/IDoge1xyXG4gICAgc2hvd0ZvckZhbHNlPyA6IHRydWUgfCB7IGljb24gOiBzdHJpbmcgfSxcclxuICAgIGZvclRydWU/IDogeyBpY29uIDogc3RyaW5nIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEFycmF5U3R5bGUge1xyXG4gIENvbW1hRGVsaW1pdGVkLFxyXG4gIE5ld0xpbmVcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcnJheUFkZGl0aW9uYWwgZXh0ZW5kcyBBZGRpdGlvbmFsIHtcclxuICAgIGxpbWl0PzogbnVtYmVyO1xyXG4gICAgYXJyYXlTdHlsZT86IEFycmF5U3R5bGU7XHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1ldGFEYXRhQXJyVG9EaWN0PFQgPSBNZXRhRGF0YT4oYXJyOiBNZXRhRGF0YVtdLCB0cmFuc2Zvcm0/OiAobSA6IE1ldGFEYXRhKSA9PiBUKTogRGljdGlvbmFyeTxUPntcclxuICBjb25zdCBkaWN0ID0ge307XHJcbiAgaWYodHJhbnNmb3JtKXtcclxuICAgIGFyci5mb3JFYWNoKGUgPT4gZGljdFtlLmtleV0gPSB0cmFuc2Zvcm0oZSkpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBhcnIuZm9yRWFjaChlID0+IGRpY3RbZS5rZXldID0gZSk7XHJcbiAgfVxyXG4gIHJldHVybiBkaWN0O1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,154 @@
1
+ import { ComponentStore } from "@ngrx/component-store";
2
+ import { Injectable } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ export class TableBuilderStateStore extends ComponentStore {
5
+ constructor() {
6
+ super(loadGlobalStorageState() || defaultStorageState);
7
+ }
8
+ //selectors
9
+ $selectLocalTableProfile = (profileKey) => this.selectSignal(state => state.localProfiles[profileKey]);
10
+ $selectLocalTableStateForView = (tableId) => this.selectSignal(this.$selectLocalTableProfile(tableId), (profile) => {
11
+ if (profile?.current) {
12
+ return profile.states[profile.current];
13
+ }
14
+ if (profile?.localSavedState)
15
+ return profile.localSavedState;
16
+ return null;
17
+ });
18
+ $selectLocalProfileCurrentKey = (key) => this.selectSignal(this.$selectLocalTableProfile(key), (profile) => profile?.current);
19
+ $selectLocalProfileDefaultKey = (key) => this.selectSignal(this.$selectLocalTableProfile(key), (profile) => profile?.default);
20
+ $selectLocalProfileKeys = (tableId) => this.selectSignal(this.$selectLocalTableProfile(tableId), (profile) => Object.keys(profile?.states || {}));
21
+ // reducers
22
+ saveTableSettingsToLocalAndStorage = (tableId, stateName, tableState, asDefault) => {
23
+ this.saveTableStateToStorage(tableId, stateName, tableState, asDefault);
24
+ this.saveTableStateToLocal({ tableId, tableState, stateName, asDefault });
25
+ };
26
+ saveTableStateToLocal = this.updater((state, props) => {
27
+ let profile = state.localProfiles[props.tableId];
28
+ if (!profile?.states) {
29
+ profile = { states: {} };
30
+ }
31
+ if (!props.stateName) {
32
+ profile = { ...profile, localSavedState: props.tableState };
33
+ }
34
+ else {
35
+ profile = { ...profile, states: { ...profile.states, [props.stateName]: props.tableState } };
36
+ }
37
+ if (props.asDefault) {
38
+ profile.default = props.stateName;
39
+ }
40
+ return { ...state, localProfiles: { ...state.localProfiles, [props.tableId]: profile } };
41
+ });
42
+ saveTableStateToStorage = (tableId, stateName, tableState, asDefault = false) => {
43
+ const globalSavedState = JSON.parse(localStorage.getItem('global-state-storage') ?? JSON.stringify(defaultStorageState));
44
+ globalSavedState.localProfiles[tableId] ??= { states: {} };
45
+ globalSavedState.localProfiles[tableId].states[stateName] = tableState;
46
+ if (asDefault) {
47
+ globalSavedState.localProfiles[tableId].default = stateName;
48
+ }
49
+ localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
50
+ };
51
+ addNewStateToLocalAndStorage = (tableId, newStateName, tableState, asDefault) => {
52
+ this.saveTableSettingsToLocalAndStorage(tableId, newStateName, tableState, asDefault);
53
+ this.setLocalCurrentState({ tableId: tableId, currentStateKey: newStateName });
54
+ };
55
+ setLocalCurrentState = this.updater((state, props) => {
56
+ const profile = state.localProfiles[props.tableId] || { states: {} };
57
+ profile.current = props.currentStateKey;
58
+ return { ...state, localProfiles: { ...state.localProfiles, [props.tableId]: { ...profile } } };
59
+ });
60
+ setDefaultInLocalAndStorage = (tableId, newDefault) => {
61
+ this.setDefaultInLocal({ default: newDefault, key: tableId });
62
+ this.setDefaultInStorage(tableId, newDefault);
63
+ };
64
+ setDefaultInLocal = this.updater((state, props) => {
65
+ if (state.localProfiles[props.key]?.states[props.default]) {
66
+ return ({ ...state, localProfiles: { ...state.localProfiles, [props.key]: { ...state.localProfiles[props.key], default: props.default } } });
67
+ }
68
+ return state;
69
+ });
70
+ unsetDefaultFromLocalAndStorage = (tableId) => {
71
+ this.unsetDefaultFromLocal(tableId);
72
+ this.unsetDefaultFromStorage(tableId);
73
+ };
74
+ unsetDefaultFromLocal = (tableId) => {
75
+ this.patchState(tables => {
76
+ const profile = { ...tables.localProfiles[tableId] };
77
+ if (profile) {
78
+ delete profile.default;
79
+ }
80
+ return { ...tables, localProfiles: { ...tables.localProfiles, [tableId]: profile } };
81
+ });
82
+ };
83
+ unsetDefaultFromStorage = (tableId) => {
84
+ const globalSavedState = JSON.parse(localStorage.getItem('global-state-storage') ?? JSON.stringify(defaultStorageState));
85
+ if (globalSavedState.localProfiles[tableId]) {
86
+ delete globalSavedState.localProfiles[tableId].default;
87
+ localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
88
+ }
89
+ };
90
+ setDefaultInStorage = (tableId, stateName) => {
91
+ const tableProfile = this.$selectLocalTableProfile(tableId)();
92
+ const globalSavedState = JSON.parse(localStorage.getItem('global-state-storage') ?? JSON.stringify(defaultStorageState));
93
+ let savedProfile = globalSavedState.localProfiles[stateName];
94
+ if (!savedProfile?.states) {
95
+ savedProfile = { default: stateName, states: tableProfile.states };
96
+ }
97
+ else {
98
+ savedProfile.default = stateName;
99
+ }
100
+ globalSavedState.localProfiles[tableId] = savedProfile;
101
+ localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
102
+ };
103
+ deleteLocalProfilesState = this.updater((state, props) => {
104
+ let profile = state.localProfiles[props.key];
105
+ if (profile) {
106
+ const current = profile.current === props.stateKey ? profile.default : profile.current;
107
+ profile = { ...profile, current, states: { ...profile.states } };
108
+ delete profile.states[props.stateKey];
109
+ if (current === props.stateKey) {
110
+ profile.current = undefined;
111
+ }
112
+ return { ...state, localProfiles: { ...state.localProfiles, [props.key]: profile } };
113
+ }
114
+ else {
115
+ return state;
116
+ }
117
+ });
118
+ deleteProfileFromLocalAndStorage = (key, stateKey) => {
119
+ const globalSavedState = JSON.parse(localStorage.getItem('global-state-storage') ?? JSON.stringify(defaultStorageState));
120
+ if (!globalSavedState.localProfiles[key]) {
121
+ return;
122
+ }
123
+ else {
124
+ delete (globalSavedState.localProfiles[key].states ?? {})[stateKey];
125
+ }
126
+ if (globalSavedState.localProfiles[key].default === stateKey) {
127
+ globalSavedState.localProfiles[key].default = undefined;
128
+ }
129
+ localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
130
+ this.deleteLocalProfilesState({ key, stateKey });
131
+ };
132
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TableBuilderStateStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
133
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TableBuilderStateStore, providedIn: 'root' });
134
+ }
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TableBuilderStateStore, decorators: [{
136
+ type: Injectable,
137
+ args: [{ providedIn: 'root' }]
138
+ }], ctorParameters: () => [] });
139
+ function loadGlobalStorageState() {
140
+ const storage = localStorage.getItem('global-state-storage');
141
+ if (storage) {
142
+ const s = JSON.parse(storage);
143
+ s.localProfiles ??= {};
144
+ for (const key in s.localProfiles) {
145
+ const profile = s.localProfiles[key];
146
+ s.localProfiles[key] = { ...profile, current: profile.default };
147
+ }
148
+ return { ...defaultStorageState, ...s };
149
+ }
150
+ }
151
+ export const defaultStorageState = {
152
+ localProfiles: {}
153
+ };
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVCdWlsZGVyU3RhdGVTdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL25ncngvdGFibGVCdWlsZGVyU3RhdGVTdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFPbkQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGNBQWtDO0lBQzVFO1FBQ0UsS0FBSyxDQUFDLHNCQUFzQixFQUFFLElBQUksbUJBQW1CLENBQUMsQ0FBQTtJQUN4RCxDQUFDO0lBRUQsV0FBVztJQUNYLHdCQUF3QixHQUFHLENBQUMsVUFBaUIsRUFBK0IsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDdkcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRW5DLDZCQUE2QixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUNwRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLEVBQ3RDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDVixJQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUNwQixPQUFRLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFHLE9BQU8sRUFBRSxlQUFlO1lBQUUsT0FBTyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUNGLENBQUE7SUFFRCw2QkFBNkIsR0FBRyxDQUFDLEdBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FDL0QsSUFBSSxD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LEdBQXdCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFnQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxhQUFhLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLEtBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBQyxDQUFDO1lBQ2hDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFhLENBQUE7UUFDNUUsQ0FBQztRQUNELE9BQU8sRUFBQyxHQUFHLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxFQUFDLENBQUM7SUFDeEMsQ0FBQztBQUNILENBQUM7QUFtQkQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXVCO0lBQ3JELGFBQWEsRUFBRSxFQUFFO0NBQ2xCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gXCJAbmdyeC9jb21wb25lbnQtc3RvcmVcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlsdGVyLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjb25jYXRMYXRlc3RGcm9tIH0gZnJvbSAnQG5ncngvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnlcIjtcclxuaW1wb3J0IHsgUGVyc2lzdGVkVGFibGVTdGF0ZSwgVGFibGVTdGF0ZSB9IGZyb20gXCIuLi9jbGFzc2VzL1RhYmxlU3RhdGVcIjtcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnfSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQnVpbGRlclN0YXRlU3RvcmUgZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxHbG9iYWxTdG9yYWdlU3RhdGU+IHtcclxuICBjb25zdHJ1Y3Rvcigpe1xyXG4gICAgc3VwZXIobG9hZEdsb2JhbFN0b3JhZ2VTdGF0ZSgpIHx8IGRlZmF1bHRTdG9yYWdlU3RhdGUpXHJcbiAgfVxyXG5cclxuICAvL3NlbGVjdG9yc1xyXG4gICRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZSA9IChwcm9maWxlS2V5OnN0cmluZyk6IFNpZ25hbDxQcm9maWxlIHwgdW5kZWZpbmVkPiA9PiB0aGlzLnNlbGVjdFNpZ25hbChzdGF0ZSA9PiBcclxuICAgIHN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvZmlsZUtleV0pO1xyXG5cclxuICAkc2VsZWN0TG9jYWxUYWJsZVN0YXRlRm9yVmlldyA9ICh0YWJsZUlkOiBzdHJpbmcpID0+IHRoaXMuc2VsZWN0U2lnbmFsKFxyXG4gICAgdGhpcy4kc2VsZWN0TG9jYWxUYWJsZVByb2ZpbGUodGFibGVJZCksXHJcbiAgICAocHJvZmlsZSkgPT4ge1xyXG4gICAgICBpZihwcm9maWxlPy5jdXJyZW50KSB7XHJcbiAgICAgICAgcmV0dXJuICBwcm9maWxlLnN0YXRlc1twcm9maWxlLmN1cnJlbnRdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHByb2ZpbGU/LmxvY2FsU2F2ZWRTdGF0ZSkgcmV0dXJuIHByb2ZpbGUubG9jYWxTYXZlZFN0YXRlO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICApXHJcblxyXG4gICRzZWxlY3RMb2NhbFByb2ZpbGVDdXJyZW50S2V5ID0gKGtleTpzdHJpbmcpID0+IHRoaXMuc2VsZWN0U2lnbmFsKFxyXG4gICAgdGhpcy4kc2VsZWN0TG9jYWxUYWJsZVByb2ZpbGUoa2V5KSxcclxuICAgIChwcm9maWxlKSA9PiBwcm9maWxlPy5jdXJyZW50KTtcclxuXHJcbiAgJHNlbGVjdExvY2FsUHJvZmlsZURlZmF1bHRLZXkgPSAoa2V5OnN0cmluZykgPT4gdGhpcy5zZWxlY3RTaWduYWwoXHJcbiAgICB0aGlzLiRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZShrZXkpLFxyXG4gICAgKHByb2ZpbGUpID0+IHByb2ZpbGU/LmRlZmF1bHQpO1xyXG5cclxuICAkc2VsZWN0TG9jYWxQcm9maWxlS2V5cyA9ICh0YWJsZUlkOnN0cmluZykgPT4gdGhpcy5zZWxlY3RTaWduYWwoXHJcbiAgICB0aGlzLiRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZSh0YWJsZUlkKSxcclxuICAgIChwcm9maWxlKSA9PiBPYmplY3Qua2V5cyhwcm9maWxlPy5zdGF0ZXMgfHwge30pXHJcbiAgKTtcclxuXHJcblxyXG4gIC8vIHJlZHVjZXJzXHJcbiAgXHJcblxyXG4gIHNhdmVUYWJsZVNldHRpbmdzVG9Mb2NhbEFuZFN0b3JhZ2UgPSAodGFibGVJZDogc3RyaW5nLCBzdGF0ZU5hbWU6IHN0cmluZywgdGFibGVTdGF0ZTogUGVyc2lzdGVkVGFibGVTdGF0ZSwgYXNEZWZhdWx0PzogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5zYXZlVGFibGVTdGF0ZVRvU3RvcmFnZSh0YWJsZUlkLCBzdGF0ZU5hbWUsIHRhYmxlU3RhdGUsIGFzRGVmYXVsdCk7XHJcbiAgICB0aGlzLnNhdmVUYWJsZVN0YXRlVG9Mb2NhbCh7IHRhYmxlSWQsIHRhYmxlU3RhdGUsIHN0YXRlTmFtZSwgYXNEZWZhdWx0IH0pO1xyXG4gIH1cclxuICBcclxuICBzYXZlVGFibGVTdGF0ZVRvTG9jYWwgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBwcm9wczogeyB0YWJsZUlkOiBzdHJpbmcsIHRhYmxlU3RhdGU6IFBlcnNpc3RlZFRhYmxlU3RhdGUsIHN0YXRlTmFtZT86IHN0cmluZywgYXNEZWZhdWx0PzogYm9vbGVhbiB9KSA9PiB7XHJcbiAgICBsZXQgcHJvZmlsZSA9IHN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvcHMudGFibGVJZF07XHJcbiAgICBpZighcHJvZmlsZT8uc3RhdGVzKSB7XHJcbiAgICAgIHByb2ZpbGUgPSB7c3RhdGVzOnt9fTtcclxuICAgIH1cclxuICAgIGlmKCFwcm9wcy5zdGF0ZU5hbWUpe1xyXG4gICAgICBwcm9maWxlID0gey4uLnByb2ZpbGUsIGxvY2FsU2F2ZWRTdGF0ZTogcHJvcHMudGFibGVTdGF0ZSB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcHJvZmlsZSA9IHsuLi5wcm9maWxlLCBzdGF0ZXM6IHsuLi5wcm9maWxlLnN0YXRlcywgW3Byb3BzLnN0YXRlTmFtZV0gOiBwcm9wcy50YWJsZVN0YXRlfSB9O1xyXG4gICAgfVxyXG4gICAgaWYocHJvcHMuYXNEZWZhdWx0KXtcclxuICAgICAgcHJvZmlsZS5kZWZhdWx0ID0gcHJvcHMuc3RhdGVOYW1lO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgbG9jYWxQcm9maWxlczogey4uLnN0YXRlLmxvY2FsUHJvZmlsZXMsIFtwcm9wcy50YWJsZUlkXTogcHJvZmlsZX0gfVxyXG4gIH0pO1xyXG5cclxuICBzYXZlVGFibGVTdGF0ZVRvU3RvcmFnZSA9ICh0YWJsZUlkOiBzdHJpbmcsIHN0YXRlTmFtZTogc3RyaW5nLCB0YWJsZVN0YXRlOiBQZXJzaXN0ZWRUYWJsZVN0YXRlLCBhc0RlZmF1bHQgPSBmYWxzZSkgPT4ge1xyXG4gICAgY29uc3QgZ2xvYmFsU2F2ZWRTdGF0ZTogUGVyc2lzdGVkR2xvYmFsU3RvcmFnZVNhdGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdnbG9iYWwtc3RhdGUtc3RvcmFnZScpID8/IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRTdG9yYWdlU3RhdGUpICk7XHJcbiAgICBnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNbdGFibGVJZF0gPz89IHsgc3RhdGVzIDoge319XHJcbiAgICBnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNbdGFibGVJZF0uc3RhdGVzW3N0YXRlTmFtZV0gPSB0YWJsZVN0YXRlO1xyXG4gICAgaWYoYXNEZWZhdWx0KXtcclxuICAgICAgZ2xvYmFsU2F2ZWRTdGF0ZS5sb2NhbFByb2ZpbGVzW3RhYmxlSWRdLmRlZmF1bHQgPSBzdGF0ZU5hbWU7XHJcbiAgICB9XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnLCBKU09OLnN0cmluZ2lmeSggZ2xvYmFsU2F2ZWRTdGF0ZSkpO1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3U3RhdGVUb0xvY2FsQW5kU3RvcmFnZSA9ICh0YWJsZUlkOiBzdHJpbmcsIG5ld1N0YXRlTmFtZTogc3RyaW5nLCB0YWJsZVN0YXRlOiBQZXJzaXN0ZWRUYWJsZVN0YXRlLCBhc0RlZmF1bHQ/OiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLnNhdmVUYWJsZVNldHRpbmdzVG9Mb2NhbEFuZFN0b3JhZ2UodGFibGVJZCwgbmV3U3RhdGVOYW1lLCB0YWJsZVN0YXRlLCBhc0RlZmF1bHQpO1xyXG4gICAgdGhpcy5zZXRMb2NhbEN1cnJlbnRTdGF0ZSh7IHRhYmxlSWQ6IHRhYmxlSWQsIGN1cnJlbnRTdGF0ZUtleTogbmV3U3RhdGVOYW1lfSk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2NhbEN1cnJlbnRTdGF0ZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHByb3BzOiB7IHRhYmxlSWQ6IHN0cmluZywgY3VycmVudFN0YXRlS2V5OiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgY29uc3QgcHJvZmlsZSA9IHN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvcHMudGFibGVJZF0gfHwgeyBzdGF0ZXM6IHt9fTtcclxuICAgIHByb2ZpbGUuY3VycmVudCA9IHByb3BzLmN1cnJlbnRTdGF0ZUtleTtcclxuICAgIHJldHVybiB7Li4uc3RhdGUsIGxvY2FsUHJvZmlsZXM6IHsuLi5zdGF0ZS5sb2NhbFByb2ZpbGVzLCBbcHJvcHMudGFibGVJZF06IHsuLi5wcm9maWxlfX19O1xyXG4gIH0pO1xyXG5cclxuICBzZXREZWZhdWx0SW5Mb2NhbEFuZFN0b3JhZ2UgPSAodGFibGVJZDogc3RyaW5nLCBuZXdEZWZhdWx0OiBzdHJpbmcpID0+IHtcclxuICAgIHRoaXMuc2V0RGVmYXVsdEluTG9jYWwoeyBkZWZhdWx0OiBuZXdEZWZhdWx0LCBrZXk6IHRhYmxlSWQgfSk7XHJcbiAgICB0aGlzLnNldERlZmF1bHRJblN0b3JhZ2UodGFibGVJZCwgbmV3RGVmYXVsdCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0SW5Mb2NhbCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHByb3BzOiB7IGtleTogc3RyaW5nLCBkZWZhdWx0OiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgaWYoc3RhdGUubG9jYWxQcm9maWxlc1twcm9wcy5rZXldPy5zdGF0ZXNbcHJvcHMuZGVmYXVsdF0pIHtcclxuICAgICAgcmV0dXJuICh7Li4uc3RhdGUsIGxvY2FsUHJvZmlsZXM6IHsuLi5zdGF0ZS5sb2NhbFByb2ZpbGVzLCBbcHJvcHMua2V5XTogey4uLnN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvcHMua2V5XSwgZGVmYXVsdDogcHJvcHMuZGVmYXVsdH0gfSB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdGF0ZTtcclxuICB9KTtcclxuICBcclxuICB1bnNldERlZmF1bHRGcm9tTG9jYWxBbmRTdG9yYWdlID0gKHRhYmxlSWQ6IHN0cmluZykgPT4ge1xyXG4gICAgdGhpcy51bnNldERlZmF1bHRGcm9tTG9jYWwodGFibGVJZCk7XHJcbiAgICB0aGlzLnVuc2V0RGVmYXVsdEZyb21TdG9yYWdlKHRhYmxlSWQpO1xyXG4gIH1cclxuXHJcbiAgdW5zZXREZWZhdWx0RnJvbUxvY2FsID0gKHRhYmxlSWQ6IHN0cmluZykgPT4ge1xyXG4gICAgdGhpcy5wYXRjaFN0YXRlKHRhYmxlcyA9PiB7XHJcbiAgICAgIGNvbnN0IHByb2ZpbGUgPSB7IC4uLnRhYmxlcy5sb2NhbFByb2ZpbGVzW3RhYmxlSWRdIH07XHJcbiAgICAgIGlmKHByb2ZpbGUpIHtcclxuICAgICAgICBkZWxldGUgcHJvZmlsZS5kZWZhdWx0O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7IC4uLnRhYmxlcywgbG9jYWxQcm9maWxlczogeyAuLi50YWJsZXMubG9jYWxQcm9maWxlcywgW3RhYmxlSWRdOiBwcm9maWxlIH0gfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdW5zZXREZWZhdWx0RnJvbVN0b3JhZ2UgPSAodGFibGVJZDogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBnbG9iYWxTYXZlZFN0YXRlOiBHbG9iYWxTdG9yYWdlU3RhdGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdnbG9iYWwtc3RhdGUtc3RvcmFnZScpID8/IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRTdG9yYWdlU3RhdGUpICk7XHJcbiAgICBpZihnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNbdGFibGVJZF0pIHtcclxuICAgICAgZGVsZXRlIGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1t0YWJsZUlkXS5kZWZhdWx0O1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnLCBKU09OLnN0cmluZ2lmeSggZ2xvYmFsU2F2ZWRTdGF0ZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdEluU3RvcmFnZSA9ICh0YWJsZUlkOiBzdHJpbmcsIHN0YXRlTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCB0YWJsZVByb2ZpbGUgPSB0aGlzLiRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZSh0YWJsZUlkKSgpO1xyXG4gICAgY29uc3QgZ2xvYmFsU2F2ZWRTdGF0ZTogR2xvYmFsU3RvcmFnZVN0YXRlID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnKSA/PyBKU09OLnN0cmluZ2lmeShkZWZhdWx0U3RvcmFnZVN0YXRlKSApO1xyXG4gICAgbGV0IHNhdmVkUHJvZmlsZSA9IGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1tzdGF0ZU5hbWVdO1xyXG4gICAgaWYoIXNhdmVkUHJvZmlsZT8uc3RhdGVzKSB7XHJcbiAgICAgIHNhdmVkUHJvZmlsZSA9ICB7IGRlZmF1bHQ6IHN0YXRlTmFtZSwgc3RhdGVzIDogdGFibGVQcm9maWxlIS5zdGF0ZXMgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNhdmVkUHJvZmlsZS5kZWZhdWx0ID0gc3RhdGVOYW1lO1xyXG4gICAgfVxyXG4gICAgZ2xvYmFsU2F2ZWRTdGF0ZS5sb2NhbFByb2ZpbGVzW3RhYmxlSWRdID0gc2F2ZWRQcm9maWxlO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2dsb2JhbC1zdGF0ZS1zdG9yYWdlJywgSlNPTi5zdHJpbmdpZnkoIGdsb2JhbFNhdmVkU3RhdGUpKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUxvY2FsUHJvZmlsZXNTdGF0ZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHByb3BzOiB7IGtleTogc3RyaW5nLCBzdGF0ZUtleTogc3RyaW5nIH0pID0+IHtcclxuICAgIGxldCBwcm9maWxlID0gc3RhdGUubG9jYWxQcm9maWxlc1twcm9wcy5rZXldO1xyXG4gICAgaWYocHJvZmlsZSkge1xyXG4gICAgICBjb25zdCBjdXJyZW50ID0gcHJvZmlsZS5jdXJyZW50ID09PSBwcm9wcy5zdGF0ZUtleSA/IHByb2ZpbGUuZGVmYXVsdCA6IHByb2ZpbGUuY3VycmVudDtcclxuICAgICAgcHJvZmlsZSA9IHsuLi5wcm9maWxlLGN1cnJlbnQsIHN0YXRlczogeyAuLi5wcm9maWxlLnN0YXRlc319O1xyXG4gICAgICBkZWxldGUgcHJvZmlsZS5zdGF0ZXNbcHJvcHMuc3RhdGVLZXldO1xyXG4gICAgICBpZihjdXJyZW50ID09PSBwcm9wcy5zdGF0ZUtleSkge1xyXG4gICAgICAgIHByb2ZpbGUuY3VycmVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gey4uLnN0YXRlLCBsb2NhbFByb2ZpbGVzOiB7Li4uc3RhdGUubG9jYWxQcm9maWxlcywgW3Byb3BzLmtleV06IHByb2ZpbGV9IH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gc3RhdGU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIGRlbGV0ZVByb2ZpbGVGcm9tTG9jYWxBbmRTdG9yYWdlID0gKGtleTogc3RyaW5nLCBzdGF0ZUtleTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBnbG9iYWxTYXZlZFN0YXRlOiBHbG9iYWxTdG9yYWdlU3RhdGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdnbG9iYWwtc3RhdGUtc3RvcmFnZScpID8/IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRTdG9yYWdlU3RhdGUpICk7XHJcbiAgICBpZighZ2xvYmFsU2F2ZWRTdGF0ZS5sb2NhbFByb2ZpbGVzW2tleV0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVsZXRlIChnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNba2V5XS5zdGF0ZXMgPz8ge30pW3N0YXRlS2V5XTtcclxuICAgIH1cclxuICAgIGlmKGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1trZXldLmRlZmF1bHQgPT09IHN0YXRlS2V5KSB7XHJcbiAgICAgIGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1trZXldLmRlZmF1bHQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnLCBKU09OLnN0cmluZ2lmeSggZ2xvYmFsU2F2ZWRTdGF0ZSkpO1xyXG4gICAgdGhpcy5kZWxldGVMb2NhbFByb2ZpbGVzU3RhdGUoeyBrZXksIHN0YXRlS2V5IH0pXHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBsb2FkR2xvYmFsU3RvcmFnZVN0YXRlKCkgOiBHbG9iYWxTdG9yYWdlU3RhdGUgfCB2b2lkIHtcclxuICBjb25zdCBzdG9yYWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2dsb2JhbC1zdGF0ZS1zdG9yYWdlJyk7XHJcbiAgXHJcbiAgaWYoc3RvcmFnZSkge1xyXG4gICAgY29uc3QgczogR2xvYmFsU3RvcmFnZVN0YXRlID0gKEpTT04ucGFyc2Uoc3RvcmFnZSkgYXMgUGVyc2lzdGVkR2xvYmFsU3RvcmFnZVNhdGUpO1xyXG4gICAgcy5sb2NhbFByb2ZpbGVzID8/PSB7fTtcclxuICAgIGZvcihjb25zdCBrZXkgaW4gcy5sb2NhbFByb2ZpbGVzKXtcclxuICAgICAgY29uc3QgcHJvZmlsZSA9IHMubG9jYWxQcm9maWxlc1trZXldO1xyXG4gICAgICBzLmxvY2FsUHJvZmlsZXNba2V5XSA9IHsgLi4ucHJvZmlsZSwgY3VycmVudDogcHJvZmlsZS5kZWZhdWx0IH0gYXMgUHJvZmlsZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsuLi5kZWZhdWx0U3RvcmFnZVN0YXRlLCAuLi5zfTtcclxuICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBQZXJzaXN0ZWRQcm9maWxlIHtcclxuICBzdGF0ZXM6IERpY3Rpb25hcnk8UGVyc2lzdGVkVGFibGVTdGF0ZT47XHJcbiAgZGVmYXVsdD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGUgZXh0ZW5kcyBQZXJzaXN0ZWRQcm9maWxlIHtcclxuICBjdXJyZW50Pzogc3RyaW5nO1xyXG4gIGxvY2FsU2F2ZWRTdGF0ZT86IFBlcnNpc3RlZFRhYmxlU3RhdGU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsU3RvcmFnZVN0YXRlIHtcclxuICBsb2NhbFByb2ZpbGVzOiBEaWN0aW9uYXJ5PFByb2ZpbGU+O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgUGVyc2lzdGVkR2xvYmFsU3RvcmFnZVNhdGUge1xyXG4gIGxvY2FsUHJvZmlsZXM6IERpY3Rpb25hcnk8UGVyc2lzdGVkUHJvZmlsZT47XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0U3RvcmFnZVN0YXRlOiBHbG9iYWxTdG9yYWdlU3RhdGUgPSB7XHJcbiAgbG9jYWxQcm9maWxlczoge31cclxufSJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { sumBy } from 'lodash';
3
+ import * as i0 from "@angular/core";
4
+ export class ColumnTotalPipe {
5
+ transform(data, metaData) {
6
+ const dataToCalculate = data.filter(d => !d.isGroupHeader);
7
+ switch (metaData.additional.footer.type) {
8
+ case 'sum':
9
+ return sumBy(dataToCalculate, metaData.key);
10
+ }
11
+ }
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ColumnTotalPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
13
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: ColumnTotalPipe, isStandalone: true, name: "columnTotal" });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ColumnTotalPipe, decorators: [{
16
+ type: Pipe,
17
+ args: [{
18
+ name: 'columnTotal',
19
+ standalone: true
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXRvdGFsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9waXBlcy9jb2x1bW4tdG90YWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sUUFBUSxDQUFDOztBQU03QixNQUFNLE9BQU8sZUFBZTtJQUMxQixTQUFTLENBQUMsSUFBVyxFQUFFLFFBQWtCO1FBQ3ZDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUMxRCxRQUFRLFFBQVEsQ0FBQyxVQUFXLENBQUMsTUFBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFDLEtBQUssS0FBSztnQkFDVixPQUFPLEtBQUssQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO3VHQVBVLGVBQWU7cUdBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFKM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsYUFBYTtvQkFDakIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZXRhRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7c3VtQnl9IGZyb20gJ2xvZGFzaCc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2NvbHVtblRvdGFsJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxuICB9KVxyXG5leHBvcnQgY2xhc3MgQ29sdW1uVG90YWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKGRhdGE6IGFueVtdLCBtZXRhRGF0YTogTWV0YURhdGEpIHtcclxuICAgIGNvbnN0IGRhdGFUb0NhbGN1bGF0ZSA9IGRhdGEuZmlsdGVyKGQgPT4gIWQuaXNHcm91cEhlYWRlcilcclxuICAgIHN3aXRjaCAobWV0YURhdGEuYWRkaXRpb25hbCEuZm9vdGVyIS50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ3N1bSc6XHJcbiAgICAgIHJldHVybiBzdW1CeShkYXRhVG9DYWxjdWxhdGUsIG1ldGFEYXRhLmtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { FilterTypes } from '../enums/filterTypes';
3
+ import * as i0 from "@angular/core";
4
+ export class FormatFilterTypePipe {
5
+ transform(filterType, value) {
6
+ if (filterType === FilterTypes.IsNull) {
7
+ return value ? filterType : 'Is Not Blank';
8
+ }
9
+ return filterType;
10
+ }
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
12
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterTypePipe, isStandalone: true, name: "formatFilterType" });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterTypePipe, decorators: [{
15
+ type: Pipe,
16
+ args: [{ name: 'formatFilterType', standalone: true }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZpbHRlci10eXBlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9waXBlcy9mb3JtYXQtZmlsdGVyLXR5cGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRy9ELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsU0FBUyxDQUFDLFVBQXNCLEVBQUUsS0FBVTtRQUMxQyxJQUFHLFVBQVUsS0FBSyxXQUFXLENBQUMsTUFBTSxFQUFDLENBQUM7WUFDcEMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFBO1FBQzVDLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO3VHQU5VLG9CQUFvQjtxR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQURoQyxJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpbHRlclR5cGUsIEZpbHRlclR5cGVzIH0gZnJvbSAnLi4vZW51bXMvZmlsdGVyVHlwZXMnO1xyXG5cclxuQFBpcGUoe25hbWU6ICdmb3JtYXRGaWx0ZXJUeXBlJywgc3RhbmRhbG9uZTogdHJ1ZX0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtYXRGaWx0ZXJUeXBlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybShmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlLCB2YWx1ZTogYW55KXtcclxuICAgIGlmKGZpbHRlclR5cGUgPT09IEZpbHRlclR5cGVzLklzTnVsbCl7XHJcbiAgICAgIHJldHVybiB2YWx1ZSA/IGZpbHRlclR5cGUgOiAnSXMgTm90IEJsYW5rJ1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbHRlclR5cGU7XHJcbiAgfVxyXG59Il19
@@ -0,0 +1,43 @@
1
+ import { Pipe, inject } from '@angular/core';
2
+ import { TableStore } from '../classes/table-store';
3
+ import { map } from 'rxjs/operators';
4
+ import { FieldType } from '../interfaces/report-def';
5
+ import { DatePipe } from '@angular/common';
6
+ import { FilterTypes } from '../enums/filterTypes';
7
+ import { spaceCase } from '../../utilities/pipes/space-case.pipes';
8
+ import { DateTimeFilterFuncs } from '../functions/date-filter-function';
9
+ import * as i0 from "@angular/core";
10
+ export class FormatFilterValuePipe {
11
+ tableState = inject(TableStore);
12
+ datePipe = inject(DatePipe);
13
+ transform(value, key, filterType) {
14
+ return this.tableState.getMetaData$(key).pipe(map(md => {
15
+ if (filterType === FilterTypes.IsNull) {
16
+ return '';
17
+ }
18
+ if (value && (filterType === FilterTypes.In)) {
19
+ if (md.fieldType === FieldType.Enum) {
20
+ return value.map((v) => spaceCase(md.additional.enumMap[v])).join(', ') ?? value;
21
+ }
22
+ return value.join(', ') ?? value;
23
+ }
24
+ if (filterType === FilterTypes.NumberBetween) {
25
+ return value.Start + ' - ' + value.End;
26
+ }
27
+ if (md.fieldType === FieldType.Date) {
28
+ return this.datePipe.transform(value, 'MM/dd/yy');
29
+ }
30
+ if (md.fieldType === FieldType.DateTime) {
31
+ return !!DateTimeFilterFuncs[filterType] ? this.datePipe.transform(value, 'short') : this.datePipe.transform(value, 'MM/dd/yy');
32
+ }
33
+ return value;
34
+ }));
35
+ }
36
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
37
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterValuePipe, isStandalone: true, name: "formatFilterValue" });
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterValuePipe, decorators: [{
40
+ type: Pipe,
41
+ args: [{ name: 'formatFilterValue', standalone: true }]
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZpbHRlci12YWx1ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvcGlwZXMvZm9ybWF0LWZpbHRlci12YWx1ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFJeEUsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFcEMsU0FBUyxDQUFDLEtBQVUsRUFBRSxHQUFXLEVBQUUsVUFBc0I7UUFDdkQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBRSxFQUFFLENBQUMsRUFBRTtZQUNSLElBQUcsVUFBVSxLQUFLLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDckMsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsSUFBRyxLQUFLLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVyxDQUFDLEVBQUUsQ0FBRSxFQUFDLENBQUM7Z0JBQzVDLElBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ25DLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBRSxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDO2dCQUMzRixDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7WUFDbkMsQ0FBQztZQUNELElBQUcsVUFBVSxLQUFLLFdBQVcsQ0FBQyxhQUFhLEVBQUMsQ0FBQztnQkFDM0MsT0FBTyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ3pDLENBQUM7WUFDRCxJQUFHLEVBQUUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLElBQUksRUFBQyxDQUFDO2dCQUNsQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNwRCxDQUFDO1lBQ0QsSUFBRyxFQUFFLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxRQUFRLEVBQUMsQ0FBQztnQkFDdEMsT0FBTyxDQUFDLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2xJLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO3VHQTVCVSxxQkFBcUI7cUdBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEakMsSUFBSTttQkFBQyxFQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSwgRmlsdGVyVHlwZXMgfSBmcm9tICcuLi9lbnVtcy9maWx0ZXJUeXBlcyc7XHJcbmltcG9ydCB7IHNwYWNlQ2FzZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9waXBlcy9zcGFjZS1jYXNlLnBpcGVzJztcclxuaW1wb3J0IHsgRGF0ZVRpbWVGaWx0ZXJGdW5jcyB9IGZyb20gJy4uL2Z1bmN0aW9ucy9kYXRlLWZpbHRlci1mdW5jdGlvbic7XHJcblxyXG5cclxuQFBpcGUoe25hbWU6ICdmb3JtYXRGaWx0ZXJWYWx1ZScsIHN0YW5kYWxvbmU6IHRydWV9KVxyXG5leHBvcnQgY2xhc3MgRm9ybWF0RmlsdGVyVmFsdWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdGFibGVTdGF0ZSA9IGluamVjdChUYWJsZVN0b3JlKTtcclxuICBwcml2YXRlIGRhdGVQaXBlID0gaW5qZWN0KERhdGVQaXBlKTtcclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGtleTogc3RyaW5nLCBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlU3RhdGUuZ2V0TWV0YURhdGEkKGtleSkucGlwZShcclxuICAgICAgbWFwKCBtZCA9PiB7XHJcbiAgICAgICAgaWYoZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZXMuSXNOdWxsKSB7XHJcbiAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKHZhbHVlICYmIChmaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlcy5JbiApKXtcclxuICAgICAgICAgIGlmKG1kLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkVudW0pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcCggKHY6IGFueSkgPT4gc3BhY2VDYXNlKG1kLmFkZGl0aW9uYWwhLmVudW1NYXAhW3ZdKSkuam9pbignLCAnKSA/PyB2YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB2YWx1ZS5qb2luKCcsICcpID8/IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihmaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlcy5OdW1iZXJCZXR3ZWVuKXtcclxuICAgICAgICAgIHJldHVybiB2YWx1ZS5TdGFydCArICcgLSAnICsgdmFsdWUuRW5kO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihtZC5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5EYXRlKXtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ01NL2RkL3l5Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKG1kLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkRhdGVUaW1lKXtcclxuICAgICAgICAgIHJldHVybiAhIURhdGVUaW1lRmlsdGVyRnVuY3NbZmlsdGVyVHlwZV0gPyB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ3Nob3J0JykgOiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ01NL2RkL3l5Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB2YWx1ZVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,18 @@
1
+ import { Pipe, inject } from '@angular/core';
2
+ import { TableStore } from '../classes/table-store';
3
+ import { spaceCase } from '../../utilities/pipes/space-case.pipes';
4
+ import { map } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ export class KeyDisplayPipe {
7
+ tableState = inject(TableStore);
8
+ transform(key) {
9
+ return this.tableState.getMetaData$(key).pipe(map(metaData => metaData.displayName || spaceCase(key)));
10
+ }
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: KeyDisplayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
12
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: KeyDisplayPipe, isStandalone: true, name: "keyDisplay" });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: KeyDisplayPipe, decorators: [{
15
+ type: Pipe,
16
+ args: [{ name: 'keyDisplay', standalone: true }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWRpc3BsYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9waXBlcy9rZXktZGlzcGxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUVuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3JDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFaEMsU0FBUyxDQUFDLEdBQVc7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDO3VHQVBVLGNBQWM7cUdBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsSUFBSTttQkFBQyxFQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IHNwYWNlQ2FzZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9waXBlcy9zcGFjZS1jYXNlLnBpcGVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AUGlwZSh7bmFtZTogJ2tleURpc3BsYXknLCBzdGFuZGFsb25lOiB0cnVlfSlcclxuZXhwb3J0IGNsYXNzIEtleURpc3BsYXlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRhYmxlU3RhdGUgPSBpbmplY3QoVGFibGVTdG9yZSk7XG5cclxuICB0cmFuc2Zvcm0oa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVTdGF0ZS5nZXRNZXRhRGF0YSQoa2V5KS5waXBlKFxyXG4gICAgICBtYXAoIG1ldGFEYXRhID0+IG1ldGFEYXRhLmRpc3BsYXlOYW1lIHx8IHNwYWNlQ2FzZShrZXkpKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,75 @@
1
+ import { DatePipe } from '@angular/common';
2
+ import { Injectable, inject } from '@angular/core';
3
+ import { TableStore } from '../classes/table-store';
4
+ import { TableBuilderConfigToken } from '../classes/TableBuilderConfig';
5
+ import { downloadData } from '../functions/download-data';
6
+ import { ArrayStyle, FieldType } from '../interfaces/report-def';
7
+ import { isPipe } from './transform-creator';
8
+ import { get } from 'lodash';
9
+ import * as i0 from "@angular/core";
10
+ export class ExportToCsvService {
11
+ state = inject(TableStore);
12
+ config = inject(TableBuilderConfigToken);
13
+ datePipe = inject(DatePipe);
14
+ exportToCsv = (data) => {
15
+ const hiddenKeys = this.state.selectSignal(s => s.hiddenKeys)();
16
+ const meta = this.state.$metaDataArray().filter(md => !md.noExport && !hiddenKeys.includes(md.key));
17
+ const csv = this.csvData(data, meta);
18
+ downloadData(csv, 'export.csv', 'text/csv');
19
+ };
20
+ csvData = (data, metaData) => {
21
+ const res = data.map(row => metaData.map(meta => this.metaToField(meta, row)).join(','));
22
+ res.unshift(metaData.map(meta => meta.displayName || meta.key).join(','));
23
+ return res.join('\n');
24
+ };
25
+ metaToField = (meta, row) => {
26
+ let val = get(row, meta.key);
27
+ if (val == null && !meta.transform)
28
+ return val;
29
+ if (meta.transform && meta.fieldType !== FieldType.Expression) {
30
+ const transform = meta.transform;
31
+ return isPipe(transform) ? transform.transform(val) : transform(val);
32
+ }
33
+ if (meta.map) {
34
+ return meta.map(row);
35
+ }
36
+ switch (meta.fieldType) {
37
+ case FieldType.Date:
38
+ const dateFormat = meta.additional?.export?.dateFormat || this.config?.export?.dateFormat || meta.additional?.dateFormat;
39
+ val = this.transform(val, dateFormat);
40
+ break;
41
+ case FieldType.DateTime:
42
+ const dateTimeFormat = meta.additional?.export?.dateTimeFormat || this.config?.export?.dateTimeFormat || meta.additional?.dateTimeOptions?.format;
43
+ val = this.transform(val, dateTimeFormat);
44
+ break;
45
+ case FieldType.String:
46
+ const prepend = meta.additional?.export?.prepend || this.config?.export?.prepend || '';
47
+ val = prepend + val;
48
+ break;
49
+ case FieldType.Array:
50
+ const additional = meta.additional;
51
+ val = val.slice(0, additional.limit).join(additional.arrayStyle === ArrayStyle.NewLine ? '\n' : ', ');
52
+ break;
53
+ case FieldType.Expression:
54
+ val = meta.transform(row);
55
+ break;
56
+ }
57
+ if (typeof val === 'string' && (val.includes(',') || val.includes('"') || val.includes('\n'))) {
58
+ val = val.replaceAll('"', '""');
59
+ val = '"' + val + '"';
60
+ }
61
+ return val;
62
+ };
63
+ transform(val, dateFormat) {
64
+ if (this.config.transformers && this.config.transformers[FieldType.Date]) {
65
+ return this.config.transformers[FieldType.Date](val);
66
+ }
67
+ return this.datePipe.transform(val, dateFormat);
68
+ }
69
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ExportToCsvService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
70
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ExportToCsvService });
71
+ }
72
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ExportToCsvService, decorators: [{
73
+ type: Injectable
74
+ }] });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXRvLWNzdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvc2VydmljZXMvZXhwb3J0LXRvLWNzdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRCxPQUFPLEVBQXNCLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQW1CLFVBQVUsRUFBRSxTQUFTLEVBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUU1RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFHN0IsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUN6QyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBR3BDLFdBQVcsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFO1FBQzFCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDaEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxN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QUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDbEQsQ0FBQzt1R0E5RFUsa0JBQWtCOzJHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpcnN0LCBtYXAgIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0fSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgb3JkZXJTdGF0ZU1ldGFEYXRhLCBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuIH0gZnJvbSAnLi4vY2xhc3Nlcy9UYWJsZUJ1aWxkZXJDb25maWcnO1xyXG5pbXBvcnQgeyBkb3dubG9hZERhdGEgfSBmcm9tICcuLi9mdW5jdGlvbnMvZG93bmxvYWQtZGF0YSc7XHJcbmltcG9ydCB7IEFycmF5QWRkaXRpb25hbCwgQXJyYXlTdHlsZSwgRmllbGRUeXBlLCBNZXRhRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IFRhYmxlU3RhdGUgfSBmcm9tICcuLi9jbGFzc2VzL1RhYmxlU3RhdGUnO1xyXG5pbXBvcnQgeyBpc1BpcGUgfSBmcm9tICcuL3RyYW5zZm9ybS1jcmVhdG9yJztcclxuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEV4cG9ydFRvQ3N2U2VydmljZTxUPiB7XHJcbiAgc3RhdGUgPSBpbmplY3QoVGFibGVTdG9yZSk7XHJcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4pO1xyXG4gIHByaXZhdGUgZGF0ZVBpcGUgPSBpbmplY3QoRGF0ZVBpcGUpO1xyXG5cclxuXHJcbiAgZXhwb3J0VG9Dc3YgPSAoZGF0YTogVFtdKSA9PiB7XHJcbiAgICBjb25zdCBoaWRkZW5LZXlzID0gdGhpcy5zdGF0ZS5zZWxlY3RTaWduYWwocyA9PiBzLmhpZGRlbktleXMpKCk7XHJcbiAgICBjb25zdCBtZXRhID0gdGhpcy5zdGF0ZS4kbWV0YURhdGFBcnJheSgpLmZpbHRlcihtZCA9PiAhbWQubm9FeHBvcnQgJiYgIWhpZGRlbktleXMuaW5jbHVkZXMobWQua2V5KSk7XHJcbiAgICBjb25zdCBjc3YgPSB0aGlzLmNzdkRhdGEoZGF0YSwgbWV0YSk7XHJcbiAgICBkb3dubG9hZERhdGEoY3N2LCdleHBvcnQuY3N2JywgJ3RleHQvY3N2JykgO1xyXG4gIH1cclxuXHJcbiAgY3N2RGF0YSA9IChkYXRhOkFycmF5PFQ+LCBtZXRhRGF0YTogTWV0YURhdGE8VD5bXSkgPT4ge1xyXG4gICAgY29uc3QgcmVzID0gZGF0YS5tYXAocm93ID0+IG1ldGFEYXRhLm1hcChtZXRhID0+IHRoaXMubWV0YVRvRmllbGQobWV0YSwgcm93KSkuam9pbignLCcpKTtcclxuICAgIHJlcy51bnNoaWZ0KG1ldGFEYXRhLm1hcChtZXRhID0+IG1ldGEuZGlzcGxheU5hbWUgfHwgbWV0YS5rZXkpLmpvaW4oJywnKSk7XHJcbiAgICByZXR1cm4gcmVzLmpvaW4oJ1xcbicpO1xyXG4gIH1cclxuXHJcbiAgbWV0YVRvRmllbGQgPSAobWV0YTogTWV0YURhdGE8VD4sIHJvdzogVCkgPT4ge1xyXG4gICAgbGV0IHZhbDogYW55ID0gZ2V0KCByb3csbWV0YS5rZXkpO1xyXG4gICAgaWYgKHZhbCA9PSBudWxsICYmICFtZXRhLnRyYW5zZm9ybSkgcmV0dXJuIHZhbFxyXG4gICAgaWYobWV0YS50cmFuc2Zvcm0gJiYgbWV0YS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5FeHByZXNzaW9uKXtcclxuICAgICAgY29uc3QgdHJhbnNmb3JtID0gbWV0YS50cmFuc2Zvcm0gYXMgYW55O1xyXG4gICAgICByZXR1cm4gIGlzUGlwZSh0cmFuc2Zvcm0pID8gdHJhbnNmb3JtLnRyYW5zZm9ybSh2YWwpIDogdHJhbnNmb3JtKHZhbCk7XHJcbiAgICB9XHJcbiAgICBpZihtZXRhLm1hcCl7XHJcbiAgICAgIHJldHVybiBtZXRhLm1hcChyb3cpO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoIChtZXRhLmZpZWxkVHlwZSkge1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlOlxyXG4gICAgICAgIGNvbnN0IGRhdGVGb3JtYXQgPSBtZXRhLmFkZGl0aW9uYWw/LmV4cG9ydD8uZGF0ZUZvcm1hdCB8fCB0aGlzLmNvbmZpZz8uZXhwb3J0Py5kYXRlRm9ybWF0IHx8IG1ldGEuYWRkaXRpb25hbD8uZGF0ZUZvcm1hdDtcclxuICAgICAgICB2YWwgPSB0aGlzLnRyYW5zZm9ybSh2YWwsIGRhdGVGb3JtYXQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlVGltZTpcclxuICAgICAgICBjb25zdCBkYXRlVGltZUZvcm1hdCA9IG1ldGEuYWRkaXRpb25hbD8uZXhwb3J0Py5kYXRlVGltZUZvcm1hdCB8fCB0aGlzLmNvbmZpZz8uZXhwb3J0Py5kYXRlVGltZUZvcm1hdCB8fCBtZXRhLmFkZGl0aW9uYWw/LmRhdGVUaW1lT3B0aW9ucz8uZm9ybWF0O1xyXG4gICAgICAgIHZhbCA9IHRoaXMudHJhbnNmb3JtKHZhbCwgZGF0ZVRpbWVGb3JtYXQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5TdHJpbmc6XHJcbiAgICAgICAgY29uc3QgcHJlcGVuZDogc3RyaW5nID0gbWV0YS5hZGRpdGlvbmFsPy5leHBvcnQ/LnByZXBlbmQgfHwgdGhpcy5jb25maWc/LmV4cG9ydD8ucHJlcGVuZCB8fCAnJztcclxuICAgICAgICB2YWwgPSBwcmVwZW5kICsgdmFsO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5BcnJheTpcclxuICAgICAgICBjb25zdCBhZGRpdGlvbmFsID0gbWV0YS5hZGRpdGlvbmFsIGFzIEFycmF5QWRkaXRpb25hbDtcclxuICAgICAgICB2YWwgPSAodmFsIGFzIEFycmF5PHN0cmluZz4pLnNsaWNlKDAsYWRkaXRpb25hbC5saW1pdCkuam9pbihhZGRpdGlvbmFsLmFycmF5U3R5bGUgPT09IEFycmF5U3R5bGUuTmV3TGluZSA/ICdcXG4nIDogJywgJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkV4cHJlc3Npb246XHJcbiAgICAgICAgdmFsID0gKG1ldGEudHJhbnNmb3JtIGFzIGFueSkocm93KTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiAodmFsLmluY2x1ZGVzKCcsJykgfHwgdmFsLmluY2x1ZGVzKCdcIicpIHx8IHZhbC5pbmNsdWRlcygnXFxuJykpKSB7XHJcbiAgICAgIHZhbCA9IHZhbC5yZXBsYWNlQWxsKCdcIicsICdcIlwiJyk7XHJcbiAgICAgIHZhbCA9ICdcIicgKyB2YWwgKyAnXCInO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNmb3JtKHZhbDogYW55LCBkYXRlRm9ybWF0OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZy50cmFuc2Zvcm1lcnMgJiYgdGhpcy5jb25maWcudHJhbnNmb3JtZXJzW0ZpZWxkVHlwZS5EYXRlXSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25maWcudHJhbnNmb3JtZXJzW0ZpZWxkVHlwZS5EYXRlXSEodmFsKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWwsIGRhdGVGb3JtYXQpO1xyXG4gIH1cclxufVxyXG4iXX0=