@one-paragon/angular-utilities 0.1.21 → 0.1.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/action-state/action-state-spinner/action-state-spinner.component.d.ts +12 -0
  2. package/action-state/action-state-ui/action-state-ui.module.d.ts +9 -0
  3. package/{src/action-state/index.ts → action-state/index.d.ts} +0 -4
  4. package/action-state/ngrx-ext/ngrx-ext.module.d.ts +8 -0
  5. package/action-state/ngrx.d.ts +31 -0
  6. package/esm2020/action-state/action-state-spinner/action-state-spinner.component.mjs +23 -0
  7. package/esm2020/action-state/action-state-ui/action-state-ui.module.mjs +28 -0
  8. package/esm2020/action-state/index.mjs +8 -0
  9. package/esm2020/action-state/ngrx-ext/ngrx-ext.module.mjs +23 -0
  10. package/esm2020/action-state/ngrx.mjs +42 -0
  11. package/esm2020/http-request-state/HttpRequestStateFactory.mjs +27 -0
  12. package/esm2020/http-request-state/HttpRequestStateStore.mjs +97 -0
  13. package/esm2020/http-request-state/directives/HttpStateDirectiveBase.mjs +34 -0
  14. package/esm2020/http-request-state/directives/http-error-state-directive.mjs +29 -0
  15. package/esm2020/http-request-state/directives/http-inProgress-state-directive.mjs +29 -0
  16. package/esm2020/http-request-state/directives/http-notStarted-state-directive.mjs +29 -0
  17. package/esm2020/http-request-state/directives/http-success-state-directive.mjs +29 -0
  18. package/esm2020/http-request-state/directives/index.mjs +6 -0
  19. package/esm2020/http-request-state/directives/request-state-directive.mjs +57 -0
  20. package/esm2020/http-request-state/helpers.mjs +22 -0
  21. package/esm2020/http-request-state/http-request-state.mjs +39 -0
  22. package/esm2020/http-request-state/http-state-module.mjs +41 -0
  23. package/esm2020/http-request-state/index.mjs +7 -0
  24. package/esm2020/http-request-state/rxjs/getRequestorBody.mjs +4 -0
  25. package/esm2020/http-request-state/rxjs/getRequestorState.mjs +3 -0
  26. package/esm2020/http-request-state/rxjs/index.mjs +5 -0
  27. package/esm2020/http-request-state/rxjs/tapError.mjs +12 -0
  28. package/esm2020/http-request-state/rxjs/tapSuccess.mjs +12 -0
  29. package/esm2020/http-request-state/types.mjs +16 -0
  30. package/esm2020/ngrx/actionable-selector.mjs +76 -0
  31. package/esm2020/ngrx/index.mjs +2 -0
  32. package/esm2020/one-paragon-angular-utilities.mjs +5 -0
  33. package/esm2020/public-api.mjs +19 -0
  34. package/esm2020/rxjs/defaultShareReplay.mjs +7 -0
  35. package/esm2020/rxjs/index.mjs +5 -0
  36. package/esm2020/rxjs/mapError.mjs +8 -0
  37. package/esm2020/rxjs/rxjs-operators.mjs +91 -0
  38. package/esm2020/rxjs/subjectifier.mjs +15 -0
  39. package/esm2020/table-builder/classes/DefaultSettings.mjs +6 -0
  40. package/esm2020/table-builder/classes/GenericTableDataSource.mjs +13 -0
  41. package/esm2020/table-builder/classes/MatTableObservableDataSource.mjs +21 -0
  42. package/esm2020/table-builder/classes/TableBuilderConfig.mjs +3 -0
  43. package/esm2020/table-builder/classes/TableState.mjs +32 -0
  44. package/esm2020/table-builder/classes/data-filter.mjs +26 -0
  45. package/esm2020/table-builder/classes/display-col.mjs +2 -0
  46. package/esm2020/table-builder/classes/filter-info.mjs +71 -0
  47. package/esm2020/table-builder/classes/table-builder-general-settings.mjs +68 -0
  48. package/esm2020/table-builder/classes/table-builder.mjs +61 -0
  49. package/esm2020/table-builder/classes/table-store.mjs +292 -0
  50. package/esm2020/table-builder/components/array-column.component.mjs +57 -0
  51. package/esm2020/table-builder/components/column-builder/column-builder.component.mjs +111 -0
  52. package/esm2020/table-builder/components/date-filter/date-filter.component.mjs +25 -0
  53. package/esm2020/table-builder/components/filter/filter.component.mjs +53 -0
  54. package/esm2020/table-builder/components/filter/in-list/in-list-filter.component.mjs +91 -0
  55. package/esm2020/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +45 -0
  56. package/esm2020/table-builder/components/generic-table/generic-table.component.mjs +198 -0
  57. package/esm2020/table-builder/components/generic-table/paginator.component.mjs +74 -0
  58. package/esm2020/table-builder/components/group-by-list/group-by-list.component.mjs +22 -0
  59. package/esm2020/table-builder/components/header-menu/header-menu.component.mjs +90 -0
  60. package/esm2020/table-builder/components/in-filter/in-filter.component.mjs +63 -0
  61. package/esm2020/table-builder/components/index.mjs +10 -0
  62. package/esm2020/table-builder/components/initialization-component/initialization-component.mjs +33 -0
  63. package/esm2020/table-builder/components/link-column.component.mjs +66 -0
  64. package/esm2020/table-builder/components/number-filter/number-filter.component.mjs +27 -0
  65. package/esm2020/table-builder/components/sort-menu/sort-menu.component-store.mjs +42 -0
  66. package/esm2020/table-builder/components/sort-menu/sort-menu.component.mjs +75 -0
  67. package/esm2020/table-builder/components/table-container/table-container.mjs +312 -0
  68. package/esm2020/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +42 -0
  69. package/esm2020/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +30 -0
  70. package/esm2020/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +25 -0
  71. package/esm2020/table-builder/directives/custom-cell-directive.mjs +59 -0
  72. package/esm2020/table-builder/directives/index.mjs +6 -0
  73. package/esm2020/table-builder/directives/multi-sort.directive.mjs +42 -0
  74. package/esm2020/table-builder/directives/resize-column.directive.mjs +86 -0
  75. package/esm2020/table-builder/directives/table-wrapper.directive.mjs +26 -0
  76. package/esm2020/table-builder/directives/tb-filter.directive.mjs +403 -0
  77. package/esm2020/table-builder/enums/filterTypes.mjs +59 -0
  78. package/esm2020/table-builder/functions/boolean-filter-function.mjs +10 -0
  79. package/esm2020/table-builder/functions/date-filter-function.mjs +32 -0
  80. package/esm2020/table-builder/functions/download-data.mjs +12 -0
  81. package/esm2020/table-builder/functions/null-filter-function.mjs +8 -0
  82. package/esm2020/table-builder/functions/number-filter-function.mjs +32 -0
  83. package/esm2020/table-builder/functions/sort-data-function.mjs +5 -0
  84. package/esm2020/table-builder/functions/string-filter-function.mjs +41 -0
  85. package/esm2020/table-builder/interfaces/ColumnInfo.mjs +2 -0
  86. package/esm2020/table-builder/interfaces/dictionary.mjs +2 -0
  87. package/esm2020/table-builder/interfaces/report-def.mjs +34 -0
  88. package/esm2020/table-builder/material.module.mjs +207 -0
  89. package/esm2020/table-builder/ngrx/actions.mjs +5 -0
  90. package/esm2020/table-builder/ngrx/effects.mjs +48 -0
  91. package/esm2020/table-builder/ngrx/reducer.mjs +52 -0
  92. package/esm2020/table-builder/ngrx/selectors.mjs +24 -0
  93. package/esm2020/table-builder/pipes/column-total.pipe.mjs +20 -0
  94. package/esm2020/table-builder/pipes/format-filter-type.pipe.mjs +18 -0
  95. package/esm2020/table-builder/pipes/format-filter-value.pipe.mjs +46 -0
  96. package/esm2020/table-builder/pipes/key-display.mjs +20 -0
  97. package/esm2020/table-builder/services/export-to-csv.service.mjs +84 -0
  98. package/esm2020/table-builder/services/link-creator.service.mjs +42 -0
  99. package/esm2020/table-builder/services/table-template-service.mjs +43 -0
  100. package/esm2020/table-builder/services/transform-creator.mjs +70 -0
  101. package/esm2020/table-builder/table-builder.module.mjs +204 -0
  102. package/esm2020/utilities/directives/auto-focus.directive.mjs +26 -0
  103. package/esm2020/utilities/directives/clickEmitterDirective.mjs +21 -0
  104. package/esm2020/utilities/directives/clickSubject.mjs +27 -0
  105. package/esm2020/utilities/directives/conditional-classes.directive.mjs +35 -0
  106. package/esm2020/utilities/directives/dialog-service.mjs +25 -0
  107. package/esm2020/utilities/directives/dialog.mjs +137 -0
  108. package/esm2020/utilities/directives/mat-toggle-group-directive.mjs +59 -0
  109. package/esm2020/utilities/directives/prevent-enter.directive.mjs +19 -0
  110. package/esm2020/utilities/directives/stop-propagation.directive.mjs +25 -0
  111. package/esm2020/utilities/directives/styler.mjs +26 -0
  112. package/esm2020/utilities/directives/trim-whitespace.directive.mjs +29 -0
  113. package/esm2020/utilities/index.mjs +16 -0
  114. package/esm2020/utilities/module.mjs +91 -0
  115. package/esm2020/utilities/pipes/function.pipe.mjs +21 -0
  116. package/esm2020/utilities/pipes/phone.pipe.mjs +20 -0
  117. package/esm2020/utilities/pipes/space-case.pipes.mjs +28 -0
  118. package/fesm2015/one-paragon-angular-utilities.mjs +4687 -0
  119. package/fesm2015/one-paragon-angular-utilities.mjs.map +1 -0
  120. package/fesm2020/one-paragon-angular-utilities.mjs +4655 -0
  121. package/fesm2020/one-paragon-angular-utilities.mjs.map +1 -0
  122. package/http-request-state/HttpRequestStateFactory.d.ts +14 -0
  123. package/http-request-state/HttpRequestStateStore.d.ts +48 -0
  124. package/http-request-state/directives/HttpStateDirectiveBase.d.ts +16 -0
  125. package/http-request-state/directives/http-error-state-directive.d.ts +12 -0
  126. package/http-request-state/directives/http-inProgress-state-directive.d.ts +12 -0
  127. package/http-request-state/directives/http-notStarted-state-directive.d.ts +12 -0
  128. package/http-request-state/directives/http-success-state-directive.d.ts +14 -0
  129. package/{src/http-request-state/directives/index.ts → http-request-state/directives/index.d.ts} +5 -5
  130. package/http-request-state/directives/request-state-directive.d.ts +29 -0
  131. package/http-request-state/helpers.d.ts +9 -0
  132. package/http-request-state/http-request-state.d.ts +12 -0
  133. package/http-request-state/http-state-module.d.ts +11 -0
  134. package/{src/http-request-state/index.ts → http-request-state/index.d.ts} +6 -6
  135. package/http-request-state/rxjs/getRequestorBody.d.ts +3 -0
  136. package/http-request-state/rxjs/getRequestorState.d.ts +3 -0
  137. package/{src/http-request-state/rxjs/index.ts → http-request-state/rxjs/index.d.ts} +4 -4
  138. package/http-request-state/rxjs/tapError.d.ts +3 -0
  139. package/http-request-state/rxjs/tapSuccess.d.ts +3 -0
  140. package/http-request-state/types.d.ts +36 -0
  141. package/index.d.ts +5 -0
  142. package/ngrx/actionable-selector.d.ts +15 -0
  143. package/ngrx/index.d.ts +1 -0
  144. package/package.json +36 -16
  145. package/{src/public-api.ts → public-api.d.ts} +3 -21
  146. package/rxjs/defaultShareReplay.d.ts +2 -0
  147. package/{src/rxjs/index.ts → rxjs/index.d.ts} +1 -1
  148. package/rxjs/mapError.d.ts +2 -0
  149. package/rxjs/rxjs-operators.d.ts +12 -0
  150. package/rxjs/subjectifier.d.ts +9 -0
  151. package/table-builder/classes/DefaultSettings.d.ts +8 -0
  152. package/table-builder/classes/GenericTableDataSource.d.ts +8 -0
  153. package/table-builder/classes/MatTableObservableDataSource.d.ts +9 -0
  154. package/table-builder/classes/TableBuilderConfig.d.ts +19 -0
  155. package/table-builder/classes/TableState.d.ts +46 -0
  156. package/table-builder/classes/data-filter.d.ts +9 -0
  157. package/{src/table-builder/classes/display-col.ts → table-builder/classes/display-col.d.ts} +5 -5
  158. package/table-builder/classes/filter-info.d.ts +40 -0
  159. package/table-builder/classes/table-builder-general-settings.d.ts +43 -0
  160. package/table-builder/classes/table-builder.d.ts +14 -0
  161. package/table-builder/classes/table-store.d.ts +114 -0
  162. package/table-builder/components/array-column.component.d.ts +14 -0
  163. package/table-builder/components/column-builder/column-builder.component.d.ts +50 -0
  164. package/table-builder/components/date-filter/date-filter.component.d.ts +10 -0
  165. package/table-builder/components/filter/filter.component.d.ts +294 -0
  166. package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +27 -0
  167. package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +16 -0
  168. package/table-builder/components/generic-table/generic-table.component.d.ts +71 -0
  169. package/table-builder/components/generic-table/paginator.component.d.ts +28 -0
  170. package/table-builder/components/group-by-list/group-by-list.component.d.ts +10 -0
  171. package/table-builder/components/header-menu/header-menu.component.d.ts +25 -0
  172. package/table-builder/components/in-filter/in-filter.component.d.ts +21 -0
  173. package/{src/table-builder/components/index.ts → table-builder/components/index.d.ts} +0 -0
  174. package/table-builder/components/initialization-component/initialization-component.d.ts +12 -0
  175. package/table-builder/components/link-column.component.d.ts +17 -0
  176. package/table-builder/components/number-filter/number-filter.component.d.ts +12 -0
  177. package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +24 -0
  178. package/table-builder/components/sort-menu/sort-menu.component.d.ts +25 -0
  179. package/table-builder/components/table-container/table-container.d.ts +65 -0
  180. package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +17 -0
  181. package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +14 -0
  182. package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +14 -0
  183. package/table-builder/directives/custom-cell-directive.d.ts +19 -0
  184. package/{src/table-builder/directives/index.ts → table-builder/directives/index.d.ts} +0 -1
  185. package/table-builder/directives/multi-sort.directive.d.ts +11 -0
  186. package/table-builder/directives/resize-column.directive.d.ts +43 -0
  187. package/table-builder/directives/table-wrapper.directive.d.ts +11 -0
  188. package/table-builder/directives/tb-filter.directive.d.ts +120 -0
  189. package/table-builder/enums/filterTypes.d.ts +31 -0
  190. package/table-builder/functions/boolean-filter-function.d.ts +3 -0
  191. package/table-builder/functions/date-filter-function.d.ts +3 -0
  192. package/table-builder/functions/download-data.d.ts +1 -0
  193. package/table-builder/functions/null-filter-function.d.ts +2 -0
  194. package/table-builder/functions/number-filter-function.d.ts +4 -0
  195. package/table-builder/functions/sort-data-function.d.ts +3 -0
  196. package/table-builder/functions/string-filter-function.d.ts +7 -0
  197. package/{src/table-builder/interfaces/ColumnInfo.ts → table-builder/interfaces/ColumnInfo.d.ts} +6 -7
  198. package/{src/table-builder/interfaces/dictionary.ts → table-builder/interfaces/dictionary.d.ts} +1 -1
  199. package/table-builder/interfaces/report-def.d.ts +135 -0
  200. package/table-builder/material.module.d.ts +32 -0
  201. package/table-builder/ngrx/actions.d.ts +23 -0
  202. package/table-builder/ngrx/effects.d.ts +19 -0
  203. package/table-builder/ngrx/reducer.d.ts +15 -0
  204. package/table-builder/ngrx/selectors.d.ts +22 -0
  205. package/table-builder/pipes/column-total.pipe.d.ts +8 -0
  206. package/table-builder/pipes/format-filter-type.pipe.d.ts +8 -0
  207. package/table-builder/pipes/format-filter-value.pipe.d.ts +14 -0
  208. package/table-builder/pipes/key-display.d.ts +11 -0
  209. package/table-builder/services/export-to-csv.service.d.ts +22 -0
  210. package/table-builder/services/link-creator.service.d.ts +12 -0
  211. package/table-builder/services/table-template-service.d.ts +14 -0
  212. package/table-builder/services/transform-creator.d.ts +19 -0
  213. package/table-builder/table-builder.module.d.ts +45 -0
  214. package/utilities/directives/auto-focus.directive.d.ts +10 -0
  215. package/utilities/directives/clickEmitterDirective.d.ts +7 -0
  216. package/utilities/directives/clickSubject.d.ts +9 -0
  217. package/utilities/directives/conditional-classes.directive.d.ts +14 -0
  218. package/utilities/directives/dialog-service.d.ts +10 -0
  219. package/utilities/directives/dialog.d.ts +46 -0
  220. package/utilities/directives/mat-toggle-group-directive.d.ts +21 -0
  221. package/utilities/directives/prevent-enter.directive.d.ts +6 -0
  222. package/utilities/directives/stop-propagation.directive.d.ts +7 -0
  223. package/utilities/directives/styler.d.ts +9 -0
  224. package/utilities/directives/trim-whitespace.directive.d.ts +9 -0
  225. package/{src/utilities/index.ts → utilities/index.d.ts} +1 -8
  226. package/utilities/module.d.ts +19 -0
  227. package/utilities/pipes/function.pipe.d.ts +7 -0
  228. package/utilities/pipes/phone.pipe.d.ts +7 -0
  229. package/utilities/pipes/space-case.pipes.d.ts +17 -0
  230. package/karma.conf.js +0 -44
  231. package/ng-package.json +0 -7
  232. package/src/action-state/action-state-spinner/action-state-spinner.component.css +0 -16
  233. package/src/action-state/action-state-spinner/action-state-spinner.component.html +0 -3
  234. package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +0 -25
  235. package/src/action-state/action-state-spinner/action-state-spinner.component.ts +0 -22
  236. package/src/action-state/action-state-ui/action-state-ui.module.ts +0 -19
  237. package/src/action-state/ngrx-ext/ngrx-ext.module.ts +0 -15
  238. package/src/action-state/ngrx.ts +0 -69
  239. package/src/http-request-state/HttpRequestStateFactory.ts +0 -26
  240. package/src/http-request-state/HttpRequestStateStore.ts +0 -147
  241. package/src/http-request-state/directives/HttpStateDirectiveBase.ts +0 -38
  242. package/src/http-request-state/directives/http-error-state-directive.ts +0 -32
  243. package/src/http-request-state/directives/http-inProgress-state-directive.ts +0 -32
  244. package/src/http-request-state/directives/http-notStarted-state-directive.ts +0 -31
  245. package/src/http-request-state/directives/http-success-state-directive.ts +0 -31
  246. package/src/http-request-state/directives/request-state-directive.spec.ts +0 -72
  247. package/src/http-request-state/directives/request-state-directive.ts +0 -70
  248. package/src/http-request-state/helpers.ts +0 -30
  249. package/src/http-request-state/http-request-state.ts +0 -69
  250. package/src/http-request-state/http-state-module.ts +0 -26
  251. package/src/http-request-state/observable.spec.ts +0 -43
  252. package/src/http-request-state/rxjs/getRequestorBody.ts +0 -10
  253. package/src/http-request-state/rxjs/getRequestorState.ts +0 -8
  254. package/src/http-request-state/rxjs/tapError.ts +0 -16
  255. package/src/http-request-state/rxjs/tapSuccess.ts +0 -16
  256. package/src/http-request-state/strategies.spec.ts +0 -42
  257. package/src/http-request-state/types.ts +0 -50
  258. package/src/ngrx/actionable-selector.ts +0 -95
  259. package/src/ngrx/index.ts +0 -1
  260. package/src/rxjs/defaultShareReplay.ts +0 -8
  261. package/src/rxjs/mapError.ts +0 -8
  262. package/src/rxjs/rxjs-operators.ts +0 -130
  263. package/src/rxjs/subjectifier.ts +0 -15
  264. package/src/specs/clickSubject.spec.ts +0 -95
  265. package/src/specs/dialog.spec.ts +0 -101
  266. package/src/specs/toggleGroupDirective.spec.ts +0 -231
  267. package/src/table-builder/classes/DefaultSettings.ts +0 -10
  268. package/src/table-builder/classes/GenericTableDataSource.ts +0 -22
  269. package/src/table-builder/classes/MatTableObservableDataSource.ts +0 -23
  270. package/src/table-builder/classes/TableBuilderConfig.ts +0 -19
  271. package/src/table-builder/classes/TableState.ts +0 -63
  272. package/src/table-builder/classes/data-filter.spec.ts +0 -72
  273. package/src/table-builder/classes/data-filter.ts +0 -32
  274. package/src/table-builder/classes/filter-info.ts +0 -132
  275. package/src/table-builder/classes/table-builder-general-settings.ts +0 -73
  276. package/src/table-builder/classes/table-builder.ts +0 -71
  277. package/src/table-builder/classes/table-store.ts +0 -360
  278. package/src/table-builder/components/array-column.component.ts +0 -39
  279. package/src/table-builder/components/column-builder/column-builder.component.html +0 -66
  280. package/src/table-builder/components/column-builder/column-builder.component.scss +0 -43
  281. package/src/table-builder/components/column-builder/column-builder.component.spec.ts +0 -51
  282. package/src/table-builder/components/column-builder/column-builder.component.ts +0 -126
  283. package/src/table-builder/components/date-filter/date-filter.component.html +0 -24
  284. package/src/table-builder/components/date-filter/date-filter.component.ts +0 -17
  285. package/src/table-builder/components/filter/filter.component.html +0 -78
  286. package/src/table-builder/components/filter/filter.component.scss +0 -64
  287. package/src/table-builder/components/filter/filter.component.spec.ts +0 -89
  288. package/src/table-builder/components/filter/filter.component.ts +0 -35
  289. package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +0 -82
  290. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +0 -52
  291. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +0 -57
  292. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +0 -44
  293. package/src/table-builder/components/generic-table/generic-table.component.html +0 -77
  294. package/src/table-builder/components/generic-table/generic-table.component.scss +0 -45
  295. package/src/table-builder/components/generic-table/generic-table.component.ts +0 -221
  296. package/src/table-builder/components/generic-table/paginator.component.ts +0 -89
  297. package/src/table-builder/components/group-by-list/group-by-list.component.css +0 -8
  298. package/src/table-builder/components/group-by-list/group-by-list.component.html +0 -10
  299. package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +0 -23
  300. package/src/table-builder/components/group-by-list/group-by-list.component.ts +0 -16
  301. package/src/table-builder/components/header-menu/header-menu.component.html +0 -117
  302. package/src/table-builder/components/header-menu/header-menu.component.scss +0 -92
  303. package/src/table-builder/components/header-menu/header-menu.component.ts +0 -81
  304. package/src/table-builder/components/in-filter/in-filter.component.css +0 -3
  305. package/src/table-builder/components/in-filter/in-filter.component.html +0 -13
  306. package/src/table-builder/components/in-filter/in-filter.component.ts +0 -60
  307. package/src/table-builder/components/initialization-component/initialization-component.html +0 -21
  308. package/src/table-builder/components/initialization-component/initialization-component.ts +0 -15
  309. package/src/table-builder/components/link-column.component.ts +0 -33
  310. package/src/table-builder/components/number-filter/number-filter.component.css +0 -10
  311. package/src/table-builder/components/number-filter/number-filter.component.html +0 -21
  312. package/src/table-builder/components/number-filter/number-filter.component.spec.ts +0 -30
  313. package/src/table-builder/components/number-filter/number-filter.component.ts +0 -19
  314. package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +0 -59
  315. package/src/table-builder/components/sort-menu/sort-menu.component.html +0 -101
  316. package/src/table-builder/components/sort-menu/sort-menu.component.scss +0 -119
  317. package/src/table-builder/components/sort-menu/sort-menu.component.ts +0 -82
  318. package/src/table-builder/components/table-container/table-container.css +0 -26
  319. package/src/table-builder/components/table-container/table-container.html +0 -113
  320. package/src/table-builder/components/table-container/table-container.spec.ts +0 -157
  321. package/src/table-builder/components/table-container/table-container.ts +0 -344
  322. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +0 -26
  323. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +0 -38
  324. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +0 -37
  325. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +0 -8
  326. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +0 -88
  327. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +0 -27
  328. package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +0 -23
  329. package/src/table-builder/directives/custom-cell-directive.ts +0 -45
  330. package/src/table-builder/directives/multi-sort.directive.spec.ts +0 -124
  331. package/src/table-builder/directives/multi-sort.directive.ts +0 -41
  332. package/src/table-builder/directives/resize-column.directive.ts +0 -104
  333. package/src/table-builder/directives/table-wrapper.directive.ts +0 -16
  334. package/src/table-builder/directives/tb-filter.directive.ts +0 -363
  335. package/src/table-builder/enums/filterTypes.ts +0 -65
  336. package/src/table-builder/functions/boolean-filter-function.ts +0 -13
  337. package/src/table-builder/functions/date-filter-function.ts +0 -40
  338. package/src/table-builder/functions/download-data.ts +0 -11
  339. package/src/table-builder/functions/null-filter-function.ts +0 -9
  340. package/src/table-builder/functions/number-filter-function.ts +0 -42
  341. package/src/table-builder/functions/sort-data-function.ts +0 -8
  342. package/src/table-builder/functions/string-filter-function.ts +0 -52
  343. package/src/table-builder/interfaces/column-template.ts +0 -9
  344. package/src/table-builder/interfaces/report-def.ts +0 -131
  345. package/src/table-builder/material.module.ts +0 -95
  346. package/src/table-builder/ngrx/actions.ts +0 -7
  347. package/src/table-builder/ngrx/effects.ts +0 -54
  348. package/src/table-builder/ngrx/reducer.ts +0 -72
  349. package/src/table-builder/ngrx/selectors.ts +0 -37
  350. package/src/table-builder/pipes/column-total.pipe.ts +0 -15
  351. package/src/table-builder/pipes/format-filter-type.pipe.ts +0 -12
  352. package/src/table-builder/pipes/format-filter-value.pipe.ts +0 -40
  353. package/src/table-builder/pipes/key-display.ts +0 -16
  354. package/src/table-builder/services/export-to-csv.service.ts +0 -92
  355. package/src/table-builder/services/link-creator.service.ts +0 -48
  356. package/src/table-builder/services/table-template-service.ts +0 -44
  357. package/src/table-builder/services/transform-creator.ts +0 -61
  358. package/src/table-builder/specs/table-custom-filters.spec.ts +0 -262
  359. package/src/table-builder/styles/collapser.styles.scss +0 -21
  360. package/src/table-builder/table-builder.module.ts +0 -138
  361. package/src/test.ts +0 -17
  362. package/src/utilities/directives/auto-focus.directive.ts +0 -19
  363. package/src/utilities/directives/clickEmitterDirective.ts +0 -15
  364. package/src/utilities/directives/clickSubject.ts +0 -19
  365. package/src/utilities/directives/conditional-classes.directive.ts +0 -35
  366. package/src/utilities/directives/dialog-service.ts +0 -22
  367. package/src/utilities/directives/dialog.ts +0 -142
  368. package/src/utilities/directives/mat-toggle-group-directive.ts +0 -60
  369. package/src/utilities/directives/prevent-enter.directive.ts +0 -12
  370. package/src/utilities/directives/stop-propagation.directive.ts +0 -19
  371. package/src/utilities/directives/styler.ts +0 -16
  372. package/src/utilities/directives/trim-whitespace.directive.ts +0 -20
  373. package/src/utilities/module.ts +0 -58
  374. package/src/utilities/pipes/function.pipe.ts +0 -15
  375. package/src/utilities/pipes/phone.pipe.ts +0 -15
  376. package/src/utilities/pipes/space-case.pipes.spec.ts +0 -47
  377. package/src/utilities/pipes/space-case.pipes.ts +0 -23
  378. package/tsconfig.lib.json +0 -19
  379. package/tsconfig.lib.prod.json +0 -10
  380. package/tsconfig.spec.json +0 -17
@@ -0,0 +1,46 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { map } from 'rxjs/operators';
3
+ import { FieldType } from '../interfaces/report-def';
4
+ import { FilterType } from '../enums/filterTypes';
5
+ import { spaceCase } from '../../utilities/pipes/space-case.pipes';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../classes/table-store";
8
+ import * as i2 from "@angular/common";
9
+ export class FormatFilterValuePipe {
10
+ constructor(tableState, datePipe) {
11
+ this.tableState = tableState;
12
+ this.datePipe = datePipe;
13
+ }
14
+ transform(value, key, filterType) {
15
+ return this.tableState.getMetaData$(key).pipe(map(md => {
16
+ if (filterType === FilterType.IsNull) {
17
+ return '';
18
+ }
19
+ if (value && (filterType === FilterType.In)) {
20
+ if (md.fieldType === FieldType.Enum) {
21
+ return value.map((v) => spaceCase(md.additional.enumMap[v])).join(', ') ?? value;
22
+ }
23
+ return value.join(', ') ?? value;
24
+ }
25
+ if (filterType === FilterType.NumberBetween) {
26
+ if (md.fieldType === FieldType.Date) {
27
+ value = this.datePipe.transform(value.Start, 'MM/dd/yy') + ' - ' + this.datePipe.transform(value.End, 'MM/dd/yy');
28
+ }
29
+ else {
30
+ value = value.Start + ' - ' + value.End;
31
+ }
32
+ }
33
+ else if (md.fieldType === FieldType.Date) {
34
+ value = this.datePipe.transform(value, 'MM/dd/yy');
35
+ }
36
+ return value;
37
+ }));
38
+ }
39
+ }
40
+ FormatFilterValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FormatFilterValuePipe, deps: [{ token: i1.TableStore }, { token: i2.DatePipe }], target: i0.ɵɵFactoryTarget.Pipe });
41
+ FormatFilterValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: FormatFilterValuePipe, name: "formatFilterValue" });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FormatFilterValuePipe, decorators: [{
43
+ type: Pipe,
44
+ args: [{ name: 'formatFilterValue' }]
45
+ }], ctorParameters: function () { return [{ type: i1.TableStore }, { type: i2.DatePipe }]; } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZpbHRlci12YWx1ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvcGlwZXMvZm9ybWF0LWZpbHRlci12YWx1ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBR3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7OztBQUluRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQW9CLFVBQXNCLEVBQVcsUUFBa0I7UUFBbkQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFXLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDdkUsQ0FBQztJQUNELFNBQVMsQ0FBQyxLQUFVLEVBQUUsR0FBVyxFQUFFLFVBQXNCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUMzQyxHQUFHLENBQUUsRUFBRSxDQUFDLEVBQUU7WUFDUixJQUFHLFVBQVUsS0FBSyxVQUFVLENBQUMsTUFBTSxFQUFFO2dCQUNuQyxPQUFPLEVBQUUsQ0FBQzthQUNYO1lBQ0QsSUFBRyxLQUFLLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLEVBQUUsQ0FBRSxFQUFDO2dCQUMxQyxJQUFHLEVBQUUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRTtvQkFDbEMsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFFLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7aUJBQzFGO2dCQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7YUFDbEM7WUFDRCxJQUFHLFVBQVUsS0FBSyxVQUFVLENBQUMsYUFBYSxFQUFDO2dCQUN6QyxJQUFHLEVBQUUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLElBQUksRUFBQztvQkFDakMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEdBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7aUJBQ2xIO3FCQUFJO29CQUNILEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO2lCQUN6QzthQUNGO2lCQUFNLElBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFDO2dCQUN4QyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7a0hBM0JVLHFCQUFxQjtnSEFBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uL2VudW1zL2ZpbHRlclR5cGVzJztcbmltcG9ydCB7IHNwYWNlQ2FzZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9waXBlcy9zcGFjZS1jYXNlLnBpcGVzJztcblxuXG5AUGlwZSh7bmFtZTogJ2Zvcm1hdEZpbHRlclZhbHVlJ30pXG5leHBvcnQgY2xhc3MgRm9ybWF0RmlsdGVyVmFsdWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKCBwdWJsaWMgdGFibGVTdGF0ZTogVGFibGVTdG9yZSAsIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlKSB7XG4gIH1cbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGtleTogc3RyaW5nLCBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy50YWJsZVN0YXRlLmdldE1ldGFEYXRhJChrZXkpLnBpcGUoXG4gICAgICBtYXAoIG1kID0+IHtcbiAgICAgICAgaWYoZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5Jc051bGwpIHtcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYodmFsdWUgJiYgKGZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuSW4gKSl7XG4gICAgICAgICAgaWYobWQuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRW51bSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcCggKHY6IGFueSkgPT4gc3BhY2VDYXNlKG1kLmFkZGl0aW9uYWwhLmVudW1NYXAhW3ZdKSkuam9pbignLCAnKSA/PyB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHZhbHVlLmpvaW4oJywgJykgPz8gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYoZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5OdW1iZXJCZXR3ZWVuKXtcbiAgICAgICAgICBpZihtZC5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5EYXRlKXtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUuU3RhcnQsICdNTS9kZC95eScpKyAnIC0gJyArIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLkVuZCwgJ01NL2RkL3l5Jyk7XG4gICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLlN0YXJ0ICsgJyAtICcgKyB2YWx1ZS5FbmQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYobWQuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRGF0ZSl7XG4gICAgICAgICAgdmFsdWUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ01NL2RkL3l5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Pipe } from '@angular/core';
2
+ import { spaceCase } from '../../utilities/pipes/space-case.pipes';
3
+ import { map } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../classes/table-store";
6
+ export class KeyDisplayPipe {
7
+ constructor(tableState) {
8
+ this.tableState = tableState;
9
+ }
10
+ transform(key) {
11
+ return this.tableState.getMetaData$(key).pipe(map(metaData => metaData.displayName || spaceCase(key)));
12
+ }
13
+ }
14
+ KeyDisplayPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: KeyDisplayPipe, deps: [{ token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Pipe });
15
+ KeyDisplayPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: KeyDisplayPipe, name: "keyDisplay" });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: KeyDisplayPipe, decorators: [{
17
+ type: Pipe,
18
+ args: [{ name: 'keyDisplay' }]
19
+ }], ctorParameters: function () { return [{ type: i1.TableStore }]; } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWRpc3BsYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9waXBlcy9rZXktZGlzcGxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHckMsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUMxQyxDQUFDO0lBQ0QsU0FBUyxDQUFDLEdBQVc7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDOzsyR0FQVSxjQUFjO3lHQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsSUFBSTttQkFBQyxFQUFDLElBQUksRUFBRSxZQUFZLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgc3BhY2VDYXNlIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL3BpcGVzL3NwYWNlLWNhc2UucGlwZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBQaXBlKHtuYW1lOiAna2V5RGlzcGxheSd9KVxyXG5leHBvcnQgY2xhc3MgS2V5RGlzcGxheVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBjb25zdHJ1Y3RvciggcHVibGljIHRhYmxlU3RhdGU6IFRhYmxlU3RvcmUpIHtcclxuICB9XHJcbiAgdHJhbnNmb3JtKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlU3RhdGUuZ2V0TWV0YURhdGEkKGtleSkucGlwZShcclxuICAgICAgbWFwKCBtZXRhRGF0YSA9PiBtZXRhRGF0YS5kaXNwbGF5TmFtZSB8fCBzcGFjZUNhc2Uoa2V5KSlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,84 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { first, map } from 'rxjs/operators';
3
+ import { combineLatest } from 'rxjs';
4
+ import { orderMetaData } from '../classes/table-store';
5
+ import { TableBuilderConfigToken } from '../classes/TableBuilderConfig';
6
+ import { downloadData } from '../functions/download-data';
7
+ import { ArrayStyle, FieldType } from '../interfaces/report-def';
8
+ import { isPipe } from './transform-creator';
9
+ import { get } from 'lodash';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../classes/table-store";
12
+ import * as i2 from "@angular/common";
13
+ export class ExportToCsvService {
14
+ constructor(state, config, datePipe) {
15
+ this.state = state;
16
+ this.config = config;
17
+ this.datePipe = datePipe;
18
+ this.exportToCsv = (data) => {
19
+ const exportableFields$ = this.state.state$.pipe(map(mapExportableFields));
20
+ combineLatest([data, exportableFields$]).pipe(first(), map(([data, fields]) => this.csvData(data, fields))).subscribe(csv => downloadData(csv, 'export.csv', 'text/csv'));
21
+ };
22
+ this.csvData = (data, metaData) => {
23
+ const res = data.map(row => metaData.map(meta => this.metaToField(meta, row)).join(','));
24
+ res.unshift(metaData.map(meta => meta.displayName || meta.key).join(','));
25
+ return res.join('\n');
26
+ };
27
+ this.metaToField = (meta, row) => {
28
+ let val = get(row, meta.key);
29
+ if (val == null && !meta.transform)
30
+ return val;
31
+ if (meta.transform && meta.fieldType !== FieldType.Expression) {
32
+ const transform = meta.transform;
33
+ return isPipe(transform) ? transform.transform(val) : transform(val);
34
+ }
35
+ switch (meta.fieldType) {
36
+ case FieldType.Date:
37
+ const dateFormat = meta.additional?.export?.dateFormat || this.config?.export?.dateFormat || meta.additional?.dateFormat;
38
+ val = this.transform(val, dateFormat);
39
+ break;
40
+ case FieldType.String:
41
+ const prepend = meta.additional?.export?.prepend || this.config?.export?.prepend || '';
42
+ val = prepend + val;
43
+ break;
44
+ case FieldType.Array:
45
+ const additional = meta.additional;
46
+ val = val.slice(0, additional.limit).join(additional.arrayStyle === ArrayStyle.NewLine ? '\n' : ', ');
47
+ break;
48
+ case FieldType.Expression:
49
+ val = meta.transform(row);
50
+ break;
51
+ }
52
+ if (typeof val === 'string' && (val.includes(',') || val.includes('"') || val.includes('\n'))) {
53
+ val = val.replaceAll('"', '""');
54
+ val = '"' + val + '"';
55
+ }
56
+ return val;
57
+ };
58
+ }
59
+ transform(val, dateFormat) {
60
+ if (this.config.transformers && this.config.transformers[FieldType.Date]) {
61
+ return this.config.transformers[FieldType.Date](val);
62
+ }
63
+ return this.datePipe.transform(val, dateFormat);
64
+ }
65
+ }
66
+ ExportToCsvService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ExportToCsvService, deps: [{ token: i1.TableStore }, { token: TableBuilderConfigToken }, { token: i2.DatePipe }], target: i0.ɵɵFactoryTarget.Injectable });
67
+ ExportToCsvService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ExportToCsvService });
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ExportToCsvService, decorators: [{
69
+ type: Injectable
70
+ }], ctorParameters: function () { return [{ type: i1.TableStore }, { type: undefined, decorators: [{
71
+ type: Inject,
72
+ args: [TableBuilderConfigToken]
73
+ }] }, { type: i2.DatePipe }]; } });
74
+ export const removeFromMetaData = (state, keysToRemove) => orderMetaData(state)
75
+ .filter(meta => !keysToRemove.includes(meta.key));
76
+ export const nonExportableFields = (state) => Object.values(state.metaData)
77
+ .filter(md => md.noExport)
78
+ .map(md => md.key);
79
+ export const mapExportableFields = (state) => {
80
+ const fieldsToRemove = nonExportableFields(state)
81
+ .concat(state.hiddenKeys);
82
+ return removeFromMetaData(state, fieldsToRemove);
83
+ };
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXRvLWNzdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvc2VydmljZXMvZXhwb3J0LXRvLWNzdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFHLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sd0JBQXdCLENBQUM7QUFDbkUsT0FBTyxFQUFzQix1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQW1CLFVBQVUsRUFBRSxTQUFTLEVBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUU1RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7OztBQUc3QixNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ1MsS0FBaUIsRUFDaUIsTUFBMEIsRUFDM0QsUUFBa0I7UUFGbkIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNpQixXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUMzRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRzVCLGdCQUFXLEdBQUcsQ0FBQyxJQUFxQixFQUFFLEVBQUU7WUFDdEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzlDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUN6QixDQUFDO1lBRUYsYUFBYSxD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QUFLLENBQUM7S0FDbkIsTUFBTSxDQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBR3JELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBRSxLQUFLLENBQUMsUUFBUSxDQUFDO0tBQ3JGLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUU7S0FDMUIsR0FBRyxDQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBRSxDQUFDO0FBRXZCLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQ3ZELE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQztTQUM5QyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNCLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ3BELENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlyc3QsIG1hcCAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3R9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBvcmRlck1ldGFEYXRhLCBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IFRhYmxlQnVpbGRlckNvbmZpZywgVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4gfSBmcm9tICcuLi9jbGFzc2VzL1RhYmxlQnVpbGRlckNvbmZpZyc7XHJcbmltcG9ydCB7IGRvd25sb2FkRGF0YSB9IGZyb20gJy4uL2Z1bmN0aW9ucy9kb3dubG9hZC1kYXRhJztcclxuaW1wb3J0IHsgQXJyYXlBZGRpdGlvbmFsLCBBcnJheVN0eWxlLCBGaWVsZFR5cGUsIE1ldGFEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuaW1wb3J0IHsgVGFibGVTdGF0ZSB9IGZyb20gJy4uL2NsYXNzZXMvVGFibGVTdGF0ZSc7XHJcbmltcG9ydCB7IGlzUGlwZSB9IGZyb20gJy4vdHJhbnNmb3JtLWNyZWF0b3InO1xyXG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRXhwb3J0VG9Dc3ZTZXJ2aWNlPFQ+IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzdGF0ZTogVGFibGVTdG9yZSxcclxuICAgIEBJbmplY3QoVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4pIHByaXZhdGUgY29uZmlnOiBUYWJsZUJ1aWxkZXJDb25maWcsXHJcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICApe31cclxuXHJcbiAgZXhwb3J0VG9Dc3YgPSAoZGF0YTogT2JzZXJ2YWJsZTxUW10+KSA9PiB7XHJcbiAgICBjb25zdCBleHBvcnRhYmxlRmllbGRzJCA9IHRoaXMuc3RhdGUuc3RhdGUkLnBpcGUoXHJcbiAgICAgIG1hcChtYXBFeHBvcnRhYmxlRmllbGRzKVxyXG4gICAgKTtcclxuXHJcbiAgICBjb21iaW5lTGF0ZXN0KFtkYXRhLGV4cG9ydGFibGVGaWVsZHMkXSkucGlwZShcclxuICAgICAgZmlyc3QoKSxcclxuICAgICAgbWFwKChbZGF0YSxmaWVsZHNdKSA9PiB0aGlzLmNzdkRhdGEoZGF0YSxmaWVsZHMpKSxcclxuICAgICkuc3Vic2NyaWJlKGNzdiA9PiBkb3dubG9hZERhdGEoY3N2LCdleHBvcnQuY3N2JywndGV4dC9jc3YnKSApO1xyXG4gIH1cclxuXHJcbiAgY3N2RGF0YSA9IChkYXRhOkFycmF5PFQ+LCBtZXRhRGF0YTogTWV0YURhdGE8VD5bXSkgPT4ge1xyXG4gICAgY29uc3QgcmVzID0gZGF0YS5tYXAocm93ID0+IG1ldGFEYXRhLm1hcChtZXRhID0+IHRoaXMubWV0YVRvRmllbGQobWV0YSwgcm93KSkuam9pbignLCcpKTtcclxuICAgIHJlcy51bnNoaWZ0KG1ldGFEYXRhLm1hcChtZXRhID0+IG1ldGEuZGlzcGxheU5hbWUgfHwgbWV0YS5rZXkpLmpvaW4oJywnKSk7XHJcbiAgICByZXR1cm4gcmVzLmpvaW4oJ1xcbicpO1xyXG4gIH1cclxuXHJcbiAgbWV0YVRvRmllbGQgPSAobWV0YTogTWV0YURhdGE8VD4sIHJvdzogVCkgPT4ge1xyXG4gICAgbGV0IHZhbDogYW55ID0gZ2V0KCByb3csbWV0YS5rZXkpO1xyXG4gICAgaWYgKHZhbCA9PSBudWxsICYmICFtZXRhLnRyYW5zZm9ybSkgcmV0dXJuIHZhbFxyXG4gICAgaWYobWV0YS50cmFuc2Zvcm0gJiYgbWV0YS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5FeHByZXNzaW9uKXtcclxuICAgICAgY29uc3QgdHJhbnNmb3JtID0gbWV0YS50cmFuc2Zvcm0gYXMgYW55O1xyXG4gICAgICByZXR1cm4gIGlzUGlwZSh0cmFuc2Zvcm0pID8gdHJhbnNmb3JtLnRyYW5zZm9ybSh2YWwpIDogdHJhbnNmb3JtKHZhbCk7XHJcbiAgICB9XHJcbiAgICBzd2l0Y2ggKG1ldGEuZmllbGRUeXBlKSB7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGU6XHJcbiAgICAgICAgY29uc3QgZGF0ZUZvcm1hdCA9IG1ldGEuYWRkaXRpb25hbD8uZXhwb3J0Py5kYXRlRm9ybWF0IHx8IHRoaXMuY29uZmlnPy5leHBvcnQ/LmRhdGVGb3JtYXQgfHwgbWV0YS5hZGRpdGlvbmFsPy5kYXRlRm9ybWF0O1xyXG4gICAgICAgIHZhbCA9IHRoaXMudHJhbnNmb3JtKHZhbCwgZGF0ZUZvcm1hdCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLlN0cmluZzpcclxuICAgICAgICBjb25zdCBwcmVwZW5kOiBzdHJpbmcgPSBtZXRhLmFkZGl0aW9uYWw/LmV4cG9ydD8ucHJlcGVuZCB8fCB0aGlzLmNvbmZpZz8uZXhwb3J0Py5wcmVwZW5kIHx8ICcnO1xyXG4gICAgICAgIHZhbCA9IHByZXBlbmQgKyB2YWw7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkFycmF5OlxyXG4gICAgICAgIGNvbnN0IGFkZGl0aW9uYWwgPSBtZXRhLmFkZGl0aW9uYWwgYXMgQXJyYXlBZGRpdGlvbmFsO1xyXG4gICAgICAgIHZhbCA9ICh2YWwgYXMgQXJyYXk8c3RyaW5nPikuc2xpY2UoMCxhZGRpdGlvbmFsLmxpbWl0KS5qb2luKGFkZGl0aW9uYWwuYXJyYXlTdHlsZSA9PT0gQXJyYXlTdHlsZS5OZXdMaW5lID8gJ1xcbicgOiAnLCAnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuRXhwcmVzc2lvbjpcclxuICAgICAgICB2YWwgPSAobWV0YS50cmFuc2Zvcm0gYXMgYW55KShyb3cpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnICYmICh2YWwuaW5jbHVkZXMoJywnKSB8fCB2YWwuaW5jbHVkZXMoJ1wiJykgfHwgdmFsLmluY2x1ZGVzKCdcXG4nKSkpIHtcclxuICAgICAgdmFsID0gdmFsLnJlcGxhY2VBbGwoJ1wiJywgJ1wiXCInKTtcclxuICAgICAgdmFsID0gJ1wiJyArIHZhbCArICdcIic7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0cmFuc2Zvcm0odmFsOiBhbnksIGRhdGVGb3JtYXQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLnRyYW5zZm9ybWVycyAmJiB0aGlzLmNvbmZpZy50cmFuc2Zvcm1lcnNbRmllbGRUeXBlLkRhdGVdKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy50cmFuc2Zvcm1lcnNbRmllbGRUeXBlLkRhdGVdISh2YWwpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbCwgZGF0ZUZvcm1hdCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgcmVtb3ZlRnJvbU1ldGFEYXRhID0gKHN0YXRlOiBUYWJsZVN0YXRlLCBrZXlzVG9SZW1vdmU6IHN0cmluZ1tdKSA9PlxyXG5cclxuICBvcmRlck1ldGFEYXRhKHN0YXRlKVxyXG4gIC5maWx0ZXIoIG1ldGEgPT4gIWtleXNUb1JlbW92ZS5pbmNsdWRlcyhtZXRhLmtleSkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBub25FeHBvcnRhYmxlRmllbGRzID0gKHN0YXRlOiBUYWJsZVN0YXRlKSA9PiBPYmplY3QudmFsdWVzKCBzdGF0ZS5tZXRhRGF0YSlcclxuICAuZmlsdGVyKG1kID0+IG1kLm5vRXhwb3J0IClcclxuICAubWFwKCBtZCA9PiBtZC5rZXkgKTtcclxuXHJcbmV4cG9ydCBjb25zdCBtYXBFeHBvcnRhYmxlRmllbGRzID0gKHN0YXRlOiBUYWJsZVN0YXRlKSA9PiB7XHJcbiAgY29uc3QgZmllbGRzVG9SZW1vdmUgPSBub25FeHBvcnRhYmxlRmllbGRzKHN0YXRlKVxyXG4gICAgLmNvbmNhdChzdGF0ZS5oaWRkZW5LZXlzKTtcclxuICAgcmV0dXJuIHJlbW92ZUZyb21NZXRhRGF0YShzdGF0ZSwgZmllbGRzVG9SZW1vdmUpO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,42 @@
1
+ import { get } from "lodash";
2
+ export function createLinkCreator(metaData) {
3
+ const target = metaData.additional?.link?.target || metaData.additional?.target || '_blank';
4
+ const useRouterLink = metaData.additional?.link?.useRouterLink || metaData.additional?.useRouterLink;
5
+ const hasRoute = !!metaData.additional?.link?.interpolatedRoute;
6
+ const routerLinkOptions = useRouterLink ? {
7
+ queryParams: (element) => metaData.additional.link.routerLinkOptions?.queryParams?.reduce((map, [key, value]) => {
8
+ map[key] = parseInterpolated(value, element);
9
+ return map;
10
+ }, {}) ?? null,
11
+ fragment: metaData.additional.link?.routerLinkOptions?.fragment,
12
+ preserveFragment: metaData.additional.link.routerLinkOptions?.preserveFragment ?? false,
13
+ queryParamsHandling: metaData.additional.link.routerLinkOptions?.queryParamsHandling ?? '',
14
+ }
15
+ : undefined;
16
+ if (hasRoute) {
17
+ return ({
18
+ link: (element) => parseInterpolated(metaData.additional.link.interpolatedRoute, element),
19
+ target,
20
+ useRouterLink,
21
+ routerLinkOptions,
22
+ });
23
+ }
24
+ else {
25
+ const slashIfNeeded = !metaData.additional?.link?.base?.endsWith('/') ? '/' : '';
26
+ const base = metaData.additional.link?.base || metaData.additional.base;
27
+ const getKey = key(metaData);
28
+ return ({
29
+ link: (element) => `${base}${slashIfNeeded}${getKey(element)}`,
30
+ target,
31
+ useRouterLink,
32
+ routerLinkOptions,
33
+ });
34
+ }
35
+ }
36
+ const key = (metaData) => metaData.additional.link?.urlKey ?
37
+ (element) => get(element, metaData.additional.link.urlKey) :
38
+ metaData.additional.urlKey ?
39
+ (element) => get(element, metaData.additional.urlKey) :
40
+ (element) => get(element, metaData.key);
41
+ const parseInterpolated = (interpolatedString, element) => interpolatedString.replace(/{([^}]+)}/g, (_, key) => get(element, key));
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1jcmVhdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9zZXJ2aWNlcy9saW5rLWNyZWF0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRzdCLE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxRQUFxQjtJQUN4RCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxNQUFNLElBQUksUUFBUSxDQUFDO0lBQzVGLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLGFBQWEsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQztJQUNyRyxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLENBQUM7SUFDaEUsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLFdBQVcsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVcsQ0FBQyxJQUFLLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ2hILEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDN0MsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSTtRQUNkLFFBQVEsRUFBRSxRQUFRLENBQUMsVUFBVyxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxRQUFRO1FBQ2hFLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxVQUFXLENBQUMsSUFBSyxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixJQUFJLEtBQUs7UUFDekYsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLFVBQVcsQ0FBQyxJQUFLLENBQUMsaUJBQWlCLEVBQUUsbUJBQW1CLElBQUksRUFBRTtLQUM3RjtRQUNELENBQUMsQ0FBQyxTQUFTLENBQUM7SUFJWixJQUFJLFFBQVEsRUFBRTtRQUNaLE9BQU8sQ0FBQztZQUNOLElBQUksRUFBRSxDQUFDLE9BQVUsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFVBQVcsQ0FBQyxJQUFLLENBQUMsaUJBQWtCLEVBQUUsT0FBTyxDQUFDO1lBQy9GLE1BQU07WUFDTixhQUFhO1lBQ2IsaUJBQWlCO1NBQ2xCLENBQUMsQ0FBQztLQUNKO1NBQU07UUFDTCxNQUFNLGFBQWEsR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pGLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxVQUFXLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxRQUFRLENBQUMsVUFBVyxDQUFDLElBQUksQ0FBQztRQUMxRSxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsT0FBTyxDQUFDO1lBQ04sSUFBSSxFQUFFLENBQUMsT0FBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxhQUFhLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pFLE1BQU07WUFDTixhQUFhO1lBQ2IsaUJBQWlCO1NBQ2xCLENBQUMsQ0FBQztLQUNKO0FBQ0gsQ0FBQztBQUVELE1BQU0sR0FBRyxHQUFHLENBQUMsUUFBbUIsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFVBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdEUsQ0FBQyxPQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUcsUUFBUSxDQUFDLFVBQVcsQ0FBQyxJQUFLLENBQUMsTUFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDNUUsUUFBUSxDQUFDLFVBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQixDQUFDLE9BQVcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRyxRQUFRLENBQUMsVUFBVyxDQUFDLE1BQWlCLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsT0FBVyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUU5QyxNQUFNLGlCQUFpQixHQUFHLENBQUUsa0JBQTBCLEVBQUUsT0FBWSxFQUFHLEVBQUUsQ0FDdkUsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldCB9IGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHsgTWV0YURhdGEgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTGlua0NyZWF0b3I8VD4obWV0YURhdGE6IE1ldGFEYXRhPFQ+KXtcclxuICBjb25zdCB0YXJnZXQgPSBtZXRhRGF0YS5hZGRpdGlvbmFsPy5saW5rPy50YXJnZXQgfHwgbWV0YURhdGEuYWRkaXRpb25hbD8udGFyZ2V0IHx8ICdfYmxhbmsnO1xyXG4gIGNvbnN0IHVzZVJvdXRlckxpbmsgPSBtZXRhRGF0YS5hZGRpdGlvbmFsPy5saW5rPy51c2VSb3V0ZXJMaW5rIHx8IG1ldGFEYXRhLmFkZGl0aW9uYWw/LnVzZVJvdXRlckxpbms7XHJcbiAgY29uc3QgaGFzUm91dGUgPSAhIW1ldGFEYXRhLmFkZGl0aW9uYWw/Lmxpbms/LmludGVycG9sYXRlZFJvdXRlO1xyXG4gIGNvbnN0IHJvdXRlckxpbmtPcHRpb25zID0gdXNlUm91dGVyTGluayA/IHtcclxuICAgIHF1ZXJ5UGFyYW1zOiAoZWxlbWVudCkgPT4gbWV0YURhdGEuYWRkaXRpb25hbCEubGluayEucm91dGVyTGlua09wdGlvbnM/LnF1ZXJ5UGFyYW1zPy5yZWR1Y2UoKG1hcCwgW2tleSwgdmFsdWVdKSA9PiB7XHJcbiAgICAgIG1hcFtrZXldID0gcGFyc2VJbnRlcnBvbGF0ZWQodmFsdWUsIGVsZW1lbnQpO1xyXG4gICAgICByZXR1cm4gbWFwO1xyXG4gICAgfSwge30pID8/IG51bGwsXHJcbiAgICBmcmFnbWVudDogbWV0YURhdGEuYWRkaXRpb25hbCEubGluaz8ucm91dGVyTGlua09wdGlvbnM/LmZyYWdtZW50LFxyXG4gICAgcHJlc2VydmVGcmFnbWVudDogbWV0YURhdGEuYWRkaXRpb25hbCEubGluayEucm91dGVyTGlua09wdGlvbnM/LnByZXNlcnZlRnJhZ21lbnQgPz8gZmFsc2UsXHJcbiAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiBtZXRhRGF0YS5hZGRpdGlvbmFsIS5saW5rIS5yb3V0ZXJMaW5rT3B0aW9ucz8ucXVlcnlQYXJhbXNIYW5kbGluZyA/PyAnJyxcclxuICB9XHJcbiAgOiB1bmRlZmluZWQ7XHJcblxyXG5cclxuXHJcbiAgaWYgKGhhc1JvdXRlKSB7XHJcbiAgICByZXR1cm4gKHtcclxuICAgICAgbGluazogKGVsZW1lbnQ6IFQpID0+IHBhcnNlSW50ZXJwb2xhdGVkKG1ldGFEYXRhLmFkZGl0aW9uYWwhLmxpbmshLmludGVycG9sYXRlZFJvdXRlISwgZWxlbWVudCksXHJcbiAgICAgIHRhcmdldCxcclxuICAgICAgdXNlUm91dGVyTGluayxcclxuICAgICAgcm91dGVyTGlua09wdGlvbnMsXHJcbiAgICB9KTtcclxuICB9IGVsc2Uge1xyXG4gICAgY29uc3Qgc2xhc2hJZk5lZWRlZCA9ICFtZXRhRGF0YS5hZGRpdGlvbmFsPy5saW5rPy5iYXNlPy5lbmRzV2l0aCgnLycpID8gJy8nIDogJyc7XHJcbiAgICBjb25zdCBiYXNlID0gbWV0YURhdGEuYWRkaXRpb25hbCEubGluaz8uYmFzZSB8fCBtZXRhRGF0YS5hZGRpdGlvbmFsIS5iYXNlO1xyXG4gICAgY29uc3QgZ2V0S2V5ID0ga2V5KG1ldGFEYXRhKTtcclxuICAgIHJldHVybiAoe1xyXG4gICAgICBsaW5rOiAoZWxlbWVudDogVCkgPT4gYCR7YmFzZX0ke3NsYXNoSWZOZWVkZWR9JHtnZXRLZXkoZWxlbWVudCl9YCxcclxuICAgICAgdGFyZ2V0LFxyXG4gICAgICB1c2VSb3V0ZXJMaW5rLFxyXG4gICAgICByb3V0ZXJMaW5rT3B0aW9ucyxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuY29uc3Qga2V5ID0gKG1ldGFEYXRhIDogTWV0YURhdGEpID0+IG1ldGFEYXRhLmFkZGl0aW9uYWwhLmxpbms/LnVybEtleSA/IFxyXG4gIChlbGVtZW50OmFueSkgPT4gZ2V0KGVsZW1lbnQsIChtZXRhRGF0YS5hZGRpdGlvbmFsIS5saW5rIS51cmxLZXkgYXMgc3RyaW5nKSkgOlxyXG4gICAgbWV0YURhdGEuYWRkaXRpb25hbCEudXJsS2V5ID9cclxuICAoZWxlbWVudDphbnkpID0+IGdldChlbGVtZW50LCAobWV0YURhdGEuYWRkaXRpb25hbCEudXJsS2V5IGFzIHN0cmluZykpIDpcclxuICAoZWxlbWVudDphbnkpID0+IGdldChlbGVtZW50LCBtZXRhRGF0YS5rZXkpO1xyXG5cclxuY29uc3QgcGFyc2VJbnRlcnBvbGF0ZWQgPSAoIGludGVycG9sYXRlZFN0cmluZzogc3RyaW5nLCBlbGVtZW50OiBhbnkgKSA9PlxyXG4gIGludGVycG9sYXRlZFN0cmluZy5yZXBsYWNlKC97KFtefV0rKX0vZywgKF8sIGtleSkgPT4gZ2V0KGVsZW1lbnQgLGtleSkpOyJdfQ==
@@ -0,0 +1,43 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { InitializationComponent } from "../components/initialization-component/initialization-component";
3
+ import { FieldType } from "../interfaces/report-def";
4
+ import * as i0 from "@angular/core";
5
+ export class TableTemplateService {
6
+ constructor(resolver, i) {
7
+ const factory = resolver.resolveComponentFactory(InitializationComponent);
8
+ const c = factory.create(i);
9
+ this.instance = c.instance;
10
+ this.initTemplates();
11
+ }
12
+ initTemplates() {
13
+ this.templates = {};
14
+ this.templates[FieldType.Array] = this.instance.arrayTemplate;
15
+ this.templates[FieldType.Boolean] = this.instance.defaultWithIcon;
16
+ this.templates[FieldType.Currency] = this.instance.defaultTemplate;
17
+ this.templates[FieldType.Date] = this.instance.defaultTemplate;
18
+ this.templates[FieldType.Expression] = this.instance.defaultTemplate;
19
+ this.templates[FieldType.ImageUrl] = this.instance.imageUrlTemplate;
20
+ this.templates[FieldType.Link] = this.instance.linkTemplate;
21
+ this.templates[FieldType.Number] = this.instance.defaultTemplate;
22
+ this.templates[FieldType.PhoneNumber] = this.instance.defaultTemplate;
23
+ this.templates[FieldType.String] = this.instance.defaultTemplate;
24
+ this.templates[FieldType.Unknown] = this.instance.defaultTemplate;
25
+ this.templates[FieldType.Enum] = this.instance.defaultTemplate;
26
+ }
27
+ getTemplate(metaData) {
28
+ let tmp = this.templates[metaData.fieldType];
29
+ if (metaData.useIcon) {
30
+ if (tmp === this.instance.defaultTemplate) {
31
+ tmp = this.instance.defaultWithIcon;
32
+ }
33
+ }
34
+ return tmp;
35
+ }
36
+ }
37
+ TableTemplateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TableTemplateService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
38
+ TableTemplateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TableTemplateService, providedIn: 'root' });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TableTemplateService, decorators: [{
40
+ type: Injectable,
41
+ args: [{ providedIn: 'root' }]
42
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }]; } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtdGVtcGxhdGUtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL3NlcnZpY2VzL3RhYmxlLXRlbXBsYXRlLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUV4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsU0FBUyxFQUFZLE1BQU0sMEJBQTBCLENBQUM7O0FBRy9ELE1BQU0sT0FBTyxvQkFBb0I7SUE4Qi9CLFlBQVksUUFBa0MsRUFBRSxDQUFXO1FBQ3JELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBL0JELGFBQWE7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUcsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztRQUM5RCxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUNsRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUNuRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUMvRCxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUNyRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1FBQ3BFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQzVELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ3RFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO0lBQ2pFLENBQUM7SUFDRCxXQUFXLENBQUMsUUFBa0I7UUFFNUIsSUFBSSxHQUFHLEdBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUMsSUFBRyxRQUFRLENBQUMsT0FBTyxFQUFFO1lBQ25CLElBQUcsR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFO2dCQUN4QyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7YUFDckM7U0FDRjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQzs7aUhBNUJVLG9CQUFvQjtxSEFBcEIsb0JBQW9CLGNBRFIsTUFBTTsyRkFDbEIsb0JBQW9CO2tCQURoQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tIFwiLi4vY2xhc3Nlcy90YWJsZS1zdG9yZVwiO1xyXG5pbXBvcnQgeyBJbml0aWFsaXphdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2luaXRpYWxpemF0aW9uLWNvbXBvbmVudC9pbml0aWFsaXphdGlvbi1jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRmllbGRUeXBlLCBNZXRhRGF0YSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWZcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxyXG5leHBvcnQgY2xhc3MgVGFibGVUZW1wbGF0ZVNlcnZpY2Uge1xyXG4gIGluc3RhbmNlITogSW5pdGlhbGl6YXRpb25Db21wb25lbnQ7XHJcbiAgdGVtcGxhdGVzO1xyXG5cclxuICBpbml0VGVtcGxhdGVzKCkge1xyXG4gICAgdGhpcy50ZW1wbGF0ZXMgPSB7IH07XHJcbiAgICB0aGlzLnRlbXBsYXRlc1tGaWVsZFR5cGUuQXJyYXldID0gdGhpcy5pbnN0YW5jZS5hcnJheVRlbXBsYXRlO1xyXG4gICAgdGhpcy50ZW1wbGF0ZXNbRmllbGRUeXBlLkJvb2xlYW5dID0gdGhpcy5pbnN0YW5jZS5kZWZhdWx0V2l0aEljb247XHJcbiAgICB0aGlzLnRlbXBsYXRlc1tGaWVsZFR5cGUuQ3VycmVuY3ldID0gdGhpcy5pbnN0YW5jZS5kZWZhdWx0VGVtcGxhdGU7XHJcbiAgICB0aGlzLnRlbXBsYXRlc1tGaWVsZFR5cGUuRGF0ZV0gPSB0aGlzLmluc3RhbmNlLmRlZmF1bHRUZW1wbGF0ZTtcclxuICAgIHRoaXMudGVtcGxhdGVzW0ZpZWxkVHlwZS5FeHByZXNzaW9uXSA9IHRoaXMuaW5zdGFuY2UuZGVmYXVsdFRlbXBsYXRlO1xyXG4gICAgdGhpcy50ZW1wbGF0ZXNbRmllbGRUeXBlLkltYWdlVXJsXSA9IHRoaXMuaW5zdGFuY2UuaW1hZ2VVcmxUZW1wbGF0ZTtcclxuICAgIHRoaXMudGVtcGxhdGVzW0ZpZWxkVHlwZS5MaW5rXSA9IHRoaXMuaW5zdGFuY2UubGlua1RlbXBsYXRlO1xyXG4gICAgdGhpcy50ZW1wbGF0ZXNbRmllbGRUeXBlLk51bWJlcl0gPSB0aGlzLmluc3RhbmNlLmRlZmF1bHRUZW1wbGF0ZTtcclxuICAgIHRoaXMudGVtcGxhdGVzW0ZpZWxkVHlwZS5QaG9uZU51bWJlcl0gPSB0aGlzLmluc3RhbmNlLmRlZmF1bHRUZW1wbGF0ZTtcclxuICAgIHRoaXMudGVtcGxhdGVzW0ZpZWxkVHlwZS5TdHJpbmddID0gdGhpcy5pbnN0YW5jZS5kZWZhdWx0VGVtcGxhdGU7XHJcbiAgICB0aGlzLnRlbXBsYXRlc1tGaWVsZFR5cGUuVW5rbm93bl0gPSB0aGlzLmluc3RhbmNlLmRlZmF1bHRUZW1wbGF0ZTtcclxuICAgIHRoaXMudGVtcGxhdGVzW0ZpZWxkVHlwZS5FbnVtXSA9IHRoaXMuaW5zdGFuY2UuZGVmYXVsdFRlbXBsYXRlO1xyXG4gIH1cclxuICBnZXRUZW1wbGF0ZShtZXRhRGF0YTogTWV0YURhdGEpIDogVGVtcGxhdGVSZWY8YW55PiB7XHJcblxyXG4gICAgbGV0IHRtcCA9ICB0aGlzLnRlbXBsYXRlc1ttZXRhRGF0YS5maWVsZFR5cGVdO1xyXG4gICAgaWYobWV0YURhdGEudXNlSWNvbikge1xyXG4gICAgICBpZih0bXAgPT09IHRoaXMuaW5zdGFuY2UuZGVmYXVsdFRlbXBsYXRlKSB7XHJcbiAgICAgICAgdG1wID0gdGhpcy5pbnN0YW5jZS5kZWZhdWx0V2l0aEljb247XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0bXA7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihyZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBpOiBJbmplY3RvciwgICkge1xyXG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSByZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShJbml0aWFsaXphdGlvbkNvbXBvbmVudCk7XHJcbiAgICAgICAgY29uc3QgYyA9IGZhY3RvcnkuY3JlYXRlKGkpO1xyXG4gICAgICAgIHRoaXMuaW5zdGFuY2UgPSBjLmluc3RhbmNlO1xyXG4gICAgICAgIHRoaXMuaW5pdFRlbXBsYXRlcygpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,70 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { FieldType } from '../interfaces/report-def';
3
+ import { TableBuilderConfigToken } from '../classes/TableBuilderConfig';
4
+ import { get } from 'lodash';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "../../utilities/pipes/phone.pipe";
8
+ import * as i3 from "../../utilities";
9
+ export function isPipe(o) {
10
+ return typeof (o.transform) === 'function';
11
+ }
12
+ export class TransformCreator {
13
+ constructor(datePipe, currencyPipe, phonePipe, casePipe, config) {
14
+ this.datePipe = datePipe;
15
+ this.currencyPipe = currencyPipe;
16
+ this.phonePipe = phonePipe;
17
+ this.casePipe = casePipe;
18
+ this.config = config;
19
+ }
20
+ createTransformer(metaData) {
21
+ const defaultFunc = (value) => get(value, metaData.key);
22
+ if (metaData.transform) {
23
+ if (isPipe(metaData.transform)) {
24
+ return (value) => metaData.transform.transform(defaultFunc(value));
25
+ }
26
+ return metaData.fieldType === FieldType.Expression ? metaData.transform : (value) => metaData.transform(defaultFunc(value), value);
27
+ }
28
+ if (this.config.transformers && this.config.transformers[metaData.fieldType]) {
29
+ var tranformer = this.config.transformers[metaData.fieldType];
30
+ return (value) => tranformer(defaultFunc(value));
31
+ }
32
+ switch (metaData.fieldType) {
33
+ case FieldType.Date:
34
+ const dateFormat = metaData.additional?.dateFormat ?? this.config.defaultSettings?.dateFormat ?? 'shortDate';
35
+ return (value) => this.datePipe.transform(defaultFunc(value), dateFormat);
36
+ case FieldType.Currency:
37
+ return (value) => this.currencyPipe.transform(defaultFunc(value));
38
+ case FieldType.PhoneNumber:
39
+ return (value) => this.phonePipe.transform(defaultFunc(value));
40
+ case FieldType.Enum:
41
+ return (value) => this.casePipe.transform(metaData.additional?.enumMap[defaultFunc(value)]);
42
+ case FieldType.Boolean:
43
+ let forTrue = 'check';
44
+ let forFalse = '';
45
+ if (metaData.additional?.boolean?.forTrue) {
46
+ forTrue = metaData?.additional.boolean.forTrue.icon;
47
+ }
48
+ if (metaData.additional?.boolean?.showForFalse === true) {
49
+ forFalse = 'clear';
50
+ }
51
+ else if (metaData.additional?.boolean?.showForFalse?.icon) {
52
+ forFalse = metaData.additional?.boolean?.showForFalse?.icon;
53
+ }
54
+ return (value) => defaultFunc(value) ? forTrue : forFalse;
55
+ }
56
+ return defaultFunc;
57
+ }
58
+ }
59
+ TransformCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TransformCreator, deps: [{ token: i1.DatePipe }, { token: i1.CurrencyPipe }, { token: i2.PhoneNumberPipe }, { token: i3.SpaceCasePipe }, { token: TableBuilderConfigToken }], target: i0.ɵɵFactoryTarget.Injectable });
60
+ TransformCreator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TransformCreator, providedIn: 'root' });
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TransformCreator, decorators: [{
62
+ type: Injectable,
63
+ args: [{
64
+ providedIn: 'root',
65
+ }]
66
+ }], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i1.CurrencyPipe }, { type: i2.PhoneNumberPipe }, { type: i3.SpaceCasePipe }, { type: undefined, decorators: [{
67
+ type: Inject,
68
+ args: [TableBuilderConfigToken]
69
+ }] }]; } });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLWNyZWF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9zZXJ2aWNlcy90cmFuc2Zvcm0tY3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBRy9ELE9BQU8sRUFBRSx1QkFBdUIsRUFBc0IsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7OztBQUM3QixNQUFNLFVBQVUsTUFBTSxDQUFDLENBQU87SUFDNUIsT0FBTyxPQUFPLENBQUUsQ0FBbUIsQ0FBQyxTQUFTLENBQUUsS0FBSyxVQUFVLENBQUM7QUFDakUsQ0FBQztBQUtELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFDVSxRQUFrQixFQUNsQixZQUEwQixFQUMxQixTQUEwQixFQUMxQixRQUF1QixFQUNVLE1BQTBCO1FBSjNELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBZTtRQUNVLFdBQU0sR0FBTixNQUFNLENBQW9CO0lBQ2xFLENBQUM7SUFDSixpQkFBaUIsQ0FBQyxRQUFrQjtRQUNsQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUQsSUFBRyxRQUFRLENBQUMsU0FBUyxFQUFFO1lBQ3JCLElBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBQztnQkFDNUIsT0FB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TWpCLHVCQUF1QjtpSEFOdEIsZ0JBQWdCLGNBRmQsTUFBTTsyRkFFUixnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFHLE1BQU07aUJBQ3BCOzswQkFPSSxNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGVUcmFuc2Zvcm0sIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUsIE1ldGFEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUsIEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFBob25lTnVtYmVyUGlwZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9waXBlcy9waG9uZS5waXBlJztcclxuaW1wb3J0IHsgVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4sIFRhYmxlQnVpbGRlckNvbmZpZyB9IGZyb20gJy4uL2NsYXNzZXMvVGFibGVCdWlsZGVyQ29uZmlnJztcclxuaW1wb3J0IHsgU3BhY2VDYXNlUGlwZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaCc7XHJcbmV4cG9ydCBmdW5jdGlvbiBpc1BpcGUobyA6IGFueSApOiBvIGlzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHJldHVybiB0eXBlb2YgKChvIGFzIFBpcGVUcmFuc2Zvcm0pLnRyYW5zZm9ybSApID09PSAnZnVuY3Rpb24nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zZm9ybUNyZWF0b3Ige1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcbiAgICBwcml2YXRlIGN1cnJlbmN5UGlwZTogQ3VycmVuY3lQaXBlLFxyXG4gICAgcHJpdmF0ZSBwaG9uZVBpcGU6IFBob25lTnVtYmVyUGlwZSxcclxuICAgIHByaXZhdGUgY2FzZVBpcGU6IFNwYWNlQ2FzZVBpcGUsXHJcbiAgICBASW5qZWN0KFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuKSBwcml2YXRlIGNvbmZpZzogVGFibGVCdWlsZGVyQ29uZmlnLFxyXG4gICkge31cclxuICBjcmVhdGVUcmFuc2Zvcm1lcihtZXRhRGF0YTogTWV0YURhdGEpOiAoKHZhbHVlOiBhbnksIC4uLmFyZ3M6IGFueVtdKSA9PiBhbnkpICB7XHJcbiAgICBjb25zdCBkZWZhdWx0RnVuYyA9ICh2YWx1ZTogYW55KSA9PiBnZXQoIHZhbHVlLCBtZXRhRGF0YS5rZXkpO1xyXG4gICAgaWYobWV0YURhdGEudHJhbnNmb3JtKSB7XHJcbiAgICAgIGlmKGlzUGlwZShtZXRhRGF0YS50cmFuc2Zvcm0pKXtcclxuICAgICAgICByZXR1cm4gKHZhbHVlOiBhbnkpID0+ICAobWV0YURhdGEhLnRyYW5zZm9ybSBhcyBQaXBlVHJhbnNmb3JtKS50cmFuc2Zvcm0oZGVmYXVsdEZ1bmModmFsdWUpKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRXhwcmVzc2lvbiA/IG1ldGFEYXRhLnRyYW5zZm9ybSA6ICh2YWx1ZTogYW55KSA9PiAobWV0YURhdGEudHJhbnNmb3JtIGFzIChhOmFueSxiOmFueSk9PmFueSkoZGVmYXVsdEZ1bmModmFsdWUpLHZhbHVlKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmNvbmZpZy50cmFuc2Zvcm1lcnMgJiYgdGhpcy5jb25maWcudHJhbnNmb3JtZXJzW21ldGFEYXRhLmZpZWxkVHlwZV0pIHtcclxuICAgICAgdmFyIHRyYW5mb3JtZXIgPSAgdGhpcy5jb25maWcudHJhbnNmb3JtZXJzIVttZXRhRGF0YS5maWVsZFR5cGVdITtcclxuICAgICAgcmV0dXJuICh2YWx1ZTogYW55KSA9PiB0cmFuZm9ybWVyKGRlZmF1bHRGdW5jKHZhbHVlKSk7XHJcbiAgICB9XHJcbiAgICBzd2l0Y2gobWV0YURhdGEuZmllbGRUeXBlKSB7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGU6XHJcbiAgICAgICAgY29uc3QgZGF0ZUZvcm1hdCA9IG1ldGFEYXRhLmFkZGl0aW9uYWw/LmRhdGVGb3JtYXQgPz8gdGhpcy5jb25maWcuZGVmYXVsdFNldHRpbmdzPy5kYXRlRm9ybWF0ID8/ICdzaG9ydERhdGUnO1xyXG4gICAgICAgIHJldHVybiAodmFsdWU6IGFueSkgPT4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGVmYXVsdEZ1bmModmFsdWUpLCBkYXRlRm9ybWF0KTtcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuQ3VycmVuY3k6XHJcbiAgICAgICAgICByZXR1cm4gKHZhbHVlOiBhbnkpID0+ICB0aGlzLmN1cnJlbmN5UGlwZS50cmFuc2Zvcm0oZGVmYXVsdEZ1bmModmFsdWUpKTtcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuUGhvbmVOdW1iZXI6XHJcbiAgICAgICAgcmV0dXJuICAodmFsdWU6IGFueSkgPT4gIHRoaXMucGhvbmVQaXBlLnRyYW5zZm9ybShkZWZhdWx0RnVuYyh2YWx1ZSkpO1xyXG4gICAgICBjYXNlIEZpZWxkVHlwZS5FbnVtOlxyXG4gICAgICAgIHJldHVybiAodmFsdWU6IGFueSkgPT4gIHRoaXMuY2FzZVBpcGUudHJhbnNmb3JtKG1ldGFEYXRhLmFkZGl0aW9uYWw/LmVudW1NYXAhW2RlZmF1bHRGdW5jKHZhbHVlKV0gYXMgc3RyaW5nKSA7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkJvb2xlYW46XHJcbiAgICAgICAgbGV0IGZvclRydWUgPSAnY2hlY2snXHJcbiAgICAgICAgbGV0IGZvckZhbHNlID0gJyc7XHJcbiAgICAgICAgaWYobWV0YURhdGEuYWRkaXRpb25hbD8uYm9vbGVhbj8uZm9yVHJ1ZSkge1xyXG4gICAgICAgICAgZm9yVHJ1ZSA9IG1ldGFEYXRhPy5hZGRpdGlvbmFsLmJvb2xlYW4uZm9yVHJ1ZS5pY29uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihtZXRhRGF0YS5hZGRpdGlvbmFsPy5ib29sZWFuPy5zaG93Rm9yRmFsc2UgPT09IHRydWUpIHtcclxuICAgICAgICAgIGZvckZhbHNlID0gJ2NsZWFyJztcclxuICAgICAgICB9IGVsc2UgaWYgKG1ldGFEYXRhLmFkZGl0aW9uYWw/LmJvb2xlYW4/LnNob3dGb3JGYWxzZT8uaWNvbikge1xyXG4gICAgICAgICAgZm9yRmFsc2UgPSBtZXRhRGF0YS5hZGRpdGlvbmFsPy5ib29sZWFuPy5zaG93Rm9yRmFsc2U/Lmljb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAodmFsdWU6IGFueSkgPT4gZGVmYXVsdEZ1bmModmFsdWUpID8gZm9yVHJ1ZSA6IGZvckZhbHNlIDtcclxuICAgIH1cclxuICAgICAgcmV0dXJuIGRlZmF1bHRGdW5jO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,204 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { GenericTableComponent } from './components/generic-table/generic-table.component';
3
+ import { CustomCellDirective } from './directives/custom-cell-directive';
4
+ import { GenColDisplayerComponent } from './components/gen-col-displayer/gen-col-displayer.component';
5
+ import { GenFilterDisplayerComponent } from './components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component';
6
+ import { FilterComponent } from './components/filter/filter.component';
7
+ import { CommonModule, DatePipe, CurrencyPipe } from '@angular/common';
8
+ import { FormsModule } from '@angular/forms';
9
+ import { SpaceCasePipe } from '../utilities/pipes/space-case.pipes';
10
+ import { MaterialModule } from './material.module';
11
+ import { DateFilterComponent } from './components/date-filter/date-filter.component';
12
+ import { TableContainerComponent } from './components/table-container/table-container';
13
+ import { ColumnTotalPipe } from './pipes/column-total.pipe';
14
+ import { MultiSortDirective } from './directives/multi-sort.directive';
15
+ import { ColumnBuilderComponent } from './components/column-builder/column-builder.component';
16
+ import { TableBuilderConfigToken } from './classes/TableBuilderConfig';
17
+ import { NumberFilterComponent } from './components/number-filter/number-filter.component';
18
+ import { StoreModule } from '@ngrx/store';
19
+ import { storageStateReducer } from './ngrx/reducer';
20
+ import { HeaderMenuComponent } from './components/header-menu/header-menu.component';
21
+ import { EffectsModule } from '@ngrx/effects';
22
+ import { SaveTableEffects } from './ngrx/effects';
23
+ import { KeyDisplayPipe } from './pipes/key-display';
24
+ import { PhoneNumberPipe } from '../utilities/pipes/phone.pipe';
25
+ import { RouterModule } from '@angular/router';
26
+ import { ArrayColumnComponent } from './components/array-column.component';
27
+ import { LinkColumnComponent } from './components/link-column.component';
28
+ import { InFilterComponent } from './components/in-filter/in-filter.component';
29
+ import { FormatFilterValuePipe } from './pipes/format-filter-value.pipe';
30
+ import { FormatFilterTypePipe } from './pipes/format-filter-type.pipe';
31
+ import { ResizeColumnDirective } from './directives/resize-column.directive';
32
+ import { LetModule } from '@ngrx/component';
33
+ import { DragDropModule } from '@angular/cdk/drag-drop';
34
+ import { InitializationComponent } from './components/initialization-component/initialization-component';
35
+ import { InListFilterComponent } from './components/filter/in-list/in-list-filter.component';
36
+ import { SortMenuComponent } from './components/sort-menu/sort-menu.component';
37
+ import { FilterChipsComponent } from './components/table-container-filter/filter-list/filter-list.component';
38
+ import { PaginatorComponent } from './components/generic-table/paginator.component';
39
+ import { UtilitiesModule } from '../utilities';
40
+ import { MatButtonToggleFilterDirective, MatCheckboxTbFilterDirective, MatOptionTbFilterDirective, MatRadioButtonTbFilterDirective, MatSlideToggleTbFilterDirective, TableFilterDirective, TableFilterStringContainsDirective, } from './directives';
41
+ import { TableWrapperDirective } from './directives/table-wrapper.directive';
42
+ import { GroupByListComponent } from './components/group-by-list/group-by-list.component';
43
+ import * as i0 from "@angular/core";
44
+ import * as i1 from "@ngrx/store";
45
+ import * as i2 from "@ngrx/effects";
46
+ export class TableBuilderModule {
47
+ static forRoot(config) {
48
+ return {
49
+ ngModule: TableBuilderModule,
50
+ providers: [
51
+ MultiSortDirective,
52
+ { provide: TableBuilderConfigToken, useValue: config }
53
+ ]
54
+ };
55
+ }
56
+ }
57
+ TableBuilderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TableBuilderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
58
+ TableBuilderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: TableBuilderModule, declarations: [ColumnTotalPipe,
59
+ TableContainerComponent,
60
+ GenericTableComponent,
61
+ PaginatorComponent,
62
+ CustomCellDirective,
63
+ GenColDisplayerComponent,
64
+ GenFilterDisplayerComponent,
65
+ DateFilterComponent,
66
+ FilterComponent,
67
+ MultiSortDirective,
68
+ NumberFilterComponent,
69
+ ColumnBuilderComponent,
70
+ ArrayColumnComponent,
71
+ LinkColumnComponent,
72
+ HeaderMenuComponent,
73
+ KeyDisplayPipe,
74
+ FormatFilterValuePipe,
75
+ FormatFilterTypePipe,
76
+ ResizeColumnDirective,
77
+ InFilterComponent,
78
+ InitializationComponent,
79
+ InListFilterComponent,
80
+ SortMenuComponent,
81
+ FilterChipsComponent,
82
+ MatSlideToggleTbFilterDirective,
83
+ MatRadioButtonTbFilterDirective,
84
+ MatOptionTbFilterDirective,
85
+ MatCheckboxTbFilterDirective,
86
+ MatButtonToggleFilterDirective,
87
+ TableFilterDirective,
88
+ TableFilterStringContainsDirective,
89
+ TableWrapperDirective,
90
+ GroupByListComponent], imports: [CommonModule,
91
+ MaterialModule, i1.StoreFeatureModule, i2.EffectsFeatureModule, FormsModule,
92
+ RouterModule,
93
+ LetModule,
94
+ DragDropModule,
95
+ UtilitiesModule], exports: [GenericTableComponent,
96
+ PaginatorComponent,
97
+ TableContainerComponent,
98
+ CustomCellDirective,
99
+ GenColDisplayerComponent,
100
+ GenFilterDisplayerComponent,
101
+ FilterComponent,
102
+ MultiSortDirective,
103
+ ResizeColumnDirective,
104
+ MatSlideToggleTbFilterDirective,
105
+ MatRadioButtonTbFilterDirective,
106
+ MatOptionTbFilterDirective,
107
+ MatCheckboxTbFilterDirective,
108
+ MatButtonToggleFilterDirective,
109
+ TableFilterDirective,
110
+ TableFilterStringContainsDirective,
111
+ TableWrapperDirective,
112
+ GroupByListComponent] });
113
+ TableBuilderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TableBuilderModule, providers: [
114
+ SpaceCasePipe,
115
+ DatePipe,
116
+ CurrencyPipe,
117
+ PhoneNumberPipe
118
+ ], imports: [CommonModule,
119
+ MaterialModule,
120
+ StoreModule.forFeature('globalStorageState', storageStateReducer),
121
+ EffectsModule.forFeature([SaveTableEffects]),
122
+ FormsModule,
123
+ RouterModule,
124
+ LetModule,
125
+ DragDropModule,
126
+ UtilitiesModule] });
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: TableBuilderModule, decorators: [{
128
+ type: NgModule,
129
+ args: [{
130
+ imports: [
131
+ CommonModule,
132
+ MaterialModule,
133
+ StoreModule.forFeature('globalStorageState', storageStateReducer),
134
+ EffectsModule.forFeature([SaveTableEffects]),
135
+ FormsModule,
136
+ RouterModule,
137
+ LetModule,
138
+ DragDropModule,
139
+ UtilitiesModule,
140
+ ],
141
+ exports: [
142
+ GenericTableComponent,
143
+ PaginatorComponent,
144
+ TableContainerComponent,
145
+ CustomCellDirective,
146
+ GenColDisplayerComponent,
147
+ GenFilterDisplayerComponent,
148
+ FilterComponent,
149
+ MultiSortDirective,
150
+ ResizeColumnDirective,
151
+ MatSlideToggleTbFilterDirective,
152
+ MatRadioButtonTbFilterDirective,
153
+ MatOptionTbFilterDirective,
154
+ MatCheckboxTbFilterDirective,
155
+ MatButtonToggleFilterDirective,
156
+ TableFilterDirective,
157
+ TableFilterStringContainsDirective,
158
+ TableWrapperDirective,
159
+ GroupByListComponent,
160
+ ],
161
+ declarations: [
162
+ ColumnTotalPipe,
163
+ TableContainerComponent,
164
+ GenericTableComponent,
165
+ PaginatorComponent,
166
+ CustomCellDirective,
167
+ GenColDisplayerComponent,
168
+ GenFilterDisplayerComponent,
169
+ DateFilterComponent,
170
+ FilterComponent,
171
+ MultiSortDirective,
172
+ NumberFilterComponent,
173
+ ColumnBuilderComponent,
174
+ ArrayColumnComponent,
175
+ LinkColumnComponent,
176
+ HeaderMenuComponent,
177
+ KeyDisplayPipe,
178
+ FormatFilterValuePipe,
179
+ FormatFilterTypePipe,
180
+ ResizeColumnDirective,
181
+ InFilterComponent,
182
+ InitializationComponent,
183
+ InListFilterComponent,
184
+ SortMenuComponent,
185
+ FilterChipsComponent,
186
+ MatSlideToggleTbFilterDirective,
187
+ MatRadioButtonTbFilterDirective,
188
+ MatOptionTbFilterDirective,
189
+ MatCheckboxTbFilterDirective,
190
+ MatButtonToggleFilterDirective,
191
+ TableFilterDirective,
192
+ TableFilterStringContainsDirective,
193
+ TableWrapperDirective,
194
+ GroupByListComponent,
195
+ ],
196
+ providers: [
197
+ SpaceCasePipe,
198
+ DatePipe,
199
+ CurrencyPipe,
200
+ PhoneNumberPipe
201
+ ]
202
+ }]
203
+ }] });
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci90YWJsZS1idWlsZGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlGQUF5RixDQUFDO0FBQ3RJLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFOUYsT0FBTyxFQUFzQix1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixD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dUJBQXVCO3dCQUN2QixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsMkJBQTJCO3dCQUMzQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQiwrQkFBK0I7d0JBQy9CLCtCQUErQjt3QkFDL0IsMEJBQTBCO3dCQUMxQiw0QkFBNEI7d0JBQzVCLDhCQUE4Qjt3QkFDOUIsb0JBQW9CO3dCQUNwQixrQ0FBa0M7d0JBQ2xDLHFCQUFxQjt3QkFDckIsb0JBQW9CO3FCQUN2QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHdCQUF3Qjt3QkFDeEIsMkJBQTJCO3dCQUMzQixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsK0JBQStCO3dCQUMvQiwrQkFBK0I7d0JBQy9CLDBCQUEwQjt3QkFDMUIsNEJBQTRCO3dCQUM1Qiw4QkFBOEI7d0JBQzlCLG9CQUFvQjt3QkFDcEIsa0NBQWtDO3dCQUNsQyxxQkFBcUI7d0JBQ3JCLG9CQUFvQjtxQkFDdkI7b0JBQ0QsU0FBUyxFQUFHO3dCQUNWLGFBQWE7d0JBQ2IsUUFBUTt3QkFDUixZQUFZO3dCQUNaLGVBQWU7cUJBQ2hCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9nZW5lcmljLXRhYmxlL2dlbmVyaWMtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3VzdG9tQ2VsbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9jdXN0b20tY2VsbC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBHZW5Db2xEaXNwbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZ2VuLWNvbC1kaXNwbGF5ZXIvZ2VuLWNvbC1kaXNwbGF5ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR2VuRmlsdGVyRGlzcGxheWVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWNvbnRhaW5lci1maWx0ZXIvZ2VuLWZpbHRlci1kaXNwbGF5ZXIvZ2VuLWZpbHRlci1kaXNwbGF5ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgQ3VycmVuY3lQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNwYWNlQ2FzZVBpcGUgfSBmcm9tICcuLi91dGlsaXRpZXMvcGlwZXMvc3BhY2UtY2FzZS5waXBlcyc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi9tYXRlcmlhbC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBEYXRlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RhdGUtZmlsdGVyL2RhdGUtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYmxlQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmxlLWNvbnRhaW5lci90YWJsZS1jb250YWluZXInO1xyXG5pbXBvcnQgeyBDb2x1bW5Ub3RhbFBpcGUgfSBmcm9tICcuL3BpcGVzL2NvbHVtbi10b3RhbC5waXBlJztcclxuaW1wb3J0IHsgTXVsdGlTb3J0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL211bHRpLXNvcnQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQ29sdW1uQnVpbGRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2x1bW4tYnVpbGRlci9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYmxlQnVpbGRlckNvbmZpZywgVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4gfSBmcm9tICcuL2NsYXNzZXMvVGFibGVCdWlsZGVyQ29uZmlnJztcclxuaW1wb3J0IHsgTnVtYmVyRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL251bWJlci1maWx0ZXIvbnVtYmVyLWZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdG9yZU1vZHVsZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgc3RvcmFnZVN0YXRlUmVkdWNlciB9IGZyb20gJy4vbmdyeC9yZWR1Y2VyJztcclxuaW1wb3J0IHsgSGVhZGVyTWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oZWFkZXItbWVudS9oZWFkZXItbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBFZmZlY3RzTW9kdWxlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XHJcbmltcG9ydCB7IFNhdmVUYWJsZUVmZmVjdHMgfSBmcm9tICcuL25ncngvZWZmZWN0cyc7XHJcbmltcG9ydCB7IEtleURpc3BsYXlQaXBlIH0gZnJvbSAnLi9waXBlcy9rZXktZGlzcGxheSc7XHJcbmltcG9ydCB7IFBob25lTnVtYmVyUGlwZSB9IGZyb20gJy4uL3V0aWxpdGllcy9waXBlcy9waG9uZS5waXBlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQXJyYXlDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXJyYXktY29sdW1uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpbmtDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbGluay1jb2x1bW4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSW5GaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW4tZmlsdGVyL2luLWZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtYXRGaWx0ZXJWYWx1ZVBpcGUgfSBmcm9tICcuL3BpcGVzL2Zvcm1hdC1maWx0ZXItdmFsdWUucGlwZSc7XHJcbmltcG9ydCB7IEZvcm1hdEZpbHRlclR5cGVQaXBlIH0gZnJvbSAnLi9waXBlcy9mb3JtYXQtZmlsdGVyLXR5cGUucGlwZSc7XHJcbmltcG9ydCB7IFJlc2l6ZUNvbHVtbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZXNpemUtY29sdW1uLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7TGV0TW9kdWxlfSBmcm9tICdAbmdyeC9jb21wb25lbnQnXHJcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IEluaXRpYWxpemF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2luaXRpYWxpemF0aW9uLWNvbXBvbmVudC9pbml0aWFsaXphdGlvbi1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbkxpc3RGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsdGVyL2luLWxpc3QvaW4tbGlzdC1maWx0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU29ydE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc29ydC1tZW51L3NvcnQtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWx0ZXJDaGlwc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWJsZS1jb250YWluZXItZmlsdGVyL2ZpbHRlci1saXN0L2ZpbHRlci1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBhZ2luYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9nZW5lcmljLXRhYmxlL3BhZ2luYXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVdGlsaXRpZXNNb2R1bGUgfSBmcm9tICcuLi91dGlsaXRpZXMnO1xyXG5pbXBvcnQge1xyXG4gIE1hdEJ1dHRvblRvZ2dsZUZpbHRlckRpcmVjdGl2ZSxcclxuICBNYXRDaGVja2JveFRiRmlsdGVyRGlyZWN0aXZlLFxyXG4gIE1hdE9wdGlvblRiRmlsdGVyRGlyZWN0aXZlLFxyXG4gIE1hdFJhZGlvQnV0dG9uVGJGaWx0ZXJEaXJlY3RpdmUsXHJcbiAgTWF0U2xpZGVUb2dnbGVUYkZpbHRlckRpcmVjdGl2ZSxcclxuICBUYWJsZUZpbHRlckRpcmVjdGl2ZSxcclxuICBUYWJsZUZpbHRlclN0cmluZ0NvbnRhaW5zRGlyZWN0aXZlLFxyXG59IGZyb20gJy4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IFRhYmxlV3JhcHBlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy90YWJsZS13cmFwcGVyLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEdyb3VwQnlMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dyb3VwLWJ5LWxpc3QvZ3JvdXAtYnktbGlzdC5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRlcmlhbE1vZHVsZSxcclxuICAgIFN0b3JlTW9kdWxlLmZvckZlYXR1cmUoJ2dsb2JhbFN0b3JhZ2VTdGF0ZScsIHN0b3JhZ2VTdGF0ZVJlZHVjZXIpLFxyXG4gICAgRWZmZWN0c01vZHVsZS5mb3JGZWF0dXJlKFtTYXZlVGFibGVFZmZlY3RzXSksXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIExldE1vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgVXRpbGl0aWVzTW9kdWxlLFxyXG4gIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgR2VuZXJpY1RhYmxlQ29tcG9uZW50LFxyXG4gICAgICAgIFBhZ2luYXRvckNvbXBvbmVudCxcclxuICAgICAgICBUYWJsZUNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgICAgICBDdXN0b21DZWxsRGlyZWN0aXZlLFxyXG4gICAgICAgIEdlbkNvbERpc3BsYXllckNvbXBvbmVudCxcclxuICAgICAgICBHZW5GaWx0ZXJEaXNwbGF5ZXJDb21wb25lbnQsXHJcbiAgICAgICAgRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgICAgIE11bHRpU29ydERpcmVjdGl2ZSxcclxuICAgICAgICBSZXNpemVDb2x1bW5EaXJlY3RpdmUsXHJcbiAgICAgICAgTWF0U2xpZGVUb2dnbGVUYkZpbHRlckRpcmVjdGl2ZSxcclxuICAgICAgICBNYXRSYWRpb0J1dHRvblRiRmlsdGVyRGlyZWN0aXZlLFxyXG4gICAgICAgIE1hdE9wdGlvblRiRmlsdGVyRGlyZWN0aXZlLFxyXG4gICAgICAgIE1hdENoZWNrYm94VGJGaWx0ZXJEaXJlY3RpdmUsXHJcbiAgICAgICAgTWF0QnV0dG9uVG9nZ2xlRmlsdGVyRGlyZWN0aXZlLFxyXG4gICAgICAgIFRhYmxlRmlsdGVyRGlyZWN0aXZlLFxyXG4gICAgICAgIFRhYmxlRmlsdGVyU3RyaW5nQ29udGFpbnNEaXJlY3RpdmUsXHJcbiAgICAgICAgVGFibGVXcmFwcGVyRGlyZWN0aXZlLFxyXG4gICAgICAgIEdyb3VwQnlMaXN0Q29tcG9uZW50LFxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIENvbHVtblRvdGFsUGlwZSxcclxuICAgICAgICBUYWJsZUNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgICAgICBHZW5lcmljVGFibGVDb21wb25lbnQsXHJcbiAgICAgICAgUGFnaW5hdG9yQ29tcG9uZW50LFxyXG4gICAgICAgIEN1c3RvbUNlbGxEaXJlY3RpdmUsXHJcbiAgICAgICAgR2VuQ29sRGlzcGxheWVyQ29tcG9uZW50LFxyXG4gICAgICAgIEdlbkZpbHRlckRpc3BsYXllckNvbXBvbmVudCxcclxuICAgICAgICBEYXRlRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgICAgIEZpbHRlckNvbXBvbmVudCxcclxuICAgICAgICBNdWx0aVNvcnREaXJlY3RpdmUsXHJcbiAgICAgICAgTnVtYmVyRmlsdGVyQ29tcG9uZW50LFxyXG4gICAgICAgIENvbHVtbkJ1aWxkZXJDb21wb25lbnQsXHJcbiAgICAgICAgQXJyYXlDb2x1bW5Db21wb25lbnQsXHJcbiAgICAgICAgTGlua0NvbHVtbkNvbXBvbmVudCxcclxuICAgICAgICBIZWFkZXJNZW51Q29tcG9uZW50LFxyXG4gICAgICAgIEtleURpc3BsYXlQaXBlLFxyXG4gICAgICAgIEZvcm1hdEZpbHRlclZhbHVlUGlwZSxcclxuICAgICAgICBGb3JtYXRGaWx0ZXJUeXBlUGlwZSxcclxuICAgICAgICBSZXNpemVDb2x1bW5EaXJlY3RpdmUsXHJcbiAgICAgICAgSW5GaWx0ZXJDb21wb25lbnQsXHJcbiAgICAgICAgSW5pdGlhbGl6YXRpb25Db21wb25lbnQsXHJcbiAgICAgICAgSW5MaXN0RmlsdGVyQ29tcG9uZW50LFxyXG4gICAgICAgIFNvcnRNZW51Q29tcG9uZW50LFxyXG4gICAgICAgIEZpbHRlckNoaXBzQ29tcG9uZW50LFxyXG4gICAgICAgIE1hdFNsaWRlVG9nZ2xlVGJGaWx0ZXJEaXJlY3RpdmUsXHJcbiAgICAgICAgTWF0UmFkaW9CdXR0b25UYkZpbHRlckRpcmVjdGl2ZSxcclxuICAgICAgICBNYXRPcHRpb25UYkZpbHRlckRpcmVjdGl2ZSxcclxuICAgICAgICBNYXRDaGVja2JveFRiRmlsdGVyRGlyZWN0aXZlLFxyXG4gICAgICAgIE1hdEJ1dHRvblRvZ2dsZUZpbHRlckRpcmVjdGl2ZSxcclxuICAgICAgICBUYWJsZUZpbHRlckRpcmVjdGl2ZSxcclxuICAgICAgICBUYWJsZUZpbHRlclN0cmluZ0NvbnRhaW5zRGlyZWN0aXZlLFxyXG4gICAgICAgIFRhYmxlV3JhcHBlckRpcmVjdGl2ZSxcclxuICAgICAgICBHcm91cEJ5TGlzdENvbXBvbmVudCxcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnMgOiBbXHJcbiAgICAgIFNwYWNlQ2FzZVBpcGUsXHJcbiAgICAgIERhdGVQaXBlLFxyXG4gICAgICBDdXJyZW5jeVBpcGUsXHJcbiAgICAgIFBob25lTnVtYmVyUGlwZVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVCdWlsZGVyTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChjb25maWc6IFRhYmxlQnVpbGRlckNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VGFibGVCdWlsZGVyTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogVGFibGVCdWlsZGVyTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBNdWx0aVNvcnREaXJlY3RpdmUsXHJcbiAgICAgICAgeyBwcm92aWRlIDogVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4gLCB1c2VWYWx1ZTogY29uZmlnfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=