@one-paragon/angular-utilities 1.1.8 → 1.2.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 (404) hide show
  1. package/action-state/action-state-spinner/action-state-spinner.component.d.ts +12 -0
  2. package/action-state/action-state-ui/action-state-ui.module.d.ts +7 -0
  3. package/{src/action-state/index.ts → action-state/index.d.ts} +4 -8
  4. package/action-state/ngrx-ext/ngrx-ext.module.d.ts +8 -0
  5. package/action-state/ngrx.d.ts +31 -0
  6. package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +24 -0
  7. package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +20 -0
  8. package/esm2022/action-state/index.mjs +8 -0
  9. package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +23 -0
  10. package/esm2022/action-state/ngrx.mjs +42 -0
  11. package/esm2022/http-request-state/HttpRequestStateFactory.mjs +52 -0
  12. package/esm2022/http-request-state/HttpRequestStateStore.mjs +101 -0
  13. package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +34 -0
  14. package/esm2022/http-request-state/directives/http-error-state-directive.mjs +29 -0
  15. package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +29 -0
  16. package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +29 -0
  17. package/esm2022/http-request-state/directives/http-success-state-directive.mjs +34 -0
  18. package/esm2022/http-request-state/directives/index.mjs +6 -0
  19. package/esm2022/http-request-state/directives/request-state-directive.mjs +60 -0
  20. package/esm2022/http-request-state/helpers.mjs +22 -0
  21. package/esm2022/http-request-state/http-request-state.mjs +39 -0
  22. package/esm2022/http-request-state/http-state-module.mjs +40 -0
  23. package/esm2022/http-request-state/index.mjs +7 -0
  24. package/esm2022/http-request-state/rxjs/getRequestorBody.mjs +4 -0
  25. package/esm2022/http-request-state/rxjs/getRequestorState.mjs +3 -0
  26. package/esm2022/http-request-state/rxjs/index.mjs +5 -0
  27. package/esm2022/http-request-state/rxjs/tapError.mjs +12 -0
  28. package/esm2022/http-request-state/rxjs/tapSuccess.mjs +12 -0
  29. package/esm2022/http-request-state/types.mjs +16 -0
  30. package/esm2022/ngrx/actionable-selector.mjs +73 -0
  31. package/esm2022/ngrx/index.mjs +2 -0
  32. package/esm2022/one-paragon-angular-utilities.mjs +5 -0
  33. package/esm2022/public-api.mjs +20 -0
  34. package/esm2022/rxjs/defaultShareReplay.mjs +7 -0
  35. package/esm2022/rxjs/index.mjs +6 -0
  36. package/esm2022/rxjs/mapError.mjs +8 -0
  37. package/esm2022/rxjs/rxjs-operators.mjs +92 -0
  38. package/esm2022/rxjs/subjectifier.mjs +15 -0
  39. package/esm2022/rxjs/subscriber.directive.mjs +52 -0
  40. package/esm2022/table-builder/classes/DefaultSettings.mjs +6 -0
  41. package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +21 -0
  42. package/esm2022/table-builder/classes/TableBuilderConfig.mjs +18 -0
  43. package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +50 -0
  44. package/esm2022/table-builder/classes/TableState.mjs +47 -0
  45. package/esm2022/table-builder/classes/display-col.mjs +2 -0
  46. package/esm2022/table-builder/classes/filter-info.mjs +73 -0
  47. package/esm2022/table-builder/classes/table-builder-general-settings.mjs +107 -0
  48. package/esm2022/table-builder/classes/table-builder.mjs +74 -0
  49. package/esm2022/table-builder/classes/table-store.mjs +357 -0
  50. package/esm2022/table-builder/components/array-column.component.mjs +57 -0
  51. package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +125 -0
  52. package/esm2022/table-builder/components/column-builder/column-helpers.mjs +26 -0
  53. package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +29 -0
  54. package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +24 -0
  55. package/esm2022/table-builder/components/filter/filter.component.mjs +67 -0
  56. package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +101 -0
  57. package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +53 -0
  58. package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +225 -0
  59. package/esm2022/table-builder/components/generic-table/paginator.component.mjs +94 -0
  60. package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +23 -0
  61. package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +100 -0
  62. package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +64 -0
  63. package/esm2022/table-builder/components/index.mjs +10 -0
  64. package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +40 -0
  65. package/esm2022/table-builder/components/link-column.component.mjs +78 -0
  66. package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +29 -0
  67. package/esm2022/table-builder/components/profiles-menu/profiles-menu.component.mjs +66 -0
  68. package/esm2022/table-builder/components/scroll-strategy.mjs +68 -0
  69. package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +44 -0
  70. package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +81 -0
  71. package/esm2022/table-builder/components/table-container/table-container-imports.mjs +26 -0
  72. package/esm2022/table-builder/components/table-container/table-container.helpers/data-state.helpers.mjs +135 -0
  73. package/esm2022/table-builder/components/table-container/table-container.helpers/filter-state.helpers.mjs +83 -0
  74. package/esm2022/table-builder/components/table-container/table-container.helpers/groupBy.helpers.mjs +71 -0
  75. package/esm2022/table-builder/components/table-container/table-container.helpers/sort-state.helpers.mjs +36 -0
  76. package/esm2022/table-builder/components/table-container/table-container.mjs +287 -0
  77. package/esm2022/table-builder/components/table-container/tableProps.mjs +7 -0
  78. package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +119 -0
  79. package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +47 -0
  80. package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +36 -0
  81. package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +25 -0
  82. package/esm2022/table-builder/directives/custom-cell-directive.mjs +70 -0
  83. package/esm2022/table-builder/directives/index.mjs +6 -0
  84. package/esm2022/table-builder/directives/multi-sort.directive.mjs +50 -0
  85. package/esm2022/table-builder/directives/resize-column.directive.mjs +88 -0
  86. package/esm2022/table-builder/directives/table-wrapper.directive.mjs +20 -0
  87. package/esm2022/table-builder/directives/tb-filter.directive.mjs +410 -0
  88. package/esm2022/table-builder/enums/filterTypes.mjs +72 -0
  89. package/esm2022/table-builder/functions/boolean-filter-function.mjs +10 -0
  90. package/esm2022/table-builder/functions/date-filter-function.mjs +58 -0
  91. package/esm2022/table-builder/functions/download-data.mjs +12 -0
  92. package/esm2022/table-builder/functions/null-filter-function.mjs +8 -0
  93. package/esm2022/table-builder/functions/number-filter-function.mjs +32 -0
  94. package/esm2022/table-builder/functions/sort-data-function.mjs +17 -0
  95. package/esm2022/table-builder/functions/string-filter-function.mjs +41 -0
  96. package/esm2022/table-builder/interfaces/ColumnInfo.mjs +2 -0
  97. package/esm2022/table-builder/interfaces/dictionary.mjs +2 -0
  98. package/esm2022/table-builder/interfaces/report-def.mjs +50 -0
  99. package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +154 -0
  100. package/esm2022/table-builder/pipes/column-total.pipe.mjs +22 -0
  101. package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +18 -0
  102. package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +45 -0
  103. package/esm2022/table-builder/pipes/key-display.mjs +20 -0
  104. package/esm2022/table-builder/services/export-to-csv.service.mjs +91 -0
  105. package/esm2022/table-builder/services/link-creator.service.mjs +50 -0
  106. package/esm2022/table-builder/services/table-template-service.mjs +57 -0
  107. package/esm2022/table-builder/services/transform-creator.mjs +105 -0
  108. package/esm2022/table-builder/table-builder.module.mjs +124 -0
  109. package/esm2022/utilities/array-helpers.mjs +14 -0
  110. package/esm2022/utilities/directives/auto-focus.directive.mjs +27 -0
  111. package/esm2022/utilities/directives/clickEmitterDirective.mjs +22 -0
  112. package/esm2022/utilities/directives/clickSubject.mjs +28 -0
  113. package/esm2022/utilities/directives/conditional-classes.directive.mjs +36 -0
  114. package/esm2022/utilities/directives/dialog-service.mjs +23 -0
  115. package/esm2022/utilities/directives/dialog.mjs +146 -0
  116. package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +60 -0
  117. package/esm2022/utilities/directives/prevent-enter.directive.mjs +20 -0
  118. package/esm2022/utilities/directives/stop-propagation.directive.mjs +26 -0
  119. package/esm2022/utilities/directives/styler.mjs +42 -0
  120. package/esm2022/utilities/directives/trim-whitespace.directive.mjs +30 -0
  121. package/esm2022/utilities/index.mjs +16 -0
  122. package/esm2022/utilities/module.mjs +90 -0
  123. package/esm2022/utilities/pipes/function.pipe.mjs +22 -0
  124. package/esm2022/utilities/pipes/phone.pipe.mjs +20 -0
  125. package/esm2022/utilities/pipes/space-case.pipes.mjs +28 -0
  126. package/fesm2022/one-paragon-angular-utilities.mjs +5564 -0
  127. package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -0
  128. package/http-request-state/HttpRequestStateFactory.d.ts +17 -0
  129. package/http-request-state/HttpRequestStateStore.d.ts +49 -0
  130. package/http-request-state/directives/HttpStateDirectiveBase.d.ts +16 -0
  131. package/http-request-state/directives/http-error-state-directive.d.ts +12 -0
  132. package/http-request-state/directives/http-inProgress-state-directive.d.ts +12 -0
  133. package/http-request-state/directives/http-notStarted-state-directive.d.ts +12 -0
  134. package/http-request-state/directives/http-success-state-directive.d.ts +21 -0
  135. package/{src/http-request-state/directives/index.ts → http-request-state/directives/index.d.ts} +5 -5
  136. package/http-request-state/directives/request-state-directive.d.ts +35 -0
  137. package/http-request-state/helpers.d.ts +9 -0
  138. package/http-request-state/http-request-state.d.ts +12 -0
  139. package/http-request-state/http-state-module.d.ts +11 -0
  140. package/{src/http-request-state/index.ts → http-request-state/index.d.ts} +6 -6
  141. package/http-request-state/rxjs/getRequestorBody.d.ts +3 -0
  142. package/http-request-state/rxjs/getRequestorState.d.ts +3 -0
  143. package/{src/http-request-state/rxjs/index.ts → http-request-state/rxjs/index.d.ts} +4 -4
  144. package/http-request-state/rxjs/tapError.d.ts +3 -0
  145. package/http-request-state/rxjs/tapSuccess.d.ts +3 -0
  146. package/http-request-state/types.d.ts +41 -0
  147. package/index.d.ts +5 -0
  148. package/ngrx/actionable-selector.d.ts +17 -0
  149. package/ngrx/index.d.ts +1 -0
  150. package/package.json +30 -16
  151. package/{src/public-api.ts → public-api.d.ts} +16 -35
  152. package/rxjs/defaultShareReplay.d.ts +2 -0
  153. package/{src/rxjs/index.ts → rxjs/index.d.ts} +5 -5
  154. package/rxjs/mapError.d.ts +2 -0
  155. package/rxjs/rxjs-operators.d.ts +13 -0
  156. package/rxjs/subjectifier.d.ts +9 -0
  157. package/rxjs/subscriber.directive.d.ts +14 -0
  158. package/table-builder/classes/DefaultSettings.d.ts +9 -0
  159. package/table-builder/classes/MatTableObservableDataSource.d.ts +9 -0
  160. package/table-builder/classes/TableBuilderConfig.d.ts +21 -0
  161. package/table-builder/classes/TableBuilderDataSource.d.ts +14 -0
  162. package/table-builder/classes/TableState.d.ts +56 -0
  163. package/{src/table-builder/classes/display-col.ts → table-builder/classes/display-col.d.ts} +5 -5
  164. package/table-builder/classes/filter-info.d.ts +127 -0
  165. package/table-builder/classes/table-builder-general-settings.d.ts +72 -0
  166. package/table-builder/classes/table-builder.d.ts +18 -0
  167. package/table-builder/classes/table-store.d.ts +146 -0
  168. package/table-builder/components/array-column.component.d.ts +15 -0
  169. package/table-builder/components/column-builder/column-builder.component.d.ts +51 -0
  170. package/table-builder/components/column-builder/column-helpers.d.ts +28 -0
  171. package/table-builder/components/date-filter/date-filter.component.d.ts +10 -0
  172. package/table-builder/components/date-time-filter/date-time-filter.component.d.ts +10 -0
  173. package/table-builder/components/filter/filter.component.d.ts +112 -0
  174. package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +27 -0
  175. package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +16 -0
  176. package/table-builder/components/generic-table/generic-table.component.d.ts +68 -0
  177. package/table-builder/components/generic-table/paginator.component.d.ts +30 -0
  178. package/table-builder/components/group-by-list/group-by-list.component.d.ts +7 -0
  179. package/table-builder/components/header-menu/header-menu.component.d.ts +25 -0
  180. package/table-builder/components/in-filter/in-filter.component.d.ts +21 -0
  181. package/{src/table-builder/components/index.ts → table-builder/components/index.d.ts} +9 -9
  182. package/table-builder/components/initialization-component/initialization-component.d.ts +13 -0
  183. package/table-builder/components/link-column.component.d.ts +25 -0
  184. package/table-builder/components/number-filter/number-filter.component.d.ts +12 -0
  185. package/table-builder/components/profiles-menu/profiles-menu.component.d.ts +32 -0
  186. package/table-builder/components/scroll-strategy.d.ts +25 -0
  187. package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +24 -0
  188. package/table-builder/components/sort-menu/sort-menu.component.d.ts +25 -0
  189. package/{src/table-builder/components/table-container/table-container-imports.ts → table-builder/components/table-container/table-container-imports.d.ts} +14 -32
  190. package/table-builder/components/table-container/table-container.d.ts +73 -0
  191. package/table-builder/components/table-container/table-container.helpers/data-state.helpers.d.ts +6 -0
  192. package/table-builder/components/table-container/table-container.helpers/filter-state.helpers.d.ts +17 -0
  193. package/table-builder/components/table-container/table-container.helpers/groupBy.helpers.d.ts +17 -0
  194. package/table-builder/components/table-container/table-container.helpers/sort-state.helpers.d.ts +8 -0
  195. package/table-builder/components/table-container/tableProps.d.ts +11 -0
  196. package/table-builder/components/table-container/virtual-scroll-container.d.ts +23 -0
  197. package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +16 -0
  198. package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +14 -0
  199. package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +14 -0
  200. package/table-builder/directives/custom-cell-directive.d.ts +31 -0
  201. package/{src/table-builder/directives/index.ts → table-builder/directives/index.d.ts} +5 -6
  202. package/table-builder/directives/multi-sort.directive.d.ts +11 -0
  203. package/table-builder/directives/resize-column.directive.d.ts +44 -0
  204. package/table-builder/directives/table-wrapper.directive.d.ts +8 -0
  205. package/table-builder/directives/tb-filter.directive.d.ts +120 -0
  206. package/table-builder/enums/filterTypes.d.ts +77 -0
  207. package/table-builder/functions/boolean-filter-function.d.ts +3 -0
  208. package/table-builder/functions/date-filter-function.d.ts +4 -0
  209. package/table-builder/functions/download-data.d.ts +1 -0
  210. package/table-builder/functions/null-filter-function.d.ts +2 -0
  211. package/table-builder/functions/number-filter-function.d.ts +4 -0
  212. package/table-builder/functions/sort-data-function.d.ts +6 -0
  213. package/table-builder/functions/string-filter-function.d.ts +7 -0
  214. package/{src/table-builder/interfaces/ColumnInfo.ts → table-builder/interfaces/ColumnInfo.d.ts} +6 -7
  215. package/{src/table-builder/interfaces/dictionary.ts → table-builder/interfaces/dictionary.d.ts} +3 -3
  216. package/table-builder/interfaces/report-def.d.ts +147 -0
  217. package/table-builder/ngrx/tableBuilderStateStore.d.ts +70 -0
  218. package/table-builder/pipes/column-total.pipe.d.ts +8 -0
  219. package/table-builder/pipes/format-filter-type.pipe.d.ts +8 -0
  220. package/table-builder/pipes/format-filter-value.pipe.d.ts +14 -0
  221. package/table-builder/pipes/key-display.d.ts +11 -0
  222. package/table-builder/services/export-to-csv.service.d.ts +22 -0
  223. package/table-builder/services/link-creator.service.d.ts +16 -0
  224. package/table-builder/services/table-template-service.d.ts +15 -0
  225. package/table-builder/services/transform-creator.d.ts +21 -0
  226. package/table-builder/table-builder.module.d.ts +21 -0
  227. package/utilities/array-helpers.d.ts +1 -0
  228. package/utilities/directives/auto-focus.directive.d.ts +10 -0
  229. package/utilities/directives/clickEmitterDirective.d.ts +7 -0
  230. package/utilities/directives/clickSubject.d.ts +9 -0
  231. package/utilities/directives/conditional-classes.directive.d.ts +14 -0
  232. package/utilities/directives/dialog-service.d.ts +10 -0
  233. package/utilities/directives/dialog.d.ts +47 -0
  234. package/utilities/directives/mat-toggle-group-directive.d.ts +21 -0
  235. package/utilities/directives/prevent-enter.directive.d.ts +6 -0
  236. package/utilities/directives/stop-propagation.directive.d.ts +7 -0
  237. package/utilities/directives/styler.d.ts +17 -0
  238. package/utilities/directives/trim-whitespace.directive.d.ts +9 -0
  239. package/{src/utilities/index.ts → utilities/index.d.ts} +15 -22
  240. package/utilities/module.d.ts +19 -0
  241. package/utilities/pipes/function.pipe.d.ts +7 -0
  242. package/utilities/pipes/phone.pipe.d.ts +7 -0
  243. package/utilities/pipes/space-case.pipes.d.ts +17 -0
  244. package/karma.conf.js +0 -44
  245. package/ng-package.json +0 -7
  246. package/src/action-state/action-state-spinner/action-state-spinner.component.css +0 -16
  247. package/src/action-state/action-state-spinner/action-state-spinner.component.html +0 -6
  248. package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +0 -25
  249. package/src/action-state/action-state-spinner/action-state-spinner.component.ts +0 -26
  250. package/src/action-state/action-state-ui/action-state-ui.module.ts +0 -13
  251. package/src/action-state/ngrx-ext/ngrx-ext.module.ts +0 -15
  252. package/src/action-state/ngrx.ts +0 -69
  253. package/src/http-request-state/HttpRequestStateFactory.ts +0 -66
  254. package/src/http-request-state/HttpRequestStateStore.ts +0 -151
  255. package/src/http-request-state/directives/HttpStateDirectiveBase.ts +0 -38
  256. package/src/http-request-state/directives/http-error-state-directive.ts +0 -32
  257. package/src/http-request-state/directives/http-inProgress-state-directive.ts +0 -32
  258. package/src/http-request-state/directives/http-notStarted-state-directive.ts +0 -31
  259. package/src/http-request-state/directives/http-success-state-directive.ts +0 -40
  260. package/src/http-request-state/directives/request-state-directive.spec.ts +0 -72
  261. package/src/http-request-state/directives/request-state-directive.ts +0 -79
  262. package/src/http-request-state/helpers.ts +0 -30
  263. package/src/http-request-state/http-request-state.ts +0 -69
  264. package/src/http-request-state/http-state-module.ts +0 -23
  265. package/src/http-request-state/observable.spec.ts +0 -43
  266. package/src/http-request-state/rxjs/getRequestorBody.ts +0 -10
  267. package/src/http-request-state/rxjs/getRequestorState.ts +0 -8
  268. package/src/http-request-state/rxjs/tapError.ts +0 -16
  269. package/src/http-request-state/rxjs/tapSuccess.ts +0 -16
  270. package/src/http-request-state/strategies.spec.ts +0 -42
  271. package/src/http-request-state/types.ts +0 -56
  272. package/src/ngrx/actionable-selector.ts +0 -95
  273. package/src/ngrx/index.ts +0 -1
  274. package/src/rxjs/defaultShareReplay.ts +0 -8
  275. package/src/rxjs/mapError.ts +0 -8
  276. package/src/rxjs/rxjs-operators.ts +0 -132
  277. package/src/rxjs/subjectifier.ts +0 -15
  278. package/src/rxjs/subscriber.directive.ts +0 -57
  279. package/src/specs/clickSubject.spec.ts +0 -95
  280. package/src/specs/dialog.spec.ts +0 -101
  281. package/src/specs/toggleGroupDirective.spec.ts +0 -229
  282. package/src/table-builder/classes/DefaultSettings.ts +0 -11
  283. package/src/table-builder/classes/MatTableObservableDataSource.ts +0 -23
  284. package/src/table-builder/classes/TableBuilderConfig.ts +0 -35
  285. package/src/table-builder/classes/TableBuilderDataSource.ts +0 -57
  286. package/src/table-builder/classes/TableState.ts +0 -87
  287. package/src/table-builder/classes/filter-info.ts +0 -131
  288. package/src/table-builder/classes/table-builder-general-settings.ts +0 -115
  289. package/src/table-builder/classes/table-builder.ts +0 -94
  290. package/src/table-builder/classes/table-store.ts +0 -435
  291. package/src/table-builder/components/array-column.component.ts +0 -36
  292. package/src/table-builder/components/column-builder/column-builder.component.html +0 -61
  293. package/src/table-builder/components/column-builder/column-builder.component.scss +0 -43
  294. package/src/table-builder/components/column-builder/column-builder.component.spec.ts +0 -49
  295. package/src/table-builder/components/column-builder/column-builder.component.ts +0 -137
  296. package/src/table-builder/components/column-builder/column-helpers.ts +0 -36
  297. package/src/table-builder/components/date-filter/date-filter.component.html +0 -23
  298. package/src/table-builder/components/date-filter/date-filter.component.ts +0 -24
  299. package/src/table-builder/components/date-time-filter/date-time-filter.component.html +0 -9
  300. package/src/table-builder/components/date-time-filter/date-time-filter.component.ts +0 -22
  301. package/src/table-builder/components/filter/filter.component.html +0 -88
  302. package/src/table-builder/components/filter/filter.component.scss +0 -64
  303. package/src/table-builder/components/filter/filter.component.spec.ts +0 -87
  304. package/src/table-builder/components/filter/filter.component.ts +0 -55
  305. package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +0 -92
  306. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +0 -55
  307. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +0 -57
  308. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +0 -57
  309. package/src/table-builder/components/generic-table/generic-table.component.html +0 -71
  310. package/src/table-builder/components/generic-table/generic-table.component.scss +0 -51
  311. package/src/table-builder/components/generic-table/generic-table.component.ts +0 -264
  312. package/src/table-builder/components/generic-table/paginator.component.ts +0 -106
  313. package/src/table-builder/components/group-by-list/group-by-list.component.css +0 -8
  314. package/src/table-builder/components/group-by-list/group-by-list.component.html +0 -12
  315. package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +0 -23
  316. package/src/table-builder/components/group-by-list/group-by-list.component.ts +0 -21
  317. package/src/table-builder/components/header-menu/header-menu.component.html +0 -104
  318. package/src/table-builder/components/header-menu/header-menu.component.scss +0 -96
  319. package/src/table-builder/components/header-menu/header-menu.component.ts +0 -98
  320. package/src/table-builder/components/in-filter/in-filter.component.css +0 -3
  321. package/src/table-builder/components/in-filter/in-filter.component.html +0 -20
  322. package/src/table-builder/components/in-filter/in-filter.component.ts +0 -64
  323. package/src/table-builder/components/initialization-component/initialization-component.html +0 -29
  324. package/src/table-builder/components/initialization-component/initialization-component.ts +0 -24
  325. package/src/table-builder/components/link-column.component.ts +0 -47
  326. package/src/table-builder/components/number-filter/number-filter.component.css +0 -10
  327. package/src/table-builder/components/number-filter/number-filter.component.html +0 -19
  328. package/src/table-builder/components/number-filter/number-filter.component.spec.ts +0 -30
  329. package/src/table-builder/components/number-filter/number-filter.component.ts +0 -25
  330. package/src/table-builder/components/profiles-menu/profiles-menu.component.html +0 -74
  331. package/src/table-builder/components/profiles-menu/profiles-menu.component.scss +0 -98
  332. package/src/table-builder/components/profiles-menu/profiles-menu.component.spec.ts +0 -23
  333. package/src/table-builder/components/profiles-menu/profiles-menu.component.ts +0 -65
  334. package/src/table-builder/components/scroll-strategy.ts +0 -89
  335. package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +0 -63
  336. package/src/table-builder/components/sort-menu/sort-menu.component.html +0 -111
  337. package/src/table-builder/components/sort-menu/sort-menu.component.scss +0 -119
  338. package/src/table-builder/components/sort-menu/sort-menu.component.ts +0 -95
  339. package/src/table-builder/components/table-container/table-container.css +0 -54
  340. package/src/table-builder/components/table-container/table-container.helpers/data-state.helpers.ts +0 -141
  341. package/src/table-builder/components/table-container/table-container.helpers/filter-state.helpers.ts +0 -106
  342. package/src/table-builder/components/table-container/table-container.helpers/groupBy.helpers.ts +0 -86
  343. package/src/table-builder/components/table-container/table-container.helpers/sort-state.helpers.ts +0 -45
  344. package/src/table-builder/components/table-container/table-container.html +0 -96
  345. package/src/table-builder/components/table-container/table-container.spec.ts +0 -154
  346. package/src/table-builder/components/table-container/table-container.ts +0 -319
  347. package/src/table-builder/components/table-container/tableProps.ts +0 -18
  348. package/src/table-builder/components/table-container/virtual-scroll-container.ts +0 -141
  349. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +0 -31
  350. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +0 -52
  351. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +0 -42
  352. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +0 -10
  353. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +0 -86
  354. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +0 -38
  355. package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +0 -23
  356. package/src/table-builder/directives/custom-cell-directive.ts +0 -58
  357. package/src/table-builder/directives/multi-sort.directive.spec.ts +0 -124
  358. package/src/table-builder/directives/multi-sort.directive.ts +0 -49
  359. package/src/table-builder/directives/resize-column.directive.ts +0 -105
  360. package/src/table-builder/directives/table-wrapper.directive.ts +0 -14
  361. package/src/table-builder/directives/tb-filter.directive.ts +0 -370
  362. package/src/table-builder/enums/filterTypes.ts +0 -79
  363. package/src/table-builder/functions/boolean-filter-function.ts +0 -13
  364. package/src/table-builder/functions/date-filter-function.ts +0 -69
  365. package/src/table-builder/functions/download-data.ts +0 -11
  366. package/src/table-builder/functions/null-filter-function.ts +0 -9
  367. package/src/table-builder/functions/number-filter-function.ts +0 -42
  368. package/src/table-builder/functions/sort-data-function.ts +0 -23
  369. package/src/table-builder/functions/string-filter-function.ts +0 -52
  370. package/src/table-builder/interfaces/column-template.ts +0 -9
  371. package/src/table-builder/interfaces/report-def.ts +0 -155
  372. package/src/table-builder/ngrx/tableBuilderStateStore.ts +0 -199
  373. package/src/table-builder/pipes/column-total.pipe.ts +0 -17
  374. package/src/table-builder/pipes/format-filter-type.pipe.ts +0 -12
  375. package/src/table-builder/pipes/format-filter-value.pipe.ts +0 -41
  376. package/src/table-builder/pipes/key-display.ts +0 -16
  377. package/src/table-builder/services/export-to-csv.service.ts +0 -98
  378. package/src/table-builder/services/link-creator.service.ts +0 -67
  379. package/src/table-builder/services/table-template-service.ts +0 -57
  380. package/src/table-builder/services/transform-creator.ts +0 -96
  381. package/src/table-builder/specs/table-custom-filters.spec.ts +0 -262
  382. package/src/table-builder/styles/collapser.styles.scss +0 -19
  383. package/src/table-builder/table-builder.module.ts +0 -73
  384. package/src/test.ts +0 -17
  385. package/src/utilities/array-helpers.ts +0 -13
  386. package/src/utilities/directives/auto-focus.directive.ts +0 -20
  387. package/src/utilities/directives/clickEmitterDirective.ts +0 -16
  388. package/src/utilities/directives/clickSubject.ts +0 -20
  389. package/src/utilities/directives/conditional-classes.directive.ts +0 -36
  390. package/src/utilities/directives/dialog-service.ts +0 -19
  391. package/src/utilities/directives/dialog.ts +0 -147
  392. package/src/utilities/directives/mat-toggle-group-directive.ts +0 -61
  393. package/src/utilities/directives/prevent-enter.directive.ts +0 -13
  394. package/src/utilities/directives/stop-propagation.directive.ts +0 -20
  395. package/src/utilities/directives/styler.ts +0 -39
  396. package/src/utilities/directives/trim-whitespace.directive.ts +0 -21
  397. package/src/utilities/module.ts +0 -55
  398. package/src/utilities/pipes/function.pipe.ts +0 -16
  399. package/src/utilities/pipes/phone.pipe.ts +0 -15
  400. package/src/utilities/pipes/space-case.pipes.spec.ts +0 -47
  401. package/src/utilities/pipes/space-case.pipes.ts +0 -23
  402. package/tsconfig.lib.json +0 -19
  403. package/tsconfig.lib.prod.json +0 -10
  404. package/tsconfig.spec.json +0 -17
@@ -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: "18.1.2", ngImport: i0, type: TableCustomFilterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
26
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: TableCustomFilterDirective, selector: " ", ngImport: i0 }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.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: "18.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: "18.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: "18.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: "18.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: "18.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: "18.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: "18.1.2", ngImport: i0, type: TableCustomFilterDirectiveBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
216
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.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: "18.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: "18.1.2", ngImport: i0, type: TbSelectedFilterDirective, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
255
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: TbSelectedFilterDirective, usesInheritance: true, ngImport: i0 }); }
256
+ }
257
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.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: "18.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: "18.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: "18.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: "18.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: "18.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: "18.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: "18.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: "18.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: "18.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: "18.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: "18.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: "18.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: "18.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: "18.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: "18.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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RUFBYyxPQUE4QjtRQUM5RixLQUFLLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRG5ELG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUVwRCxDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDOzhHQVhVLDhCQUE4QjtrR0FBOUIsOEJBQThCLDhKQUg5QixDQUFDLEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFdBQVcsRUFBRSw4QkFBOEIsRUFBRSxDQUFDOzsyRkFHdEYsOEJBQThCO2tCQVIxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQ0FBbUM7b0JBQzdDLE1BQU0sRUFBRTt3QkFDTixHQUFHLE1BQU07cUJBQ1Y7b0JBQ0QsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsV0FBVyxnQ0FBZ0MsRUFBRSxDQUFDO29CQUNqRyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQU13RCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT3B0aW9uYWwsIFByZWRpY2F0ZSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBDdXN0b21GaWx0ZXIsIEZpbHRlckluZm8gfSBmcm9tIFwiLi4vY2xhc3Nlcy9maWx0ZXItaW5mb1wiO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tIFwiLi4vZW51bXMvZmlsdGVyVHlwZXNcIjtcclxuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlXCI7XHJcbmltcG9ydCB7IE1hdFJhZGlvQnV0dG9uIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3JhZGlvXCI7XHJcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveFwiO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmXCI7XHJcbmltcG9ydCB7IE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gXCJAbmdyeC9jb21wb25lbnQtc3RvcmVcIjtcclxuaW1wb3J0IHsgVGFibGVXcmFwcGVyRGlyZWN0aXZlIH0gZnJvbSBcIi4vdGFibGUtd3JhcHBlci5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgTWF0T3B0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcclxuXHJcblxyXG5jb25zdCBpbnB1dHMgPSBbXHJcbiAgJ3ByZWRpY2F0ZTogdGJDdXN0b21GaWx0ZXInLFxyXG4gICdmaWx0ZXJJZDogZmlsdGVySWQnLFxyXG5dO1xyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnICdcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlPFQgPSBhbnk+IHtcclxuICBhYnN0cmFjdCBmaWx0ZXIkIDogT2JzZXJ2YWJsZTxDdXN0b21GaWx0ZXI+O1xyXG4gIGZpbHRlcklkITogc3RyaW5nO1xyXG4gIHNhdmFibGUgPSBmYWxzZTtcclxuICB1c2VkID0gZmFsc2U7XHJcbiAgYWJzdHJhY3QgYWN0aXZlOiBib29sZWFuO1xyXG4gIGFic3RyYWN0IHJlc2V0KCk6IHZvaWQ7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBcIlt0YkZpbHRlcl1cIixcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KSBleHBvcnQgY2xhc3MgVGFibGVGaWx0ZXJEaXJlY3RpdmUgZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxGaWx0ZXJJbmZvPiB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByb3RlY3RlZCAgbW9kZWw6IE5nQ29udHJvbCwgQE9wdGlvbmFsKCkgd3JhcHBlcjogVGFibGVXcmFwcGVyRGlyZWN0aXZlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgaWYod3JhcHBlcikge1xyXG4gICAgICB3cmFwcGVyLnJlZ2lzdGVyKHRoaXMpO1xyXG4gICAgfVxyXG4gICAgaWYobW9kZWwpIHtcclxuICAgICAgdGhpcy5lZmZlY3QoICgpID0+IHtcclxuICAgICAgICByZXR1cm4gbW9kZWwudmFsdWVDaGFuZ2VzIS5waXBlKFxyXG4gICAgICAgICAgdGFwKCB2YWwgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZpbHRlclZhbHVlID0gdmFsO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5maWx0ZXJWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICB9XHJcbiAgZmlsdGVyJCA9IHRoaXMuc3RhdGUkO1xyXG5cclxuICBASW5wdXQoKSBmaWx0ZXJUeXBlITogRmlsdGVyVHlwZTtcclxuICBASW5wdXQoKSBrZXkhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZmllbGRUeXBlITogRmllbGRUeXBlO1xyXG4gIEBJbnB1dCgpIGZpbHRlcklkITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFjdGl2ZSA9IHRydWU7XHJcbiAgQElucHV0KCkgZmlsdGVyVmFsdWU6IGFueSA9IG51bGw7XHJcblxyXG4gIHNldEZpbHRlclZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmKHRoaXMubW9kZWwpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5yZXNldCh2YWx1ZSk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5maWx0ZXJWYWx1ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHVzZWQgPSBmYWxzZTtcclxuICBzYXZhYmxlID0gZmFsc2U7XHJcbiAgcmVhZHkgPSBmYWxzZTtcclxuXHJcbiAgX3VzZXJBY3RpdmUgPSB0cnVlO1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMgKSB7XHJcbiAgICB0aGlzLnVwZGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZighdGhpcy5maWx0ZXJJZCkge1xyXG4gICAgICB0aGlzLmZpbHRlcklkID0gdXVpZCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zYXZhYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMucmVhZHkgPSB0cnVlO1xyXG4gICAgdGhpcy51cGRhdGUoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzZXRGaWx0ZXIoZmlsdGVyOiBGaWx0ZXJJbmZvICkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZShmaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKCkge1xyXG4gICAgaWYgKHRoaXMucmVhZHkpIHtcclxuICAgICAgdGhpcy5zZXRGaWx0ZXIoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZmlsdGVySWQ6IHRoaXMuZmlsdGVySWQsXHJcbiAgICAgICAgICBrZXk6IHRoaXMua2V5LFxyXG4gICAgICAgICAgZmlsdGVyVHlwZTogdGhpcy5maWx0ZXJUeXBlLFxyXG4gICAgICAgICAgZmllbGRUeXBlOiB0aGlzLmZpZWxkVHlwZSxcclxuICAgICAgICAgIGZpbHRlclZhbHVlOiB0aGlzLmZpbHRlclZhbHVlLFxyXG4gICAgICAgICAgYWN0aXZlOiB0aGlzLmFjdGl2ZSAmJiB0aGlzLmZpbHRlclZhbHVlICE9PSB1bmRlZmluZWQsXHJcbiAgICAgICAgICBfaXNFeHRlcm5hbGx5TWFuYWdlZDogdHJ1ZSxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcblxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbdGJGaWx0ZXJTdHJpbmdDb250YWluc10nLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVGFibGVGaWx0ZXJEaXJlY3RpdmUsIHVzZUV4aXN0aW5nOiBUYWJsZUZpbHRlclN0cmluZ0NvbnRhaW5zRGlyZWN0aXZlIH1dLFxyXG4gIGlucHV0czogW1xyXG4gICAgJ2tleTp0YkZpbHRlclN0cmluZ0NvbnRhaW5zJyxcclxuICAgICdmaWx0ZXJWYWx1ZTpmaWx0ZXJWYWx1ZScsXHJcbiAgICAnZmlsdGVySWQ6IGZpbHRlcklkJyxcclxuICAgICdhY3RpdmU6IGFjdGl2ZScsXHJcbiAgXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KSBleHBvcnQgY2xhc3MgVGFibGVGaWx0ZXJTdHJpbmdDb250YWluc0RpcmVjdGl2ZSBleHRlbmRzIFRhYmxlRmlsdGVyRGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSAgbW9kZWw6IE5nQ29udHJvbCwgQE9wdGlvbmFsKCkgd3JhcHBlcjogVGFibGVXcmFwcGVyRGlyZWN0aXZlKSB7XHJcbiAgICBzdXBlcihtb2RlbCx3cmFwcGVyKTtcclxuICAgIHRoaXMuZmlsdGVyVHlwZSA9IEZpbHRlclR5cGUuU3RyaW5nQ29udGFpbnM7XHJcbiAgICB0aGlzLmZpZWxkVHlwZSA9IEZpZWxkVHlwZS5TdHJpbmc7XHJcbiAgICB0aGlzLmVmZmVjdCggKCkgPT4ge1xyXG4gICAgICByZXR1cm4gbW9kZWwudmFsdWVDaGFuZ2VzIS5waXBlKFxyXG4gICAgICAgIHRhcCggdmFsID0+IHtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyVmFsdWUgPSB2YWw7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSByZXNldCgpIHtcclxuICAgIGlmKHRoaXMubW9kZWwpIHtcclxuICAgICAgdGhpcy5tb2RlbC5yZXNldCgpO1xyXG4gICAgfVxyXG4gICAgc3VwZXIucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHNldEZpbHRlcihmaWx0ZXI6IEZpbHRlckluZm8pIHtcclxuICAgIGZpbHRlci5hY3RpdmUgPSBmaWx0ZXIuZmlsdGVyVmFsdWUgJiYgdGhpcy5fdXNlckFjdGl2ZTtcclxuICAgIHN1cGVyLnNldEZpbHRlcihmaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYoY2hhbmdlc1snYWN0aXZlJ10pIHtcclxuICAgICAgdGhpcy5fdXNlckFjdGl2ZSA9IGNoYW5nZXNbJ2FjdGl2ZSddLmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xyXG4gIH1cclxufVxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IFwiW3RiQ3VzdG9tRmlsdGVyXVwiLFxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGFibGVDdXN0b21GaWx0ZXJEaXJlY3RpdmVCYXNlPFQgPSBhbnk+IGV4dGVuZHMgVGFibGVDdXN0b21GaWx0ZXJEaXJlY3RpdmU8VD4ge1xyXG5cclxuICBmaWx0ZXIkISA6IFN1YmplY3Q8Q3VzdG9tRmlsdGVyPjtcclxuICBmaWx0ZXIhOiBDdXN0b21GaWx0ZXI7XHJcbiAgQElucHV0KCkgZmlsdGVySWQhIDogc3RyaW5nO1xyXG5cclxuICBfcHJlZGljYXRlITogUHJlZGljYXRlPFQ+O1xyXG4gIEBJbnB1dCgndGJDdXN0b21GaWx0ZXInKSBzZXQgcHJlZGljYXRlKCB2YWw6IFByZWRpY2F0ZTxUPiApIHtcclxuICAgIHRoaXMuX3ByZWRpY2F0ZSA9IHZhbDtcclxuICAgIHRoaXMudXBkYXRlKHtwcmVkaWNhdGU6dmFsfSk7XHJcbiAgfVxyXG5cclxuICBfYWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcmVhZHkgPSBmYWxzZTtcclxuXHJcbiAgdXBkYXRlKHZhbDogUGFydGlhbDxDdXN0b21GaWx0ZXI+ICkge1xyXG4gICAgaWYodGhpcy5yZWFkeSkge1xyXG4gICAgICB0aGlzLmZpbHRlciA9IHsuLi50aGlzLmZpbHRlciwuLi52YWx9O1xyXG4gICAgICB0aGlzLmZpbHRlciQubmV4dCh0aGlzLmZpbHRlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgYWN0aXZlKHZhbDogYm9vbGVhbikge1xyXG4gICAgaWYodGhpcy5fYWN0aXZlICE9PSB2YWwpIHtcclxuICAgICAgdGhpcy5fYWN0aXZlID0gdmFsO1xyXG4gICAgICB0aGlzLnVwZGF0ZSh7YWN0aXZlOnZhbH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgYWN0aXZlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYoIXRoaXMuZmlsdGVySWQpIHtcclxuICAgICAgdGhpcy5maWx0ZXJJZCA9IHV1aWQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2F2YWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWx0ZXIgPSB7XHJcbiAgICAgIGZpbHRlclR5cGU6IEZpbHRlclR5cGUuQ3VzdG9tLFxyXG4gICAgICBmaWx0ZXJJZDogdGhpcy5maWx0ZXJJZCxcclxuICAgICAgYWN0aXZlOiB0aGlzLl9hY3RpdmUsXHJcbiAgICAgIHByZWRpY2F0ZTogdGhpcy5fcHJlZGljYXRlLFxyXG4gICAgfTtcclxuICAgIHRoaXMucmVhZHkgPSB0cnVlO1xyXG4gICAgdGhpcy5maWx0ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmZpbHRlcik7XHJcbiAgfVxyXG59XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRiU2VsZWN0ZWRGaWx0ZXJEaXJlY3RpdmU8VCA9IGFueT4gIGV4dGVuZHMgVGFibGVDdXN0b21GaWx0ZXJEaXJlY3RpdmVCYXNlPFQ+IHtcclxuXHJcblxyXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZTogT2JzZXJ2YWJsZTxhbnk+LCBwcml2YXRlIGlzQWN0aXZlOiAoKSA9PiBib29sZWFuLCBAT3B0aW9uYWwoKSB3cmFwcGVyOiBUYWJsZVdyYXBwZXJEaXJlY3RpdmUpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBpZih3cmFwcGVyKSB7XHJcbiAgICAgIHdyYXBwZXIucmVnaXN0ZXIodGhpcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95U3ViamVjdCQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveVN1YmplY3QkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fYWN0aXZlID0gdGhpcy5pc0FjdGl2ZSgpO1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuY2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveVN1YmplY3QkKSkuc3Vic2NyaWJlKCAoKSA9PiB7XHJcbiAgICAgIHRoaXMuYWN0aXZlID0gdGhpcy5pc0FjdGl2ZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBDaGVja2JveFxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ21hdC1jaGVja2JveFt0YkN1c3RvbUZpbHRlcl0nLFxyXG4gIGlucHV0czogW1xyXG4gICAgLi4uaW5wdXRzXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlLCB1c2VFeGlzdGluZzogTWF0Q2hlY2tib3hUYkZpbHRlckRpcmVjdGl2ZSB9XSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0Q2hlY2tib3hUYkZpbHRlckRpcmVjdGl2ZSBleHRlbmRzIFRiU2VsZWN0ZWRGaWx0ZXJEaXJlY3RpdmUge1xyXG5cclxuICBvdmVycmlkZSBzZXQgYWN0aXZlKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5tYXRDaGVja2JveC5jaGVja2VkID0gdmFsO1xyXG4gICAgc3VwZXIuYWN0aXZlID0gdmFsO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1hdENoZWNrYm94OiBNYXRDaGVja2JveCwgQE9wdGlvbmFsKCkgd3JhcHBlcjogVGFibGVXcmFwcGVyRGlyZWN0aXZlKSB7XHJcbiAgICBzdXBlcihtYXRDaGVja2JveC5jaGFuZ2UsICgpID0+IG1hdENoZWNrYm94LmNoZWNrZWQsIHdyYXBwZXIpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LXNsaWRlLXRvZ2dsZVt0YkN1c3RvbUZpbHRlcl0nLFxyXG4gIGlucHV0czogW1xyXG4gICAgLi4uaW5wdXRzXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlLCB1c2VFeGlzdGluZzogTWF0U2xpZGVUb2dnbGVUYkZpbHRlckRpcmVjdGl2ZSB9XSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0U2xpZGVUb2dnbGVUYkZpbHRlckRpcmVjdGl2ZTxUID0gYW55PiBleHRlbmRzIFRiU2VsZWN0ZWRGaWx0ZXJEaXJlY3RpdmU8VD4ge1xyXG4gIG92ZXJyaWRlIHNldCBhY3RpdmUodmFsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm1hdFNsaWRlVG9nZ2xlLmNoZWNrZWQgPSB2YWw7XHJcbiAgICBzdXBlci5hY3RpdmUgPSB2YWw7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWF0U2xpZGVUb2dnbGU6IE1hdFNsaWRlVG9nZ2xlLCBAT3B0aW9uYWwoKSB3cmFwcGVyOiBUYWJsZVdyYXBwZXJEaXJlY3RpdmUpIHtcclxuICAgIHN1cGVyKG1hdFNsaWRlVG9nZ2xlLmNoYW5nZSwgKCkgPT4gbWF0U2xpZGVUb2dnbGUuY2hlY2tlZCx3cmFwcGVyKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIFJhZGlvIGJ1dHRvblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ21hdC1yYWRpby1idXR0b25bdGJDdXN0b21GaWx0ZXJdJyxcclxuICBpbnB1dHM6IFsncHJlZGljYXRlOiB0YkN1c3RvbUZpbHRlciddLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVGFibGVDdXN0b21GaWx0ZXJEaXJlY3RpdmUsIHVzZUV4aXN0aW5nOiBNYXRSYWRpb0J1dHRvblRiRmlsdGVyRGlyZWN0aXZlIH1dLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRSYWRpb0J1dHRvblRiRmlsdGVyRGlyZWN0aXZlIGV4dGVuZHMgVGJTZWxlY3RlZEZpbHRlckRpcmVjdGl2ZSB7XHJcblxyXG4gIG92ZXJyaWRlIHNldCBhY3RpdmUodmFsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm1hdFJhZGlvQnV0dG9uLmNoZWNrZWQgPSB2YWw7XHJcbiAgICBzdXBlci5hY3RpdmUgPSB2YWw7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWF0UmFkaW9CdXR0b246IE1hdFJhZGlvQnV0dG9uLCBAT3B0aW9uYWwoKSB3cmFwcGVyOiBUYWJsZVdyYXBwZXJEaXJlY3RpdmUpIHtcclxuICAgIHN1cGVyKG1hdFJhZGlvQnV0dG9uLmNoYW5nZSwgKCkgPT4gbWF0UmFkaW9CdXR0b24uY2hlY2tlZCwgd3JhcHBlcik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBPcHRpb24gKHNlbGVjdClcclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtb3B0aW9uW3RiQ3VzdG9tRmlsdGVyXScsXHJcbiAgaW5wdXRzOiBbXHJcbiAgICAuLi5pbnB1dHNcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogVGFibGVDdXN0b21GaWx0ZXJEaXJlY3RpdmUsIHVzZUV4aXN0aW5nOiBNYXRPcHRpb25UYkZpbHRlckRpcmVjdGl2ZSB9XSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0T3B0aW9uVGJGaWx0ZXJEaXJlY3RpdmUgZXh0ZW5kcyBUYlNlbGVjdGVkRmlsdGVyRGlyZWN0aXZlIHtcclxuXHJcbiAgb3ZlcnJpZGUgc2V0IGFjdGl2ZSh2YWw6IGJvb2xlYW4pIHtcclxuICAgIGlmKHZhbCkge1xyXG4gICAgICB0aGlzLm1hdE9wdGlvbi5zZWxlY3QoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWF0T3B0aW9uLmRlc2VsZWN0KCk7XHJcbiAgICB9XHJcbiAgICBzdXBlci5hY3RpdmUgPSB2YWw7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWF0T3B0aW9uOiBNYXRPcHRpb24sIEBPcHRpb25hbCgpIHdyYXBwZXI6IFRhYmxlV3JhcHBlckRpcmVjdGl2ZSkge1xyXG4gICAgc3VwZXIoIG1hdE9wdGlvbi5vblNlbGVjdGlvbkNoYW5nZS5waXBlKHRhcCggZCA9PiB7XHJcbiAgICAgIGlmKCFtYXRPcHRpb24udmFsdWUpIHtcclxuICAgICAgICBtYXRPcHRpb24udmFsdWUgPSB1dWlkKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICApKSwgKCkgPT4gbWF0T3B0aW9uLnNlbGVjdGVkLCB3cmFwcGVyKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICB9XHJcbn1cclxuXHJcbi8vIEJ1dHRvbiB0b2dnbGVcclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtYnV0dG9uLXRvZ2dsZVt0YkN1c3RvbUZpbHRlcl0nLFxyXG4gIGlucHV0czogW1xyXG4gICAgLi4uaW5wdXRzXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFRhYmxlQ3VzdG9tRmlsdGVyRGlyZWN0aXZlLCB1c2VFeGlzdGluZzogTWF0QnV0dG9uVG9nZ2xlRmlsdGVyRGlyZWN0aXZlIH1dLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRCdXR0b25Ub2dnbGVGaWx0ZXJEaXJlY3RpdmUgZXh0ZW5kcyBUYlNlbGVjdGVkRmlsdGVyRGlyZWN0aXZlIHtcclxuICBvdmVycmlkZSBzZXQgYWN0aXZlKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5tYXRCdXR0b25Ub2dnbGUuY2hlY2tlZCA9IHZhbDtcclxuICAgIHN1cGVyLmFjdGl2ZSA9IHZhbDtcclxuICB9XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXRCdXR0b25Ub2dnbGU6IE1hdEJ1dHRvblRvZ2dsZSwgQE9wdGlvbmFsKCkgd3JhcHBlcjogVGFibGVXcmFwcGVyRGlyZWN0aXZlKSB7XHJcbiAgICBzdXBlcihtYXRCdXR0b25Ub2dnbGUuY2hhbmdlLCAoKSA9PiBtYXRCdXR0b25Ub2dnbGUuY2hlY2tlZCx3cmFwcGVyKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1maWx0ZXItZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9mdW5jdGlvbnMvYm9vbGVhbi1maWx0ZXItZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVoRCxNQUFPLGlCQUFpQixHQUF5QixDQUFDLFVBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFZLEVBQUU7SUFDMUYsT0FBTyxVQUFVLENBQUMsV0FBVyxLQUFLLEdBQUcsQ0FBQztBQUMxQyxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBb0M7SUFDOUQsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEVBQUUsaUJBQWlCO0lBQzdDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU07Q0FDL0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbHRlckZ1bmMsIEZpbHRlckluZm8gfSBmcm9tICcuLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uL2VudW1zL2ZpbHRlclR5cGVzJztcclxuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZGljdGlvbmFyeSc7XHJcbmltcG9ydCB7IGlzTnVsbCB9IGZyb20gJy4vbnVsbC1maWx0ZXItZnVuY3Rpb24nO1xyXG5cclxuY29uc3QgIGJvb2xlYW5FcXVhbHNGdW5jIDogRmlsdGVyRnVuYzxib29sZWFuPiA9IChmaWx0ZXJJbmZvOkZpbHRlckluZm8pID0+ICh2YWwpOiBib29sZWFuICA9PiB7XHJcbiAgICByZXR1cm4gZmlsdGVySW5mby5maWx0ZXJWYWx1ZSA9PT0gdmFsO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgQm9vbGVhbkZpbHRlckZ1bmNzOiBEaWN0aW9uYXJ5PEZpbHRlckZ1bmM8YW55LGFueT4+ID0ge1xyXG4gICAgIFtGaWx0ZXJUeXBlLkJvb2xlYW5FcXVhbHNdOiBib29sZWFuRXF1YWxzRnVuYyxcclxuICAgICBbRmlsdGVyVHlwZS5Jc051bGxdOiBpc051bGwsXHJcbn07XHJcbiJdfQ==
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWx0ZXItZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9mdW5jdGlvbnMvZGF0ZS1maWx0ZXItZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHaEQsTUFBTSxZQUFZLEdBQW9CLENBQUMsVUFBcUIsRUFBRSxFQUFFO0lBQzlELE1BQU0sT0FBTyxHQUFHLElBQUksSUFBSSxDQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1RCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUE7SUFDbEYsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFDLEVBQUUsQ0FBQSxLQUFLLENBQUMsVUFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFNLE9BQU8sQ0FBQyxDQUFDO0FBQy9ELENBQUMsQ0FBQTtBQUVELE1BQU0sZUFBZSxHQUFvQixDQUFDLFVBQXFCLEVBQUUsRUFBRTtJQUNqRSxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBRSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDL0QsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFBO0lBQ2xGLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsS0FBSyxDQUFDLFVBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBTSxVQUFVLENBQUMsQ0FBQztBQUNsRSxDQUFDLENBQUE7QUFFRCxNQUFNLG1CQUFtQixHQUFvQixDQUFDLFVBQXFCLEVBQUUsRUFBRTtJQUNyRSxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBRSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0QsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFBO0lBQ2xGLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsS0FBSyxDQUFDLFVBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSyxRQUFRLENBQUMsQ0FBQztBQUMvRCxDQUFDLENBQUE7QUFFRCxNQUFNLG9CQUFvQixHQUFvQixDQUFDLFVBQXFCLEVBQUUsRUFBRTtJQUN0RSxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBRSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDOUQsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFBO0lBQ2xGLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFLENBQUEsS0FBSyxDQUFDLFVBQVUsRUFBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSyxTQUFTLENBQUMsQ0FBQztBQUNoRSxDQUFDLENBQUE7QUFFRCxNQUFNLGVBQWUsR0FBZ0MsQ0FBQyxVQUFxQixFQUFFLEVBQUU7SUFDN0UsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQTtJQUNsRixPQUFPLENBQ0wsQ0FBQyxHQUFHLEVBQUMsRUFBRTtRQUNMLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDMUMsT0FBTyxVQUFVLElBQUUsUUFBUSxJQUFJLFVBQVUsSUFBSSxNQUFNLENBQUM7SUFDdEQsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUE7QUFFRCxNQUFNLGFBQWEsR0FBRyxDQUFDLFVBQXFCLEVBQUUsR0FBUyxFQUFFLEVBQUU7SUFDekQsSUFBRyxDQUFDLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBQyxDQUFDO1FBQzNDLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQW9DO0lBQzVELENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFlBQVk7SUFDbkMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsZUFBZTtJQUN6QyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxtQkFBbUI7SUFDL0MsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsb0JBQW9CO0lBQ2pELENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxFQUFFLGVBQWU7SUFDekMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTTtDQUM5QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQW9DO0lBQ2xFLEdBQUcsZUFBZTtJQUNsQixDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxZQUFZO0lBQ3ZDLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFLGVBQWU7SUFDN0MsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRSxtQkFBbUI7SUFDbkQsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsRUFBRSxvQkFBb0I7SUFDckQsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLEVBQUUsZUFBZTtJQUM3QyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNO0NBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJGdW5jLCBGaWx0ZXJJbmZvLCBSYW5nZSB9IGZyb20gJy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vZW51bXMvZmlsdGVyVHlwZXMnO1xyXG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9kaWN0aW9uYXJ5JztcclxuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuaW1wb3J0IHsgaXNOdWxsIH0gZnJvbSAnLi9udWxsLWZpbHRlci1mdW5jdGlvbic7XHJcblxyXG5cclxuY29uc3QgZGF0ZUlzT25GdW5jOkZpbHRlckZ1bmM8RGF0ZT4gPSAoZmlsdGVySW5mbzpGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgY29uc3QgaXNPblZhbCA9IG5ldyBEYXRlKCBmaWx0ZXJJbmZvLmZpbHRlclZhbHVlKS5nZXRUaW1lKCk7XHJcbiAgY29uc3QgY2xlYW4gPSBmaWx0ZXJJbmZvLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkRhdGUgPyAoYSxiKSA9PiBiIDogY2xlYW5EYXRlVGltZVxyXG4gIHJldHVybiAoKHZhbCk9PmNsZWFuKGZpbHRlckluZm8sdmFsKS5nZXRUaW1lKCkgID09PSBpc09uVmFsKTtcclxufVxyXG5cclxuY29uc3QgZGF0ZUlzTm90T25GdW5jOkZpbHRlckZ1bmM8RGF0ZT4gPSAoZmlsdGVySW5mbzpGaWx0ZXJJbmZvKSA9PiB7XHJcbiAgY29uc3QgaXNOb3RPblZhbCA9IG5ldyBEYXRlKCBmaWx0ZXJJbmZvLmZpbHRlclZhbHVlKS5nZXRUaW1lKCk7XHJcbiAgY29uc3QgY2xlYW4gPSBmaWx0ZXJJbmZvLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkRhdGUgPyAoYSxiKSA9PiBiIDogY2xlYW5EYXRlVGltZVxyXG4gIHJldHVybiAoKHZhbCk9PmNsZWFuKGZpbHRlckluZm8sdmFsKS5nZXRUaW1lKCkgICE9PSBpc05vdE9uVmFsKTtcclxufVxyXG5cclxuY29uc3QgZGF0ZUlzT25PckFmdGVyRnVuYzpGaWx0ZXJGdW5jPERhdGU+ID0gKGZpbHRlckluZm86RmlsdGVySW5mbykgPT4ge1xyXG4gIGNvbnN0IGFmdGVyVmFsID0gbmV3IERhdGUoIGZpbHRlckluZm8uZmlsdGVyVmFsdWUpLmdldFRpbWUoKTtcclxuICBjb25zdCBjbGVhbiA9IGZpbHRlckluZm8uZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRGF0ZSA/IChhLGIpID0+IGIgOiBjbGVhbkRhdGVUaW1lXHJcbiAgcmV0dXJuICgodmFsKT0+Y2xlYW4oZmlsdGVySW5mbyx2YWwpLmdldFRpbWUoKSAgPj0gYWZ0ZXJWYWwpO1xyXG59XHJcblxyXG5jb25zdCBkYXRlSXNPbk9yQmVmb3JlRnVuYzpGaWx0ZXJGdW5jPERhdGU+ID0gKGZpbHRlckluZm86RmlsdGVySW5mbykgPT4ge1xyXG4gIGNvbnN0IGJlZm9yZVZhbCA9IG5ldyBEYXRlKCBmaWx0ZXJJbmZvLmZpbHRlclZhbHVlKS5nZXRUaW1lKCk7XHJcbiAgY29uc3QgY2xlYW4gPSBmaWx0ZXJJbmZvLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkRhdGUgPyAoYSxiKSA9PiBiIDogY2xlYW5EYXRlVGltZVxyXG4gIHJldHVybiAoKHZhbCk9PmNsZWFuKGZpbHRlckluZm8sdmFsKS5nZXRUaW1lKCkgIDw9IGJlZm9yZVZhbCk7XHJcbn1cclxuXHJcbmNvbnN0IGRhdGVCZXR3ZWVuRnVuYzpGaWx0ZXJGdW5jPFJhbmdlPERhdGU+LERhdGU+ID0gKGZpbHRlckluZm86RmlsdGVySW5mbykgPT4ge1xyXG4gIGNvbnN0IHN0YXJ0VmFsID0gbmV3IERhdGUoZmlsdGVySW5mby5maWx0ZXJWYWx1ZS5TdGFydCk7XHJcbiAgY29uc3QgZW5kVmFsID0gbmV3IERhdGUoZmlsdGVySW5mby5maWx0ZXJWYWx1ZS5FbmQpO1xyXG4gIGNvbnN0IGNsZWFuID0gZmlsdGVySW5mby5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5EYXRlID8gKGEsYikgPT4gYiA6IGNsZWFuRGF0ZVRpbWVcclxuICByZXR1cm4gKFxyXG4gICAgKHZhbCk9PiB7XHJcbiAgICAgIGNvbnN0IGNsZWFuZWRWYWwgPSBjbGVhbihmaWx0ZXJJbmZvLCB2YWwpO1xyXG4gICAgICByZXR1cm4gY2xlYW5lZFZhbD49c3RhcnRWYWwgJiYgY2xlYW5lZFZhbCA8PSBlbmRWYWw7XHJcbiAgICB9KTtcclxufVxyXG5cclxuY29uc3QgY2xlYW5EYXRlVGltZSA9IChmaWx0ZXJJbmZvOkZpbHRlckluZm8sIHZhbDogRGF0ZSkgPT4ge1xyXG4gIGlmKCEhRGF0ZUZpbHRlckZ1bmNzW2ZpbHRlckluZm8uZmlsdGVyVHlwZV0pe1xyXG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbCk7XHJcbiAgICBkLnNldEhvdXJzKDAsMCwwLDApO1xyXG4gICAgcmV0dXJuIGQ7XHJcbiAgfVxyXG4gIHJldHVybiB2YWw7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBEYXRlRmlsdGVyRnVuY3M6IERpY3Rpb25hcnk8RmlsdGVyRnVuYzxhbnksYW55Pj4gPSB7XHJcbiAgICBbRmlsdGVyVHlwZS5EYXRlSXNPbl06IGRhdGVJc09uRnVuYyxcclxuICAgIFtGaWx0ZXJUeXBlLkRhdGVJc05vdE9uXTogZGF0ZUlzTm90T25GdW5jLFxyXG4gICAgW0ZpbHRlclR5cGUuRGF0ZU9uT3JBZnRlcl06IGRhdGVJc09uT3JBZnRlckZ1bmMsXHJcbiAgICBbRmlsdGVyVHlwZS5EYXRlT25PckJlZm9yZV06IGRhdGVJc09uT3JCZWZvcmVGdW5jLFxyXG4gICAgW0ZpbHRlclR5cGUuRGF0ZUJldHdlZW5dOiBkYXRlQmV0d2VlbkZ1bmMsXHJcbiAgICBbRmlsdGVyVHlwZS5Jc051bGxdOiBpc051bGwsXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgRGF0ZVRpbWVGaWx0ZXJGdW5jczogRGljdGlvbmFyeTxGaWx0ZXJGdW5jPGFueSxhbnk+PiA9IHtcclxuICAuLi5EYXRlRmlsdGVyRnVuY3MsXHJcbiAgW0ZpbHRlclR5cGUuRGF0ZVRpbWVJc0F0XTogZGF0ZUlzT25GdW5jLFxyXG4gIFtGaWx0ZXJUeXBlLkRhdGVUaW1lSXNOb3RBdF06IGRhdGVJc05vdE9uRnVuYyxcclxuICBbRmlsdGVyVHlwZS5EYXRlVGltZUF0T3JBZnRlcl06IGRhdGVJc09uT3JBZnRlckZ1bmMsXHJcbiAgW0ZpbHRlclR5cGUuRGF0ZVRpbWVBdE9yQmVmb3JlXTogZGF0ZUlzT25PckJlZm9yZUZ1bmMsXHJcbiAgW0ZpbHRlclR5cGUuRGF0ZVRpbWVCZXR3ZWVuXTogZGF0ZUJldHdlZW5GdW5jLFxyXG4gIFtGaWx0ZXJUeXBlLklzTnVsbF06IGlzTnVsbCxcclxufTtcclxuIl19