@pepperi-addons/ngx-lib 0.2.60 → 0.2.61-query-builder.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 (521) hide show
  1. package/README.md +39 -39
  2. package/address/address.component.theme.scss +5 -8
  3. package/address/pepperi-addons-ngx-lib-address.metadata.json +1 -1
  4. package/attachment/attachment.component.d.ts +1 -0
  5. package/attachment/attachment.component.theme.scss +1 -3
  6. package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +1 -1
  7. package/bread-crumbs/bread-crumbs.component.theme.scss +9 -9
  8. package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.metadata.json +1 -1
  9. package/bundles/pepperi-addons-ngx-lib-address.umd.js +2 -2
  10. package/bundles/pepperi-addons-ngx-lib-address.umd.js.map +1 -1
  11. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +7 -2
  12. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js.map +1 -1
  13. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js +2 -2
  14. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js.map +1 -1
  15. package/bundles/pepperi-addons-ngx-lib-button.umd.js +2 -2
  16. package/bundles/pepperi-addons-ngx-lib-button.umd.js.map +1 -1
  17. package/bundles/pepperi-addons-ngx-lib-carousel.umd.js.map +1 -1
  18. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +5 -2
  19. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +1 -1
  20. package/bundles/pepperi-addons-ngx-lib-color.umd.js +9 -4
  21. package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +1 -1
  22. package/bundles/pepperi-addons-ngx-lib-date.umd.js +6 -4
  23. package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
  24. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js +3 -3
  25. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js.map +1 -1
  26. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js +2 -2
  27. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js.map +1 -1
  28. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +2 -2
  29. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js.map +1 -1
  30. package/bundles/pepperi-addons-ngx-lib-form.umd.js +27 -24
  31. package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
  32. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js +2 -2
  33. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js.map +1 -1
  34. package/bundles/pepperi-addons-ngx-lib-icon.umd.js.map +1 -1
  35. package/bundles/pepperi-addons-ngx-lib-image.umd.js +7 -2
  36. package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
  37. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +7 -2
  38. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
  39. package/bundles/pepperi-addons-ngx-lib-list.umd.js +9 -9
  40. package/bundles/pepperi-addons-ngx-lib-list.umd.js.map +1 -1
  41. package/bundles/pepperi-addons-ngx-lib-menu.umd.js +2 -2
  42. package/bundles/pepperi-addons-ngx-lib-menu.umd.js.map +1 -1
  43. package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js +1 -1
  44. package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js.map +1 -1
  45. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +7 -2
  46. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
  47. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +1101 -0
  48. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +1 -0
  49. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +7 -2
  50. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +1 -1
  51. package/bundles/pepperi-addons-ngx-lib-search.umd.js +1 -1
  52. package/bundles/pepperi-addons-ngx-lib-search.umd.js.map +1 -1
  53. package/bundles/pepperi-addons-ngx-lib-select.umd.js +7 -2
  54. package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
  55. package/bundles/pepperi-addons-ngx-lib-separator.umd.js +10 -2
  56. package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +1 -1
  57. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js +2 -2
  58. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js.map +1 -1
  59. package/bundles/pepperi-addons-ngx-lib-signature.umd.js +7 -2
  60. package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +1 -1
  61. package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js +1 -1
  62. package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js.map +1 -1
  63. package/bundles/pepperi-addons-ngx-lib-slider.umd.js +2 -2
  64. package/bundles/pepperi-addons-ngx-lib-slider.umd.js.map +1 -1
  65. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +308 -41
  66. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
  67. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +7 -2
  68. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +1 -1
  69. package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js +1 -1
  70. package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js.map +1 -1
  71. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +6 -4
  72. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +1 -1
  73. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js +2 -2
  74. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js.map +1 -1
  75. package/bundles/pepperi-addons-ngx-lib.umd.js +38 -36
  76. package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
  77. package/button/button.component.theme.scss +0 -2
  78. package/button/pepperi-addons-ngx-lib-button.metadata.json +1 -1
  79. package/checkbox/checkbox.component.theme.scss +0 -2
  80. package/checkbox/pepperi-addons-ngx-lib-checkbox.metadata.json +1 -1
  81. package/color/color-picker.component.theme.scss +169 -175
  82. package/color/color.component.d.ts +1 -0
  83. package/color/color.component.theme.scss +0 -7
  84. package/color/pepperi-addons-ngx-lib-color.metadata.json +1 -1
  85. package/core/common/services/addon.service.d.ts +1 -2
  86. package/core/common/services/file.service.d.ts +4 -4
  87. package/core/customization/customization.service.d.ts +1 -0
  88. package/date/date.component.theme.scss +0 -169
  89. package/date/pepperi-addons-ngx-lib-date.metadata.json +1 -1
  90. package/dialog/dialog.component.theme.scss +5 -5
  91. package/dialog/pepperi-addons-ngx-lib-dialog.metadata.json +1 -1
  92. package/esm2015/address/address.component.js +3 -3
  93. package/esm2015/address/address.module.js +1 -1
  94. package/esm2015/address/public-api.js +1 -1
  95. package/esm2015/attachment/attachment.component.js +8 -3
  96. package/esm2015/attachment/attachment.module.js +1 -1
  97. package/esm2015/attachment/public-api.js +1 -1
  98. package/esm2015/bread-crumbs/bread-crumbs.component.js +3 -3
  99. package/esm2015/bread-crumbs/bread-crumbs.model.js +1 -1
  100. package/esm2015/bread-crumbs/bread-crumbs.module.js +1 -1
  101. package/esm2015/bread-crumbs/public-api.js +1 -1
  102. package/esm2015/button/button.component.js +3 -3
  103. package/esm2015/button/button.model.js +1 -1
  104. package/esm2015/button/button.module.js +1 -1
  105. package/esm2015/button/public-api.js +1 -1
  106. package/esm2015/carousel/carousel-item.directive.js +1 -1
  107. package/esm2015/carousel/carousel.component.js +15 -15
  108. package/esm2015/carousel/carousel.module.js +1 -1
  109. package/esm2015/carousel/public-api.js +1 -1
  110. package/esm2015/checkbox/checkbox.component.js +6 -3
  111. package/esm2015/checkbox/checkbox.module.js +1 -1
  112. package/esm2015/checkbox/public-api.js +1 -1
  113. package/esm2015/color/color-picker.component.js +29 -29
  114. package/esm2015/color/color.component.js +8 -3
  115. package/esm2015/color/color.model.js +1 -1
  116. package/esm2015/color/color.module.js +1 -1
  117. package/esm2015/color/public-api.js +1 -1
  118. package/esm2015/core/clipboard/clipboard.directive.js +1 -1
  119. package/esm2015/core/clipboard/clipboard.service.js +1 -1
  120. package/esm2015/core/clipboard/index.js +1 -1
  121. package/esm2015/core/clipboard/public-api.js +1 -1
  122. package/esm2015/core/common/directives/auto-width.directive.js +1 -1
  123. package/esm2015/core/common/directives/button-blur.directive.js +1 -1
  124. package/esm2015/core/common/directives/button-loader.directive.js +1 -1
  125. package/esm2015/core/common/directives/data-qa.directive.js +1 -1
  126. package/esm2015/core/common/directives/index.js +1 -1
  127. package/esm2015/core/common/directives/menu-blur.directive.js +1 -1
  128. package/esm2015/core/common/directives/prevent-multi-click.directive.js +1 -1
  129. package/esm2015/core/common/directives/public-api.js +1 -1
  130. package/esm2015/core/common/index.js +1 -1
  131. package/esm2015/core/common/model/index.js +1 -1
  132. package/esm2015/core/common/model/papi.model.js +1 -1
  133. package/esm2015/core/common/model/public-api.js +1 -1
  134. package/esm2015/core/common/model/utilities.model.js +1 -1
  135. package/esm2015/core/common/model/wapi.model.js +1 -1
  136. package/esm2015/core/common/pipes/common-pipes.js +1 -1
  137. package/esm2015/core/common/pipes/index.js +1 -1
  138. package/esm2015/core/common/pipes/public-api.js +1 -1
  139. package/esm2015/core/common/public-api.js +1 -1
  140. package/esm2015/core/common/services/addon.service.js +4 -19
  141. package/esm2015/core/common/services/color.service.js +1 -1
  142. package/esm2015/core/common/services/cookie.service.js +1 -1
  143. package/esm2015/core/common/services/data-convertor.service.js +1 -1
  144. package/esm2015/core/common/services/file.service.js +9 -9
  145. package/esm2015/core/common/services/index.js +1 -1
  146. package/esm2015/core/common/services/jwt-helper.service.js +1 -1
  147. package/esm2015/core/common/services/public-api.js +1 -1
  148. package/esm2015/core/common/services/session.service.js +1 -1
  149. package/esm2015/core/common/services/utilities.service.js +25 -4
  150. package/esm2015/core/common/services/validator.service.js +1 -1
  151. package/esm2015/core/common/services/window-scrolling.service.js +5 -5
  152. package/esm2015/core/customization/customization.model.js +1 -1
  153. package/esm2015/core/customization/customization.service.js +4 -2
  154. package/esm2015/core/customization/index.js +1 -1
  155. package/esm2015/core/customization/public-api.js +1 -1
  156. package/esm2015/core/http/index.js +1 -1
  157. package/esm2015/core/http/interceptors/error.interceptor.js +1 -1
  158. package/esm2015/core/http/interceptors/index.js +1 -1
  159. package/esm2015/core/http/interceptors/loader.interceptor.js +1 -1
  160. package/esm2015/core/http/interceptors/profiler.interceptor.js +1 -1
  161. package/esm2015/core/http/public-api.js +1 -1
  162. package/esm2015/core/http/services/http.service.js +1 -1
  163. package/esm2015/core/http/services/loader.service.js +1 -1
  164. package/esm2015/core/index.js +1 -1
  165. package/esm2015/core/layout/index.js +1 -1
  166. package/esm2015/core/layout/layout.service.js +1 -1
  167. package/esm2015/core/layout/public-api.js +1 -1
  168. package/esm2015/core/layout/rtl.directive.js +1 -1
  169. package/esm2015/core/portal/attach.directive.js +1 -1
  170. package/esm2015/core/portal/index.js +1 -1
  171. package/esm2015/core/portal/portal.service.js +1 -1
  172. package/esm2015/core/portal/public-api.js +1 -1
  173. package/esm2015/core/portal/target.directive.js +1 -1
  174. package/esm2015/core/public-api.js +1 -1
  175. package/esm2015/core/scroll-to/index.js +1 -1
  176. package/esm2015/core/scroll-to/public-api.js +1 -1
  177. package/esm2015/core/scroll-to/scroll-to.service.js +1 -1
  178. package/esm2015/date/date.component.js +7 -5
  179. package/esm2015/date/date.module.js +1 -1
  180. package/esm2015/date/public-api.js +1 -1
  181. package/esm2015/dialog/default-dialog.component.js +2 -2
  182. package/esm2015/dialog/dialog.component.js +3 -3
  183. package/esm2015/dialog/dialog.model.js +1 -1
  184. package/esm2015/dialog/dialog.module.js +1 -1
  185. package/esm2015/dialog/dialog.service.js +1 -1
  186. package/esm2015/dialog/public-api.js +1 -1
  187. package/esm2015/field-title/field-title.component.js +3 -3
  188. package/esm2015/field-title/field-title.module.js +1 -1
  189. package/esm2015/field-title/public-api.js +1 -1
  190. package/esm2015/files-uploader/files-uploader.component.js +3 -3
  191. package/esm2015/files-uploader/files-uploader.module.js +1 -1
  192. package/esm2015/files-uploader/public-api.js +1 -1
  193. package/esm2015/form/field-generator.component.js +2 -2
  194. package/esm2015/form/form.component.js +2 -2
  195. package/esm2015/form/form.module.js +1 -1
  196. package/esm2015/form/indicators.component.js +3 -3
  197. package/esm2015/form/internal-button.component.js +21 -18
  198. package/esm2015/form/internal-carusel.component.js +2 -2
  199. package/esm2015/form/internal-carusel.service.js +1 -1
  200. package/esm2015/form/internal-list.component.js +2 -2
  201. package/esm2015/form/internal-menu.component.js +2 -2
  202. package/esm2015/form/internal-page.component.js +2 -2
  203. package/esm2015/form/internal-page.service.js +1 -1
  204. package/esm2015/form/public-api.js +1 -1
  205. package/esm2015/group-buttons/group-buttons.component.js +3 -3
  206. package/esm2015/group-buttons/group-buttons.module.js +1 -1
  207. package/esm2015/group-buttons/public-api.js +1 -1
  208. package/esm2015/icon/icon-generated-all.model.js +1 -1
  209. package/esm2015/icon/icon-generated.model.js +1 -1
  210. package/esm2015/icon/icon-registry.service.js +2 -2
  211. package/esm2015/icon/icon.component.js +1 -1
  212. package/esm2015/icon/icon.module.js +1 -1
  213. package/esm2015/icon/public-api.js +1 -1
  214. package/esm2015/image/image.component.js +8 -3
  215. package/esm2015/image/image.module.js +1 -1
  216. package/esm2015/image/public-api.js +1 -1
  217. package/esm2015/images-filmstrip/images-filmstrip.component.js +8 -3
  218. package/esm2015/images-filmstrip/images-filmstrip.module.js +1 -1
  219. package/esm2015/images-filmstrip/public-api.js +1 -1
  220. package/esm2015/list/list-actions.component.js +2 -2
  221. package/esm2015/list/list-carousel.component.js +2 -2
  222. package/esm2015/list/list-chooser.component.js +2 -2
  223. package/esm2015/list/list-pager.component.js +2 -2
  224. package/esm2015/list/list-sorting.component.js +2 -2
  225. package/esm2015/list/list-total.component.js +3 -3
  226. package/esm2015/list/list-views.component.js +2 -2
  227. package/esm2015/list/list.component.js +2 -2
  228. package/esm2015/list/list.model.js +1 -1
  229. package/esm2015/list/list.module.js +1 -1
  230. package/esm2015/list/public-api.js +1 -1
  231. package/esm2015/menu/menu-item.component.js +2 -2
  232. package/esm2015/menu/menu.component.js +2 -2
  233. package/esm2015/menu/menu.model.js +1 -1
  234. package/esm2015/menu/menu.module.js +1 -1
  235. package/esm2015/menu/public-api.js +1 -1
  236. package/esm2015/ngx-lib.module.js +1 -1
  237. package/esm2015/page-layout/page-layout.component.js +2 -2
  238. package/esm2015/page-layout/page-layout.module.js +1 -1
  239. package/esm2015/page-layout/public-api.js +1 -1
  240. package/esm2015/public-api.js +1 -1
  241. package/esm2015/quantity-selector/public-api.js +1 -1
  242. package/esm2015/quantity-selector/quantity-selector-validation.directive.js +1 -1
  243. package/esm2015/quantity-selector/quantity-selector.component.js +8 -3
  244. package/esm2015/quantity-selector/quantity-selector.module.js +1 -1
  245. package/esm2015/quantity-selector/quantity-selector.pipes.js +1 -1
  246. package/esm2015/query-builder/common/model/filter.js +2 -0
  247. package/esm2015/query-builder/common/model/legacy.js +2 -0
  248. package/esm2015/query-builder/common/model/operator-unit.js +42 -0
  249. package/esm2015/query-builder/common/model/operator.js +207 -0
  250. package/esm2015/query-builder/common/model/structure.js +2 -0
  251. package/esm2015/query-builder/common/model/type-map.js +27 -0
  252. package/esm2015/query-builder/common/model/type.js +6 -0
  253. package/esm2015/query-builder/common/services/output-query.service.js +111 -0
  254. package/esm2015/query-builder/common/services/type-convertor.service.js +40 -0
  255. package/esm2015/query-builder/pepperi-addons-ngx-lib-query-builder.js +9 -0
  256. package/esm2015/query-builder/public-api.js +8 -0
  257. package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +115 -0
  258. package/esm2015/query-builder/query-builder-section/query-builder-section.component.js +64 -0
  259. package/esm2015/query-builder/query-builder.component.js +104 -0
  260. package/esm2015/query-builder/query-builder.module.js +35 -0
  261. package/esm2015/query-builder/query-builder.service.js +280 -0
  262. package/esm2015/rich-html-textarea/public-api.js +1 -1
  263. package/esm2015/rich-html-textarea/rich-html-textarea.component.js +8 -3
  264. package/esm2015/rich-html-textarea/rich-html-textarea.module.js +1 -1
  265. package/esm2015/search/public-api.js +1 -1
  266. package/esm2015/search/search.component.js +2 -2
  267. package/esm2015/search/search.model.js +1 -1
  268. package/esm2015/search/search.module.js +1 -1
  269. package/esm2015/select/public-api.js +1 -1
  270. package/esm2015/select/select.component.js +8 -3
  271. package/esm2015/select/select.module.js +1 -1
  272. package/esm2015/separator/public-api.js +1 -1
  273. package/esm2015/separator/separator.component.js +11 -3
  274. package/esm2015/separator/separator.module.js +1 -1
  275. package/esm2015/side-bar/public-api.js +1 -1
  276. package/esm2015/side-bar/side-bar.component.js +3 -3
  277. package/esm2015/side-bar/side-bar.model.js +1 -1
  278. package/esm2015/side-bar/side-bar.module.js +1 -1
  279. package/esm2015/signature/public-api.js +1 -1
  280. package/esm2015/signature/signature.component.js +8 -3
  281. package/esm2015/signature/signature.module.js +1 -1
  282. package/esm2015/size-detector/public-api.js +1 -1
  283. package/esm2015/size-detector/size-detector.component.js +2 -2
  284. package/esm2015/size-detector/size-detector.module.js +1 -1
  285. package/esm2015/slider/public-api.js +1 -1
  286. package/esm2015/slider/slider.component.js +3 -3
  287. package/esm2015/slider/slider.module.js +1 -1
  288. package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +23 -3
  289. package/esm2015/smart-filters/common/filter-actions.component.js +2 -2
  290. package/esm2015/smart-filters/common/model/base-filter-component.js +35 -8
  291. package/esm2015/smart-filters/common/model/creator.js +8 -2
  292. package/esm2015/smart-filters/common/model/field.js +12 -1
  293. package/esm2015/smart-filters/common/model/filter.js +1 -1
  294. package/esm2015/smart-filters/common/model/operator.js +8 -8
  295. package/esm2015/smart-filters/common/model/type.js +1 -1
  296. package/esm2015/smart-filters/date-filter/date-filter.component.js +45 -2
  297. package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +53 -14
  298. package/esm2015/smart-filters/number-filter/number-filter.component.js +27 -2
  299. package/esm2015/smart-filters/public-api.js +2 -1
  300. package/esm2015/smart-filters/smart-filters.component.js +3 -3
  301. package/esm2015/smart-filters/smart-filters.module.js +16 -3
  302. package/esm2015/smart-filters/text-filter/text-filter.component.js +79 -0
  303. package/esm2015/textarea/public-api.js +1 -1
  304. package/esm2015/textarea/textarea.component.js +8 -3
  305. package/esm2015/textarea/textarea.module.js +1 -1
  306. package/esm2015/textbox/public-api.js +1 -1
  307. package/esm2015/textbox/textbox-validation.directive.js +1 -1
  308. package/esm2015/textbox/textbox.component.js +7 -5
  309. package/esm2015/textbox/textbox.module.js +1 -1
  310. package/esm2015/textbox-icon/public-api.js +1 -1
  311. package/esm2015/textbox-icon/textbox-icon.component.js +2 -2
  312. package/esm2015/textbox-icon/textbox-icon.module.js +1 -1
  313. package/esm2015/top-bar/public-api.js +1 -1
  314. package/esm2015/top-bar/top-bar.component.js +3 -3
  315. package/esm2015/top-bar/top-bar.model.js +1 -1
  316. package/esm2015/top-bar/top-bar.module.js +1 -1
  317. package/fesm2015/pepperi-addons-ngx-lib-address.js +2 -2
  318. package/fesm2015/pepperi-addons-ngx-lib-address.js.map +1 -1
  319. package/fesm2015/pepperi-addons-ngx-lib-attachment.js +7 -2
  320. package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +1 -1
  321. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js +2 -2
  322. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js.map +1 -1
  323. package/fesm2015/pepperi-addons-ngx-lib-button.js +2 -2
  324. package/fesm2015/pepperi-addons-ngx-lib-button.js.map +1 -1
  325. package/fesm2015/pepperi-addons-ngx-lib-carousel.js +14 -14
  326. package/fesm2015/pepperi-addons-ngx-lib-carousel.js.map +1 -1
  327. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +5 -2
  328. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +1 -1
  329. package/fesm2015/pepperi-addons-ngx-lib-color.js +35 -30
  330. package/fesm2015/pepperi-addons-ngx-lib-color.js.map +1 -1
  331. package/fesm2015/pepperi-addons-ngx-lib-date.js +6 -4
  332. package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
  333. package/fesm2015/pepperi-addons-ngx-lib-dialog.js +3 -3
  334. package/fesm2015/pepperi-addons-ngx-lib-dialog.js.map +1 -1
  335. package/fesm2015/pepperi-addons-ngx-lib-field-title.js +2 -2
  336. package/fesm2015/pepperi-addons-ngx-lib-field-title.js.map +1 -1
  337. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +2 -2
  338. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js.map +1 -1
  339. package/fesm2015/pepperi-addons-ngx-lib-form.js +27 -24
  340. package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
  341. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js +2 -2
  342. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js.map +1 -1
  343. package/fesm2015/pepperi-addons-ngx-lib-icon.js +1 -1
  344. package/fesm2015/pepperi-addons-ngx-lib-icon.js.map +1 -1
  345. package/fesm2015/pepperi-addons-ngx-lib-image.js +7 -2
  346. package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
  347. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +7 -2
  348. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
  349. package/fesm2015/pepperi-addons-ngx-lib-list.js +9 -9
  350. package/fesm2015/pepperi-addons-ngx-lib-list.js.map +1 -1
  351. package/fesm2015/pepperi-addons-ngx-lib-menu.js +2 -2
  352. package/fesm2015/pepperi-addons-ngx-lib-menu.js.map +1 -1
  353. package/fesm2015/pepperi-addons-ngx-lib-page-layout.js +1 -1
  354. package/fesm2015/pepperi-addons-ngx-lib-page-layout.js.map +1 -1
  355. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +7 -2
  356. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
  357. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +1011 -0
  358. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +1 -0
  359. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +7 -2
  360. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +1 -1
  361. package/fesm2015/pepperi-addons-ngx-lib-search.js +1 -1
  362. package/fesm2015/pepperi-addons-ngx-lib-search.js.map +1 -1
  363. package/fesm2015/pepperi-addons-ngx-lib-select.js +7 -2
  364. package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
  365. package/fesm2015/pepperi-addons-ngx-lib-separator.js +10 -2
  366. package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +1 -1
  367. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js +2 -2
  368. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js.map +1 -1
  369. package/fesm2015/pepperi-addons-ngx-lib-signature.js +7 -2
  370. package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +1 -1
  371. package/fesm2015/pepperi-addons-ngx-lib-size-detector.js +1 -1
  372. package/fesm2015/pepperi-addons-ngx-lib-size-detector.js.map +1 -1
  373. package/fesm2015/pepperi-addons-ngx-lib-slider.js +2 -2
  374. package/fesm2015/pepperi-addons-ngx-lib-slider.js.map +1 -1
  375. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +295 -38
  376. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
  377. package/fesm2015/pepperi-addons-ngx-lib-textarea.js +7 -2
  378. package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +1 -1
  379. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js +1 -1
  380. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js.map +1 -1
  381. package/fesm2015/pepperi-addons-ngx-lib-textbox.js +6 -4
  382. package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +1 -1
  383. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js +2 -2
  384. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js.map +1 -1
  385. package/fesm2015/pepperi-addons-ngx-lib.js +42 -34
  386. package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
  387. package/field-title/field-title.component.theme.scss +0 -2
  388. package/field-title/pepperi-addons-ngx-lib-field-title.metadata.json +1 -1
  389. package/files-uploader/files-uploader.component.theme.scss +0 -2
  390. package/files-uploader/pepperi-addons-ngx-lib-files-uploader.metadata.json +1 -1
  391. package/form/indicators.component.theme.scss +7 -7
  392. package/form/internal-button.component.d.ts +0 -1
  393. package/form/pepperi-addons-ngx-lib-form.metadata.json +1 -1
  394. package/group-buttons/group-buttons.component.theme.scss +15 -15
  395. package/group-buttons/pepperi-addons-ngx-lib-group-buttons.metadata.json +1 -1
  396. package/image/image.component.d.ts +1 -0
  397. package/image/image.component.theme.scss +33 -35
  398. package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
  399. package/images-filmstrip/images-filmstrip.component.d.ts +1 -0
  400. package/images-filmstrip/images-filmstrip.component.theme.scss +33 -32
  401. package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
  402. package/list/list-total.component.theme.scss +10 -10
  403. package/list/pepperi-addons-ngx-lib-list.metadata.json +1 -1
  404. package/menu/pepperi-addons-ngx-lib-menu.metadata.json +1 -1
  405. package/package.json +5 -5
  406. package/page-layout/page-layout.component.theme.scss +7 -7
  407. package/page-layout/pepperi-addons-ngx-lib-page-layout.metadata.json +1 -1
  408. package/pepperi-addons-ngx-lib.metadata.json +1 -1
  409. package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +1 -1
  410. package/quantity-selector/quantity-selector.component.d.ts +1 -0
  411. package/quantity-selector/quantity-selector.component.theme.scss +77 -77
  412. package/query-builder/common/model/filter.d.ts +6 -0
  413. package/query-builder/common/model/legacy.d.ts +26 -0
  414. package/query-builder/common/model/operator-unit.d.ts +13 -0
  415. package/query-builder/common/model/operator.d.ts +21 -0
  416. package/query-builder/common/model/structure.d.ts +4 -0
  417. package/query-builder/common/model/type-map.d.ts +12 -0
  418. package/query-builder/common/model/type.d.ts +4 -0
  419. package/query-builder/common/services/output-query.service.d.ts +44 -0
  420. package/query-builder/common/services/type-convertor.service.d.ts +10 -0
  421. package/query-builder/package.json +14 -0
  422. package/query-builder/pepperi-addons-ngx-lib-query-builder.d.ts +8 -0
  423. package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +1 -0
  424. package/query-builder/public-api.d.ts +4 -0
  425. package/query-builder/query-builder-item/query-builder-item.component.d.ts +37 -0
  426. package/query-builder/query-builder-section/query-builder-section.component.d.ts +27 -0
  427. package/query-builder/query-builder-section/query-builder-section.component.theme.scss +7 -0
  428. package/query-builder/query-builder.component.d.ts +35 -0
  429. package/query-builder/query-builder.module.d.ts +2 -0
  430. package/query-builder/query-builder.service.d.ts +94 -0
  431. package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +1 -1
  432. package/rich-html-textarea/rich-html-textarea.component.d.ts +1 -0
  433. package/rich-html-textarea/rich-html-textarea.component.theme.scss +241 -237
  434. package/search/pepperi-addons-ngx-lib-search.metadata.json +1 -1
  435. package/select/pepperi-addons-ngx-lib-select.metadata.json +1 -1
  436. package/select/select.component.d.ts +1 -0
  437. package/select/select.component.theme.scss +0 -2
  438. package/separator/pepperi-addons-ngx-lib-separator.metadata.json +1 -1
  439. package/separator/separator.component.theme.scss +2 -2
  440. package/side-bar/pepperi-addons-ngx-lib-side-bar.metadata.json +1 -1
  441. package/side-bar/side-bar.component.theme.scss +26 -25
  442. package/signature/pepperi-addons-ngx-lib-signature.metadata.json +1 -1
  443. package/signature/signature.component.d.ts +1 -0
  444. package/signature/signature.component.theme.scss +8 -28
  445. package/size-detector/pepperi-addons-ngx-lib-size-detector.metadata.json +1 -1
  446. package/slider/pepperi-addons-ngx-lib-slider.metadata.json +1 -1
  447. package/slider/slider.component.theme.scss +66 -65
  448. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +6 -1
  449. package/smart-filters/common/model/base-filter-component.d.ts +7 -0
  450. package/smart-filters/common/model/field.d.ts +4 -0
  451. package/smart-filters/common/model/operator.d.ts +1 -0
  452. package/smart-filters/common/model/type.d.ts +2 -2
  453. package/smart-filters/date-filter/date-filter.component.d.ts +8 -1
  454. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +6 -0
  455. package/smart-filters/number-filter/number-filter.component.d.ts +5 -0
  456. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
  457. package/smart-filters/public-api.d.ts +1 -0
  458. package/smart-filters/smart-filters.component.theme.scss +9 -10
  459. package/smart-filters/text-filter/text-filter.component.d.ts +17 -0
  460. package/src/assets/i18n/de.ngx-lib.json +77 -77
  461. package/src/assets/i18n/en.ngx-lib.json +139 -138
  462. package/src/assets/i18n/es.ngx-lib.json +77 -77
  463. package/src/assets/i18n/fr.ngx-lib.json +78 -78
  464. package/src/assets/i18n/he.ngx-lib.json +78 -78
  465. package/src/assets/i18n/hu.ngx-lib.json +78 -78
  466. package/src/assets/i18n/it.ngx-lib.json +78 -78
  467. package/src/assets/i18n/ja.ngx-lib.json +78 -78
  468. package/src/assets/i18n/nl.ngx-lib.json +78 -78
  469. package/src/assets/i18n/pl.ngx-lib.json +78 -78
  470. package/src/assets/i18n/pt.ngx-lib.json +78 -78
  471. package/src/assets/i18n/ru.ngx-lib.json +78 -78
  472. package/src/assets/i18n/zh.ngx-lib.json +76 -76
  473. package/src/assets/images/no-image.svg +41 -41
  474. package/src/core/style/abstracts/breakpoints.scss +37 -35
  475. package/src/core/style/abstracts/functions.scss +439 -422
  476. package/src/core/style/abstracts/mixins.scss +800 -797
  477. package/src/core/style/abstracts/variables.scss +545 -545
  478. package/src/core/style/base/base.scss +874 -873
  479. package/src/core/style/base/grids.scss +4 -4
  480. package/src/core/style/base/helpers.scss +70 -70
  481. package/src/core/style/base/typography.scss +259 -255
  482. package/src/core/style/components/button.scss +346 -349
  483. package/src/core/style/components/checkbox.scss +476 -473
  484. package/src/core/style/components/datetime.scss +182 -22
  485. package/src/core/style/components/file.scss +223 -219
  486. package/src/core/style/components/general.scss +1002 -1086
  487. package/src/core/style/components/input.scss +98 -94
  488. package/src/core/style/components/quantity-selector.scss +17 -14
  489. package/src/core/style/components/radio-button.scss +171 -168
  490. package/src/core/style/components/select.scss +187 -185
  491. package/src/core/style/components/signature.scss +14 -12
  492. package/src/core/style/components/splitter.scss +67 -64
  493. package/src/core/style/components/textarea.scss +198 -195
  494. package/src/core/style/themes/black-theme.scss +7 -7
  495. package/src/core/style/themes/default-theme.scss +144 -144
  496. package/src/core/style/themes/light-theme.scss +7 -7
  497. package/src/core/style/themes/nature-theme.scss +7 -7
  498. package/src/core/style/vendors/normalize.scss +497 -497
  499. package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +1 -1
  500. package/textarea/textarea.component.d.ts +1 -0
  501. package/textarea/textarea.component.theme.scss +2 -2
  502. package/textbox/pepperi-addons-ngx-lib-textbox.metadata.json +1 -1
  503. package/textbox/textbox.component.theme.scss +3 -3
  504. package/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.metadata.json +1 -1
  505. package/theming.scss +125 -220
  506. package/top-bar/pepperi-addons-ngx-lib-top-bar.metadata.json +1 -1
  507. package/top-bar/top-bar.component.theme.scss +9 -9
  508. package/form/form.component.theme.scss +0 -2
  509. package/form/internal-button.component.theme.scss +0 -2
  510. package/form/internal-menu.component.theme.scss +0 -3
  511. package/list/list-actions.component.theme.scss +0 -3
  512. package/list/list-carousel.component.theme.scss +0 -9
  513. package/list/list-chooser.component.theme.scss +0 -3
  514. package/list/list-pager.component.theme.scss +0 -3
  515. package/list/list-sorting.component.theme.scss +0 -3
  516. package/list/list-views.component.theme.scss +0 -3
  517. package/list/list.component.theme.scss +0 -5
  518. package/list/list_old.component.theme.scss +0 -5
  519. package/menu/menu.component.theme.scss +0 -2
  520. package/search/search.component.theme.scss +0 -3
  521. package/textbox-icon/textbox-icon.component.theme.scss +0 -3
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('@angular/flex-layout'), require('@angular/material/core'), require('@angular/material/checkbox'), require('@angular/material/chips'), require('@angular/material/expansion'), require('@angular/material/icon'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/radio'), require('ngx-virtual-scroller'), require('@pepperi-addons/ngx-lib'), require('@pepperi-addons/ngx-lib/checkbox'), require('@pepperi-addons/ngx-lib/date'), require('@pepperi-addons/ngx-lib/select'), require('@pepperi-addons/ngx-lib/textbox'), require('@pepperi-addons/ngx-lib/search'), require('@pepperi-addons/ngx-lib/icon'), require('rxjs'), require('rxjs/operators'), require('@ngx-translate/core')) :
3
- typeof define === 'function' && define.amd ? define('@pepperi-addons/ngx-lib/smart-filters', ['exports', '@angular/core', '@angular/common', '@angular/forms', '@angular/flex-layout', '@angular/material/core', '@angular/material/checkbox', '@angular/material/chips', '@angular/material/expansion', '@angular/material/icon', '@angular/material/form-field', '@angular/material/input', '@angular/material/radio', 'ngx-virtual-scroller', '@pepperi-addons/ngx-lib', '@pepperi-addons/ngx-lib/checkbox', '@pepperi-addons/ngx-lib/date', '@pepperi-addons/ngx-lib/select', '@pepperi-addons/ngx-lib/textbox', '@pepperi-addons/ngx-lib/search', '@pepperi-addons/ngx-lib/icon', 'rxjs', 'rxjs/operators', '@ngx-translate/core'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['pepperi-addons'] = global['pepperi-addons'] || {}, global['pepperi-addons']['ngx-lib'] = global['pepperi-addons']['ngx-lib'] || {}, global['pepperi-addons']['ngx-lib']['smart-filters'] = {}), global.ng.core, global.ng.common, global.ng.forms, global.ng.flexLayout, global.ng.material.core, global.ng.material.checkbox, global.ng.material.chips, global.ng.material.expansion, global.ng.material.icon, global.ng.material.formField, global.ng.material.input, global.ng.material.radio, global.ngxVirtualScroller, global['pepperi-addons']['ngx-lib'], global['pepperi-addons']['ngx-lib'].checkbox, global['pepperi-addons']['ngx-lib'].date, global['pepperi-addons']['ngx-lib'].select, global['pepperi-addons']['ngx-lib'].textbox, global['pepperi-addons']['ngx-lib'].search, global['pepperi-addons']['ngx-lib'].icon, global.rxjs, global.rxjs.operators, global.translate));
5
- }(this, (function (exports, core, common, forms, flexLayout, core$2, checkbox, chips, expansion, icon$1, formField, input, radio, ngxVirtualScroller, ngxLib, checkbox$1, date, select, textbox, search, icon, rxjs, operators, core$1) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('@angular/flex-layout'), require('@angular/material/core'), require('@angular/material/checkbox'), require('@angular/material/chips'), require('@angular/material/expansion'), require('@angular/material/icon'), require('@angular/material/form-field'), require('@angular/material/input'), require('@angular/material/radio'), require('ngx-virtual-scroller'), require('@pepperi-addons/ngx-lib'), require('@pepperi-addons/ngx-lib/checkbox'), require('@pepperi-addons/ngx-lib/date'), require('@pepperi-addons/ngx-lib/select'), require('@pepperi-addons/ngx-lib/textbox'), require('@pepperi-addons/ngx-lib/search'), require('@pepperi-addons/ngx-lib/button'), require('@pepperi-addons/ngx-lib/icon'), require('@pepperi-addons/ngx-lib/group-buttons'), require('rxjs/operators'), require('rxjs'), require('@ngx-translate/core')) :
3
+ typeof define === 'function' && define.amd ? define('@pepperi-addons/ngx-lib/smart-filters', ['exports', '@angular/core', '@angular/common', '@angular/forms', '@angular/flex-layout', '@angular/material/core', '@angular/material/checkbox', '@angular/material/chips', '@angular/material/expansion', '@angular/material/icon', '@angular/material/form-field', '@angular/material/input', '@angular/material/radio', 'ngx-virtual-scroller', '@pepperi-addons/ngx-lib', '@pepperi-addons/ngx-lib/checkbox', '@pepperi-addons/ngx-lib/date', '@pepperi-addons/ngx-lib/select', '@pepperi-addons/ngx-lib/textbox', '@pepperi-addons/ngx-lib/search', '@pepperi-addons/ngx-lib/button', '@pepperi-addons/ngx-lib/icon', '@pepperi-addons/ngx-lib/group-buttons', 'rxjs/operators', 'rxjs', '@ngx-translate/core'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['pepperi-addons'] = global['pepperi-addons'] || {}, global['pepperi-addons']['ngx-lib'] = global['pepperi-addons']['ngx-lib'] || {}, global['pepperi-addons']['ngx-lib']['smart-filters'] = {}), global.ng.core, global.ng.common, global.ng.forms, global.ng.flexLayout, global.ng.material.core, global.ng.material.checkbox, global.ng.material.chips, global.ng.material.expansion, global.ng.material.icon, global.ng.material.formField, global.ng.material.input, global.ng.material.radio, global.ngxVirtualScroller, global['pepperi-addons']['ngx-lib'], global['pepperi-addons']['ngx-lib'].checkbox, global['pepperi-addons']['ngx-lib'].date, global['pepperi-addons']['ngx-lib'].select, global['pepperi-addons']['ngx-lib'].textbox, global['pepperi-addons']['ngx-lib'].search, global['pepperi-addons']['ngx-lib'].button, global['pepperi-addons']['ngx-lib'].icon, global['pepperi-addons']['ngx-lib']['group-buttons'], global.rxjs.operators, global.rxjs, global.translate));
5
+ }(this, (function (exports, core, common, forms, flexLayout, core$2, checkbox, chips, expansion, icon$1, formField, input, radio, ngxVirtualScroller, ngxLib, checkbox$1, date, select, textbox, search, button, icon, groupButtons, operators, rxjs, core$1) { 'use strict';
6
6
 
7
7
  /*! *****************************************************************************
8
8
  Copyright (c) Microsoft Corporation.
@@ -439,9 +439,9 @@
439
439
  PepSmartFiltersComponent.decorators = [
440
440
  { type: core.Component, args: [{
441
441
  selector: 'pep-smart-filters',
442
- template: "<div class=\"smart-filters-container\" dir=\"{{ layoutService.isRtl() ? 'rtl' : 'ltr' }}\">\n <div 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 <!-- <div *ngSwitchDefault>\n </div> -->\n </ng-container>\n </div>\n </mat-expansion-panel>\n </mat-accordion>\n</div>",
442
+ template: "<div class=\"smart-filters-container\" dir=\"{{ layoutService.isRtl() ? 'rtl' : 'ltr' }}\">\r\n <div class=\"title\">\r\n <span class=\"body-md bold\">{{ title?.length > 0 ? title : (\"SMART_FILTERS.TITLE\" | translate)}}</span>\r\n <mat-chip *ngIf=\"filtersDataMap.size > 0\" [selectable]=\"false\" [removable]=\"true\" (click)=\"onFiltersClear()\"\r\n class=\"clear-filter pep-button chip xs weak\">\r\n <span class=\"body-xs ellipsis \">\r\n {{ \"ACTIONS.CLEAR\" | translate}}\r\n </span>\r\n </mat-chip>\r\n </div>\r\n\r\n <mat-accordion [displayMode]=\"'flat'\" [multi]=\"true\" class=\"pep-accordion2\">\r\n <mat-expansion-panel *ngFor=\"let field of fields; let i = index\" hideToggle=\"true\" [expanded]=\"field.isOpen\"\r\n (opened)=\"toggleField(i, true)\" (closed)=\"toggleField(i, false)\">\r\n <mat-expansion-panel-header [collapsedHeight]=\"expansionPanelHeaderHeight\"\r\n [expandedHeight]=\"expansionPanelHeaderHeight\">\r\n <mat-panel-title class=\"pep-spacing-element-negative\">\r\n <div class=\"smart-filter-title-container\">\r\n <mat-icon class=\"pep-spacing-element\">\r\n <pep-icon [name]=\"field.isOpen ? 'number_minus' : 'number_plus'\"></pep-icon>\r\n </mat-icon>\r\n <span class=\"body-sm ellipsis\" [title]=\"field.name\">\r\n {{ field.name }}\r\n </span>\r\n <mat-chip *ngIf=\"filtersDataMap.get(field.id)\" [selectable]=\"false\" [removable]=\"true\"\r\n (click)=\"onFilterClear(field)\" class=\"clear-filter pep-button chip xs weak\">\r\n <span *ngIf=\"field.componentType === 'multi-select'\" class=\"body-xs pep-spacing-element\">\r\n {{ filtersDataMap.get(field.id).value?.first?.length }}\r\n <!-- {{ field.componentType === 'multi-select' ?\r\n filtersDataMap.get(field.id).value?.first?.length : 1 }} -->\r\n </span>\r\n <mat-icon>\r\n <pep-icon name=\"system_close\"></pep-icon>\r\n </mat-icon>\r\n </mat-chip>\r\n </div>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <div class=\"expansion-content smart-filter-content\">\r\n <ng-container [ngSwitch]=\"field.componentType\">\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <pep-boolean-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\r\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\r\n </pep-boolean-filter>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <pep-date-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\r\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\r\n </pep-date-filter>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'multi-select'\">\r\n <pep-multi-select-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\r\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\r\n </pep-multi-select-filter>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <pep-number-filter [field]=\"field\" [filter]=\"filtersDataMap.get(field.id)\"\r\n (filterChange)=\"onFilterChange(field, $event)\" (filterClear)=\"onFilterClear(field)\">\r\n </pep-number-filter>\r\n </ng-container>\r\n <!-- <div *ngSwitchDefault>\r\n </div> -->\r\n </ng-container>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n</div>",
443
443
  changeDetection: core.ChangeDetectionStrategy.OnPush,
444
- styles: [".smart-filters-container .title{height:calc(.5rem + 2.5rem);height:calc(var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem));display:flex;flex-flow:wrap;align-items:center;justify-content:space-between}.smart-filters-container .title .clear-filter{display:flex;flex-direction:row;align-items:center;justify-content:center;margin:0 .25rem;margin:0 var(--pep-spacing-xs,.25rem);padding:0 .75rem;padding:0 var(--pep-spacing-md,.75rem)}.smart-filters-container .title .clear-filter:after{background-color:transparent}.smart-filters-container .smart-filter-title-container{display:grid;grid-auto-flow:column;grid-template-columns:auto 1fr auto;width:100%}.smart-filters-container .smart-filter-title-container>*{align-self:center}.smart-filters-container .smart-filter-title-container .clear-filter{display:flex;flex-direction:row;align-items:center;justify-content:center;-webkit-margin-end:.5rem;margin-inline-end:.5rem;-webkit-margin-end:var(--pep-spacing-sm,.5rem);margin-inline-end:var(--pep-spacing-sm,.5rem)}.smart-filters-container .smart-filter-title-container .clear-filter:after{background-color:transparent}.smart-filters-container .smart-filter-title-container .mat-icon pep-icon{height:.75rem;width:.75rem}"]
444
+ styles: [".smart-filters-container .title{height:calc(.5rem + 2.5rem);height:calc(var(--pep-top-bar-spacing-bottom, .5rem) + var(--pep-top-bar-field-height, 2.5rem));display:flex;flex-flow:wrap;align-items:center;justify-content:space-between}.smart-filters-container .title .clear-filter{display:flex;flex-direction:row;align-items:center;justify-content:center;margin:0 .25rem;margin:0 var(--pep-spacing-xs,.25rem);padding:0 .75rem;padding:0 var(--pep-spacing-md,.75rem)}.smart-filters-container .title .clear-filter:after{background-color:transparent}.smart-filters-container .smart-filter-title-container{display:grid;grid-auto-flow:column;grid-template-columns:auto 1fr auto;width:100%}.smart-filters-container .smart-filter-title-container>*{align-self:center}.smart-filters-container .smart-filter-title-container .clear-filter{display:flex;flex-direction:row;align-items:center;justify-content:center;-webkit-margin-end:.5rem;margin-inline-end:.5rem;-webkit-margin-end:var(--pep-spacing-sm,.5rem);margin-inline-end:var(--pep-spacing-sm,.5rem)}.smart-filters-container .smart-filter-title-container .clear-filter:after{background-color:transparent}.smart-filters-container .smart-filter-title-container .mat-icon pep-icon{height:.75rem;width:.75rem}", ".smart-filters-container .clear-filter.weak{background:rgba(26,26,26,.12);background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.12)}.smart-filters-container .clear-filter.weak:hover{background:rgba(26,26,26,.16);background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.16)}.smart-filters-container .clear-filter.weak:focus{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative;box-shadow:0 0 0 .25rem rgba(23,102,166,.5);box-shadow:0 0 0 var(--pep-spacing-xs,.25rem) hsla(var(--pep-color-text-link-h,207),var(--pep-color-text-link-s,76%),var(--pep-color-text-link-l,37%),.5)}.smart-filters-container .clear-filter.weak:focus:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}.smart-filters-container .clear-filter.weak:focus:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%))}.smart-filters-container .clear-filter.weak:active{box-shadow:0 .125rem .25rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-xs-offset,0 .125rem .25rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);position:relative}.smart-filters-container .clear-filter.weak:active:not(.keep-background-on-focus){background:#fff;background:hsl(var(--pep-color-system-primary-invert-h,255),var(--pep-color-system-primary-invert-s,100%),var(--pep-color-system-primary-invert-l,100%))}.smart-filters-container .clear-filter.weak:active:after{z-index:0;content:\"\";transition:all .25s;display:block;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:inherit;border:1px solid #1a1a1a;border:1px solid hsl(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%))}.smart-filters-container .clear-filter.weak:disabled:not(.ignore-disabled){box-shadow:unset;border:unset;color:rgba(26,26,26,.35)!important;color:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)!important;background:rgba(26,26,26,.04)!important;background:hsla(var(--pep-color-weak-h,0),var(--pep-color-weak-s,0%),var(--pep-color-weak-l,10%),.04)!important}.smart-filters-container .clear-filter.weak:disabled:not(.ignore-disabled):after{border:unset}.smart-filters-container .clear-filter.weak:disabled:not(.ignore-disabled) .svg-icon{fill:rgba(26,26,26,.35);fill:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}.smart-filters-container .clear-filter.weak:disabled:not(.ignore-disabled) .svg-icon.stroke{fill:unset;stroke:rgba(26,26,26,.35);stroke:hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.35)}"]
445
445
  },] }
446
446
  ];
447
447
  PepSmartFiltersComponent.ctorParameters = function () { return [
@@ -473,7 +473,7 @@
473
473
  PepFilterActionsComponent.decorators = [
474
474
  { type: core.Component, args: [{
475
475
  selector: 'pep-filter-actions',
476
- template: "<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>",
476
+ template: "<div [formGroup]=\"form\" class=\"filter-actions pep-spacing-element-negative\">\r\n <button mat-button class=\"pep-spacing-element pep-button sm weak\" (click)=\"clear()\">\r\n {{ 'ACTIONS.CLEAR' | translate }}\r\n </button>\r\n <button mat-button class=\"pep-spacing-element pep-button sm strong\" (click)=\"apply()\" [disabled]=\"form.invalid\">\r\n {{ 'ACTIONS.APPLY' | translate }}\r\n </button>\r\n</div>",
477
477
  styles: [".filter-actions{margin:1rem 0 calc(1rem / 2);margin:var(--pep-spacing-lg,1rem) 0 calc(var(--pep-spacing-lg, 1rem) / 2);display:flex;justify-content:flex-end}"]
478
478
  },] }
479
479
  ];
@@ -545,12 +545,12 @@
545
545
  short: 'Range',
546
546
  componentType: ['number'],
547
547
  };
548
- // const Contains: Operator = {
549
- // id: 'contains',
550
- // name: 'Contains',
551
- // short: 'Contains',
552
- // type: ['text'],
553
- // };
548
+ var Contains = {
549
+ id: 'contains',
550
+ name: 'CONTAINS',
551
+ short: 'Contains',
552
+ componentType: ['text'],
553
+ };
554
554
  // const BeginsWith: Operator = {
555
555
  // id: 'beginsWith',
556
556
  // name: 'Begins With',
@@ -655,7 +655,7 @@
655
655
  GreaterThan: GreaterThan,
656
656
  // GreaterThanOrEquals: GreaterThanOrEquals,
657
657
  NumberRange: NumberRange,
658
- // Contains: Contains,
658
+ Contains: Contains,
659
659
  // BeginsWith: BeginsWith,
660
660
  // EndsWith: EndsWith,
661
661
  // After: After,
@@ -715,6 +715,10 @@
715
715
  this.validator = validator;
716
716
  this.renderer = renderer;
717
717
  this._fieldIdWithNoDots = '';
718
+ this.emitOnChange = false;
719
+ this.inline = false;
720
+ this.showActionButtons = true;
721
+ this.renderTitle = true;
718
722
  this.filterClear = new core.EventEmitter();
719
723
  this.filterChange = new core.EventEmitter();
720
724
  this.OPERATORS_TRANSLATION_PREFIX = 'SMART_FILTERS.OPERATORS';
@@ -744,6 +748,14 @@
744
748
  enumerable: false,
745
749
  configurable: true
746
750
  });
751
+ Object.defineProperty(BaseFilterComponent.prototype, "parentForm", {
752
+ set: function (form) {
753
+ this._parentForm = form;
754
+ this.updateParentForm();
755
+ },
756
+ enumerable: false,
757
+ configurable: true
758
+ });
747
759
  Object.defineProperty(BaseFilterComponent.prototype, "operator", {
748
760
  get: function () {
749
761
  return this._operator;
@@ -772,10 +784,7 @@
772
784
  },
773
785
  set: function (operatorUnit) {
774
786
  // Validate operator unit
775
- if (operatorUnit === undefined) {
776
- this._operatorUnit = undefined;
777
- }
778
- else {
787
+ if (operatorUnit) {
779
788
  var index = this.operatorUnits.findIndex(function (ou) { return ou.id === operatorUnit.id; });
780
789
  if (index >= 0) {
781
790
  this._operatorUnit = this.operatorUnits[index];
@@ -784,6 +793,9 @@
784
793
  this._operatorUnit = this.operatorUnits[0];
785
794
  }
786
795
  }
796
+ else {
797
+ this._operatorUnit = undefined;
798
+ }
787
799
  },
788
800
  enumerable: false,
789
801
  configurable: true
@@ -829,12 +841,14 @@
829
841
  var formValue = {};
830
842
  formValue[this.firstControlKey] = [];
831
843
  formValue[this.secondControlKey] = [];
832
- // this.form.patchValue(formValue);
844
+ // this.form.patchValue(formValue);
833
845
  this.form = this.builder.group(formValue);
834
846
  // this.form[this.firstControlKey] = [];
835
847
  // this.form[this.secondControlKey] = [];
836
848
  this.setupOperators();
837
- this.createActionsComponent();
849
+ if (this.showActionButtons) {
850
+ this.createActionsComponent();
851
+ }
838
852
  };
839
853
  BaseFilterComponent.prototype.setupOperators = function () {
840
854
  var _this = this;
@@ -879,6 +893,16 @@
879
893
  this.clearFilter(false);
880
894
  }
881
895
  };
896
+ BaseFilterComponent.prototype.updateParentForm = function () {
897
+ this._parentForm.setControl('fieldId', this.builder.control(this.field.id));
898
+ this._parentForm.setControl('fieldType', this.builder.control(this.field.type));
899
+ this._parentForm.setControl('operator', this.builder.control(this.operator));
900
+ this._parentForm.setControl('operatorUnit', this.builder.control(this.operatorUnit));
901
+ this._parentForm.setControl('values', this.builder.group({
902
+ first: this.firstControl,
903
+ second: this.secondControl
904
+ }));
905
+ };
882
906
  BaseFilterComponent.prototype.getDestroyer = function () {
883
907
  return operators.takeUntil(this._destroyed);
884
908
  };
@@ -943,7 +967,9 @@
943
967
  BaseFilterComponent.prototype.ngOnDestroy = function () {
944
968
  this._destroyed.next();
945
969
  this._destroyed.complete();
946
- this.actionsContainerRef.destroy();
970
+ if (this.showActionButtons) {
971
+ this.actionsContainerRef.destroy();
972
+ }
947
973
  };
948
974
  return BaseFilterComponent;
949
975
  }());
@@ -962,15 +988,108 @@
962
988
  BaseFilterComponent.propDecorators = {
963
989
  field: [{ type: core.Input }],
964
990
  filter: [{ type: core.Input }],
991
+ parentForm: [{ type: core.Input }],
992
+ emitOnChange: [{ type: core.Input }],
993
+ inline: [{ type: core.Input }],
994
+ showActionButtons: [{ type: core.Input }],
995
+ renderTitle: [{ type: core.Input }],
965
996
  filterClear: [{ type: core.Output }],
966
997
  filterChange: [{ type: core.Output }]
967
998
  };
968
999
 
1000
+ var PepTextFilterComponent = /** @class */ (function (_super) {
1001
+ __extends(PepTextFilterComponent, _super);
1002
+ function PepTextFilterComponent() {
1003
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
1004
+ _this.chooseTypeOptions = [];
1005
+ _this.operatorWidth = '38%';
1006
+ _this.firstControlWidth = '62%';
1007
+ return _this;
1008
+ }
1009
+ PepTextFilterComponent.prototype.ngOnInit = function () {
1010
+ var _this = this;
1011
+ this.firstControl.valueChanges
1012
+ .pipe(this.getDestroyer(), operators.distinctUntilChanged())
1013
+ .subscribe(function () {
1014
+ _this.setFieldsStateAndValidators();
1015
+ });
1016
+ };
1017
+ // Override
1018
+ PepTextFilterComponent.prototype.getDefaultOperator = function () {
1019
+ return PepSmartFilterOperators.Equals;
1020
+ };
1021
+ // Override
1022
+ PepTextFilterComponent.prototype.getFilterValue = function () {
1023
+ var filterValue = {
1024
+ first: this.firstControl.value,
1025
+ };
1026
+ if (this.operator === PepSmartFilterOperators.NumberRange) {
1027
+ filterValue['second'] = this.secondControl.value;
1028
+ }
1029
+ return filterValue;
1030
+ };
1031
+ // Override
1032
+ PepTextFilterComponent.prototype.loadOperatorsOptions = function () {
1033
+ var _this = this;
1034
+ this.chooseTypeOptions = this.operators.map(function (operator) {
1035
+ return {
1036
+ key: operator.id,
1037
+ value: _this.translate.instant(_this.OPERATORS_TRANSLATION_PREFIX + "." + operator.name),
1038
+ };
1039
+ });
1040
+ };
1041
+ // Override
1042
+ PepTextFilterComponent.prototype.setFieldsStateAndValidators = function () {
1043
+ if (this.operator === PepSmartFilterOperators.NumberRange) {
1044
+ var firstValidators = [forms.Validators.required];
1045
+ if (this.secondControl.value) {
1046
+ firstValidators.push(this.validator.isLessThan(this.secondControl));
1047
+ }
1048
+ this.firstControl.setValidators(firstValidators);
1049
+ }
1050
+ else {
1051
+ _super.prototype.setFieldsStateAndValidators.call(this);
1052
+ }
1053
+ };
1054
+ PepTextFilterComponent.prototype.onOperatorChanged = function (value) {
1055
+ var operator = Object.values(PepSmartFilterOperators).find(function (operator) { return operator.id === value; });
1056
+ this.operator = operator;
1057
+ if (this._parentForm) {
1058
+ this.updateParentForm();
1059
+ }
1060
+ if (this.emitOnChange) {
1061
+ this.applyFilter();
1062
+ }
1063
+ };
1064
+ PepTextFilterComponent.prototype.onValueChanged = function () {
1065
+ if (this.emitOnChange) {
1066
+ this.applyFilter();
1067
+ }
1068
+ };
1069
+ return PepTextFilterComponent;
1070
+ }(BaseFilterComponent));
1071
+ PepTextFilterComponent.decorators = [
1072
+ { type: core.Component, args: [{
1073
+ selector: 'pep-text-filter',
1074
+ template: "<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\r\n <pep-select [fxFlex]=\"inline ? operatorWidth : null\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\r\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\r\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\r\n </pep-select>\r\n <pep-textbox [fxFlex]=\"inline ? firstControlWidth : null\" [form]=\"form\" [key]=\"firstControlKey\"\r\n [label]=\"'SMART_FILTERS.AMOUNT' | translate\" [renderError]=\"false\" [renderTitle]=\"renderTitle\"\r\n [type]=\"field.type\" [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\r\n (valueChange)=\"onValueChanged()\">\r\n </pep-textbox>\r\n</div>",
1075
+ styles: [""]
1076
+ },] }
1077
+ ];
1078
+
969
1079
  var PepBooleanFilterComponent = /** @class */ (function (_super) {
970
1080
  __extends(PepBooleanFilterComponent, _super);
971
1081
  function PepBooleanFilterComponent() {
972
- return _super !== null && _super.apply(this, arguments) || this;
1082
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
1083
+ _this.options = [];
1084
+ return _this;
1085
+ // // Override
1086
+ // setFieldsStateAndValidators(): void {
1087
+ // this.secondControl.disable();
1088
+ // }
973
1089
  }
1090
+ PepBooleanFilterComponent.prototype.ngOnInit = function () {
1091
+ //
1092
+ };
974
1093
  // Override
975
1094
  PepBooleanFilterComponent.prototype.getDefaultOperator = function () {
976
1095
  return PepSmartFilterOperators.Equals;
@@ -980,15 +1099,24 @@
980
1099
  var filterValue = { first: this.firstControl.value || false };
981
1100
  return filterValue;
982
1101
  };
1102
+ PepBooleanFilterComponent.prototype.onValueChanged = function (value) {
1103
+ this.firstControl.setValue(value);
1104
+ if (this.emitOnChange) {
1105
+ this.applyFilter();
1106
+ }
1107
+ };
983
1108
  return PepBooleanFilterComponent;
984
1109
  }(BaseFilterComponent));
985
1110
  PepBooleanFilterComponent.decorators = [
986
1111
  { type: core.Component, args: [{
987
1112
  selector: 'pep-boolean-filter',
988
- template: "<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 {{ 'CHECKBOX.TRUE' | translate }}\n </mat-radio-button>\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"false\">\n {{ 'CHECKBOX.FALSE' | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>",
1113
+ template: "<ng-container *ngIf=\"inline\">\r\n <pep-select [value]=\"firstControl?.value || ''\" xAlignment=\"left\" [options]=\"options\" [renderTitle]=\"renderTitle\"\r\n [emptyOption]=\"true\" (valueChange)=\"onValueChanged($event)\">\r\n </pep-select>\r\n\r\n</ng-container>\r\n\r\n<div *ngIf=\"!inline\" [formGroup]=\"form\">\r\n <mat-radio-group class=\"radio-group\" [formControlName]=\"firstControlKey\">\r\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"true\">\r\n {{ 'CHECKBOX.TRUE' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button class=\"pep-radio-button md pep-input no-default-background\" value=\"false\">\r\n {{ 'CHECKBOX.FALSE' | translate }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n</div>",
989
1114
  styles: [".radio-group{display:flex;flex-direction:column}.radio-group .pep-radio-button.pep-input{height:2.25rem;display:flex}"]
990
1115
  },] }
991
- ];
1116
+ ];
1117
+ PepBooleanFilterComponent.propDecorators = {
1118
+ options: [{ type: core.Input }]
1119
+ };
992
1120
 
993
1121
  var PepDateFilterComponent = /** @class */ (function (_super) {
994
1122
  __extends(PepDateFilterComponent, _super);
@@ -999,6 +1127,11 @@
999
1127
  _this.chooseTimeUnitOptions = [];
1000
1128
  return _this;
1001
1129
  }
1130
+ PepDateFilterComponent.prototype.ngOnInit = function () {
1131
+ if (this.inline) {
1132
+ this.setControlsWidth();
1133
+ }
1134
+ };
1002
1135
  // Override
1003
1136
  PepDateFilterComponent.prototype.getDefaultOperator = function () {
1004
1137
  return PepSmartFilterOperators.InTheLast;
@@ -1072,21 +1205,59 @@
1072
1205
  _super.prototype.setFieldsStateAndValidators.call(this);
1073
1206
  }
1074
1207
  };
1208
+ PepDateFilterComponent.prototype.setControlsWidth = function () {
1209
+ if (this.operator === PepSmartFilterOperators.Today ||
1210
+ this.operator === PepSmartFilterOperators.ThisWeek ||
1211
+ this.operator === PepSmartFilterOperators.ThisMonth ||
1212
+ this.operator === PepSmartFilterOperators.IsEmpty ||
1213
+ this.operator === PepSmartFilterOperators.IsNotEmpty) {
1214
+ this.operatorWidth = 'auto';
1215
+ this.fieldsWidth = '0%';
1216
+ }
1217
+ else if (this.operator === PepSmartFilterOperators.On) {
1218
+ this.operatorWidth = '38%';
1219
+ this.fieldsWidth = '62%';
1220
+ }
1221
+ else {
1222
+ this.operatorWidth = '30%';
1223
+ this.fieldsWidth = '70%';
1224
+ }
1225
+ };
1075
1226
  PepDateFilterComponent.prototype.onOperatorChanged = function (value) {
1076
1227
  var operator = Object.values(PepSmartFilterOperators).find(function (operator) { return operator.id === value; });
1077
1228
  this.operator = operator;
1078
1229
  this.operatorUnit = this.getDefaultOperatorUnit();
1230
+ if (this.inline) {
1231
+ this.setControlsWidth();
1232
+ }
1233
+ if (this._parentForm) {
1234
+ this.updateParentForm();
1235
+ }
1236
+ if (this.emitOnChange) {
1237
+ this.applyFilter();
1238
+ }
1079
1239
  };
1080
1240
  PepDateFilterComponent.prototype.onTimeUnitChanged = function (value) {
1081
1241
  var operatorUnit = Object.values(PepSmartFilterOperatorUnits).find(function (operatorUnit) { return operatorUnit.id === value; });
1082
1242
  this.operatorUnit = operatorUnit;
1243
+ if (this._parentForm) {
1244
+ this.updateParentForm();
1245
+ }
1246
+ if (this.emitOnChange) {
1247
+ this.applyFilter();
1248
+ }
1249
+ };
1250
+ PepDateFilterComponent.prototype.onDateValueChanged = function () {
1251
+ if (this.emitOnChange) {
1252
+ this.applyFilter();
1253
+ }
1083
1254
  };
1084
1255
  return PepDateFilterComponent;
1085
1256
  }(BaseFilterComponent));
1086
1257
  PepDateFilterComponent.decorators = [
1087
1258
  { type: core.Component, args: [{
1088
1259
  selector: 'pep-date-filter',
1089
- template: "<div [formGroup]=\"form\">\n <ng-container>\n <pep-select [key]=\"'timeOperator'\" [value]=\"operator.id\" [label]=\"'SMART_FILTERS.CHOOSE_TIME' | translate\"\n [emptyOption]=\"false\" [options]=\"chooseTimeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n </ng-container>\n\n <div *ngIf=\"operator === PepSmartFilterOperators.InTheLast ||\n operator === PepSmartFilterOperators.NotInTheLast ||\n operator === PepSmartFilterOperators.DueIn ||\n operator === PepSmartFilterOperators.NotDueIn\" fxLayout=\"row\" fxLayout.xs=\"column\" fxLayoutGap=\"1rem\">\n <!-- Amount -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.AMOUNT' | translate\"\n [renderError]=\"false\" fxFlex=\"50%\" [type]=\"'int'\" [formattedValue]=\"firstControl.value\"\n [value]=\"firstControl.value\">\n </pep-textbox>\n <!-- Time unit -->\n <pep-select [form]=\"form\" [key]=\"'timeUnit'\" [value]=\"operatorUnit?.id\"\n [label]=\"'SMART_FILTERS.TIME_UNIT' | translate\" fxFlex=\"50%\" [emptyOption]=\"false\"\n [options]=\"chooseTimeUnitOptions\" (valueChange)=\"onTimeUnitChanged($event)\">\n </pep-select>\n </div>\n <div pepRtlDirection *ngIf=\"operator === PepSmartFilterOperators.DateRange\" fxLayout=\"row\" fxLayout.xs=\"column\"\n fxLayoutGap=\"1rem\">\n <!-- Start date -->\n <pep-date [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.START_DATE' | translate\"\n [renderError]=\"false\" fxFlex=\"50%\" [type]=\"field.type === 'date' ? 'date' : 'datetime'\"\n [value]=\"firstControl.value\" [maxDateValue]=\"secondControl.value\">\n </pep-date>\n <!-- End date -->\n <pep-date [form]=\"form\" [key]=\"secondControlKey\" [label]=\"'SMART_FILTERS.END_DATE' | translate\"\n [renderError]=\"false\" fxFlex=\"50%\" [type]=\"field.type === 'date' ? 'date' : 'datetime'\"\n [value]=\"secondControl.value\" [minDateValue]=\"firstControl.value\">\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\" [type]=\"field.type === 'date' ? 'date' : 'datetime'\" [value]=\"firstControl.value\">\n </pep-date>\n </ng-container>\n</div>",
1260
+ template: "<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\r\n <ng-container>\r\n <pep-select [key]=\"'timeOperator'\" [value]=\"operator.id\" [label]=\"'SMART_FILTERS.CHOOSE_TIME' | translate\"\r\n [renderTitle]=\"renderTitle\" [emptyOption]=\"false\" [options]=\"chooseTimeOptions\"\r\n [fxFlex]=\"inline ? operatorWidth : null\" (valueChange)=\"onOperatorChanged($event)\">\r\n </pep-select>\r\n </ng-container>\r\n <div *ngIf=\"operator === PepSmartFilterOperators.InTheLast ||\r\n operator === PepSmartFilterOperators.NotInTheLast ||\r\n operator === PepSmartFilterOperators.DueIn ||\r\n operator === PepSmartFilterOperators.NotDueIn\" fxLayout=\"row\" fxLayout.xs=\"column\"\r\n [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\" [fxFlex]=\"inline ? fieldsWidth : null\">\r\n <!-- Amount -->\r\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.AMOUNT' | translate\"\r\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\" [type]=\"'int'\"\r\n [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\r\n (valueChange)=\"onDateValueChanged()\">\r\n </pep-textbox>\r\n <!-- Time unit -->\r\n <pep-select [form]=\"form\" [key]=\"'timeUnit'\" [value]=\"operatorUnit?.id\"\r\n [label]=\"'SMART_FILTERS.TIME_UNIT' | translate\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\r\n [emptyOption]=\"false\" [options]=\"chooseTimeUnitOptions\" (valueChange)=\"onTimeUnitChanged($event)\">\r\n </pep-select>\r\n </div>\r\n <div pepRtlDirection *ngIf=\"operator === PepSmartFilterOperators.DateRange\" fxLayout=\"row\" fxLayout.xs=\"column\"\r\n [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\" [fxFlex]=\"inline ? fieldsWidth : null\">\r\n <!-- Start date -->\r\n <pep-date [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.START_DATE' | translate\"\r\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\r\n [type]=\"field.type === 'date' ? 'date' : 'datetime'\" [value]=\"firstControl?.value || ''\"\r\n [maxDateValue]=\"secondControl?.value\" (valueChange)=\"onDateValueChanged()\">\r\n </pep-date>\r\n <!-- End date -->\r\n <pep-date [form]=\"form\" [key]=\"secondControlKey\" [label]=\"'SMART_FILTERS.END_DATE' | translate\"\r\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" fxFlex=\"50%\"\r\n [type]=\"field.type === 'date' ? 'date' : 'datetime'\" [value]=\"secondControl?.value || ''\"\r\n [minDateValue]=\"firstControl?.value\" (valueChange)=\"onDateValueChanged()\">\r\n </pep-date>\r\n </div>\r\n <ng-container *ngIf=\"operator === PepSmartFilterOperators.On\">\r\n <!-- Choose a date -->\r\n <pep-date [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.CHOOSE_DATE' | translate\"\r\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type === 'date' ? 'date' : 'datetime'\"\r\n [fxFlex]=\"inline ? fieldsWidth : null\" [value]=\"firstControl?.value || ''\"\r\n (valueChange)=\"onDateValueChanged()\">\r\n </pep-date>\r\n </ng-container>\r\n</div>",
1090
1261
  styles: [""]
1091
1262
  },] }
1092
1263
  ];
@@ -1103,14 +1274,38 @@
1103
1274
  var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
1104
1275
  _this.options = [];
1105
1276
  _this.searchControl = new forms.FormControl();
1277
+ //inline props
1278
+ _this.selected = '';
1279
+ _this.inlineOptions = [];
1106
1280
  _this.MAX_OPTIONS_TO_SHOW = 6.35;
1107
1281
  _this.numberOptionsToShowSearch = 10;
1108
1282
  return _this;
1109
1283
  }
1110
1284
  PepMultiSelectFilterComponent.prototype.ngOnInit = function () {
1285
+ _super.prototype.ngOnInit;
1286
+ if (this.inline) {
1287
+ this.inlineControlInit();
1288
+ }
1289
+ else {
1290
+ this.noneInlineControlInit();
1291
+ }
1292
+ };
1293
+ PepMultiSelectFilterComponent.prototype.ngAfterViewInit = function () {
1294
+ // Calc for the first time.
1295
+ this.calcOptionsHeight(this.options.length);
1296
+ };
1297
+ PepMultiSelectFilterComponent.prototype.inlineControlInit = function () {
1298
+ var _a, _b, _c, _d;
1299
+ //load options from field
1300
+ this.inlineOptions = ((_b = (_a = this.field) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.length) > 0 ? this.field.options : [];
1301
+ // Init the selected values from first value.
1302
+ if (((_d = (_c = this.firstControl) === null || _c === void 0 ? void 0 : _c.value) === null || _d === void 0 ? void 0 : _d.length) > 0) {
1303
+ this.selected = this.firstControl.value.join(';');
1304
+ }
1305
+ };
1306
+ PepMultiSelectFilterComponent.prototype.noneInlineControlInit = function () {
1111
1307
  var _this = this;
1112
1308
  var _a;
1113
- _super.prototype.ngOnInit;
1114
1309
  if (((_a = this.field.options) === null || _a === void 0 ? void 0 : _a.length) > 0) {
1115
1310
  this.options = this.field.options.map(function (opt) {
1116
1311
  return { value: opt.value, count: opt.count, selected: false };
@@ -1141,10 +1336,6 @@
1141
1336
  }, 125);
1142
1337
  });
1143
1338
  };
1144
- PepMultiSelectFilterComponent.prototype.ngAfterViewInit = function () {
1145
- // Calc for the first time.
1146
- this.calcOptionsHeight(this.options.length);
1147
- };
1148
1339
  PepMultiSelectFilterComponent.prototype.initOptionsSelectedValues = function (selectedValues) {
1149
1340
  this.options.forEach(function (opt) {
1150
1341
  var isValueSelected = selectedValues && selectedValues.includes(opt.value);
@@ -1172,13 +1363,20 @@
1172
1363
  };
1173
1364
  // Override
1174
1365
  PepMultiSelectFilterComponent.prototype.getFilterValue = function () {
1175
- var selectedValues = this.options
1176
- .filter(function (opt) { return opt.selected; })
1177
- .map(function (opt) { return opt.value; });
1178
- var filterValue = {
1179
- first: selectedValues,
1180
- };
1181
- return selectedValues.length > 0 ? filterValue : null;
1366
+ if (this.inline) {
1367
+ return {
1368
+ first: this.firstControl.value
1369
+ };
1370
+ }
1371
+ else {
1372
+ var selectedValues = this.options
1373
+ .filter(function (opt) { return opt.selected; })
1374
+ .map(function (opt) { return opt.value; });
1375
+ var filterValue = {
1376
+ first: selectedValues,
1377
+ };
1378
+ return selectedValues.length > 0 ? filterValue : null;
1379
+ }
1182
1380
  };
1183
1381
  // Override
1184
1382
  PepMultiSelectFilterComponent.prototype.initFilter = function () {
@@ -1189,12 +1387,24 @@
1189
1387
  option.selected = event.checked;
1190
1388
  this.firstControl.setValue(this.options.filter(function (opt) { return opt.selected; }).map(function (opt) { return opt.value; }), { emitEvent: false });
1191
1389
  };
1390
+ PepMultiSelectFilterComponent.prototype.onMultiSelectChanged = function (value) {
1391
+ if (value) {
1392
+ var selected = value.split(';');
1393
+ this.firstControl.setValue(selected);
1394
+ }
1395
+ else {
1396
+ this.firstControl.setValue(null);
1397
+ }
1398
+ if (this.emitOnChange) {
1399
+ this.applyFilter();
1400
+ }
1401
+ };
1192
1402
  return PepMultiSelectFilterComponent;
1193
1403
  }(BaseFilterComponent));
1194
1404
  PepMultiSelectFilterComponent.decorators = [
1195
1405
  { type: core.Component, args: [{
1196
1406
  selector: 'pep-multi-select-filter',
1197
- template: "<div [formGroup]=\"form\">\n <pep-search *ngIf=\"options?.length > numberOptionsToShowSearch\" [searchControl]=\"searchControl\"\n [triggerOn]=\"'keydown'\" [shrinkInSmallScreen]=\"false\"></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>",
1407
+ template: "<ng-container *ngIf=\"inline\">\r\n <pep-select [key]=\"'multi1'\" [label]=\"'Pepperi Multi Select'\" [type]=\"'multi'\" [value]=\"selected\"\r\n [xAlignment]=\"'left'\" [renderTitle]=\"renderTitle\" [options]='inlineOptions'\r\n (valueChange)=\"onMultiSelectChanged($event)\">\r\n </pep-select>\r\n</ng-container>\r\n<div *ngIf=\"!inline\" [formGroup]=\"form\">\r\n <pep-search *ngIf=\"options?.length > numberOptionsToShowSearch\" [searchControl]=\"searchControl\"\r\n [triggerOn]=\"'keydown'\" [shrinkInSmallScreen]=\"false\"></pep-search>\r\n <div pepRtlClass class=\"multi-select-options pep-border-top pep-border-bottom\"\r\n [ngClass]=\"{'with-no-search': options?.length <= numberOptionsToShowSearch}\">\r\n <div #optionsContainer class=\"flip-scroll\" pepRtlClass>\r\n <virtual-scroller #scroll [items]=\"filteredOptions$ | async\" [parentScroll]=\"optionsContainer\">\r\n <mat-checkbox *ngFor=\"let opt of scroll.viewPortItems\"\r\n class=\"pep-checkbox-container pep-input no-default-background md\" [title]=\"opt.value\"\r\n [checked]=\"opt.selected\" (change)=\"onOptionChange(opt, $event)\">\r\n <div class=\"title\">\r\n <span class=\"body-sm ellipsis\">{{ opt.value }}</span>\r\n <span *ngIf=\"opt.count\" class=\"color-dimmed body-xs ellipsis\">({{opt.count}})</span>\r\n </div>\r\n </mat-checkbox>\r\n <ng-container *ngIf=\"scroll.viewPortItems?.length === 0\">\r\n <span class=\"no-options body-sm ellipsis\" [title]=\"field.name\">\r\n {{ ( options.length > 0 ? \"SMART_FILTERS.NO_SEARCH_RESULTS\" : \"SMART_FILTERS.NO_OPTIONS\") |\r\n translate }}\r\n </span>\r\n </ng-container>\r\n </virtual-scroller>\r\n </div>\r\n </div>\r\n</div>",
1198
1408
  styles: [".multi-select-options{margin:.5rem calc(.25rem * -1) 0;margin:var(--pep-spacing-sm,.5rem) calc(var(--pep-spacing-xs, .25rem) * -1) 0}.multi-select-options.with-no-search{margin:calc(.5rem * -1) calc(.25rem * -1) 0;margin:calc(var(--pep-spacing-sm, .5rem) * -1) calc(var(--pep-spacing-xs, .25rem) * -1) 0}.multi-select-options .no-options{display:flex;padding:.5rem .75rem;padding:var(--pep-spacing-sm,.5rem) var(--pep-spacing-md,.75rem)}.multi-select-options .flip-scroll{padding:.5rem .25rem;padding:var(--pep-spacing-sm,.5rem) var(--pep-spacing-xs,.25rem);min-height:3.25rem;max-height:34.75rem;direction:rtl}.multi-select-options .flip-scroll.rtl,.multi-select-options .flip-scroll virtual-scroller{direction:ltr}.multi-select-options .flip-scroll.rtl virtual-scroller{direction:rtl}.multi-select-options .pep-checkbox-container{height:2.25rem;-webkit-padding-end:0;padding-inline-end:0}.multi-select-options .pep-checkbox-container ::ng-deep.mat-checkbox-layout{width:100%;height:100%;grid-template-columns:auto 1fr}.multi-select-options .pep-checkbox-container ::ng-deep.mat-checkbox-layout .mat-checkbox-label{align-self:center}.multi-select-options .pep-checkbox-container .title{display:flex;justify-content:space-between;align-items:center;margin:0 .25rem;margin:0 var(--pep-spacing-xs,.25rem)}"]
1199
1409
  },] }
1200
1410
  ];
@@ -1209,6 +1419,8 @@
1209
1419
  var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
1210
1420
  _this.PepSmartFilterOperators = PepSmartFilterOperators;
1211
1421
  _this.chooseTypeOptions = [];
1422
+ _this.operatorWidth = '38%';
1423
+ _this.fieldsWidth = '70%';
1212
1424
  return _this;
1213
1425
  }
1214
1426
  PepNumberFilterComponent.prototype.ngOnInit = function () {
@@ -1223,6 +1435,7 @@
1223
1435
  .subscribe(function () {
1224
1436
  _this.setFieldsStateAndValidators();
1225
1437
  });
1438
+ this.setControlsWidth();
1226
1439
  };
1227
1440
  // Override
1228
1441
  PepNumberFilterComponent.prototype.getDefaultOperator = function () {
@@ -1267,16 +1480,38 @@
1267
1480
  _super.prototype.setFieldsStateAndValidators.call(this);
1268
1481
  }
1269
1482
  };
1483
+ PepNumberFilterComponent.prototype.setControlsWidth = function () {
1484
+ if (this.operator === PepSmartFilterOperators.NumberRange) {
1485
+ this.operatorWidth = '30%';
1486
+ this.fieldsWidth = '70%';
1487
+ }
1488
+ else {
1489
+ this.operatorWidth = '38%';
1490
+ this.fieldsWidth = '62%';
1491
+ }
1492
+ };
1270
1493
  PepNumberFilterComponent.prototype.onOperatorChanged = function (value) {
1271
1494
  var operator = Object.values(PepSmartFilterOperators).find(function (operator) { return operator.id === value; });
1272
1495
  this.operator = operator;
1496
+ if (this._parentForm) {
1497
+ this.updateParentForm();
1498
+ }
1499
+ if (this.emitOnChange) {
1500
+ this.applyFilter();
1501
+ }
1502
+ this.setControlsWidth();
1503
+ };
1504
+ PepNumberFilterComponent.prototype.onValueChanged = function () {
1505
+ if (this.emitOnChange) {
1506
+ this.applyFilter();
1507
+ }
1273
1508
  };
1274
1509
  return PepNumberFilterComponent;
1275
1510
  }(BaseFilterComponent));
1276
1511
  PepNumberFilterComponent.decorators = [
1277
1512
  { type: core.Component, args: [{
1278
1513
  selector: 'pep-number-filter',
1279
- template: "<div [formGroup]=\"form\">\n <ng-container>\n <pep-select [key]=\"'typeOperator'\" [value]=\"operator.id\" [label]=\"'SMART_FILTERS.TYPE' | translate\"\n [emptyOption]=\"false\" [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\n </pep-select>\n </ng-container>\n <div *ngIf=\"operator !== PepSmartFilterOperators.NumberRange\">\n <!-- Amount -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.AMOUNT' | translate\"\n [renderError]=\"false\" [type]=\"field.type\" [formattedValue]=\"firstControl.value\"\n [value]=\"firstControl.value\">\n </pep-textbox>\n </div>\n <div *ngIf=\"operator === PepSmartFilterOperators.NumberRange\" fxLayout=\"row\" fxLayout.xs=\"column\"\n fxLayoutGap=\"1rem\">\n <!-- Min number -->\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.MIN' | translate\"\n [renderError]=\"false\" fxFlex=\"50%\" [type]=\"field.type\" [formattedValue]=\"firstControl.value\"\n [value]=\"firstControl.value\" [maxValue]=\"secondControl.value\">\n </pep-textbox>\n <!-- Max number -->\n <pep-textbox [form]=\"form\" [key]=\"secondControlKey\" [label]=\"'SMART_FILTERS.MAX' | translate\"\n [renderError]=\"false\" fxFlex=\"50%\" [type]=\"field.type\" [formattedValue]=\"secondControl.value\"\n [value]=\"secondControl.value\" [minValue]=\"firstControl.value\">\n </pep-textbox>\n </div>\n</div>",
1514
+ template: "<div [formGroup]=\"form\" [fxLayout]=\"inline ? 'row' : 'column'\" [fxLayoutGap]=\"inline ? '.5rem' : '0rem'\">\r\n <ng-container>\r\n <pep-select [fxFlex]=\"inline ? operatorWidth : null\" [key]=\"'typeOperator'\" [value]=\"operator.id\"\r\n [label]=\"'SMART_FILTERS.TYPE' | translate\" [renderTitle]=\"renderTitle\" [emptyOption]=\"false\"\r\n [options]=\"chooseTypeOptions\" (valueChange)=\"onOperatorChanged($event)\">\r\n </pep-select>\r\n </ng-container>\r\n <div *ngIf=\"operator !== PepSmartFilterOperators.NumberRange\" [fxFlex]=\"inline ? fieldsWidth : null\">\r\n <!-- Amount -->\r\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.AMOUNT' | translate\"\r\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\"\r\n [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\r\n (valueChange)=\"onValueChanged()\">\r\n </pep-textbox>\r\n </div>\r\n <div *ngIf=\"operator === PepSmartFilterOperators.NumberRange\" fxLayout=\"row\" fxLayout.xs=\"column\"\r\n [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\" [fxFlex]=\"inline ? fieldsWidth : null\">\r\n <!-- Min number -->\r\n <pep-textbox [form]=\"form\" [key]=\"firstControlKey\" [label]=\"'SMART_FILTERS.MIN' | translate\"\r\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\" fxFlex=\"50%\"\r\n [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\r\n [maxValue]=\"secondControl?.value || ''\" (valueChange)=\"onValueChanged()\">\r\n </pep-textbox>\r\n <!-- Max number -->\r\n <pep-textbox [form]=\"form\" [key]=\"secondControlKey\" [label]=\"'SMART_FILTERS.MAX' | translate\"\r\n [renderError]=\"false\" [renderTitle]=\"renderTitle\" [type]=\"field.type\" fxFlex=\"50%\"\r\n [formattedValue]=\"secondControl?.value || ''\" [value]=\"secondControl?.value || ''\"\r\n [minValue]=\"firstControl?.value || ''\" (valueChange)=\"onValueChanged()\">\r\n </pep-textbox>\r\n </div>\r\n</div>",
1280
1515
  styles: [""]
1281
1516
  },] }
1282
1517
  ];
@@ -1316,16 +1551,26 @@
1316
1551
  textbox.PepTextboxModule,
1317
1552
  search.PepSearchModule,
1318
1553
  icon.PepIconModule,
1554
+ button.PepButtonModule,
1555
+ groupButtons.PepGroupButtonsModule
1556
+ ],
1557
+ exports: [
1558
+ PepSmartFiltersComponent,
1559
+ PepTextFilterComponent,
1560
+ PepBooleanFilterComponent,
1561
+ PepDateFilterComponent,
1562
+ PepMultiSelectFilterComponent,
1563
+ PepNumberFilterComponent
1319
1564
  ],
1320
- exports: [PepSmartFiltersComponent],
1321
1565
  declarations: [
1322
1566
  // BaseFilterComponent,
1323
1567
  PepSmartFiltersComponent,
1324
1568
  PepFilterActionsComponent,
1569
+ PepTextFilterComponent,
1325
1570
  PepBooleanFilterComponent,
1326
1571
  PepDateFilterComponent,
1327
1572
  PepMultiSelectFilterComponent,
1328
- PepNumberFilterComponent,
1573
+ PepNumberFilterComponent
1329
1574
  ],
1330
1575
  },] }
1331
1576
  ];
@@ -1361,6 +1606,20 @@
1361
1606
  });
1362
1607
  return PepSmartFilterBaseField;
1363
1608
  }());
1609
+ // Text field
1610
+ // ------------------------------
1611
+ var PepSmartFilterTextField = /** @class */ (function (_super) {
1612
+ __extends(PepSmartFilterTextField, _super);
1613
+ function PepSmartFilterTextField(field) {
1614
+ var _this = _super.call(this, field) || this;
1615
+ _this._componentType = 'text';
1616
+ return _this;
1617
+ }
1618
+ PepSmartFilterTextField.prototype.getType = function () {
1619
+ return 'text';
1620
+ };
1621
+ return PepSmartFilterTextField;
1622
+ }(PepSmartFilterBaseField));
1364
1623
  // Boolean field
1365
1624
  // ------------------------------
1366
1625
  var PepSmartFilterBooleanField = /** @class */ (function (_super) {
@@ -1472,6 +1731,9 @@
1472
1731
  return PepSmartFilterPercentageField;
1473
1732
  }(PepSmartFilterNumberBaseField));
1474
1733
 
1734
+ function createTextSmartFilterField(data) {
1735
+ return new PepSmartFilterTextField(data);
1736
+ }
1475
1737
  function createBooleanSmartFilterField(data) {
1476
1738
  return new PepSmartFilterBooleanField(data);
1477
1739
  }
@@ -1499,6 +1761,9 @@
1499
1761
  function createSmartFilterField(data, type) {
1500
1762
  var field;
1501
1763
  switch (type) {
1764
+ case 'text':
1765
+ field = createTextSmartFilterField(data);
1766
+ break;
1502
1767
  case 'boolean':
1503
1768
  field = createBooleanSmartFilterField(data);
1504
1769
  break;
@@ -1570,8 +1835,10 @@
1570
1835
  exports.PepSmartFilterOperators = PepSmartFilterOperators;
1571
1836
  exports.PepSmartFilterPercentageField = PepSmartFilterPercentageField;
1572
1837
  exports.PepSmartFilterRealField = PepSmartFilterRealField;
1838
+ exports.PepSmartFilterTextField = PepSmartFilterTextField;
1573
1839
  exports.PepSmartFiltersComponent = PepSmartFiltersComponent;
1574
1840
  exports.PepSmartFiltersModule = PepSmartFiltersModule;
1841
+ exports.PepTextFilterComponent = PepTextFilterComponent;
1575
1842
  exports.createSmartFilter = createSmartFilter;
1576
1843
  exports.createSmartFilterField = createSmartFilterField;
1577
1844