@pepperi-addons/ngx-lib 0.2.59 → 0.2.61-beta.3

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 (301) hide show
  1. package/address/address.component.theme.scss +4 -7
  2. package/address/pepperi-addons-ngx-lib-address.metadata.json +1 -1
  3. package/attachment/attachment.component.d.ts +1 -0
  4. package/attachment/attachment.component.theme.scss +3 -2
  5. package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +1 -1
  6. package/bread-crumbs/bread-crumbs.component.theme.scss +7 -7
  7. package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.metadata.json +1 -1
  8. package/bundles/pepperi-addons-ngx-lib-address.umd.js +1 -1
  9. package/bundles/pepperi-addons-ngx-lib-address.umd.js.map +1 -1
  10. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +7 -2
  11. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js.map +1 -1
  12. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js +1 -1
  13. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js.map +1 -1
  14. package/bundles/pepperi-addons-ngx-lib-button.umd.js +1 -1
  15. package/bundles/pepperi-addons-ngx-lib-button.umd.js.map +1 -1
  16. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +4 -1
  17. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +1 -1
  18. package/bundles/pepperi-addons-ngx-lib-color.umd.js +8 -3
  19. package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +1 -1
  20. package/bundles/pepperi-addons-ngx-lib-date.umd.js +4 -1
  21. package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
  22. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js +1 -1
  23. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js.map +1 -1
  24. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js +1 -1
  25. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js.map +1 -1
  26. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +1 -1
  27. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js.map +1 -1
  28. package/bundles/pepperi-addons-ngx-lib-form.umd.js +19 -16
  29. package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
  30. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js +1 -1
  31. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js.map +1 -1
  32. package/bundles/pepperi-addons-ngx-lib-image.umd.js +7 -2
  33. package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
  34. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +7 -2
  35. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
  36. package/bundles/pepperi-addons-ngx-lib-list.umd.js +1 -1
  37. package/bundles/pepperi-addons-ngx-lib-list.umd.js.map +1 -1
  38. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +7 -2
  39. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
  40. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +1104 -0
  41. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +1 -0
  42. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +7 -2
  43. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +1 -1
  44. package/bundles/pepperi-addons-ngx-lib-select.umd.js +7 -2
  45. package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
  46. package/bundles/pepperi-addons-ngx-lib-separator.umd.js +9 -1
  47. package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +1 -1
  48. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js +1 -1
  49. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js.map +1 -1
  50. package/bundles/pepperi-addons-ngx-lib-signature.umd.js +7 -2
  51. package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +1 -1
  52. package/bundles/pepperi-addons-ngx-lib-slider.umd.js +1 -1
  53. package/bundles/pepperi-addons-ngx-lib-slider.umd.js.map +1 -1
  54. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +306 -39
  55. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
  56. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +7 -2
  57. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +1 -1
  58. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +5 -3
  59. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +1 -1
  60. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js +1 -1
  61. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js.map +1 -1
  62. package/bundles/pepperi-addons-ngx-lib.umd.js +3 -1
  63. package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
  64. package/button/button.component.theme.scss +0 -2
  65. package/button/pepperi-addons-ngx-lib-button.metadata.json +1 -1
  66. package/checkbox/checkbox.component.theme.scss +0 -2
  67. package/checkbox/pepperi-addons-ngx-lib-checkbox.metadata.json +1 -1
  68. package/color/color-picker.component.theme.scss +123 -128
  69. package/color/color.component.d.ts +1 -0
  70. package/color/color.component.theme.scss +0 -7
  71. package/color/pepperi-addons-ngx-lib-color.metadata.json +1 -1
  72. package/core/customization/customization.service.d.ts +1 -0
  73. package/date/date.component.theme.scss +163 -169
  74. package/date/pepperi-addons-ngx-lib-date.metadata.json +1 -1
  75. package/dialog/dialog.component.theme.scss +4 -4
  76. package/dialog/pepperi-addons-ngx-lib-dialog.metadata.json +1 -1
  77. package/esm2015/address/address.component.js +2 -2
  78. package/esm2015/attachment/attachment.component.js +8 -3
  79. package/esm2015/bread-crumbs/bread-crumbs.component.js +2 -2
  80. package/esm2015/button/button.component.js +2 -2
  81. package/esm2015/checkbox/checkbox.component.js +5 -2
  82. package/esm2015/color/color-picker.component.js +2 -2
  83. package/esm2015/color/color.component.js +8 -3
  84. package/esm2015/core/customization/customization.service.js +4 -2
  85. package/esm2015/date/date.component.js +5 -2
  86. package/esm2015/dialog/dialog.component.js +2 -2
  87. package/esm2015/field-title/field-title.component.js +2 -2
  88. package/esm2015/files-uploader/files-uploader.component.js +2 -2
  89. package/esm2015/form/indicators.component.js +2 -2
  90. package/esm2015/form/internal-button.component.js +20 -17
  91. package/esm2015/group-buttons/group-buttons.component.js +2 -2
  92. package/esm2015/image/image.component.js +8 -3
  93. package/esm2015/images-filmstrip/images-filmstrip.component.js +8 -3
  94. package/esm2015/list/list-total.component.js +2 -2
  95. package/esm2015/quantity-selector/quantity-selector.component.js +8 -3
  96. package/esm2015/query-builder/common/model/field.js +2 -0
  97. package/esm2015/query-builder/common/model/filter.js +2 -0
  98. package/esm2015/query-builder/common/model/legacy.js +2 -0
  99. package/esm2015/query-builder/common/model/operator-unit.js +42 -0
  100. package/esm2015/query-builder/common/model/operator.js +207 -0
  101. package/esm2015/query-builder/common/model/structure.js +2 -0
  102. package/esm2015/query-builder/common/model/type-map.js +27 -0
  103. package/esm2015/query-builder/common/model/type.js +6 -0
  104. package/esm2015/query-builder/common/services/output-query.service.js +111 -0
  105. package/esm2015/query-builder/common/services/type-convertor.service.js +40 -0
  106. package/esm2015/query-builder/pepperi-addons-ngx-lib-query-builder.js +9 -0
  107. package/esm2015/query-builder/public-api.js +8 -0
  108. package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +116 -0
  109. package/esm2015/query-builder/query-builder-section/query-builder-section.component.js +64 -0
  110. package/esm2015/query-builder/query-builder.component.js +104 -0
  111. package/esm2015/query-builder/query-builder.module.js +35 -0
  112. package/esm2015/query-builder/query-builder.service.js +282 -0
  113. package/esm2015/rich-html-textarea/rich-html-textarea.component.js +8 -3
  114. package/esm2015/select/select.component.js +8 -3
  115. package/esm2015/separator/separator.component.js +10 -2
  116. package/esm2015/side-bar/side-bar.component.js +2 -2
  117. package/esm2015/signature/signature.component.js +8 -3
  118. package/esm2015/slider/slider.component.js +2 -2
  119. package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +23 -3
  120. package/esm2015/smart-filters/common/model/base-filter-component.js +35 -8
  121. package/esm2015/smart-filters/common/model/creator.js +8 -2
  122. package/esm2015/smart-filters/common/model/field.js +12 -1
  123. package/esm2015/smart-filters/common/model/operator.js +8 -8
  124. package/esm2015/smart-filters/common/model/type.js +1 -1
  125. package/esm2015/smart-filters/date-filter/date-filter.component.js +45 -2
  126. package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +53 -14
  127. package/esm2015/smart-filters/number-filter/number-filter.component.js +27 -2
  128. package/esm2015/smart-filters/public-api.js +2 -1
  129. package/esm2015/smart-filters/smart-filters.component.js +2 -2
  130. package/esm2015/smart-filters/smart-filters.module.js +16 -3
  131. package/esm2015/smart-filters/text-filter/text-filter.component.js +79 -0
  132. package/esm2015/textarea/textarea.component.js +8 -3
  133. package/esm2015/textbox/textbox.component.js +6 -4
  134. package/esm2015/top-bar/top-bar.component.js +2 -2
  135. package/fesm2015/pepperi-addons-ngx-lib-address.js +1 -1
  136. package/fesm2015/pepperi-addons-ngx-lib-address.js.map +1 -1
  137. package/fesm2015/pepperi-addons-ngx-lib-attachment.js +7 -2
  138. package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +1 -1
  139. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js +1 -1
  140. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js.map +1 -1
  141. package/fesm2015/pepperi-addons-ngx-lib-button.js +1 -1
  142. package/fesm2015/pepperi-addons-ngx-lib-button.js.map +1 -1
  143. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +4 -1
  144. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +1 -1
  145. package/fesm2015/pepperi-addons-ngx-lib-color.js +8 -3
  146. package/fesm2015/pepperi-addons-ngx-lib-color.js.map +1 -1
  147. package/fesm2015/pepperi-addons-ngx-lib-date.js +4 -1
  148. package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
  149. package/fesm2015/pepperi-addons-ngx-lib-dialog.js +1 -1
  150. package/fesm2015/pepperi-addons-ngx-lib-dialog.js.map +1 -1
  151. package/fesm2015/pepperi-addons-ngx-lib-field-title.js +1 -1
  152. package/fesm2015/pepperi-addons-ngx-lib-field-title.js.map +1 -1
  153. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +1 -1
  154. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js.map +1 -1
  155. package/fesm2015/pepperi-addons-ngx-lib-form.js +19 -16
  156. package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
  157. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js +1 -1
  158. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js.map +1 -1
  159. package/fesm2015/pepperi-addons-ngx-lib-image.js +7 -2
  160. package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
  161. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +7 -2
  162. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
  163. package/fesm2015/pepperi-addons-ngx-lib-list.js +1 -1
  164. package/fesm2015/pepperi-addons-ngx-lib-list.js.map +1 -1
  165. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +7 -2
  166. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
  167. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +1014 -0
  168. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +1 -0
  169. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +7 -2
  170. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +1 -1
  171. package/fesm2015/pepperi-addons-ngx-lib-select.js +7 -2
  172. package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
  173. package/fesm2015/pepperi-addons-ngx-lib-separator.js +9 -1
  174. package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +1 -1
  175. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js +1 -1
  176. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js.map +1 -1
  177. package/fesm2015/pepperi-addons-ngx-lib-signature.js +7 -2
  178. package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +1 -1
  179. package/fesm2015/pepperi-addons-ngx-lib-slider.js +1 -1
  180. package/fesm2015/pepperi-addons-ngx-lib-slider.js.map +1 -1
  181. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +293 -36
  182. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
  183. package/fesm2015/pepperi-addons-ngx-lib-textarea.js +7 -2
  184. package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +1 -1
  185. package/fesm2015/pepperi-addons-ngx-lib-textbox.js +5 -3
  186. package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +1 -1
  187. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js +1 -1
  188. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js.map +1 -1
  189. package/fesm2015/pepperi-addons-ngx-lib.js +3 -1
  190. package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
  191. package/field-title/field-title.component.theme.scss +0 -2
  192. package/field-title/pepperi-addons-ngx-lib-field-title.metadata.json +1 -1
  193. package/files-uploader/files-uploader.component.theme.scss +3 -2
  194. package/files-uploader/pepperi-addons-ngx-lib-files-uploader.metadata.json +1 -1
  195. package/form/indicators.component.theme.scss +5 -5
  196. package/form/internal-button.component.d.ts +0 -1
  197. package/form/pepperi-addons-ngx-lib-form.metadata.json +1 -1
  198. package/group-buttons/group-buttons.component.theme.scss +11 -11
  199. package/group-buttons/pepperi-addons-ngx-lib-group-buttons.metadata.json +1 -1
  200. package/image/image.component.d.ts +1 -0
  201. package/image/image.component.theme.scss +28 -27
  202. package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
  203. package/images-filmstrip/images-filmstrip.component.d.ts +1 -0
  204. package/images-filmstrip/images-filmstrip.component.theme.scss +27 -26
  205. package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
  206. package/list/list-total.component.theme.scss +6 -6
  207. package/list/pepperi-addons-ngx-lib-list.metadata.json +1 -1
  208. package/package.json +5 -5
  209. package/page-layout/page-layout.component.theme.scss +6 -6
  210. package/pepperi-addons-ngx-lib.metadata.json +1 -1
  211. package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +1 -1
  212. package/quantity-selector/quantity-selector.component.d.ts +1 -0
  213. package/quantity-selector/quantity-selector.component.theme.scss +21 -21
  214. package/query-builder/common/model/field.d.ts +8 -0
  215. package/query-builder/common/model/filter.d.ts +6 -0
  216. package/query-builder/common/model/legacy.d.ts +29 -0
  217. package/query-builder/common/model/operator-unit.d.ts +13 -0
  218. package/query-builder/common/model/operator.d.ts +21 -0
  219. package/query-builder/common/model/structure.d.ts +4 -0
  220. package/query-builder/common/model/type-map.d.ts +12 -0
  221. package/query-builder/common/model/type.d.ts +4 -0
  222. package/query-builder/common/services/output-query.service.d.ts +44 -0
  223. package/query-builder/common/services/type-convertor.service.d.ts +10 -0
  224. package/query-builder/package.json +14 -0
  225. package/query-builder/pepperi-addons-ngx-lib-query-builder.d.ts +8 -0
  226. package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +1 -0
  227. package/query-builder/public-api.d.ts +4 -0
  228. package/query-builder/query-builder-item/query-builder-item.component.d.ts +37 -0
  229. package/query-builder/query-builder-section/query-builder-section.component.d.ts +27 -0
  230. package/query-builder/query-builder-section/query-builder-section.component.theme.scss +7 -0
  231. package/query-builder/query-builder.component.d.ts +35 -0
  232. package/query-builder/query-builder.module.d.ts +2 -0
  233. package/query-builder/query-builder.service.d.ts +94 -0
  234. package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +1 -1
  235. package/rich-html-textarea/rich-html-textarea.component.d.ts +1 -0
  236. package/rich-html-textarea/rich-html-textarea.component.theme.scss +77 -70
  237. package/select/pepperi-addons-ngx-lib-select.metadata.json +1 -1
  238. package/select/select.component.d.ts +1 -0
  239. package/select/select.component.theme.scss +98 -2
  240. package/separator/pepperi-addons-ngx-lib-separator.metadata.json +1 -1
  241. package/separator/separator.component.theme.scss +1 -1
  242. package/side-bar/pepperi-addons-ngx-lib-side-bar.metadata.json +1 -1
  243. package/side-bar/side-bar.component.theme.scss +17 -16
  244. package/signature/pepperi-addons-ngx-lib-signature.metadata.json +1 -1
  245. package/signature/signature.component.d.ts +1 -0
  246. package/signature/signature.component.theme.scss +5 -21
  247. package/slider/pepperi-addons-ngx-lib-slider.metadata.json +1 -1
  248. package/slider/slider.component.theme.scss +55 -53
  249. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +6 -1
  250. package/smart-filters/common/model/base-filter-component.d.ts +7 -0
  251. package/smart-filters/common/model/field.d.ts +4 -0
  252. package/smart-filters/common/model/operator.d.ts +1 -0
  253. package/smart-filters/common/model/type.d.ts +2 -2
  254. package/smart-filters/date-filter/date-filter.component.d.ts +8 -1
  255. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +6 -0
  256. package/smart-filters/number-filter/number-filter.component.d.ts +5 -0
  257. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
  258. package/smart-filters/public-api.d.ts +1 -0
  259. package/smart-filters/smart-filters.component.theme.scss +6 -7
  260. package/smart-filters/text-filter/text-filter.component.d.ts +17 -0
  261. package/src/assets/i18n/en.ngx-lib.json +2 -1
  262. package/src/core/style/abstracts/breakpoints.scss +4 -2
  263. package/src/core/style/abstracts/functions.scss +233 -216
  264. package/src/core/style/abstracts/mixins.scss +191 -188
  265. package/src/core/style/base/base.scss +125 -124
  266. package/src/core/style/base/grids.scss +1 -1
  267. package/src/core/style/base/typography.scss +66 -62
  268. package/src/core/style/components/button.scss +57 -60
  269. package/src/core/style/components/checkbox.scss +41 -38
  270. package/src/core/style/components/datetime.scss +182 -22
  271. package/src/core/style/components/file.scss +159 -141
  272. package/src/core/style/components/general.scss +180 -278
  273. package/src/core/style/components/input.scss +21 -24
  274. package/src/core/style/components/quantity-selector.scss +15 -12
  275. package/src/core/style/components/radio-button.scss +22 -38
  276. package/src/core/style/components/select.scss +184 -182
  277. package/src/core/style/components/signature.scss +14 -12
  278. package/src/core/style/components/splitter.scss +58 -55
  279. package/src/core/style/components/textarea.scss +89 -78
  280. package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +1 -1
  281. package/textarea/textarea.component.d.ts +1 -0
  282. package/textarea/textarea.component.theme.scss +3 -2
  283. package/textbox/pepperi-addons-ngx-lib-textbox.metadata.json +1 -1
  284. package/textbox/textbox.component.theme.scss +1 -1
  285. package/theming.scss +50 -144
  286. package/top-bar/pepperi-addons-ngx-lib-top-bar.metadata.json +1 -1
  287. package/top-bar/top-bar.component.theme.scss +7 -7
  288. package/form/form.component.theme.scss +0 -2
  289. package/form/internal-button.component.theme.scss +0 -2
  290. package/form/internal-menu.component.theme.scss +0 -3
  291. package/list/list-actions.component.theme.scss +0 -3
  292. package/list/list-carousel.component.theme.scss +0 -9
  293. package/list/list-chooser.component.theme.scss +0 -3
  294. package/list/list-pager.component.theme.scss +0 -3
  295. package/list/list-sorting.component.theme.scss +0 -3
  296. package/list/list-views.component.theme.scss +0 -3
  297. package/list/list.component.theme.scss +0 -5
  298. package/list/list_old.component.theme.scss +0 -5
  299. package/menu/menu.component.theme.scss +0 -2
  300. package/search/search.component.theme.scss +0 -3
  301. 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.
@@ -441,7 +441,7 @@
441
441
  selector: 'pep-smart-filters',
442
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>",
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 [
@@ -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'\">\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 <pep-textbox [fxFlex]=\"inline ? firstControlWidth : null\" [form]=\"form\" [key]=\"firstControlKey\"\n [label]=\"'SMART_FILTERS.AMOUNT' | translate\" [renderError]=\"false\" [renderTitle]=\"renderTitle\"\n [type]=\"field.type\" [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onValueChanged()\">\n </pep-textbox>\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\">\n <pep-select [value]=\"firstControl?.value || ''\" xAlignment=\"left\" [options]=\"options\" [renderTitle]=\"renderTitle\"\n [emptyOption]=\"true\" (valueChange)=\"onValueChanged($event)\">\n </pep-select>\n\n</ng-container>\n\n<div *ngIf=\"!inline\" [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>",
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'\">\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 === PepSmartFilterOperators.NotInTheLast ||\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 [formattedValue]=\"firstControl?.value || ''\" [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>",
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\">\n <pep-select [key]=\"'multi1'\" [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<div *ngIf=\"!inline\" [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>",
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'\">\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 <div *ngIf=\"operator !== PepSmartFilterOperators.NumberRange\" [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 [formattedValue]=\"firstControl?.value || ''\" [value]=\"firstControl?.value || ''\"\n (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n </div>\n <div *ngIf=\"operator === PepSmartFilterOperators.NumberRange\" fxLayout=\"row\" fxLayout.xs=\"column\"\n [fxLayoutGap]=\"inline ? '.5rem' : '1rem'\" [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 [formattedValue]=\"firstControl?.value || ''\" [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 [formattedValue]=\"secondControl?.value || ''\" [value]=\"secondControl?.value || ''\"\n [minValue]=\"firstControl?.value || ''\" (valueChange)=\"onValueChanged()\">\n </pep-textbox>\n </div>\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