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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/action-state/action-state-spinner/action-state-spinner.component.d.ts +12 -0
  2. package/action-state/action-state-ui/action-state-ui.module.d.ts +7 -0
  3. package/{src/action-state/index.ts → action-state/index.d.ts} +4 -8
  4. package/action-state/ngrx-ext/ngrx-ext.module.d.ts +8 -0
  5. package/action-state/ngrx.d.ts +31 -0
  6. package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +24 -0
  7. package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +20 -0
  8. package/esm2022/action-state/index.mjs +8 -0
  9. package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +23 -0
  10. package/esm2022/action-state/ngrx.mjs +42 -0
  11. package/esm2022/http-request-state/HttpRequestStateFactory.mjs +27 -0
  12. package/esm2022/http-request-state/HttpRequestStateStore.mjs +98 -0
  13. package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +34 -0
  14. package/esm2022/http-request-state/directives/http-error-state-directive.mjs +29 -0
  15. package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +29 -0
  16. package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +29 -0
  17. package/esm2022/http-request-state/directives/http-success-state-directive.mjs +34 -0
  18. package/esm2022/http-request-state/directives/index.mjs +6 -0
  19. package/esm2022/http-request-state/directives/request-state-directive.mjs +60 -0
  20. package/esm2022/http-request-state/helpers.mjs +22 -0
  21. package/esm2022/http-request-state/http-request-state.mjs +39 -0
  22. package/esm2022/http-request-state/http-state-module.mjs +40 -0
  23. package/esm2022/http-request-state/index.mjs +7 -0
  24. package/esm2022/http-request-state/rxjs/getRequestorBody.mjs +4 -0
  25. package/esm2022/http-request-state/rxjs/getRequestorState.mjs +3 -0
  26. package/esm2022/http-request-state/rxjs/index.mjs +5 -0
  27. package/esm2022/http-request-state/rxjs/tapError.mjs +12 -0
  28. package/esm2022/http-request-state/rxjs/tapSuccess.mjs +12 -0
  29. package/esm2022/http-request-state/types.mjs +16 -0
  30. package/esm2022/ngrx/actionable-selector.mjs +73 -0
  31. package/esm2022/ngrx/index.mjs +2 -0
  32. package/esm2022/one-paragon-angular-utilities.mjs +5 -0
  33. package/esm2022/public-api.mjs +20 -0
  34. package/esm2022/rxjs/defaultShareReplay.mjs +7 -0
  35. package/esm2022/rxjs/index.mjs +5 -0
  36. package/esm2022/rxjs/mapError.mjs +8 -0
  37. package/esm2022/rxjs/rxjs-operators.mjs +92 -0
  38. package/esm2022/rxjs/subjectifier.mjs +15 -0
  39. package/esm2022/table-builder/classes/DefaultSettings.mjs +6 -0
  40. package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +21 -0
  41. package/esm2022/table-builder/classes/TableBuilderConfig.mjs +18 -0
  42. package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +49 -0
  43. package/esm2022/table-builder/classes/TableState.mjs +44 -0
  44. package/esm2022/table-builder/classes/display-col.mjs +2 -0
  45. package/esm2022/table-builder/classes/filter-info.mjs +73 -0
  46. package/esm2022/table-builder/classes/table-builder-general-settings.mjs +86 -0
  47. package/esm2022/table-builder/classes/table-builder.mjs +41 -0
  48. package/esm2022/table-builder/classes/table-store.mjs +320 -0
  49. package/esm2022/table-builder/components/array-column.component.mjs +57 -0
  50. package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +106 -0
  51. package/esm2022/table-builder/components/column-builder/column-helpers.mjs +26 -0
  52. package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +29 -0
  53. package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +24 -0
  54. package/esm2022/table-builder/components/filter/filter.component.mjs +67 -0
  55. package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +101 -0
  56. package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +52 -0
  57. package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +192 -0
  58. package/esm2022/table-builder/components/generic-table/paginator.component.mjs +80 -0
  59. package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +23 -0
  60. package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +100 -0
  61. package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +64 -0
  62. package/esm2022/table-builder/components/index.mjs +10 -0
  63. package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +40 -0
  64. package/esm2022/table-builder/components/link-column.component.mjs +78 -0
  65. package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +29 -0
  66. package/esm2022/table-builder/components/scroll-strategy.mjs +63 -0
  67. package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +43 -0
  68. package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +81 -0
  69. package/esm2022/table-builder/components/table-container/table-container-imports.mjs +26 -0
  70. package/esm2022/table-builder/components/table-container/table-container.helpers/data-state.helpers.mjs +135 -0
  71. package/esm2022/table-builder/components/table-container/table-container.helpers/filter-state.helpers.mjs +83 -0
  72. package/esm2022/table-builder/components/table-container/table-container.helpers/groupBy.helpers.mjs +56 -0
  73. package/esm2022/table-builder/components/table-container/table-container.helpers/sort-state.helpers.mjs +36 -0
  74. package/esm2022/table-builder/components/table-container/table-container.mjs +291 -0
  75. package/esm2022/table-builder/components/table-container/tableProps.mjs +7 -0
  76. package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +105 -0
  77. package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +47 -0
  78. package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +36 -0
  79. package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +25 -0
  80. package/esm2022/table-builder/directives/custom-cell-directive.mjs +60 -0
  81. package/esm2022/table-builder/directives/index.mjs +6 -0
  82. package/esm2022/table-builder/directives/multi-sort.directive.mjs +50 -0
  83. package/esm2022/table-builder/directives/resize-column.directive.mjs +88 -0
  84. package/esm2022/table-builder/directives/table-wrapper.directive.mjs +20 -0
  85. package/esm2022/table-builder/directives/tb-filter.directive.mjs +410 -0
  86. package/esm2022/table-builder/enums/filterTypes.mjs +72 -0
  87. package/esm2022/table-builder/functions/boolean-filter-function.mjs +10 -0
  88. package/esm2022/table-builder/functions/date-filter-function.mjs +58 -0
  89. package/esm2022/table-builder/functions/download-data.mjs +12 -0
  90. package/esm2022/table-builder/functions/null-filter-function.mjs +8 -0
  91. package/esm2022/table-builder/functions/number-filter-function.mjs +32 -0
  92. package/esm2022/table-builder/functions/sort-data-function.mjs +17 -0
  93. package/esm2022/table-builder/functions/string-filter-function.mjs +41 -0
  94. package/esm2022/table-builder/interfaces/ColumnInfo.mjs +2 -0
  95. package/esm2022/table-builder/interfaces/dictionary.mjs +2 -0
  96. package/esm2022/table-builder/interfaces/report-def.mjs +45 -0
  97. package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +115 -0
  98. package/esm2022/table-builder/pipes/column-total.pipe.mjs +22 -0
  99. package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +18 -0
  100. package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +45 -0
  101. package/esm2022/table-builder/pipes/key-display.mjs +20 -0
  102. package/esm2022/table-builder/services/export-to-csv.service.mjs +88 -0
  103. package/esm2022/table-builder/services/link-creator.service.mjs +51 -0
  104. package/esm2022/table-builder/services/table-template-service.mjs +55 -0
  105. package/esm2022/table-builder/services/transform-creator.mjs +100 -0
  106. package/esm2022/table-builder/table-builder.module.mjs +124 -0
  107. package/esm2022/utilities/array-helpers.mjs +14 -0
  108. package/esm2022/utilities/directives/auto-focus.directive.mjs +27 -0
  109. package/esm2022/utilities/directives/clickEmitterDirective.mjs +22 -0
  110. package/esm2022/utilities/directives/clickSubject.mjs +28 -0
  111. package/esm2022/utilities/directives/conditional-classes.directive.mjs +36 -0
  112. package/esm2022/utilities/directives/dialog-service.mjs +23 -0
  113. package/esm2022/utilities/directives/dialog.mjs +139 -0
  114. package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +60 -0
  115. package/esm2022/utilities/directives/prevent-enter.directive.mjs +20 -0
  116. package/esm2022/utilities/directives/stop-propagation.directive.mjs +26 -0
  117. package/esm2022/utilities/directives/styler.mjs +42 -0
  118. package/esm2022/utilities/directives/trim-whitespace.directive.mjs +30 -0
  119. package/esm2022/utilities/index.mjs +16 -0
  120. package/esm2022/utilities/module.mjs +90 -0
  121. package/esm2022/utilities/pipes/function.pipe.mjs +22 -0
  122. package/esm2022/utilities/pipes/phone.pipe.mjs +20 -0
  123. package/esm2022/utilities/pipes/space-case.pipes.mjs +28 -0
  124. package/fesm2022/one-paragon-angular-utilities.mjs +5180 -0
  125. package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -0
  126. package/http-request-state/HttpRequestStateFactory.d.ts +15 -0
  127. package/http-request-state/HttpRequestStateStore.d.ts +49 -0
  128. package/http-request-state/directives/HttpStateDirectiveBase.d.ts +16 -0
  129. package/http-request-state/directives/http-error-state-directive.d.ts +12 -0
  130. package/http-request-state/directives/http-inProgress-state-directive.d.ts +12 -0
  131. package/http-request-state/directives/http-notStarted-state-directive.d.ts +12 -0
  132. package/http-request-state/directives/http-success-state-directive.d.ts +21 -0
  133. package/http-request-state/directives/request-state-directive.d.ts +35 -0
  134. package/http-request-state/helpers.d.ts +9 -0
  135. package/http-request-state/http-request-state.d.ts +12 -0
  136. package/http-request-state/http-state-module.d.ts +11 -0
  137. package/{src/http-request-state/index.ts → http-request-state/index.d.ts} +1 -1
  138. package/http-request-state/rxjs/getRequestorBody.d.ts +3 -0
  139. package/http-request-state/rxjs/getRequestorState.d.ts +3 -0
  140. package/http-request-state/rxjs/tapError.d.ts +3 -0
  141. package/http-request-state/rxjs/tapSuccess.d.ts +3 -0
  142. package/http-request-state/types.d.ts +36 -0
  143. package/index.d.ts +5 -0
  144. package/ngrx/actionable-selector.d.ts +17 -0
  145. package/ngrx/index.d.ts +1 -0
  146. package/package.json +30 -16
  147. package/{src/public-api.ts → public-api.d.ts} +16 -35
  148. package/rxjs/defaultShareReplay.d.ts +2 -0
  149. package/{src/rxjs/index.ts → rxjs/index.d.ts} +4 -4
  150. package/rxjs/mapError.d.ts +2 -0
  151. package/rxjs/rxjs-operators.d.ts +13 -0
  152. package/rxjs/subjectifier.d.ts +9 -0
  153. package/table-builder/classes/DefaultSettings.d.ts +9 -0
  154. package/table-builder/classes/MatTableObservableDataSource.d.ts +9 -0
  155. package/table-builder/classes/TableBuilderConfig.d.ts +21 -0
  156. package/table-builder/classes/TableBuilderDataSource.d.ts +11 -0
  157. package/table-builder/classes/TableState.d.ts +52 -0
  158. package/table-builder/classes/filter-info.d.ts +127 -0
  159. package/table-builder/classes/table-builder-general-settings.d.ts +55 -0
  160. package/table-builder/classes/table-builder.d.ts +12 -0
  161. package/table-builder/classes/table-store.d.ts +127 -0
  162. package/table-builder/components/array-column.component.d.ts +15 -0
  163. package/table-builder/components/column-builder/column-builder.component.d.ts +47 -0
  164. package/table-builder/components/column-builder/column-helpers.d.ts +28 -0
  165. package/table-builder/components/date-filter/date-filter.component.d.ts +10 -0
  166. package/table-builder/components/date-time-filter/date-time-filter.component.d.ts +10 -0
  167. package/table-builder/components/filter/filter.component.d.ts +112 -0
  168. package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +27 -0
  169. package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +16 -0
  170. package/table-builder/components/generic-table/generic-table.component.d.ts +62 -0
  171. package/table-builder/components/generic-table/paginator.component.d.ts +26 -0
  172. package/table-builder/components/group-by-list/group-by-list.component.d.ts +7 -0
  173. package/table-builder/components/header-menu/header-menu.component.d.ts +25 -0
  174. package/table-builder/components/in-filter/in-filter.component.d.ts +21 -0
  175. package/{src/table-builder/components/index.ts → table-builder/components/index.d.ts} +9 -9
  176. package/table-builder/components/initialization-component/initialization-component.d.ts +13 -0
  177. package/table-builder/components/link-column.component.d.ts +25 -0
  178. package/table-builder/components/number-filter/number-filter.component.d.ts +12 -0
  179. package/table-builder/components/scroll-strategy.d.ts +23 -0
  180. package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +24 -0
  181. package/table-builder/components/sort-menu/sort-menu.component.d.ts +25 -0
  182. package/{src/table-builder/components/table-container/table-container-imports.ts → table-builder/components/table-container/table-container-imports.d.ts} +14 -30
  183. package/table-builder/components/table-container/table-container.d.ts +70 -0
  184. package/table-builder/components/table-container/table-container.helpers/data-state.helpers.d.ts +6 -0
  185. package/table-builder/components/table-container/table-container.helpers/filter-state.helpers.d.ts +17 -0
  186. package/table-builder/components/table-container/table-container.helpers/groupBy.helpers.d.ts +15 -0
  187. package/table-builder/components/table-container/table-container.helpers/sort-state.helpers.d.ts +8 -0
  188. package/table-builder/components/table-container/tableProps.d.ts +11 -0
  189. package/table-builder/components/table-container/virtual-scroll-container.d.ts +19 -0
  190. package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +16 -0
  191. package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +14 -0
  192. package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +14 -0
  193. package/table-builder/directives/custom-cell-directive.d.ts +19 -0
  194. package/{src/table-builder/directives/index.ts → table-builder/directives/index.d.ts} +5 -6
  195. package/table-builder/directives/multi-sort.directive.d.ts +11 -0
  196. package/table-builder/directives/resize-column.directive.d.ts +44 -0
  197. package/table-builder/directives/table-wrapper.directive.d.ts +8 -0
  198. package/table-builder/directives/tb-filter.directive.d.ts +120 -0
  199. package/table-builder/enums/filterTypes.d.ts +77 -0
  200. package/table-builder/functions/boolean-filter-function.d.ts +3 -0
  201. package/table-builder/functions/date-filter-function.d.ts +4 -0
  202. package/table-builder/functions/download-data.d.ts +1 -0
  203. package/table-builder/functions/null-filter-function.d.ts +2 -0
  204. package/table-builder/functions/number-filter-function.d.ts +4 -0
  205. package/table-builder/functions/sort-data-function.d.ts +6 -0
  206. package/table-builder/functions/string-filter-function.d.ts +7 -0
  207. package/{src/table-builder/interfaces/ColumnInfo.ts → table-builder/interfaces/ColumnInfo.d.ts} +2 -3
  208. package/{src/table-builder/interfaces/dictionary.ts → table-builder/interfaces/dictionary.d.ts} +3 -3
  209. package/table-builder/interfaces/report-def.d.ts +148 -0
  210. package/table-builder/ngrx/tableBuilderStateStore.d.ts +62 -0
  211. package/table-builder/pipes/column-total.pipe.d.ts +8 -0
  212. package/table-builder/pipes/format-filter-type.pipe.d.ts +8 -0
  213. package/table-builder/pipes/format-filter-value.pipe.d.ts +14 -0
  214. package/table-builder/pipes/key-display.d.ts +11 -0
  215. package/table-builder/services/export-to-csv.service.d.ts +22 -0
  216. package/table-builder/services/link-creator.service.d.ts +16 -0
  217. package/table-builder/services/table-template-service.d.ts +15 -0
  218. package/table-builder/services/transform-creator.d.ts +21 -0
  219. package/table-builder/table-builder.module.d.ts +21 -0
  220. package/utilities/array-helpers.d.ts +1 -0
  221. package/utilities/directives/auto-focus.directive.d.ts +10 -0
  222. package/utilities/directives/clickEmitterDirective.d.ts +7 -0
  223. package/utilities/directives/clickSubject.d.ts +9 -0
  224. package/utilities/directives/conditional-classes.directive.d.ts +14 -0
  225. package/utilities/directives/dialog-service.d.ts +10 -0
  226. package/utilities/directives/dialog.d.ts +46 -0
  227. package/utilities/directives/mat-toggle-group-directive.d.ts +21 -0
  228. package/utilities/directives/prevent-enter.directive.d.ts +6 -0
  229. package/utilities/directives/stop-propagation.directive.d.ts +7 -0
  230. package/utilities/directives/styler.d.ts +17 -0
  231. package/utilities/directives/trim-whitespace.directive.d.ts +9 -0
  232. package/{src/utilities/index.ts → utilities/index.d.ts} +15 -22
  233. package/utilities/module.d.ts +19 -0
  234. package/utilities/pipes/function.pipe.d.ts +7 -0
  235. package/utilities/pipes/phone.pipe.d.ts +7 -0
  236. package/utilities/pipes/space-case.pipes.d.ts +17 -0
  237. package/karma.conf.js +0 -44
  238. package/ng-package.json +0 -7
  239. package/src/action-state/action-state-spinner/action-state-spinner.component.css +0 -16
  240. package/src/action-state/action-state-spinner/action-state-spinner.component.html +0 -6
  241. package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +0 -25
  242. package/src/action-state/action-state-spinner/action-state-spinner.component.ts +0 -26
  243. package/src/action-state/action-state-ui/action-state-ui.module.ts +0 -13
  244. package/src/action-state/ngrx-ext/ngrx-ext.module.ts +0 -15
  245. package/src/action-state/ngrx.ts +0 -69
  246. package/src/http-request-state/HttpRequestStateFactory.ts +0 -29
  247. package/src/http-request-state/HttpRequestStateStore.ts +0 -147
  248. package/src/http-request-state/directives/HttpStateDirectiveBase.ts +0 -38
  249. package/src/http-request-state/directives/http-error-state-directive.ts +0 -32
  250. package/src/http-request-state/directives/http-inProgress-state-directive.ts +0 -32
  251. package/src/http-request-state/directives/http-notStarted-state-directive.ts +0 -31
  252. package/src/http-request-state/directives/http-success-state-directive.ts +0 -40
  253. package/src/http-request-state/directives/request-state-directive.spec.ts +0 -72
  254. package/src/http-request-state/directives/request-state-directive.ts +0 -79
  255. package/src/http-request-state/helpers.ts +0 -30
  256. package/src/http-request-state/http-request-state.ts +0 -69
  257. package/src/http-request-state/http-state-module.ts +0 -23
  258. package/src/http-request-state/observable.spec.ts +0 -43
  259. package/src/http-request-state/rxjs/getRequestorBody.ts +0 -10
  260. package/src/http-request-state/rxjs/getRequestorState.ts +0 -8
  261. package/src/http-request-state/rxjs/tapError.ts +0 -16
  262. package/src/http-request-state/rxjs/tapSuccess.ts +0 -16
  263. package/src/http-request-state/strategies.spec.ts +0 -42
  264. package/src/http-request-state/types.ts +0 -50
  265. package/src/ngrx/actionable-selector.ts +0 -95
  266. package/src/ngrx/index.ts +0 -1
  267. package/src/rxjs/defaultShareReplay.ts +0 -8
  268. package/src/rxjs/mapError.ts +0 -8
  269. package/src/rxjs/rxjs-operators.ts +0 -132
  270. package/src/rxjs/subjectifier.ts +0 -15
  271. package/src/specs/clickSubject.spec.ts +0 -95
  272. package/src/specs/dialog.spec.ts +0 -101
  273. package/src/specs/toggleGroupDirective.spec.ts +0 -229
  274. package/src/table-builder/classes/DefaultSettings.ts +0 -11
  275. package/src/table-builder/classes/MatTableObservableDataSource.ts +0 -23
  276. package/src/table-builder/classes/TableBuilderConfig.ts +0 -35
  277. package/src/table-builder/classes/TableBuilderDataSource.ts +0 -57
  278. package/src/table-builder/classes/TableState.ts +0 -83
  279. package/src/table-builder/classes/filter-info.ts +0 -131
  280. package/src/table-builder/classes/table-builder-general-settings.ts +0 -90
  281. package/src/table-builder/classes/table-builder.ts +0 -52
  282. package/src/table-builder/classes/table-store.ts +0 -394
  283. package/src/table-builder/components/array-column.component.ts +0 -36
  284. package/src/table-builder/components/column-builder/column-builder.component.html +0 -58
  285. package/src/table-builder/components/column-builder/column-builder.component.scss +0 -43
  286. package/src/table-builder/components/column-builder/column-builder.component.spec.ts +0 -49
  287. package/src/table-builder/components/column-builder/column-builder.component.ts +0 -117
  288. package/src/table-builder/components/column-builder/column-helpers.ts +0 -38
  289. package/src/table-builder/components/date-filter/date-filter.component.html +0 -23
  290. package/src/table-builder/components/date-filter/date-filter.component.ts +0 -24
  291. package/src/table-builder/components/date-time-filter/date-time-filter.component.html +0 -9
  292. package/src/table-builder/components/date-time-filter/date-time-filter.component.ts +0 -22
  293. package/src/table-builder/components/filter/filter.component.html +0 -88
  294. package/src/table-builder/components/filter/filter.component.scss +0 -64
  295. package/src/table-builder/components/filter/filter.component.spec.ts +0 -87
  296. package/src/table-builder/components/filter/filter.component.ts +0 -55
  297. package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +0 -92
  298. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +0 -55
  299. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +0 -57
  300. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +0 -55
  301. package/src/table-builder/components/generic-table/generic-table.component.html +0 -71
  302. package/src/table-builder/components/generic-table/generic-table.component.scss +0 -51
  303. package/src/table-builder/components/generic-table/generic-table.component.ts +0 -220
  304. package/src/table-builder/components/generic-table/paginator.component.ts +0 -94
  305. package/src/table-builder/components/group-by-list/group-by-list.component.css +0 -8
  306. package/src/table-builder/components/group-by-list/group-by-list.component.html +0 -12
  307. package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +0 -23
  308. package/src/table-builder/components/group-by-list/group-by-list.component.ts +0 -21
  309. package/src/table-builder/components/header-menu/header-menu.component.html +0 -98
  310. package/src/table-builder/components/header-menu/header-menu.component.scss +0 -96
  311. package/src/table-builder/components/header-menu/header-menu.component.ts +0 -98
  312. package/src/table-builder/components/in-filter/in-filter.component.css +0 -3
  313. package/src/table-builder/components/in-filter/in-filter.component.html +0 -20
  314. package/src/table-builder/components/in-filter/in-filter.component.ts +0 -64
  315. package/src/table-builder/components/initialization-component/initialization-component.html +0 -29
  316. package/src/table-builder/components/initialization-component/initialization-component.ts +0 -24
  317. package/src/table-builder/components/link-column.component.ts +0 -47
  318. package/src/table-builder/components/number-filter/number-filter.component.css +0 -10
  319. package/src/table-builder/components/number-filter/number-filter.component.html +0 -19
  320. package/src/table-builder/components/number-filter/number-filter.component.spec.ts +0 -30
  321. package/src/table-builder/components/number-filter/number-filter.component.ts +0 -25
  322. package/src/table-builder/components/scroll-strategy.ts +0 -82
  323. package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +0 -62
  324. package/src/table-builder/components/sort-menu/sort-menu.component.html +0 -111
  325. package/src/table-builder/components/sort-menu/sort-menu.component.scss +0 -119
  326. package/src/table-builder/components/sort-menu/sort-menu.component.ts +0 -95
  327. package/src/table-builder/components/table-container/table-container.css +0 -45
  328. package/src/table-builder/components/table-container/table-container.helpers/data-state.helpers.ts +0 -141
  329. package/src/table-builder/components/table-container/table-container.helpers/filter-state.helpers.ts +0 -106
  330. package/src/table-builder/components/table-container/table-container.helpers/groupBy.helpers.ts +0 -69
  331. package/src/table-builder/components/table-container/table-container.helpers/sort-state.helpers.ts +0 -45
  332. package/src/table-builder/components/table-container/table-container.html +0 -117
  333. package/src/table-builder/components/table-container/table-container.spec.ts +0 -154
  334. package/src/table-builder/components/table-container/table-container.ts +0 -325
  335. package/src/table-builder/components/table-container/tableProps.ts +0 -18
  336. package/src/table-builder/components/table-container/virtual-scroll-container.ts +0 -126
  337. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +0 -31
  338. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +0 -52
  339. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +0 -42
  340. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +0 -10
  341. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +0 -86
  342. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +0 -38
  343. package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +0 -23
  344. package/src/table-builder/directives/custom-cell-directive.ts +0 -46
  345. package/src/table-builder/directives/multi-sort.directive.spec.ts +0 -124
  346. package/src/table-builder/directives/multi-sort.directive.ts +0 -49
  347. package/src/table-builder/directives/resize-column.directive.ts +0 -105
  348. package/src/table-builder/directives/table-wrapper.directive.ts +0 -14
  349. package/src/table-builder/directives/tb-filter.directive.ts +0 -370
  350. package/src/table-builder/enums/filterTypes.ts +0 -79
  351. package/src/table-builder/functions/boolean-filter-function.ts +0 -13
  352. package/src/table-builder/functions/date-filter-function.ts +0 -69
  353. package/src/table-builder/functions/download-data.ts +0 -11
  354. package/src/table-builder/functions/null-filter-function.ts +0 -9
  355. package/src/table-builder/functions/number-filter-function.ts +0 -42
  356. package/src/table-builder/functions/sort-data-function.ts +0 -23
  357. package/src/table-builder/functions/string-filter-function.ts +0 -52
  358. package/src/table-builder/interfaces/column-template.ts +0 -9
  359. package/src/table-builder/interfaces/report-def.ts +0 -153
  360. package/src/table-builder/ngrx/tableBuilderStateStore.ts +0 -143
  361. package/src/table-builder/pipes/column-total.pipe.ts +0 -17
  362. package/src/table-builder/pipes/format-filter-type.pipe.ts +0 -12
  363. package/src/table-builder/pipes/format-filter-value.pipe.ts +0 -41
  364. package/src/table-builder/pipes/key-display.ts +0 -16
  365. package/src/table-builder/services/export-to-csv.service.ts +0 -96
  366. package/src/table-builder/services/link-creator.service.ts +0 -68
  367. package/src/table-builder/services/table-template-service.ts +0 -55
  368. package/src/table-builder/services/transform-creator.ts +0 -92
  369. package/src/table-builder/specs/table-custom-filters.spec.ts +0 -262
  370. package/src/table-builder/styles/collapser.styles.scss +0 -15
  371. package/src/table-builder/table-builder.module.ts +0 -73
  372. package/src/test.ts +0 -17
  373. package/src/utilities/array-helpers.ts +0 -13
  374. package/src/utilities/directives/auto-focus.directive.ts +0 -20
  375. package/src/utilities/directives/clickEmitterDirective.ts +0 -16
  376. package/src/utilities/directives/clickSubject.ts +0 -20
  377. package/src/utilities/directives/conditional-classes.directive.ts +0 -36
  378. package/src/utilities/directives/dialog-service.ts +0 -19
  379. package/src/utilities/directives/dialog.ts +0 -142
  380. package/src/utilities/directives/mat-toggle-group-directive.ts +0 -61
  381. package/src/utilities/directives/prevent-enter.directive.ts +0 -13
  382. package/src/utilities/directives/stop-propagation.directive.ts +0 -20
  383. package/src/utilities/directives/styler.ts +0 -39
  384. package/src/utilities/directives/trim-whitespace.directive.ts +0 -21
  385. package/src/utilities/module.ts +0 -55
  386. package/src/utilities/pipes/function.pipe.ts +0 -16
  387. package/src/utilities/pipes/phone.pipe.ts +0 -15
  388. package/src/utilities/pipes/space-case.pipes.spec.ts +0 -47
  389. package/src/utilities/pipes/space-case.pipes.ts +0 -23
  390. package/tsconfig.lib.json +0 -19
  391. package/tsconfig.lib.prod.json +0 -10
  392. package/tsconfig.spec.json +0 -17
  393. /package/{src/http-request-state/directives/index.ts → http-request-state/directives/index.d.ts} +0 -0
  394. /package/{src/http-request-state/rxjs/index.ts → http-request-state/rxjs/index.d.ts} +0 -0
  395. /package/{src/table-builder/classes/display-col.ts → table-builder/classes/display-col.d.ts} +0 -0
@@ -0,0 +1,410 @@
1
+ import { Directive, Input, Optional } from "@angular/core";
2
+ import { BehaviorSubject, ReplaySubject, takeUntil, tap } from "rxjs";
3
+ import { v4 as uuid } from 'uuid';
4
+ import { FilterType } from "../enums/filterTypes";
5
+ import { FieldType } from "../interfaces/report-def";
6
+ import { ComponentStore } from "@ngrx/component-store";
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ import * as i2 from "./table-wrapper.directive";
10
+ import * as i3 from "rxjs";
11
+ import * as i4 from "@angular/material/checkbox";
12
+ import * as i5 from "@angular/material/slide-toggle";
13
+ import * as i6 from "@angular/material/radio";
14
+ import * as i7 from "@angular/material/core";
15
+ import * as i8 from "@angular/material/button-toggle";
16
+ const inputs = [
17
+ 'predicate: tbCustomFilter',
18
+ 'filterId: filterId',
19
+ ];
20
+ export class TableCustomFilterDirective {
21
+ constructor() {
22
+ this.savable = false;
23
+ this.used = false;
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableCustomFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
26
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TableCustomFilterDirective, selector: " ", ngImport: i0 }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableCustomFilterDirective, decorators: [{
29
+ type: Directive,
30
+ args: [{
31
+ selector: ' '
32
+ }]
33
+ }] });
34
+ export class TableFilterDirective extends ComponentStore {
35
+ constructor(model, wrapper) {
36
+ super();
37
+ this.model = model;
38
+ this.filter$ = this.state$;
39
+ this.active = true;
40
+ this.filterValue = null;
41
+ this.used = false;
42
+ this.savable = false;
43
+ this.ready = false;
44
+ this._userActive = true;
45
+ if (wrapper) {
46
+ wrapper.register(this);
47
+ }
48
+ if (model) {
49
+ this.effect(() => {
50
+ return model.valueChanges.pipe(tap(val => {
51
+ this.filterValue = val;
52
+ this.update();
53
+ }));
54
+ });
55
+ }
56
+ }
57
+ reset() {
58
+ this.filterValue = undefined;
59
+ }
60
+ setFilterValue(value) {
61
+ if (this.model) {
62
+ setTimeout(() => {
63
+ this.model.reset(value);
64
+ }, 0);
65
+ }
66
+ else {
67
+ this.filterValue = value;
68
+ }
69
+ }
70
+ ngOnChanges(changes) {
71
+ this.update();
72
+ }
73
+ ngOnInit() {
74
+ if (!this.filterId) {
75
+ this.filterId = uuid();
76
+ }
77
+ else {
78
+ this.savable = true;
79
+ }
80
+ this.ready = true;
81
+ this.update();
82
+ }
83
+ setFilter(filter) {
84
+ this.setState(filter);
85
+ }
86
+ update() {
87
+ if (this.ready) {
88
+ this.setFilter({
89
+ filterId: this.filterId,
90
+ key: this.key,
91
+ filterType: this.filterType,
92
+ fieldType: this.fieldType,
93
+ filterValue: this.filterValue,
94
+ active: this.active && this.filterValue !== undefined,
95
+ _isExternallyManaged: true,
96
+ });
97
+ }
98
+ }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableFilterDirective, deps: [{ token: i1.NgControl, optional: true }, { token: i2.TableWrapperDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
100
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TableFilterDirective, isStandalone: true, selector: "[tbFilter]", inputs: { filterType: "filterType", key: "key", fieldType: "fieldType", filterId: "filterId", active: "active", filterValue: "filterValue" }, usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
101
+ }
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableFilterDirective, decorators: [{
103
+ type: Directive,
104
+ args: [{
105
+ selector: "[tbFilter]",
106
+ standalone: true,
107
+ }]
108
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
109
+ type: Optional
110
+ }] }, { type: i2.TableWrapperDirective, decorators: [{
111
+ type: Optional
112
+ }] }], propDecorators: { filterType: [{
113
+ type: Input
114
+ }], key: [{
115
+ type: Input
116
+ }], fieldType: [{
117
+ type: Input
118
+ }], filterId: [{
119
+ type: Input
120
+ }], active: [{
121
+ type: Input
122
+ }], filterValue: [{
123
+ type: Input
124
+ }] } });
125
+ export class TableFilterStringContainsDirective extends TableFilterDirective {
126
+ constructor(model, wrapper) {
127
+ super(model, wrapper);
128
+ this.filterType = FilterType.StringContains;
129
+ this.fieldType = FieldType.String;
130
+ this.effect(() => {
131
+ return model.valueChanges.pipe(tap(val => {
132
+ this.filterValue = val;
133
+ this.update();
134
+ }));
135
+ });
136
+ }
137
+ reset() {
138
+ if (this.model) {
139
+ this.model.reset();
140
+ }
141
+ super.reset();
142
+ }
143
+ setFilter(filter) {
144
+ filter.active = filter.filterValue && this._userActive;
145
+ super.setFilter(filter);
146
+ }
147
+ ngOnChanges(changes) {
148
+ if (changes['active']) {
149
+ this._userActive = changes['active'].currentValue;
150
+ }
151
+ super.ngOnChanges(changes);
152
+ }
153
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableFilterStringContainsDirective, deps: [{ token: i1.NgControl, optional: true }, { token: i2.TableWrapperDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
154
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TableFilterStringContainsDirective, isStandalone: true, selector: "[tbFilterStringContains]", inputs: { key: ["tbFilterStringContains", "key"], filterValue: "filterValue", filterId: "filterId", active: "active" }, providers: [{ provide: TableFilterDirective, useExisting: TableFilterStringContainsDirective }], usesInheritance: true, usesOnChanges: true, ngImport: i0 }); }
155
+ }
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableFilterStringContainsDirective, decorators: [{
157
+ type: Directive,
158
+ args: [{
159
+ selector: '[tbFilterStringContains]',
160
+ providers: [{ provide: TableFilterDirective, useExisting: TableFilterStringContainsDirective }],
161
+ inputs: [
162
+ 'key:tbFilterStringContains',
163
+ 'filterValue:filterValue',
164
+ 'filterId: filterId',
165
+ 'active: active',
166
+ ],
167
+ standalone: true,
168
+ }]
169
+ }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
170
+ type: Optional
171
+ }] }, { type: i2.TableWrapperDirective, decorators: [{
172
+ type: Optional
173
+ }] }] });
174
+ export class TableCustomFilterDirectiveBase extends TableCustomFilterDirective {
175
+ constructor() {
176
+ super(...arguments);
177
+ this._active = false;
178
+ this.ready = false;
179
+ }
180
+ set predicate(val) {
181
+ this._predicate = val;
182
+ this.update({ predicate: val });
183
+ }
184
+ update(val) {
185
+ if (this.ready) {
186
+ this.filter = { ...this.filter, ...val };
187
+ this.filter$.next(this.filter);
188
+ }
189
+ }
190
+ set active(val) {
191
+ if (this._active !== val) {
192
+ this._active = val;
193
+ this.update({ active: val });
194
+ }
195
+ }
196
+ get active() {
197
+ return this._active;
198
+ }
199
+ ngOnInit() {
200
+ if (!this.filterId) {
201
+ this.filterId = uuid();
202
+ }
203
+ else {
204
+ this.savable = true;
205
+ }
206
+ this.filter = {
207
+ filterType: FilterType.Custom,
208
+ filterId: this.filterId,
209
+ active: this._active,
210
+ predicate: this._predicate,
211
+ };
212
+ this.ready = true;
213
+ this.filter$ = new BehaviorSubject(this.filter);
214
+ }
215
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableCustomFilterDirectiveBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
216
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TableCustomFilterDirectiveBase, selector: "[tbCustomFilter]", inputs: { filterId: "filterId", predicate: ["tbCustomFilter", "predicate"], active: "active" }, usesInheritance: true, ngImport: i0 }); }
217
+ }
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TableCustomFilterDirectiveBase, decorators: [{
219
+ type: Directive,
220
+ args: [{
221
+ selector: "[tbCustomFilter]",
222
+ }]
223
+ }], propDecorators: { filterId: [{
224
+ type: Input
225
+ }], predicate: [{
226
+ type: Input,
227
+ args: ['tbCustomFilter']
228
+ }], active: [{
229
+ type: Input
230
+ }] } });
231
+ export class TbSelectedFilterDirective extends TableCustomFilterDirectiveBase {
232
+ constructor(change, isActive, wrapper) {
233
+ super();
234
+ this.change = change;
235
+ this.isActive = isActive;
236
+ this.destroySubject$ = new ReplaySubject(1);
237
+ if (wrapper) {
238
+ wrapper.register(this);
239
+ }
240
+ }
241
+ reset() {
242
+ this.active = false;
243
+ }
244
+ ngOnDestroy() {
245
+ this.destroySubject$.next();
246
+ }
247
+ ngOnInit() {
248
+ this._active = this.isActive();
249
+ super.ngOnInit();
250
+ this.change.pipe(takeUntil(this.destroySubject$)).subscribe(() => {
251
+ this.active = this.isActive();
252
+ });
253
+ }
254
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TbSelectedFilterDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
255
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: TbSelectedFilterDirective, usesInheritance: true, ngImport: i0 }); }
256
+ }
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TbSelectedFilterDirective, decorators: [{
258
+ type: Directive
259
+ }], ctorParameters: () => [{ type: i3.Observable }, { type: undefined }, { type: i2.TableWrapperDirective, decorators: [{
260
+ type: Optional
261
+ }] }] });
262
+ // Checkbox
263
+ export class MatCheckboxTbFilterDirective extends TbSelectedFilterDirective {
264
+ set active(val) {
265
+ this.matCheckbox.checked = val;
266
+ super.active = val;
267
+ }
268
+ constructor(matCheckbox, wrapper) {
269
+ super(matCheckbox.change, () => matCheckbox.checked, wrapper);
270
+ this.matCheckbox = matCheckbox;
271
+ }
272
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MatCheckboxTbFilterDirective, deps: [{ token: i4.MatCheckbox }, { token: i2.TableWrapperDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
273
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: MatCheckboxTbFilterDirective, isStandalone: true, selector: "mat-checkbox[tbCustomFilter]", inputs: { predicate: ["tbCustomFilter", "predicate"], filterId: "filterId" }, providers: [{ provide: TableCustomFilterDirective, useExisting: MatCheckboxTbFilterDirective }], usesInheritance: true, ngImport: i0 }); }
274
+ }
275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MatCheckboxTbFilterDirective, decorators: [{
276
+ type: Directive,
277
+ args: [{
278
+ selector: 'mat-checkbox[tbCustomFilter]',
279
+ inputs: [
280
+ ...inputs
281
+ ],
282
+ providers: [{ provide: TableCustomFilterDirective, useExisting: MatCheckboxTbFilterDirective }],
283
+ standalone: true,
284
+ }]
285
+ }], ctorParameters: () => [{ type: i4.MatCheckbox }, { type: i2.TableWrapperDirective, decorators: [{
286
+ type: Optional
287
+ }] }] });
288
+ export class MatSlideToggleTbFilterDirective extends TbSelectedFilterDirective {
289
+ set active(val) {
290
+ this.matSlideToggle.checked = val;
291
+ super.active = val;
292
+ }
293
+ constructor(matSlideToggle, wrapper) {
294
+ super(matSlideToggle.change, () => matSlideToggle.checked, wrapper);
295
+ this.matSlideToggle = matSlideToggle;
296
+ }
297
+ ngOnInit() {
298
+ super.ngOnInit();
299
+ }
300
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MatSlideToggleTbFilterDirective, deps: [{ token: i5.MatSlideToggle }, { token: i2.TableWrapperDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
301
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: MatSlideToggleTbFilterDirective, isStandalone: true, selector: "mat-slide-toggle[tbCustomFilter]", inputs: { predicate: ["tbCustomFilter", "predicate"], filterId: "filterId" }, providers: [{ provide: TableCustomFilterDirective, useExisting: MatSlideToggleTbFilterDirective }], usesInheritance: true, ngImport: i0 }); }
302
+ }
303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MatSlideToggleTbFilterDirective, decorators: [{
304
+ type: Directive,
305
+ args: [{
306
+ selector: 'mat-slide-toggle[tbCustomFilter]',
307
+ inputs: [
308
+ ...inputs
309
+ ],
310
+ providers: [{ provide: TableCustomFilterDirective, useExisting: MatSlideToggleTbFilterDirective }],
311
+ standalone: true,
312
+ }]
313
+ }], ctorParameters: () => [{ type: i5.MatSlideToggle }, { type: i2.TableWrapperDirective, decorators: [{
314
+ type: Optional
315
+ }] }] });
316
+ // Radio button
317
+ export class MatRadioButtonTbFilterDirective extends TbSelectedFilterDirective {
318
+ set active(val) {
319
+ this.matRadioButton.checked = val;
320
+ super.active = val;
321
+ }
322
+ constructor(matRadioButton, wrapper) {
323
+ super(matRadioButton.change, () => matRadioButton.checked, wrapper);
324
+ this.matRadioButton = matRadioButton;
325
+ }
326
+ ngOnInit() {
327
+ super.ngOnInit();
328
+ }
329
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MatRadioButtonTbFilterDirective, deps: [{ token: i6.MatRadioButton }, { token: i2.TableWrapperDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
330
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: MatRadioButtonTbFilterDirective, isStandalone: true, selector: "mat-radio-button[tbCustomFilter]", inputs: { predicate: ["tbCustomFilter", "predicate"] }, providers: [{ provide: TableCustomFilterDirective, useExisting: MatRadioButtonTbFilterDirective }], usesInheritance: true, ngImport: i0 }); }
331
+ }
332
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MatRadioButtonTbFilterDirective, decorators: [{
333
+ type: Directive,
334
+ args: [{
335
+ selector: 'mat-radio-button[tbCustomFilter]',
336
+ inputs: ['predicate: tbCustomFilter'],
337
+ providers: [{ provide: TableCustomFilterDirective, useExisting: MatRadioButtonTbFilterDirective }],
338
+ standalone: true,
339
+ }]
340
+ }], ctorParameters: () => [{ type: i6.MatRadioButton }, { type: i2.TableWrapperDirective, decorators: [{
341
+ type: Optional
342
+ }] }] });
343
+ // Option (select)
344
+ export class MatOptionTbFilterDirective extends TbSelectedFilterDirective {
345
+ set active(val) {
346
+ if (val) {
347
+ this.matOption.select();
348
+ }
349
+ else {
350
+ this.matOption.deselect();
351
+ }
352
+ super.active = val;
353
+ }
354
+ constructor(matOption, wrapper) {
355
+ super(matOption.onSelectionChange.pipe(tap(d => {
356
+ if (!matOption.value) {
357
+ matOption.value = uuid();
358
+ }
359
+ })), () => matOption.selected, wrapper);
360
+ this.matOption = matOption;
361
+ }
362
+ ngOnInit() {
363
+ super.ngOnInit();
364
+ }
365
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MatOptionTbFilterDirective, deps: [{ token: i7.MatOption }, { token: i2.TableWrapperDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
366
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: MatOptionTbFilterDirective, isStandalone: true, selector: "mat-option[tbCustomFilter]", inputs: { predicate: ["tbCustomFilter", "predicate"], filterId: "filterId" }, providers: [{ provide: TableCustomFilterDirective, useExisting: MatOptionTbFilterDirective }], usesInheritance: true, ngImport: i0 }); }
367
+ }
368
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MatOptionTbFilterDirective, decorators: [{
369
+ type: Directive,
370
+ args: [{
371
+ selector: 'mat-option[tbCustomFilter]',
372
+ inputs: [
373
+ ...inputs
374
+ ],
375
+ providers: [{ provide: TableCustomFilterDirective, useExisting: MatOptionTbFilterDirective }],
376
+ standalone: true,
377
+ }]
378
+ }], ctorParameters: () => [{ type: i7.MatOption }, { type: i2.TableWrapperDirective, decorators: [{
379
+ type: Optional
380
+ }] }] });
381
+ // Button toggle
382
+ export class MatButtonToggleFilterDirective extends TbSelectedFilterDirective {
383
+ set active(val) {
384
+ this.matButtonToggle.checked = val;
385
+ super.active = val;
386
+ }
387
+ constructor(matButtonToggle, wrapper) {
388
+ super(matButtonToggle.change, () => matButtonToggle.checked, wrapper);
389
+ this.matButtonToggle = matButtonToggle;
390
+ }
391
+ ngOnInit() {
392
+ super.ngOnInit();
393
+ }
394
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MatButtonToggleFilterDirective, deps: [{ token: i8.MatButtonToggle }, { token: i2.TableWrapperDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
395
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.2", type: MatButtonToggleFilterDirective, isStandalone: true, selector: "mat-button-toggle[tbCustomFilter]", inputs: { predicate: ["tbCustomFilter", "predicate"], filterId: "filterId" }, providers: [{ provide: TableCustomFilterDirective, useExisting: MatButtonToggleFilterDirective }], usesInheritance: true, ngImport: i0 }); }
396
+ }
397
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: MatButtonToggleFilterDirective, decorators: [{
398
+ type: Directive,
399
+ args: [{
400
+ selector: 'mat-button-toggle[tbCustomFilter]',
401
+ inputs: [
402
+ ...inputs
403
+ ],
404
+ providers: [{ provide: TableCustomFilterDirective, useExisting: MatButtonToggleFilterDirective }],
405
+ standalone: true,
406
+ }]
407
+ }], ctorParameters: () => [{ type: i8.MatButtonToggle }, { type: i2.TableWrapperDirective, decorators: [{
408
+ type: Optional
409
+ }] }] });
410
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGItZmlsdGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL2RpcmVjdGl2ZXMvdGItZmlsdGVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQWMsYUFBYSxFQUFXLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0YsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBS2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7QUFLdkQsTUFBTSxNQUFNLEdBQUc7SUFDYiwyQkFBMkI7SUFDM0Isb0JBQW9CO0NBQ3JCLENBQUM7QUFNRixNQUFNLE9BQWdCLDBCQUEwQjtJQUhoRDtRQU1FLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsU0FBSSxHQUFHLEtBQUssQ0FBQztLQUdkOzhHQVBxQiwwQkFBMEI7a0dBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFIL0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsR0FBRztpQkFDZDs7QUFnQkUsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGNBQTBCO0lBRXJFLFlBQW1DLEtBQWdCLEVBQWMsT0FBOEI7UUFDN0YsS0FBSyxFQUFFLENBQUM7UUFEeUIsVUFBSyxHQUFMLEtBQUssQ0FBVztRQW1CbkQsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFNYixXQUFN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LENBQUM7SUFDbkIsQ0FBQzs4R0FYVSw4QkFBOEI7a0dBQTlCLDhCQUE4Qiw4SkFIOUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxXQUFXLEVBQUUsOEJBQThCLEVBQUUsQ0FBQzs7MkZBR3RGLDhCQUE4QjtrQkFSMUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUNBQW1DO29CQUM3QyxNQUFNLEVBQUU7d0JBQ04sR0FBRyxNQUFNO3FCQUNWO29CQUNELFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFdBQVcsZ0NBQWdDLEVBQUUsQ0FBQztvQkFDakcsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFNd0QsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9wdGlvbmFsLCBQcmVkaWNhdGUsIFNpbXBsZUNoYW5nZXMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgQ3VzdG9tRmlsdGVyLCBGaWx0ZXJJbmZvIH0gZnJvbSBcIi4uL2NsYXNzZXMvZmlsdGVyLWluZm9cIjtcclxuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSBcIi4uL2VudW1zL2ZpbHRlclR5cGVzXCI7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZVwiO1xyXG5pbXBvcnQgeyBNYXRSYWRpb0J1dHRvbiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9yYWRpb1wiO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Ub2dnbGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3ggfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3hcIjtcclxuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZlwiO1xyXG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tIFwiQG5ncngvY29tcG9uZW50LXN0b3JlXCI7XHJcbmltcG9ydCB7IFRhYmxlV3JhcHBlckRpcmVjdGl2ZSB9IGZyb20gXCIuL3RhYmxlLXdyYXBwZXIuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XHJcblxyXG5cclxuY29uc3QgaW5wdXRzID0gW1xyXG4gICdwcmVkaWNhdGU6IHRiQ3VzdG9tRmlsdGVyJyxcclxuICAnZmlsdGVySWQ6IGZpbHRlcklkJyxcclxuXTtcclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJyAnXHJcbn0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUYWJsZUN1c3RvbUZpbHRlckRpcmVjdGl2ZTxUID0gYW55PiB7XHJcbiAgYWJzdHJhY3QgZmlsdGVyJCA6IE9ic2VydmFibGU8Q3VzdG9tRmlsdGVyPjtcclxuICBmaWx0ZXJJZCE6IHN0cmluZztcclxuICBzYXZhYmxlID0gZmFsc2U7XHJcbiAgdXNlZCA9IGZhbHNlO1xyXG4gIGFic3RyYWN0IGFjdGl2ZTogYm9vbGVhbjtcclxuICBhYnN0cmFjdCByZXNldCgpOiB2b2lkO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogXCJbdGJGaWx0ZXJdXCIsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSkgZXhwb3J0IGNsYXNzIFRhYmxlRmlsdGVyRGlyZWN0aXZlIGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8RmlsdGVySW5mbz4ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgIG1vZGVsOiBOZ0NvbnRyb2wsIEBPcHRpb25hbCgpIHdyYXBwZXI6IFRhYmxlV3JhcHBlckRpcmVjdGl2ZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGlmKHdyYXBwZXIpIHtcclxuICAgICAgd3JhcHBlci5yZWdpc3Rlcih0aGlzKTtcclxuICAgIH1cclxuICAgIGlmKG1vZGVsKSB7XHJcbiAgICAgIHRoaXMuZWZmZWN0KCAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG1vZGVsLnZhbHVlQ2hhbmdlcyEucGlwZShcclxuICAgICAgICAgIHRhcCggdmFsID0+IHtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJWYWx1ZSA9IHZhbDtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMuZmlsdGVyVmFsdWUgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG4gIGZpbHRlciQgPSB0aGlzLnN0YXRlJDtcclxuXHJcbiAgQElucHV0KCkgZmlsdGVyVHlwZSE6IEZpbHRlclR5cGU7XHJcbiAgQElucHV0KCkga2V5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZpZWxkVHlwZSE6IEZpZWxkVHlwZTtcclxuICBASW5wdXQoKSBmaWx0ZXJJZCE6IHN0cmluZztcclxuICBASW5wdXQoKSBhY3RpdmUgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGZpbHRlclZhbHVlOiBhbnkgPSBudWxsO1xyXG5cclxuICBzZXRGaWx0ZXJWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZih0aGlzLm1vZGVsKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubW9kZWwucmVzZXQodmFsdWUpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyVmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICB1c2VkID0gZmFsc2U7XHJcbiAgc2F2YWJsZSA9IGZhbHNlO1xyXG4gIHJlYWR5ID0gZmFsc2U7XHJcblxyXG4gIF91c2VyQWN0aXZlID0gdHJ1ZTtcclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzICkge1xyXG4gICAgdGhpcy51cGRhdGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYoIXRoaXMuZmlsdGVySWQpIHtcclxuICAgICAgdGhpcy5maWx0ZXJJZCA9IHV1aWQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2F2YWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlYWR5ID0gdHJ1ZTtcclxuICAgIHRoaXMudXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc2V0RmlsdGVyKGZpbHRlcjogRmlsdGVySW5mbyApIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoZmlsdGVyKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZSgpIHtcclxuICAgIGlmICh0aGlzLnJlYWR5KSB7XHJcbiAgICAgIHRoaXMuc2V0RmlsdGVyKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGZpbHRlcklkOiB0aGlzLmZpbHRlcklkLFxyXG4gICAgICAgICAga2V5OiB0aGlzLmtleSxcclxuICAgICAgICAgIGZpbHRlclR5cGU6IHRoaXMuZmlsdGVyVHlwZSxcclxuICAgICAgICAgIGZpZWxkVHlwZTogdGhpcy5maWVsZFR5cGUsXHJcbiAgICAgICAgICBmaWx0ZXJWYWx1ZTogdGhpcy5maWx0ZXJWYWx1ZSxcclxuICAgICAgICAgIGFjdGl2ZTogdGhpcy5hY3RpdmUgJiYgdGhpcy5maWx0ZXJWYWx1ZSAhPT0gdW5kZWZpbmVkLFxyXG4gICAgICAgICAgX2lzRXh0ZXJuYWxseU1hbmFnZWQ6IHRydWUsXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG5cclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3RiRmlsdGVyU3RyaW5nQ29udGFpbnNdJyxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFRhYmxlRmlsdGVyRGlyZWN0aXZlLCB1c2VFeGlzdGluZzogVGFibGVGaWx0ZXJTdHJpbmdDb250YWluc0RpcmVjdGl2ZSB9XSxcclxuICBpbnB1dHM6IFtcclxuICAgICdrZXk6dGJGaWx0ZXJTdHJpbmdDb250YWlucycsXHJcbiAgICAnZmlsdGVyVmFsdWU6ZmlsdGVyVmFsdWUnLFxyXG4gICAgJ2ZpbHRlcklkOiBmaWx0ZXJJZCcsXHJcbiAgICAnYWN0aXZlOiBhY3RpdmUnLFxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSkgZXhwb3J0IGNsYXNzIFRhYmxlRmlsdGVyU3RyaW5nQ29udGFpbnNEaXJlY3RpdmUgZXh0ZW5kcyBUYWJsZUZpbHRlckRpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgIG1vZGVsOiBOZ0NvbnRyb2wsIEBPcHRpb25hbCgpIHdyYXBwZXI6IFRhYmxlV3JhcHBlckRpcmVjdGl2ZSkge1xyXG4gICAgc3VwZXIobW9kZWwsd3JhcHBlcik7XHJcbiAgICB0aGlzLmZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlLlN0cmluZ0NvbnRhaW5zO1xyXG4gICAgdGhpcy5maWVsZFR5cGUgPSBGaWVsZFR5cGUuU3RyaW5nO1xyXG4gICAgdGhpcy5lZmZlY3QoICgpID0+IHtcclxuICAgICAgcmV0dXJuIG1vZGVsLnZhbHVlQ2hhbmdlcyEucGlwZShcclxuICAgICAgICB0YXAoIHZhbCA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlclZhbHVlID0gdmFsO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGUoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgcmVzZXQoKSB7XHJcbiAgICBpZih0aGlzLm1vZGVsKSB7XHJcbiAgICAgIHRoaXMubW9kZWwucmVzZXQoKTtcclxuICAgIH1cclxuICAgIHN1cGVyLnJlc2V0KCk7XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSBzZXRGaWx0ZXIoZmlsdGVyOiBGaWx0ZXJJbmZvKSB7XHJcbiAgICBmaWx0ZXIuYWN0aXZlID0gZmlsdGVyLmZpbHRlclZhbHVlICYmIHRoaXMuX3VzZXJBY3RpdmU7XHJcbiAgICBzdXBlci5zZXRGaWx0ZXIoZmlsdGVyKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmKGNoYW5nZXNbJ2FjdGl2ZSddKSB7XHJcbiAgICAgIHRoaXMuX3VzZXJBY3RpdmUgPSBjaGFuZ2VzWydhY3RpdmUnXS5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcbiAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICB9XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBcIlt0YkN1c3RvbUZpbHRlcl1cIixcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlQmFzZTxUID0gYW55PiBleHRlbmRzIFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlPFQ+IHtcclxuXHJcbiAgZmlsdGVyJCEgOiBTdWJqZWN0PEN1c3RvbUZpbHRlcj47XHJcbiAgZmlsdGVyITogQ3VzdG9tRmlsdGVyO1xyXG4gIEBJbnB1dCgpIGZpbHRlcklkISA6IHN0cmluZztcclxuXHJcbiAgX3ByZWRpY2F0ZSE6IFByZWRpY2F0ZTxUPjtcclxuICBASW5wdXQoJ3RiQ3VzdG9tRmlsdGVyJykgc2V0IHByZWRpY2F0ZSggdmFsOiBQcmVkaWNhdGU8VD4gKSB7XHJcbiAgICB0aGlzLl9wcmVkaWNhdGUgPSB2YWw7XHJcbiAgICB0aGlzLnVwZGF0ZSh7cHJlZGljYXRlOnZhbH0pO1xyXG4gIH1cclxuXHJcbiAgX2FjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHJlYWR5ID0gZmFsc2U7XHJcblxyXG4gIHVwZGF0ZSh2YWw6IFBhcnRpYWw8Q3VzdG9tRmlsdGVyPiApIHtcclxuICAgIGlmKHRoaXMucmVhZHkpIHtcclxuICAgICAgdGhpcy5maWx0ZXIgPSB7Li4udGhpcy5maWx0ZXIsLi4udmFsfTtcclxuICAgICAgdGhpcy5maWx0ZXIkLm5leHQodGhpcy5maWx0ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGFjdGl2ZSh2YWw6IGJvb2xlYW4pIHtcclxuICAgIGlmKHRoaXMuX2FjdGl2ZSAhPT0gdmFsKSB7XHJcbiAgICAgIHRoaXMuX2FjdGl2ZSA9IHZhbDtcclxuICAgICAgdGhpcy51cGRhdGUoe2FjdGl2ZTp2YWx9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGFjdGl2ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9hY3RpdmU7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmKCF0aGlzLmZpbHRlcklkKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVySWQgPSB1dWlkKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNhdmFibGUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmlsdGVyID0ge1xyXG4gICAgICBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlLkN1c3RvbSxcclxuICAgICAgZmlsdGVySWQ6IHRoaXMuZmlsdGVySWQsXHJcbiAgICAgIGFjdGl2ZTogdGhpcy5fYWN0aXZlLFxyXG4gICAgICBwcmVkaWNhdGU6IHRoaXMuX3ByZWRpY2F0ZSxcclxuICAgIH07XHJcbiAgICB0aGlzLnJlYWR5ID0gdHJ1ZTtcclxuICAgIHRoaXMuZmlsdGVyJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5maWx0ZXIpO1xyXG4gIH1cclxufVxyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUYlNlbGVjdGVkRmlsdGVyRGlyZWN0aXZlPFQgPSBhbnk+ICBleHRlbmRzIFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlQmFzZTxUPiB7XHJcblxyXG5cclxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2U6IE9ic2VydmFibGU8YW55PiwgcHJpdmF0ZSBpc0FjdGl2ZTogKCkgPT4gYm9vbGVhbiwgQE9wdGlvbmFsKCkgd3JhcHBlcjogVGFibGVXcmFwcGVyRGlyZWN0aXZlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgaWYod3JhcHBlcikge1xyXG4gICAgICB3cmFwcGVyLnJlZ2lzdGVyKHRoaXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveVN1YmplY3QkID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oMSk7XHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3lTdWJqZWN0JC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2FjdGl2ZSA9IHRoaXMuaXNBY3RpdmUoKTtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3lTdWJqZWN0JCkpLnN1YnNjcmliZSggKCkgPT4ge1xyXG4gICAgICB0aGlzLmFjdGl2ZSA9IHRoaXMuaXNBY3RpdmUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuLy8gQ2hlY2tib3hcclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtY2hlY2tib3hbdGJDdXN0b21GaWx0ZXJdJyxcclxuICBpbnB1dHM6IFtcclxuICAgIC4uLmlucHV0c1xyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBUYWJsZUN1c3RvbUZpbHRlckRpcmVjdGl2ZSwgdXNlRXhpc3Rpbmc6IE1hdENoZWNrYm94VGJGaWx0ZXJEaXJlY3RpdmUgfV0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdENoZWNrYm94VGJGaWx0ZXJEaXJlY3RpdmUgZXh0ZW5kcyBUYlNlbGVjdGVkRmlsdGVyRGlyZWN0aXZlIHtcclxuXHJcbiAgb3ZlcnJpZGUgc2V0IGFjdGl2ZSh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubWF0Q2hlY2tib3guY2hlY2tlZCA9IHZhbDtcclxuICAgIHN1cGVyLmFjdGl2ZSA9IHZhbDtcclxuICB9XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXRDaGVja2JveDogTWF0Q2hlY2tib3gsIEBPcHRpb25hbCgpIHdyYXBwZXI6IFRhYmxlV3JhcHBlckRpcmVjdGl2ZSkge1xyXG4gICAgc3VwZXIobWF0Q2hlY2tib3guY2hhbmdlLCAoKSA9PiBtYXRDaGVja2JveC5jaGVja2VkLCB3cmFwcGVyKTtcclxuICB9XHJcbn1cclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ21hdC1zbGlkZS10b2dnbGVbdGJDdXN0b21GaWx0ZXJdJyxcclxuICBpbnB1dHM6IFtcclxuICAgIC4uLmlucHV0c1xyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBUYWJsZUN1c3RvbUZpbHRlckRpcmVjdGl2ZSwgdXNlRXhpc3Rpbmc6IE1hdFNsaWRlVG9nZ2xlVGJGaWx0ZXJEaXJlY3RpdmUgfV0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdFNsaWRlVG9nZ2xlVGJGaWx0ZXJEaXJlY3RpdmU8VCA9IGFueT4gZXh0ZW5kcyBUYlNlbGVjdGVkRmlsdGVyRGlyZWN0aXZlPFQ+IHtcclxuICBvdmVycmlkZSBzZXQgYWN0aXZlKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5tYXRTbGlkZVRvZ2dsZS5jaGVja2VkID0gdmFsO1xyXG4gICAgc3VwZXIuYWN0aXZlID0gdmFsO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hdFNsaWRlVG9nZ2xlOiBNYXRTbGlkZVRvZ2dsZSwgQE9wdGlvbmFsKCkgd3JhcHBlcjogVGFibGVXcmFwcGVyRGlyZWN0aXZlKSB7XHJcbiAgICBzdXBlcihtYXRTbGlkZVRvZ2dsZS5jaGFuZ2UsICgpID0+IG1hdFNsaWRlVG9nZ2xlLmNoZWNrZWQsd3JhcHBlcik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBSYWRpbyBidXR0b25cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtcmFkaW8tYnV0dG9uW3RiQ3VzdG9tRmlsdGVyXScsXHJcbiAgaW5wdXRzOiBbJ3ByZWRpY2F0ZTogdGJDdXN0b21GaWx0ZXInXSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlLCB1c2VFeGlzdGluZzogTWF0UmFkaW9CdXR0b25UYkZpbHRlckRpcmVjdGl2ZSB9XSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0UmFkaW9CdXR0b25UYkZpbHRlckRpcmVjdGl2ZSBleHRlbmRzIFRiU2VsZWN0ZWRGaWx0ZXJEaXJlY3RpdmUge1xyXG5cclxuICBvdmVycmlkZSBzZXQgYWN0aXZlKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5tYXRSYWRpb0J1dHRvbi5jaGVja2VkID0gdmFsO1xyXG4gICAgc3VwZXIuYWN0aXZlID0gdmFsO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hdFJhZGlvQnV0dG9uOiBNYXRSYWRpb0J1dHRvbiwgQE9wdGlvbmFsKCkgd3JhcHBlcjogVGFibGVXcmFwcGVyRGlyZWN0aXZlKSB7XHJcbiAgICBzdXBlcihtYXRSYWRpb0J1dHRvbi5jaGFuZ2UsICgpID0+IG1hdFJhZGlvQnV0dG9uLmNoZWNrZWQsIHdyYXBwZXIpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxufVxyXG5cclxuLy8gT3B0aW9uIChzZWxlY3QpXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LW9wdGlvblt0YkN1c3RvbUZpbHRlcl0nLFxyXG4gIGlucHV0czogW1xyXG4gICAgLi4uaW5wdXRzXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlLCB1c2VFeGlzdGluZzogTWF0T3B0aW9uVGJGaWx0ZXJEaXJlY3RpdmUgfV0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdE9wdGlvblRiRmlsdGVyRGlyZWN0aXZlIGV4dGVuZHMgVGJTZWxlY3RlZEZpbHRlckRpcmVjdGl2ZSB7XHJcblxyXG4gIG92ZXJyaWRlIHNldCBhY3RpdmUodmFsOiBib29sZWFuKSB7XHJcbiAgICBpZih2YWwpIHtcclxuICAgICAgdGhpcy5tYXRPcHRpb24uc2VsZWN0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1hdE9wdGlvbi5kZXNlbGVjdCgpO1xyXG4gICAgfVxyXG4gICAgc3VwZXIuYWN0aXZlID0gdmFsO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hdE9wdGlvbjogTWF0T3B0aW9uLCBAT3B0aW9uYWwoKSB3cmFwcGVyOiBUYWJsZVdyYXBwZXJEaXJlY3RpdmUpIHtcclxuICAgIHN1cGVyKCBtYXRPcHRpb24ub25TZWxlY3Rpb25DaGFuZ2UucGlwZSh0YXAoIGQgPT4ge1xyXG4gICAgICBpZighbWF0T3B0aW9uLnZhbHVlKSB7XHJcbiAgICAgICAgbWF0T3B0aW9uLnZhbHVlID0gdXVpZCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgKSksICgpID0+IG1hdE9wdGlvbi5zZWxlY3RlZCwgd3JhcHBlcik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBCdXR0b24gdG9nZ2xlXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LWJ1dHRvbi10b2dnbGVbdGJDdXN0b21GaWx0ZXJdJyxcclxuICBpbnB1dHM6IFtcclxuICAgIC4uLmlucHV0c1xyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBUYWJsZUN1c3RvbUZpbHRlckRpcmVjdGl2ZSwgdXNlRXhpc3Rpbmc6IE1hdEJ1dHRvblRvZ2dsZUZpbHRlckRpcmVjdGl2ZSB9XSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0QnV0dG9uVG9nZ2xlRmlsdGVyRGlyZWN0aXZlIGV4dGVuZHMgVGJTZWxlY3RlZEZpbHRlckRpcmVjdGl2ZSB7XHJcbiAgb3ZlcnJpZGUgc2V0IGFjdGl2ZSh2YWw6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubWF0QnV0dG9uVG9nZ2xlLmNoZWNrZWQgPSB2YWw7XHJcbiAgICBzdXBlci5hY3RpdmUgPSB2YWw7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWF0QnV0dG9uVG9nZ2xlOiBNYXRCdXR0b25Ub2dnbGUsIEBPcHRpb25hbCgpIHdyYXBwZXI6IFRhYmxlV3JhcHBlckRpcmVjdGl2ZSkge1xyXG4gICAgc3VwZXIobWF0QnV0dG9uVG9nZ2xlLmNoYW5nZSwgKCkgPT4gbWF0QnV0dG9uVG9nZ2xlLmNoZWNrZWQsd3JhcHBlcik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,72 @@
1
+ export var FilterType;
2
+ (function (FilterType) {
3
+ FilterType["NumberEquals"] = "Equals";
4
+ FilterType["NumberNotEqual"] = "Does Not Equal";
5
+ FilterType["NumberGreaterThan"] = "Greater Than";
6
+ FilterType["NumberLessThan"] = "Less Than";
7
+ FilterType["NumberBetween"] = "Between";
8
+ FilterType["StringEquals"] = "Equals";
9
+ FilterType["StringContains"] = "Contains";
10
+ FilterType["StringDoesNotContain"] = "Does Not Contain";
11
+ FilterType["StringStartWith"] = "Start With";
12
+ FilterType["StringEndsWith"] = "Ends With";
13
+ FilterType["DateIsOn"] = "Is on";
14
+ FilterType["DateIsNotOn"] = "Is Not On";
15
+ FilterType["DateOnOrAfter"] = "On or After";
16
+ FilterType["DateOnOrBefore"] = "On or Before";
17
+ FilterType["DateBetween"] = "Between";
18
+ FilterType["DateTimeIsAt"] = "Is At";
19
+ FilterType["DateTimeIsNotAt"] = "Is Not At";
20
+ FilterType["DateTimeAtOrAfter"] = "At or After";
21
+ FilterType["DateTimeAtOrBefore"] = "At or Before";
22
+ FilterType["DateTimeBetween"] = "Between";
23
+ FilterType["BooleanEquals"] = "Is";
24
+ FilterType["IsNull"] = "Is Blank";
25
+ FilterType["Or"] = "Or";
26
+ FilterType["And"] = "And";
27
+ FilterType["In"] = "In";
28
+ FilterType["Custom"] = "Custom";
29
+ })(FilterType || (FilterType = {}));
30
+ export const NumberFilterMap = {
31
+ [FilterType.NumberEquals]: FilterType.NumberEquals,
32
+ [FilterType.NumberNotEqual]: FilterType.NumberNotEqual,
33
+ [FilterType.NumberGreaterThan]: FilterType.NumberGreaterThan,
34
+ [FilterType.NumberLessThan]: FilterType.NumberLessThan,
35
+ [FilterType.NumberBetween]: FilterType.NumberBetween,
36
+ [FilterType.IsNull]: FilterType.IsNull,
37
+ [FilterType.In]: FilterType.In,
38
+ };
39
+ export const StringFilterMap = {
40
+ [FilterType.StringEquals]: FilterType.StringEquals,
41
+ [FilterType.StringContains]: FilterType.StringContains,
42
+ [FilterType.StringDoesNotContain]: FilterType.StringDoesNotContain,
43
+ [FilterType.StringStartWith]: FilterType.StringStartWith,
44
+ [FilterType.StringEndsWith]: FilterType.StringEndsWith,
45
+ [FilterType.IsNull]: FilterType.IsNull,
46
+ [FilterType.In]: FilterType.In,
47
+ };
48
+ export const DateFilterMap = {
49
+ [FilterType.DateIsOn]: FilterType.DateIsOn,
50
+ [FilterType.DateIsNotOn]: FilterType.DateIsNotOn,
51
+ [FilterType.DateOnOrAfter]: FilterType.DateOnOrAfter,
52
+ [FilterType.DateOnOrBefore]: FilterType.DateOnOrBefore,
53
+ [FilterType.DateBetween]: FilterType.DateBetween,
54
+ [FilterType.IsNull]: FilterType.IsNull,
55
+ };
56
+ export const DateTimeFilterMap = {
57
+ ...DateFilterMap,
58
+ [FilterType.DateTimeIsAt]: FilterType.DateTimeIsAt,
59
+ [FilterType.DateTimeIsNotAt]: FilterType.DateTimeIsNotAt,
60
+ [FilterType.DateTimeAtOrAfter]: FilterType.DateTimeAtOrAfter,
61
+ [FilterType.DateTimeAtOrBefore]: FilterType.DateTimeAtOrBefore,
62
+ [FilterType.DateTimeBetween]: FilterType.DateTimeBetween,
63
+ };
64
+ export const BooleanFilterMap = {
65
+ [FilterType.BooleanEquals]: FilterType.BooleanEquals,
66
+ [FilterType.IsNull]: FilterType.IsNull,
67
+ };
68
+ export const EnumFilterMap = {
69
+ [FilterType.IsNull]: FilterType.IsNull,
70
+ [FilterType.In]: FilterType.In
71
+ };
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9lbnVtcy9maWx0ZXJUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQU4sSUFBWSxVQTJCWDtBQTNCRCxXQUFZLFVBQVU7SUFDbEIscUNBQXVCLENBQUE7SUFDdkIsK0NBQWlDLENBQUE7SUFDakMsZ0RBQWtDLENBQUE7SUFDbEMsMENBQTRCLENBQUE7SUFDNUIsdUNBQXlCLENBQUE7SUFDekIscUNBQXVCLENBQUE7SUFDdkIseUNBQTJCLENBQUE7SUFDM0IsdURBQXlDLENBQUE7SUFDekMsNENBQThCLENBQUE7SUFDOUIsMENBQTRCLENBQUE7SUFDNUIsZ0NBQWtCLENBQUE7SUFDbEIsdUNBQXlCLENBQUE7SUFDekIsMkNBQTZCLENBQUE7SUFDN0IsNkNBQStCLENBQUE7SUFDL0IscUNBQXVCLENBQUE7SUFDdkIsb0NBQXNCLENBQUE7SUFDdEIsMkNBQTZCLENBQUE7SUFDN0IsK0NBQWlDLENBQUE7SUFDakMsaURBQW1DLENBQUE7SUFDbkMseUNBQTJCLENBQUE7SUFDM0Isa0NBQW9CLENBQUE7SUFDcEIsaUNBQW1CLENBQUE7SUFDbkIsdUJBQVMsQ0FBQTtJQUNULHlCQUFXLENBQUE7SUFDWCx1QkFBUyxDQUFBO0lBQ1QsK0JBQWlCLENBQUE7QUFDckIsQ0FBQyxFQTNCVyxVQUFVLEtBQVYsVUFBVSxRQTJCckI7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDM0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUMsVUFBVSxDQUFDLFlBQVk7SUFDakQsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUMsVUFBVSxDQUFDLGNBQWM7SUFDckQsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBQyxVQUFVLENBQUMsaUJBQWlCO0lBQzNELENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFDLFVBQVUsQ0FBQyxjQUFjO0lBQ3JELENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFDLFVBQVUsQ0FBQyxhQUFhO0lBQ25ELENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFDLFVBQVUsQ0FBQyxNQUFNO0lBQ3JDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFDLFVBQVUsQ0FBQyxFQUFFO0NBQ00sQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDM0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUMsVUFBVSxDQUFDLFlBQVk7SUFDakQsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUMsVUFBVSxDQUFDLGNBQWM7SUFDckQsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsRUFBQyxVQUFVLENBQUMsb0JBQW9CO0lBQ2pFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFDLFVBQVUsQ0FBQyxlQUFlO0lBQ3ZELENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFDLFVBQVUsQ0FBQyxjQUFjO0lBQ3JELENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFDLFVBQVUsQ0FBQyxNQUFNO0lBQ3JDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFDLFVBQVUsQ0FBQyxFQUFFO0NBQ00sQ0FBQztBQUV4QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDekIsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUMsVUFBVSxDQUFDLFFBQVE7SUFDekMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUMsVUFBVSxDQUFDLFdBQVc7SUFDL0MsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUMsVUFBVSxDQUFDLGFBQWE7SUFDbkQsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUMsVUFBVSxDQUFDLGNBQWM7SUFDckQsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUMsVUFBVSxDQUFDLFdBQVc7SUFDL0MsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUMsVUFBVSxDQUFDLE1BQU07Q0FDRixDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLEdBQUcsYUFBYTtJQUNoQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBQyxVQUFVLENBQUMsWUFBWTtJQUNqRCxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsRUFBQyxVQUFVLENBQUMsZUFBZTtJQUN2RCxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFDLFVBQVUsQ0FBQyxpQkFBaUI7SUFDM0QsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsRUFBQyxVQUFVLENBQUMsa0JBQWtCO0lBQzdELENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFDLFVBQVUsQ0FBQyxlQUFlO0NBQ2xCLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUk7SUFDN0IsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUUsVUFBVSxDQUFDLGFBQWE7SUFDcEQsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUMsVUFBVSxDQUFDLE1BQU07Q0FDRixDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUMzQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRyxVQUFVLENBQUMsTUFBTTtJQUN2QyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRyxVQUFVLENBQUMsRUFBRTtDQUNNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuZXhwb3J0IGVudW0gRmlsdGVyVHlwZSB7XHJcbiAgICBOdW1iZXJFcXVhbHMgPSAnRXF1YWxzJyxcclxuICAgIE51bWJlck5vdEVxdWFsID0gJ0RvZXMgTm90IEVxdWFsJyxcclxuICAgIE51bWJlckdyZWF0ZXJUaGFuID0gJ0dyZWF0ZXIgVGhhbicsXHJcbiAgICBOdW1iZXJMZXNzVGhhbiA9ICdMZXNzIFRoYW4nLFxyXG4gICAgTnVtYmVyQmV0d2VlbiA9ICdCZXR3ZWVuJyxcclxuICAgIFN0cmluZ0VxdWFscyA9ICdFcXVhbHMnLFxyXG4gICAgU3RyaW5nQ29udGFpbnMgPSAnQ29udGFpbnMnLFxyXG4gICAgU3RyaW5nRG9lc05vdENvbnRhaW4gPSAnRG9lcyBOb3QgQ29udGFpbicsXHJcbiAgICBTdHJpbmdTdGFydFdpdGggPSAnU3RhcnQgV2l0aCcsXHJcbiAgICBTdHJpbmdFbmRzV2l0aCA9ICdFbmRzIFdpdGgnLFxyXG4gICAgRGF0ZUlzT24gPSAnSXMgb24nLFxyXG4gICAgRGF0ZUlzTm90T24gPSAnSXMgTm90IE9uJyxcclxuICAgIERhdGVPbk9yQWZ0ZXIgPSAnT24gb3IgQWZ0ZXInLFxyXG4gICAgRGF0ZU9uT3JCZWZvcmUgPSAnT24gb3IgQmVmb3JlJyxcclxuICAgIERhdGVCZXR3ZWVuID0gJ0JldHdlZW4nLFxyXG4gICAgRGF0ZVRpbWVJc0F0ID0gJ0lzIEF0JyxcclxuICAgIERhdGVUaW1lSXNOb3RBdCA9ICdJcyBOb3QgQXQnLFxyXG4gICAgRGF0ZVRpbWVBdE9yQWZ0ZXIgPSAnQXQgb3IgQWZ0ZXInLFxyXG4gICAgRGF0ZVRpbWVBdE9yQmVmb3JlID0gJ0F0IG9yIEJlZm9yZScsXHJcbiAgICBEYXRlVGltZUJldHdlZW4gPSAnQmV0d2VlbicsXHJcbiAgICBCb29sZWFuRXF1YWxzID0gJ0lzJyxcclxuICAgIElzTnVsbCA9ICdJcyBCbGFuaycsXHJcbiAgICBPciA9ICdPcicsXHJcbiAgICBBbmQgPSAnQW5kJyxcclxuICAgIEluID0gJ0luJyxcclxuICAgIEN1c3RvbSA9ICdDdXN0b20nLFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgTnVtYmVyRmlsdGVyTWFwID0ge1xyXG4gICAgW0ZpbHRlclR5cGUuTnVtYmVyRXF1YWxzXTpGaWx0ZXJUeXBlLk51bWJlckVxdWFscyxcclxuICAgIFtGaWx0ZXJUeXBlLk51bWJlck5vdEVxdWFsXTpGaWx0ZXJUeXBlLk51bWJlck5vdEVxdWFsLFxyXG4gICAgW0ZpbHRlclR5cGUuTnVtYmVyR3JlYXRlclRoYW5dOkZpbHRlclR5cGUuTnVtYmVyR3JlYXRlclRoYW4sXHJcbiAgICBbRmlsdGVyVHlwZS5OdW1iZXJMZXNzVGhhbl06RmlsdGVyVHlwZS5OdW1iZXJMZXNzVGhhbixcclxuICAgIFtGaWx0ZXJUeXBlLk51bWJlckJldHdlZW5dOkZpbHRlclR5cGUuTnVtYmVyQmV0d2VlbixcclxuICAgIFtGaWx0ZXJUeXBlLklzTnVsbF06RmlsdGVyVHlwZS5Jc051bGwsXHJcbiAgICBbRmlsdGVyVHlwZS5Jbl06RmlsdGVyVHlwZS5JbixcclxufSBhcyBjb25zdCBzYXRpc2ZpZXMgRmlsdGVyVG9GaWx0ZXJzTWFwO1xyXG5cclxuZXhwb3J0IGNvbnN0IFN0cmluZ0ZpbHRlck1hcCA9IHtcclxuICAgIFtGaWx0ZXJUeXBlLlN0cmluZ0VxdWFsc106RmlsdGVyVHlwZS5TdHJpbmdFcXVhbHMsXHJcbiAgICBbRmlsdGVyVHlwZS5TdHJpbmdDb250YWluc106RmlsdGVyVHlwZS5TdHJpbmdDb250YWlucyxcclxuICAgIFtGaWx0ZXJUeXBlLlN0cmluZ0RvZXNOb3RDb250YWluXTpGaWx0ZXJUeXBlLlN0cmluZ0RvZXNOb3RDb250YWluLFxyXG4gICAgW0ZpbHRlclR5cGUuU3RyaW5nU3RhcnRXaXRoXTpGaWx0ZXJUeXBlLlN0cmluZ1N0YXJ0V2l0aCxcclxuICAgIFtGaWx0ZXJUeXBlLlN0cmluZ0VuZHNXaXRoXTpGaWx0ZXJUeXBlLlN0cmluZ0VuZHNXaXRoLFxyXG4gICAgW0ZpbHRlclR5cGUuSXNOdWxsXTpGaWx0ZXJUeXBlLklzTnVsbCxcclxuICAgIFtGaWx0ZXJUeXBlLkluXTpGaWx0ZXJUeXBlLkluLFxyXG59IGFzIGNvbnN0IHNhdGlzZmllcyBGaWx0ZXJUb0ZpbHRlcnNNYXA7XHJcblxyXG5leHBvcnQgY29uc3QgRGF0ZUZpbHRlck1hcCA9IHtcclxuICAgIFtGaWx0ZXJUeXBlLkRhdGVJc09uXTpGaWx0ZXJUeXBlLkRhdGVJc09uLFxyXG4gICAgW0ZpbHRlclR5cGUuRGF0ZUlzTm90T25dOkZpbHRlclR5cGUuRGF0ZUlzTm90T24sXHJcbiAgICBbRmlsdGVyVHlwZS5EYXRlT25PckFmdGVyXTpGaWx0ZXJUeXBlLkRhdGVPbk9yQWZ0ZXIsXHJcbiAgICBbRmlsdGVyVHlwZS5EYXRlT25PckJlZm9yZV06RmlsdGVyVHlwZS5EYXRlT25PckJlZm9yZSxcclxuICAgIFtGaWx0ZXJUeXBlLkRhdGVCZXR3ZWVuXTpGaWx0ZXJUeXBlLkRhdGVCZXR3ZWVuLFxyXG4gICAgW0ZpbHRlclR5cGUuSXNOdWxsXTpGaWx0ZXJUeXBlLklzTnVsbCxcclxufSBhcyBjb25zdCBzYXRpc2ZpZXMgRmlsdGVyVG9GaWx0ZXJzTWFwO1xyXG5cclxuZXhwb3J0IGNvbnN0IERhdGVUaW1lRmlsdGVyTWFwID0ge1xyXG4gIC4uLkRhdGVGaWx0ZXJNYXAsXHJcbiAgW0ZpbHRlclR5cGUuRGF0ZVRpbWVJc0F0XTpGaWx0ZXJUeXBlLkRhdGVUaW1lSXNBdCxcclxuICBbRmlsdGVyVHlwZS5EYXRlVGltZUlzTm90QXRdOkZpbHRlclR5cGUuRGF0ZVRpbWVJc05vdEF0LFxyXG4gIFtGaWx0ZXJUeXBlLkRhdGVUaW1lQXRPckFmdGVyXTpGaWx0ZXJUeXBlLkRhdGVUaW1lQXRPckFmdGVyLFxyXG4gIFtGaWx0ZXJUeXBlLkRhdGVUaW1lQXRPckJlZm9yZV06RmlsdGVyVHlwZS5EYXRlVGltZUF0T3JCZWZvcmUsXHJcbiAgW0ZpbHRlclR5cGUuRGF0ZVRpbWVCZXR3ZWVuXTpGaWx0ZXJUeXBlLkRhdGVUaW1lQmV0d2VlbixcclxufSBhcyBjb25zdCBzYXRpc2ZpZXMgRmlsdGVyVG9GaWx0ZXJzTWFwO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJvb2xlYW5GaWx0ZXJNYXAgID0ge1xyXG4gICAgW0ZpbHRlclR5cGUuQm9vbGVhbkVxdWFsc106IEZpbHRlclR5cGUuQm9vbGVhbkVxdWFscyxcclxuICAgIFtGaWx0ZXJUeXBlLklzTnVsbF06RmlsdGVyVHlwZS5Jc051bGwsXHJcbn0gYXMgY29uc3Qgc2F0aXNmaWVzIEZpbHRlclRvRmlsdGVyc01hcDtcclxuXHJcbmV4cG9ydCBjb25zdCBFbnVtRmlsdGVyTWFwID0ge1xyXG4gIFtGaWx0ZXJUeXBlLklzTnVsbF0gOiBGaWx0ZXJUeXBlLklzTnVsbCxcclxuICBbRmlsdGVyVHlwZS5Jbl0gOiBGaWx0ZXJUeXBlLkluXHJcbn0gYXMgY29uc3Qgc2F0aXNmaWVzIEZpbHRlclRvRmlsdGVyc01hcDtcclxuXHJcbmV4cG9ydCB0eXBlIEZpbHRlclRvRmlsdGVyc01hcCA9IFBhcnRpYWw8e1trZXkgaW4gRmlsdGVyVHlwZV06IEZpbHRlclR5cGV9PjtcclxuIl19
@@ -0,0 +1,10 @@
1
+ import { FilterType } from '../enums/filterTypes';
2
+ import { isNull } from './null-filter-function';
3
+ const booleanEqualsFunc = (filterInfo) => (val) => {
4
+ return filterInfo.filterValue === val;
5
+ };
6
+ export const BooleanFilterFuncs = {
7
+ [FilterType.BooleanEquals]: booleanEqualsFunc,
8
+ [FilterType.IsNull]: isNull,
9
+ };
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1maWx0ZXItZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9mdW5jdGlvbnMvYm9vbGVhbi1maWx0ZXItZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxNQUFPLGlCQUFpQixHQUF5QixDQUFDLFVBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFZLEVBQUU7SUFDMUYsT0FBTyxVQUFVLENBQUMsV0FBVyxLQUFLLEdBQUcsQ0FBQztBQUMxQyxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBb0M7SUFDOUQsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUUsaUJBQWlCO0lBQzdDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU07Q0FDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbHRlckZ1bmMsIEZpbHRlckluZm8gfSBmcm9tICcuLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi9lbnVtcy9maWx0ZXJUeXBlcyc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9kaWN0aW9uYXJ5JztcbmltcG9ydCB7IGlzTnVsbCB9IGZyb20gJy4vbnVsbC1maWx0ZXItZnVuY3Rpb24nO1xuXG5jb25zdCAgYm9vbGVhbkVxdWFsc0Z1bmMgOiBGaWx0ZXJGdW5jPGJvb2xlYW4+ID0gKGZpbHRlckluZm86RmlsdGVySW5mbykgPT4gKHZhbCk6IGJvb2xlYW4gID0+IHtcbiAgICByZXR1cm4gZmlsdGVySW5mby5maWx0ZXJWYWx1ZSA9PT0gdmFsO1xufVxuXG5leHBvcnQgY29uc3QgQm9vbGVhbkZpbHRlckZ1bmNzOiBEaWN0aW9uYXJ5PEZpbHRlckZ1bmM8YW55LGFueT4+ID0ge1xuICAgICBbRmlsdGVyVHlwZS5Cb29sZWFuRXF1YWxzXTogYm9vbGVhbkVxdWFsc0Z1bmMsXG4gICAgIFtGaWx0ZXJUeXBlLklzTnVsbF06IGlzTnVsbCxcbn07XG4iXX0=
@@ -0,0 +1,58 @@
1
+ import { FilterType } from '../enums/filterTypes';
2
+ import { FieldType } from '../interfaces/report-def';
3
+ import { isNull } from './null-filter-function';
4
+ const dateIsOnFunc = (filterInfo) => {
5
+ const isOnVal = new Date(filterInfo.filterValue).getTime();
6
+ const clean = filterInfo.fieldType === FieldType.Date ? (a, b) => b : cleanDateTime;
7
+ return ((val) => clean(filterInfo, val).getTime() === isOnVal);
8
+ };
9
+ const dateIsNotOnFunc = (filterInfo) => {
10
+ const isNotOnVal = new Date(filterInfo.filterValue).getTime();
11
+ const clean = filterInfo.fieldType === FieldType.Date ? (a, b) => b : cleanDateTime;
12
+ return ((val) => clean(filterInfo, val).getTime() !== isNotOnVal);
13
+ };
14
+ const dateIsOnOrAfterFunc = (filterInfo) => {
15
+ const afterVal = new Date(filterInfo.filterValue).getTime();
16
+ const clean = filterInfo.fieldType === FieldType.Date ? (a, b) => b : cleanDateTime;
17
+ return ((val) => clean(filterInfo, val).getTime() >= afterVal);
18
+ };
19
+ const dateIsOnOrBeforeFunc = (filterInfo) => {
20
+ const beforeVal = new Date(filterInfo.filterValue).getTime();
21
+ const clean = filterInfo.fieldType === FieldType.Date ? (a, b) => b : cleanDateTime;
22
+ return ((val) => clean(filterInfo, val).getTime() <= beforeVal);
23
+ };
24
+ const dateBetweenFunc = (filterInfo) => {
25
+ const startVal = new Date(filterInfo.filterValue.Start);
26
+ const endVal = new Date(filterInfo.filterValue.End);
27
+ const clean = filterInfo.fieldType === FieldType.Date ? (a, b) => b : cleanDateTime;
28
+ return ((val) => {
29
+ const cleanedVal = clean(filterInfo, val);
30
+ return cleanedVal >= startVal && cleanedVal <= endVal;
31
+ });
32
+ };
33
+ const cleanDateTime = (filterInfo, val) => {
34
+ if (!!DateFilterFuncs[filterInfo.filterType]) {
35
+ const d = new Date(val);
36
+ d.setHours(0, 0, 0, 0);
37
+ return d;
38
+ }
39
+ return val;
40
+ };
41
+ export const DateFilterFuncs = {
42
+ [FilterType.DateIsOn]: dateIsOnFunc,
43
+ [FilterType.DateIsNotOn]: dateIsNotOnFunc,
44
+ [FilterType.DateOnOrAfter]: dateIsOnOrAfterFunc,
45
+ [FilterType.DateOnOrBefore]: dateIsOnOrBeforeFunc,
46
+ [FilterType.DateBetween]: dateBetweenFunc,
47
+ [FilterType.IsNull]: isNull,
48
+ };
49
+ export const DateTimeFilterFuncs = {
50
+ ...DateFilterFuncs,
51
+ [FilterType.DateTimeIsAt]: dateIsOnFunc,
52
+ [FilterType.DateTimeIsNotAt]: dateIsNotOnFunc,
53
+ [FilterType.DateTimeAtOrAfter]: dateIsOnOrAfterFunc,
54
+ [FilterType.DateTimeAtOrBefore]: dateIsOnOrBeforeFunc,
55
+ [FilterType.DateTimeBetween]: dateBetweenFunc,
56
+ [FilterType.IsNull]: isNull,
57
+ };
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWx0ZXItZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9mdW5jdGlvbnMvZGF0ZS1maWx0ZXItZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHaEQsTUFBTSxZQUFZLEdBQW9CLENBQUMsVUFBcUIsRUFBRSxFQUFFO0lBQzlELE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1RCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUE7SUFDbEYsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFDLEVBQUUsQ0FBQSxLQUFLLENBQUMsVUFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFNLE9BQU8sQ0FBQyxDQUFDO0FBQy9ELENBQUMsQ0FBQTtBQUVELE1BQU0sZUFBZSxHQUFvQixDQUFDLFVBQXFCLEVBQUUsRUFBRTtJQUNqRSxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBRSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDL0QsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFBO0lBQ2xGLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsS0FBSyxDQUFDLFVBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBTSxVQUFVLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUE7QUFFRCxNQUFNLG1CQUFtQixHQUFvQixDQUFDLFVBQXFCLEVBQUUsRUFBRTtJQUNyRSxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBRSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0QsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFBO0lBQ2xGLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsS0FBSyxDQUFDLFVBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSyxRQUFRLENBQUMsQ0FBQztBQUMvRCxDQUFDLENBQUE7QUFFRCxNQUFNLG9CQUFvQixHQUFvQixDQUFDLFVBQXFCLEVBQUUsRUFBRTtJQUN0RSxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBRSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDOUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFBO0lBQ2xGLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsS0FBSyxDQUFDLFVBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSyxTQUFTLENBQUMsQ0FBQztBQUNoRSxDQUFDLENBQUE7QUFFRCxNQUFNLGVBQWUsR0FBZ0MsQ0FBQyxVQUFxQixFQUFFLEVBQUU7SUFDN0UsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQTtJQUNsRixPQUFPLENBQ0wsQ0FBQyxHQUFHLEVBQUMsRUFBRTtRQUNMLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUMsT0FBTyxVQUFVLElBQUUsUUFBUSxJQUFJLFVBQVUsSUFBSSxNQUFNLENBQUM7SUFDdEQsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUE7QUFFRCxNQUFNLGFBQWEsR0FBRyxDQUFDLFVBQXFCLEVBQUUsR0FBUyxFQUFFLEVBQUU7SUFDekQsSUFBRyxDQUFDLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBQztRQUMxQyxNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sQ0FBQyxDQUFDO0tBQ1Y7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBb0M7SUFDNUQsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsWUFBWTtJQUNuQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxlQUFlO0lBQ3pDLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFLG1CQUFtQjtJQUMvQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxvQkFBb0I7SUFDakQsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsZUFBZTtJQUN6QyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNO0NBQzlCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBb0M7SUFDbEUsR0FBRyxlQUFlO0lBQ2xCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLFlBQVk7SUFDdkMsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsZUFBZTtJQUM3QyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLG1CQUFtQjtJQUNuRCxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLG9CQUFvQjtJQUNyRCxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsRUFBRSxlQUFlO0lBQzdDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU07Q0FDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbHRlckZ1bmMsIEZpbHRlckluZm8sIFJhbmdlIH0gZnJvbSAnLi4vY2xhc3Nlcy9maWx0ZXItaW5mbyc7XHJcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi9lbnVtcy9maWx0ZXJUeXBlcyc7XHJcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnknO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xyXG5pbXBvcnQgeyBpc051bGwgfSBmcm9tICcuL251bGwtZmlsdGVyLWZ1bmN0aW9uJztcclxuXHJcblxyXG5jb25zdCBkYXRlSXNPbkZ1bmM6RmlsdGVyRnVuYzxEYXRlPiA9IChmaWx0ZXJJbmZvOkZpbHRlckluZm8pID0+IHtcclxuICBjb25zdCBpc09uVmFsID0gbmV3IERhdGUoIGZpbHRlckluZm8uZmlsdGVyVmFsdWUpLmdldFRpbWUoKTtcclxuICBjb25zdCBjbGVhbiA9IGZpbHRlckluZm8uZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRGF0ZSA/IChhLGIpID0+IGIgOiBjbGVhbkRhdGVUaW1lXHJcbiAgcmV0dXJuICgodmFsKT0+Y2xlYW4oZmlsdGVySW5mbyx2YWwpLmdldFRpbWUoKSAgPT09IGlzT25WYWwpO1xyXG59XHJcblxyXG5jb25zdCBkYXRlSXNOb3RPbkZ1bmM6RmlsdGVyRnVuYzxEYXRlPiA9IChmaWx0ZXJJbmZvOkZpbHRlckluZm8pID0+IHtcclxuICBjb25zdCBpc05vdE9uVmFsID0gbmV3IERhdGUoIGZpbHRlckluZm8uZmlsdGVyVmFsdWUpLmdldFRpbWUoKTtcclxuICBjb25zdCBjbGVhbiA9IGZpbHRlckluZm8uZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRGF0ZSA/IChhLGIpID0+IGIgOiBjbGVhbkRhdGVUaW1lXHJcbiAgcmV0dXJuICgodmFsKT0+Y2xlYW4oZmlsdGVySW5mbyx2YWwpLmdldFRpbWUoKSAgIT09IGlzTm90T25WYWwpO1xyXG59XHJcblxyXG5jb25zdCBkYXRlSXNPbk9yQWZ0ZXJGdW5jOkZpbHRlckZ1bmM8RGF0ZT4gPSAoZmlsdGVySW5mbzpGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgY29uc3QgYWZ0ZXJWYWwgPSBuZXcgRGF0ZSggZmlsdGVySW5mby5maWx0ZXJWYWx1ZSkuZ2V0VGltZSgpO1xyXG4gIGNvbnN0IGNsZWFuID0gZmlsdGVySW5mby5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5EYXRlID8gKGEsYikgPT4gYiA6IGNsZWFuRGF0ZVRpbWVcclxuICByZXR1cm4gKCh2YWwpPT5jbGVhbihmaWx0ZXJJbmZvLHZhbCkuZ2V0VGltZSgpICA+PSBhZnRlclZhbCk7XHJcbn1cclxuXHJcbmNvbnN0IGRhdGVJc09uT3JCZWZvcmVGdW5jOkZpbHRlckZ1bmM8RGF0ZT4gPSAoZmlsdGVySW5mbzpGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgY29uc3QgYmVmb3JlVmFsID0gbmV3IERhdGUoIGZpbHRlckluZm8uZmlsdGVyVmFsdWUpLmdldFRpbWUoKTtcclxuICBjb25zdCBjbGVhbiA9IGZpbHRlckluZm8uZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRGF0ZSA/IChhLGIpID0+IGIgOiBjbGVhbkRhdGVUaW1lXHJcbiAgcmV0dXJuICgodmFsKT0+Y2xlYW4oZmlsdGVySW5mbyx2YWwpLmdldFRpbWUoKSAgPD0gYmVmb3JlVmFsKTtcclxufVxyXG5cclxuY29uc3QgZGF0ZUJldHdlZW5GdW5jOkZpbHRlckZ1bmM8UmFuZ2U8RGF0ZT4sRGF0ZT4gPSAoZmlsdGVySW5mbzpGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgY29uc3Qgc3RhcnRWYWwgPSBuZXcgRGF0ZShmaWx0ZXJJbmZvLmZpbHRlclZhbHVlLlN0YXJ0KTtcclxuICBjb25zdCBlbmRWYWwgPSBuZXcgRGF0ZShmaWx0ZXJJbmZvLmZpbHRlclZhbHVlLkVuZCk7XHJcbiAgY29uc3QgY2xlYW4gPSBmaWx0ZXJJbmZvLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkRhdGUgPyAoYSxiKSA9PiBiIDogY2xlYW5EYXRlVGltZVxyXG4gIHJldHVybiAoXHJcbiAgICAodmFsKT0+IHtcclxuICAgICAgY29uc3QgY2xlYW5lZFZhbCA9IGNsZWFuKGZpbHRlckluZm8sIHZhbCk7XHJcbiAgICAgIHJldHVybiBjbGVhbmVkVmFsPj1zdGFydFZhbCAmJiBjbGVhbmVkVmFsIDw9IGVuZFZhbDtcclxuICAgIH0pO1xyXG59XHJcblxyXG5jb25zdCBjbGVhbkRhdGVUaW1lID0gKGZpbHRlckluZm86RmlsdGVySW5mbywgdmFsOiBEYXRlKSA9PiB7XHJcbiAgaWYoISFEYXRlRmlsdGVyRnVuY3NbZmlsdGVySW5mby5maWx0ZXJUeXBlXSl7XHJcbiAgICBjb25zdCBkID0gbmV3IERhdGUodmFsKTtcclxuICAgIGQuc2V0SG91cnMoMCwwLDAsMCk7XHJcbiAgICByZXR1cm4gZDtcclxuICB9XHJcbiAgcmV0dXJuIHZhbDtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IERhdGVGaWx0ZXJGdW5jczogRGljdGlvbmFyeTxGaWx0ZXJGdW5jPGFueSxhbnk+PiA9IHtcclxuICAgIFtGaWx0ZXJUeXBlLkRhdGVJc09uXTogZGF0ZUlzT25GdW5jLFxyXG4gICAgW0ZpbHRlclR5cGUuRGF0ZUlzTm90T25dOiBkYXRlSXNOb3RPbkZ1bmMsXHJcbiAgICBbRmlsdGVyVHlwZS5EYXRlT25PckFmdGVyXTogZGF0ZUlzT25PckFmdGVyRnVuYyxcclxuICAgIFtGaWx0ZXJUeXBlLkRhdGVPbk9yQmVmb3JlXTogZGF0ZUlzT25PckJlZm9yZUZ1bmMsXHJcbiAgICBbRmlsdGVyVHlwZS5EYXRlQmV0d2Vlbl06IGRhdGVCZXR3ZWVuRnVuYyxcclxuICAgIFtGaWx0ZXJUeXBlLklzTnVsbF06IGlzTnVsbCxcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBEYXRlVGltZUZpbHRlckZ1bmNzOiBEaWN0aW9uYXJ5PEZpbHRlckZ1bmM8YW55LGFueT4+ID0ge1xyXG4gIC4uLkRhdGVGaWx0ZXJGdW5jcyxcclxuICBbRmlsdGVyVHlwZS5EYXRlVGltZUlzQXRdOiBkYXRlSXNPbkZ1bmMsXHJcbiAgW0ZpbHRlclR5cGUuRGF0ZVRpbWVJc05vdEF0XTogZGF0ZUlzTm90T25GdW5jLFxyXG4gIFtGaWx0ZXJUeXBlLkRhdGVUaW1lQXRPckFmdGVyXTogZGF0ZUlzT25PckFmdGVyRnVuYyxcclxuICBbRmlsdGVyVHlwZS5EYXRlVGltZUF0T3JCZWZvcmVdOiBkYXRlSXNPbk9yQmVmb3JlRnVuYyxcclxuICBbRmlsdGVyVHlwZS5EYXRlVGltZUJldHdlZW5dOiBkYXRlQmV0d2VlbkZ1bmMsXHJcbiAgW0ZpbHRlclR5cGUuSXNOdWxsXTogaXNOdWxsLFxyXG59O1xyXG4iXX0=