@recursyve/nice-data-filter-kit 18.0.3 → 21.0.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 (257) hide show
  1. package/_index.scss +1 -1
  2. package/fesm2022/recursyve-nice-data-filter-kit.mjs +408 -346
  3. package/fesm2022/recursyve-nice-data-filter-kit.mjs.map +1 -1
  4. package/package.json +11 -13
  5. package/src/lib/components/base-list/base-list.theme.scss +10 -9
  6. package/src/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.theme.scss +4 -4
  7. package/src/lib/components/nice-filter-view/components/advanced-filters/rule/rule.theme.scss +6 -5
  8. package/src/lib/components/query-builder/query-builder.theme.scss +9 -8
  9. package/src/lib/components/query-builder/rule/rule.theme.scss +8 -7
  10. package/src/lib/nice-data-filter.theme.scss +6 -6
  11. package/types/recursyve-nice-data-filter-kit.d.ts +1681 -0
  12. package/esm2022/lib/api/dto/saved-reports.dto.mjs +0 -2
  13. package/esm2022/lib/api/filter.api.mjs +0 -113
  14. package/esm2022/lib/api/models/saved-reports.model.mjs +0 -2
  15. package/esm2022/lib/api/public-api.mjs +0 -2
  16. package/esm2022/lib/api/saved-report.api.mjs +0 -48
  17. package/esm2022/lib/components/base-list/base-list.component.mjs +0 -338
  18. package/esm2022/lib/components/base-list/base-list.constant.mjs +0 -11
  19. package/esm2022/lib/components/base-list/base-list.module.mjs +0 -185
  20. package/esm2022/lib/components/base-list/directives/base-list-buttons.directive.mjs +0 -17
  21. package/esm2022/lib/components/base-list/directives/base-list-cards.directive.mjs +0 -14
  22. package/esm2022/lib/components/base-list/directives/base-list-custom-content.directive.mjs +0 -14
  23. package/esm2022/lib/components/base-list/directives/base-list-directives.module.mjs +0 -55
  24. package/esm2022/lib/components/base-list/directives/base-list-empty-search-result-state.directive.mjs +0 -14
  25. package/esm2022/lib/components/base-list/directives/base-list-empty-state.directive.mjs +0 -14
  26. package/esm2022/lib/components/base-list/directives/base-list-filters.directive.mjs +0 -14
  27. package/esm2022/lib/components/base-list/directives/base-list-table.directive.mjs +0 -17
  28. package/esm2022/lib/components/base-list/directives/base-list-title.directive.mjs +0 -14
  29. package/esm2022/lib/components/base-list/models/columns.model.mjs +0 -8
  30. package/esm2022/lib/components/base-list/models/export.model.mjs +0 -2
  31. package/esm2022/lib/components/base-list/models/icons.model.mjs +0 -18
  32. package/esm2022/lib/components/base-list/models/layout.model.mjs +0 -149
  33. package/esm2022/lib/components/base-list/providers/base-filter.service.mjs +0 -36
  34. package/esm2022/lib/components/base-list/providers/base-list-saved-report.service.mjs +0 -33
  35. package/esm2022/lib/components/base-list/public-api.mjs +0 -19
  36. package/esm2022/lib/components/base-list/store/base-list.query.mjs +0 -51
  37. package/esm2022/lib/components/base-list/store/base-list.service.mjs +0 -375
  38. package/esm2022/lib/components/base-list/store/base-list.store.mjs +0 -88
  39. package/esm2022/lib/components/multi-state-list/models/list-states.model.mjs +0 -3
  40. package/esm2022/lib/components/multi-state-list/multi-state-list.component.mjs +0 -73
  41. package/esm2022/lib/components/multi-state-list/multi-state-list.constant.mjs +0 -3
  42. package/esm2022/lib/components/multi-state-list/multi-state-list.module.mjs +0 -140
  43. package/esm2022/lib/components/multi-state-list/providers/multi-state-filter.service.mjs +0 -11
  44. package/esm2022/lib/components/multi-state-list/public-api.mjs +0 -8
  45. package/esm2022/lib/components/multi-state-list/store/multi-state-list.query.mjs +0 -17
  46. package/esm2022/lib/components/multi-state-list/store/multi-state-list.service.mjs +0 -48
  47. package/esm2022/lib/components/multi-state-list/store/multi-state-list.store.mjs +0 -24
  48. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/advanced-filters-trigger.directive.mjs +0 -83
  49. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.component.mjs +0 -120
  50. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.constant.mjs +0 -4
  51. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.form.mjs +0 -121
  52. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.module.mjs +0 -152
  53. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/button/advanced-filters-button.component.mjs +0 -43
  54. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/filter-selection/filter-selection.component.mjs +0 -49
  55. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/models/advanced-date-filter-options.model.mjs +0 -2
  56. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/models/icons.model.mjs +0 -24
  57. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/providers/async-typeahead.provider.mjs +0 -41
  58. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/public-api.mjs +0 -10
  59. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/date/date-filter.component.mjs +0 -52
  60. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/filter.component.mjs +0 -29
  61. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/number/number-filter.component.mjs +0 -28
  62. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/options/options-filter.component.mjs +0 -33
  63. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/radio/radio-filter.component.mjs +0 -30
  64. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/select/select-filter.component.mjs +0 -60
  65. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/components/text/text-filter.component.mjs +0 -31
  66. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/rule/rule.component.mjs +0 -72
  67. package/esm2022/lib/components/nice-filter-view/components/advanced-filters/utils/advanced-filters.utils.mjs +0 -80
  68. package/esm2022/lib/components/nice-filter-view/components/common/data.directive.mjs +0 -14
  69. package/esm2022/lib/components/nice-filter-view/components/custom-data-view/custom-data-view.component.mjs +0 -22
  70. package/esm2022/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.mjs +0 -115
  71. package/esm2022/lib/components/nice-filter-view/components/export-buttons/export.directive.mjs +0 -27
  72. package/esm2022/lib/components/nice-filter-view/components/infinite-scroll-data-view/infinite-scroll-data-view.component.mjs +0 -39
  73. package/esm2022/lib/components/nice-filter-view/components/search/search.component.mjs +0 -60
  74. package/esm2022/lib/components/nice-filter-view/directives/mat-paginator.mjs +0 -42
  75. package/esm2022/lib/components/nice-filter-view/directives/mat-sort.mjs +0 -52
  76. package/esm2022/lib/components/nice-filter-view/directives/mat-tables.mjs +0 -22
  77. package/esm2022/lib/components/nice-filter-view/directives/query-params.directive.mjs +0 -94
  78. package/esm2022/lib/components/nice-filter-view/models/order-options.model.mjs +0 -2
  79. package/esm2022/lib/components/nice-filter-view/nice-base-filter-view.component.mjs +0 -181
  80. package/esm2022/lib/components/nice-filter-view/nice-filter-view.component.mjs +0 -34
  81. package/esm2022/lib/components/nice-filter-view/nice-filter-view.constant.mjs +0 -6
  82. package/esm2022/lib/components/nice-filter-view/nice-filter-view.module.mjs +0 -147
  83. package/esm2022/lib/components/nice-filter-view/nice-nested-filter-view.mjs +0 -46
  84. package/esm2022/lib/components/nice-filter-view/pipes/filter-group-icon.pipe.mjs +0 -32
  85. package/esm2022/lib/components/nice-filter-view/public-api.mjs +0 -18
  86. package/esm2022/lib/components/nice-filter-view/store/nice-filter-view.query.mjs +0 -41
  87. package/esm2022/lib/components/nice-filter-view/store/nice-filter-view.service.mjs +0 -290
  88. package/esm2022/lib/components/nice-filter-view/store/nice-filter-view.store.mjs +0 -236
  89. package/esm2022/lib/components/public-api.mjs +0 -5
  90. package/esm2022/lib/components/query-builder/filter-selection/filter-selection.component.mjs +0 -42
  91. package/esm2022/lib/components/query-builder/models/icons.model.mjs +0 -18
  92. package/esm2022/lib/components/query-builder/pipes/filter-group-icon.pipe.mjs +0 -32
  93. package/esm2022/lib/components/query-builder/providers/filter-group.service.mjs +0 -3
  94. package/esm2022/lib/components/query-builder/public-api.mjs +0 -15
  95. package/esm2022/lib/components/query-builder/query-builder-trigger.directive.mjs +0 -79
  96. package/esm2022/lib/components/query-builder/query-builder.component.mjs +0 -100
  97. package/esm2022/lib/components/query-builder/query-builder.constant.mjs +0 -3
  98. package/esm2022/lib/components/query-builder/query-builder.form.mjs +0 -79
  99. package/esm2022/lib/components/query-builder/query-builder.module.mjs +0 -128
  100. package/esm2022/lib/components/query-builder/rule/components/date/date-filter.component.mjs +0 -40
  101. package/esm2022/lib/components/query-builder/rule/components/filter.component.mjs +0 -29
  102. package/esm2022/lib/components/query-builder/rule/components/number/number-filter.component.mjs +0 -28
  103. package/esm2022/lib/components/query-builder/rule/components/radio/radio-filter.component.mjs +0 -30
  104. package/esm2022/lib/components/query-builder/rule/components/select/select-filter.component.mjs +0 -87
  105. package/esm2022/lib/components/query-builder/rule/components/text/text-filter.component.mjs +0 -31
  106. package/esm2022/lib/components/query-builder/rule/rule.component.mjs +0 -85
  107. package/esm2022/lib/components/query-builder/utils/qb-filter.utils.mjs +0 -90
  108. package/esm2022/lib/directive/public-api.mjs +0 -2
  109. package/esm2022/lib/directive/selectable-list/model/load-all-entities-options.model.mjs +0 -2
  110. package/esm2022/lib/directive/selectable-list/model/selectable-list-options.model.mjs +0 -2
  111. package/esm2022/lib/directive/selectable-list/providers/preload-selected-entities.provider.mjs +0 -10
  112. package/esm2022/lib/directive/selectable-list/providers/selectable-list-content.service.mjs +0 -37
  113. package/esm2022/lib/directive/selectable-list/public-api.mjs +0 -12
  114. package/esm2022/lib/directive/selectable-list/selectable-list-checkbox.directive.mjs +0 -164
  115. package/esm2022/lib/directive/selectable-list/selectable-list-select-all.directive.mjs +0 -48
  116. package/esm2022/lib/directive/selectable-list/selectable-list-state.directive.mjs +0 -50
  117. package/esm2022/lib/directive/selectable-list/selectable-list.constant.mjs +0 -3
  118. package/esm2022/lib/directive/selectable-list/selectable-list.directive.mjs +0 -95
  119. package/esm2022/lib/directive/selectable-list/selectable-list.module.mjs +0 -31
  120. package/esm2022/lib/directive/selectable-list/store/selectable-list-state.query.mjs +0 -32
  121. package/esm2022/lib/directive/selectable-list/store/selectable-list-state.service.mjs +0 -220
  122. package/esm2022/lib/directive/selectable-list/store/selectable-list.service.mjs +0 -59
  123. package/esm2022/lib/directive/selectable-list/store/selectable-list.state.mjs +0 -2
  124. package/esm2022/lib/models/filter.model.mjs +0 -10
  125. package/esm2022/lib/models/public-api.mjs +0 -3
  126. package/esm2022/lib/models/query.model.mjs +0 -25
  127. package/esm2022/lib/utils/date.adapter.mjs +0 -34
  128. package/esm2022/lib/utils/filter.utils.mjs +0 -42
  129. package/esm2022/lib/utils/order.utils.mjs +0 -28
  130. package/esm2022/lib/utils/public-api.mjs +0 -5
  131. package/esm2022/lib/utils/query-params.utils.mjs +0 -70
  132. package/esm2022/lib/utils/string.utils.mjs +0 -9
  133. package/esm2022/public-api.mjs +0 -9
  134. package/esm2022/recursyve-nice-data-filter-kit.mjs +0 -5
  135. package/index.d.ts +0 -5
  136. package/lib/api/dto/saved-reports.dto.d.ts +0 -6
  137. package/lib/api/filter.api.d.ts +0 -59
  138. package/lib/api/models/saved-reports.model.d.ts +0 -5
  139. package/lib/api/public-api.d.ts +0 -1
  140. package/lib/api/saved-report.api.d.ts +0 -20
  141. package/lib/components/base-list/base-list.component.d.ts +0 -109
  142. package/lib/components/base-list/base-list.constant.d.ts +0 -10
  143. package/lib/components/base-list/base-list.module.d.ts +0 -59
  144. package/lib/components/base-list/directives/base-list-buttons.directive.d.ts +0 -9
  145. package/lib/components/base-list/directives/base-list-cards.directive.d.ts +0 -8
  146. package/lib/components/base-list/directives/base-list-custom-content.directive.d.ts +0 -8
  147. package/lib/components/base-list/directives/base-list-directives.module.d.ts +0 -14
  148. package/lib/components/base-list/directives/base-list-empty-search-result-state.directive.d.ts +0 -8
  149. package/lib/components/base-list/directives/base-list-empty-state.directive.d.ts +0 -8
  150. package/lib/components/base-list/directives/base-list-filters.directive.d.ts +0 -8
  151. package/lib/components/base-list/directives/base-list-table.directive.d.ts +0 -9
  152. package/lib/components/base-list/directives/base-list-title.directive.d.ts +0 -8
  153. package/lib/components/base-list/models/columns.model.d.ts +0 -10
  154. package/lib/components/base-list/models/export.model.d.ts +0 -5
  155. package/lib/components/base-list/models/icons.model.d.ts +0 -19
  156. package/lib/components/base-list/models/layout.model.d.ts +0 -26
  157. package/lib/components/base-list/providers/base-filter.service.d.ts +0 -23
  158. package/lib/components/base-list/providers/base-list-saved-report.service.d.ts +0 -17
  159. package/lib/components/base-list/public-api.d.ts +0 -18
  160. package/lib/components/base-list/store/base-list.query.d.ts +0 -19
  161. package/lib/components/base-list/store/base-list.service.d.ts +0 -57
  162. package/lib/components/base-list/store/base-list.store.d.ts +0 -26
  163. package/lib/components/multi-state-list/models/list-states.model.d.ts +0 -10
  164. package/lib/components/multi-state-list/multi-state-list.component.d.ts +0 -18
  165. package/lib/components/multi-state-list/multi-state-list.constant.d.ts +0 -2
  166. package/lib/components/multi-state-list/multi-state-list.module.d.ts +0 -44
  167. package/lib/components/multi-state-list/providers/multi-state-filter.service.d.ts +0 -11
  168. package/lib/components/multi-state-list/public-api.d.ts +0 -7
  169. package/lib/components/multi-state-list/store/multi-state-list.query.d.ts +0 -9
  170. package/lib/components/multi-state-list/store/multi-state-list.service.d.ts +0 -19
  171. package/lib/components/multi-state-list/store/multi-state-list.store.d.ts +0 -10
  172. package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters-trigger.directive.d.ts +0 -27
  173. package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.component.d.ts +0 -31
  174. package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.constant.d.ts +0 -3
  175. package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.form.d.ts +0 -19
  176. package/lib/components/nice-filter-view/components/advanced-filters/advanced-filters.module.d.ts +0 -44
  177. package/lib/components/nice-filter-view/components/advanced-filters/button/advanced-filters-button.component.d.ts +0 -17
  178. package/lib/components/nice-filter-view/components/advanced-filters/filter-selection/filter-selection.component.d.ts +0 -16
  179. package/lib/components/nice-filter-view/components/advanced-filters/models/advanced-date-filter-options.model.d.ts +0 -3
  180. package/lib/components/nice-filter-view/components/advanced-filters/models/icons.model.d.ts +0 -11
  181. package/lib/components/nice-filter-view/components/advanced-filters/providers/async-typeahead.provider.d.ts +0 -20
  182. package/lib/components/nice-filter-view/components/advanced-filters/public-api.d.ts +0 -9
  183. package/lib/components/nice-filter-view/components/advanced-filters/rule/components/date/date-filter.component.d.ts +0 -13
  184. package/lib/components/nice-filter-view/components/advanced-filters/rule/components/filter.component.d.ts +0 -13
  185. package/lib/components/nice-filter-view/components/advanced-filters/rule/components/number/number-filter.component.d.ts +0 -6
  186. package/lib/components/nice-filter-view/components/advanced-filters/rule/components/options/options-filter.component.d.ts +0 -8
  187. package/lib/components/nice-filter-view/components/advanced-filters/rule/components/radio/radio-filter.component.d.ts +0 -8
  188. package/lib/components/nice-filter-view/components/advanced-filters/rule/components/select/select-filter.component.d.ts +0 -18
  189. package/lib/components/nice-filter-view/components/advanced-filters/rule/components/text/text-filter.component.d.ts +0 -8
  190. package/lib/components/nice-filter-view/components/advanced-filters/rule/rule.component.d.ts +0 -26
  191. package/lib/components/nice-filter-view/components/advanced-filters/utils/advanced-filters.utils.d.ts +0 -11
  192. package/lib/components/nice-filter-view/components/common/data.directive.d.ts +0 -8
  193. package/lib/components/nice-filter-view/components/custom-data-view/custom-data-view.component.d.ts +0 -11
  194. package/lib/components/nice-filter-view/components/export-buttons/export-buttons.component.d.ts +0 -29
  195. package/lib/components/nice-filter-view/components/export-buttons/export.directive.d.ts +0 -11
  196. package/lib/components/nice-filter-view/components/infinite-scroll-data-view/infinite-scroll-data-view.component.d.ts +0 -15
  197. package/lib/components/nice-filter-view/components/search/search.component.d.ts +0 -20
  198. package/lib/components/nice-filter-view/directives/mat-paginator.d.ts +0 -12
  199. package/lib/components/nice-filter-view/directives/mat-sort.d.ts +0 -11
  200. package/lib/components/nice-filter-view/directives/mat-tables.d.ts +0 -12
  201. package/lib/components/nice-filter-view/directives/query-params.directive.d.ts +0 -23
  202. package/lib/components/nice-filter-view/models/order-options.model.d.ts +0 -7
  203. package/lib/components/nice-filter-view/nice-base-filter-view.component.d.ts +0 -84
  204. package/lib/components/nice-filter-view/nice-filter-view.component.d.ts +0 -12
  205. package/lib/components/nice-filter-view/nice-filter-view.constant.d.ts +0 -5
  206. package/lib/components/nice-filter-view/nice-filter-view.module.d.ts +0 -42
  207. package/lib/components/nice-filter-view/nice-nested-filter-view.d.ts +0 -23
  208. package/lib/components/nice-filter-view/pipes/filter-group-icon.pipe.d.ts +0 -11
  209. package/lib/components/nice-filter-view/public-api.d.ts +0 -17
  210. package/lib/components/nice-filter-view/store/nice-filter-view.query.d.ts +0 -20
  211. package/lib/components/nice-filter-view/store/nice-filter-view.service.d.ts +0 -47
  212. package/lib/components/nice-filter-view/store/nice-filter-view.store.d.ts +0 -41
  213. package/lib/components/public-api.d.ts +0 -4
  214. package/lib/components/query-builder/filter-selection/filter-selection.component.d.ts +0 -12
  215. package/lib/components/query-builder/models/icons.model.d.ts +0 -9
  216. package/lib/components/query-builder/pipes/filter-group-icon.pipe.d.ts +0 -11
  217. package/lib/components/query-builder/providers/filter-group.service.d.ts +0 -4
  218. package/lib/components/query-builder/public-api.d.ts +0 -14
  219. package/lib/components/query-builder/query-builder-trigger.directive.d.ts +0 -25
  220. package/lib/components/query-builder/query-builder.component.d.ts +0 -33
  221. package/lib/components/query-builder/query-builder.constant.d.ts +0 -2
  222. package/lib/components/query-builder/query-builder.form.d.ts +0 -18
  223. package/lib/components/query-builder/query-builder.module.d.ts +0 -37
  224. package/lib/components/query-builder/rule/components/date/date-filter.component.d.ts +0 -9
  225. package/lib/components/query-builder/rule/components/filter.component.d.ts +0 -13
  226. package/lib/components/query-builder/rule/components/number/number-filter.component.d.ts +0 -6
  227. package/lib/components/query-builder/rule/components/radio/radio-filter.component.d.ts +0 -8
  228. package/lib/components/query-builder/rule/components/select/select-filter.component.d.ts +0 -22
  229. package/lib/components/query-builder/rule/components/text/text-filter.component.d.ts +0 -8
  230. package/lib/components/query-builder/rule/rule.component.d.ts +0 -29
  231. package/lib/components/query-builder/utils/qb-filter.utils.d.ts +0 -12
  232. package/lib/directive/public-api.d.ts +0 -1
  233. package/lib/directive/selectable-list/model/load-all-entities-options.model.d.ts +0 -4
  234. package/lib/directive/selectable-list/model/selectable-list-options.model.d.ts +0 -7
  235. package/lib/directive/selectable-list/providers/preload-selected-entities.provider.d.ts +0 -12
  236. package/lib/directive/selectable-list/providers/selectable-list-content.service.d.ts +0 -18
  237. package/lib/directive/selectable-list/public-api.d.ts +0 -11
  238. package/lib/directive/selectable-list/selectable-list-checkbox.directive.d.ts +0 -27
  239. package/lib/directive/selectable-list/selectable-list-select-all.directive.d.ts +0 -18
  240. package/lib/directive/selectable-list/selectable-list-state.directive.d.ts +0 -24
  241. package/lib/directive/selectable-list/selectable-list.constant.d.ts +0 -2
  242. package/lib/directive/selectable-list/selectable-list.directive.d.ts +0 -27
  243. package/lib/directive/selectable-list/selectable-list.module.d.ts +0 -13
  244. package/lib/directive/selectable-list/store/selectable-list-state.query.d.ts +0 -10
  245. package/lib/directive/selectable-list/store/selectable-list-state.service.d.ts +0 -44
  246. package/lib/directive/selectable-list/store/selectable-list.service.d.ts +0 -27
  247. package/lib/directive/selectable-list/store/selectable-list.state.d.ts +0 -10
  248. package/lib/models/filter.model.d.ts +0 -79
  249. package/lib/models/public-api.d.ts +0 -2
  250. package/lib/models/query.model.d.ts +0 -41
  251. package/lib/utils/date.adapter.d.ts +0 -13
  252. package/lib/utils/filter.utils.d.ts +0 -5
  253. package/lib/utils/order.utils.d.ts +0 -7
  254. package/lib/utils/public-api.d.ts +0 -4
  255. package/lib/utils/query-params.utils.d.ts +0 -13
  256. package/lib/utils/string.utils.d.ts +0 -12
  257. package/public-api.d.ts +0 -5
@@ -1,72 +0,0 @@
1
- import { Component, EventEmitter, Inject, Input, Optional, Output, ViewEncapsulation } from "@angular/core";
2
- import { FormGroupName } from "@angular/forms";
3
- import { startWith } from "rxjs";
4
- import { map } from "rxjs/operators";
5
- import { ADVANCED_FILTER_ICONS } from "../advanced-filters.constant";
6
- import { FilterForm } from "../advanced-filters.form";
7
- import { AdvancedFiltersUtils } from "../utils/advanced-filters.utils";
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/forms";
10
- import * as i2 from "@angular/common";
11
- import * as i3 from "@angular/material/icon";
12
- import * as i4 from "@angular/material/button";
13
- import * as i5 from "@angular/material/form-field";
14
- import * as i6 from "@angular/material/core";
15
- import * as i7 from "@angular/material/select";
16
- import * as i8 from "@angular/material/button-toggle";
17
- import * as i9 from "./components/date/date-filter.component";
18
- import * as i10 from "./components/number/number-filter.component";
19
- import * as i11 from "./components/options/options-filter.component";
20
- import * as i12 from "./components/radio/radio-filter.component";
21
- import * as i13 from "./components/select/select-filter.component";
22
- import * as i14 from "./components/text/text-filter.component";
23
- import * as i15 from "../advanced-filters-trigger.directive";
24
- import * as i16 from "@ngx-translate/core";
25
- export class NiceAdvancedRuleComponent {
26
- get filterConfig() {
27
- const ruleId = this.formGroup.get("id").value;
28
- return this.filterConfigs?.find(f => f.id === ruleId);
29
- }
30
- constructor(icons, formGroupName) {
31
- this.icons = icons;
32
- this.formGroupName = formGroupName;
33
- this.remove = new EventEmitter();
34
- }
35
- ngOnInit() {
36
- this.formGroup = this.formGroupName.control;
37
- this.valuesFormArray = this.formGroup.get("values");
38
- const operationFormControl = this.formGroup.get("operation");
39
- this.isSingleInput$ = operationFormControl.valueChanges.pipe(startWith(operationFormControl.value), map((operation) => !AdvancedFiltersUtils.isDoubleInput(operation) && !AdvancedFiltersUtils.isNoInput(operation)));
40
- this.isDoubleInput$ = operationFormControl.valueChanges.pipe(startWith(operationFormControl.value), map((operation) => AdvancedFiltersUtils.isDoubleInput(operation)));
41
- }
42
- onUpdateFilterConfig(config) {
43
- const rule = AdvancedFiltersUtils.createRule(config);
44
- this.valuesFormArray.clear({ emitEvent: false });
45
- this.formGroup.patchValue(new FilterForm(rule));
46
- }
47
- addValue(index) {
48
- this.valuesFormArray.insert(index, {});
49
- }
50
- removeValue(i) {
51
- this.valuesFormArray.removeAt(i);
52
- if (!this.valuesFormArray.length) {
53
- this.remove.emit();
54
- }
55
- }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAdvancedRuleComponent, deps: [{ token: ADVANCED_FILTER_ICONS, optional: true }, { token: i1.FormGroupName }], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NiceAdvancedRuleComponent, selector: "nice-advanced-rule", inputs: { filterConfigs: "filterConfigs" }, outputs: { remove: "remove" }, ngImport: i0, template: "<div class=\"flex flex-row gap-4\" [formGroup]=\"formGroup\">\n <div class=\"basis-80\">\n <button\n class=\"select-filter w-full\"\n mat-stroked-button\n niceAdvancedFiltersTrigger\n originX=\"start\"\n (advancedFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center w-full\">\n <div class=\"config-name\">{{ filterConfig?.name }}</div>\n <mat-icon [svgIcon]=\"icons.arrowDown.svgIcon\">{{ icons.arrowDown.matIcon }}</mat-icon>\n </div>\n </button>\n </div>\n\n <div class=\"flex flex-col basis-44 gap-4\">\n <mat-form-field appearance=\"outline\" class=\"rule-form-field\">\n <mat-select class=\"rule-operator\" formControlName=\"operation\">\n <mat-option *ngFor=\"let operator of filterConfig?.operators\" [value]=\"operator.id\">\n {{ operator?.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <ng-container *ngIf=\"valuesFormArray.controls.length > 1\">\n <mat-button-toggle-group class=\"condition-toggle\" formControlName=\"condition\">\n <mat-button-toggle value=\"and\">{{ \"components.nice_advanced_filters.rule.conditions.and\" | translate }}</mat-button-toggle>\n <mat-button-toggle value=\"or\">{{ \"components.nice_advanced_filters.rule.conditions.or\" | translate }}</mat-button-toggle>\n </mat-button-toggle-group>\n </ng-container>\n </div>\n\n <div class=\"flex flex-col flex-auto gap-4\" formArrayName=\"values\">\n <div class=\"flex items-center gap-4\" [formGroupName]=\"i\" *ngFor=\"let _ of valuesFormArray.controls; let i = index\">\n <div class=\"rule-container flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\">\n <ng-container *ngIf=\"isSingleInput$ | async\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter *ngSwitchCase=\"'text'\" class=\"flex flex-auto\" formControlName=\"value\" [filterConfig]=\"filterConfig\"></nice-advanced-text-filter>\n <nice-advanced-number-filter *ngSwitchCase=\"'number'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-advanced-number-filter>\n <nice-advanced-options-filter\n *ngSwitchCase=\"'options'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter *ngSwitchCase=\"'date'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-advanced-date-filter>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isDoubleInput$ | async\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-text-filter>\n <nice-advanced-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-number-filter>\n <nice-advanced-options-filter\n *ngSwitchCase=\"'options'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-date-filter>\n </ng-container>\n <h3 class=\"aligned-text\">\n {{ \"components.nice_advanced_filters.rule.conditions.and\" | translate }}\n </h3>\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-text-filter>\n <nice-advanced-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-number-filter>\n <nice-advanced-options-filter\n *ngSwitchCase=\"'options'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-date-filter>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"basis-12\">\n <button class=\"add-button\" mat-icon-button (click)=\"addValue(i + 1)\">\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{ icons.add.matIcon }}</mat-icon>\n </button>\n </div>\n\n <div class=\"basis-12\">\n <button class=\"remove-button\" mat-icon-button (click)=\"removeValue(i)\">\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{ icons.delete.matIcon }}</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i8.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i8.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i9.NiceAdvancedDateFilterComponent, selector: "nice-advanced-date-filter" }, { kind: "component", type: i10.NiceAdvancedNumberFilterComponent, selector: "nice-advanced-number-filter" }, { kind: "component", type: i11.NiceAdvancedOptionsFilterComponent, selector: "nice-advanced-options-filter", inputs: ["filterConfig"] }, { kind: "component", type: i12.NiceAdvancedRadioFilterComponent, selector: "nice-advanced-radio-filter", inputs: ["filterConfig"] }, { kind: "component", type: i13.NiceAdvancedSelectFilterComponent, selector: "nice-advanced-select-filter", inputs: ["filterConfig"] }, { kind: "component", type: i14.NiceAdvancedTextFilterComponent, selector: "nice-advanced-text-filter", inputs: ["filterConfig"] }, { kind: "directive", type: i15.AdvancedFiltersTriggerDirective, selector: "[niceAdvancedFiltersTrigger]", inputs: ["position"], outputs: ["advancedFilterSelected"], exportAs: ["niceAdvancedFiltersTrigger"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
58
- }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceAdvancedRuleComponent, decorators: [{
60
- type: Component,
61
- args: [{ selector: "nice-advanced-rule", encapsulation: ViewEncapsulation.None, template: "<div class=\"flex flex-row gap-4\" [formGroup]=\"formGroup\">\n <div class=\"basis-80\">\n <button\n class=\"select-filter w-full\"\n mat-stroked-button\n niceAdvancedFiltersTrigger\n originX=\"start\"\n (advancedFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div class=\"flex flex-row justify-between items-center w-full\">\n <div class=\"config-name\">{{ filterConfig?.name }}</div>\n <mat-icon [svgIcon]=\"icons.arrowDown.svgIcon\">{{ icons.arrowDown.matIcon }}</mat-icon>\n </div>\n </button>\n </div>\n\n <div class=\"flex flex-col basis-44 gap-4\">\n <mat-form-field appearance=\"outline\" class=\"rule-form-field\">\n <mat-select class=\"rule-operator\" formControlName=\"operation\">\n <mat-option *ngFor=\"let operator of filterConfig?.operators\" [value]=\"operator.id\">\n {{ operator?.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <ng-container *ngIf=\"valuesFormArray.controls.length > 1\">\n <mat-button-toggle-group class=\"condition-toggle\" formControlName=\"condition\">\n <mat-button-toggle value=\"and\">{{ \"components.nice_advanced_filters.rule.conditions.and\" | translate }}</mat-button-toggle>\n <mat-button-toggle value=\"or\">{{ \"components.nice_advanced_filters.rule.conditions.or\" | translate }}</mat-button-toggle>\n </mat-button-toggle-group>\n </ng-container>\n </div>\n\n <div class=\"flex flex-col flex-auto gap-4\" formArrayName=\"values\">\n <div class=\"flex items-center gap-4\" [formGroupName]=\"i\" *ngFor=\"let _ of valuesFormArray.controls; let i = index\">\n <div class=\"rule-container flex flex-col md:flex-row flex-auto justify-start items-center gap-2.5\">\n <ng-container *ngIf=\"isSingleInput$ | async\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter *ngSwitchCase=\"'text'\" class=\"flex flex-auto\" formControlName=\"value\" [filterConfig]=\"filterConfig\"></nice-advanced-text-filter>\n <nice-advanced-number-filter *ngSwitchCase=\"'number'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-advanced-number-filter>\n <nice-advanced-options-filter\n *ngSwitchCase=\"'options'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter *ngSwitchCase=\"'date'\" class=\"flex flex-auto\" formControlName=\"value\"></nice-advanced-date-filter>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isDoubleInput$ | async\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-text-filter>\n <nice-advanced-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-number-filter>\n <nice-advanced-options-filter\n *ngSwitchCase=\"'options'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n ></nice-advanced-date-filter>\n </ng-container>\n <h3 class=\"aligned-text\">\n {{ \"components.nice_advanced_filters.rule.conditions.and\" | translate }}\n </h3>\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-advanced-text-filter\n *ngSwitchCase=\"'text'\"\n [filterConfig]=\"filterConfig\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-text-filter>\n <nice-advanced-number-filter\n *ngSwitchCase=\"'number'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-number-filter>\n <nice-advanced-options-filter\n *ngSwitchCase=\"'options'\"\n class=\"flex flex-auto\"\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-options-filter>\n <nice-advanced-radio-filter\n *ngSwitchCase=\"'radio'\"\n class=\"flex flex-auto mb-4\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-radio-filter>\n <nice-advanced-select-filter\n *ngSwitchCase=\"'select'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n ></nice-advanced-select-filter>\n <nice-advanced-date-filter\n *ngSwitchCase=\"'date'\"\n class=\"flex flex-auto\"\n formControlName=\"secondValue\"\n ></nice-advanced-date-filter>\n </ng-container>\n </ng-container>\n </div>\n\n <div class=\"basis-12\">\n <button class=\"add-button\" mat-icon-button (click)=\"addValue(i + 1)\">\n <mat-icon [svgIcon]=\"icons.add.svgIcon\">{{ icons.add.matIcon }}</mat-icon>\n </button>\n </div>\n\n <div class=\"basis-12\">\n <button class=\"remove-button\" mat-icon-button (click)=\"removeValue(i)\">\n <mat-icon [svgIcon]=\"icons.delete.svgIcon\">{{ icons.delete.matIcon }}</mat-icon>\n </button>\n </div>\n </div>\n </div>\n</div>\n" }]
62
- }], ctorParameters: () => [{ type: undefined, decorators: [{
63
- type: Optional
64
- }, {
65
- type: Inject,
66
- args: [ADVANCED_FILTER_ICONS]
67
- }] }, { type: i1.FormGroupName }], propDecorators: { filterConfigs: [{
68
- type: Input
69
- }], remove: [{
70
- type: Output
71
- }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2FkdmFuY2VkLWZpbHRlcnMvcnVsZS9ydWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L2NvbXBvbmVudHMvYWR2YW5jZWQtZmlsdGVycy9ydWxlL3J1bGUudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQW9CLE1BQU0sMEJBQTBCLENBQUM7QUFFeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU92RSxNQUFNLE9BQU8seUJBQXlCO0lBYWxDLElBQVcsWUFBWTtRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFlLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUE2QixDQUFDO0lBQ3RGLENBQUM7SUFFRCxZQUVXLEtBQW9DLEVBQ25DLGFBQTRCO1FBRDdCLFVBQUssR0FBTCxLQUFLLENBQStCO1FBQ25DLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBaEJqQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQWlCaEMsQ0FBQztJQUVHLFFBQVE7UUFDWCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBeUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBeUMsQ0FBQztRQUU1RixNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxjQUFjLEdBQUcsb0JBQW9CLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDeEQsU0FBUyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUNyQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQ25ILENBQUM7UUFDRixJQUFJLENBQUMsY0FBYyxHQUFHLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3hELFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsRUFDckMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDcEUsQ0FBQztJQUNOLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxNQUFnQztRQUN4RCxNQUFNLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxRQUFRLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLFdBQVcsQ0FBQyxDQUFTO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7K0dBdERRLHlCQUF5QixrQkFtQlYscUJBQXFCO21HQW5CcEMseUJBQXlCLHFJQ2hCdEMsdTVRQTBKQTs7NEZEMUlhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDSSxvQkFBb0IsaUJBRWYsaUJBQWlCLENBQUMsSUFBSTs7MEJBcUJoQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQjtxRUFqQnRDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUdyb3VwTmFtZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgR2VuZXJhdGVkRm9ybUFycmF5LCBHZW5lcmF0ZWRGb3JtR3JvdXAgfSBmcm9tIFwiQHJlY3Vyc3l2ZS9uZ3gtZm9ybS1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIHN0YXJ0V2l0aCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9tb2RlbHMvZmlsdGVyLm1vZGVsXCI7XG5pbXBvcnQgeyBBRFZBTkNFRF9GSUxURVJfSUNPTlMgfSBmcm9tIFwiLi4vYWR2YW5jZWQtZmlsdGVycy5jb25zdGFudFwiO1xuaW1wb3J0IHsgRmlsdGVyRm9ybSwgRmlsdGVyRm9ybVZhbHVlcyB9IGZyb20gXCIuLi9hZHZhbmNlZC1maWx0ZXJzLmZvcm1cIjtcbmltcG9ydCB7IE5pY2VBZHZhbmNlZEZpbHRlckljb25PcHRpb25zIH0gZnJvbSBcIi4uL21vZGVscy9pY29ucy5tb2RlbFwiO1xuaW1wb3J0IHsgQWR2YW5jZWRGaWx0ZXJzVXRpbHMgfSBmcm9tIFwiLi4vdXRpbHMvYWR2YW5jZWQtZmlsdGVycy51dGlsc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJuaWNlLWFkdmFuY2VkLXJ1bGVcIixcbiAgICB0ZW1wbGF0ZVVybDogXCJydWxlLnRlbXBsYXRlLmh0bWxcIixcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIE5pY2VBZHZhbmNlZFJ1bGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbHRlckNvbmZpZ3M6IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbFtdIHwgbnVsbDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgZm9ybUdyb3VwOiBHZW5lcmF0ZWRGb3JtR3JvdXA8RmlsdGVyRm9ybT47XG4gICAgcHVibGljIHZhbHVlc0Zvcm1BcnJheTogR2VuZXJhdGVkRm9ybUFycmF5PEZpbHRlckZvcm1WYWx1ZXM+O1xuXG4gICAgcHVibGljIGlzU2luZ2xlSW5wdXQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHB1YmxpYyBpc0RvdWJsZUlucHV0JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIHB1YmxpYyBnZXQgZmlsdGVyQ29uZmlnKCk6IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCB7XG4gICAgICAgIGNvbnN0IHJ1bGVJZCA9IHRoaXMuZm9ybUdyb3VwLmdldChcImlkXCIpLnZhbHVlIGFzIHN0cmluZztcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyQ29uZmlncz8uZmluZChmID0+IGYuaWQgPT09IHJ1bGVJZCkgYXMgRmlsdGVyQ29uZmlndXJhdGlvbk1vZGVsO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFEVkFOQ0VEX0ZJTFRFUl9JQ09OUylcbiAgICAgICAgcHVibGljIGljb25zOiBOaWNlQWR2YW5jZWRGaWx0ZXJJY29uT3B0aW9ucyxcbiAgICAgICAgcHJpdmF0ZSBmb3JtR3JvdXBOYW1lOiBGb3JtR3JvdXBOYW1lXG4gICAgKSB7fVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUdyb3VwTmFtZS5jb250cm9sIGFzIEdlbmVyYXRlZEZvcm1Hcm91cDxGaWx0ZXJGb3JtPjtcbiAgICAgICAgdGhpcy52YWx1ZXNGb3JtQXJyYXkgPSB0aGlzLmZvcm1Hcm91cC5nZXQoXCJ2YWx1ZXNcIikgYXMgR2VuZXJhdGVkRm9ybUFycmF5PEZpbHRlckZvcm1WYWx1ZXM+O1xuXG4gICAgICAgIGNvbnN0IG9wZXJhdGlvbkZvcm1Db250cm9sID0gdGhpcy5mb3JtR3JvdXAuZ2V0KFwib3BlcmF0aW9uXCIpO1xuICAgICAgICB0aGlzLmlzU2luZ2xlSW5wdXQkID0gb3BlcmF0aW9uRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgob3BlcmF0aW9uRm9ybUNvbnRyb2wudmFsdWUpLFxuICAgICAgICAgICAgbWFwKChvcGVyYXRpb24pID0+ICFBZHZhbmNlZEZpbHRlcnNVdGlscy5pc0RvdWJsZUlucHV0KG9wZXJhdGlvbikgJiYgIUFkdmFuY2VkRmlsdGVyc1V0aWxzLmlzTm9JbnB1dChvcGVyYXRpb24pKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmlzRG91YmxlSW5wdXQkID0gb3BlcmF0aW9uRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgob3BlcmF0aW9uRm9ybUNvbnRyb2wudmFsdWUpLFxuICAgICAgICAgICAgbWFwKChvcGVyYXRpb24pID0+IEFkdmFuY2VkRmlsdGVyc1V0aWxzLmlzRG91YmxlSW5wdXQob3BlcmF0aW9uKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25VcGRhdGVGaWx0ZXJDb25maWcoY29uZmlnOiBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcnVsZSA9IEFkdmFuY2VkRmlsdGVyc1V0aWxzLmNyZWF0ZVJ1bGUoY29uZmlnKTtcbiAgICAgICAgdGhpcy52YWx1ZXNGb3JtQXJyYXkuY2xlYXIoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5wYXRjaFZhbHVlKG5ldyBGaWx0ZXJGb3JtKHJ1bGUpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkVmFsdWUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlc0Zvcm1BcnJheS5pbnNlcnQoaW5kZXgsIHt9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlVmFsdWUoaTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWVzRm9ybUFycmF5LnJlbW92ZUF0KGkpO1xuICAgICAgICBpZiAoIXRoaXMudmFsdWVzRm9ybUFycmF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmUuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLTRcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgIDxkaXYgY2xhc3M9XCJiYXNpcy04MFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInNlbGVjdC1maWx0ZXIgdy1mdWxsXCJcbiAgICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAgICAgbmljZUFkdmFuY2VkRmlsdGVyc1RyaWdnZXJcbiAgICAgICAgICAgIG9yaWdpblg9XCJzdGFydFwiXG4gICAgICAgICAgICAoYWR2YW5jZWRGaWx0ZXJTZWxlY3RlZCk9XCJvblVwZGF0ZUZpbHRlckNvbmZpZygkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciB3LWZ1bGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlnLW5hbWVcIj57eyBmaWx0ZXJDb25maWc/Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMuYXJyb3dEb3duLnN2Z0ljb25cIj57eyBpY29ucy5hcnJvd0Rvd24ubWF0SWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBiYXNpcy00NCBnYXAtNFwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInJ1bGUtZm9ybS1maWVsZFwiPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgY2xhc3M9XCJydWxlLW9wZXJhdG9yXCIgZm9ybUNvbnRyb2xOYW1lPVwib3BlcmF0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wZXJhdG9yIG9mIGZpbHRlckNvbmZpZz8ub3BlcmF0b3JzXCIgW3ZhbHVlXT1cIm9wZXJhdG9yLmlkXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG9wZXJhdG9yPy5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ2YWx1ZXNGb3JtQXJyYXkuY29udHJvbHMubGVuZ3RoID4gMVwiPlxuICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIGNsYXNzPVwiY29uZGl0aW9uLXRvZ2dsZVwiIGZvcm1Db250cm9sTmFtZT1cImNvbmRpdGlvblwiPlxuICAgICAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAgdmFsdWU9XCJhbmRcIj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLnJ1bGUuY29uZGl0aW9ucy5hbmRcIiB8IHRyYW5zbGF0ZSB9fTwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwib3JcIj57eyBcImNvbXBvbmVudHMubmljZV9hZHZhbmNlZF9maWx0ZXJzLnJ1bGUuY29uZGl0aW9ucy5vclwiIHwgdHJhbnNsYXRlIH19PC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC1hdXRvIGdhcC00XCIgZm9ybUFycmF5TmFtZT1cInZhbHVlc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTRcIiBbZm9ybUdyb3VwTmFtZV09XCJpXCIgKm5nRm9yPVwibGV0IF8gb2YgdmFsdWVzRm9ybUFycmF5LmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicnVsZS1jb250YWluZXIgZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBmbGV4LWF1dG8ganVzdGlmeS1zdGFydCBpdGVtcy1jZW50ZXIgZ2FwLTIuNVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NpbmdsZUlucHV0JCB8IGFzeW5jXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpbHRlckNvbmZpZz8udHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtdGV4dC1maWx0ZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIiBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCI+PC9uaWNlLWFkdmFuY2VkLXRleHQtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtbnVtYmVyLWZpbHRlciAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIiBjbGFzcz1cImZsZXggZmxleC1hdXRvXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIj48L25pY2UtYWR2YW5jZWQtbnVtYmVyLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLW9wdGlvbnMtZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidvcHRpb25zJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtYWR2YW5jZWQtb3B0aW9ucy1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1hZHZhbmNlZC1yYWRpby1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0byBtYi00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNvbmZpZ109XCJmaWx0ZXJDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC1yYWRpby1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1hZHZhbmNlZC1zZWxlY3QtZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3QnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNvbmZpZ109XCJmaWx0ZXJDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC1zZWxlY3QtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtZGF0ZS1maWx0ZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIiBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiPjwvbmljZS1hZHZhbmNlZC1kYXRlLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRG91YmxlSW5wdXQkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZmlsdGVyQ29uZmlnPy50eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1hZHZhbmNlZC10ZXh0LWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLWFkdmFuY2VkLXRleHQtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtbnVtYmVyLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInbnVtYmVyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC1udW1iZXItZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtb3B0aW9ucy1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ29wdGlvbnMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNvbmZpZ109XCJmaWx0ZXJDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC1vcHRpb25zLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLXJhZGlvLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCIncmFkaW8nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvIG1iLTRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLWFkdmFuY2VkLXJhZGlvLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLXNlbGVjdC1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3NlbGVjdCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLWFkdmFuY2VkLXNlbGVjdC1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1hZHZhbmNlZC1kYXRlLWZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtYWR2YW5jZWQtZGF0ZS1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJhbGlnbmVkLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IFwiY29tcG9uZW50cy5uaWNlX2FkdmFuY2VkX2ZpbHRlcnMucnVsZS5jb25kaXRpb25zLmFuZFwiIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZpbHRlckNvbmZpZz8udHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtdGV4dC1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyQ29uZmlnXT1cImZpbHRlckNvbmZpZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2Vjb25kVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC10ZXh0LWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLW51bWJlci1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWF1dG9cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNlY29uZFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtYWR2YW5jZWQtbnVtYmVyLWZpbHRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuaWNlLWFkdmFuY2VkLW9wdGlvbnMtZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidvcHRpb25zJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJDb25maWddPVwiZmlsdGVyQ29uZmlnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25pY2UtYWR2YW5jZWQtb3B0aW9ucy1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1hZHZhbmNlZC1yYWRpby1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtYXV0byBtYi00XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWNvbmRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNvbmZpZ109XCJmaWx0ZXJDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC1yYWRpby1maWx0ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmljZS1hZHZhbmNlZC1zZWxlY3QtZmlsdGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidzZWxlY3QnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWNvbmRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlckNvbmZpZ109XCJmaWx0ZXJDb25maWdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmljZS1hZHZhbmNlZC1zZWxlY3QtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5pY2UtYWR2YW5jZWQtZGF0ZS1maWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1hdXRvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzZWNvbmRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uaWNlLWFkdmFuY2VkLWRhdGUtZmlsdGVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFzaXMtMTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWRkLWJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYWRkVmFsdWUoaSArIDEpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5hZGQuc3ZnSWNvblwiPnt7IGljb25zLmFkZC5tYXRJY29uIH19PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFzaXMtMTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicmVtb3ZlLWJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVtb3ZlVmFsdWUoaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cImljb25zLmRlbGV0ZS5zdmdJY29uXCI+e3sgaWNvbnMuZGVsZXRlLm1hdEljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,80 +0,0 @@
1
- import { FilterType } from "../../../../../models/filter.model";
2
- import { FilterOperatorTypes } from "../../../../../models/query.model";
3
- export class AdvancedFiltersUtils {
4
- static { this.noInputOperators = [
5
- FilterOperatorTypes.IsEmpty,
6
- FilterOperatorTypes.IsNotEmpty,
7
- FilterOperatorTypes.IsNull,
8
- FilterOperatorTypes.IsNotNull,
9
- FilterOperatorTypes.None
10
- ]; }
11
- static { this.singleInputOperators = [
12
- FilterOperatorTypes.Equal,
13
- FilterOperatorTypes.NotEqual,
14
- FilterOperatorTypes.Less,
15
- FilterOperatorTypes.LessOrEqual,
16
- FilterOperatorTypes.Greater,
17
- FilterOperatorTypes.GreaterOrEqual,
18
- FilterOperatorTypes.BeginsWith,
19
- FilterOperatorTypes.NotBeginsWith,
20
- FilterOperatorTypes.EndsWith,
21
- FilterOperatorTypes.NotEndsWith,
22
- FilterOperatorTypes.Contains,
23
- FilterOperatorTypes.NotContains
24
- ]; }
25
- static { this.doubleInputOperators = [
26
- FilterOperatorTypes.Between,
27
- FilterOperatorTypes.NotBetween
28
- ]; }
29
- static isSingleInput(filterOperator) {
30
- if (!filterOperator) {
31
- return false;
32
- }
33
- return AdvancedFiltersUtils.singleInputOperators.includes(filterOperator);
34
- }
35
- static isDoubleInput(filterOperator) {
36
- if (!filterOperator) {
37
- return false;
38
- }
39
- return AdvancedFiltersUtils.doubleInputOperators.includes(filterOperator);
40
- }
41
- static isNoInput(filterOperator) {
42
- if (!filterOperator) {
43
- return false;
44
- }
45
- return AdvancedFiltersUtils.noInputOperators.includes(filterOperator);
46
- }
47
- static createRule(config, operator) {
48
- const base = {
49
- id: config.id,
50
- operation: operator || config.operators[0].id
51
- };
52
- switch (config.type) {
53
- case FilterType.Text:
54
- return {
55
- ...base,
56
- value: AdvancedFiltersUtils.isDoubleInput(operator) ? ["", ""] : ""
57
- };
58
- case FilterType.Number:
59
- case FilterType.Select:
60
- return {
61
- ...base,
62
- value: AdvancedFiltersUtils.isDoubleInput(operator) ? [null, null] : null
63
- };
64
- case FilterType.Date:
65
- return {
66
- ...base,
67
- value: AdvancedFiltersUtils.isDoubleInput(operator) ? [new Date(), new Date()] : new Date()
68
- };
69
- case FilterType.Radio:
70
- case FilterType.Options:
71
- return {
72
- ...base,
73
- value: AdvancedFiltersUtils.isDoubleInput(operator)
74
- ? [config.options?.[0].key, config.options?.[0].key]
75
- : config.options?.[0].key
76
- };
77
- }
78
- }
79
- }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtZmlsdGVycy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L2NvbXBvbmVudHMvYWR2YW5jZWQtZmlsdGVycy91dGlscy9hZHZhbmNlZC1maWx0ZXJzLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNEIsVUFBVSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUYsT0FBTyxFQUFtQixtQkFBbUIsRUFBa0IsTUFBTSxtQ0FBbUMsQ0FBQztBQUV6RyxNQUFNLE9BQU8sb0JBQW9CO2FBQ2YscUJBQWdCLEdBQXNCO1FBQ2hELG1CQUFtQixDQUFDLE9BQU87UUFDM0IsbUJBQW1CLENBQUMsVUFBVTtRQUM5QixtQkFBbUIsQ0FBQyxNQUFNO1FBQzFCLG1CQUFtQixDQUFDLFNBQVM7UUFDN0IsbUJBQW1CLENBQUMsSUFBSTtLQUMzQixDQUFDO2FBRVkseUJBQW9CLEdBQXNCO1FBQ3BELG1CQUFtQixDQUFDLEtBQUs7UUFDekIsbUJBQW1CLENBQUMsUUFBUTtRQUM1QixtQkFBbUIsQ0FBQyxJQUFJO1FBQ3hCLG1CQUFtQixDQUFDLFdBQVc7UUFDL0IsbUJBQW1CLENBQUMsT0FBTztRQUMzQixtQkFBbUIsQ0FBQyxjQUFjO1FBQ2xDLG1CQUFtQixDQUFDLFVBQVU7UUFDOUIsbUJBQW1CLENBQUMsYUFBYTtRQUNqQyxtQkFBbUIsQ0FBQyxRQUFRO1FBQzVCLG1CQUFtQixDQUFDLFdBQVc7UUFDL0IsbUJBQW1CLENBQUMsUUFBUTtRQUM1QixtQkFBbUIsQ0FBQyxXQUFXO0tBQ2xDLENBQUM7YUFFWSx5QkFBb0IsR0FBc0I7UUFDcEQsbUJBQW1CLENBQUMsT0FBTztRQUMzQixtQkFBbUIsQ0FBQyxVQUFVO0tBQ2pDLENBQUM7SUFFSyxNQUFNLENBQUMsYUFBYSxDQUFDLGNBQWdDO1FBQ3hELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNsQixPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDO1FBQ0QsT0FBTyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxhQUFhLENBQUMsY0FBZ0M7UUFDeEQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7UUFDRCxPQUFPLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFnQztRQUNwRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbEIsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUNELE9BQU8sb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFTSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQWdDLEVBQUUsUUFBMEI7UUFDakYsTUFBTSxJQUFJLEdBQUc7WUFDVCxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDYixTQUFTLEVBQUUsUUFBUSxJQUFLLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBc0I7U0FDckUsQ0FBQztRQUNGLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xCLEtBQUssVUFBVSxDQUFDLElBQUk7Z0JBQ2hCLE9BQU87b0JBQ0gsR0FBRyxJQUFJO29CQUNQLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2lCQUN0RSxDQUFDO1lBQ04sS0FBSyxVQUFVLENBQUMsTUFBTSxDQUFDO1lBQ3ZCLEtBQUssVUFBVSxDQUFDLE1BQU07Z0JBQ2xCLE9BQU87b0JBQ0gsR0FBRyxJQUFJO29CQUNQLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO2lCQUM1RSxDQUFDO1lBQ04sS0FBSyxVQUFVLENBQUMsSUFBSTtnQkFDaEIsT0FBTztvQkFDSCxHQUFHLElBQUk7b0JBQ1AsS0FBSyxFQUFFLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUU7aUJBQzlGLENBQUM7WUFDTixLQUFLLFVBQVUsQ0FBQyxLQUFLLENBQUM7WUFDdEIsS0FBSyxVQUFVLENBQUMsT0FBTztnQkFDbkIsT0FBTztvQkFDSCxHQUFHLElBQUk7b0JBQ1AsS0FBSyxFQUFFLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7d0JBQy9DLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQzt3QkFDcEQsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHO2lCQUNoQyxDQUFDO1FBQ1YsQ0FBQztJQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJDb25maWd1cmF0aW9uTW9kZWwsIEZpbHRlclR5cGUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbW9kZWxzL2ZpbHRlci5tb2RlbFwiO1xuaW1wb3J0IHsgRmlsdGVyT3BlcmF0b3JzLCBGaWx0ZXJPcGVyYXRvclR5cGVzLCBRdWVyeVJ1bGVNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9tb2RlbHMvcXVlcnkubW9kZWxcIjtcblxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkRmlsdGVyc1V0aWxzIHtcbiAgICBwdWJsaWMgc3RhdGljIG5vSW5wdXRPcGVyYXRvcnM6IEZpbHRlck9wZXJhdG9yc1tdID0gW1xuICAgICAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLklzRW1wdHksXG4gICAgICAgIEZpbHRlck9wZXJhdG9yVHlwZXMuSXNOb3RFbXB0eSxcbiAgICAgICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5Jc051bGwsXG4gICAgICAgIEZpbHRlck9wZXJhdG9yVHlwZXMuSXNOb3ROdWxsLFxuICAgICAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLk5vbmVcbiAgICBdO1xuXG4gICAgcHVibGljIHN0YXRpYyBzaW5nbGVJbnB1dE9wZXJhdG9yczogRmlsdGVyT3BlcmF0b3JzW10gPSBbXG4gICAgICAgIEZpbHRlck9wZXJhdG9yVHlwZXMuRXF1YWwsXG4gICAgICAgIEZpbHRlck9wZXJhdG9yVHlwZXMuTm90RXF1YWwsXG4gICAgICAgIEZpbHRlck9wZXJhdG9yVHlwZXMuTGVzcyxcbiAgICAgICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5MZXNzT3JFcXVhbCxcbiAgICAgICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5HcmVhdGVyLFxuICAgICAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLkdyZWF0ZXJPckVxdWFsLFxuICAgICAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLkJlZ2luc1dpdGgsXG4gICAgICAgIEZpbHRlck9wZXJhdG9yVHlwZXMuTm90QmVnaW5zV2l0aCxcbiAgICAgICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5FbmRzV2l0aCxcbiAgICAgICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5Ob3RFbmRzV2l0aCxcbiAgICAgICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5Db250YWlucyxcbiAgICAgICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5Ob3RDb250YWluc1xuICAgIF07XG5cbiAgICBwdWJsaWMgc3RhdGljIGRvdWJsZUlucHV0T3BlcmF0b3JzOiBGaWx0ZXJPcGVyYXRvcnNbXSA9IFtcbiAgICAgICAgRmlsdGVyT3BlcmF0b3JUeXBlcy5CZXR3ZWVuLFxuICAgICAgICBGaWx0ZXJPcGVyYXRvclR5cGVzLk5vdEJldHdlZW5cbiAgICBdO1xuXG4gICAgcHVibGljIHN0YXRpYyBpc1NpbmdsZUlucHV0KGZpbHRlck9wZXJhdG9yPzogRmlsdGVyT3BlcmF0b3JzKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghZmlsdGVyT3BlcmF0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQWR2YW5jZWRGaWx0ZXJzVXRpbHMuc2luZ2xlSW5wdXRPcGVyYXRvcnMuaW5jbHVkZXMoZmlsdGVyT3BlcmF0b3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgaXNEb3VibGVJbnB1dChmaWx0ZXJPcGVyYXRvcj86IEZpbHRlck9wZXJhdG9ycyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWZpbHRlck9wZXJhdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEFkdmFuY2VkRmlsdGVyc1V0aWxzLmRvdWJsZUlucHV0T3BlcmF0b3JzLmluY2x1ZGVzKGZpbHRlck9wZXJhdG9yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGlzTm9JbnB1dChmaWx0ZXJPcGVyYXRvcj86IEZpbHRlck9wZXJhdG9ycyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWZpbHRlck9wZXJhdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEFkdmFuY2VkRmlsdGVyc1V0aWxzLm5vSW5wdXRPcGVyYXRvcnMuaW5jbHVkZXMoZmlsdGVyT3BlcmF0b3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlUnVsZShjb25maWc6IEZpbHRlckNvbmZpZ3VyYXRpb25Nb2RlbCwgb3BlcmF0b3I/OiBGaWx0ZXJPcGVyYXRvcnMpOiBRdWVyeVJ1bGVNb2RlbCB7XG4gICAgICAgIGNvbnN0IGJhc2UgPSB7XG4gICAgICAgICAgICBpZDogY29uZmlnLmlkLFxuICAgICAgICAgICAgb3BlcmF0aW9uOiBvcGVyYXRvciB8fCAoY29uZmlnLm9wZXJhdG9yc1swXS5pZCBhcyBGaWx0ZXJPcGVyYXRvcnMpXG4gICAgICAgIH07XG4gICAgICAgIHN3aXRjaCAoY29uZmlnLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZS5UZXh0OlxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmJhc2UsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBBZHZhbmNlZEZpbHRlcnNVdGlscy5pc0RvdWJsZUlucHV0KG9wZXJhdG9yKSA/IFtcIlwiLCBcIlwiXSA6IFwiXCJcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLk51bWJlcjpcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZS5TZWxlY3Q6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4uYmFzZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IEFkdmFuY2VkRmlsdGVyc1V0aWxzLmlzRG91YmxlSW5wdXQob3BlcmF0b3IpID8gW251bGwsIG51bGxdIDogbnVsbFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuRGF0ZTpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5iYXNlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogQWR2YW5jZWRGaWx0ZXJzVXRpbHMuaXNEb3VibGVJbnB1dChvcGVyYXRvcikgPyBbbmV3IERhdGUoKSwgbmV3IERhdGUoKV0gOiBuZXcgRGF0ZSgpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZS5SYWRpbzpcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZS5PcHRpb25zOlxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmJhc2UsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBBZHZhbmNlZEZpbHRlcnNVdGlscy5pc0RvdWJsZUlucHV0KG9wZXJhdG9yKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBbY29uZmlnLm9wdGlvbnM/LlswXS5rZXksIGNvbmZpZy5vcHRpb25zPy5bMF0ua2V5XVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25maWcub3B0aW9ucz8uWzBdLmtleVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,14 +0,0 @@
1
- import { Directive, TemplateRef } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- export class NiceFilterDataDirective {
4
- constructor(template) {
5
- this.template = template;
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFilterDataDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NiceFilterDataDirective, selector: "[niceFilterData]", ngImport: i0 }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFilterDataDirective, decorators: [{
11
- type: Directive,
12
- args: [{ selector: "[niceFilterData]" }]
13
- }], ctorParameters: () => [{ type: i0.TemplateRef }] });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2NvbW1vbi9kYXRhLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHdkQsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxZQUFtQixRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUFHLENBQUM7K0dBRHhDLHVCQUF1QjttR0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogXCJbbmljZUZpbHRlckRhdGFdXCIgfSlcbmV4cG9ydCBjbGFzcyBOaWNlRmlsdGVyRGF0YURpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuIl19
@@ -1,22 +0,0 @@
1
- import { Component, ContentChild, TemplateRef, ViewEncapsulation } from "@angular/core";
2
- import { NiceFilterViewQuery } from "../../store/nice-filter-view.query";
3
- import { NiceFilterDataDirective } from "../common/data.directive";
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../store/nice-filter-view.query";
6
- import * as i2 from "@angular/common";
7
- export class NiceFilterCustomDataViewComponent {
8
- constructor(query) {
9
- this.query = query;
10
- this.data$ = this.query.selectAll();
11
- }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFilterCustomDataViewComponent, deps: [{ token: i1.NiceFilterViewQuery }], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NiceFilterCustomDataViewComponent, selector: "nice-filter-custom-data-view, div[nice-filter-custom-data-view]", queries: [{ propertyName: "content", first: true, predicate: NiceFilterDataDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-container *ngIf=\"content\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data$ | async }\"></ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFilterCustomDataViewComponent, decorators: [{
16
- type: Component,
17
- args: [{ selector: "nice-filter-custom-data-view, div[nice-filter-custom-data-view]", encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"content\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data$ | async }\"></ng-container>\n</ng-container>\n" }]
18
- }], ctorParameters: () => [{ type: i1.NiceFilterViewQuery }], propDecorators: { content: [{
19
- type: ContentChild,
20
- args: [NiceFilterDataDirective, { read: TemplateRef }]
21
- }] } });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRhdGEtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2N1c3RvbS1kYXRhLXZpZXcvY3VzdG9tLWRhdGEtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2N1c3RvbS1kYXRhLXZpZXcvY3VzdG9tLWRhdGEtdmlldy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQVFuRSxNQUFNLE9BQU8saUNBQWlDO0lBTTFDLFlBQW9CLEtBQTBCO1FBQTFCLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBRnZDLFVBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRVcsQ0FBQzsrR0FOekMsaUNBQWlDO21HQUFqQyxpQ0FBaUMsNElBQzVCLHVCQUF1QiwyQkFBVSxXQUFXLDZCQ1g5RCw2SkFHQTs7NEZET2EsaUNBQWlDO2tCQU43QyxTQUFTOytCQUNJLGlFQUFpRSxpQkFHNUQsaUJBQWlCLENBQUMsSUFBSTt3RkFJOUIsT0FBTztzQkFEYixZQUFZO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdRdWVyeSB9IGZyb20gXCIuLi8uLi9zdG9yZS9uaWNlLWZpbHRlci12aWV3LnF1ZXJ5XCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyRGF0YURpcmVjdGl2ZSB9IGZyb20gXCIuLi9jb21tb24vZGF0YS5kaXJlY3RpdmVcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibmljZS1maWx0ZXItY3VzdG9tLWRhdGEtdmlldywgZGl2W25pY2UtZmlsdGVyLWN1c3RvbS1kYXRhLXZpZXddXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiY3VzdG9tLWRhdGEtdmlldy50ZW1wbGF0ZS5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCJjdXN0b20tZGF0YS12aWV3LnN0eWxlLnNjc3NcIl0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBOaWNlRmlsdGVyQ3VzdG9tRGF0YVZpZXdDb21wb25lbnQge1xuICAgIEBDb250ZW50Q2hpbGQoTmljZUZpbHRlckRhdGFEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBwdWJsaWMgY29udGVudDogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHB1YmxpYyBkYXRhJCA9IHRoaXMucXVlcnkuc2VsZWN0QWxsKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHF1ZXJ5OiBOaWNlRmlsdGVyVmlld1F1ZXJ5KSB7fVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGRhdGEkIHwgYXN5bmMgfVwiPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,115 +0,0 @@
1
- import { Component, Inject, Input, ViewEncapsulation } from "@angular/core";
2
- import { MatBottomSheet } from "@angular/material/bottom-sheet";
3
- import { ExportBottomSheetComponent } from "@recursyve/nice-ui-kit.v2";
4
- import { EXPORTS_SETTINGS, FILTER_VIEW_ICONS } from "../../nice-filter-view.constant";
5
- import { NiceFilterViewQuery } from "../../store/nice-filter-view.query";
6
- import { NiceFilterViewService } from "../../store/nice-filter-view.service";
7
- import { NiceSelectableListService } from "../../../../directive/selectable-list/store/selectable-list.service";
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "../../store/nice-filter-view.query";
10
- import * as i2 from "../../../../directive/selectable-list/store/selectable-list.service";
11
- import * as i3 from "../../store/nice-filter-view.service";
12
- import * as i4 from "@angular/material/bottom-sheet";
13
- import * as i5 from "@angular/material/icon";
14
- import * as i6 from "@angular/common";
15
- import * as i7 from "@angular/material/tooltip";
16
- import * as i8 from "@angular/material/button";
17
- import * as i9 from "@ngx-translate/core";
18
- export class NiceFilterExportButtonsComponent {
19
- constructor(icons, exportsSettings, niceFilterViewQuery, selectableListService, query, service, bottomSheet) {
20
- this.icons = icons;
21
- this.exportsSettings = exportsSettings;
22
- this.niceFilterViewQuery = niceFilterViewQuery;
23
- this.selectableListService = selectableListService;
24
- this.query = query;
25
- this.service = service;
26
- this.bottomSheet = bottomSheet;
27
- this.customExport = [];
28
- this.downloadFileName = "data";
29
- this.canPrint = true;
30
- this.loading$ = this.query.selectLoading();
31
- }
32
- clickExport() {
33
- const exports = [];
34
- const subState = this.niceFilterViewQuery.getSubState("selectable");
35
- let selected = [];
36
- if (subState?.stateName) {
37
- selected = this.selectableListService.query(subState.stateName).getAll().map((entity) => entity.id);
38
- }
39
- if (this.exportsSettings.xlsx) {
40
- exports.push({
41
- type: "xlsx",
42
- onClickExport: () => this.clickXlsx()
43
- });
44
- if (selected.length) {
45
- exports.push({
46
- type: "selected_xlsx",
47
- onClickExport: () => this.clickXlsx(selected)
48
- });
49
- }
50
- }
51
- if (this.exportsSettings.csv) {
52
- exports.push({
53
- type: "csv",
54
- onClickExport: () => this.clickCsv()
55
- });
56
- if (selected.length) {
57
- exports.push({
58
- type: "selected_csv",
59
- onClickExport: () => this.clickCsv(selected)
60
- });
61
- }
62
- }
63
- if (this.exportsSettings.pdf) {
64
- exports.push({
65
- type: "pdf",
66
- onClickExport: () => this.clickPdf()
67
- });
68
- if (selected.length) {
69
- exports.push({
70
- type: "selected_pdf",
71
- onClickExport: () => this.clickPdf(selected)
72
- });
73
- }
74
- }
75
- this.bottomSheet.open(ExportBottomSheetComponent, {
76
- data: {
77
- exportStrategies: [
78
- ...exports,
79
- ...this.customExport
80
- ]
81
- }
82
- });
83
- }
84
- clickXlsx(ids) {
85
- this.service.downloadData("xlsx", this.downloadFileName, ids);
86
- }
87
- clickCsv(ids) {
88
- this.service.downloadData("csv", this.downloadFileName, ids);
89
- }
90
- clickPrint() {
91
- this.service.printData();
92
- }
93
- clickPdf(ids) {
94
- this.service.downloadData("pdf", this.downloadFileName, ids);
95
- }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFilterExportButtonsComponent, deps: [{ token: FILTER_VIEW_ICONS }, { token: EXPORTS_SETTINGS }, { token: i1.NiceFilterViewQuery }, { token: i2.NiceSelectableListService }, { token: i1.NiceFilterViewQuery }, { token: i3.NiceFilterViewService }, { token: i4.MatBottomSheet }], target: i0.ɵɵFactoryTarget.Component }); }
97
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NiceFilterExportButtonsComponent, selector: "nice-filter-export-buttons, div[nice-filter-export-buttons]", inputs: { customExport: "customExport", downloadFileName: "downloadFileName", canPrint: "canPrint" }, ngImport: i0, template: "<button\n *ngIf=\"canPrint\"\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"export-button\"\n mat-mini-fab\n>\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n</button>\n\n<button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"export-button\"\n mat-mini-fab\n>\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i8.MatMiniFabButton, selector: "button[mat-mini-fab]", exportAs: ["matButton"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
98
- }
99
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFilterExportButtonsComponent, decorators: [{
100
- type: Component,
101
- args: [{ selector: "nice-filter-export-buttons, div[nice-filter-export-buttons]", encapsulation: ViewEncapsulation.None, template: "<button\n *ngIf=\"canPrint\"\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"export-button\"\n mat-mini-fab\n>\n <mat-icon [svgIcon]=\"icons.print.svgIcon\">{{ icons.print.matIcon }}</mat-icon>\n</button>\n\n<button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"export-button\"\n mat-mini-fab\n>\n <mat-icon [svgIcon]=\"icons.download.svgIcon\">{{ icons.download.matIcon }}</mat-icon>\n</button>\n" }]
102
- }], ctorParameters: () => [{ type: undefined, decorators: [{
103
- type: Inject,
104
- args: [FILTER_VIEW_ICONS]
105
- }] }, { type: undefined, decorators: [{
106
- type: Inject,
107
- args: [EXPORTS_SETTINGS]
108
- }] }, { type: i1.NiceFilterViewQuery }, { type: i2.NiceSelectableListService }, { type: i1.NiceFilterViewQuery }, { type: i3.NiceFilterViewService }, { type: i4.MatBottomSheet }], propDecorators: { customExport: [{
109
- type: Input
110
- }], downloadFileName: [{
111
- type: Input
112
- }], canPrint: [{
113
- type: Input
114
- }] } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWJ1dHRvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmljZS1kYXRhLWZpbHRlci1raXQvc3JjL2xpYi9jb21wb25lbnRzL25pY2UtZmlsdGVyLXZpZXcvY29tcG9uZW50cy9leHBvcnQtYnV0dG9ucy9leHBvcnQtYnV0dG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2V4cG9ydC1idXR0b25zL2V4cG9ydC1idXR0b25zLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMEJBQTBCLEVBQWtCLE1BQU0sMkJBQTJCLENBQUM7QUFHdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUVBQXFFLENBQUM7Ozs7Ozs7Ozs7O0FBUWhILE1BQU0sT0FBTyxnQ0FBZ0M7SUFZekMsWUFDc0MsS0FBMEIsRUFDakIsZUFBK0IsRUFDbEUsbUJBQXdDLEVBQ3hDLHFCQUFnRCxFQUNoRCxLQUEwQixFQUMxQixPQUE4QixFQUNyQixXQUEyQjtRQU5WLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBQ2pCLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUNsRSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBMkI7UUFDaEQsVUFBSyxHQUFMLEtBQUssQ0FBcUI7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBakJ6QyxpQkFBWSxHQUFxQixFQUFFLENBQUM7UUFHcEMscUJBQWdCLEdBQUcsTUFBTSxDQUFDO1FBRzFCLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFaEIsYUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFXN0MsQ0FBQztJQUVNLFdBQVc7UUFDZCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFbkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBd0IsWUFBWSxDQUFDLENBQUM7UUFFM0YsSUFBSSxRQUFRLEdBQWEsRUFBRSxDQUFDO1FBRTVCLElBQUksUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLFFBQVEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsSUFBSSxFQUFFLE1BQU07Z0JBQ1osYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7YUFDeEMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ1QsSUFBSSxFQUFFLGVBQWU7b0JBQ3JCLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztpQkFDaEQsQ0FBQyxDQUFDO1lBQ1AsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDVCxJQUFJLEVBQUUsS0FBSztnQkFDWCxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTthQUN2QyxDQUFDLENBQUM7WUFFSCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDVCxJQUFJLEVBQUUsY0FBYztvQkFDcEIsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO2lCQUMvQyxDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNULElBQUksRUFBRSxLQUFLO2dCQUNYLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2FBQ3ZDLENBQUMsQ0FBQztZQUVILElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDO29CQUNULElBQUksRUFBRSxjQUFjO29CQUNwQixhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7aUJBQy9DLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDOUMsSUFBSSxFQUFFO2dCQUNGLGdCQUFnQixFQUFFO29CQUNkLEdBQUcsT0FBTztvQkFDVixHQUFHLElBQUksQ0FBQyxZQUFZO2lCQUN2QjthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFNBQVMsQ0FBQyxHQUFlO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVNLFFBQVEsQ0FBQyxHQUFlO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVNLFVBQVU7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxRQUFRLENBQUMsR0FBZTtRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7K0dBbEdRLGdDQUFnQyxrQkFhN0IsaUJBQWlCLGFBQ2pCLGdCQUFnQjttR0FkbkIsZ0NBQWdDLHlNQ2hCN0Msc2tCQW9CQTs7NEZESmEsZ0NBQWdDO2tCQU41QyxTQUFTOytCQUNJLDZEQUE2RCxpQkFHeEQsaUJBQWlCLENBQUMsSUFBSTs7MEJBZWhDLE1BQU07MkJBQUMsaUJBQWlCOzswQkFDeEIsTUFBTTsyQkFBQyxnQkFBZ0I7c05BWnJCLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWF0Qm90dG9tU2hlZXQgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0XCI7XG5pbXBvcnQgeyBFeHBvcnRCb3R0b21TaGVldENvbXBvbmVudCwgRXhwb3J0U3RyYXRlZ3kgfSBmcm9tIFwiQHJlY3Vyc3l2ZS9uaWNlLXVpLWtpdC52MlwiO1xuaW1wb3J0IHsgRXhwb3J0U2V0dGluZ3MgfSBmcm9tIFwiLi4vLi4vLi4vYmFzZS1saXN0L21vZGVscy9leHBvcnQubW9kZWxcIjtcbmltcG9ydCB7IE5pY2VCYXNlSWNvbk9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vYmFzZS1saXN0L21vZGVscy9pY29ucy5tb2RlbFwiO1xuaW1wb3J0IHsgRVhQT1JUU19TRVRUSU5HUywgRklMVEVSX1ZJRVdfSUNPTlMgfSBmcm9tIFwiLi4vLi4vbmljZS1maWx0ZXItdmlldy5jb25zdGFudFwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdRdWVyeSB9IGZyb20gXCIuLi8uLi9zdG9yZS9uaWNlLWZpbHRlci12aWV3LnF1ZXJ5XCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlU2VsZWN0YWJsZUxpc3RTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2RpcmVjdGl2ZS9zZWxlY3RhYmxlLWxpc3Qvc3RvcmUvc2VsZWN0YWJsZS1saXN0LnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibmljZS1maWx0ZXItZXhwb3J0LWJ1dHRvbnMsIGRpdltuaWNlLWZpbHRlci1leHBvcnQtYnV0dG9uc11cIixcbiAgICB0ZW1wbGF0ZVVybDogXCJleHBvcnQtYnV0dG9ucy50ZW1wbGF0ZS5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCJleHBvcnQtYnV0dG9ucy5zdHlsZS5zY3NzXCJdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTmljZUZpbHRlckV4cG9ydEJ1dHRvbnNDb21wb25lbnQge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGN1c3RvbUV4cG9ydDogRXhwb3J0U3RyYXRlZ3lbXSA9IFtdO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZG93bmxvYWRGaWxlTmFtZSA9IFwiZGF0YVwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2FuUHJpbnQgPSB0cnVlO1xuXG4gICAgcHVibGljIGxvYWRpbmckID0gdGhpcy5xdWVyeS5zZWxlY3RMb2FkaW5nKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChGSUxURVJfVklFV19JQ09OUykgcHVibGljIGljb25zOiBOaWNlQmFzZUljb25PcHRpb25zLFxuICAgICAgICBASW5qZWN0KEVYUE9SVFNfU0VUVElOR1MpIHByaXZhdGUgcmVhZG9ubHkgZXhwb3J0c1NldHRpbmdzOiBFeHBvcnRTZXR0aW5ncyxcbiAgICAgICAgcHJpdmF0ZSBuaWNlRmlsdGVyVmlld1F1ZXJ5OiBOaWNlRmlsdGVyVmlld1F1ZXJ5LFxuICAgICAgICBwcml2YXRlIHNlbGVjdGFibGVMaXN0U2VydmljZTogTmljZVNlbGVjdGFibGVMaXN0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBxdWVyeTogTmljZUZpbHRlclZpZXdRdWVyeSxcbiAgICAgICAgcHJpdmF0ZSBzZXJ2aWNlOiBOaWNlRmlsdGVyVmlld1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYm90dG9tU2hlZXQ6IE1hdEJvdHRvbVNoZWV0XG4gICAgKSB7XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrRXhwb3J0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBleHBvcnRzID0gW107XG5cbiAgICAgICAgY29uc3Qgc3ViU3RhdGUgPSB0aGlzLm5pY2VGaWx0ZXJWaWV3UXVlcnkuZ2V0U3ViU3RhdGU8eyBzdGF0ZU5hbWU6IHN0cmluZyB9PihcInNlbGVjdGFibGVcIik7XG5cbiAgICAgICAgbGV0IHNlbGVjdGVkOiBudW1iZXJbXSA9IFtdO1xuXG4gICAgICAgIGlmIChzdWJTdGF0ZT8uc3RhdGVOYW1lKSB7XG4gICAgICAgICAgICBzZWxlY3RlZCA9IHRoaXMuc2VsZWN0YWJsZUxpc3RTZXJ2aWNlLnF1ZXJ5KHN1YlN0YXRlLnN0YXRlTmFtZSkuZ2V0QWxsKCkubWFwKChlbnRpdHkpID0+IGVudGl0eS5pZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5leHBvcnRzU2V0dGluZ3MueGxzeCkge1xuICAgICAgICAgICAgZXhwb3J0cy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcInhsc3hcIixcbiAgICAgICAgICAgICAgICBvbkNsaWNrRXhwb3J0OiAoKSA9PiB0aGlzLmNsaWNrWGxzeCgpXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGV4cG9ydHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2VsZWN0ZWRfeGxzeFwiLFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrRXhwb3J0OiAoKSA9PiB0aGlzLmNsaWNrWGxzeChzZWxlY3RlZClcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5leHBvcnRzU2V0dGluZ3MuY3N2KSB7XG4gICAgICAgICAgICBleHBvcnRzLnB1c2goe1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiY3N2XCIsXG4gICAgICAgICAgICAgICAgb25DbGlja0V4cG9ydDogKCkgPT4gdGhpcy5jbGlja0NzdigpXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGV4cG9ydHMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwic2VsZWN0ZWRfY3N2XCIsXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2tFeHBvcnQ6ICgpID0+IHRoaXMuY2xpY2tDc3Yoc2VsZWN0ZWQpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZXhwb3J0c1NldHRpbmdzLnBkZikge1xuICAgICAgICAgICAgZXhwb3J0cy5wdXNoKHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcInBkZlwiLFxuICAgICAgICAgICAgICAgIG9uQ2xpY2tFeHBvcnQ6ICgpID0+IHRoaXMuY2xpY2tQZGYoKVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBleHBvcnRzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInNlbGVjdGVkX3BkZlwiLFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrRXhwb3J0OiAoKSA9PiB0aGlzLmNsaWNrUGRmKHNlbGVjdGVkKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ib3R0b21TaGVldC5vcGVuKEV4cG9ydEJvdHRvbVNoZWV0Q29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZXhwb3J0U3RyYXRlZ2llczogW1xuICAgICAgICAgICAgICAgICAgICAuLi5leHBvcnRzLFxuICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmN1c3RvbUV4cG9ydFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrWGxzeChpZHM/OiBudW1iZXIgW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmRvd25sb2FkRGF0YShcInhsc3hcIiwgdGhpcy5kb3dubG9hZEZpbGVOYW1lLCBpZHMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGlja0NzdihpZHM/OiBudW1iZXIgW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmRvd25sb2FkRGF0YShcImNzdlwiLCB0aGlzLmRvd25sb2FkRmlsZU5hbWUsIGlkcyk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsaWNrUHJpbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5wcmludERhdGEoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tQZGYoaWRzPzogbnVtYmVyIFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VydmljZS5kb3dubG9hZERhdGEoXCJwZGZcIiwgdGhpcy5kb3dubG9hZEZpbGVOYW1lLCBpZHMpO1xuICAgIH1cbn1cbiIsIjxidXR0b25cbiAgICAqbmdJZj1cImNhblByaW50XCJcbiAgICAoY2xpY2spPVwiY2xpY2tQcmludCgpXCJcbiAgICBbZGlzYWJsZWRdPVwibG9hZGluZyQgfCBhc3luY1wiXG4gICAgW21hdFRvb2x0aXBdPVwiJ2dlbmVyYWwucHJpbnQnIHwgdHJhbnNsYXRlXCJcbiAgICBjbGFzcz1cImV4cG9ydC1idXR0b25cIlxuICAgIG1hdC1taW5pLWZhYlxuPlxuICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCJpY29ucy5wcmludC5zdmdJY29uXCI+e3sgaWNvbnMucHJpbnQubWF0SWNvbiB9fTwvbWF0LWljb24+XG48L2J1dHRvbj5cblxuPGJ1dHRvblxuICAgIChjbGljayk9XCJjbGlja0V4cG9ydCgpXCJcbiAgICBbZGlzYWJsZWRdPVwibG9hZGluZyQgfCBhc3luY1wiXG4gICAgW21hdFRvb2x0aXBdPVwiJ2dlbmVyYWwuZXhwb3J0JyB8IHRyYW5zbGF0ZVwiXG4gICAgY2xhc3M9XCJleHBvcnQtYnV0dG9uXCJcbiAgICBtYXQtbWluaS1mYWJcbj5cbiAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiaWNvbnMuZG93bmxvYWQuc3ZnSWNvblwiPnt7IGljb25zLmRvd25sb2FkLm1hdEljb24gfX08L21hdC1pY29uPlxuPC9idXR0b24+XG4iXX0=
@@ -1,27 +0,0 @@
1
- import { Directive, HostListener, Input } from "@angular/core";
2
- import { NiceFilterViewService } from "../../store/nice-filter-view.service";
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../store/nice-filter-view.service";
5
- export class NiceFilterExportDirective {
6
- constructor(service) {
7
- this.service = service;
8
- this.downloadFileName = "data";
9
- }
10
- onClick() {
11
- this.service.downloadData(this.type, this.downloadFileName);
12
- }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFilterExportDirective, deps: [{ token: i1.NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Directive }); }
14
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NiceFilterExportDirective, selector: "[niceFilterExport]", inputs: { type: "type", downloadFileName: "downloadFileName" }, host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
15
- }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFilterExportDirective, decorators: [{
17
- type: Directive,
18
- args: [{ selector: "[niceFilterExport]" }]
19
- }], ctorParameters: () => [{ type: i1.NiceFilterViewService }], propDecorators: { type: [{
20
- type: Input
21
- }], downloadFileName: [{
22
- type: Input
23
- }], onClick: [{
24
- type: HostListener,
25
- args: ["click"]
26
- }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25pY2UtZGF0YS1maWx0ZXIta2l0L3NyYy9saWIvY29tcG9uZW50cy9uaWNlLWZpbHRlci12aWV3L2NvbXBvbmVudHMvZXhwb3J0LWJ1dHRvbnMvZXhwb3J0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7OztBQUc3RSxNQUFNLE9BQU8seUJBQXlCO0lBT2xDLFlBQW9CLE9BQThCO1FBQTlCLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBRjNDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQztJQUVvQixDQUFDO0lBRy9DLE9BQU87UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7K0dBWlEseUJBQXlCO21HQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBRHJDLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsb0JBQW9CLEVBQUM7MEZBR2hDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBTUMsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3N0b3JlL25pY2UtZmlsdGVyLXZpZXcuc2VydmljZVwiO1xuXG5ARGlyZWN0aXZlKHtzZWxlY3RvcjogXCJbbmljZUZpbHRlckV4cG9ydF1cIn0pXG5leHBvcnQgY2xhc3MgTmljZUZpbHRlckV4cG9ydERpcmVjdGl2ZSB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZG93bmxvYWRGaWxlTmFtZSA9IFwiZGF0YVwiO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBOaWNlRmlsdGVyVmlld1NlcnZpY2UpIHt9XG5cbiAgICBASG9zdExpc3RlbmVyKFwiY2xpY2tcIilcbiAgICBwdWJsaWMgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXJ2aWNlLmRvd25sb2FkRGF0YSh0aGlzLnR5cGUsIHRoaXMuZG93bmxvYWRGaWxlTmFtZSk7XG4gICAgfVxufVxuIl19
@@ -1,39 +0,0 @@
1
- import { Component, ContentChild, TemplateRef, ViewEncapsulation } from "@angular/core";
2
- import { NiceFilterViewQuery } from "../../store/nice-filter-view.query";
3
- import { NiceFilterViewService } from "../../store/nice-filter-view.service";
4
- import { NiceFilterDataDirective } from "../common/data.directive";
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../store/nice-filter-view.query";
7
- import * as i2 from "../../store/nice-filter-view.service";
8
- import * as i3 from "@angular/common";
9
- export class NiceFilterInfiniteScrollDataViewComponent {
10
- constructor(query, service) {
11
- this.query = query;
12
- this.service = service;
13
- this.data$ = this.query.selectAll();
14
- }
15
- ngOnInit() {
16
- this.service.setMode("accumulated");
17
- }
18
- async loadNextPage() {
19
- const { filterParameters, filterResult } = this.query.getValue();
20
- if (filterResult && filterResult.values.length >= filterResult.total) {
21
- return;
22
- }
23
- this.service.setParameters({
24
- ...filterParameters,
25
- start: filterParameters.start + filterParameters.length
26
- });
27
- this.service.filter();
28
- }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFilterInfiniteScrollDataViewComponent, deps: [{ token: i1.NiceFilterViewQuery }, { token: i2.NiceFilterViewService }], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NiceFilterInfiniteScrollDataViewComponent, selector: "nice-filter-infinite-scroll-data-view, div[nice-filter-infinite-scroll-data-view]", queries: [{ propertyName: "content", first: true, predicate: NiceFilterDataDirective, descendants: true, read: TemplateRef }], ngImport: i0, template: "<ng-container *ngIf=\"content\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data$ | async }\"></ng-container>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NiceFilterInfiniteScrollDataViewComponent, decorators: [{
33
- type: Component,
34
- args: [{ selector: "nice-filter-infinite-scroll-data-view, div[nice-filter-infinite-scroll-data-view]", encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"content\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: data$ | async }\"></ng-container>\n</ng-container>\n" }]
35
- }], ctorParameters: () => [{ type: i1.NiceFilterViewQuery }, { type: i2.NiceFilterViewService }], propDecorators: { content: [{
36
- type: ContentChild,
37
- args: [NiceFilterDataDirective, { read: TemplateRef }]
38
- }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdGUtc2Nyb2xsLWRhdGEtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2luZmluaXRlLXNjcm9sbC1kYXRhLXZpZXcvaW5maW5pdGUtc2Nyb2xsLWRhdGEtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uaWNlLWRhdGEtZmlsdGVyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvbmljZS1maWx0ZXItdmlldy9jb21wb25lbnRzL2luZmluaXRlLXNjcm9sbC1kYXRhLXZpZXcvaW5maW5pdGUtc2Nyb2xsLWRhdGEtdmlldy50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFRbkUsTUFBTSxPQUFPLHlDQUF5QztJQU1sRCxZQUFvQixLQUEwQixFQUFVLE9BQThCO1FBQWxFLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFGL0UsVUFBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFbUQsQ0FBQztJQUVuRixRQUFRO1FBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZO1FBQ3JCLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpFLElBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuRSxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1lBQ3ZCLEdBQUcsZ0JBQWdCO1lBQ25CLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsTUFBTTtTQUMxRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBeEJRLHlDQUF5QzttR0FBekMseUNBQXlDLDhKQUNwQyx1QkFBdUIsMkJBQVUsV0FBVyw2QkNaOUQsNkpBR0E7OzRGRFFhLHlDQUF5QztrQkFOckQsU0FBUzsrQkFDSSxtRkFBbUYsaUJBRzlFLGlCQUFpQixDQUFDLElBQUk7NEhBSTlCLE9BQU87c0JBRGIsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTmljZUZpbHRlclZpZXdRdWVyeSB9IGZyb20gXCIuLi8uLi9zdG9yZS9uaWNlLWZpbHRlci12aWV3LnF1ZXJ5XCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyVmlld1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc3RvcmUvbmljZS1maWx0ZXItdmlldy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOaWNlRmlsdGVyRGF0YURpcmVjdGl2ZSB9IGZyb20gXCIuLi9jb21tb24vZGF0YS5kaXJlY3RpdmVcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwibmljZS1maWx0ZXItaW5maW5pdGUtc2Nyb2xsLWRhdGEtdmlldywgZGl2W25pY2UtZmlsdGVyLWluZmluaXRlLXNjcm9sbC1kYXRhLXZpZXddXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiaW5maW5pdGUtc2Nyb2xsLWRhdGEtdmlldy50ZW1wbGF0ZS5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCJpbmZpbml0ZS1zY3JvbGwtZGF0YS12aWV3LnN0eWxlLnNjc3NcIl0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBOaWNlRmlsdGVySW5maW5pdGVTY3JvbGxEYXRhVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQENvbnRlbnRDaGlsZChOaWNlRmlsdGVyRGF0YURpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIHB1YmxpYyBjb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgcHVibGljIGRhdGEkID0gdGhpcy5xdWVyeS5zZWxlY3RBbGwoKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcXVlcnk6IE5pY2VGaWx0ZXJWaWV3UXVlcnksIHByaXZhdGUgc2VydmljZTogTmljZUZpbHRlclZpZXdTZXJ2aWNlKSB7fVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlcnZpY2Uuc2V0TW9kZShcImFjY3VtdWxhdGVkXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBsb2FkTmV4dFBhZ2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHsgZmlsdGVyUGFyYW1ldGVycywgZmlsdGVyUmVzdWx0IH0gPSB0aGlzLnF1ZXJ5LmdldFZhbHVlKCk7XG5cbiAgICAgICAgaWYgKGZpbHRlclJlc3VsdCAmJiBmaWx0ZXJSZXN1bHQudmFsdWVzLmxlbmd0aCA+PSBmaWx0ZXJSZXN1bHQudG90YWwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VydmljZS5zZXRQYXJhbWV0ZXJzKHtcbiAgICAgICAgICAgIC4uLmZpbHRlclBhcmFtZXRlcnMsXG4gICAgICAgICAgICBzdGFydDogZmlsdGVyUGFyYW1ldGVycy5zdGFydCArIGZpbHRlclBhcmFtZXRlcnMubGVuZ3RoXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlcnZpY2UuZmlsdGVyKCk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGRhdGEkIHwgYXN5bmMgfVwiPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=