@pepperi-addons/ngx-lib 0.4.2-scroll.7 → 0.5.0-ng15.1

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 (508) hide show
  1. package/address/address.component.d.ts +1 -1
  2. package/attachment/attachment.component.d.ts +2 -1
  3. package/bread-crumbs/bread-crumbs.component.d.ts +1 -1
  4. package/bread-crumbs/bread-crumbs.model.d.ts +1 -1
  5. package/button/button.component.d.ts +1 -1
  6. package/carousel/carousel-item.directive.d.ts +1 -1
  7. package/carousel/carousel.component.d.ts +1 -1
  8. package/checkbox/checkbox.component.d.ts +2 -1
  9. package/chips/chips.component.d.ts +4 -5
  10. package/chips/chips.component.theme.scss +15 -5
  11. package/chips/chips.model.d.ts +2 -2
  12. package/chips/chips.service.d.ts +0 -3
  13. package/color/color-picker.component.d.ts +1 -1
  14. package/color/color-picker.component.theme.scss +2 -1
  15. package/color/color.component.d.ts +1 -1
  16. package/color/color.model.d.ts +1 -1
  17. package/core/clipboard/clipboard.directive.d.ts +1 -1
  18. package/core/common/directives/auto-width.directive.d.ts +1 -1
  19. package/core/common/directives/base-destroyer.directive.d.ts +10 -0
  20. package/core/common/directives/button-blur.directive.d.ts +1 -1
  21. package/core/common/directives/button-loader.directive.d.ts +1 -1
  22. package/core/common/directives/data-qa.directive.d.ts +1 -1
  23. package/core/common/directives/div-loader.directive.d.ts +1 -1
  24. package/core/common/directives/menu-blur.directive.d.ts +1 -1
  25. package/core/common/directives/prevent-multi-click.directive.d.ts +1 -1
  26. package/core/common/directives/print.directive.d.ts +1 -1
  27. package/core/common/directives/public-api.d.ts +1 -0
  28. package/core/common/pipes/common-pipes.d.ts +2 -2
  29. package/core/common/services/addon.service.d.ts +6 -4
  30. package/core/common/services/file.service.d.ts +1 -1
  31. package/core/common/services/utilities.service.d.ts +4 -4
  32. package/core/customization/customization.model.d.ts +15 -12
  33. package/core/customization/customization.service.d.ts +4 -0
  34. package/core/layout/layout.service.d.ts +1 -1
  35. package/core/layout/rtl.directive.d.ts +2 -2
  36. package/core/portal/attach.directive.d.ts +1 -1
  37. package/core/portal/target.directive.d.ts +1 -1
  38. package/date/date.component.d.ts +4 -2
  39. package/dialog/default-dialog.component.d.ts +1 -1
  40. package/dialog/dialog.component.d.ts +1 -1
  41. package/dialog/dialog.model.d.ts +2 -2
  42. package/draggable-items/draggable-item/draggable-item.component.d.ts +16 -2
  43. package/draggable-items/draggable-items.component.d.ts +4 -7
  44. package/draggable-items/draggable-items.model.d.ts +2 -2
  45. package/draggable-items/draggable-items.module.d.ts +4 -3
  46. package/esm2020/address/address.component.mjs +16 -16
  47. package/esm2020/address/address.module.mjs +5 -5
  48. package/esm2020/attachment/attachment.component.mjs +58 -49
  49. package/esm2020/attachment/attachment.module.mjs +5 -5
  50. package/esm2020/bread-crumbs/bread-crumbs.component.mjs +15 -15
  51. package/esm2020/bread-crumbs/bread-crumbs.module.mjs +5 -5
  52. package/esm2020/button/button.component.mjs +23 -23
  53. package/esm2020/button/button.module.mjs +5 -5
  54. package/esm2020/carousel/carousel-item.directive.mjs +9 -9
  55. package/esm2020/carousel/carousel.component.mjs +52 -52
  56. package/esm2020/carousel/carousel.module.mjs +5 -5
  57. package/esm2020/checkbox/checkbox.component.mjs +40 -31
  58. package/esm2020/checkbox/checkbox.module.mjs +5 -5
  59. package/esm2020/chips/chips.component.mjs +26 -28
  60. package/esm2020/chips/chips.module.mjs +5 -5
  61. package/esm2020/chips/chips.service.mjs +5 -14
  62. package/esm2020/color/color-picker.component.mjs +5 -5
  63. package/esm2020/color/color.component.mjs +4 -4
  64. package/esm2020/color/color.module.mjs +5 -5
  65. package/esm2020/core/clipboard/clipboard.directive.mjs +4 -4
  66. package/esm2020/core/clipboard/clipboard.service.mjs +4 -4
  67. package/esm2020/core/common/directives/auto-width.directive.mjs +4 -4
  68. package/esm2020/core/common/directives/base-destroyer.directive.mjs +22 -0
  69. package/esm2020/core/common/directives/button-blur.directive.mjs +4 -4
  70. package/esm2020/core/common/directives/button-loader.directive.mjs +10 -10
  71. package/esm2020/core/common/directives/data-qa.directive.mjs +4 -4
  72. package/esm2020/core/common/directives/div-loader.directive.mjs +4 -4
  73. package/esm2020/core/common/directives/menu-blur.directive.mjs +4 -4
  74. package/esm2020/core/common/directives/prevent-multi-click.directive.mjs +4 -4
  75. package/esm2020/core/common/directives/print.directive.mjs +4 -4
  76. package/esm2020/core/common/directives/public-api.mjs +2 -1
  77. package/esm2020/core/common/pipes/common-pipes.mjs +35 -35
  78. package/esm2020/core/common/pipes/date-ago.pipe.mjs +4 -4
  79. package/esm2020/core/common/services/addon.service.mjs +36 -12
  80. package/esm2020/core/common/services/color.service.mjs +4 -4
  81. package/esm2020/core/common/services/cookie.service.mjs +4 -4
  82. package/esm2020/core/common/services/data-convertor.service.mjs +6 -6
  83. package/esm2020/core/common/services/file.service.mjs +4 -4
  84. package/esm2020/core/common/services/jwt-helper.service.mjs +4 -4
  85. package/esm2020/core/common/services/session.service.mjs +4 -4
  86. package/esm2020/core/common/services/translate.service.mjs +4 -4
  87. package/esm2020/core/common/services/utilities.service.mjs +10 -10
  88. package/esm2020/core/common/services/validator.service.mjs +4 -4
  89. package/esm2020/core/common/services/window-scrolling.service.mjs +4 -4
  90. package/esm2020/core/customization/customization.model.mjs +40 -11
  91. package/esm2020/core/customization/customization.service.mjs +22 -4
  92. package/esm2020/core/http/interceptors/error.interceptor.mjs +4 -4
  93. package/esm2020/core/http/interceptors/loader.interceptor.mjs +4 -4
  94. package/esm2020/core/http/interceptors/profiler.interceptor.mjs +4 -4
  95. package/esm2020/core/http/services/http.service.mjs +4 -4
  96. package/esm2020/core/http/services/loader.service.mjs +9 -9
  97. package/esm2020/core/layout/layout.service.mjs +12 -12
  98. package/esm2020/core/layout/rtl.directive.mjs +7 -7
  99. package/esm2020/core/portal/attach.directive.mjs +4 -4
  100. package/esm2020/core/portal/portal.service.mjs +4 -4
  101. package/esm2020/core/portal/target.directive.mjs +4 -4
  102. package/esm2020/core/scroll-to/scroll-to.service.mjs +4 -4
  103. package/esm2020/date/date.component.mjs +81 -59
  104. package/esm2020/date/date.model.mjs +7 -7
  105. package/esm2020/date/date.module.mjs +5 -5
  106. package/esm2020/dialog/default-dialog.component.mjs +4 -4
  107. package/esm2020/dialog/dialog.component.mjs +4 -4
  108. package/esm2020/dialog/dialog.module.mjs +5 -5
  109. package/esm2020/dialog/dialog.service.mjs +4 -4
  110. package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +46 -6
  111. package/esm2020/draggable-items/draggable-items.component.mjs +21 -29
  112. package/esm2020/draggable-items/draggable-items.module.mjs +9 -5
  113. package/esm2020/field-title/field-title.component.mjs +8 -5
  114. package/esm2020/field-title/field-title.module.mjs +5 -5
  115. package/esm2020/files-uploader/files-uploader.component.mjs +12 -12
  116. package/esm2020/files-uploader/files-uploader.module.mjs +5 -5
  117. package/esm2020/form/field-generator.component.mjs +5 -5
  118. package/esm2020/form/form.component.mjs +29 -27
  119. package/esm2020/form/form.module.mjs +5 -5
  120. package/esm2020/form/indicators.component.mjs +4 -4
  121. package/esm2020/form/internal-button.component.mjs +17 -17
  122. package/esm2020/form/internal-carusel.component.mjs +18 -18
  123. package/esm2020/form/internal-carusel.service.mjs +4 -4
  124. package/esm2020/form/internal-field-generator.component.mjs +5 -5
  125. package/esm2020/form/internal-form.component.mjs +29 -27
  126. package/esm2020/form/internal-list.component.mjs +7 -7
  127. package/esm2020/form/internal-menu.component.mjs +4 -4
  128. package/esm2020/form/internal-page.component.mjs +4 -4
  129. package/esm2020/form/internal-page.service.mjs +4 -4
  130. package/esm2020/group-buttons/group-buttons.component.mjs +5 -5
  131. package/esm2020/group-buttons/group-buttons.module.mjs +5 -5
  132. package/esm2020/icon/icon-registry.service.mjs +4 -4
  133. package/esm2020/icon/icon.component.mjs +11 -11
  134. package/esm2020/icon/icon.module.mjs +5 -5
  135. package/esm2020/icon/icon.service.mjs +4 -4
  136. package/esm2020/image/image.component.mjs +52 -43
  137. package/esm2020/image/image.module.mjs +5 -5
  138. package/esm2020/image/image.service.mjs +4 -4
  139. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +26 -25
  140. package/esm2020/images-filmstrip/images-filmstrip.module.mjs +5 -5
  141. package/esm2020/link/link.component.mjs +59 -50
  142. package/esm2020/link/link.module.mjs +5 -5
  143. package/esm2020/link/link.pipes.mjs +4 -4
  144. package/esm2020/list/list-actions.component.mjs +6 -6
  145. package/esm2020/list/list-carousel.component.mjs +20 -20
  146. package/esm2020/list/list-chooser.component.mjs +6 -6
  147. package/esm2020/list/list-pager.component.mjs +12 -12
  148. package/esm2020/list/list-sorting.component.mjs +6 -6
  149. package/esm2020/list/list-total.component.mjs +9 -6
  150. package/esm2020/list/list-views.component.mjs +6 -6
  151. package/esm2020/list/list.component.mjs +135 -83
  152. package/esm2020/list/list.module.mjs +5 -5
  153. package/esm2020/list/list.pipes.mjs +7 -7
  154. package/esm2020/list/virtual-scroller.mjs +58 -58
  155. package/esm2020/menu/menu-item.component.mjs +5 -5
  156. package/esm2020/menu/menu.component.mjs +11 -11
  157. package/esm2020/menu/menu.module.mjs +5 -5
  158. package/esm2020/ngx-lib.module.mjs +5 -5
  159. package/esm2020/page-layout/page-layout.component.mjs +4 -4
  160. package/esm2020/page-layout/page-layout.module.mjs +5 -5
  161. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +4 -4
  162. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +4 -4
  163. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +17 -17
  164. package/esm2020/profile-data-views-list/profile-data-views-list.module.mjs +5 -5
  165. package/esm2020/quantity-selector/quantity-selector-validation.directive.mjs +4 -4
  166. package/esm2020/quantity-selector/quantity-selector.component.mjs +102 -89
  167. package/esm2020/quantity-selector/quantity-selector.module.mjs +5 -5
  168. package/esm2020/quantity-selector/quantity-selector.pipes.mjs +4 -4
  169. package/esm2020/query-builder/common/services/output-query.service.mjs +4 -4
  170. package/esm2020/query-builder/common/services/query-structure.service.mjs +14 -5
  171. package/esm2020/query-builder/common/services/type-convertor.service.mjs +10 -10
  172. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +24 -22
  173. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +4 -4
  174. package/esm2020/query-builder/query-builder.component.mjs +19 -19
  175. package/esm2020/query-builder/query-builder.module.mjs +5 -5
  176. package/esm2020/query-builder/query-builder.service.mjs +4 -4
  177. package/esm2020/remote-loader/addon-block-loader.component.mjs +45 -35
  178. package/esm2020/remote-loader/addon-block-loader.service.mjs +8 -5
  179. package/esm2020/remote-loader/remote-loader-element.component.mjs +81 -26
  180. package/esm2020/remote-loader/remote-loader.component.mjs +13 -13
  181. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  182. package/esm2020/remote-loader/remote-loader.module.mjs +5 -5
  183. package/esm2020/remote-loader/remote-loader.service.mjs +38 -15
  184. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +47 -38
  185. package/esm2020/rich-html-textarea/rich-html-textarea.module.mjs +5 -5
  186. package/esm2020/search/search.component.mjs +35 -35
  187. package/esm2020/search/search.module.mjs +5 -5
  188. package/esm2020/select/select.component.mjs +89 -45
  189. package/esm2020/select/select.module.mjs +5 -5
  190. package/esm2020/select-panel/select-panel.component.mjs +26 -26
  191. package/esm2020/select-panel/select-panel.module.mjs +5 -5
  192. package/esm2020/separator/separator.component.mjs +16 -16
  193. package/esm2020/separator/separator.module.mjs +5 -5
  194. package/esm2020/side-bar/side-bar.component.mjs +29 -15
  195. package/esm2020/side-bar/side-bar.module.mjs +5 -5
  196. package/esm2020/signature/signature-dialog.component.mjs +4 -4
  197. package/esm2020/signature/signature.component.mjs +40 -31
  198. package/esm2020/signature/signature.module.mjs +5 -5
  199. package/esm2020/size-detector/size-detector.component.mjs +15 -13
  200. package/esm2020/size-detector/size-detector.module.mjs +5 -5
  201. package/esm2020/skeleton-loader/skeleton-loader.component.mjs +5 -5
  202. package/esm2020/skeleton-loader/skeleton-loader.module.mjs +5 -5
  203. package/esm2020/slider/slider.component.mjs +21 -21
  204. package/esm2020/slider/slider.module.mjs +5 -5
  205. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +4 -4
  206. package/esm2020/smart-filters/common/filter-actions.component.mjs +4 -4
  207. package/esm2020/smart-filters/common/model/base-filter-component.mjs +28 -34
  208. package/esm2020/smart-filters/common/model/field.mjs +7 -7
  209. package/esm2020/smart-filters/common/model/operator.mjs +6 -4
  210. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +4 -4
  211. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +5 -5
  212. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +4 -4
  213. package/esm2020/smart-filters/smart-filters.component.mjs +19 -19
  214. package/esm2020/smart-filters/smart-filters.module.mjs +5 -5
  215. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +29 -9
  216. package/esm2020/snack-bar/default-snack-bar.component.mjs +4 -4
  217. package/esm2020/snack-bar/snack-bar.component.mjs +4 -4
  218. package/esm2020/snack-bar/snack-bar.module.mjs +5 -5
  219. package/esm2020/snack-bar/snack-bar.service.mjs +4 -4
  220. package/esm2020/textarea/textarea.component.mjs +40 -31
  221. package/esm2020/textarea/textarea.module.mjs +5 -5
  222. package/esm2020/textbox/textbox-validation.directive.mjs +5 -5
  223. package/esm2020/textbox/textbox.component.mjs +152 -116
  224. package/esm2020/textbox/textbox.module.mjs +5 -5
  225. package/esm2020/textbox-icon/textbox-icon.component.mjs +4 -4
  226. package/esm2020/textbox-icon/textbox-icon.module.mjs +5 -5
  227. package/esm2020/top-bar/top-bar.component.mjs +5 -5
  228. package/esm2020/top-bar/top-bar.module.mjs +5 -5
  229. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +19 -19
  230. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  231. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +61 -52
  232. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  233. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs +18 -18
  234. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -1
  235. package/fesm2015/pepperi-addons-ngx-lib-button.mjs +26 -26
  236. package/fesm2015/pepperi-addons-ngx-lib-button.mjs.map +1 -1
  237. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +63 -63
  238. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  239. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +43 -34
  240. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  241. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +33 -44
  242. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  243. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +11 -11
  244. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  245. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +91 -68
  246. package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  247. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +13 -13
  248. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  249. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +75 -40
  250. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  251. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +11 -8
  252. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  253. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +15 -15
  254. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  255. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +122 -118
  256. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  257. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +8 -8
  258. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  259. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +20 -20
  260. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  261. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +58 -49
  262. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  263. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +29 -28
  264. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  265. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +65 -56
  266. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  267. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +261 -204
  268. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  269. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +18 -18
  270. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  271. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +7 -7
  272. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  273. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +26 -26
  274. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  275. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +110 -97
  276. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  277. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +75 -65
  278. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  279. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +197 -108
  280. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  281. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +50 -41
  282. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  283. package/fesm2015/pepperi-addons-ngx-lib-search.mjs +38 -38
  284. package/fesm2015/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  285. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +29 -29
  286. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  287. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +92 -48
  288. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  289. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs +19 -19
  290. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs.map +1 -1
  291. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +32 -18
  292. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  293. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +46 -37
  294. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  295. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +18 -16
  296. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  297. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +8 -8
  298. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  299. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +24 -24
  300. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  301. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +105 -89
  302. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  303. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +13 -13
  304. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  305. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +43 -34
  306. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  307. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +7 -7
  308. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  309. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +161 -124
  310. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  311. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +8 -8
  312. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  313. package/fesm2015/pepperi-addons-ngx-lib.mjs +282 -190
  314. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  315. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +19 -19
  316. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  317. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +61 -52
  318. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  319. package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs +18 -18
  320. package/fesm2020/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -1
  321. package/fesm2020/pepperi-addons-ngx-lib-button.mjs +26 -26
  322. package/fesm2020/pepperi-addons-ngx-lib-button.mjs.map +1 -1
  323. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +63 -63
  324. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  325. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +43 -34
  326. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  327. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +33 -44
  328. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  329. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +11 -11
  330. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  331. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +90 -68
  332. package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  333. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +13 -13
  334. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  335. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +74 -39
  336. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  337. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +11 -8
  338. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  339. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +15 -15
  340. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  341. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +122 -118
  342. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  343. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +8 -8
  344. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  345. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +20 -20
  346. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  347. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +58 -49
  348. package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  349. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +29 -28
  350. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  351. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +65 -56
  352. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  353. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +259 -204
  354. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  355. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +18 -18
  356. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  357. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +7 -7
  358. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  359. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +26 -26
  360. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  361. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +110 -97
  362. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  363. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +75 -65
  364. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  365. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +184 -93
  366. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  367. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +50 -41
  368. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  369. package/fesm2020/pepperi-addons-ngx-lib-search.mjs +38 -38
  370. package/fesm2020/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  371. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +29 -29
  372. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  373. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +92 -48
  374. package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  375. package/fesm2020/pepperi-addons-ngx-lib-separator.mjs +19 -19
  376. package/fesm2020/pepperi-addons-ngx-lib-separator.mjs.map +1 -1
  377. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +32 -18
  378. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  379. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +46 -37
  380. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  381. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +18 -16
  382. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  383. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +8 -8
  384. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  385. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +24 -24
  386. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  387. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +105 -89
  388. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  389. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +13 -13
  390. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  391. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +43 -34
  392. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  393. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +7 -7
  394. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  395. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +160 -124
  396. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  397. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +8 -8
  398. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  399. package/fesm2020/pepperi-addons-ngx-lib.mjs +281 -190
  400. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  401. package/field-title/field-title.component.d.ts +2 -1
  402. package/files-uploader/files-uploader.component.d.ts +1 -1
  403. package/form/field-generator.component.d.ts +1 -1
  404. package/form/form.component.d.ts +1 -1
  405. package/form/indicators.component.d.ts +1 -1
  406. package/form/internal-button.component.d.ts +1 -1
  407. package/form/internal-carusel.component.d.ts +1 -1
  408. package/form/internal-field-generator.component.d.ts +1 -1
  409. package/form/internal-form.component.d.ts +1 -1
  410. package/form/internal-list.component.d.ts +2 -2
  411. package/form/internal-menu.component.d.ts +1 -1
  412. package/form/internal-page.component.d.ts +1 -1
  413. package/group-buttons/group-buttons.component.d.ts +2 -2
  414. package/icon/icon-generated.model.d.ts +2 -2
  415. package/icon/icon.component.d.ts +1 -1
  416. package/image/image.component.d.ts +2 -1
  417. package/image/image.component.theme.scss +4 -2
  418. package/images-filmstrip/images-filmstrip.component.d.ts +1 -1
  419. package/link/link.component.d.ts +2 -1
  420. package/list/list-actions.component.d.ts +1 -1
  421. package/list/list-carousel.component.d.ts +2 -2
  422. package/list/list-chooser.component.d.ts +1 -1
  423. package/list/list-pager.component.d.ts +1 -1
  424. package/list/list-sorting.component.d.ts +1 -1
  425. package/list/list-total.component.d.ts +2 -1
  426. package/list/list-views.component.d.ts +2 -2
  427. package/list/list.component.d.ts +8 -5
  428. package/list/list.model.d.ts +6 -6
  429. package/list/virtual-scroller.d.ts +2 -2
  430. package/menu/menu-item.component.d.ts +1 -1
  431. package/menu/menu.component.d.ts +1 -1
  432. package/menu/menu.model.d.ts +3 -3
  433. package/package.json +1 -1
  434. package/page-layout/page-layout.component.d.ts +1 -1
  435. package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +1 -1
  436. package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +1 -1
  437. package/profile-data-views-list/profile-data-views-list.component.d.ts +1 -1
  438. package/quantity-selector/quantity-selector-validation.directive.d.ts +1 -1
  439. package/quantity-selector/quantity-selector.component.d.ts +8 -9
  440. package/quantity-selector/quantity-selector.component.theme.scss +12 -6
  441. package/query-builder/common/model/operator.d.ts +1 -1
  442. package/query-builder/query-builder-item/query-builder-item.component.d.ts +4 -2
  443. package/query-builder/query-builder-section/query-builder-section.component.d.ts +1 -1
  444. package/query-builder/query-builder.component.d.ts +1 -1
  445. package/remote-loader/addon-block-loader.component.d.ts +4 -2
  446. package/remote-loader/remote-loader-element.component.d.ts +9 -2
  447. package/remote-loader/remote-loader.component.d.ts +1 -1
  448. package/remote-loader/remote-loader.model.d.ts +3 -2
  449. package/remote-loader/remote-loader.service.d.ts +2 -0
  450. package/rich-html-textarea/rich-html-textarea.component.d.ts +2 -1
  451. package/rich-html-textarea/rich-html-textarea.component.theme.scss +6 -3
  452. package/search/search.component.d.ts +1 -1
  453. package/search/search.model.d.ts +4 -4
  454. package/select/select.component.d.ts +9 -1
  455. package/select/select.component.theme.scss +22 -11
  456. package/select-panel/select-panel.component.d.ts +1 -1
  457. package/select-panel/select-panel.component.theme.scss +0 -2
  458. package/separator/separator.component.d.ts +1 -1
  459. package/side-bar/side-bar.component.d.ts +4 -1
  460. package/side-bar/side-bar.model.d.ts +1 -1
  461. package/signature/signature-dialog.component.d.ts +1 -1
  462. package/signature/signature.component.d.ts +2 -1
  463. package/size-detector/size-detector.component.d.ts +1 -1
  464. package/skeleton-loader/skeleton-loader.component.d.ts +2 -2
  465. package/slider/slider.component.d.ts +1 -1
  466. package/slider/slider.component.theme.scss +15 -5
  467. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +3 -1
  468. package/smart-filters/common/filter-actions.component.d.ts +1 -1
  469. package/smart-filters/common/model/base-filter-component.d.ts +3 -5
  470. package/smart-filters/common/model/operator.d.ts +2 -0
  471. package/smart-filters/common/model/type.d.ts +4 -4
  472. package/smart-filters/date-filter/date-filter.component.d.ts +3 -1
  473. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +3 -1
  474. package/smart-filters/number-filter/number-filter.component.d.ts +3 -1
  475. package/smart-filters/smart-filters.component.d.ts +1 -1
  476. package/smart-filters/text-filter/text-filter.component.d.ts +4 -1
  477. package/snack-bar/default-snack-bar.component.d.ts +1 -1
  478. package/snack-bar/snack-bar.component.d.ts +1 -1
  479. package/src/assets/i18n/ar.ngx-lib.json +180 -0
  480. package/src/assets/i18n/de.ngx-lib.json +104 -5
  481. package/src/assets/i18n/en.ngx-lib.json +4 -3
  482. package/src/assets/i18n/es.ngx-lib.json +113 -11
  483. package/src/assets/i18n/fr.ngx-lib.json +105 -4
  484. package/src/assets/i18n/he.ngx-lib.json +105 -4
  485. package/src/assets/i18n/it.ngx-lib.json +114 -13
  486. package/src/assets/i18n/ja.ngx-lib.json +105 -4
  487. package/src/assets/i18n/pl.ngx-lib.json +105 -4
  488. package/src/assets/i18n/pt.ngx-lib.json +105 -4
  489. package/src/assets/i18n/sr.ngx-lib.json +180 -0
  490. package/src/assets/i18n/zh.ngx-lib.json +105 -2
  491. package/src/core/style/abstracts/mixins.scss +88 -30
  492. package/src/core/style/abstracts/variables.scss +9 -0
  493. package/src/core/style/base/Spacing.stories.mdx +22 -22
  494. package/src/core/style/base/base.scss +215 -115
  495. package/src/core/style/components/button.scss +41 -19
  496. package/src/core/style/components/checkbox.scss +132 -128
  497. package/src/core/style/components/file.scss +13 -9
  498. package/src/core/style/components/general.scss +149 -65
  499. package/src/core/style/components/radio-button.scss +50 -23
  500. package/src/core/style/components/textarea.scss +69 -30
  501. package/textarea/textarea.component.d.ts +2 -1
  502. package/textbox/textbox-validation.directive.d.ts +1 -1
  503. package/textbox/textbox.component.d.ts +2 -1
  504. package/textbox-icon/textbox-icon.component.d.ts +1 -1
  505. package/theming-offline.scss +2 -1
  506. package/theming.scss +2 -1
  507. package/top-bar/top-bar.component.d.ts +1 -1
  508. package/top-bar/top-bar.model.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"pepperi-addons-ngx-lib-smart-filters.mjs","sources":["../../../projects/ngx-lib/smart-filters/common/model/operator.ts","../../../projects/ngx-lib/smart-filters/common/filter-actions.component.ts","../../../projects/ngx-lib/smart-filters/common/filter-actions.component.html","../../../projects/ngx-lib/smart-filters/common/model/base-filter-component.ts","../../../projects/ngx-lib/smart-filters/text-filter/text-filter.component.ts","../../../projects/ngx-lib/smart-filters/text-filter/text-filter.component.html","../../../projects/ngx-lib/smart-filters/boolean-filter/boolean-filter.component.ts","../../../projects/ngx-lib/smart-filters/boolean-filter/boolean-filter.component.html","../../../projects/ngx-lib/smart-filters/date-filter/date-filter.component.ts","../../../projects/ngx-lib/smart-filters/date-filter/date-filter.component.html","../../../projects/ngx-lib/smart-filters/multi-select-filter/multi-select-filter.component.ts","../../../projects/ngx-lib/smart-filters/multi-select-filter/multi-select-filter.component.html","../../../projects/ngx-lib/smart-filters/number-filter/number-filter.component.ts","../../../projects/ngx-lib/smart-filters/number-filter/number-filter.component.html","../../../projects/ngx-lib/smart-filters/smart-filters.component.ts","../../../projects/ngx-lib/smart-filters/smart-filters.component.html","../../../projects/ngx-lib/smart-filters/smart-filters.module.ts","../../../projects/ngx-lib/smart-filters/common/model/field.ts","../../../projects/ngx-lib/smart-filters/common/model/creator.ts","../../../projects/ngx-lib/smart-filters/public-api.ts","../../../projects/ngx-lib/smart-filters/pepperi-addons-ngx-lib-smart-filters.ts"],"sourcesContent":["import {\n PepSmartFilterComponentType,\n PepSmartFilterOperatorType,\n PepSmartFilterOperatorUnitType,\n} from './type';\nexport class IPepSmartFilterOperator {\n id: PepSmartFilterOperatorType;\n name: string;\n short: string;\n componentType: PepSmartFilterComponentType[];\n}\n\nconst Equals: IPepSmartFilterOperator = {\n id: 'eq',\n name: 'EQUAL',\n short: '=',\n componentType: [\n 'number',\n 'boolean',\n // 'multi-select',\n // 'date',\n 'text',\n // 'auto-complete',\n // 'select',\n ],\n};\n\nconst NotEqual: IPepSmartFilterOperator = {\n id: 'neq',\n name: 'NOT_EQUAL',\n short: '<>',\n componentType: [\n 'number',\n // 'multi-select',\n // 'date',\n 'text',\n // 'auto-complete',\n // 'select',\n ],\n};\n\nconst LessThan: IPepSmartFilterOperator = {\n id: 'lt',\n name: 'LESS_THEN',\n short: '<',\n componentType: ['number'],\n};\n\n// const LessThanOrEquals: IPepSmartFilterOperator = {\n// id: 'ltoe',\n// name: 'LESS_THEN_OR_EQUAL',\n// short: '<=',\n// type: ['number'],\n// };\n\nconst GreaterThan: IPepSmartFilterOperator = {\n id: 'gt',\n name: 'GREATER_THEN',\n short: '>',\n componentType: ['number'],\n};\n\n// const GreaterThanOrEquals: IPepSmartFilterOperator = {\n// id: 'gtoe',\n// name: 'GREATER_THEN_OR_EQUAL',\n// short: '>=',\n// type: ['number'],\n// };\n\nconst NumberRange: IPepSmartFilterOperator = {\n id: 'numberRange',\n name: 'NUMBER_RANGE',\n short: 'Range',\n componentType: ['number'],\n};\n\nconst Contains: IPepSmartFilterOperator = {\n id: 'contains',\n name: 'CONTAINS',\n short: 'Contains',\n componentType: ['text'],\n};\n\nconst BeginsWith: IPepSmartFilterOperator = {\n id: 'beginsWith',\n name: 'BEGINS_WITH',\n short: 'Begins With',\n componentType: ['text'],\n};\n\nconst EndsWith: IPepSmartFilterOperator = {\n id: 'endsWith',\n name: 'ENDS_WITH',\n short: 'End With',\n componentType: ['text'],\n};\n\n// const After: Operator = {\n// id: 'after',\n// name: 'After',\n// short: 'After',\n// type: ['date'],\n// };\n\n// const Before: Operator = {\n// id: 'before',\n// name: 'Before',\n// short: 'Before',\n// type: ['date'],\n// };\n\nconst InTheLast: IPepSmartFilterOperator = {\n id: 'inTheLast',\n name: 'IN_THE_LAST',\n short: 'In the last',\n componentType: ['date'],\n};\n\nconst Today: IPepSmartFilterOperator = {\n id: 'today',\n name: 'TODAY',\n short: 'Today',\n componentType: ['date'],\n};\n\nconst ThisWeek: IPepSmartFilterOperator = {\n id: 'thisWeek',\n name: 'THIS_WEEK',\n short: 'This week',\n componentType: ['date'],\n};\n\nconst ThisMonth: IPepSmartFilterOperator = {\n id: 'thisMonth',\n name: 'THIS_MONTH',\n short: 'This month',\n componentType: ['date'],\n};\n\nconst DateRange: IPepSmartFilterOperator = {\n id: 'dateRange',\n name: 'DATE_RANGE',\n short: 'Range',\n componentType: ['date'],\n};\n\nconst DueIn: IPepSmartFilterOperator = {\n id: 'dueIn',\n name: 'DUE_IN',\n short: 'Due in',\n componentType: ['date'],\n};\n\nconst On: IPepSmartFilterOperator = {\n id: 'on',\n name: 'ON',\n short: 'On',\n componentType: ['date'],\n};\n\nconst NotInTheLast: IPepSmartFilterOperator = {\n id: 'notInTheLast',\n name: 'NOT_IN_THE_LAST',\n short: 'Not in the last',\n componentType: ['date'],\n};\n\nconst NotDueIn: IPepSmartFilterOperator = {\n id: 'notDueIn',\n name: 'NOT_DUE_IN',\n short: 'Not due in',\n componentType: ['date'],\n};\n\nconst IsEmpty: IPepSmartFilterOperator = {\n id: 'isEmpty',\n name: 'IS_EMPTY',\n short: 'Is empty',\n componentType: ['date'],\n};\n\nconst IsNotEmpty: IPepSmartFilterOperator = {\n id: 'isNotEmpty',\n name: 'IS_NOT_EMPTY',\n short: 'Is not empty',\n componentType: ['date'],\n};\n\nconst In: IPepSmartFilterOperator = {\n id: 'in',\n name: 'IN',\n short: 'In',\n componentType: ['multi-select'],\n};\n\nconst InVariable: IPepSmartFilterOperator = {\n id: 'inv',\n name: 'IN_VARIABLE',\n short: 'In',\n componentType: ['multi-select', 'text'],\n};\n\nexport const PepSmartFilterOperators = {\n Equals: Equals,\n NotEqual: NotEqual,\n LessThan: LessThan,\n // LessThanOrEquals: LessThanOrEquals,\n GreaterThan: GreaterThan,\n // GreaterThanOrEquals: GreaterThanOrEquals,\n NumberRange: NumberRange,\n Contains: Contains,\n BeginsWith: BeginsWith,\n EndsWith: EndsWith,\n // After: After,\n // Before: Before,\n InTheLast: InTheLast,\n Today: Today,\n ThisWeek: ThisWeek,\n ThisMonth: ThisMonth,\n DateRange: DateRange,\n DueIn: DueIn,\n On: On,\n NotInTheLast: NotInTheLast,\n NotDueIn: NotDueIn,\n IsEmpty: IsEmpty,\n IsNotEmpty: IsNotEmpty,\n In: In,\n};\n\n//additional operators to be added upon input flag\nconst InTheLastCalendar: IPepSmartFilterOperator = {\n id: 'inTheLastCalendar',\n name: 'IN_THE_LAST_CALENDAR',\n short: 'In the last (calendar)',\n componentType: ['date'],\n}\n\nconst NotInTheLastCalendar: IPepSmartFilterOperator = {\n id: 'notInTheLastCalendar',\n name: 'NOT_IN_THE_LAST_CALENDAR',\n short: 'Not in the last (calendar)',\n componentType: ['date'],\n}\n\nexport const PepSmartFilterAdditionalOperators = {\n InTheLastCalendar: InTheLastCalendar,\n NotInTheLastCalendar: NotInTheLastCalendar\n}\n\n//additional variable operators to be added upon input variable fields\nconst EqualsToVariable: IPepSmartFilterOperator = {\n id: 'eqv',\n name: 'EQUAL_TO_VARIABLE',\n short: '=',\n componentType: ['text', 'number', 'boolean']\n}\n\nconst NotEqualsToVariable: IPepSmartFilterOperator = {\n id: 'neqv',\n name: 'NOT_EQUAL_TO_VARIABLE',\n short: '<>',\n componentType: ['boolean']\n}\n\nconst LessThanVariable: IPepSmartFilterOperator = {\n id: 'ltv',\n name: 'LESS_THAN_VARIABLE',\n short: '<',\n componentType: ['number'],\n};\n\nconst GreaterThanVariable: IPepSmartFilterOperator = {\n id: 'gtv',\n name: 'GREATER_THAN_VARIABLE',\n short: '>',\n componentType: ['number'],\n};\n\nconst DateRangeVariable: IPepSmartFilterOperator = {\n id: 'dateRangeVariable',\n name: 'DATE_RANGE_VARIABLE',\n short: 'Range Variable',\n componentType: ['date'],\n};\n\nexport const PepSmartFilterVariableOperators = {\n EqualsToVariable: EqualsToVariable,\n NotEqualsToVariable: NotEqualsToVariable,\n LessThanVariable: LessThanVariable,\n GreaterThanVariable: GreaterThanVariable,\n DateRangeVariable: DateRangeVariable,\n InVariable: InVariable\n}\n\nexport class IPepSmartFilterOperatorUnit {\n id: PepSmartFilterOperatorUnitType;\n name: string;\n componentType: PepSmartFilterComponentType[];\n}\n\nconst Days: IPepSmartFilterOperatorUnit = {\n id: 'days',\n name: 'DAYS',\n componentType: ['date'],\n};\n\nconst Weeks: IPepSmartFilterOperatorUnit = {\n id: 'weeks',\n name: 'WEEKS',\n componentType: ['date'],\n};\n\nconst Months: IPepSmartFilterOperatorUnit = {\n id: 'months',\n name: 'MONTHS',\n componentType: ['date'],\n};\n\nconst Years: IPepSmartFilterOperatorUnit = {\n id: 'years',\n name: 'YEARS',\n componentType: ['date'],\n};\n\nexport const PepSmartFilterOperatorUnits = {\n Days: Days,\n Weeks: Weeks,\n Months: Months,\n Years: Years,\n};\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'pep-filter-actions',\n templateUrl: './filter-actions.component.html',\n styleUrls: ['./filter-actions.component.scss'],\n})\nexport class PepFilterActionsComponent {\n @Input() form: FormGroup;\n\n @Output() clearClick: EventEmitter<void> = new EventEmitter<void>();\n @Output() applyClick: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n clear() {\n this.clearClick.emit();\n }\n\n apply() {\n this.applyClick.emit();\n }\n}\n","<div [formGroup]=\"form\" class=\"filter-actions pep-spacing-element-negative\">\n <button mat-button class=\"pep-spacing-element pep-button sm weak\" (click)=\"clear()\">\n {{ 'ACTIONS.CLEAR' | translate }}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button sm strong\" (click)=\"apply()\" [disabled]=\"form.invalid\">\n {{ 'ACTIONS.APPLY' | translate }}\n </button>\n</div>","import {\n Directive,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n AfterViewInit,\n Output,\n ChangeDetectorRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n ViewChild,\n ComponentFactoryResolver,\n ComponentFactory,\n ComponentRef,\n Injector,\n ElementRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\nimport {\n PepValidatorService,\n IPepOption,\n PepUtilitiesService\n} from '@pepperi-addons/ngx-lib';\nimport {\n IPepSmartFilterOperator,\n IPepSmartFilterOperatorUnit,\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n PepSmartFilterVariableOperators,\n PepSmartFilterOperatorUnits,\n} from './operator';\nimport { forwardRef } from '@angular/core';\nimport { IPepSmartFilterData, IPepSmartFilterDataValue } from './filter';\nimport { PepSmartFilterBaseField } from './field';\nimport { takeUntil } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PepFilterActionsComponent } from '../filter-actions.component';\n\n\n@Directive({})\nexport abstract class BaseFilterComponent\n implements OnInit, OnChanges, OnDestroy {\n private readonly _destroyed: Subject<void>;\n private actionsContainerRef: ComponentRef<PepFilterActionsComponent>;\n\n private _fieldIdWithNoDots = '';\n private _field: PepSmartFilterBaseField;\n @Input()\n set field(value: PepSmartFilterBaseField) {\n this._field = value;\n this._fieldIdWithNoDots = value ? value.id.replace(/\\./g, '_') : '';\n this.setupForm();\n }\n get field(): PepSmartFilterBaseField {\n return this._field;\n }\n\n variableFieldOptions: Array<IPepOption> = [];\n @Input()\n set variableField(list: any[]) {\n if (list?.length) {\n this.variableFieldOptions = list.map(item => {\n return {\n key: item,\n value: item\n }\n });\n }\n }\n \n\n private _filter: IPepSmartFilterData;\n @Input()\n set filter(value: IPepSmartFilterData) {\n this._filter = value;\n this.setupFilter();\n }\n get filter(): IPepSmartFilterData {\n return this._filter;\n }\n protected _parentForm: FormGroup;\n @Input()\n set parentForm(form: FormGroup) {\n this._parentForm = form;\n this.updateParentForm();\n }\n @Input() emitOnChange = false;\n @Input() inline = false;\n @Input() showActionButtons = true;\n @Input() renderTitle = true;\n @Input() showAdditionalOperators = false;\n\n @Output() filterClear: EventEmitter<void> = new EventEmitter<void>();\n @Output()\n filterChange: EventEmitter<IPepSmartFilterData> = new EventEmitter<IPepSmartFilterData>();\n\n private _operator: IPepSmartFilterOperator;\n set operator(operator: IPepSmartFilterOperator) {\n if (operator?.id != this._operator?.id) {\n // Validate operator\n const index = this.operators.findIndex((o) => o.id === operator.id);\n if (index >= 0) {\n this._operator = this.operators[index];\n } else {\n this._operator = this.operators[0];\n }\n\n this.form.reset();\n this.updateValidity();\n }\n }\n get operator(): IPepSmartFilterOperator {\n return this._operator;\n }\n\n private _operatorUnit: IPepSmartFilterOperatorUnit;\n set operatorUnit(operatorUnit: IPepSmartFilterOperatorUnit) {\n // Validate operator unit\n if (operatorUnit) {\n const index = this.operatorUnits.findIndex(\n (ou) => ou.id === operatorUnit.id\n );\n if (index >= 0) {\n this._operatorUnit = this.operatorUnits[index];\n } else {\n this._operatorUnit = this.operatorUnits[0];\n }\n } else {\n this._operatorUnit = undefined;\n }\n }\n get operatorUnit(): IPepSmartFilterOperatorUnit {\n return this._operatorUnit;\n }\n\n get firstControlKey() {\n return this.field ? `${this._fieldIdWithNoDots}_first` : 'first';\n }\n get firstControl(): AbstractControl {\n return this.form.get(this.firstControlKey);\n }\n get secondControlKey() {\n return this.field ? `${this._fieldIdWithNoDots}_second` : 'second';\n }\n get secondControl(): AbstractControl {\n return this.form.get(this.secondControlKey);\n }\n\n protected operators: IPepSmartFilterOperator[];\n protected operatorUnits: IPepSmartFilterOperatorUnit[];\n\n protected readonly OPERATORS_TRANSLATION_PREFIX = 'SMART_FILTERS.OPERATORS';\n protected readonly OPERATOR_UNITS_TRANSLATION_PREFIX =\n 'SMART_FILTERS.OPERATOR_UNITS';\n\n form: FormGroup;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private injector: Injector,\n private resolver: ComponentFactoryResolver,\n private builder: FormBuilder,\n protected translate: TranslateService,\n protected validator: PepValidatorService,\n protected utilitiesService: PepUtilitiesService,\n protected renderer: Renderer2,\n ) {\n this._destroyed = new Subject();\n }\n\n private createActionsComponent() {\n const factory: ComponentFactory<PepFilterActionsComponent> = this.resolver.resolveComponentFactory(\n PepFilterActionsComponent\n );\n\n this.actionsContainerRef = factory.create(this.injector);\n this.actionsContainerRef.instance.form = this.form;\n this.actionsContainerRef.instance.applyClick.subscribe(() =>\n this.applyFilter()\n );\n this.actionsContainerRef.instance.clearClick.subscribe(() =>\n this.clearFilter()\n );\n\n this.viewContainerRef.insert(this.actionsContainerRef.hostView);\n }\n\n private setupForm() {\n const formValue = {};\n formValue[this.firstControlKey] = [];\n formValue[this.secondControlKey] = [];\n // this.form.patchValue(formValue); \n this.form = this.builder.group(formValue);\n // this.form[this.firstControlKey] = [];\n // this.form[this.secondControlKey] = [];\n\n this.setupOperators();\n\n if (this.showActionButtons) {\n this.createActionsComponent();\n }\n }\n\n private setupOperators() {\n // Get the operators by componentType.\n this.operators = Object.keys(PepSmartFilterOperators)\n .filter((key) => {\n return PepSmartFilterOperators[key].componentType.includes(\n this.field.componentType\n );\n })\n .map((key) => PepSmartFilterOperators[key]);\n\n // Add additional operators\n if (this.showAdditionalOperators) {\n const additional: IPepSmartFilterOperator[] = Object.keys(PepSmartFilterAdditionalOperators)\n .filter((key) => {\n return PepSmartFilterAdditionalOperators[key].componentType.includes(\n this.field.componentType\n );\n })\n .map((key) => PepSmartFilterAdditionalOperators[key]);\n\n this.operators = [...this.operators, ...additional];\n }\n\n //add variable operators\n if (this.variableFieldOptions?.length) {\n const variables: IPepSmartFilterOperator[] = Object.keys(PepSmartFilterVariableOperators)\n .filter((key) => {\n return PepSmartFilterVariableOperators[key].componentType.includes(\n this.field.componentType\n );\n })\n .map((key) => PepSmartFilterVariableOperators[key]);\n\n this.operators = [...this.operators, ...variables];\n }\n\n // Filter by from field.operators input if exist.\n if (this.field.operators?.length > 0) {\n this.operators = this.operators.filter((o1) =>\n this.field.operators.some((o2) => o1.id === o2)\n );\n }\n\n\n\n // Get the operator units by componentType.\n this.operatorUnits = Object.keys(PepSmartFilterOperatorUnits)\n .filter((key) => {\n return PepSmartFilterOperatorUnits[key].componentType.includes(\n this.field.componentType\n );\n })\n .map((key) => PepSmartFilterOperatorUnits[key]);\n\n // Filter by from field.operatorsUnits input if exist.\n if (this.field.operatorUnits?.length > 0) {\n this.operatorUnits = this.operatorUnits.filter((o1) =>\n this.field.operatorUnits.some((o2) => o1.id === o2)\n );\n }\n\n // Load translation before get the options in the children.\n this.translate.get('SMART_FILTERS.TITLE').subscribe((res) => {\n this.loadOperatorsOptions();\n });\n }\n\n private setupFilter() {\n if (this._filter) {\n this.operator = this._filter.operator;\n this.operatorUnit = this._filter.operatorUnit;\n const formValue = {};\n formValue[this.firstControlKey] = this._filter.value.first;\n formValue[this.secondControlKey] = this._filter.value.second;\n this.form.patchValue(formValue);\n } else {\n this.operator = this.getDefaultOperator();\n this.operatorUnit = this.getDefaultOperatorUnit();\n this.clearFilter(false);\n }\n }\n\n protected updateParentForm() {\n this._parentForm.setControl('fieldId', this.builder.control(this.field.id));\n this._parentForm.setControl('fieldType', this.builder.control(this.field.type));\n this._parentForm.setControl('operator', this.builder.control(this.operator));\n this._parentForm.setControl('operatorUnit', this.builder.control(this.operatorUnit));\n this._parentForm.setControl('values', this.builder.group({\n first: this.firstControl,\n second: this.secondControl\n }));\n }\n\n protected getDestroyer() {\n return takeUntil(this._destroyed);\n }\n\n private updateValidity() {\n this.setFieldsStateAndValidators();\n\n this.firstControl.updateValueAndValidity();\n this.secondControl.updateValueAndValidity();\n }\n // Load the operators options from the translation.\n protected loadOperatorsOptions(): void {\n // Not implemented in the base\n }\n\n // Set default validators - some childs override this.\n protected setFieldsStateAndValidators(): void {\n this.firstControl.setValidators(Validators.required);\n this.secondControl.setValidators(Validators.required);\n this.secondControl.disable();\n }\n\n // Return undefined - some childs override this.\n protected getDefaultOperatorUnit(): IPepSmartFilterOperatorUnit {\n return undefined;\n }\n\n protected initFilter() {\n // Not implemented in the base\n }\n\n abstract getDefaultOperator(): IPepSmartFilterOperator;\n abstract getFilterValue(): IPepSmartFilterDataValue;\n\n clearFilter(emitEvent = true) {\n this._filter = null;\n this.form.reset();\n this.initFilter();\n\n if (emitEvent) {\n this.filterClear.emit();\n }\n }\n\n applyFilter() {\n const filterValue = this.getFilterValue();\n\n // If the filter is not null declare it, else - clear it.\n if (filterValue) {\n const filter = {\n fieldId: this.field.id,\n operator: this.operator,\n operatorUnit: this.operatorUnit,\n value: filterValue,\n };\n this._filter = filter;\n this.filterChange.emit(filter);\n } else {\n this.clearFilter();\n }\n }\n\n ngOnInit(): void {\n if (this.form) {\n this.updateValidity();\n }\n }\n\n ngOnChanges(): void {\n // if (this.form) {\n // this.updateValidity();\n // }\n }\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n\n if (this.showActionButtons) {\n this.actionsContainerRef.destroy();\n }\n }\n\n // writeValue(value: IPepSmartFilterDataValue): void {\n // if (value) {\n // this.form.setValue(\n // {\n // first: value.first,\n // second: value.second || null,\n // },\n // { emitEvent: false }\n // );\n // } else {\n // this.form.reset();\n // }\n // }\n\n // registerOnChange(fn: any): void {\n // this.form.valueChanges.subscribe(fn);\n // }\n\n // onTouched: () => void = () => {\n // /* Do nothing */\n // };\n\n // registerOnTouched(fn: any): void {\n // this.onTouched = fn;\n // }\n\n // setDisabledState?(isDisabled: boolean): void {\n // isDisabled ? this.form.disable() : this.form.enable();\n // }\n\n // validate(control: AbstractControl): ValidationErrors {\n // return this.form.valid ? null : { PepFilterIsNotValid: true };\n // }\n}\n","import { Component, OnChanges, OnInit } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n PepSmartFilterVariableOperators\n} from '../common/model/operator';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\n\n@Component({\n selector: 'pep-text-filter',\n templateUrl: './text-filter.component.html',\n styleUrls: ['./text-filter.component.scss'],\n})\nexport class PepTextFilterComponent extends BaseFilterComponent implements OnInit {\n PepSmartFilterVariableOperators = PepSmartFilterVariableOperators;\n chooseTypeOptions: Array<IPepOption> = [];\n operatorWidth = '38%';\n firstControlWidth = '62%';\n\n ngOnInit() {\n this.firstControl.valueChanges\n .pipe(this.getDestroyer(), distinctUntilChanged())\n .subscribe(() => {\n this.setFieldsStateAndValidators();\n });\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.Equals;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = {\n first: this.firstControl.value,\n };\n\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n filterValue['second'] = this.secondControl.value;\n }\n\n return filterValue;\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTypeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n }\n\n // Override\n setFieldsStateAndValidators(): void {\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n const firstValidators = [Validators.required];\n if (this.secondControl.value) {\n firstValidators.push(this.validator.isLessThan(this.secondControl));\n }\n this.firstControl.setValidators(firstValidators);\n this.firstControl.updateValueAndValidity();\n } else {\n super.setFieldsStateAndValidators();\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(this.operators).find(\n (operator) => operator.id === value\n );\n this.operator = operator;\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onVariableChanged(value: any) {\n this.firstControl.setValue(value);\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onValueChanged() {\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}","<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\n <pep-select [fxFlex]=\"inline ? operatorWidth : null\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.InVariable\">\n <pep-textbox [fxFlex]=\"inline ? firstControlWidth : null\" [form]=\"form\" [key]=\"firstControlKey\"\n [label]=\"'SMART_FILTERS.VALUE' | translate\" [renderError]=\"false\" [renderTitle]=\"renderTitle\"\n [type]=\"field.type\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n </ng-container>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable ||\n operator === PepSmartFilterVariableOperators.InVariable\">\n <pep-select [fxFlex]=\"inline ? firstControlWidth : null\" [key]=\"firstControlKey\"\n [value]=\"firstControl?.value || ''\" [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\"\n [emptyOption]=\"false\" [options]=\"variableFieldOptions\" (valueChange)=\"onVariableChanged($event)\">\n </pep-select>\n </ng-container>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n PepSmartFilterVariableOperators\n} from '../common/model/operator';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Component({\n selector: 'pep-boolean-filter',\n templateUrl: './boolean-filter.component.html',\n styleUrls: ['./boolean-filter.component.scss'],\n})\nexport class PepBooleanFilterComponent extends BaseFilterComponent implements OnInit {\n @Input() options: IPepOption[] = [];\n\n PepSmartFilterVariableOperators = PepSmartFilterVariableOperators;\n chooseTypeOptions: Array<IPepOption> = [];\n operatorWidth: string;\n valueWidth: string;\n\n ngOnInit() {\n if (this.inline) {\n this.setControlsWidth();\n }\n }\n\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.Equals;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = { first: this.firstControl.value || false };\n return filterValue;\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTypeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n }\n\n setControlsWidth() {\n if (this.variableFieldOptions?.length) {\n this.operatorWidth = '38%';\n this.valueWidth = '62%';\n\n } else {\n this.valueWidth = '100%';\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(this.operators).find(\n (operator) => operator.id === value\n );\n this.operator = operator;\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onValueChanged(value) {\n this.firstControl.setValue(value);\n\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n}\n","<ng-container *ngIf=\"inline; then inlineBlock; else notInlineBlock\"></ng-container>\n<ng-template #inlineBlock>\n <ng-container *ngIf=\"variableFieldOptions?.length\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select [fxFlex]=\"operatorWidth\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable || \n operator === PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\"\n [options]=\"options\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!variableFieldOptions || !variableFieldOptions.length\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\" [options]=\"options\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n</ng-template>\n<ng-template #notInlineBlock>\n <div [formGroup]=\"form\">\n <mat-radio-group class=\"radio-group \" [formControlName]=\"firstControlKey\">\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"true\">\n <span class=\"body-sm ellipsis\">{{ 'CHECKBOX.TRUE' | translate }}</span>\n </mat-radio-button>\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"false\">\n <span class=\"body-sm ellipsis\">{{ 'CHECKBOX.FALSE' | translate }}</span>\n </mat-radio-button>\n </mat-radio-group>\n </div>\n</ng-template>","import { Component, OnInit } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n IPepSmartFilterOperatorUnit,\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n PepSmartFilterVariableOperators,\n PepSmartFilterOperatorUnits,\n} from '../common/model/operator';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { Validators } from '@angular/forms';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Component({\n selector: 'pep-date-filter',\n templateUrl: './date-filter.component.html',\n styleUrls: ['./date-filter.component.scss'],\n})\nexport class PepDateFilterComponent extends BaseFilterComponent implements OnInit {\n PepSmartFilterOperators = PepSmartFilterOperators;\n PepSmartFilterAdditionalOperators = PepSmartFilterAdditionalOperators;\n PepSmartFilterVariableOperators = PepSmartFilterVariableOperators;\n chooseTimeOptions: Array<IPepOption> = [];\n chooseTimeUnitOptions: Array<IPepOption> = [];\n operatorWidth: string;\n fieldsWidth: string;\n\n ngOnInit() {\n if (this.inline) {\n this.setControlsWidth();\n }\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.InTheLast;\n }\n\n // Override\n getDefaultOperatorUnit(): IPepSmartFilterOperatorUnit {\n if (this.operator === PepSmartFilterOperators.InTheLast ||\n this.operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n this.operator === PepSmartFilterOperators.NotInTheLast ||\n this.operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n this.operator === PepSmartFilterOperators.DueIn ||\n this.operator === PepSmartFilterOperators.NotDueIn) {\n return PepSmartFilterOperatorUnits.Months;\n } else {\n return undefined;\n }\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = {\n first: this.firstControl.value,\n };\n\n if (this.operator === PepSmartFilterOperators.DateRange ||\n this.operator === PepSmartFilterVariableOperators.DateRangeVariable) {\n filterValue['second'] = this.secondControl.value;\n }\n\n return filterValue;\n }\n\n // Override\n initFilter() {\n setTimeout(() => { \n if (this.emitOnChange) {\n this.applyFilter();\n }\n }, 0);\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTimeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n\n this.chooseTimeUnitOptions = this.operatorUnits.map((operatorUnit) => {\n return {\n key: operatorUnit.id,\n value: this.translate.instant(\n `${this.OPERATOR_UNITS_TRANSLATION_PREFIX}.${operatorUnit.name}`\n ),\n };\n });\n }\n\n // Override\n setFieldsStateAndValidators(): void {\n this.firstControl.enable();\n\n if (\n this.operator === PepSmartFilterOperators.DateRange ||\n this.operator === PepSmartFilterVariableOperators.DateRangeVariable\n ) {\n this.firstControl.setValidators(Validators.required);\n this.secondControl.enable();\n this.secondControl.setValidators(Validators.required);\n } else if (\n this.operator === PepSmartFilterOperators.InTheLast ||\n this.operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n this.operator === PepSmartFilterOperators.NotInTheLast ||\n this.operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n this.operator === PepSmartFilterOperators.DueIn ||\n this.operator === PepSmartFilterOperators.NotDueIn\n ) {\n this.firstControl.setValidators([\n Validators.required,\n this.validator.numberValidator(),\n ]);\n this.secondControl.disable();\n } else {\n // Disable 'first' field.\n if (\n this.operator === PepSmartFilterOperators.Today ||\n this.operator === PepSmartFilterOperators.ThisWeek ||\n this.operator === PepSmartFilterOperators.ThisMonth ||\n this.operator === PepSmartFilterOperators.IsEmpty ||\n this.operator === PepSmartFilterOperators.IsNotEmpty\n ) {\n this.firstControl.disable();\n }\n\n // Default disable 'second' field.\n super.setFieldsStateAndValidators();\n }\n }\n\n setControlsWidth() {\n if (\n this.operator === PepSmartFilterOperators.Today ||\n this.operator === PepSmartFilterOperators.ThisWeek ||\n this.operator === PepSmartFilterOperators.ThisMonth ||\n this.operator === PepSmartFilterOperators.IsEmpty ||\n this.operator === PepSmartFilterOperators.IsNotEmpty\n ) {\n this.operatorWidth = 'auto';\n this.fieldsWidth = '0%';\n } else if (this.operator === PepSmartFilterOperators.On) {\n this.operatorWidth = '38%';\n this.fieldsWidth = '62%';\n } else {\n this.operatorWidth = '30%';\n this.fieldsWidth = '70%';\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(this.operators).find(\n (operator) => operator.id === value\n );\n\n this.operator = operator;\n this.operatorUnit = this.getDefaultOperatorUnit();\n if (this.inline) {\n this.setControlsWidth();\n }\n if (this._parentForm) {\n this.updateParentForm();\n }\n setTimeout(() => {\n if (this.emitOnChange) {\n this.applyFilter();\n } \n }, 0)\n \n }\n\n onTimeUnitChanged(value: string) {\n const operatorUnit = Object.values(PepSmartFilterOperatorUnits).find(\n (operatorUnit) => operatorUnit.id === value\n );\n this.operatorUnit = operatorUnit;\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onVariableChanged(value: any) {\n this.firstControl.setValue(value);\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onSecondVariableChanged(value: any) {\n this.secondControl.setValue(value);\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onDateValueChanged() {\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}\n","<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\n <ng-container>\n <pep-select [key]=\"'timeOperator'\" [value]=\"operator.id\" [label]=\"'SMART_FILTERS.CHOOSE_TIME' | translate\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" [options]=\"chooseTimeOptions\"\n [fxFlex]=\"inline ? operatorWidth : null\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n </ng-container>\n <div *ngIf=\"operator === PepSmartFilterOperators.InTheLast ||\n operator === PepSmartFilterAdditionalOperators.InTheLastCalendar || \n operator === PepSmartFilterOperators.NotInTheLast ||\n operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar || \n operator === PepSmartFilterOperators.DueIn ||\n operator === PepSmartFilterOperators.NotDueIn\" fxLayout=\"row\" fxLayout.xs=\"column\"\n [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\" [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Amount -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.AMOUNT' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\" [type]=\"'int'\"\n [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onDateValueChanged()\">\n </pep-textbox>\n <!-- Time unit -->\n <pep-select [form]=\"form\" [key]=\"'timeUnit'\" [value]=\"operatorUnit?.id\"\n [label]=\"'SMART_FILTERS.TIME_UNIT' | translate\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [emptyOption]=\"false\" [options]=\"chooseTimeUnitOptions\" (valueChange)=\"onTimeUnitChanged($event)\">\n </pep-select>\n </div>\n <div pepRtlDirection *ngIf=\"operator === PepSmartFilterOperators.DateRange\" fxLayout=\"row\" fxLayout.xs=\"column\"\n [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\" [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Start date -->\n <pep-date [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.START_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [type]=\"field.type === 'date' ? 'date' : 'datetime'\" [value]=\"firstControl?.value || ''\"\n [maxDateValue]=\"secondControl?.value\" (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n <!-- End date -->\n <pep-date [form]=\"form\" [key]=\"secondControlKey\" [label]=\"'SMART_FILTERS.END_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [type]=\"field.type === 'date' ? 'date' : 'datetime'\" [value]=\"secondControl?.value || ''\"\n [minDateValue]=\"firstControl?.value\" (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n </div>\n <ng-container *ngIf=\"operator === PepSmartFilterOperators.On\">\n <!-- Choose a date -->\n <pep-date [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.CHOOSE_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type === 'date' ? 'date' : 'datetime'\"\n [fxFlex]=\"inline ? fieldsWidth : null\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n </ng-container>\n <div pepRtlDirection *ngIf=\"operator === PepSmartFilterVariableOperators.DateRangeVariable\" fxLayout=\"row\"\n fxLayout.xs=\"column\" fxLayoutGap=\".5rem\" fxFlex=\"fieldsWidth\">\n <pep-select fxFlex=\"50%\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onVariableChanged($event)\"></pep-select>\n <pep-select fxFlex=\"50%\" [key]=\"secondControlKey\" [value]=\"secondControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onSecondVariableChanged($event)\"></pep-select>\n </div>\n</div>\n","import {\n AfterViewInit,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Component, OnInit } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n PepSmartFilterVariableOperators\n} from '../common/model/operator';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { IPepSmartFilterFieldOption } from '../common/model/field';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\nimport { FormControl } from '@angular/forms';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { VirtualScrollerComponent } from 'ngx-virtual-scroller';\n\nclass PepMultiSelectFilterOption implements IPepSmartFilterFieldOption {\n value: string;\n count?: number;\n selected = false;\n}\n\n@Component({\n selector: 'pep-multi-select-filter',\n templateUrl: './multi-select-filter.component.html',\n styleUrls: ['./multi-select-filter.component.scss'],\n})\nexport class PepMultiSelectFilterComponent\n extends BaseFilterComponent\n implements OnInit, AfterViewInit {\n PepSmartFilterVariableOperators = PepSmartFilterVariableOperators;\n\n options: PepMultiSelectFilterOption[] = [];\n filteredOptions$: Observable<any>;\n chooseTypeOptions: Array<IPepOption> = [];\n searchControl = new FormControl();\n //inline props\n selected = '';\n inlineOptions: IPepOption[] = [];\n operatorWidth: string;\n valueWidth: string;\n\n @ViewChild('optionsContainer')\n optionsContainer: ElementRef;\n\n private readonly MAX_OPTIONS_TO_SHOW = 6.35;\n @ViewChild(VirtualScrollerComponent)\n private virtualScroller: VirtualScrollerComponent;\n\n numberOptionsToShowSearch = 10;\n\n ngOnInit() {\n super.ngOnInit;\n\n if (this.inline) {\n this.inlineControlInit();\n this.setControlsWidth();\n } else {\n this.noneInlineControlInit();\n }\n }\n\n\n ngAfterViewInit(): void {\n // Calc for the first time.\n this.calcOptionsHeight(this.options.length);\n }\n\n private inlineControlInit() {\n //load options from field \n this.inlineOptions = this.field?.options?.length > 0 ? this.field.options as IPepOption[] : [];\n // init the selected values from first value. \n if (this.firstControl?.value && Array.isArray(this.firstControl.value)) {\n this.selected = this.firstControl.value.join(';');\n }\n }\n\n private noneInlineControlInit() {\n if (this.field.options?.length > 0) {\n this.options = this.field.options.map((opt) => {\n return { value: opt.value, count: opt.count, selected: false };\n });\n } else {\n this.searchControl.disable();\n }\n\n // Init the selected values from first value.\n const firstControl = this.firstControl;\n if (firstControl.value) {\n this.initOptionsSelectedValues(firstControl.value);\n }\n\n // Add subscription for the first value change to set the selected options.\n firstControl.valueChanges\n .pipe(this.getDestroyer(), distinctUntilChanged())\n .subscribe((selectedValues: string[]) => {\n this.initOptionsSelectedValues(selectedValues);\n });\n\n // Filter the options by the search control.\n this.filteredOptions$ = this.searchControl.valueChanges.pipe(\n this.getDestroyer(),\n startWith<any>(''),\n map((option) =>\n typeof option === 'string' ? option : option && option.value\n ),\n map((value) => (value ? this.filterOptions(value) : this.options))\n );\n\n // Each time the filter change.\n this.filteredOptions$.subscribe(\n (filterdOptions: PepMultiSelectFilterOption[]) => {\n this.calcOptionsHeight(filterdOptions.length);\n setTimeout(() => {\n // 8 is the padding top of the multi-select-options\n this.virtualScroller.scrollToPosition(-8);\n }, 125);\n }\n );\n\n }\n\n initOptionsSelectedValues(selectedValues: string[]): void {\n this.options.forEach((opt) => {\n const isValueSelected =\n selectedValues && selectedValues.includes(opt.value);\n opt.selected = isValueSelected;\n });\n }\n\n private calcOptionsHeight(optionsCount: number) {\n if (this.optionsContainer) {\n const optionsToShow =\n optionsCount > this.MAX_OPTIONS_TO_SHOW\n ? this.MAX_OPTIONS_TO_SHOW\n : optionsCount;\n // optionsToShow * 2.25 is 1 option height + 1 is the padding top & bottom of the container.\n const optionsHeight = optionsToShow * 2.25 + 1 + 'rem';\n\n this.renderer.setStyle(\n this.optionsContainer.nativeElement,\n 'height',\n optionsHeight\n );\n }\n }\n\n private filterOptions(value: string): any[] {\n const filterValue = value.toLowerCase();\n return this.options.filter(\n (opt) =>\n opt.value &&\n opt.value.toLowerCase().includes(filterValue.toLowerCase())\n );\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.In;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n if (this.inline) {\n return {\n first: this.firstControl.value\n };\n } else {\n const selectedValues = this.options\n .filter((opt) => opt.selected)\n .map((opt) => opt.value);\n const filterValue = {\n first: selectedValues,\n };\n\n return selectedValues.length > 0 ? filterValue : null;\n }\n\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTypeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n }\n\n setControlsWidth() {\n if (this.variableFieldOptions?.length) {\n this.operatorWidth = '38%';\n this.valueWidth = '62%';\n\n } else {\n this.valueWidth = '100%';\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(this.operators).find(\n (operator) => operator.id === value\n );\n this.operator = operator;\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n\n // Override\n initFilter() {\n this.options.forEach((opt) => (opt.selected = false));\n this.searchControl.setValue('');\n }\n\n onOptionChange(\n option: PepMultiSelectFilterOption,\n event: MatCheckboxChange\n ) {\n option.selected = event.checked;\n this.firstControl.setValue(\n this.options.filter((opt) => opt.selected).map((opt) => opt.value),\n { emitEvent: false }\n );\n }\n\n onMultiSelectChanged(value: string) {\n if (value) {\n const selected: string[] = value.split(';');\n this.firstControl.setValue(selected);\n } else {\n this.firstControl.setValue(null);\n }\n\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onValueChanged(value) {\n this.firstControl.setValue(value);\n\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}\n","<ng-container *ngIf=\"inline\">\n <ng-container *ngIf=\"variableFieldOptions?.length\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select [fxFlex]=\"operatorWidth\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable || \n operator === PepSmartFilterVariableOperators.NotEqualsToVariable || \n operator === PepSmartFilterVariableOperators.InVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.NotEqualsToVariable &&\n operator !== PepSmartFilterVariableOperators.InVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [label]=\"'Pepperi Multi Select'\" [type]=\"'multi'\"\n [value]=\"selected\" [xAlignment]=\"'left'\" [renderTitle]=\"renderTitle\" [options]='inlineOptions'\n (valueChange)=\"onMultiSelectChanged($event)\">\n </pep-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!variableFieldOptions || !variableFieldOptions.length\">\n <pep-select [label]=\"'Pepperi Multi Select'\" [type]=\"'multi'\" [value]=\"selected\"\n [xAlignment]=\"'left'\" [renderTitle]=\"renderTitle\" [options]='inlineOptions'\n (valueChange)=\"onMultiSelectChanged($event)\">\n </pep-select>\n </ng-container>\n</ng-container>\n<div *ngIf=\"!inline\" [formGroup]=\"form\">\n <pep-search *ngIf=\"options?.length > numberOptionsToShowSearch\" [searchControl]=\"searchControl\"\n [triggerOn]=\"'keydown'\" shrink=\"never\"></pep-search>\n <div pepRtlClass class=\"multi-select-options pep-border-top pep-border-bottom\"\n [ngClass]=\"{'with-no-search': options?.length <= numberOptionsToShowSearch}\">\n <div #optionsContainer class=\"flip-scroll\" pepRtlClass>\n <virtual-scroller #scroll [items]=\"filteredOptions$ | async\" [parentScroll]=\"optionsContainer\">\n <mat-checkbox *ngFor=\"let opt of scroll.viewPortItems\"\n class=\"pep-checkbox-container pep-input no-default-background md\" [title]=\"opt.value\"\n [checked]=\"opt.selected\" (change)=\"onOptionChange(opt, $event)\">\n <div class=\"title\">\n <span class=\"body-sm ellipsis\">{{ opt.value }}</span>\n <span *ngIf=\"opt.count\" class=\"color-dimmed body-xs ellipsis\">({{opt.count}})</span>\n </div>\n </mat-checkbox>\n <ng-container *ngIf=\"scroll.viewPortItems?.length === 0\">\n <span class=\"no-options body-sm ellipsis\" [title]=\"field.name\">\n {{ ( options.length > 0 ? \"SMART_FILTERS.NO_SEARCH_RESULTS\" : \"SMART_FILTERS.NO_OPTIONS\") |\n translate }}\n </span>\n </ng-container>\n </virtual-scroller>\n </div>\n </div>\n</div>","import { Component, OnChanges, OnInit } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n PepSmartFilterVariableOperators\n} from '../common/model/operator';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { Validators } from '@angular/forms';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\n@Component({\n selector: 'pep-number-filter',\n templateUrl: './number-filter.component.html',\n styleUrls: ['./number-filter.component.scss'],\n})\nexport class PepNumberFilterComponent extends BaseFilterComponent implements OnInit {\n PepSmartFilterOperators = PepSmartFilterOperators;\n PepSmartFilterVariableOperators = PepSmartFilterVariableOperators;\n chooseTypeOptions: Array<IPepOption> = [];\n operatorWidth = '38%';\n fieldsWidth = '70%';\n\n ngOnInit() {\n this.firstControl.valueChanges\n // .pipe(debounceTime(3000), this.getDestroyer(), distinctUntilChanged())\n // .pipe(this.getDestroyer(), distinctUntilChanged((pre: any, curr: any) => \n // this.utilitiesService.isEqualNumber(pre, curr)\n // ))\n .pipe(this.getDestroyer(), distinctUntilChanged())\n .subscribe(() => {\n console.log(`firstControl.valueChanges - ${this.firstControl.value}`)\n this.setFieldsStateAndValidators();\n });\n\n this.secondControl.valueChanges\n .pipe(this.getDestroyer(), distinctUntilChanged())\n // .pipe(debounceTime(3000), this.getDestroyer(), distinctUntilChanged())\n .subscribe(() => {\n this.setFieldsStateAndValidators();\n });\n this.setControlsWidth();\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.Equals;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = {\n first: this.firstControl.value,\n };\n\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n filterValue['second'] = this.secondControl.value;\n }\n\n return filterValue;\n }\n\n // Override\n initFilter() {\n setTimeout(() => {\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }, 0);\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTypeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n }\n\n // Override\n setFieldsStateAndValidators(): void {\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n const firstValidators = [Validators.required];\n if (this.secondControl.value) {\n firstValidators.push(this.validator.isLessThan(this.secondControl));\n }\n this.firstControl.setValidators(firstValidators);\n this.firstControl.updateValueAndValidity();\n\n this.secondControl.enable();\n const secondValidators = [Validators.required];\n if (this.firstControl.value) {\n secondValidators.push(this.validator.isGreaterThan(this.firstControl));\n }\n this.secondControl.setValidators(secondValidators);\n this.secondControl.updateValueAndValidity();\n } else {\n super.setFieldsStateAndValidators();\n }\n }\n\n setControlsWidth() {\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n this.operatorWidth = '30%';\n this.fieldsWidth = '70%';\n } else {\n this.operatorWidth = '38%';\n this.fieldsWidth = '62%';\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(this.operators).find(\n (operator) => operator.id === value\n );\n this.operator = operator;\n if (this._parentForm) {\n this.updateParentForm();\n }\n this.setControlsWidth();\n setTimeout(() => {\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }, 0);\n }\n\n onVariableChanged(value: any) {\n this.firstControl.setValue(value);\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onValueChanged() {\n // this.firstControl.setValue(value);\n // console.log(`onValueChanged ${this.firstControl.value}`);\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}\n","<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\n <ng-container>\n <pep-select [fxFlex]=\"inline ? operatorWidth : null\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator === PepSmartFilterOperators.NumberRange\">\n <div fxLayout=\"row\" fxLayout.xs=\"column\" [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\"\n [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Min number -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.MIN' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\" fxFlex=\"50%\"\n [value]=\"firstControl?.value || ''\"\n [maxValue]=\"secondControl?.value || ''\" (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n <!-- Max number -->\n <pep-textbox [form]=\"form\" [key]=\"secondControlKey\" [label]=\"'SMART_FILTERS.MAX' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\" fxFlex=\"50%\"\n [value]=\"secondControl?.value || ''\"\n [minValue]=\"firstControl?.value || ''\" (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n </div>\n </ng-container>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.LessThanVariable || \n operator === PepSmartFilterVariableOperators.GreaterThanVariable || \n operator === PepSmartFilterVariableOperators.EqualsToVariable\">\n <pep-select [fxFlex]=\"inline ? fieldsWidth : null\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onVariableChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterOperators.NumberRange && operator !== PepSmartFilterVariableOperators.LessThanVariable &&\n operator !== PepSmartFilterVariableOperators.GreaterThanVariable && \n operator !== PepSmartFilterVariableOperators.EqualsToVariable\">\n <div [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Amount -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.AMOUNT' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\"\n [value]=\"firstControl?.value || ''\" \n (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n </div>\n </ng-container>\n</div>","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n Output,\n EventEmitter,\n ElementRef,\n} from '@angular/core';\nimport {\n IPepSmartFilterField,\n PepSmartFilterBaseField,\n} from './common/model/field';\nimport { PepLayoutService } from '@pepperi-addons/ngx-lib';\nimport { IPepSmartFilterData } from './common/model/filter';\n\n@Component({\n selector: 'pep-smart-filters',\n templateUrl: './smart-filters.component.html',\n styleUrls: ['./smart-filters.component.scss', './smart-filters.component.theme.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PepSmartFiltersComponent {\n\n @Input() title = '';\n\n filtersDataMap: Map<string, IPepSmartFilterData> = new Map<\n string,\n IPepSmartFilterData\n >();\n\n private _filters: IPepSmartFilterData[] = [];\n @Input()\n set filters(value: IPepSmartFilterData[]) {\n this._filters = value;\n this.setupFilters(value);\n }\n get filters(): IPepSmartFilterData[] {\n this._filters = [...this.filtersDataMap.keys()]\n // .filter((key) => this.filtersDataMap.get(key) !== null)\n .map((key) => {\n if (key) {\n return this.filtersDataMap.get(key);\n }\n });\n\n return this._filters;\n }\n\n private _fields: Array<IPepSmartFilterField> = [];\n @Input()\n set fields(value: Array<IPepSmartFilterField>) {\n this._fields = value;\n }\n get fields(): Array<IPepSmartFilterField> {\n return this._fields;\n }\n\n private _useAsWebComponent = false;\n @Input()\n set useAsWebComponent(value: boolean) {\n if (value) {\n this.exportFunctionsOnHostElement();\n }\n }\n get useAsWebComponent(): boolean {\n return this._useAsWebComponent;\n }\n\n // @Output()\n // filtersClear: EventEmitter<void> = new EventEmitter<void>();\n @Output()\n filtersChange: EventEmitter<IPepSmartFilterData[]> = new EventEmitter<\n IPepSmartFilterData[]\n >();\n\n @Output()\n fieldToggleChange: EventEmitter<IPepSmartFilterField> = new EventEmitter<IPepSmartFilterField>();\n\n expansionPanelHeaderHeight = '*';\n\n constructor(\n private hostElement: ElementRef,\n public layoutService: PepLayoutService\n ) { }\n\n private exportFunctionsOnHostElement() {\n // This is for web component usage for use those functions.\n this.hostElement.nativeElement.clearFilters = this.clearFilters.bind(\n this\n );\n this.hostElement.nativeElement.clearFilter = this.clearFilter.bind(\n this\n );\n this.hostElement.nativeElement.toggleField = this.toggleField.bind(\n this\n );\n }\n\n private setupFilters(value: IPepSmartFilterData[]) {\n this.filtersDataMap.clear();\n if (value) {\n value.forEach((filter) => {\n // Validate before add the filter into the map.\n let currentField = null;\n\n if (this.fields && this.fields.length > 0) {\n currentField = this.fields.find(\n (field) => field.id === filter.fieldId\n ) as PepSmartFilterBaseField;\n }\n\n if (currentField) {\n // Only if the operator is from the same type\n if (\n filter.operator.componentType.includes(\n currentField.componentType\n )\n ) {\n let isOperatorUnitValid = true;\n if (filter.operatorUnit) {\n // Only if the operator unit is not from the same type\n if (\n !filter.operatorUnit.componentType.includes(\n currentField.componentType\n )\n ) {\n isOperatorUnitValid = false;\n }\n }\n\n // Add the filter.\n if (isOperatorUnitValid) {\n this.filtersDataMap.set(filter.fieldId, filter);\n }\n }\n }\n });\n }\n }\n\n private raiseFiltersChange(): void {\n this.filtersChange.emit(this.filters);\n }\n\n toggleField(index: number, isOpen: boolean): void {\n this.fields[index].isOpen = isOpen;\n this.fieldToggleChange.emit(this.fields[index]);\n }\n\n clearFilters() {\n this.filtersDataMap.clear();\n }\n\n clearFilter(fieldId: string) {\n this.filtersDataMap.delete(fieldId);\n }\n\n // Clear all the filters and raise event that filters has change.\n onFiltersClear() {\n this.clearFilters();\n this.raiseFiltersChange();\n }\n\n // Clear the filter and raise event that filters has change.\n onFilterClear(field: IPepSmartFilterField) {\n this.clearFilter(field.id);\n this.raiseFiltersChange();\n }\n\n // Set the filter and raise event that filters has change.\n onFilterChange(\n field: IPepSmartFilterField,\n filterData: IPepSmartFilterData\n ) {\n this.clearFilter(field.id);\n this.filtersDataMap.set(field.id, filterData);\n this.raiseFiltersChange();\n }\n}\n","<div class=\"smart-filters-container\" dir=\"{{ layoutService.isRtl() ? 'rtl' : 'ltr' }}\">\n <div *ngIf=\"fields?.length > 0\" class=\"title\">\n <span class=\"body-md bold\">{{ title?.length > 0 ? title : (\"SMART_FILTERS.TITLE\" | translate)}}</span>\n <mat-chip *ngIf=\"filtersDataMap.size > 0\" [selectable]=\"false\" [removable]=\"true\" (click)=\"onFiltersClear()\"\n class=\"clear-filter pep-button chip xs weak\">\n <span class=\"body-xs ellipsis \">\n {{ \"ACTIONS.CLEAR\" | translate}}\n </span>\n </mat-chip>\n </div>\n\n <mat-accordion [displayMode]=\"'flat'\" [multi]=\"true\" class=\"pep-accordion2\">\n <mat-expansion-panel *ngFor=\"let field of fields; let i = index\" hideToggle=\"true\" [expanded]=\"field.isOpen\"\n (opened)=\"toggleField(i, true)\" (closed)=\"toggleField(i, false)\">\n <mat-expansion-panel-header [collapsedHeight]=\"expansionPanelHeaderHeight\"\n [expandedHeight]=\"expansionPanelHeaderHeight\">\n <mat-panel-title class=\"pep-spacing-element-negative\">\n <div class=\"smart-filter-title-container\">\n <mat-icon class=\"pep-spacing-element\">\n <pep-icon [name]=\"field.isOpen ? 'number_minus' : 'number_plus'\"></pep-icon>\n </mat-icon>\n <span class=\"body-sm ellipsis\" [title]=\"field.name\">\n {{ field.name }}\n </span>\n <mat-chip *ngIf=\"filtersDataMap.get(field.id)\" [selectable]=\"false\" [removable]=\"true\"\n (click)=\"onFilterClear(field)\" class=\"clear-filter pep-button chip xs weak\">\n <span *ngIf=\"field.componentType === 'multi-select'\" class=\"body-xs pep-spacing-element\">\n {{ filtersDataMap.get(field.id).value?.first?.length }}\n <!-- {{ field.componentType === 'multi-select' ?\n filtersDataMap.get(field.id).value?.first?.length : 1 }} -->\n </span>\n <mat-icon>\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n </mat-chip>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"expansion-content smart-filter-content\">\n <ng-container [ngSwitch]=\"field.componentType\">\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-number-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-text-filter>\n </ng-container>\n <!-- <div *ngSwitchDefault>\n </div> -->\n </ng-container>\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatRadioModule } from '@angular/material/radio';\n\nimport { VirtualScrollerModule } from 'ngx-virtual-scroller';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepCheckboxModule } from '@pepperi-addons/ngx-lib/checkbox';\nimport { PepDateModule } from '@pepperi-addons/ngx-lib/date';\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\nimport { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';\nimport { PepSearchModule } from '@pepperi-addons/ngx-lib/search';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconNumberMinus,\n pepIconNumberPlus,\n} from '@pepperi-addons/ngx-lib/icon';\nimport { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';\n\n// import { BaseFilterComponent } from './common/model/base-filter-component';\nimport { PepSmartFiltersComponent } from './smart-filters.component';\nimport { PepFilterActionsComponent } from './common/filter-actions.component';\nimport { PepTextFilterComponent } from './text-filter/text-filter.component';\nimport { PepBooleanFilterComponent } from './boolean-filter/boolean-filter.component';\nimport { PepDateFilterComponent } from './date-filter/date-filter.component';\nimport { PepMultiSelectFilterComponent } from './multi-select-filter/multi-select-filter.component';\nimport { PepNumberFilterComponent } from './number-filter/number-filter.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n // Material modules\n MatCommonModule,\n MatCheckboxModule,\n MatChipsModule,\n MatExpansionModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n MatRadioModule,\n // External modules\n VirtualScrollerModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepCheckboxModule,\n PepDateModule,\n PepSelectModule,\n PepTextboxModule,\n PepSearchModule,\n PepIconModule,\n PepButtonModule,\n PepGroupButtonsModule\n ],\n exports: [\n PepSmartFiltersComponent,\n PepTextFilterComponent,\n PepBooleanFilterComponent,\n PepDateFilterComponent,\n PepMultiSelectFilterComponent,\n PepNumberFilterComponent\n ],\n declarations: [\n // BaseFilterComponent,\n PepSmartFiltersComponent,\n PepFilterActionsComponent,\n PepTextFilterComponent,\n PepBooleanFilterComponent,\n PepDateFilterComponent,\n PepMultiSelectFilterComponent,\n PepNumberFilterComponent\n ],\n providers: [\n FormBuilder\n ]\n})\nexport class PepSmartFiltersModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconNumberMinus,\n pepIconNumberPlus,\n ]);\n }\n}\n","import {\n IPepSmartFilterOperator,\n IPepSmartFilterOperatorUnit,\n} from './operator';\nimport {\n PepSmartFilterComponentType,\n PepSmartFilterType,\n PepSmartFilterOperatorType,\n PepSmartFilterOperatorUnitType,\n} from './type';\n\nexport interface IPepSmartFilterFieldOption {\n value: string;\n count?: number;\n}\n\nexport interface IPepSmartFilterField {\n id: string;\n name: string;\n isOpen?: boolean;\n options?: IPepSmartFilterFieldOption[];\n operators?: PepSmartFilterOperatorType[];\n operatorUnits?: PepSmartFilterOperatorUnitType[];\n}\n\n// Base field\n// ------------------------------\nexport abstract class PepSmartFilterBaseField implements IPepSmartFilterField {\n id: string;\n name: string;\n isOpen?: boolean;\n options?: IPepSmartFilterFieldOption[];\n operators?: PepSmartFilterOperatorType[];\n operatorUnits?: PepSmartFilterOperatorUnitType[];\n\n protected _componentType: PepSmartFilterComponentType;\n get componentType(): PepSmartFilterComponentType {\n return this._componentType;\n }\n\n private _type: PepSmartFilterType;\n get type(): PepSmartFilterType {\n return this._type;\n }\n\n constructor(field: IPepSmartFilterField) {\n this.id = field.id;\n this.name = field.name;\n this.isOpen = field.isOpen;\n this.options = field.options;\n this.operators = field.operators;\n this.operatorUnits = field.operatorUnits;\n\n this._type = this.getType();\n }\n\n protected abstract getType(): PepSmartFilterType;\n}\n// Text field\n// ------------------------------\nexport class PepSmartFilterTextField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'text';\n }\n\n getType(): PepSmartFilterType {\n return 'text';\n }\n}\n\n\n// Boolean field\n// ------------------------------\nexport class PepSmartFilterBooleanField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'boolean';\n }\n\n getType(): PepSmartFilterType {\n return 'boolean';\n }\n}\n\n// Date fields\n// ------------------------------\nexport abstract class PepSmartFilterDateBaseField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'date';\n }\n}\nexport class PepSmartFilterDateField extends PepSmartFilterDateBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'date';\n }\n}\nexport class PepSmartFilterDateTimeField extends PepSmartFilterDateBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'date-time';\n }\n}\n\n// Multi select field\n// ------------------------------\nexport class PepSmartFilterMultiSelectField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'multi-select';\n }\n\n getType(): PepSmartFilterType {\n return 'multi-select';\n }\n}\n\n// Number fields\n// ------------------------------\nexport abstract class PepSmartFilterNumberBaseField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'number';\n }\n}\nexport class PepSmartFilterIntField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'int';\n }\n}\nexport class PepSmartFilterRealField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'real';\n }\n}\nexport class PepSmartFilterCurrencyField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'currency';\n }\n}\nexport class PepSmartFilterPercentageField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'percentage';\n }\n}\n","import {\n IPepSmartFilterField,\n PepSmartFilterBaseField,\n PepSmartFilterTextField,\n PepSmartFilterBooleanField,\n PepSmartFilterDateField,\n PepSmartFilterMultiSelectField,\n PepSmartFilterIntField,\n PepSmartFilterDateTimeField,\n PepSmartFilterPercentageField,\n PepSmartFilterCurrencyField,\n PepSmartFilterRealField,\n} from './field';\nimport { IPepSmartFilterData } from './filter';\nimport { IPepSmartFilterOperator, IPepSmartFilterOperatorUnit } from './operator';\nimport { PepSmartFilterType } from './type';\n\nfunction createTextSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterTextField(data);\n}\n\nfunction createBooleanSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterBooleanField(data);\n}\n\nfunction createDateSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterDateField(data);\n}\n\nfunction createDateTimeSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterDateTimeField(data);\n}\n\nfunction createMultiSelectSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterMultiSelectField(data);\n}\n\nfunction createIntSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterIntField(data);\n}\n\nfunction createRealSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterRealField(data);\n}\n\nfunction createCurrencySmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterCurrencyField(data);\n}\n\nfunction createPercentageSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterPercentageField(data);\n}\n\nexport function createSmartFilterField(\n data: IPepSmartFilterField,\n type: PepSmartFilterType\n): PepSmartFilterBaseField {\n let field: PepSmartFilterBaseField;\n\n switch (type) {\n case 'text':\n field = createTextSmartFilterField(data);\n break;\n case 'boolean':\n field = createBooleanSmartFilterField(data);\n break;\n case 'date':\n field = createDateSmartFilterField(data);\n break;\n case 'date-time':\n field = createDateTimeSmartFilterField(data);\n break;\n case 'multi-select':\n field = createMultiSelectSmartFilterField(data);\n break;\n case 'int':\n field = createIntSmartFilterField(data);\n break;\n case 'real':\n field = createRealSmartFilterField(data);\n break;\n case 'currency':\n field = createCurrencySmartFilterField(data);\n break;\n case 'percentage':\n field = createPercentageSmartFilterField(data);\n break;\n default:\n field = createMultiSelectSmartFilterField(data);\n break;\n }\n\n return field;\n}\n\nexport function createSmartFilter(\n fieldId: string,\n operator: IPepSmartFilterOperator,\n first: any,\n second?: any,\n operatorUnit?: IPepSmartFilterOperatorUnit\n): IPepSmartFilterData {\n return {\n fieldId: fieldId,\n operator: operator,\n operatorUnit: operatorUnit,\n value: {\n first: first,\n second: second,\n },\n };\n}","/*\n * Public API Surface of ngx-lib/smart-filters\n */\nexport * from './smart-filters.module';\nexport * from './smart-filters.component';\nexport * from './common/model/base-filter-component';\nexport * from './common/filter-actions.component';\nexport * from './boolean-filter/boolean-filter.component';\nexport * from './date-filter/date-filter.component';\nexport * from './multi-select-filter/multi-select-filter.component';\nexport * from './number-filter/number-filter.component';\nexport * from './text-filter/text-filter.component';\n\n// Model\nexport * from './common/model/creator';\nexport * from './common/model/field';\nexport * from './common/model/filter';\nexport * from './common/model/operator';\nexport * from './common/model/type';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i6","i4","i5","i7","i8","i10","i8.PepTextFilterComponent","i9.PepBooleanFilterComponent","i10.PepDateFilterComponent","i11.PepMultiSelectFilterComponent","i12.PepNumberFilterComponent","i13"],"mappings":"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"}
1
+ {"version":3,"file":"pepperi-addons-ngx-lib-smart-filters.mjs","sources":["../../../projects/ngx-lib/smart-filters/common/model/operator.ts","../../../projects/ngx-lib/smart-filters/common/filter-actions.component.ts","../../../projects/ngx-lib/smart-filters/common/filter-actions.component.html","../../../projects/ngx-lib/smart-filters/common/model/base-filter-component.ts","../../../projects/ngx-lib/smart-filters/text-filter/text-filter.component.ts","../../../projects/ngx-lib/smart-filters/text-filter/text-filter.component.html","../../../projects/ngx-lib/smart-filters/boolean-filter/boolean-filter.component.ts","../../../projects/ngx-lib/smart-filters/boolean-filter/boolean-filter.component.html","../../../projects/ngx-lib/smart-filters/date-filter/date-filter.component.ts","../../../projects/ngx-lib/smart-filters/date-filter/date-filter.component.html","../../../projects/ngx-lib/smart-filters/multi-select-filter/multi-select-filter.component.ts","../../../projects/ngx-lib/smart-filters/multi-select-filter/multi-select-filter.component.html","../../../projects/ngx-lib/smart-filters/number-filter/number-filter.component.ts","../../../projects/ngx-lib/smart-filters/number-filter/number-filter.component.html","../../../projects/ngx-lib/smart-filters/smart-filters.component.ts","../../../projects/ngx-lib/smart-filters/smart-filters.component.html","../../../projects/ngx-lib/smart-filters/smart-filters.module.ts","../../../projects/ngx-lib/smart-filters/common/model/field.ts","../../../projects/ngx-lib/smart-filters/common/model/creator.ts","../../../projects/ngx-lib/smart-filters/public-api.ts","../../../projects/ngx-lib/smart-filters/pepperi-addons-ngx-lib-smart-filters.ts"],"sourcesContent":["import {\n PepSmartFilterComponentType,\n PepSmartFilterOperatorType,\n PepSmartFilterOperatorUnitType,\n} from './type';\nexport class IPepSmartFilterOperator {\n id: PepSmartFilterOperatorType;\n name: string;\n short: string;\n componentType: PepSmartFilterComponentType[];\n}\n\nconst Equals: IPepSmartFilterOperator = {\n id: 'eq',\n name: 'EQUAL',\n short: '=',\n componentType: [\n 'number',\n 'boolean',\n // 'multi-select',\n // 'date',\n 'text',\n // 'auto-complete',\n // 'select',\n ],\n};\n\nconst NotEqual: IPepSmartFilterOperator = {\n id: 'neq',\n name: 'NOT_EQUAL',\n short: '<>',\n componentType: [\n 'number',\n // 'multi-select',\n // 'date',\n 'text',\n // 'auto-complete',\n // 'select',\n ],\n};\n\nconst LessThan: IPepSmartFilterOperator = {\n id: 'lt',\n name: 'LESS_THEN',\n short: '<',\n componentType: ['number'],\n};\n\n// const LessThanOrEquals: IPepSmartFilterOperator = {\n// id: 'ltoe',\n// name: 'LESS_THEN_OR_EQUAL',\n// short: '<=',\n// type: ['number'],\n// };\n\nconst GreaterThan: IPepSmartFilterOperator = {\n id: 'gt',\n name: 'GREATER_THEN',\n short: '>',\n componentType: ['number'],\n};\n\n// const GreaterThanOrEquals: IPepSmartFilterOperator = {\n// id: 'gtoe',\n// name: 'GREATER_THEN_OR_EQUAL',\n// short: '>=',\n// type: ['number'],\n// };\n\nconst NumberRange: IPepSmartFilterOperator = {\n id: 'numberRange',\n name: 'NUMBER_RANGE',\n short: 'Range',\n componentType: ['number'],\n};\n\nconst Contains: IPepSmartFilterOperator = {\n id: 'contains',\n name: 'CONTAINS',\n short: 'Contains',\n componentType: ['text'],\n};\n\nconst BeginsWith: IPepSmartFilterOperator = {\n id: 'beginsWith',\n name: 'BEGINS_WITH',\n short: 'Begins With',\n componentType: ['text'],\n};\n\nconst EndsWith: IPepSmartFilterOperator = {\n id: 'endsWith',\n name: 'ENDS_WITH',\n short: 'End With',\n componentType: ['text'],\n};\n\n// const After: Operator = {\n// id: 'after',\n// name: 'After',\n// short: 'After',\n// type: ['date'],\n// };\n\n// const Before: Operator = {\n// id: 'before',\n// name: 'Before',\n// short: 'Before',\n// type: ['date'],\n// };\n\nconst InTheLast: IPepSmartFilterOperator = {\n id: 'inTheLast',\n name: 'IN_THE_LAST',\n short: 'In the last',\n componentType: ['date'],\n};\n\nconst Today: IPepSmartFilterOperator = {\n id: 'today',\n name: 'TODAY',\n short: 'Today',\n componentType: ['date'],\n};\n\nconst ThisWeek: IPepSmartFilterOperator = {\n id: 'thisWeek',\n name: 'THIS_WEEK',\n short: 'This week',\n componentType: ['date'],\n};\n\nconst ThisMonth: IPepSmartFilterOperator = {\n id: 'thisMonth',\n name: 'THIS_MONTH',\n short: 'This month',\n componentType: ['date'],\n};\n\nconst DateRange: IPepSmartFilterOperator = {\n id: 'dateRange',\n name: 'DATE_RANGE',\n short: 'Range',\n componentType: ['date'],\n};\n\nconst DueIn: IPepSmartFilterOperator = {\n id: 'dueIn',\n name: 'DUE_IN',\n short: 'Due in',\n componentType: ['date'],\n};\n\nconst On: IPepSmartFilterOperator = {\n id: 'on',\n name: 'ON',\n short: 'On',\n componentType: ['date'],\n};\n\nconst NotInTheLast: IPepSmartFilterOperator = {\n id: 'notInTheLast',\n name: 'NOT_IN_THE_LAST',\n short: 'Not in the last',\n componentType: ['date'],\n};\n\nconst NotDueIn: IPepSmartFilterOperator = {\n id: 'notDueIn',\n name: 'NOT_DUE_IN',\n short: 'Not due in',\n componentType: ['date'],\n};\n\nconst IsEmpty: IPepSmartFilterOperator = {\n id: 'isEmpty',\n name: 'IS_EMPTY',\n short: 'Is empty',\n componentType: ['date','text'],\n};\n\nconst IsNotEmpty: IPepSmartFilterOperator = {\n id: 'isNotEmpty',\n name: 'IS_NOT_EMPTY',\n short: 'Is not empty',\n componentType: ['date','text'],\n};\n\nconst In: IPepSmartFilterOperator = {\n id: 'in',\n name: 'IN',\n short: 'In',\n componentType: ['multi-select'],\n};\n\nconst InVariable: IPepSmartFilterOperator = {\n id: 'inv',\n name: 'IN_VARIABLE',\n short: 'In',\n componentType: ['multi-select', 'text'],\n};\n\nexport const PepSmartFilterOperators = {\n Equals: Equals,\n NotEqual: NotEqual,\n LessThan: LessThan,\n // LessThanOrEquals: LessThanOrEquals,\n GreaterThan: GreaterThan,\n // GreaterThanOrEquals: GreaterThanOrEquals,\n NumberRange: NumberRange,\n Contains: Contains,\n BeginsWith: BeginsWith,\n EndsWith: EndsWith,\n // After: After,\n // Before: Before,\n InTheLast: InTheLast,\n Today: Today,\n ThisWeek: ThisWeek,\n ThisMonth: ThisMonth,\n DateRange: DateRange,\n DueIn: DueIn,\n On: On,\n NotInTheLast: NotInTheLast,\n NotDueIn: NotDueIn,\n IsEmpty: IsEmpty,\n IsNotEmpty: IsNotEmpty,\n In: In,\n};\n\n//additional operators to be added upon input flag\nconst InTheLastCalendar: IPepSmartFilterOperator = {\n id: 'inTheLastCalendar',\n name: 'IN_THE_LAST_CALENDAR',\n short: 'In the last (calendar)',\n componentType: ['date'],\n}\n\nconst NotInTheLastCalendar: IPepSmartFilterOperator = {\n id: 'notInTheLastCalendar',\n name: 'NOT_IN_THE_LAST_CALENDAR',\n short: 'Not in the last (calendar)',\n componentType: ['date'],\n}\n\nexport const PepSmartFilterAdditionalOperators = {\n InTheLastCalendar: InTheLastCalendar,\n NotInTheLastCalendar: NotInTheLastCalendar\n}\n\n//additional variable operators to be added upon input variable fields\nconst EqualsToVariable: IPepSmartFilterOperator = {\n id: 'eqv',\n name: 'EQUAL_TO_VARIABLE',\n short: '=',\n componentType: ['text', 'number', 'boolean']\n}\n\nconst NotEqualsToVariable: IPepSmartFilterOperator = {\n id: 'neqv',\n name: 'NOT_EQUAL_TO_VARIABLE',\n short: '<>',\n componentType: ['boolean']\n}\n\nconst LessThanVariable: IPepSmartFilterOperator = {\n id: 'ltv',\n name: 'LESS_THAN_VARIABLE',\n short: '<',\n componentType: ['number'],\n};\n\nconst GreaterThanVariable: IPepSmartFilterOperator = {\n id: 'gtv',\n name: 'GREATER_THAN_VARIABLE',\n short: '>',\n componentType: ['number'],\n};\n\nconst DateRangeVariable: IPepSmartFilterOperator = {\n id: 'dateRangeVariable',\n name: 'DATE_RANGE_VARIABLE',\n short: 'Range Variable',\n componentType: ['date'],\n};\n\nexport const PepSmartFilterVariableOperators = {\n EqualsToVariable: EqualsToVariable,\n NotEqualsToVariable: NotEqualsToVariable,\n LessThanVariable: LessThanVariable,\n GreaterThanVariable: GreaterThanVariable,\n DateRangeVariable: DateRangeVariable,\n InVariable: InVariable,\n IsEmpty: IsEmpty,\n IsNotEmpty: IsNotEmpty\n\n}\n\nexport class IPepSmartFilterOperatorUnit {\n id: PepSmartFilterOperatorUnitType;\n name: string;\n componentType: PepSmartFilterComponentType[];\n}\n\nconst Days: IPepSmartFilterOperatorUnit = {\n id: 'days',\n name: 'DAYS',\n componentType: ['date'],\n};\n\nconst Weeks: IPepSmartFilterOperatorUnit = {\n id: 'weeks',\n name: 'WEEKS',\n componentType: ['date'],\n};\n\nconst Months: IPepSmartFilterOperatorUnit = {\n id: 'months',\n name: 'MONTHS',\n componentType: ['date'],\n};\n\nconst Years: IPepSmartFilterOperatorUnit = {\n id: 'years',\n name: 'YEARS',\n componentType: ['date'],\n};\n\nexport const PepSmartFilterOperatorUnits = {\n Days: Days,\n Weeks: Weeks,\n Months: Months,\n Years: Years,\n};\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'pep-filter-actions',\n templateUrl: './filter-actions.component.html',\n styleUrls: ['./filter-actions.component.scss'],\n})\nexport class PepFilterActionsComponent {\n @Input() form: FormGroup;\n\n @Output() clearClick: EventEmitter<void> = new EventEmitter<void>();\n @Output() applyClick: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n clear() {\n this.clearClick.emit();\n }\n\n apply() {\n this.applyClick.emit();\n }\n}\n","<div [formGroup]=\"form\" class=\"filter-actions pep-spacing-element-negative\">\n <button mat-button class=\"pep-spacing-element pep-button sm weak\" (click)=\"clear()\">\n {{ 'ACTIONS.CLEAR' | translate }}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button sm strong\" (click)=\"apply()\" [disabled]=\"form.invalid\">\n {{ 'ACTIONS.APPLY' | translate }}\n </button>\n</div>","import {\n Directive,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n AfterViewInit,\n Output,\n ChangeDetectorRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n ViewChild,\n ComponentFactoryResolver,\n ComponentFactory,\n ComponentRef,\n Injector,\n ElementRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n Validators,\n} from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\nimport {\n PepValidatorService,\n IPepOption,\n PepUtilitiesService,\n BaseDestroyerDirective\n} from '@pepperi-addons/ngx-lib';\nimport {\n IPepSmartFilterOperator,\n IPepSmartFilterOperatorUnit,\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n PepSmartFilterVariableOperators,\n PepSmartFilterOperatorUnits,\n} from './operator';\nimport { forwardRef } from '@angular/core';\nimport { IPepSmartFilterData, IPepSmartFilterDataValue } from './filter';\nimport { PepSmartFilterBaseField } from './field';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PepFilterActionsComponent } from '../filter-actions.component';\n\n\n@Directive({})\nexport abstract class BaseFilterComponent extends BaseDestroyerDirective\n implements OnInit, OnChanges, OnDestroy {\n private actionsContainerRef: ComponentRef<PepFilterActionsComponent>;\n\n private _fieldIdWithNoDots = '';\n private _field: PepSmartFilterBaseField;\n @Input()\n set field(value: PepSmartFilterBaseField) {\n this._field = value;\n this._fieldIdWithNoDots = value ? value.id.replace(/\\./g, '_') : '';\n this.setupForm();\n }\n get field(): PepSmartFilterBaseField {\n return this._field;\n }\n\n variableFieldOptions: Array<IPepOption> = [];\n @Input()\n set variableField(list: any[]) {\n if (list?.length) {\n this.variableFieldOptions = list.map(item => {\n return {\n key: item,\n value: item\n }\n });\n }\n }\n \n\n private _filter: IPepSmartFilterData;\n @Input()\n set filter(value: IPepSmartFilterData) {\n this._filter = value;\n this.setupFilter();\n }\n get filter(): IPepSmartFilterData {\n return this._filter;\n }\n protected _parentForm: FormGroup;\n @Input()\n set parentForm(form: FormGroup) {\n this._parentForm = form;\n this.updateParentForm();\n }\n @Input() emitOnChange = false;\n @Input() inline = false;\n @Input() showActionButtons = true;\n @Input() renderTitle = true;\n @Input() showAdditionalOperators = false;\n\n @Output() filterClear: EventEmitter<void> = new EventEmitter<void>();\n @Output()\n filterChange: EventEmitter<IPepSmartFilterData> = new EventEmitter<IPepSmartFilterData>();\n\n private _operator: IPepSmartFilterOperator;\n set operator(operator: IPepSmartFilterOperator) {\n if (operator?.id != this._operator?.id) {\n // Validate operator\n const index = this.operators.findIndex((o) => o.id === operator.id);\n if (index >= 0) {\n this._operator = this.operators[index];\n } else {\n this._operator = this.operators[0];\n }\n\n this.form.reset();\n this.updateValidity();\n }\n }\n get operator(): IPepSmartFilterOperator {\n return this._operator;\n }\n\n private _operatorUnit: IPepSmartFilterOperatorUnit;\n set operatorUnit(operatorUnit: IPepSmartFilterOperatorUnit) {\n // Validate operator unit\n if (operatorUnit) {\n const index = this.operatorUnits.findIndex(\n (ou) => ou.id === operatorUnit.id\n );\n if (index >= 0) {\n this._operatorUnit = this.operatorUnits[index];\n } else {\n this._operatorUnit = this.operatorUnits[0];\n }\n } else {\n this._operatorUnit = undefined;\n }\n }\n get operatorUnit(): IPepSmartFilterOperatorUnit {\n return this._operatorUnit;\n }\n\n get firstControlKey() {\n return this.field ? `${this._fieldIdWithNoDots}_first` : 'first';\n }\n get firstControl(): AbstractControl {\n return this.form.get(this.firstControlKey);\n }\n get secondControlKey() {\n return this.field ? `${this._fieldIdWithNoDots}_second` : 'second';\n }\n get secondControl(): AbstractControl {\n return this.form.get(this.secondControlKey);\n }\n\n protected operators: IPepSmartFilterOperator[];\n protected operatorUnits: IPepSmartFilterOperatorUnit[];\n\n protected readonly OPERATORS_TRANSLATION_PREFIX = 'SMART_FILTERS.OPERATORS';\n protected readonly OPERATOR_UNITS_TRANSLATION_PREFIX =\n 'SMART_FILTERS.OPERATOR_UNITS';\n\n form: FormGroup;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private injector: Injector,\n private resolver: ComponentFactoryResolver,\n private builder: FormBuilder,\n protected translate: TranslateService,\n protected validator: PepValidatorService,\n protected utilitiesService: PepUtilitiesService,\n protected renderer: Renderer2,\n ) {\n super();\n }\n\n private createActionsComponent() {\n const factory: ComponentFactory<PepFilterActionsComponent> = this.resolver.resolveComponentFactory(\n PepFilterActionsComponent\n );\n\n this.actionsContainerRef = factory.create(this.injector);\n this.actionsContainerRef.instance.form = this.form;\n this.actionsContainerRef.instance.applyClick.subscribe(() =>\n this.applyFilter()\n );\n this.actionsContainerRef.instance.clearClick.subscribe(() =>\n this.clearFilter()\n );\n\n this.viewContainerRef.insert(this.actionsContainerRef.hostView);\n }\n\n private setupForm() {\n const formValue = {};\n formValue[this.firstControlKey] = [];\n formValue[this.secondControlKey] = [];\n // this.form.patchValue(formValue); \n this.form = this.builder.group(formValue);\n // this.form[this.firstControlKey] = [];\n // this.form[this.secondControlKey] = [];\n\n this.setupOperators();\n\n if (this.showActionButtons) {\n this.createActionsComponent();\n }\n }\n\n private setupOperators() {\n // Get the operators by componentType.\n this.operators = Object.keys(PepSmartFilterOperators)\n .filter((key) => {\n return PepSmartFilterOperators[key].componentType.includes(\n this.field.componentType\n );\n })\n .map((key) => PepSmartFilterOperators[key]);\n\n // Add additional operators\n if (this.showAdditionalOperators) {\n const additional: IPepSmartFilterOperator[] = Object.keys(PepSmartFilterAdditionalOperators)\n .filter((key) => {\n return PepSmartFilterAdditionalOperators[key].componentType.includes(\n this.field.componentType\n );\n })\n .map((key) => PepSmartFilterAdditionalOperators[key]);\n\n this.operators = [...this.operators, ...additional];\n }\n\n //add variable operators\n if (this.variableFieldOptions?.length) {\n const variables: IPepSmartFilterOperator[] = Object.keys(PepSmartFilterVariableOperators)\n .filter((key) => {\n return PepSmartFilterVariableOperators[key].componentType.includes(\n this.field.componentType\n );\n })\n .map((key) => PepSmartFilterVariableOperators[key]);\n\n this.operators = [...this.operators, ...variables];\n }\n\n // Filter by from field.operators input if exist.\n if (this.field.operators?.length > 0) {\n this.operators = this.operators.filter((o1) =>\n this.field.operators.some((o2) => o1.id === o2)\n );\n }\n\n\n\n // Get the operator units by componentType.\n this.operatorUnits = Object.keys(PepSmartFilterOperatorUnits)\n .filter((key) => {\n return PepSmartFilterOperatorUnits[key].componentType.includes(\n this.field.componentType\n );\n })\n .map((key) => PepSmartFilterOperatorUnits[key]);\n\n // Filter by from field.operatorsUnits input if exist.\n if (this.field.operatorUnits?.length > 0) {\n this.operatorUnits = this.operatorUnits.filter((o1) =>\n this.field.operatorUnits.some((o2) => o1.id === o2)\n );\n }\n\n // Load translation before get the options in the children.\n this.translate.get('SMART_FILTERS.TITLE').subscribe((res) => {\n this.loadOperatorsOptions();\n });\n }\n\n private setupFilter() {\n if (this._filter) {\n this.operator = this._filter.operator;\n this.operatorUnit = this._filter.operatorUnit;\n const formValue = {};\n formValue[this.firstControlKey] = this._filter.value.first;\n formValue[this.secondControlKey] = this._filter.value.second;\n this.form.patchValue(formValue);\n } else {\n this.operator = this.getDefaultOperator();\n this.operatorUnit = this.getDefaultOperatorUnit();\n this.clearFilter(false);\n }\n }\n\n protected updateParentForm() {\n this._parentForm.setControl('fieldId', this.builder.control(this.field.id));\n this._parentForm.setControl('fieldType', this.builder.control(this.field.type));\n this._parentForm.setControl('operator', this.builder.control(this.operator));\n this._parentForm.setControl('operatorUnit', this.builder.control(this.operatorUnit));\n this._parentForm.setControl('values', this.builder.group({\n first: this.firstControl,\n second: this.secondControl\n }));\n }\n\n private updateValidity() {\n this.setFieldsStateAndValidators();\n\n this.firstControl.updateValueAndValidity();\n this.secondControl.updateValueAndValidity();\n }\n // Load the operators options from the translation.\n protected loadOperatorsOptions(): void {\n // Not implemented in the base\n }\n\n // Set default validators - some childs override this.\n protected setFieldsStateAndValidators(): void {\n this.firstControl.setValidators(Validators.required);\n this.secondControl.setValidators(Validators.required);\n this.secondControl.disable();\n }\n\n // Return undefined - some childs override this.\n protected getDefaultOperatorUnit(): IPepSmartFilterOperatorUnit {\n return undefined;\n }\n\n protected initFilter() {\n // Not implemented in the base\n }\n\n abstract getDefaultOperator(): IPepSmartFilterOperator;\n abstract getFilterValue(): IPepSmartFilterDataValue;\n\n clearFilter(emitEvent = true) {\n this._filter = null;\n this.form.reset();\n this.initFilter();\n\n if (emitEvent) {\n this.filterClear.emit();\n }\n }\n\n applyFilter() {\n const filterValue = this.getFilterValue();\n\n // If the filter is not null declare it, else - clear it.\n if (filterValue) {\n const filter = {\n fieldId: this.field.id,\n operator: this.operator,\n operatorUnit: this.operatorUnit,\n value: filterValue,\n };\n this._filter = filter;\n this.filterChange.emit(filter);\n } else {\n this.clearFilter();\n }\n }\n\n ngOnInit(): void {\n if (this.form) {\n this.updateValidity();\n }\n }\n\n ngOnChanges(): void {\n // if (this.form) {\n // this.updateValidity();\n // }\n }\n\n ngOnDestroy(): void {\n if (this.showActionButtons) {\n this.actionsContainerRef.destroy();\n }\n }\n\n // writeValue(value: IPepSmartFilterDataValue): void {\n // if (value) {\n // this.form.setValue(\n // {\n // first: value.first,\n // second: value.second || null,\n // },\n // { emitEvent: false }\n // );\n // } else {\n // this.form.reset();\n // }\n // }\n\n // registerOnChange(fn: any): void {\n // this.form.valueChanges.subscribe(fn);\n // }\n\n // onTouched: () => void = () => {\n // /* Do nothing */\n // };\n\n // registerOnTouched(fn: any): void {\n // this.onTouched = fn;\n // }\n\n // setDisabledState?(isDisabled: boolean): void {\n // isDisabled ? this.form.disable() : this.form.enable();\n // }\n\n // validate(control: AbstractControl): ValidationErrors {\n // return this.form.valid ? null : { PepFilterIsNotValid: true };\n // }\n}\n","import { Component, OnChanges, OnInit } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n PepSmartFilterVariableOperators\n} from '../common/model/operator';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\n\n@Component({\n selector: 'pep-text-filter',\n templateUrl: './text-filter.component.html',\n styleUrls: ['./text-filter.component.scss'],\n})\nexport class PepTextFilterComponent extends BaseFilterComponent implements OnInit {\n PepSmartFilterVariableOperators = PepSmartFilterVariableOperators;\n chooseTypeOptions: Array<IPepOption> = [];\n operatorWidth = '38%';\n firstControlWidth = '62%';\n\n ngOnInit() {\n this.firstControl.valueChanges\n .pipe(this.getDestroyer(), distinctUntilChanged())\n .subscribe(() => {\n this.setFieldsStateAndValidators();\n });\n\n if (this.inline) {\n this.setControlsWidth();\n }\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.Equals;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = {\n first: this.firstControl.value,\n };\n\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n filterValue['second'] = this.secondControl.value;\n }\n\n return filterValue;\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTypeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n }\n\n // Override\n setFieldsStateAndValidators(): void {\n this.firstControl.enable();\n\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n const firstValidators = [Validators.required];\n if (this.secondControl.value) {\n firstValidators.push(this.validator.isLessThan(this.secondControl));\n }\n this.firstControl.setValidators(firstValidators);\n this.firstControl.updateValueAndValidity();\n } else if(this.operator === PepSmartFilterOperators.IsEmpty ||\n this.operator === PepSmartFilterOperators.IsNotEmpty) {\n this.firstControl.disable(); \n } \n\n super.setFieldsStateAndValidators();\n }\n\n setControlsWidth() {\n if (\n this.operator === PepSmartFilterOperators.IsEmpty ||\n this.operator === PepSmartFilterOperators.IsNotEmpty) {\n this.operatorWidth = 'auto';\n } else {\n this.operatorWidth = '38%';\n } \n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(this.operators).find(\n (operator) => operator.id === value\n );\n this.operator = operator;\n\n if (this.inline) {\n this.setControlsWidth();\n }\n\n if (this._parentForm) {\n this.updateParentForm();\n }\n \n setTimeout(() => {\n if (this.emitOnChange) {\n this.applyFilter();\n } \n }, 0)\n \n }\n\n onVariableChanged(value: any) {\n this.firstControl.setValue(value);\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onValueChanged() {\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}","<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\n <pep-select [fxFlex]=\"inline ? operatorWidth : null\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.InVariable &&\n operator !== PepSmartFilterVariableOperators.IsEmpty &&\n operator !== PepSmartFilterVariableOperators.IsNotEmpty\">\n <pep-textbox [fxFlex]=\"inline ? firstControlWidth : null\" [form]=\"form\" [key]=\"firstControlKey\"\n [label]=\"'SMART_FILTERS.VALUE' | translate\" [renderError]=\"false\" [renderTitle]=\"renderTitle\"\n [type]=\"field.type\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n </ng-container>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable ||\n operator === PepSmartFilterVariableOperators.InVariable\">\n <pep-select [fxFlex]=\"inline ? firstControlWidth : null\" [key]=\"firstControlKey\"\n [value]=\"firstControl?.value || ''\" [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\"\n [emptyOption]=\"false\" [options]=\"variableFieldOptions\" (valueChange)=\"onVariableChanged($event)\">\n </pep-select>\n </ng-container>\n <!-- <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.IsEmpty || \n operator === PepSmartFilterVariableOperators.IsNotEmpty\">\n\n </ng-container> -->\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n PepSmartFilterVariableOperators\n} from '../common/model/operator';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Component({\n selector: 'pep-boolean-filter',\n templateUrl: './boolean-filter.component.html',\n styleUrls: ['./boolean-filter.component.scss'],\n})\nexport class PepBooleanFilterComponent extends BaseFilterComponent implements OnInit {\n @Input() options: IPepOption[] = [];\n\n PepSmartFilterVariableOperators = PepSmartFilterVariableOperators;\n chooseTypeOptions: Array<IPepOption> = [];\n operatorWidth: string;\n valueWidth: string;\n\n ngOnInit() {\n if (this.inline) {\n this.setControlsWidth();\n }\n }\n\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.Equals;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = { first: this.firstControl.value || false };\n return filterValue;\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTypeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n }\n\n setControlsWidth() {\n if (this.variableFieldOptions?.length) {\n this.operatorWidth = '38%';\n this.valueWidth = '62%';\n\n } else {\n this.valueWidth = '100%';\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(this.operators).find(\n (operator) => operator.id === value\n );\n this.operator = operator;\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onValueChanged(value) {\n this.firstControl.setValue(value);\n\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n}\n","<ng-container *ngIf=\"inline; then inlineBlock; else notInlineBlock\"></ng-container>\n<ng-template #inlineBlock>\n <ng-container *ngIf=\"variableFieldOptions?.length\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select [fxFlex]=\"operatorWidth\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable || \n operator === PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.NotEqualsToVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\"\n [options]=\"options\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!variableFieldOptions || !variableFieldOptions.length\">\n <pep-select [fxFlex]=\"valueWidth\" [value]=\"firstControl?.value || ''\" xAlignment=\"left\" [options]=\"options\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n</ng-template>\n<ng-template #notInlineBlock>\n <div [formGroup]=\"form\">\n <mat-radio-group class=\"radio-group \" [formControlName]=\"firstControlKey\">\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"true\">\n <span class=\"body-sm ellipsis\">{{ 'CHECKBOX.TRUE' | translate }}</span>\n </mat-radio-button>\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"false\">\n <span class=\"body-sm ellipsis\">{{ 'CHECKBOX.FALSE' | translate }}</span>\n </mat-radio-button>\n </mat-radio-group>\n </div>\n</ng-template>","import { Component, OnInit } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n IPepSmartFilterOperatorUnit,\n PepSmartFilterOperators,\n PepSmartFilterAdditionalOperators,\n PepSmartFilterVariableOperators,\n PepSmartFilterOperatorUnits,\n} from '../common/model/operator';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { Validators } from '@angular/forms';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Component({\n selector: 'pep-date-filter',\n templateUrl: './date-filter.component.html',\n styleUrls: ['./date-filter.component.scss'],\n})\nexport class PepDateFilterComponent extends BaseFilterComponent implements OnInit {\n PepSmartFilterOperators = PepSmartFilterOperators;\n PepSmartFilterAdditionalOperators = PepSmartFilterAdditionalOperators;\n PepSmartFilterVariableOperators = PepSmartFilterVariableOperators;\n chooseTimeOptions: Array<IPepOption> = [];\n chooseTimeUnitOptions: Array<IPepOption> = [];\n operatorWidth: string;\n fieldsWidth: string;\n\n ngOnInit() {\n if (this.inline) {\n this.setControlsWidth();\n }\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.InTheLast;\n }\n\n // Override\n getDefaultOperatorUnit(): IPepSmartFilterOperatorUnit {\n if (this.operator === PepSmartFilterOperators.InTheLast ||\n this.operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n this.operator === PepSmartFilterOperators.NotInTheLast ||\n this.operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n this.operator === PepSmartFilterOperators.DueIn ||\n this.operator === PepSmartFilterOperators.NotDueIn) {\n return PepSmartFilterOperatorUnits.Months;\n } else {\n return undefined;\n }\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = {\n first: this.firstControl.value,\n };\n\n if (this.operator === PepSmartFilterOperators.DateRange ||\n this.operator === PepSmartFilterVariableOperators.DateRangeVariable) {\n filterValue['second'] = this.secondControl.value;\n }\n\n return filterValue;\n }\n\n // Override\n initFilter() {\n setTimeout(() => { \n if (this.emitOnChange) {\n this.applyFilter();\n }\n }, 0);\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTimeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n\n this.chooseTimeUnitOptions = this.operatorUnits.map((operatorUnit) => {\n return {\n key: operatorUnit.id,\n value: this.translate.instant(\n `${this.OPERATOR_UNITS_TRANSLATION_PREFIX}.${operatorUnit.name}`\n ),\n };\n });\n }\n\n // Override\n setFieldsStateAndValidators(): void {\n this.firstControl.enable();\n\n if (\n this.operator === PepSmartFilterOperators.DateRange ||\n this.operator === PepSmartFilterVariableOperators.DateRangeVariable\n ) {\n this.firstControl.setValidators(Validators.required);\n this.secondControl.enable();\n this.secondControl.setValidators(Validators.required);\n } else if (\n this.operator === PepSmartFilterOperators.InTheLast ||\n this.operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||\n this.operator === PepSmartFilterOperators.NotInTheLast ||\n this.operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||\n this.operator === PepSmartFilterOperators.DueIn ||\n this.operator === PepSmartFilterOperators.NotDueIn\n ) {\n this.firstControl.setValidators([\n Validators.required,\n this.validator.numberValidator(),\n ]);\n this.secondControl.disable();\n } else {\n // Disable 'first' field.\n if (\n this.operator === PepSmartFilterOperators.Today ||\n this.operator === PepSmartFilterOperators.ThisWeek ||\n this.operator === PepSmartFilterOperators.ThisMonth ||\n this.operator === PepSmartFilterOperators.IsEmpty ||\n this.operator === PepSmartFilterOperators.IsNotEmpty\n ) {\n this.firstControl.disable();\n }\n\n // Default disable 'second' field.\n super.setFieldsStateAndValidators();\n }\n }\n\n setControlsWidth() {\n if (\n this.operator === PepSmartFilterOperators.Today ||\n this.operator === PepSmartFilterOperators.ThisWeek ||\n this.operator === PepSmartFilterOperators.ThisMonth ||\n this.operator === PepSmartFilterOperators.IsEmpty ||\n this.operator === PepSmartFilterOperators.IsNotEmpty\n ) {\n this.operatorWidth = 'auto';\n this.fieldsWidth = '0%';\n } else if (this.operator === PepSmartFilterOperators.On) {\n this.operatorWidth = '38%';\n this.fieldsWidth = '62%';\n } else {\n this.operatorWidth = '30%';\n this.fieldsWidth = '70%';\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(this.operators).find(\n (operator) => operator.id === value\n );\n\n this.operator = operator;\n this.operatorUnit = this.getDefaultOperatorUnit();\n if (this.inline) {\n this.setControlsWidth();\n }\n if (this._parentForm) {\n this.updateParentForm();\n }\n setTimeout(() => {\n if (this.emitOnChange) {\n this.applyFilter();\n } \n }, 0)\n \n }\n\n onTimeUnitChanged(value: string) {\n const operatorUnit = Object.values(PepSmartFilterOperatorUnits).find(\n (operatorUnit) => operatorUnit.id === value\n );\n this.operatorUnit = operatorUnit;\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onVariableChanged(value: any) {\n this.firstControl.setValue(value);\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onSecondVariableChanged(value: any) {\n this.secondControl.setValue(value);\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onDateValueChanged() {\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}\n","<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\n <ng-container>\n <pep-select [key]=\"'timeOperator'\" [value]=\"operator.id\" [label]=\"'SMART_FILTERS.CHOOSE_TIME' | translate\"\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" [options]=\"chooseTimeOptions\"\n [fxFlex]=\"inline ? operatorWidth : null\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n </ng-container>\n <div *ngIf=\"operator === PepSmartFilterOperators.InTheLast ||\n operator === PepSmartFilterAdditionalOperators.InTheLastCalendar || \n operator === PepSmartFilterOperators.NotInTheLast ||\n operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar || \n operator === PepSmartFilterOperators.DueIn ||\n operator === PepSmartFilterOperators.NotDueIn\" fxLayout=\"row\" fxLayout.xs=\"column\"\n [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\" [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Amount -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.AMOUNT' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\" [type]=\"'int'\"\n [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onDateValueChanged()\">\n </pep-textbox>\n <!-- Time unit -->\n <pep-select [form]=\"form\" [key]=\"'timeUnit'\" [value]=\"operatorUnit?.id\"\n [label]=\"'SMART_FILTERS.TIME_UNIT' | translate\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [emptyOption]=\"false\" [options]=\"chooseTimeUnitOptions\" (valueChange)=\"onTimeUnitChanged($event)\">\n </pep-select>\n </div>\n <div pepRtlDirection *ngIf=\"operator === PepSmartFilterOperators.DateRange\" fxLayout=\"row\" fxLayout.xs=\"column\"\n [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\" [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Start date -->\n <pep-date [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.START_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [type]=\"field.type === 'date' ? 'date' : 'datetime'\" [value]=\"firstControl?.value || ''\"\n [maxDateValue]=\"secondControl?.value\" (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n <!-- End date -->\n <pep-date [form]=\"form\" [key]=\"secondControlKey\" [label]=\"'SMART_FILTERS.END_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\n [type]=\"field.type === 'date' ? 'date' : 'datetime'\" [value]=\"secondControl?.value || ''\"\n [minDateValue]=\"firstControl?.value\" (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n </div>\n <ng-container *ngIf=\"operator === PepSmartFilterOperators.On\">\n <!-- Choose a date -->\n <pep-date [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.CHOOSE_DATE' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type === 'date' ? 'date' : 'datetime'\"\n [fxFlex]=\"inline ? fieldsWidth : null\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onDateValueChanged()\">\n </pep-date>\n </ng-container>\n <div pepRtlDirection *ngIf=\"operator === PepSmartFilterVariableOperators.DateRangeVariable\" fxLayout=\"row\"\n fxLayout.xs=\"column\" fxLayoutGap=\".5rem\" fxFlex=\"fieldsWidth\">\n <pep-select fxFlex=\"50%\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onVariableChanged($event)\"></pep-select>\n <pep-select fxFlex=\"50%\" [key]=\"secondControlKey\" [value]=\"secondControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onSecondVariableChanged($event)\"></pep-select>\n </div>\n</div>\n","import {\n AfterViewInit,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Component, OnInit } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n PepSmartFilterVariableOperators\n} from '../common/model/operator';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { IPepSmartFilterFieldOption } from '../common/model/field';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\nimport { FormControl } from '@angular/forms';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { VirtualScrollerComponent } from 'ngx-virtual-scroller';\n\nclass PepMultiSelectFilterOption implements IPepSmartFilterFieldOption {\n value: string;\n count?: number;\n selected = false;\n}\n\n@Component({\n selector: 'pep-multi-select-filter',\n templateUrl: './multi-select-filter.component.html',\n styleUrls: ['./multi-select-filter.component.scss'],\n})\nexport class PepMultiSelectFilterComponent\n extends BaseFilterComponent\n implements OnInit, AfterViewInit {\n PepSmartFilterVariableOperators = PepSmartFilterVariableOperators;\n\n options: PepMultiSelectFilterOption[] = [];\n filteredOptions$: Observable<any>;\n chooseTypeOptions: Array<IPepOption> = [];\n searchControl = new FormControl();\n //inline props\n selected = '';\n inlineOptions: IPepOption[] = [];\n operatorWidth: string;\n valueWidth: string;\n\n @ViewChild('optionsContainer')\n optionsContainer: ElementRef;\n\n private readonly MAX_OPTIONS_TO_SHOW = 6.35;\n @ViewChild(VirtualScrollerComponent)\n private virtualScroller: VirtualScrollerComponent;\n\n numberOptionsToShowSearch = 10;\n\n ngOnInit() {\n super.ngOnInit;\n\n if (this.inline) {\n this.inlineControlInit();\n this.setControlsWidth();\n } else {\n this.noneInlineControlInit();\n }\n }\n\n\n ngAfterViewInit(): void {\n // Calc for the first time.\n this.calcOptionsHeight(this.options.length);\n }\n\n private inlineControlInit() {\n //load options from field \n this.inlineOptions = this.field?.options?.length > 0 ? this.field.options as IPepOption[] : [];\n // init the selected values from first value. \n if (this.firstControl?.value && Array.isArray(this.firstControl.value)) {\n this.selected = this.firstControl.value.join(';');\n }\n }\n\n private noneInlineControlInit() {\n if (this.field.options?.length > 0) {\n this.options = this.field.options.map((opt) => {\n return { value: opt.value, count: opt.count, selected: false };\n });\n } else {\n this.searchControl.disable();\n }\n\n // Init the selected values from first value.\n const firstControl = this.firstControl;\n if (firstControl.value) {\n this.initOptionsSelectedValues(firstControl.value);\n }\n\n // Add subscription for the first value change to set the selected options.\n firstControl.valueChanges\n .pipe(this.getDestroyer(), distinctUntilChanged())\n .subscribe((selectedValues: string[]) => {\n this.initOptionsSelectedValues(selectedValues);\n });\n\n // Filter the options by the search control.\n this.filteredOptions$ = this.searchControl.valueChanges.pipe(\n this.getDestroyer(),\n startWith<any>(''),\n map((option) =>\n typeof option === 'string' ? option : option && option.value\n ),\n map((value) => (value ? this.filterOptions(value) : this.options))\n );\n\n // Each time the filter change.\n this.filteredOptions$.subscribe(\n (filterdOptions: PepMultiSelectFilterOption[]) => {\n this.calcOptionsHeight(filterdOptions.length);\n setTimeout(() => {\n // 8 is the padding top of the multi-select-options\n this.virtualScroller.scrollToPosition(-8);\n }, 125);\n }\n );\n\n }\n\n initOptionsSelectedValues(selectedValues: string[]): void {\n this.options.forEach((opt) => {\n const isValueSelected =\n selectedValues && selectedValues.includes(opt.value);\n opt.selected = isValueSelected;\n });\n }\n\n private calcOptionsHeight(optionsCount: number) {\n if (this.optionsContainer) {\n const optionsToShow =\n optionsCount > this.MAX_OPTIONS_TO_SHOW\n ? this.MAX_OPTIONS_TO_SHOW\n : optionsCount;\n // optionsToShow * 2.25 is 1 option height + 1 is the padding top & bottom of the container.\n const optionsHeight = optionsToShow * 2.25 + 1 + 'rem';\n\n this.renderer.setStyle(\n this.optionsContainer.nativeElement,\n 'height',\n optionsHeight\n );\n }\n }\n\n private filterOptions(value: string): any[] {\n const filterValue = value.toLowerCase();\n return this.options.filter(\n (opt) =>\n opt.value &&\n opt.value.toLowerCase().includes(filterValue.toLowerCase())\n );\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.In;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n if (this.inline) {\n return {\n first: this.firstControl.value\n };\n } else {\n const selectedValues = this.options\n .filter((opt) => opt.selected)\n .map((opt) => opt.value);\n const filterValue = {\n first: selectedValues,\n };\n\n return selectedValues.length > 0 ? filterValue : null;\n }\n\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTypeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n }\n\n setControlsWidth() {\n if (this.variableFieldOptions?.length) {\n this.operatorWidth = '38%';\n this.valueWidth = '62%';\n\n } else {\n this.valueWidth = '100%';\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(this.operators).find(\n (operator) => operator.id === value\n );\n this.operator = operator;\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n\n // Override\n initFilter() {\n this.options.forEach((opt) => (opt.selected = false));\n this.searchControl.setValue('');\n }\n\n onOptionChange(\n option: PepMultiSelectFilterOption,\n event: MatCheckboxChange\n ) {\n option.selected = event.checked;\n this.firstControl.setValue(\n this.options.filter((opt) => opt.selected).map((opt) => opt.value),\n { emitEvent: false }\n );\n }\n\n onMultiSelectChanged(value: string) {\n if (value) {\n const selected: string[] = value.split(';');\n this.firstControl.setValue(selected);\n } else {\n this.firstControl.setValue(null);\n }\n\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onValueChanged(value) {\n this.firstControl.setValue(value);\n\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}\n","<ng-container *ngIf=\"inline\">\n <ng-container *ngIf=\"variableFieldOptions?.length\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select [fxFlex]=\"operatorWidth\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.EqualsToVariable || \n operator === PepSmartFilterVariableOperators.NotEqualsToVariable || \n operator === PepSmartFilterVariableOperators.InVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterVariableOperators.EqualsToVariable && \n operator !== PepSmartFilterVariableOperators.NotEqualsToVariable &&\n operator !== PepSmartFilterVariableOperators.InVariable\">\n <pep-select [fxFlex]=\"valueWidth\" [label]=\"'Pepperi Multi Select'\" [type]=\"'multi'\"\n [value]=\"selected\" [xAlignment]=\"'left'\" [renderTitle]=\"renderTitle\" [options]='inlineOptions'\n (valueChange)=\"onMultiSelectChanged($event)\">\n </pep-select>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!variableFieldOptions || !variableFieldOptions.length\">\n <pep-select [label]=\"'Pepperi Multi Select'\" [type]=\"'multi'\" [value]=\"selected\"\n [xAlignment]=\"'left'\" [renderTitle]=\"renderTitle\" [options]='inlineOptions'\n (valueChange)=\"onMultiSelectChanged($event)\">\n </pep-select>\n </ng-container>\n</ng-container>\n<div *ngIf=\"!inline\" [formGroup]=\"form\">\n <pep-search *ngIf=\"options?.length > numberOptionsToShowSearch\" [searchControl]=\"searchControl\"\n [triggerOn]=\"'keydown'\" shrink=\"never\"></pep-search>\n <div pepRtlClass class=\"multi-select-options pep-border-top pep-border-bottom\"\n [ngClass]=\"{'with-no-search': options?.length <= numberOptionsToShowSearch}\">\n <div #optionsContainer class=\"flip-scroll\" pepRtlClass>\n <virtual-scroller #scroll [items]=\"filteredOptions$ | async\" [parentScroll]=\"optionsContainer\">\n <mat-checkbox *ngFor=\"let opt of scroll.viewPortItems\"\n class=\"pep-checkbox-container pep-input no-default-background md\" [title]=\"opt.value\"\n [checked]=\"opt.selected\" (change)=\"onOptionChange(opt, $event)\">\n <div class=\"title\">\n <span class=\"body-sm ellipsis\">{{ opt.value }}</span>\n <span *ngIf=\"opt.count\" class=\"color-dimmed body-xs ellipsis\">({{opt.count}})</span>\n </div>\n </mat-checkbox>\n <ng-container *ngIf=\"scroll.viewPortItems?.length === 0\">\n <span class=\"no-options body-sm ellipsis\" [title]=\"field.name\">\n {{ ( options.length > 0 ? \"SMART_FILTERS.NO_SEARCH_RESULTS\" : \"SMART_FILTERS.NO_OPTIONS\") |\n translate }}\n </span>\n </ng-container>\n </virtual-scroller>\n </div>\n </div>\n</div>","import { Component, OnChanges, OnInit } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n PepSmartFilterVariableOperators\n} from '../common/model/operator';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { Validators } from '@angular/forms';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\n@Component({\n selector: 'pep-number-filter',\n templateUrl: './number-filter.component.html',\n styleUrls: ['./number-filter.component.scss'],\n})\nexport class PepNumberFilterComponent extends BaseFilterComponent implements OnInit {\n PepSmartFilterOperators = PepSmartFilterOperators;\n PepSmartFilterVariableOperators = PepSmartFilterVariableOperators;\n chooseTypeOptions: Array<IPepOption> = [];\n operatorWidth = '38%';\n fieldsWidth = '70%';\n\n ngOnInit() {\n this.firstControl.valueChanges\n // .pipe(debounceTime(3000), this.getDestroyer(), distinctUntilChanged())\n // .pipe(this.getDestroyer(), distinctUntilChanged((pre: any, curr: any) => \n // this.utilitiesService.isEqualNumber(pre, curr)\n // ))\n .pipe(this.getDestroyer(), distinctUntilChanged())\n .subscribe(() => {\n console.log(`firstControl.valueChanges - ${this.firstControl.value}`)\n this.setFieldsStateAndValidators();\n });\n\n this.secondControl.valueChanges\n .pipe(this.getDestroyer(), distinctUntilChanged())\n // .pipe(debounceTime(3000), this.getDestroyer(), distinctUntilChanged())\n .subscribe(() => {\n this.setFieldsStateAndValidators();\n });\n this.setControlsWidth();\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.Equals;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = {\n first: this.firstControl.value,\n };\n\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n filterValue['second'] = this.secondControl.value;\n }\n\n return filterValue;\n }\n\n // Override\n initFilter() {\n setTimeout(() => {\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }, 0);\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTypeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n }\n\n // Override\n setFieldsStateAndValidators(): void {\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n const firstValidators = [Validators.required];\n if (this.secondControl.value) {\n firstValidators.push(this.validator.isLessThan(this.secondControl));\n }\n this.firstControl.setValidators(firstValidators);\n this.firstControl.updateValueAndValidity();\n\n this.secondControl.enable();\n const secondValidators = [Validators.required];\n if (this.firstControl.value) {\n secondValidators.push(this.validator.isGreaterThan(this.firstControl));\n }\n this.secondControl.setValidators(secondValidators);\n this.secondControl.updateValueAndValidity();\n } else {\n super.setFieldsStateAndValidators();\n }\n }\n\n setControlsWidth() {\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n this.operatorWidth = '30%';\n this.fieldsWidth = '70%';\n } else {\n this.operatorWidth = '38%';\n this.fieldsWidth = '62%';\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(this.operators).find(\n (operator) => operator.id === value\n );\n this.operator = operator;\n if (this._parentForm) {\n this.updateParentForm();\n }\n this.setControlsWidth();\n setTimeout(() => {\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }, 0);\n }\n\n onVariableChanged(value: any) {\n this.firstControl.setValue(value);\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onValueChanged() {\n // this.firstControl.setValue(value);\n // console.log(`onValueChanged ${this.firstControl.value}`);\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}\n","<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\n <ng-container>\n <pep-select [fxFlex]=\"inline ? operatorWidth : null\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator === PepSmartFilterOperators.NumberRange\">\n <div fxLayout=\"row\" fxLayout.xs=\"column\" [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\"\n [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Min number -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.MIN' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\" fxFlex=\"50%\"\n [value]=\"firstControl?.value || ''\"\n [maxValue]=\"secondControl?.value || ''\" (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n <!-- Max number -->\n <pep-textbox [form]=\"form\" [key]=\"secondControlKey\" [label]=\"'SMART_FILTERS.MAX' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\" fxFlex=\"50%\"\n [value]=\"secondControl?.value || ''\"\n [minValue]=\"firstControl?.value || ''\" (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n </div>\n </ng-container>\n <ng-container *ngIf=\"operator === PepSmartFilterVariableOperators.LessThanVariable || \n operator === PepSmartFilterVariableOperators.GreaterThanVariable || \n operator === PepSmartFilterVariableOperators.EqualsToVariable\">\n <pep-select [fxFlex]=\"inline ? fieldsWidth : null\" [key]=\"firstControlKey\" [value]=\"firstControl?.value || ''\"\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\n [options]=\"variableFieldOptions\" (valueChange)=\"onVariableChanged($event)\">\n </pep-select>\n </ng-container>\n <ng-container *ngIf=\"operator !== PepSmartFilterOperators.NumberRange && operator !== PepSmartFilterVariableOperators.LessThanVariable &&\n operator !== PepSmartFilterVariableOperators.GreaterThanVariable && \n operator !== PepSmartFilterVariableOperators.EqualsToVariable\">\n <div [fxFlex]=\"inline ? fieldsWidth : null\">\n <!-- Amount -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.AMOUNT' | translate\"\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\"\n [value]=\"firstControl?.value || ''\" \n (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n </div>\n </ng-container>\n</div>","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n Output,\n EventEmitter,\n ElementRef,\n} from '@angular/core';\nimport {\n IPepSmartFilterField,\n PepSmartFilterBaseField,\n} from './common/model/field';\nimport { PepLayoutService } from '@pepperi-addons/ngx-lib';\nimport { IPepSmartFilterData } from './common/model/filter';\n\n@Component({\n selector: 'pep-smart-filters',\n templateUrl: './smart-filters.component.html',\n styleUrls: ['./smart-filters.component.scss', './smart-filters.component.theme.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PepSmartFiltersComponent {\n\n @Input() title = '';\n\n filtersDataMap: Map<string, IPepSmartFilterData> = new Map<\n string,\n IPepSmartFilterData\n >();\n\n private _filters: IPepSmartFilterData[] = [];\n @Input()\n set filters(value: IPepSmartFilterData[]) {\n this._filters = value;\n this.setupFilters(value);\n }\n get filters(): IPepSmartFilterData[] {\n this._filters = [...this.filtersDataMap.keys()]\n // .filter((key) => this.filtersDataMap.get(key) !== null)\n .map((key) => {\n if (key) {\n return this.filtersDataMap.get(key);\n }\n });\n\n return this._filters;\n }\n\n private _fields: Array<IPepSmartFilterField> = [];\n @Input()\n set fields(value: Array<IPepSmartFilterField>) {\n this._fields = value;\n }\n get fields(): Array<IPepSmartFilterField> {\n return this._fields;\n }\n\n private _useAsWebComponent = false;\n @Input()\n set useAsWebComponent(value: boolean) {\n if (value) {\n this.exportFunctionsOnHostElement();\n }\n }\n get useAsWebComponent(): boolean {\n return this._useAsWebComponent;\n }\n\n // @Output()\n // filtersClear: EventEmitter<void> = new EventEmitter<void>();\n @Output()\n filtersChange: EventEmitter<IPepSmartFilterData[]> = new EventEmitter<\n IPepSmartFilterData[]\n >();\n\n @Output()\n fieldToggleChange: EventEmitter<IPepSmartFilterField> = new EventEmitter<IPepSmartFilterField>();\n\n expansionPanelHeaderHeight = '*';\n\n constructor(\n private hostElement: ElementRef,\n public layoutService: PepLayoutService\n ) { }\n\n private exportFunctionsOnHostElement() {\n // This is for web component usage for use those functions.\n this.hostElement.nativeElement.clearFilters = this.clearFilters.bind(\n this\n );\n this.hostElement.nativeElement.clearFilter = this.clearFilter.bind(\n this\n );\n this.hostElement.nativeElement.toggleField = this.toggleField.bind(\n this\n );\n }\n\n private setupFilters(value: IPepSmartFilterData[]) {\n this.filtersDataMap.clear();\n if (value) {\n value.forEach((filter) => {\n // Validate before add the filter into the map.\n let currentField = null;\n\n if (this.fields && this.fields.length > 0) {\n currentField = this.fields.find(\n (field) => field.id === filter.fieldId\n ) as PepSmartFilterBaseField;\n }\n\n if (currentField) {\n // Only if the operator is from the same type\n if (\n filter.operator.componentType.includes(\n currentField.componentType\n )\n ) {\n let isOperatorUnitValid = true;\n if (filter.operatorUnit) {\n // Only if the operator unit is not from the same type\n if (\n !filter.operatorUnit.componentType.includes(\n currentField.componentType\n )\n ) {\n isOperatorUnitValid = false;\n }\n }\n\n // Add the filter.\n if (isOperatorUnitValid) {\n this.filtersDataMap.set(filter.fieldId, filter);\n }\n }\n }\n });\n }\n }\n\n private raiseFiltersChange(): void {\n this.filtersChange.emit(this.filters);\n }\n\n toggleField(index: number, isOpen: boolean): void {\n this.fields[index].isOpen = isOpen;\n this.fieldToggleChange.emit(this.fields[index]);\n }\n\n clearFilters() {\n this.filtersDataMap.clear();\n }\n\n clearFilter(fieldId: string) {\n this.filtersDataMap.delete(fieldId);\n }\n\n // Clear all the filters and raise event that filters has change.\n onFiltersClear() {\n this.clearFilters();\n this.raiseFiltersChange();\n }\n\n // Clear the filter and raise event that filters has change.\n onFilterClear(field: IPepSmartFilterField) {\n this.clearFilter(field.id);\n this.raiseFiltersChange();\n }\n\n // Set the filter and raise event that filters has change.\n onFilterChange(\n field: IPepSmartFilterField,\n filterData: IPepSmartFilterData\n ) {\n this.clearFilter(field.id);\n this.filtersDataMap.set(field.id, filterData);\n this.raiseFiltersChange();\n }\n}\n","<div class=\"smart-filters-container\" dir=\"{{ layoutService.isRtl() ? 'rtl' : 'ltr' }}\">\n <div *ngIf=\"fields?.length > 0\" class=\"title\">\n <span class=\"body-md bold\">{{ title?.length > 0 ? title : (\"SMART_FILTERS.TITLE\" | translate)}}</span>\n <mat-chip-option *ngIf=\"filtersDataMap.size > 0\" [selectable]=\"false\" [removable]=\"true\" (click)=\"onFiltersClear()\"\n class=\"clear-filter pep-button chip xs weak\">\n <span class=\"body-xs ellipsis \">\n {{ \"ACTIONS.CLEAR\" | translate}}\n </span>\n </mat-chip-option>\n </div>\n\n <mat-accordion [displayMode]=\"'flat'\" [multi]=\"true\" class=\"pep-accordion2\">\n <mat-expansion-panel *ngFor=\"let field of fields; let i = index\" hideToggle=\"true\" [expanded]=\"field.isOpen\"\n (opened)=\"toggleField(i, true)\" (closed)=\"toggleField(i, false)\">\n <mat-expansion-panel-header [collapsedHeight]=\"expansionPanelHeaderHeight\"\n [expandedHeight]=\"expansionPanelHeaderHeight\">\n <mat-panel-title class=\"pep-spacing-element-negative\">\n <div class=\"smart-filter-title-container\">\n <mat-icon class=\"pep-spacing-element\">\n <pep-icon [name]=\"field.isOpen ? 'number_minus' : 'number_plus'\"></pep-icon>\n </mat-icon>\n <span class=\"body-sm ellipsis\" [title]=\"field.name\">\n {{ field.name }}\n </span>\n <mat-chip-option *ngIf=\"filtersDataMap.get(field.id)\" [selectable]=\"false\" [removable]=\"true\"\n (click)=\"onFilterClear(field)\" class=\"clear-filter pep-button chip xs weak\">\n <span *ngIf=\"field.componentType === 'multi-select'\" class=\"body-xs pep-spacing-element\">\n {{ filtersDataMap.get(field.id).value?.first?.length }}\n <!-- {{ field.componentType === 'multi-select' ?\n filtersDataMap.get(field.id).value?.first?.length : 1 }} -->\n </span>\n <mat-icon>\n <pep-icon name=\"system_close\"></pep-icon>\n </mat-icon>\n </mat-chip-option>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <div class=\"expansion-content smart-filter-content\">\n <ng-container [ngSwitch]=\"field.componentType\">\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-number-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\n </pep-text-filter>\n </ng-container>\n <!-- <div *ngSwitchDefault>\n </div> -->\n </ng-container>\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatRadioModule } from '@angular/material/radio';\n\nimport { VirtualScrollerModule } from 'ngx-virtual-scroller';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepCheckboxModule } from '@pepperi-addons/ngx-lib/checkbox';\nimport { PepDateModule } from '@pepperi-addons/ngx-lib/date';\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\nimport { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';\nimport { PepSearchModule } from '@pepperi-addons/ngx-lib/search';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconNumberMinus,\n pepIconNumberPlus,\n} from '@pepperi-addons/ngx-lib/icon';\nimport { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';\n\n// import { BaseFilterComponent } from './common/model/base-filter-component';\nimport { PepSmartFiltersComponent } from './smart-filters.component';\nimport { PepFilterActionsComponent } from './common/filter-actions.component';\nimport { PepTextFilterComponent } from './text-filter/text-filter.component';\nimport { PepBooleanFilterComponent } from './boolean-filter/boolean-filter.component';\nimport { PepDateFilterComponent } from './date-filter/date-filter.component';\nimport { PepMultiSelectFilterComponent } from './multi-select-filter/multi-select-filter.component';\nimport { PepNumberFilterComponent } from './number-filter/number-filter.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n // Material modules\n MatCommonModule,\n MatCheckboxModule,\n MatChipsModule,\n MatExpansionModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n MatRadioModule,\n // External modules\n VirtualScrollerModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepCheckboxModule,\n PepDateModule,\n PepSelectModule,\n PepTextboxModule,\n PepSearchModule,\n PepIconModule,\n PepButtonModule,\n PepGroupButtonsModule\n ],\n exports: [\n PepSmartFiltersComponent,\n PepTextFilterComponent,\n PepBooleanFilterComponent,\n PepDateFilterComponent,\n PepMultiSelectFilterComponent,\n PepNumberFilterComponent\n ],\n declarations: [\n // BaseFilterComponent,\n PepSmartFiltersComponent,\n PepFilterActionsComponent,\n PepTextFilterComponent,\n PepBooleanFilterComponent,\n PepDateFilterComponent,\n PepMultiSelectFilterComponent,\n PepNumberFilterComponent\n ],\n providers: [\n FormBuilder\n ]\n})\nexport class PepSmartFiltersModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconNumberMinus,\n pepIconNumberPlus,\n ]);\n }\n}\n","import {\n IPepSmartFilterOperator,\n IPepSmartFilterOperatorUnit,\n} from './operator';\nimport {\n PepSmartFilterComponentType,\n PepSmartFilterType,\n PepSmartFilterOperatorType,\n PepSmartFilterOperatorUnitType,\n} from './type';\n\nexport interface IPepSmartFilterFieldOption {\n value: string;\n count?: number;\n}\n\nexport interface IPepSmartFilterField {\n id: string;\n name: string;\n isOpen?: boolean;\n options?: IPepSmartFilterFieldOption[];\n operators?: PepSmartFilterOperatorType[];\n operatorUnits?: PepSmartFilterOperatorUnitType[];\n}\n\n// Base field\n// ------------------------------\nexport abstract class PepSmartFilterBaseField implements IPepSmartFilterField {\n id: string;\n name: string;\n isOpen?: boolean;\n options?: IPepSmartFilterFieldOption[];\n operators?: PepSmartFilterOperatorType[];\n operatorUnits?: PepSmartFilterOperatorUnitType[];\n\n protected _componentType: PepSmartFilterComponentType;\n get componentType(): PepSmartFilterComponentType {\n return this._componentType;\n }\n\n private _type: PepSmartFilterType;\n get type(): PepSmartFilterType {\n return this._type;\n }\n\n constructor(field: IPepSmartFilterField) {\n this.id = field.id;\n this.name = field.name;\n this.isOpen = field.isOpen;\n this.options = field.options;\n this.operators = field.operators;\n this.operatorUnits = field.operatorUnits;\n\n this._type = this.getType();\n }\n\n protected abstract getType(): PepSmartFilterType;\n}\n// Text field\n// ------------------------------\nexport class PepSmartFilterTextField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'text';\n }\n\n getType(): PepSmartFilterType {\n return 'text';\n }\n}\n\n\n// Boolean field\n// ------------------------------\nexport class PepSmartFilterBooleanField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'boolean';\n }\n\n getType(): PepSmartFilterType {\n return 'boolean';\n }\n}\n\n// Date fields\n// ------------------------------\nexport abstract class PepSmartFilterDateBaseField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'date';\n }\n}\nexport class PepSmartFilterDateField extends PepSmartFilterDateBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'date';\n }\n}\nexport class PepSmartFilterDateTimeField extends PepSmartFilterDateBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'date-time';\n }\n}\n\n// Multi select field\n// ------------------------------\nexport class PepSmartFilterMultiSelectField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'multi-select';\n }\n\n getType(): PepSmartFilterType {\n return 'multi-select';\n }\n}\n\n// Number fields\n// ------------------------------\nexport abstract class PepSmartFilterNumberBaseField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'number';\n }\n}\nexport class PepSmartFilterIntField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'int';\n }\n}\nexport class PepSmartFilterRealField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'real';\n }\n}\nexport class PepSmartFilterCurrencyField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'currency';\n }\n}\nexport class PepSmartFilterPercentageField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'percentage';\n }\n}\n","import {\n IPepSmartFilterField,\n PepSmartFilterBaseField,\n PepSmartFilterTextField,\n PepSmartFilterBooleanField,\n PepSmartFilterDateField,\n PepSmartFilterMultiSelectField,\n PepSmartFilterIntField,\n PepSmartFilterDateTimeField,\n PepSmartFilterPercentageField,\n PepSmartFilterCurrencyField,\n PepSmartFilterRealField,\n} from './field';\nimport { IPepSmartFilterData } from './filter';\nimport { IPepSmartFilterOperator, IPepSmartFilterOperatorUnit } from './operator';\nimport { PepSmartFilterType } from './type';\n\nfunction createTextSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterTextField(data);\n}\n\nfunction createBooleanSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterBooleanField(data);\n}\n\nfunction createDateSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterDateField(data);\n}\n\nfunction createDateTimeSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterDateTimeField(data);\n}\n\nfunction createMultiSelectSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterMultiSelectField(data);\n}\n\nfunction createIntSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterIntField(data);\n}\n\nfunction createRealSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterRealField(data);\n}\n\nfunction createCurrencySmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterCurrencyField(data);\n}\n\nfunction createPercentageSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterPercentageField(data);\n}\n\nexport function createSmartFilterField(\n data: IPepSmartFilterField,\n type: PepSmartFilterType\n): PepSmartFilterBaseField {\n let field: PepSmartFilterBaseField;\n\n switch (type) {\n case 'text':\n field = createTextSmartFilterField(data);\n break;\n case 'boolean':\n field = createBooleanSmartFilterField(data);\n break;\n case 'date':\n field = createDateSmartFilterField(data);\n break;\n case 'date-time':\n field = createDateTimeSmartFilterField(data);\n break;\n case 'multi-select':\n field = createMultiSelectSmartFilterField(data);\n break;\n case 'int':\n field = createIntSmartFilterField(data);\n break;\n case 'real':\n field = createRealSmartFilterField(data);\n break;\n case 'currency':\n field = createCurrencySmartFilterField(data);\n break;\n case 'percentage':\n field = createPercentageSmartFilterField(data);\n break;\n default:\n field = createMultiSelectSmartFilterField(data);\n break;\n }\n\n return field;\n}\n\nexport function createSmartFilter(\n fieldId: string,\n operator: IPepSmartFilterOperator,\n first: any,\n second?: any,\n operatorUnit?: IPepSmartFilterOperatorUnit\n): IPepSmartFilterData {\n return {\n fieldId: fieldId,\n operator: operator,\n operatorUnit: operatorUnit,\n value: {\n first: first,\n second: second,\n },\n };\n}","/*\n * Public API Surface of ngx-lib/smart-filters\n */\nexport * from './smart-filters.module';\nexport * from './smart-filters.component';\nexport * from './common/model/base-filter-component';\nexport * from './common/filter-actions.component';\nexport * from './boolean-filter/boolean-filter.component';\nexport * from './date-filter/date-filter.component';\nexport * from './multi-select-filter/multi-select-filter.component';\nexport * from './number-filter/number-filter.component';\nexport * from './text-filter/text-filter.component';\n\n// Model\nexport * from './common/model/creator';\nexport * from './common/model/field';\nexport * from './common/model/filter';\nexport * from './common/model/operator';\nexport * from './common/model/type';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i6","i4","i5","i7","i8","i10","i8.PepTextFilterComponent","i9.PepBooleanFilterComponent","i10.PepDateFilterComponent","i11.PepMultiSelectFilterComponent","i12.PepNumberFilterComponent","i13"],"mappings":"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"}