@pepperi-addons/ngx-lib 0.2.59-query-builder.13 → 0.2.61-beta.2

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 (483) 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.theme.scss +4 -3
  5. package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +1 -1
  6. package/bread-crumbs/bread-crumbs.component.theme.scss +9 -9
  7. package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.metadata.json +1 -1
  8. package/bundles/pepperi-addons-ngx-lib-address.umd.js +2 -2
  9. package/bundles/pepperi-addons-ngx-lib-address.umd.js.map +1 -1
  10. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +2 -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 +2 -2
  13. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js.map +1 -1
  14. package/bundles/pepperi-addons-ngx-lib-button.umd.js +2 -2
  15. package/bundles/pepperi-addons-ngx-lib-button.umd.js.map +1 -1
  16. package/bundles/pepperi-addons-ngx-lib-carousel.umd.js.map +1 -1
  17. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +2 -2
  18. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +1 -1
  19. package/bundles/pepperi-addons-ngx-lib-color.umd.js +4 -4
  20. package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +1 -1
  21. package/bundles/pepperi-addons-ngx-lib-date.umd.js +2 -2
  22. package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
  23. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js +3 -3
  24. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js.map +1 -1
  25. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js +2 -2
  26. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js.map +1 -1
  27. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +2 -2
  28. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js.map +1 -1
  29. package/bundles/pepperi-addons-ngx-lib-form.umd.js +9 -9
  30. package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
  31. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js +2 -2
  32. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js.map +1 -1
  33. package/bundles/pepperi-addons-ngx-lib-icon.umd.js.map +1 -1
  34. package/bundles/pepperi-addons-ngx-lib-image.umd.js +2 -2
  35. package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
  36. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +2 -2
  37. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
  38. package/bundles/pepperi-addons-ngx-lib-list.umd.js +9 -9
  39. package/bundles/pepperi-addons-ngx-lib-list.umd.js.map +1 -1
  40. package/bundles/pepperi-addons-ngx-lib-menu.umd.js +2 -2
  41. package/bundles/pepperi-addons-ngx-lib-menu.umd.js.map +1 -1
  42. package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js +1 -1
  43. package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js.map +1 -1
  44. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +2 -2
  45. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
  46. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +45 -45
  47. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +1 -1
  48. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +2 -2
  49. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +1 -1
  50. package/bundles/pepperi-addons-ngx-lib-search.umd.js +1 -1
  51. package/bundles/pepperi-addons-ngx-lib-search.umd.js.map +1 -1
  52. package/bundles/pepperi-addons-ngx-lib-select.umd.js +2 -2
  53. package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
  54. package/bundles/pepperi-addons-ngx-lib-separator.umd.js +2 -2
  55. package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +1 -1
  56. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js +2 -2
  57. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js.map +1 -1
  58. package/bundles/pepperi-addons-ngx-lib-signature.umd.js +2 -2
  59. package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +1 -1
  60. package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js +1 -1
  61. package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js.map +1 -1
  62. package/bundles/pepperi-addons-ngx-lib-slider.umd.js +2 -2
  63. package/bundles/pepperi-addons-ngx-lib-slider.umd.js.map +1 -1
  64. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +8 -8
  65. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
  66. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +2 -2
  67. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +1 -1
  68. package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js +1 -1
  69. package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js.map +1 -1
  70. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +2 -2
  71. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +1 -1
  72. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js +2 -2
  73. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js.map +1 -1
  74. package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
  75. package/button/button.component.theme.scss +0 -2
  76. package/button/pepperi-addons-ngx-lib-button.metadata.json +1 -1
  77. package/checkbox/checkbox.component.theme.scss +0 -2
  78. package/checkbox/pepperi-addons-ngx-lib-checkbox.metadata.json +1 -1
  79. package/color/color-picker.component.theme.scss +170 -175
  80. package/color/color.component.theme.scss +0 -7
  81. package/color/pepperi-addons-ngx-lib-color.metadata.json +1 -1
  82. package/date/date.component.theme.scss +39 -45
  83. package/date/pepperi-addons-ngx-lib-date.metadata.json +1 -1
  84. package/dialog/dialog.component.theme.scss +5 -5
  85. package/dialog/pepperi-addons-ngx-lib-dialog.metadata.json +1 -1
  86. package/esm2015/address/address.component.js +3 -3
  87. package/esm2015/address/address.module.js +1 -1
  88. package/esm2015/address/public-api.js +1 -1
  89. package/esm2015/attachment/attachment.component.js +3 -3
  90. package/esm2015/attachment/attachment.module.js +1 -1
  91. package/esm2015/attachment/public-api.js +1 -1
  92. package/esm2015/bread-crumbs/bread-crumbs.component.js +3 -3
  93. package/esm2015/bread-crumbs/bread-crumbs.model.js +1 -1
  94. package/esm2015/bread-crumbs/bread-crumbs.module.js +1 -1
  95. package/esm2015/bread-crumbs/public-api.js +1 -1
  96. package/esm2015/button/button.component.js +3 -3
  97. package/esm2015/button/button.model.js +1 -1
  98. package/esm2015/button/button.module.js +1 -1
  99. package/esm2015/button/public-api.js +1 -1
  100. package/esm2015/carousel/carousel-item.directive.js +1 -1
  101. package/esm2015/carousel/carousel.component.js +15 -15
  102. package/esm2015/carousel/carousel.module.js +1 -1
  103. package/esm2015/carousel/public-api.js +1 -1
  104. package/esm2015/checkbox/checkbox.component.js +3 -3
  105. package/esm2015/checkbox/checkbox.module.js +1 -1
  106. package/esm2015/checkbox/public-api.js +1 -1
  107. package/esm2015/color/color-picker.component.js +29 -29
  108. package/esm2015/color/color.component.js +3 -3
  109. package/esm2015/color/color.model.js +1 -1
  110. package/esm2015/color/color.module.js +1 -1
  111. package/esm2015/color/public-api.js +1 -1
  112. package/esm2015/core/clipboard/clipboard.directive.js +1 -1
  113. package/esm2015/core/clipboard/clipboard.service.js +1 -1
  114. package/esm2015/core/clipboard/index.js +1 -1
  115. package/esm2015/core/clipboard/public-api.js +1 -1
  116. package/esm2015/core/common/directives/auto-width.directive.js +1 -1
  117. package/esm2015/core/common/directives/button-blur.directive.js +1 -1
  118. package/esm2015/core/common/directives/button-loader.directive.js +1 -1
  119. package/esm2015/core/common/directives/data-qa.directive.js +1 -1
  120. package/esm2015/core/common/directives/index.js +1 -1
  121. package/esm2015/core/common/directives/menu-blur.directive.js +1 -1
  122. package/esm2015/core/common/directives/prevent-multi-click.directive.js +1 -1
  123. package/esm2015/core/common/directives/public-api.js +1 -1
  124. package/esm2015/core/common/index.js +1 -1
  125. package/esm2015/core/common/model/index.js +1 -1
  126. package/esm2015/core/common/model/papi.model.js +1 -1
  127. package/esm2015/core/common/model/public-api.js +1 -1
  128. package/esm2015/core/common/model/utilities.model.js +1 -1
  129. package/esm2015/core/common/model/wapi.model.js +1 -1
  130. package/esm2015/core/common/pipes/common-pipes.js +1 -1
  131. package/esm2015/core/common/pipes/index.js +1 -1
  132. package/esm2015/core/common/pipes/public-api.js +1 -1
  133. package/esm2015/core/common/public-api.js +1 -1
  134. package/esm2015/core/common/services/addon.service.js +1 -1
  135. package/esm2015/core/common/services/color.service.js +1 -1
  136. package/esm2015/core/common/services/cookie.service.js +1 -1
  137. package/esm2015/core/common/services/data-convertor.service.js +1 -1
  138. package/esm2015/core/common/services/file.service.js +1 -1
  139. package/esm2015/core/common/services/index.js +1 -1
  140. package/esm2015/core/common/services/jwt-helper.service.js +1 -1
  141. package/esm2015/core/common/services/public-api.js +1 -1
  142. package/esm2015/core/common/services/session.service.js +1 -1
  143. package/esm2015/core/common/services/utilities.service.js +1 -1
  144. package/esm2015/core/common/services/validator.service.js +1 -1
  145. package/esm2015/core/common/services/window-scrolling.service.js +5 -5
  146. package/esm2015/core/customization/customization.model.js +1 -1
  147. package/esm2015/core/customization/customization.service.js +1 -1
  148. package/esm2015/core/customization/index.js +1 -1
  149. package/esm2015/core/customization/public-api.js +1 -1
  150. package/esm2015/core/http/index.js +1 -1
  151. package/esm2015/core/http/interceptors/error.interceptor.js +1 -1
  152. package/esm2015/core/http/interceptors/index.js +1 -1
  153. package/esm2015/core/http/interceptors/loader.interceptor.js +1 -1
  154. package/esm2015/core/http/interceptors/profiler.interceptor.js +1 -1
  155. package/esm2015/core/http/public-api.js +1 -1
  156. package/esm2015/core/http/services/http.service.js +1 -1
  157. package/esm2015/core/http/services/loader.service.js +1 -1
  158. package/esm2015/core/index.js +1 -1
  159. package/esm2015/core/layout/index.js +1 -1
  160. package/esm2015/core/layout/layout.service.js +1 -1
  161. package/esm2015/core/layout/public-api.js +1 -1
  162. package/esm2015/core/layout/rtl.directive.js +1 -1
  163. package/esm2015/core/portal/attach.directive.js +1 -1
  164. package/esm2015/core/portal/index.js +1 -1
  165. package/esm2015/core/portal/portal.service.js +1 -1
  166. package/esm2015/core/portal/public-api.js +1 -1
  167. package/esm2015/core/portal/target.directive.js +1 -1
  168. package/esm2015/core/public-api.js +1 -1
  169. package/esm2015/core/scroll-to/index.js +1 -1
  170. package/esm2015/core/scroll-to/public-api.js +1 -1
  171. package/esm2015/core/scroll-to/scroll-to.service.js +1 -1
  172. package/esm2015/date/date.component.js +3 -3
  173. package/esm2015/date/date.module.js +1 -1
  174. package/esm2015/date/public-api.js +1 -1
  175. package/esm2015/dialog/default-dialog.component.js +2 -2
  176. package/esm2015/dialog/dialog.component.js +3 -3
  177. package/esm2015/dialog/dialog.model.js +1 -1
  178. package/esm2015/dialog/dialog.module.js +1 -1
  179. package/esm2015/dialog/dialog.service.js +1 -1
  180. package/esm2015/dialog/public-api.js +1 -1
  181. package/esm2015/field-title/field-title.component.js +3 -3
  182. package/esm2015/field-title/field-title.module.js +1 -1
  183. package/esm2015/field-title/public-api.js +1 -1
  184. package/esm2015/files-uploader/files-uploader.component.js +3 -3
  185. package/esm2015/files-uploader/files-uploader.module.js +1 -1
  186. package/esm2015/files-uploader/public-api.js +1 -1
  187. package/esm2015/form/field-generator.component.js +2 -2
  188. package/esm2015/form/form.component.js +2 -2
  189. package/esm2015/form/form.module.js +1 -1
  190. package/esm2015/form/indicators.component.js +3 -3
  191. package/esm2015/form/internal-button.component.js +2 -2
  192. package/esm2015/form/internal-carusel.component.js +2 -2
  193. package/esm2015/form/internal-carusel.service.js +1 -1
  194. package/esm2015/form/internal-list.component.js +2 -2
  195. package/esm2015/form/internal-menu.component.js +2 -2
  196. package/esm2015/form/internal-page.component.js +2 -2
  197. package/esm2015/form/internal-page.service.js +1 -1
  198. package/esm2015/form/public-api.js +1 -1
  199. package/esm2015/group-buttons/group-buttons.component.js +3 -3
  200. package/esm2015/group-buttons/group-buttons.module.js +1 -1
  201. package/esm2015/group-buttons/public-api.js +1 -1
  202. package/esm2015/icon/icon-generated-all.model.js +1 -1
  203. package/esm2015/icon/icon-generated.model.js +1 -1
  204. package/esm2015/icon/icon-registry.service.js +2 -2
  205. package/esm2015/icon/icon.component.js +1 -1
  206. package/esm2015/icon/icon.module.js +1 -1
  207. package/esm2015/icon/public-api.js +1 -1
  208. package/esm2015/image/image.component.js +3 -3
  209. package/esm2015/image/image.module.js +1 -1
  210. package/esm2015/image/public-api.js +1 -1
  211. package/esm2015/images-filmstrip/images-filmstrip.component.js +3 -3
  212. package/esm2015/images-filmstrip/images-filmstrip.module.js +1 -1
  213. package/esm2015/images-filmstrip/public-api.js +1 -1
  214. package/esm2015/list/list-actions.component.js +2 -2
  215. package/esm2015/list/list-carousel.component.js +2 -2
  216. package/esm2015/list/list-chooser.component.js +2 -2
  217. package/esm2015/list/list-pager.component.js +2 -2
  218. package/esm2015/list/list-sorting.component.js +2 -2
  219. package/esm2015/list/list-total.component.js +3 -3
  220. package/esm2015/list/list-views.component.js +2 -2
  221. package/esm2015/list/list.component.js +2 -2
  222. package/esm2015/list/list.model.js +1 -1
  223. package/esm2015/list/list.module.js +1 -1
  224. package/esm2015/list/public-api.js +1 -1
  225. package/esm2015/menu/menu-item.component.js +2 -2
  226. package/esm2015/menu/menu.component.js +2 -2
  227. package/esm2015/menu/menu.model.js +1 -1
  228. package/esm2015/menu/menu.module.js +1 -1
  229. package/esm2015/menu/public-api.js +1 -1
  230. package/esm2015/ngx-lib.module.js +1 -1
  231. package/esm2015/page-layout/page-layout.component.js +2 -2
  232. package/esm2015/page-layout/page-layout.module.js +1 -1
  233. package/esm2015/page-layout/public-api.js +1 -1
  234. package/esm2015/public-api.js +1 -1
  235. package/esm2015/quantity-selector/public-api.js +1 -1
  236. package/esm2015/quantity-selector/quantity-selector-validation.directive.js +1 -1
  237. package/esm2015/quantity-selector/quantity-selector.component.js +3 -3
  238. package/esm2015/quantity-selector/quantity-selector.module.js +1 -1
  239. package/esm2015/quantity-selector/quantity-selector.pipes.js +1 -1
  240. package/esm2015/query-builder/common/model/field.js +2 -0
  241. package/esm2015/query-builder/common/model/filter.js +1 -1
  242. package/esm2015/query-builder/common/model/legacy.js +1 -1
  243. package/esm2015/query-builder/common/model/operator-unit.js +1 -1
  244. package/esm2015/query-builder/common/model/operator.js +1 -1
  245. package/esm2015/query-builder/common/model/structure.js +1 -1
  246. package/esm2015/query-builder/common/model/type-map.js +1 -1
  247. package/esm2015/query-builder/common/model/type.js +1 -1
  248. package/esm2015/query-builder/common/services/output-query.service.js +5 -5
  249. package/esm2015/query-builder/common/services/type-convertor.service.js +1 -1
  250. package/esm2015/query-builder/public-api.js +1 -1
  251. package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +28 -20
  252. package/esm2015/query-builder/query-builder-section/query-builder-section.component.js +3 -3
  253. package/esm2015/query-builder/query-builder.component.js +2 -2
  254. package/esm2015/query-builder/query-builder.module.js +1 -1
  255. package/esm2015/query-builder/query-builder.service.js +8 -20
  256. package/esm2015/rich-html-textarea/public-api.js +1 -1
  257. package/esm2015/rich-html-textarea/rich-html-textarea.component.js +3 -3
  258. package/esm2015/rich-html-textarea/rich-html-textarea.module.js +1 -1
  259. package/esm2015/search/public-api.js +1 -1
  260. package/esm2015/search/search.component.js +2 -2
  261. package/esm2015/search/search.model.js +1 -1
  262. package/esm2015/search/search.module.js +1 -1
  263. package/esm2015/select/public-api.js +1 -1
  264. package/esm2015/select/select.component.js +3 -3
  265. package/esm2015/select/select.module.js +1 -1
  266. package/esm2015/separator/public-api.js +1 -1
  267. package/esm2015/separator/separator.component.js +3 -3
  268. package/esm2015/separator/separator.module.js +1 -1
  269. package/esm2015/side-bar/public-api.js +1 -1
  270. package/esm2015/side-bar/side-bar.component.js +3 -3
  271. package/esm2015/side-bar/side-bar.model.js +1 -1
  272. package/esm2015/side-bar/side-bar.module.js +1 -1
  273. package/esm2015/signature/public-api.js +1 -1
  274. package/esm2015/signature/signature.component.js +3 -3
  275. package/esm2015/signature/signature.module.js +1 -1
  276. package/esm2015/size-detector/public-api.js +1 -1
  277. package/esm2015/size-detector/size-detector.component.js +2 -2
  278. package/esm2015/size-detector/size-detector.module.js +1 -1
  279. package/esm2015/slider/public-api.js +1 -1
  280. package/esm2015/slider/slider.component.js +3 -3
  281. package/esm2015/slider/slider.module.js +1 -1
  282. package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +2 -2
  283. package/esm2015/smart-filters/common/filter-actions.component.js +2 -2
  284. package/esm2015/smart-filters/common/model/base-filter-component.js +1 -1
  285. package/esm2015/smart-filters/common/model/creator.js +1 -1
  286. package/esm2015/smart-filters/common/model/field.js +1 -1
  287. package/esm2015/smart-filters/common/model/filter.js +1 -1
  288. package/esm2015/smart-filters/common/model/operator.js +1 -1
  289. package/esm2015/smart-filters/common/model/type.js +1 -1
  290. package/esm2015/smart-filters/date-filter/date-filter.component.js +2 -2
  291. package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +2 -2
  292. package/esm2015/smart-filters/number-filter/number-filter.component.js +2 -2
  293. package/esm2015/smart-filters/public-api.js +1 -1
  294. package/esm2015/smart-filters/smart-filters.component.js +3 -3
  295. package/esm2015/smart-filters/smart-filters.module.js +1 -1
  296. package/esm2015/smart-filters/text-filter/text-filter.component.js +2 -2
  297. package/esm2015/textarea/public-api.js +1 -1
  298. package/esm2015/textarea/textarea.component.js +3 -3
  299. package/esm2015/textarea/textarea.module.js +1 -1
  300. package/esm2015/textbox/public-api.js +1 -1
  301. package/esm2015/textbox/textbox-validation.directive.js +1 -1
  302. package/esm2015/textbox/textbox.component.js +3 -3
  303. package/esm2015/textbox/textbox.module.js +1 -1
  304. package/esm2015/textbox-icon/public-api.js +1 -1
  305. package/esm2015/textbox-icon/textbox-icon.component.js +2 -2
  306. package/esm2015/textbox-icon/textbox-icon.module.js +1 -1
  307. package/esm2015/top-bar/public-api.js +1 -1
  308. package/esm2015/top-bar/top-bar.component.js +3 -3
  309. package/esm2015/top-bar/top-bar.model.js +1 -1
  310. package/esm2015/top-bar/top-bar.module.js +1 -1
  311. package/fesm2015/pepperi-addons-ngx-lib-address.js +2 -2
  312. package/fesm2015/pepperi-addons-ngx-lib-address.js.map +1 -1
  313. package/fesm2015/pepperi-addons-ngx-lib-attachment.js +2 -2
  314. package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +1 -1
  315. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js +2 -2
  316. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js.map +1 -1
  317. package/fesm2015/pepperi-addons-ngx-lib-button.js +2 -2
  318. package/fesm2015/pepperi-addons-ngx-lib-button.js.map +1 -1
  319. package/fesm2015/pepperi-addons-ngx-lib-carousel.js +14 -14
  320. package/fesm2015/pepperi-addons-ngx-lib-carousel.js.map +1 -1
  321. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +2 -2
  322. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +1 -1
  323. package/fesm2015/pepperi-addons-ngx-lib-color.js +30 -30
  324. package/fesm2015/pepperi-addons-ngx-lib-color.js.map +1 -1
  325. package/fesm2015/pepperi-addons-ngx-lib-date.js +2 -2
  326. package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
  327. package/fesm2015/pepperi-addons-ngx-lib-dialog.js +3 -3
  328. package/fesm2015/pepperi-addons-ngx-lib-dialog.js.map +1 -1
  329. package/fesm2015/pepperi-addons-ngx-lib-field-title.js +2 -2
  330. package/fesm2015/pepperi-addons-ngx-lib-field-title.js.map +1 -1
  331. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +2 -2
  332. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js.map +1 -1
  333. package/fesm2015/pepperi-addons-ngx-lib-form.js +9 -9
  334. package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
  335. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js +2 -2
  336. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js.map +1 -1
  337. package/fesm2015/pepperi-addons-ngx-lib-icon.js +1 -1
  338. package/fesm2015/pepperi-addons-ngx-lib-icon.js.map +1 -1
  339. package/fesm2015/pepperi-addons-ngx-lib-image.js +2 -2
  340. package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
  341. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +2 -2
  342. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
  343. package/fesm2015/pepperi-addons-ngx-lib-list.js +9 -9
  344. package/fesm2015/pepperi-addons-ngx-lib-list.js.map +1 -1
  345. package/fesm2015/pepperi-addons-ngx-lib-menu.js +2 -2
  346. package/fesm2015/pepperi-addons-ngx-lib-menu.js.map +1 -1
  347. package/fesm2015/pepperi-addons-ngx-lib-page-layout.js +1 -1
  348. package/fesm2015/pepperi-addons-ngx-lib-page-layout.js.map +1 -1
  349. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +2 -2
  350. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
  351. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +41 -45
  352. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +1 -1
  353. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +2 -2
  354. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +1 -1
  355. package/fesm2015/pepperi-addons-ngx-lib-search.js +1 -1
  356. package/fesm2015/pepperi-addons-ngx-lib-search.js.map +1 -1
  357. package/fesm2015/pepperi-addons-ngx-lib-select.js +2 -2
  358. package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
  359. package/fesm2015/pepperi-addons-ngx-lib-separator.js +2 -2
  360. package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +1 -1
  361. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js +2 -2
  362. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js.map +1 -1
  363. package/fesm2015/pepperi-addons-ngx-lib-signature.js +2 -2
  364. package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +1 -1
  365. package/fesm2015/pepperi-addons-ngx-lib-size-detector.js +1 -1
  366. package/fesm2015/pepperi-addons-ngx-lib-size-detector.js.map +1 -1
  367. package/fesm2015/pepperi-addons-ngx-lib-slider.js +2 -2
  368. package/fesm2015/pepperi-addons-ngx-lib-slider.js.map +1 -1
  369. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +8 -8
  370. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
  371. package/fesm2015/pepperi-addons-ngx-lib-textarea.js +2 -2
  372. package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +1 -1
  373. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js +1 -1
  374. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js.map +1 -1
  375. package/fesm2015/pepperi-addons-ngx-lib-textbox.js +2 -2
  376. package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +1 -1
  377. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js +2 -2
  378. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js.map +1 -1
  379. package/fesm2015/pepperi-addons-ngx-lib.js +4 -4
  380. package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
  381. package/field-title/field-title.component.theme.scss +0 -2
  382. package/field-title/pepperi-addons-ngx-lib-field-title.metadata.json +1 -1
  383. package/files-uploader/files-uploader.component.theme.scss +3 -2
  384. package/files-uploader/pepperi-addons-ngx-lib-files-uploader.metadata.json +1 -1
  385. package/form/indicators.component.theme.scss +7 -7
  386. package/form/pepperi-addons-ngx-lib-form.metadata.json +1 -1
  387. package/group-buttons/group-buttons.component.theme.scss +15 -15
  388. package/group-buttons/pepperi-addons-ngx-lib-group-buttons.metadata.json +1 -1
  389. package/image/image.component.theme.scss +33 -35
  390. package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
  391. package/images-filmstrip/images-filmstrip.component.theme.scss +33 -32
  392. package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
  393. package/list/list-total.component.theme.scss +10 -10
  394. package/list/pepperi-addons-ngx-lib-list.metadata.json +1 -1
  395. package/menu/pepperi-addons-ngx-lib-menu.metadata.json +1 -1
  396. package/package.json +5 -5
  397. package/page-layout/page-layout.component.theme.scss +7 -7
  398. package/page-layout/pepperi-addons-ngx-lib-page-layout.metadata.json +1 -1
  399. package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +1 -1
  400. package/quantity-selector/quantity-selector.component.theme.scss +79 -77
  401. package/query-builder/common/model/field.d.ts +8 -0
  402. package/query-builder/common/model/legacy.d.ts +5 -2
  403. package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +1 -1
  404. package/query-builder/query-builder-item/query-builder-item.component.d.ts +6 -3
  405. package/query-builder/query-builder-section/query-builder-section.component.theme.scss +6 -5
  406. package/query-builder/query-builder.service.d.ts +1 -1
  407. package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +1 -1
  408. package/rich-html-textarea/rich-html-textarea.component.theme.scss +243 -236
  409. package/search/pepperi-addons-ngx-lib-search.metadata.json +1 -1
  410. package/select/pepperi-addons-ngx-lib-select.metadata.json +1 -1
  411. package/select/select.component.theme.scss +97 -1
  412. package/separator/pepperi-addons-ngx-lib-separator.metadata.json +1 -1
  413. package/separator/separator.component.theme.scss +2 -2
  414. package/side-bar/pepperi-addons-ngx-lib-side-bar.metadata.json +1 -1
  415. package/side-bar/side-bar.component.theme.scss +26 -25
  416. package/signature/pepperi-addons-ngx-lib-signature.metadata.json +1 -1
  417. package/signature/signature.component.theme.scss +12 -28
  418. package/size-detector/pepperi-addons-ngx-lib-size-detector.metadata.json +1 -1
  419. package/slider/pepperi-addons-ngx-lib-slider.metadata.json +1 -1
  420. package/slider/slider.component.theme.scss +67 -65
  421. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
  422. package/smart-filters/smart-filters.component.theme.scss +9 -10
  423. package/src/assets/i18n/de.ngx-lib.json +77 -77
  424. package/src/assets/i18n/en.ngx-lib.json +139 -139
  425. package/src/assets/i18n/es.ngx-lib.json +77 -77
  426. package/src/assets/i18n/fr.ngx-lib.json +78 -78
  427. package/src/assets/i18n/he.ngx-lib.json +78 -78
  428. package/src/assets/i18n/hu.ngx-lib.json +78 -78
  429. package/src/assets/i18n/it.ngx-lib.json +78 -78
  430. package/src/assets/i18n/ja.ngx-lib.json +78 -78
  431. package/src/assets/i18n/nl.ngx-lib.json +78 -78
  432. package/src/assets/i18n/pl.ngx-lib.json +78 -78
  433. package/src/assets/i18n/pt.ngx-lib.json +78 -78
  434. package/src/assets/i18n/ru.ngx-lib.json +78 -78
  435. package/src/assets/i18n/zh.ngx-lib.json +76 -76
  436. package/src/assets/images/no-image.svg +41 -41
  437. package/src/core/style/abstracts/breakpoints.scss +37 -35
  438. package/src/core/style/abstracts/functions.scss +439 -422
  439. package/src/core/style/abstracts/mixins.scss +800 -797
  440. package/src/core/style/abstracts/variables.scss +545 -545
  441. package/src/core/style/base/base.scss +874 -873
  442. package/src/core/style/base/grids.scss +4 -4
  443. package/src/core/style/base/helpers.scss +70 -70
  444. package/src/core/style/base/typography.scss +259 -255
  445. package/src/core/style/components/button.scss +346 -349
  446. package/src/core/style/components/checkbox.scss +476 -473
  447. package/src/core/style/components/datetime.scss +182 -22
  448. package/src/core/style/components/file.scss +237 -219
  449. package/src/core/style/components/general.scss +988 -1088
  450. package/src/core/style/components/input.scss +91 -94
  451. package/src/core/style/components/quantity-selector.scss +17 -14
  452. package/src/core/style/components/radio-button.scss +152 -168
  453. package/src/core/style/components/select.scss +187 -185
  454. package/src/core/style/components/signature.scss +14 -12
  455. package/src/core/style/components/splitter.scss +67 -64
  456. package/src/core/style/components/textarea.scss +206 -195
  457. package/src/core/style/themes/black-theme.scss +7 -7
  458. package/src/core/style/themes/default-theme.scss +144 -144
  459. package/src/core/style/themes/light-theme.scss +7 -7
  460. package/src/core/style/themes/nature-theme.scss +7 -7
  461. package/src/core/style/vendors/normalize.scss +497 -497
  462. package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +1 -1
  463. package/textarea/textarea.component.theme.scss +3 -2
  464. package/textbox/pepperi-addons-ngx-lib-textbox.metadata.json +1 -1
  465. package/textbox/textbox.component.theme.scss +3 -3
  466. package/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.metadata.json +1 -1
  467. package/theming.scss +126 -224
  468. package/top-bar/pepperi-addons-ngx-lib-top-bar.metadata.json +1 -1
  469. package/top-bar/top-bar.component.theme.scss +9 -9
  470. package/form/form.component.theme.scss +0 -2
  471. package/form/internal-button.component.theme.scss +0 -2
  472. package/form/internal-menu.component.theme.scss +0 -3
  473. package/list/list-actions.component.theme.scss +0 -3
  474. package/list/list-carousel.component.theme.scss +0 -9
  475. package/list/list-chooser.component.theme.scss +0 -3
  476. package/list/list-pager.component.theme.scss +0 -3
  477. package/list/list-sorting.component.theme.scss +0 -3
  478. package/list/list-views.component.theme.scss +0 -3
  479. package/list/list.component.theme.scss +0 -5
  480. package/list/list_old.component.theme.scss +0 -5
  481. package/menu/menu.component.theme.scss +0 -2
  482. package/search/search.component.theme.scss +0 -3
  483. package/textbox-icon/textbox-icon.component.theme.scss +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"pepperi-addons-ngx-lib-smart-filters.js","sources":["../../../projects/ngx-lib/smart-filters/smart-filters.component.ts","../../../projects/ngx-lib/smart-filters/common/filter-actions.component.ts","../../../projects/ngx-lib/smart-filters/common/model/operator.ts","../../../projects/ngx-lib/smart-filters/common/model/base-filter-component.ts","../../../projects/ngx-lib/smart-filters/text-filter/text-filter.component.ts","../../../projects/ngx-lib/smart-filters/boolean-filter/boolean-filter.component.ts","../../../projects/ngx-lib/smart-filters/date-filter/date-filter.component.ts","../../../projects/ngx-lib/smart-filters/multi-select-filter/multi-select-filter.component.ts","../../../projects/ngx-lib/smart-filters/number-filter/number-filter.component.ts","../../../projects/ngx-lib/smart-filters/smart-filters.module.ts","../../../projects/ngx-lib/smart-filters/common/model/field.ts","../../../projects/ngx-lib/smart-filters/common/model/creator.ts","../../../projects/ngx-lib/smart-filters/public-api.ts","../../../projects/ngx-lib/smart-filters/pepperi-addons-ngx-lib-smart-filters.ts"],"sourcesContent":["import {\r\n Component,\r\n Input,\r\n ChangeDetectionStrategy,\r\n Output,\r\n EventEmitter,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport {\r\n IPepSmartFilterField,\r\n PepSmartFilterBaseField,\r\n} from './common/model/field';\r\nimport { PepLayoutService } from '@pepperi-addons/ngx-lib';\r\nimport { IPepSmartFilterData } from './common/model/filter';\r\n\r\n@Component({\r\n selector: 'pep-smart-filters',\r\n templateUrl: './smart-filters.component.html',\r\n styleUrls: ['./smart-filters.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PepSmartFiltersComponent {\r\n\r\n @Input() title = '';\r\n\r\n filtersDataMap: Map<string, IPepSmartFilterData> = new Map<\r\n string,\r\n IPepSmartFilterData\r\n >();\r\n\r\n private _filters: IPepSmartFilterData[] = [];\r\n @Input()\r\n set filters(value: IPepSmartFilterData[]) {\r\n this._filters = value;\r\n this.setupFilters(value);\r\n }\r\n get filters(): IPepSmartFilterData[] {\r\n this._filters = [...this.filtersDataMap.keys()]\r\n // .filter((key) => this.filtersDataMap.get(key) !== null)\r\n .map((key) => {\r\n if (key) {\r\n return this.filtersDataMap.get(key);\r\n }\r\n });\r\n\r\n return this._filters;\r\n }\r\n\r\n private _fields: Array<IPepSmartFilterField> = [];\r\n @Input()\r\n set fields(value: Array<IPepSmartFilterField>) {\r\n this._fields = value;\r\n }\r\n get fields(): Array<IPepSmartFilterField> {\r\n return this._fields;\r\n }\r\n\r\n private _useAsWebComponent = false;\r\n @Input()\r\n set useAsWebComponent(value: boolean) {\r\n if (value) {\r\n this.exportFunctionsOnHostElement();\r\n }\r\n }\r\n get useAsWebComponent(): boolean {\r\n return this._useAsWebComponent;\r\n }\r\n\r\n // @Output()\r\n // filtersClear: EventEmitter<void> = new EventEmitter<void>();\r\n @Output()\r\n filtersChange: EventEmitter<IPepSmartFilterData[]> = new EventEmitter<\r\n IPepSmartFilterData[]\r\n >();\r\n\r\n @Output()\r\n fieldToggleChange: EventEmitter<IPepSmartFilterField> = new EventEmitter<IPepSmartFilterField>();\r\n\r\n expansionPanelHeaderHeight = '*';\r\n\r\n constructor(\r\n private hostElement: ElementRef,\r\n public layoutService: PepLayoutService\r\n ) { }\r\n\r\n private exportFunctionsOnHostElement() {\r\n // This is for web component usage for use those functions.\r\n this.hostElement.nativeElement.clearFilters = this.clearFilters.bind(\r\n this\r\n );\r\n this.hostElement.nativeElement.clearFilter = this.clearFilter.bind(\r\n this\r\n );\r\n this.hostElement.nativeElement.toggleField = this.toggleField.bind(\r\n this\r\n );\r\n }\r\n\r\n private setupFilters(value: IPepSmartFilterData[]) {\r\n this.filtersDataMap.clear();\r\n if (value) {\r\n value.forEach((filter) => {\r\n // Validate before add the filter into the map.\r\n let currentField = null;\r\n\r\n if (this.fields && this.fields.length > 0) {\r\n currentField = this.fields.find(\r\n (field) => field.id === filter.fieldId\r\n ) as PepSmartFilterBaseField;\r\n }\r\n\r\n if (currentField) {\r\n // Only if the operator is from the same type\r\n if (\r\n filter.operator.componentType.includes(\r\n currentField.componentType\r\n )\r\n ) {\r\n let isOperatorUnitValid = true;\r\n if (filter.operatorUnit) {\r\n // Only if the operator unit is not from the same type\r\n if (\r\n !filter.operatorUnit.componentType.includes(\r\n currentField.componentType\r\n )\r\n ) {\r\n isOperatorUnitValid = false;\r\n }\r\n }\r\n\r\n // Add the filter.\r\n if (isOperatorUnitValid) {\r\n this.filtersDataMap.set(filter.fieldId, filter);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n private raiseFiltersChange(): void {\r\n this.filtersChange.emit(this.filters);\r\n }\r\n\r\n toggleField(index: number, isOpen: boolean): void {\r\n this.fields[index].isOpen = isOpen;\r\n this.fieldToggleChange.emit(this.fields[index]);\r\n }\r\n\r\n clearFilters() {\r\n this.filtersDataMap.clear();\r\n }\r\n\r\n clearFilter(fieldId: string) {\r\n this.filtersDataMap.delete(fieldId);\r\n }\r\n\r\n // Clear all the filters and raise event that filters has change.\r\n onFiltersClear() {\r\n this.clearFilters();\r\n this.raiseFiltersChange();\r\n }\r\n\r\n // Clear the filter and raise event that filters has change.\r\n onFilterClear(field: IPepSmartFilterField) {\r\n this.clearFilter(field.id);\r\n this.raiseFiltersChange();\r\n }\r\n\r\n // Set the filter and raise event that filters has change.\r\n onFilterChange(\r\n field: IPepSmartFilterField,\r\n filterData: IPepSmartFilterData\r\n ) {\r\n this.clearFilter(field.id);\r\n this.filtersDataMap.set(field.id, filterData);\r\n this.raiseFiltersChange();\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'pep-filter-actions',\r\n templateUrl: './filter-actions.component.html',\r\n styleUrls: ['./filter-actions.component.scss'],\r\n})\r\nexport class PepFilterActionsComponent {\r\n @Input() form: FormGroup;\r\n\r\n @Output() clearClick: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() applyClick: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n clear() {\r\n this.clearClick.emit();\r\n }\r\n\r\n apply() {\r\n this.applyClick.emit();\r\n }\r\n}\r\n","import {\r\n PepSmartFilterComponentType,\r\n PepSmartFilterOperatorType,\r\n PepSmartFilterOperatorUnitType,\r\n} from './type';\r\nexport class IPepSmartFilterOperator {\r\n id: PepSmartFilterOperatorType;\r\n name: string;\r\n short: string;\r\n componentType: PepSmartFilterComponentType[];\r\n}\r\n\r\nconst Equals: IPepSmartFilterOperator = {\r\n id: 'eq',\r\n name: 'EQUAL',\r\n short: '=',\r\n componentType: [\r\n 'number',\r\n 'boolean'\r\n // 'multi-select',\r\n // 'date',\r\n // 'text',\r\n // 'auto-complete',\r\n // 'select',\r\n ],\r\n};\r\n\r\nconst NotEqual: IPepSmartFilterOperator = {\r\n id: 'neq',\r\n name: 'NOT_EQUAL',\r\n short: '<>',\r\n componentType: [\r\n 'number',\r\n // 'multi-select',\r\n // 'date',\r\n // 'text',\r\n // 'auto-complete',\r\n // 'select',\r\n ],\r\n};\r\n\r\nconst LessThan: IPepSmartFilterOperator = {\r\n id: 'lt',\r\n name: 'LESS_THEN',\r\n short: '<',\r\n componentType: ['number'],\r\n};\r\n\r\n// const LessThanOrEquals: IPepSmartFilterOperator = {\r\n// id: 'ltoe',\r\n// name: 'LESS_THEN_OR_EQUAL',\r\n// short: '<=',\r\n// type: ['number'],\r\n// };\r\n\r\nconst GreaterThan: IPepSmartFilterOperator = {\r\n id: 'gt',\r\n name: 'GREATER_THEN',\r\n short: '>',\r\n componentType: ['number'],\r\n};\r\n\r\n// const GreaterThanOrEquals: IPepSmartFilterOperator = {\r\n// id: 'gtoe',\r\n// name: 'GREATER_THEN_OR_EQUAL',\r\n// short: '>=',\r\n// type: ['number'],\r\n// };\r\n\r\nconst NumberRange: IPepSmartFilterOperator = {\r\n id: 'numberRange',\r\n name: 'NUMBER_RANGE',\r\n short: 'Range',\r\n componentType: ['number'],\r\n};\r\n\r\nconst Contains: IPepSmartFilterOperator = {\r\n id: 'contains',\r\n name: 'CONTAINS',\r\n short: 'Contains',\r\n componentType: ['text'],\r\n};\r\n\r\n// const BeginsWith: Operator = {\r\n// id: 'beginsWith',\r\n// name: 'Begins With',\r\n// short: 'Begins With',\r\n// type: ['text'],\r\n// };\r\n\r\n// const EndsWith: Operator = {\r\n// id: 'endsWith',\r\n// name: 'Ends With',\r\n// short: 'End With',\r\n// type: ['text'],\r\n// };\r\n\r\n// const After: Operator = {\r\n// id: 'after',\r\n// name: 'After',\r\n// short: 'After',\r\n// type: ['date'],\r\n// };\r\n\r\n// const Before: Operator = {\r\n// id: 'before',\r\n// name: 'Before',\r\n// short: 'Before',\r\n// type: ['date'],\r\n// };\r\n\r\nconst InTheLast: IPepSmartFilterOperator = {\r\n id: 'inTheLast',\r\n name: 'IN_THE_LAST',\r\n short: 'In the last',\r\n componentType: ['date'],\r\n};\r\n\r\nconst Today: IPepSmartFilterOperator = {\r\n id: 'today',\r\n name: 'TODAY',\r\n short: 'Today',\r\n componentType: ['date'],\r\n};\r\n\r\nconst ThisWeek: IPepSmartFilterOperator = {\r\n id: 'thisWeek',\r\n name: 'THIS_WEEK',\r\n short: 'This week',\r\n componentType: ['date'],\r\n};\r\n\r\nconst ThisMonth: IPepSmartFilterOperator = {\r\n id: 'thisMonth',\r\n name: 'THIS_MONTH',\r\n short: 'This month',\r\n componentType: ['date'],\r\n};\r\n\r\nconst DateRange: IPepSmartFilterOperator = {\r\n id: 'dateRange',\r\n name: 'DATE_RANGE',\r\n short: 'Range',\r\n componentType: ['date'],\r\n};\r\n\r\nconst DueIn: IPepSmartFilterOperator = {\r\n id: 'dueIn',\r\n name: 'DUE_IN',\r\n short: 'Due in',\r\n componentType: ['date'],\r\n};\r\n\r\nconst On: IPepSmartFilterOperator = {\r\n id: 'on',\r\n name: 'ON',\r\n short: 'On',\r\n componentType: ['date'],\r\n};\r\n\r\nconst NotInTheLast: IPepSmartFilterOperator = {\r\n id: 'notInTheLast',\r\n name: 'NOT_IN_THE_LAST',\r\n short: 'Not in the last',\r\n componentType: ['date'],\r\n};\r\n\r\nconst NotDueIn: IPepSmartFilterOperator = {\r\n id: 'notDueIn',\r\n name: 'NOT_DUE_IN',\r\n short: 'Not due in',\r\n componentType: ['date'],\r\n};\r\n\r\nconst IsEmpty: IPepSmartFilterOperator = {\r\n id: 'isEmpty',\r\n name: 'IS_EMPTY',\r\n short: 'Is empty',\r\n componentType: ['date'],\r\n};\r\n\r\nconst IsNotEmpty: IPepSmartFilterOperator = {\r\n id: 'isNotEmpty',\r\n name: 'IS_NOT_EMPTY',\r\n short: 'Is not empty',\r\n componentType: ['date'],\r\n};\r\n\r\nconst In: IPepSmartFilterOperator = {\r\n id: 'in',\r\n name: 'IN',\r\n short: 'In',\r\n componentType: ['multi-select'],\r\n};\r\n\r\nexport const PepSmartFilterOperators = {\r\n Equals: Equals,\r\n NotEqual: NotEqual,\r\n LessThan: LessThan,\r\n // LessThanOrEquals: LessThanOrEquals,\r\n GreaterThan: GreaterThan,\r\n // GreaterThanOrEquals: GreaterThanOrEquals,\r\n NumberRange: NumberRange,\r\n Contains: Contains,\r\n // BeginsWith: BeginsWith,\r\n // EndsWith: EndsWith,\r\n // After: After,\r\n // Before: Before,\r\n InTheLast: InTheLast,\r\n Today: Today,\r\n ThisWeek: ThisWeek,\r\n ThisMonth: ThisMonth,\r\n DateRange: DateRange,\r\n DueIn: DueIn,\r\n On: On,\r\n NotInTheLast: NotInTheLast,\r\n NotDueIn: NotDueIn,\r\n IsEmpty: IsEmpty,\r\n IsNotEmpty: IsNotEmpty,\r\n In: In,\r\n};\r\n\r\nexport class IPepSmartFilterOperatorUnit {\r\n id: PepSmartFilterOperatorUnitType;\r\n name: string;\r\n componentType: PepSmartFilterComponentType[];\r\n}\r\n\r\nconst Days: IPepSmartFilterOperatorUnit = {\r\n id: 'days',\r\n name: 'DAYS',\r\n componentType: ['date'],\r\n};\r\n\r\nconst Weeks: IPepSmartFilterOperatorUnit = {\r\n id: 'weeks',\r\n name: 'WEEKS',\r\n componentType: ['date'],\r\n};\r\n\r\nconst Months: IPepSmartFilterOperatorUnit = {\r\n id: 'months',\r\n name: 'MONTHS',\r\n componentType: ['date'],\r\n};\r\n\r\nconst Years: IPepSmartFilterOperatorUnit = {\r\n id: 'years',\r\n name: 'YEARS',\r\n componentType: ['date'],\r\n};\r\n\r\nexport const PepSmartFilterOperatorUnits = {\r\n Days: Days,\r\n Weeks: Weeks,\r\n Months: Months,\r\n Years: Years,\r\n};\r\n","import {\r\n Directive,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n AfterViewInit,\r\n Output,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n TemplateRef,\r\n ViewContainerRef,\r\n ViewChild,\r\n ComponentFactoryResolver,\r\n ComponentFactory,\r\n ComponentRef,\r\n Injector,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormBuilder,\r\n FormGroup,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n ValidatorFn,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { PepValidatorService } from '@pepperi-addons/ngx-lib';\r\nimport {\r\n IPepSmartFilterOperator,\r\n IPepSmartFilterOperatorUnit,\r\n PepSmartFilterOperators,\r\n PepSmartFilterOperatorUnits,\r\n} from './operator';\r\nimport { forwardRef } from '@angular/core';\r\nimport { IPepSmartFilterData, IPepSmartFilterDataValue } from './filter';\r\nimport { PepSmartFilterBaseField } from './field';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PepFilterActionsComponent } from '../filter-actions.component';\r\n\r\n\r\n@Directive({})\r\nexport abstract class BaseFilterComponent\r\n implements OnInit, OnChanges, OnDestroy {\r\n private readonly _destroyed: Subject<void>;\r\n private actionsContainerRef: ComponentRef<PepFilterActionsComponent>;\r\n\r\n private _fieldIdWithNoDots = '';\r\n private _field: PepSmartFilterBaseField;\r\n @Input()\r\n set field(value: PepSmartFilterBaseField) {\r\n this._field = value;\r\n this._fieldIdWithNoDots = value ? value.id.replace(/\\./g, '_') : '';\r\n this.setupForm();\r\n }\r\n get field(): PepSmartFilterBaseField {\r\n return this._field;\r\n }\r\n\r\n private _filter: IPepSmartFilterData;\r\n @Input()\r\n set filter(value: IPepSmartFilterData) {\r\n this._filter = value;\r\n this.setupFilter();\r\n }\r\n get filter(): IPepSmartFilterData {\r\n return this._filter;\r\n }\r\n protected _parentForm: FormGroup;\r\n @Input()\r\n set parentForm(form: FormGroup) {\r\n this._parentForm = form;\r\n this.updateParentForm();\r\n }\r\n @Input() emitOnChange = false;\r\n @Input() inline = false;\r\n @Input() showActionButtons = true;\r\n @Input() renderTitle = true;\r\n\r\n @Output() filterClear: EventEmitter<void> = new EventEmitter<void>();\r\n @Output()\r\n filterChange: EventEmitter<IPepSmartFilterData> = new EventEmitter<IPepSmartFilterData>();\r\n\r\n private _operator: IPepSmartFilterOperator;\r\n set operator(operator: IPepSmartFilterOperator) {\r\n if (operator?.id != this._operator?.id) {\r\n // Validate operator\r\n const index = this.operators.findIndex((o) => o.id === operator.id);\r\n if (index >= 0) {\r\n this._operator = this.operators[index];\r\n } else {\r\n this._operator = this.operators[0];\r\n }\r\n\r\n this.form.reset();\r\n this.updateValidity();\r\n }\r\n }\r\n get operator(): IPepSmartFilterOperator {\r\n return this._operator;\r\n }\r\n\r\n private _operatorUnit: IPepSmartFilterOperatorUnit;\r\n set operatorUnit(operatorUnit: IPepSmartFilterOperatorUnit) {\r\n // Validate operator unit\r\n if (operatorUnit) {\r\n const index = this.operatorUnits.findIndex(\r\n (ou) => ou.id === operatorUnit.id\r\n );\r\n if (index >= 0) {\r\n this._operatorUnit = this.operatorUnits[index];\r\n } else {\r\n this._operatorUnit = this.operatorUnits[0];\r\n }\r\n } else {\r\n this._operatorUnit = undefined;\r\n }\r\n }\r\n get operatorUnit(): IPepSmartFilterOperatorUnit {\r\n return this._operatorUnit;\r\n }\r\n\r\n get firstControlKey() {\r\n return this.field ? `${this._fieldIdWithNoDots}_first` : 'first';\r\n }\r\n get firstControl(): AbstractControl {\r\n return this.form.get(this.firstControlKey);\r\n }\r\n get secondControlKey() {\r\n return this.field ? `${this._fieldIdWithNoDots}_second` : 'second';\r\n }\r\n get secondControl(): AbstractControl {\r\n return this.form.get(this.secondControlKey);\r\n }\r\n\r\n protected operators: IPepSmartFilterOperator[];\r\n protected operatorUnits: IPepSmartFilterOperatorUnit[];\r\n\r\n protected readonly OPERATORS_TRANSLATION_PREFIX = 'SMART_FILTERS.OPERATORS';\r\n protected readonly OPERATOR_UNITS_TRANSLATION_PREFIX =\r\n 'SMART_FILTERS.OPERATOR_UNITS';\r\n\r\n form: FormGroup;\r\n\r\n constructor(\r\n private viewContainerRef: ViewContainerRef,\r\n private injector: Injector,\r\n private resolver: ComponentFactoryResolver,\r\n private builder: FormBuilder,\r\n protected translate: TranslateService,\r\n protected validator: PepValidatorService,\r\n protected renderer: Renderer2\r\n ) {\r\n this._destroyed = new Subject();\r\n }\r\n\r\n private createActionsComponent() {\r\n const factory: ComponentFactory<PepFilterActionsComponent> = this.resolver.resolveComponentFactory(\r\n PepFilterActionsComponent\r\n );\r\n\r\n this.actionsContainerRef = factory.create(this.injector);\r\n this.actionsContainerRef.instance.form = this.form;\r\n this.actionsContainerRef.instance.applyClick.subscribe(() =>\r\n this.applyFilter()\r\n );\r\n this.actionsContainerRef.instance.clearClick.subscribe(() =>\r\n this.clearFilter()\r\n );\r\n\r\n this.viewContainerRef.insert(this.actionsContainerRef.hostView);\r\n }\r\n\r\n private setupForm() {\r\n const formValue = {};\r\n formValue[this.firstControlKey] = [];\r\n formValue[this.secondControlKey] = [];\r\n // this.form.patchValue(formValue); \r\n this.form = this.builder.group(formValue);\r\n // this.form[this.firstControlKey] = [];\r\n // this.form[this.secondControlKey] = [];\r\n\r\n this.setupOperators();\r\n\r\n if (this.showActionButtons) {\r\n this.createActionsComponent();\r\n }\r\n }\r\n\r\n private setupOperators() {\r\n // Get the operators by componentType.\r\n this.operators = Object.keys(PepSmartFilterOperators)\r\n .filter((key) => {\r\n return PepSmartFilterOperators[key].componentType.includes(\r\n this.field.componentType\r\n );\r\n })\r\n .map((key) => PepSmartFilterOperators[key]);\r\n\r\n // Filter by from field.operators input if exist.\r\n if (this.field.operators?.length > 0) {\r\n this.operators = this.operators.filter((o1) =>\r\n this.field.operators.some((o2) => o1.id === o2)\r\n );\r\n }\r\n\r\n // Get the operator units by componentType.\r\n this.operatorUnits = Object.keys(PepSmartFilterOperatorUnits)\r\n .filter((key) => {\r\n return PepSmartFilterOperatorUnits[key].componentType.includes(\r\n this.field.componentType\r\n );\r\n })\r\n .map((key) => PepSmartFilterOperatorUnits[key]);\r\n\r\n // Filter by from field.operatorsUnits input if exist.\r\n if (this.field.operatorUnits?.length > 0) {\r\n this.operatorUnits = this.operatorUnits.filter((o1) =>\r\n this.field.operatorUnits.some((o2) => o1.id === o2)\r\n );\r\n }\r\n\r\n // Load translation before get the options in the children.\r\n this.translate.get('SMART_FILTERS.TITLE').subscribe((res) => {\r\n this.loadOperatorsOptions();\r\n });\r\n }\r\n\r\n private setupFilter() {\r\n if (this.filter) {\r\n this.operator = this.filter.operator;\r\n this.operatorUnit = this.filter.operatorUnit;\r\n const formValue = {};\r\n formValue[this.firstControlKey] = this.filter.value.first;\r\n formValue[this.secondControlKey] = this.filter.value.second;\r\n this.form.patchValue(formValue);\r\n } else {\r\n this.operator = this.getDefaultOperator();\r\n this.operatorUnit = this.getDefaultOperatorUnit();\r\n this.clearFilter(false);\r\n }\r\n }\r\n\r\n protected updateParentForm() {\r\n this._parentForm.setControl('fieldId', this.builder.control(this.field.id));\r\n this._parentForm.setControl('fieldType', this.builder.control(this.field.type));\r\n this._parentForm.setControl('operator', this.builder.control(this.operator));\r\n this._parentForm.setControl('operatorUnit', this.builder.control(this.operatorUnit));\r\n this._parentForm.setControl('values', this.builder.group({\r\n first: this.firstControl,\r\n second: this.secondControl\r\n }));\r\n }\r\n\r\n protected getDestroyer() {\r\n return takeUntil(this._destroyed);\r\n }\r\n\r\n private updateValidity() {\r\n this.setFieldsStateAndValidators();\r\n\r\n this.firstControl.updateValueAndValidity();\r\n this.secondControl.updateValueAndValidity();\r\n }\r\n // Load the operators options from the translation.\r\n protected loadOperatorsOptions(): void {\r\n // Not implemented in the base\r\n }\r\n\r\n // Set default validators - some childs override this.\r\n protected setFieldsStateAndValidators(): void {\r\n this.firstControl.setValidators(Validators.required);\r\n this.secondControl.setValidators(Validators.required);\r\n this.secondControl.disable();\r\n }\r\n\r\n // Return undefined - some childs override this.\r\n protected getDefaultOperatorUnit(): IPepSmartFilterOperatorUnit {\r\n return undefined;\r\n }\r\n\r\n protected initFilter() {\r\n // Not implemented in the base\r\n }\r\n\r\n abstract getDefaultOperator(): IPepSmartFilterOperator;\r\n abstract getFilterValue(): IPepSmartFilterDataValue;\r\n\r\n clearFilter(emitEvent = true) {\r\n this._filter = null;\r\n this.form.reset();\r\n this.initFilter();\r\n\r\n if (emitEvent) {\r\n this.filterClear.emit();\r\n }\r\n }\r\n\r\n applyFilter() {\r\n const filterValue = this.getFilterValue();\r\n\r\n // If the filter is not null declare it, else - clear it.\r\n if (filterValue) {\r\n const filter = {\r\n fieldId: this.field.id,\r\n operator: this.operator,\r\n operatorUnit: this.operatorUnit,\r\n value: filterValue,\r\n };\r\n this._filter = filter;\r\n this.filterChange.emit(filter);\r\n } else {\r\n this.clearFilter();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.form) {\r\n this.updateValidity();\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n // if (this.form) {\r\n // this.updateValidity();\r\n // }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroyed.next();\r\n this._destroyed.complete();\r\n\r\n if (this.showActionButtons) {\r\n this.actionsContainerRef.destroy();\r\n }\r\n }\r\n\r\n // writeValue(value: IPepSmartFilterDataValue): void {\r\n // if (value) {\r\n // this.form.setValue(\r\n // {\r\n // first: value.first,\r\n // second: value.second || null,\r\n // },\r\n // { emitEvent: false }\r\n // );\r\n // } else {\r\n // this.form.reset();\r\n // }\r\n // }\r\n\r\n // registerOnChange(fn: any): void {\r\n // this.form.valueChanges.subscribe(fn);\r\n // }\r\n\r\n // onTouched: () => void = () => {\r\n // /* Do nothing */\r\n // };\r\n\r\n // registerOnTouched(fn: any): void {\r\n // this.onTouched = fn;\r\n // }\r\n\r\n // setDisabledState?(isDisabled: boolean): void {\r\n // isDisabled ? this.form.disable() : this.form.enable();\r\n // }\r\n\r\n // validate(control: AbstractControl): ValidationErrors {\r\n // return this.form.valid ? null : { PepFilterIsNotValid: true };\r\n // }\r\n}\r\n","import { Component, OnChanges, OnInit } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\r\nimport {\r\n IPepSmartFilterOperator,\r\n PepSmartFilterOperators,\r\n} from '../common/model/operator';\r\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\r\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\r\n\r\n@Component({\r\n selector: 'pep-text-filter',\r\n templateUrl: './text-filter.component.html',\r\n styleUrls: ['./text-filter.component.scss'],\r\n})\r\nexport class PepTextFilterComponent extends BaseFilterComponent implements OnInit {\r\n chooseTypeOptions: Array<IPepOption> = [];\r\n operatorWidth = '38%';\r\n firstControlWidth = '62%';\r\n\r\n ngOnInit() {\r\n this.firstControl.valueChanges\r\n .pipe(this.getDestroyer(), distinctUntilChanged())\r\n .subscribe(() => {\r\n this.setFieldsStateAndValidators();\r\n });\r\n }\r\n\r\n // Override\r\n getDefaultOperator(): IPepSmartFilterOperator {\r\n return PepSmartFilterOperators.Equals;\r\n }\r\n\r\n // Override\r\n getFilterValue(): IPepSmartFilterDataValue {\r\n const filterValue = {\r\n first: this.firstControl.value,\r\n };\r\n\r\n if (this.operator === PepSmartFilterOperators.NumberRange) {\r\n filterValue['second'] = this.secondControl.value;\r\n }\r\n\r\n return filterValue;\r\n }\r\n\r\n // Override\r\n loadOperatorsOptions() {\r\n this.chooseTypeOptions = this.operators.map((operator) => {\r\n return {\r\n key: operator.id,\r\n value: this.translate.instant(\r\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\r\n ),\r\n };\r\n });\r\n }\r\n\r\n // Override\r\n setFieldsStateAndValidators(): void {\r\n if (this.operator === PepSmartFilterOperators.NumberRange) {\r\n const firstValidators = [Validators.required];\r\n if (this.secondControl.value) {\r\n firstValidators.push(this.validator.isLessThan(this.secondControl));\r\n }\r\n this.firstControl.setValidators(firstValidators);\r\n } else {\r\n super.setFieldsStateAndValidators();\r\n }\r\n }\r\n\r\n onOperatorChanged(value: string) {\r\n const operator = Object.values(PepSmartFilterOperators).find(\r\n (operator) => operator.id === value\r\n );\r\n this.operator = operator;\r\n if (this._parentForm) {\r\n this.updateParentForm();\r\n }\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n\r\n onValueChanged() {\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n\r\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\r\nimport {\r\n IPepSmartFilterOperator,\r\n PepSmartFilterOperators,\r\n} from '../common/model/operator';\r\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\r\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\r\n\r\n@Component({\r\n selector: 'pep-boolean-filter',\r\n templateUrl: './boolean-filter.component.html',\r\n styleUrls: ['./boolean-filter.component.scss'],\r\n})\r\nexport class PepBooleanFilterComponent extends BaseFilterComponent implements OnInit {\r\n @Input() options: IPepOption[] = [];\r\n\r\n ngOnInit() {\r\n //\r\n }\r\n\r\n\r\n // Override\r\n getDefaultOperator(): IPepSmartFilterOperator {\r\n return PepSmartFilterOperators.Equals;\r\n }\r\n\r\n // Override\r\n getFilterValue(): IPepSmartFilterDataValue {\r\n const filterValue = { first: this.firstControl.value || false };\r\n return filterValue;\r\n }\r\n\r\n onValueChanged(value) {\r\n this.firstControl.setValue(value);\r\n\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n // // Override\r\n // setFieldsStateAndValidators(): void {\r\n // this.secondControl.disable();\r\n // }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\r\nimport {\r\n IPepSmartFilterOperator,\r\n IPepSmartFilterOperatorUnit,\r\n PepSmartFilterOperators,\r\n PepSmartFilterOperatorUnits,\r\n} from '../common/model/operator';\r\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\r\nimport { Validators } from '@angular/forms';\r\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\r\n\r\n@Component({\r\n selector: 'pep-date-filter',\r\n templateUrl: './date-filter.component.html',\r\n styleUrls: ['./date-filter.component.scss'],\r\n})\r\nexport class PepDateFilterComponent extends BaseFilterComponent implements OnInit {\r\n PepSmartFilterOperators = PepSmartFilterOperators;\r\n chooseTimeOptions: Array<IPepOption> = [];\r\n chooseTimeUnitOptions: Array<IPepOption> = [];\r\n operatorWidth: string;\r\n fieldsWidth: string;\r\n\r\n ngOnInit() {\r\n if (this.inline) {\r\n this.setControlsWidth();\r\n }\r\n }\r\n\r\n // Override\r\n getDefaultOperator(): IPepSmartFilterOperator {\r\n return PepSmartFilterOperators.InTheLast;\r\n }\r\n\r\n // Override\r\n getDefaultOperatorUnit(): IPepSmartFilterOperatorUnit {\r\n if (this.operator === PepSmartFilterOperators.InTheLast ||\r\n this.operator === PepSmartFilterOperators.NotInTheLast ||\r\n this.operator === PepSmartFilterOperators.DueIn ||\r\n this.operator === PepSmartFilterOperators.NotDueIn) {\r\n return PepSmartFilterOperatorUnits.Months;\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n // Override\r\n getFilterValue(): IPepSmartFilterDataValue {\r\n const filterValue = {\r\n first: this.firstControl.value,\r\n };\r\n\r\n if (this.operator === PepSmartFilterOperators.DateRange) {\r\n filterValue['second'] = this.secondControl.value;\r\n }\r\n\r\n return filterValue;\r\n }\r\n\r\n // Override\r\n loadOperatorsOptions() {\r\n this.chooseTimeOptions = this.operators.map((operator) => {\r\n return {\r\n key: operator.id,\r\n value: this.translate.instant(\r\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\r\n ),\r\n };\r\n });\r\n\r\n this.chooseTimeUnitOptions = this.operatorUnits.map((operatorUnit) => {\r\n return {\r\n key: operatorUnit.id,\r\n value: this.translate.instant(\r\n `${this.OPERATOR_UNITS_TRANSLATION_PREFIX}.${operatorUnit.name}`\r\n ),\r\n };\r\n });\r\n }\r\n\r\n // Override\r\n setFieldsStateAndValidators(): void {\r\n this.firstControl.enable();\r\n\r\n if (this.operator === PepSmartFilterOperators.DateRange) {\r\n this.firstControl.setValidators(Validators.required);\r\n this.secondControl.enable();\r\n this.secondControl.setValidators(Validators.required);\r\n } else if (\r\n this.operator === PepSmartFilterOperators.InTheLast ||\r\n this.operator === PepSmartFilterOperators.NotInTheLast ||\r\n this.operator === PepSmartFilterOperators.DueIn ||\r\n this.operator === PepSmartFilterOperators.NotDueIn\r\n ) {\r\n this.firstControl.setValidators([\r\n Validators.required,\r\n this.validator.numberValidator(),\r\n ]);\r\n this.secondControl.disable();\r\n } else {\r\n // Disable 'first' field.\r\n if (\r\n this.operator === PepSmartFilterOperators.Today ||\r\n this.operator === PepSmartFilterOperators.ThisWeek ||\r\n this.operator === PepSmartFilterOperators.ThisMonth ||\r\n this.operator === PepSmartFilterOperators.IsEmpty ||\r\n this.operator === PepSmartFilterOperators.IsNotEmpty\r\n ) {\r\n this.firstControl.disable();\r\n }\r\n\r\n // Default disable 'second' field.\r\n super.setFieldsStateAndValidators();\r\n }\r\n }\r\n\r\n setControlsWidth() {\r\n if (\r\n this.operator === PepSmartFilterOperators.Today ||\r\n this.operator === PepSmartFilterOperators.ThisWeek ||\r\n this.operator === PepSmartFilterOperators.ThisMonth ||\r\n this.operator === PepSmartFilterOperators.IsEmpty ||\r\n this.operator === PepSmartFilterOperators.IsNotEmpty\r\n ) {\r\n this.operatorWidth = 'auto';\r\n this.fieldsWidth = '0%';\r\n } else if (this.operator === PepSmartFilterOperators.On) {\r\n this.operatorWidth = '38%';\r\n this.fieldsWidth = '62%';\r\n } else {\r\n this.operatorWidth = '30%';\r\n this.fieldsWidth = '70%';\r\n }\r\n }\r\n\r\n onOperatorChanged(value: string) {\r\n const operator = Object.values(PepSmartFilterOperators).find(\r\n (operator) => operator.id === value\r\n );\r\n\r\n this.operator = operator;\r\n this.operatorUnit = this.getDefaultOperatorUnit();\r\n if (this.inline) {\r\n this.setControlsWidth();\r\n }\r\n if (this._parentForm) {\r\n this.updateParentForm();\r\n }\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n\r\n onTimeUnitChanged(value: string) {\r\n const operatorUnit = Object.values(PepSmartFilterOperatorUnits).find(\r\n (operatorUnit) => operatorUnit.id === value\r\n );\r\n this.operatorUnit = operatorUnit;\r\n if (this._parentForm) {\r\n this.updateParentForm();\r\n }\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n\r\n onDateValueChanged() {\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\r\nimport {\r\n IPepSmartFilterOperator,\r\n PepSmartFilterOperators,\r\n} from '../common/model/operator';\r\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\r\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\r\nimport { IPepSmartFilterFieldOption } from '../common/model/field';\r\nimport { Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { VirtualScrollerComponent } from 'ngx-virtual-scroller';\r\n\r\nclass PepMultiSelectFilterOption implements IPepSmartFilterFieldOption {\r\n value: string;\r\n count?: number;\r\n selected = false;\r\n}\r\n\r\n@Component({\r\n selector: 'pep-multi-select-filter',\r\n templateUrl: './multi-select-filter.component.html',\r\n styleUrls: ['./multi-select-filter.component.scss'],\r\n})\r\nexport class PepMultiSelectFilterComponent\r\n extends BaseFilterComponent\r\n implements OnInit, AfterViewInit {\r\n options: PepMultiSelectFilterOption[] = [];\r\n filteredOptions$: Observable<any>;\r\n searchControl = new FormControl();\r\n //inline props\r\n selected = '';\r\n inlineOptions: IPepOption[] = [];\r\n\r\n @ViewChild('optionsContainer')\r\n optionsContainer: ElementRef;\r\n\r\n private readonly MAX_OPTIONS_TO_SHOW = 6.35;\r\n @ViewChild(VirtualScrollerComponent)\r\n private virtualScroller: VirtualScrollerComponent;\r\n\r\n numberOptionsToShowSearch = 10;\r\n\r\n ngOnInit() {\r\n super.ngOnInit;\r\n\r\n if (this.inline) {\r\n this.inlineControlInit();\r\n } else {\r\n this.noneInlineControlInit();\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n // Calc for the first time.\r\n this.calcOptionsHeight(this.options.length);\r\n }\r\n\r\n private inlineControlInit() {\r\n //load options from field \r\n this.inlineOptions = this.field?.options?.length > 0 ? this.field.options as IPepOption[] : [];\r\n\r\n // Init the selected values from first value. \r\n if (this.firstControl?.value?.length > 0) {\r\n this.selected = this.firstControl.value.join(';');\r\n }\r\n }\r\n\r\n private noneInlineControlInit() {\r\n if (this.field.options?.length > 0) {\r\n this.options = this.field.options.map((opt) => {\r\n return { value: opt.value, count: opt.count, selected: false };\r\n });\r\n } else {\r\n this.searchControl.disable();\r\n }\r\n\r\n // Init the selected values from first value.\r\n const firstControl = this.firstControl;\r\n if (firstControl.value) {\r\n this.initOptionsSelectedValues(firstControl.value);\r\n }\r\n\r\n // Add subscription for the first value change to set the selected options.\r\n firstControl.valueChanges\r\n .pipe(this.getDestroyer(), distinctUntilChanged())\r\n .subscribe((selectedValues: string[]) => {\r\n this.initOptionsSelectedValues(selectedValues);\r\n });\r\n\r\n // Filter the options by the search control.\r\n this.filteredOptions$ = this.searchControl.valueChanges.pipe(\r\n this.getDestroyer(),\r\n startWith<any>(''),\r\n map((option) =>\r\n typeof option === 'string' ? option : option && option.value\r\n ),\r\n map((value) => (value ? this.filterOptions(value) : this.options))\r\n );\r\n\r\n // Each time the filter change.\r\n this.filteredOptions$.subscribe(\r\n (filterdOptions: PepMultiSelectFilterOption[]) => {\r\n this.calcOptionsHeight(filterdOptions.length);\r\n setTimeout(() => {\r\n // 8 is the padding top of the multi-select-options\r\n this.virtualScroller.scrollToPosition(-8);\r\n }, 125);\r\n }\r\n );\r\n\r\n }\r\n\r\n initOptionsSelectedValues(selectedValues: string[]): void {\r\n this.options.forEach((opt) => {\r\n const isValueSelected =\r\n selectedValues && selectedValues.includes(opt.value);\r\n opt.selected = isValueSelected;\r\n });\r\n }\r\n\r\n private calcOptionsHeight(optionsCount: number) {\r\n if (this.optionsContainer) {\r\n const optionsToShow =\r\n optionsCount > this.MAX_OPTIONS_TO_SHOW\r\n ? this.MAX_OPTIONS_TO_SHOW\r\n : optionsCount;\r\n // optionsToShow * 2.25 is 1 option height + 1 is the padding top & bottom of the container.\r\n const optionsHeight = optionsToShow * 2.25 + 1 + 'rem';\r\n\r\n this.renderer.setStyle(\r\n this.optionsContainer.nativeElement,\r\n 'height',\r\n optionsHeight\r\n );\r\n }\r\n }\r\n\r\n private filterOptions(value: string): any[] {\r\n const filterValue = value.toLowerCase();\r\n return this.options.filter(\r\n (opt) =>\r\n opt.value &&\r\n opt.value.toLowerCase().includes(filterValue.toLowerCase())\r\n );\r\n }\r\n\r\n // Override\r\n getDefaultOperator(): IPepSmartFilterOperator {\r\n return PepSmartFilterOperators.In;\r\n }\r\n\r\n // Override\r\n getFilterValue(): IPepSmartFilterDataValue {\r\n if (this.inline) {\r\n return {\r\n first: this.firstControl.value\r\n };\r\n } else {\r\n const selectedValues = this.options\r\n .filter((opt) => opt.selected)\r\n .map((opt) => opt.value);\r\n const filterValue = {\r\n first: selectedValues,\r\n };\r\n\r\n return selectedValues.length > 0 ? filterValue : null;\r\n }\r\n\r\n }\r\n\r\n // Override\r\n initFilter() {\r\n this.options.forEach((opt) => (opt.selected = false));\r\n this.searchControl.setValue('');\r\n }\r\n\r\n onOptionChange(\r\n option: PepMultiSelectFilterOption,\r\n event: MatCheckboxChange\r\n ) {\r\n option.selected = event.checked;\r\n this.firstControl.setValue(\r\n this.options.filter((opt) => opt.selected).map((opt) => opt.value),\r\n { emitEvent: false }\r\n );\r\n }\r\n\r\n onMultiSelectChanged(value: string) {\r\n if (value) {\r\n const selected: string[] = value.split(';');\r\n this.firstControl.setValue(selected);\r\n } else {\r\n this.firstControl.setValue(null);\r\n }\r\n\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnChanges, OnInit } from '@angular/core';\r\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\r\nimport {\r\n IPepSmartFilterOperator,\r\n PepSmartFilterOperators,\r\n} from '../common/model/operator';\r\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\r\nimport { Validators } from '@angular/forms';\r\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'pep-number-filter',\r\n templateUrl: './number-filter.component.html',\r\n styleUrls: ['./number-filter.component.scss'],\r\n})\r\nexport class PepNumberFilterComponent extends BaseFilterComponent implements OnInit {\r\n PepSmartFilterOperators = PepSmartFilterOperators;\r\n chooseTypeOptions: Array<IPepOption> = [];\r\n operatorWidth = '38%';\r\n fieldsWidth = '70%';\r\n\r\n ngOnInit() {\r\n this.firstControl.valueChanges\r\n .pipe(this.getDestroyer(), distinctUntilChanged())\r\n .subscribe(() => {\r\n this.setFieldsStateAndValidators();\r\n });\r\n\r\n this.secondControl.valueChanges\r\n .pipe(this.getDestroyer(), distinctUntilChanged())\r\n .subscribe(() => {\r\n this.setFieldsStateAndValidators();\r\n });\r\n this.setControlsWidth();\r\n }\r\n\r\n // Override\r\n getDefaultOperator(): IPepSmartFilterOperator {\r\n return PepSmartFilterOperators.Equals;\r\n }\r\n\r\n // Override\r\n getFilterValue(): IPepSmartFilterDataValue {\r\n const filterValue = {\r\n first: this.firstControl.value,\r\n };\r\n\r\n if (this.operator === PepSmartFilterOperators.NumberRange) {\r\n filterValue['second'] = this.secondControl.value;\r\n }\r\n\r\n return filterValue;\r\n }\r\n\r\n // Override\r\n loadOperatorsOptions() {\r\n this.chooseTypeOptions = this.operators.map((operator) => {\r\n return {\r\n key: operator.id,\r\n value: this.translate.instant(\r\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\r\n ),\r\n };\r\n });\r\n }\r\n\r\n // Override\r\n setFieldsStateAndValidators(): void {\r\n if (this.operator === PepSmartFilterOperators.NumberRange) {\r\n const firstValidators = [Validators.required];\r\n if (this.secondControl.value) {\r\n firstValidators.push(this.validator.isLessThan(this.secondControl));\r\n }\r\n this.firstControl.setValidators(firstValidators);\r\n\r\n\r\n this.secondControl.enable();\r\n const secondValidators = [Validators.required];\r\n if (this.firstControl.value) {\r\n secondValidators.push(this.validator.isGreaterThan(this.firstControl));\r\n }\r\n this.secondControl.setValidators(secondValidators);\r\n } else {\r\n super.setFieldsStateAndValidators();\r\n }\r\n }\r\n\r\n setControlsWidth() {\r\n if (this.operator === PepSmartFilterOperators.NumberRange) {\r\n this.operatorWidth = '30%';\r\n this.fieldsWidth = '70%';\r\n } else {\r\n this.operatorWidth = '38%';\r\n this.fieldsWidth = '62%';\r\n }\r\n }\r\n\r\n onOperatorChanged(value: string) {\r\n const operator = Object.values(PepSmartFilterOperators).find(\r\n (operator) => operator.id === value\r\n );\r\n this.operator = operator;\r\n if (this._parentForm) {\r\n this.updateParentForm();\r\n }\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n this.setControlsWidth();\r\n }\r\n\r\n onValueChanged() {\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\n\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\n\r\nimport { VirtualScrollerModule } from 'ngx-virtual-scroller';\r\n\r\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\r\nimport { PepCheckboxModule } from '@pepperi-addons/ngx-lib/checkbox';\r\nimport { PepDateModule } from '@pepperi-addons/ngx-lib/date';\r\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\r\nimport { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';\r\nimport { PepSearchModule } from '@pepperi-addons/ngx-lib/search';\r\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\r\nimport {\r\n PepIconModule,\r\n PepIconRegistry,\r\n pepIconNumberMinus,\r\n pepIconNumberPlus,\r\n} from '@pepperi-addons/ngx-lib/icon';\r\nimport { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';\r\n\r\n// import { BaseFilterComponent } from './common/model/base-filter-component';\r\nimport { PepSmartFiltersComponent } from './smart-filters.component';\r\nimport { PepFilterActionsComponent } from './common/filter-actions.component';\r\nimport { PepTextFilterComponent } from './text-filter/text-filter.component';\r\nimport { PepBooleanFilterComponent } from './boolean-filter/boolean-filter.component';\r\nimport { PepDateFilterComponent } from './date-filter/date-filter.component';\r\nimport { PepMultiSelectFilterComponent } from './multi-select-filter/multi-select-filter.component';\r\nimport { PepNumberFilterComponent } from './number-filter/number-filter.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n // Material modules\r\n MatCommonModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatExpansionModule,\r\n MatIconModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatRadioModule,\r\n // External modules\r\n VirtualScrollerModule,\r\n // ngx-lib modules\r\n PepNgxLibModule,\r\n PepCheckboxModule,\r\n PepDateModule,\r\n PepSelectModule,\r\n PepTextboxModule,\r\n PepSearchModule,\r\n PepIconModule,\r\n PepButtonModule,\r\n PepGroupButtonsModule\r\n ],\r\n exports: [\r\n PepSmartFiltersComponent,\r\n PepTextFilterComponent,\r\n PepBooleanFilterComponent,\r\n PepDateFilterComponent,\r\n PepMultiSelectFilterComponent,\r\n PepNumberFilterComponent\r\n ],\r\n declarations: [\r\n // BaseFilterComponent,\r\n PepSmartFiltersComponent,\r\n PepFilterActionsComponent,\r\n PepTextFilterComponent,\r\n PepBooleanFilterComponent,\r\n PepDateFilterComponent,\r\n PepMultiSelectFilterComponent,\r\n PepNumberFilterComponent\r\n ],\r\n})\r\nexport class PepSmartFiltersModule {\r\n constructor(private pepIconRegistry: PepIconRegistry) {\r\n this.pepIconRegistry.registerIcons([\r\n pepIconNumberMinus,\r\n pepIconNumberPlus,\r\n ]);\r\n }\r\n}\r\n","import {\r\n IPepSmartFilterOperator,\r\n IPepSmartFilterOperatorUnit,\r\n} from './operator';\r\nimport {\r\n PepSmartFilterComponentType,\r\n PepSmartFilterType,\r\n PepSmartFilterOperatorType,\r\n PepSmartFilterOperatorUnitType,\r\n} from './type';\r\n\r\nexport interface IPepSmartFilterFieldOption {\r\n value: string;\r\n count?: number;\r\n}\r\n\r\nexport interface IPepSmartFilterField {\r\n id: string;\r\n name: string;\r\n isOpen?: boolean;\r\n options?: IPepSmartFilterFieldOption[];\r\n operators?: PepSmartFilterOperatorType[];\r\n operatorUnits?: PepSmartFilterOperatorUnitType[];\r\n}\r\n\r\n// Base field\r\n// ------------------------------\r\nexport abstract class PepSmartFilterBaseField implements IPepSmartFilterField {\r\n id: string;\r\n name: string;\r\n isOpen?: boolean;\r\n options?: IPepSmartFilterFieldOption[];\r\n operators?: PepSmartFilterOperatorType[];\r\n operatorUnits?: PepSmartFilterOperatorUnitType[];\r\n\r\n protected _componentType: PepSmartFilterComponentType;\r\n get componentType(): PepSmartFilterComponentType {\r\n return this._componentType;\r\n }\r\n\r\n private _type: PepSmartFilterType;\r\n get type(): PepSmartFilterType {\r\n return this._type;\r\n }\r\n\r\n constructor(field: IPepSmartFilterField) {\r\n this.id = field.id;\r\n this.name = field.name;\r\n this.isOpen = field.isOpen;\r\n this.options = field.options;\r\n this.operators = field.operators;\r\n this.operatorUnits = field.operatorUnits;\r\n\r\n this._type = this.getType();\r\n }\r\n\r\n protected abstract getType(): PepSmartFilterType;\r\n}\r\n// Text field\r\n// ------------------------------\r\nexport class PepSmartFilterTextField extends PepSmartFilterBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n this._componentType = 'text';\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'text';\r\n }\r\n}\r\n\r\n\r\n// Boolean field\r\n// ------------------------------\r\nexport class PepSmartFilterBooleanField extends PepSmartFilterBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n this._componentType = 'boolean';\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'boolean';\r\n }\r\n}\r\n\r\n// Date fields\r\n// ------------------------------\r\nexport abstract class PepSmartFilterDateBaseField extends PepSmartFilterBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n this._componentType = 'date';\r\n }\r\n}\r\nexport class PepSmartFilterDateField extends PepSmartFilterDateBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'date';\r\n }\r\n}\r\nexport class PepSmartFilterDateTimeField extends PepSmartFilterDateBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'date-time';\r\n }\r\n}\r\n\r\n// Multi select field\r\n// ------------------------------\r\nexport class PepSmartFilterMultiSelectField extends PepSmartFilterBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n this._componentType = 'multi-select';\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'multi-select';\r\n }\r\n}\r\n\r\n// Number fields\r\n// ------------------------------\r\nexport abstract class PepSmartFilterNumberBaseField extends PepSmartFilterBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n this._componentType = 'number';\r\n }\r\n}\r\nexport class PepSmartFilterIntField extends PepSmartFilterNumberBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'int';\r\n }\r\n}\r\nexport class PepSmartFilterRealField extends PepSmartFilterNumberBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'real';\r\n }\r\n}\r\nexport class PepSmartFilterCurrencyField extends PepSmartFilterNumberBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'currency';\r\n }\r\n}\r\nexport class PepSmartFilterPercentageField extends PepSmartFilterNumberBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'percentage';\r\n }\r\n}\r\n","import {\r\n IPepSmartFilterField,\r\n PepSmartFilterBaseField,\r\n PepSmartFilterTextField,\r\n PepSmartFilterBooleanField,\r\n PepSmartFilterDateField,\r\n PepSmartFilterMultiSelectField,\r\n PepSmartFilterIntField,\r\n PepSmartFilterDateTimeField,\r\n PepSmartFilterPercentageField,\r\n PepSmartFilterCurrencyField,\r\n PepSmartFilterRealField,\r\n} from './field';\r\nimport { IPepSmartFilterData } from './filter';\r\nimport { IPepSmartFilterOperator, IPepSmartFilterOperatorUnit } from './operator';\r\nimport { PepSmartFilterType } from './type';\r\n\r\nfunction createTextSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterTextField(data);\r\n}\r\n\r\nfunction createBooleanSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterBooleanField(data);\r\n}\r\n\r\nfunction createDateSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterDateField(data);\r\n}\r\n\r\nfunction createDateTimeSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterDateTimeField(data);\r\n}\r\n\r\nfunction createMultiSelectSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterMultiSelectField(data);\r\n}\r\n\r\nfunction createIntSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterIntField(data);\r\n}\r\n\r\nfunction createRealSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterRealField(data);\r\n}\r\n\r\nfunction createCurrencySmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterCurrencyField(data);\r\n}\r\n\r\nfunction createPercentageSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterPercentageField(data);\r\n}\r\n\r\nexport function createSmartFilterField(\r\n data: IPepSmartFilterField,\r\n type: PepSmartFilterType\r\n): PepSmartFilterBaseField {\r\n let field: PepSmartFilterBaseField;\r\n\r\n switch (type) {\r\n case 'text':\r\n field = createTextSmartFilterField(data);\r\n break;\r\n case 'boolean':\r\n field = createBooleanSmartFilterField(data);\r\n break;\r\n case 'date':\r\n field = createDateSmartFilterField(data);\r\n break;\r\n case 'date-time':\r\n field = createDateTimeSmartFilterField(data);\r\n break;\r\n case 'multi-select':\r\n field = createMultiSelectSmartFilterField(data);\r\n break;\r\n case 'int':\r\n field = createIntSmartFilterField(data);\r\n break;\r\n case 'real':\r\n field = createRealSmartFilterField(data);\r\n break;\r\n case 'currency':\r\n field = createCurrencySmartFilterField(data);\r\n break;\r\n case 'percentage':\r\n field = createPercentageSmartFilterField(data);\r\n break;\r\n default:\r\n field = createMultiSelectSmartFilterField(data);\r\n break;\r\n }\r\n\r\n return field;\r\n}\r\n\r\nexport function createSmartFilter(\r\n fieldId: string,\r\n operator: IPepSmartFilterOperator,\r\n first: any,\r\n second?: any,\r\n operatorUnit?: IPepSmartFilterOperatorUnit\r\n): IPepSmartFilterData {\r\n return {\r\n fieldId: fieldId,\r\n operator: operator,\r\n operatorUnit: operatorUnit,\r\n value: {\r\n first: first,\r\n second: second,\r\n },\r\n };\r\n}","/*\r\n * Public API Surface of ngx-lib/smart-filters\r\n */\r\nexport * from './smart-filters.module';\r\nexport * from './smart-filters.component';\r\nexport * from './common/model/base-filter-component';\r\nexport * from './common/filter-actions.component';\r\nexport * from './boolean-filter/boolean-filter.component';\r\nexport * from './date-filter/date-filter.component';\r\nexport * from './multi-select-filter/multi-select-filter.component';\r\nexport * from './number-filter/number-filter.component';\r\nexport * from './text-filter/text-filter.component';\r\n\r\n// Model\r\nexport * from './common/model/creator';\r\nexport * from './common/model/field';\r\nexport * from './common/model/filter';\r\nexport * from './common/model/operator';\r\nexport * from './common/model/type';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pepperi-addons-ngx-lib-smart-filters.js","sources":["../../../projects/ngx-lib/smart-filters/smart-filters.component.ts","../../../projects/ngx-lib/smart-filters/common/filter-actions.component.ts","../../../projects/ngx-lib/smart-filters/common/model/operator.ts","../../../projects/ngx-lib/smart-filters/common/model/base-filter-component.ts","../../../projects/ngx-lib/smart-filters/text-filter/text-filter.component.ts","../../../projects/ngx-lib/smart-filters/boolean-filter/boolean-filter.component.ts","../../../projects/ngx-lib/smart-filters/date-filter/date-filter.component.ts","../../../projects/ngx-lib/smart-filters/multi-select-filter/multi-select-filter.component.ts","../../../projects/ngx-lib/smart-filters/number-filter/number-filter.component.ts","../../../projects/ngx-lib/smart-filters/smart-filters.module.ts","../../../projects/ngx-lib/smart-filters/common/model/field.ts","../../../projects/ngx-lib/smart-filters/common/model/creator.ts","../../../projects/ngx-lib/smart-filters/public-api.ts","../../../projects/ngx-lib/smart-filters/pepperi-addons-ngx-lib-smart-filters.ts"],"sourcesContent":["import {\n Component,\n Input,\n ChangeDetectionStrategy,\n Output,\n EventEmitter,\n ElementRef,\n} from '@angular/core';\nimport {\n IPepSmartFilterField,\n PepSmartFilterBaseField,\n} from './common/model/field';\nimport { PepLayoutService } from '@pepperi-addons/ngx-lib';\nimport { IPepSmartFilterData } from './common/model/filter';\n\n@Component({\n selector: 'pep-smart-filters',\n templateUrl: './smart-filters.component.html',\n styleUrls: ['./smart-filters.component.scss', './smart-filters.component.theme.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PepSmartFiltersComponent {\n\n @Input() title = '';\n\n filtersDataMap: Map<string, IPepSmartFilterData> = new Map<\n string,\n IPepSmartFilterData\n >();\n\n private _filters: IPepSmartFilterData[] = [];\n @Input()\n set filters(value: IPepSmartFilterData[]) {\n this._filters = value;\n this.setupFilters(value);\n }\n get filters(): IPepSmartFilterData[] {\n this._filters = [...this.filtersDataMap.keys()]\n // .filter((key) => this.filtersDataMap.get(key) !== null)\n .map((key) => {\n if (key) {\n return this.filtersDataMap.get(key);\n }\n });\n\n return this._filters;\n }\n\n private _fields: Array<IPepSmartFilterField> = [];\n @Input()\n set fields(value: Array<IPepSmartFilterField>) {\n this._fields = value;\n }\n get fields(): Array<IPepSmartFilterField> {\n return this._fields;\n }\n\n private _useAsWebComponent = false;\n @Input()\n set useAsWebComponent(value: boolean) {\n if (value) {\n this.exportFunctionsOnHostElement();\n }\n }\n get useAsWebComponent(): boolean {\n return this._useAsWebComponent;\n }\n\n // @Output()\n // filtersClear: EventEmitter<void> = new EventEmitter<void>();\n @Output()\n filtersChange: EventEmitter<IPepSmartFilterData[]> = new EventEmitter<\n IPepSmartFilterData[]\n >();\n\n @Output()\n fieldToggleChange: EventEmitter<IPepSmartFilterField> = new EventEmitter<IPepSmartFilterField>();\n\n expansionPanelHeaderHeight = '*';\n\n constructor(\n private hostElement: ElementRef,\n public layoutService: PepLayoutService\n ) { }\n\n private exportFunctionsOnHostElement() {\n // This is for web component usage for use those functions.\n this.hostElement.nativeElement.clearFilters = this.clearFilters.bind(\n this\n );\n this.hostElement.nativeElement.clearFilter = this.clearFilter.bind(\n this\n );\n this.hostElement.nativeElement.toggleField = this.toggleField.bind(\n this\n );\n }\n\n private setupFilters(value: IPepSmartFilterData[]) {\n this.filtersDataMap.clear();\n if (value) {\n value.forEach((filter) => {\n // Validate before add the filter into the map.\n let currentField = null;\n\n if (this.fields && this.fields.length > 0) {\n currentField = this.fields.find(\n (field) => field.id === filter.fieldId\n ) as PepSmartFilterBaseField;\n }\n\n if (currentField) {\n // Only if the operator is from the same type\n if (\n filter.operator.componentType.includes(\n currentField.componentType\n )\n ) {\n let isOperatorUnitValid = true;\n if (filter.operatorUnit) {\n // Only if the operator unit is not from the same type\n if (\n !filter.operatorUnit.componentType.includes(\n currentField.componentType\n )\n ) {\n isOperatorUnitValid = false;\n }\n }\n\n // Add the filter.\n if (isOperatorUnitValid) {\n this.filtersDataMap.set(filter.fieldId, filter);\n }\n }\n }\n });\n }\n }\n\n private raiseFiltersChange(): void {\n this.filtersChange.emit(this.filters);\n }\n\n toggleField(index: number, isOpen: boolean): void {\n this.fields[index].isOpen = isOpen;\n this.fieldToggleChange.emit(this.fields[index]);\n }\n\n clearFilters() {\n this.filtersDataMap.clear();\n }\n\n clearFilter(fieldId: string) {\n this.filtersDataMap.delete(fieldId);\n }\n\n // Clear all the filters and raise event that filters has change.\n onFiltersClear() {\n this.clearFilters();\n this.raiseFiltersChange();\n }\n\n // Clear the filter and raise event that filters has change.\n onFilterClear(field: IPepSmartFilterField) {\n this.clearFilter(field.id);\n this.raiseFiltersChange();\n }\n\n // Set the filter and raise event that filters has change.\n onFilterChange(\n field: IPepSmartFilterField,\n filterData: IPepSmartFilterData\n ) {\n this.clearFilter(field.id);\n this.filtersDataMap.set(field.id, filterData);\n this.raiseFiltersChange();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'pep-filter-actions',\n templateUrl: './filter-actions.component.html',\n styleUrls: ['./filter-actions.component.scss'],\n})\nexport class PepFilterActionsComponent {\n @Input() form: FormGroup;\n\n @Output() clearClick: EventEmitter<void> = new EventEmitter<void>();\n @Output() applyClick: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n clear() {\n this.clearClick.emit();\n }\n\n apply() {\n this.applyClick.emit();\n }\n}\n","import {\n PepSmartFilterComponentType,\n PepSmartFilterOperatorType,\n PepSmartFilterOperatorUnitType,\n} from './type';\nexport class IPepSmartFilterOperator {\n id: PepSmartFilterOperatorType;\n name: string;\n short: string;\n componentType: PepSmartFilterComponentType[];\n}\n\nconst Equals: IPepSmartFilterOperator = {\n id: 'eq',\n name: 'EQUAL',\n short: '=',\n componentType: [\n 'number',\n 'boolean'\n // 'multi-select',\n // 'date',\n // 'text',\n // 'auto-complete',\n // 'select',\n ],\n};\n\nconst NotEqual: IPepSmartFilterOperator = {\n id: 'neq',\n name: 'NOT_EQUAL',\n short: '<>',\n componentType: [\n 'number',\n // 'multi-select',\n // 'date',\n // 'text',\n // 'auto-complete',\n // 'select',\n ],\n};\n\nconst LessThan: IPepSmartFilterOperator = {\n id: 'lt',\n name: 'LESS_THEN',\n short: '<',\n componentType: ['number'],\n};\n\n// const LessThanOrEquals: IPepSmartFilterOperator = {\n// id: 'ltoe',\n// name: 'LESS_THEN_OR_EQUAL',\n// short: '<=',\n// type: ['number'],\n// };\n\nconst GreaterThan: IPepSmartFilterOperator = {\n id: 'gt',\n name: 'GREATER_THEN',\n short: '>',\n componentType: ['number'],\n};\n\n// const GreaterThanOrEquals: IPepSmartFilterOperator = {\n// id: 'gtoe',\n// name: 'GREATER_THEN_OR_EQUAL',\n// short: '>=',\n// type: ['number'],\n// };\n\nconst NumberRange: IPepSmartFilterOperator = {\n id: 'numberRange',\n name: 'NUMBER_RANGE',\n short: 'Range',\n componentType: ['number'],\n};\n\nconst Contains: IPepSmartFilterOperator = {\n id: 'contains',\n name: 'CONTAINS',\n short: 'Contains',\n componentType: ['text'],\n};\n\n// const BeginsWith: Operator = {\n// id: 'beginsWith',\n// name: 'Begins With',\n// short: 'Begins With',\n// type: ['text'],\n// };\n\n// const EndsWith: Operator = {\n// id: 'endsWith',\n// name: 'Ends With',\n// short: 'End With',\n// type: ['text'],\n// };\n\n// const After: Operator = {\n// id: 'after',\n// name: 'After',\n// short: 'After',\n// type: ['date'],\n// };\n\n// const Before: Operator = {\n// id: 'before',\n// name: 'Before',\n// short: 'Before',\n// type: ['date'],\n// };\n\nconst InTheLast: IPepSmartFilterOperator = {\n id: 'inTheLast',\n name: 'IN_THE_LAST',\n short: 'In the last',\n componentType: ['date'],\n};\n\nconst Today: IPepSmartFilterOperator = {\n id: 'today',\n name: 'TODAY',\n short: 'Today',\n componentType: ['date'],\n};\n\nconst ThisWeek: IPepSmartFilterOperator = {\n id: 'thisWeek',\n name: 'THIS_WEEK',\n short: 'This week',\n componentType: ['date'],\n};\n\nconst ThisMonth: IPepSmartFilterOperator = {\n id: 'thisMonth',\n name: 'THIS_MONTH',\n short: 'This month',\n componentType: ['date'],\n};\n\nconst DateRange: IPepSmartFilterOperator = {\n id: 'dateRange',\n name: 'DATE_RANGE',\n short: 'Range',\n componentType: ['date'],\n};\n\nconst DueIn: IPepSmartFilterOperator = {\n id: 'dueIn',\n name: 'DUE_IN',\n short: 'Due in',\n componentType: ['date'],\n};\n\nconst On: IPepSmartFilterOperator = {\n id: 'on',\n name: 'ON',\n short: 'On',\n componentType: ['date'],\n};\n\nconst NotInTheLast: IPepSmartFilterOperator = {\n id: 'notInTheLast',\n name: 'NOT_IN_THE_LAST',\n short: 'Not in the last',\n componentType: ['date'],\n};\n\nconst NotDueIn: IPepSmartFilterOperator = {\n id: 'notDueIn',\n name: 'NOT_DUE_IN',\n short: 'Not due in',\n componentType: ['date'],\n};\n\nconst IsEmpty: IPepSmartFilterOperator = {\n id: 'isEmpty',\n name: 'IS_EMPTY',\n short: 'Is empty',\n componentType: ['date'],\n};\n\nconst IsNotEmpty: IPepSmartFilterOperator = {\n id: 'isNotEmpty',\n name: 'IS_NOT_EMPTY',\n short: 'Is not empty',\n componentType: ['date'],\n};\n\nconst In: IPepSmartFilterOperator = {\n id: 'in',\n name: 'IN',\n short: 'In',\n componentType: ['multi-select'],\n};\n\nexport const PepSmartFilterOperators = {\n Equals: Equals,\n NotEqual: NotEqual,\n LessThan: LessThan,\n // LessThanOrEquals: LessThanOrEquals,\n GreaterThan: GreaterThan,\n // GreaterThanOrEquals: GreaterThanOrEquals,\n NumberRange: NumberRange,\n Contains: Contains,\n // BeginsWith: BeginsWith,\n // EndsWith: EndsWith,\n // After: After,\n // Before: Before,\n InTheLast: InTheLast,\n Today: Today,\n ThisWeek: ThisWeek,\n ThisMonth: ThisMonth,\n DateRange: DateRange,\n DueIn: DueIn,\n On: On,\n NotInTheLast: NotInTheLast,\n NotDueIn: NotDueIn,\n IsEmpty: IsEmpty,\n IsNotEmpty: IsNotEmpty,\n In: In,\n};\n\nexport class IPepSmartFilterOperatorUnit {\n id: PepSmartFilterOperatorUnitType;\n name: string;\n componentType: PepSmartFilterComponentType[];\n}\n\nconst Days: IPepSmartFilterOperatorUnit = {\n id: 'days',\n name: 'DAYS',\n componentType: ['date'],\n};\n\nconst Weeks: IPepSmartFilterOperatorUnit = {\n id: 'weeks',\n name: 'WEEKS',\n componentType: ['date'],\n};\n\nconst Months: IPepSmartFilterOperatorUnit = {\n id: 'months',\n name: 'MONTHS',\n componentType: ['date'],\n};\n\nconst Years: IPepSmartFilterOperatorUnit = {\n id: 'years',\n name: 'YEARS',\n componentType: ['date'],\n};\n\nexport const PepSmartFilterOperatorUnits = {\n Days: Days,\n Weeks: Weeks,\n Months: Months,\n Years: Years,\n};\n","import {\n Directive,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n AfterViewInit,\n Output,\n ChangeDetectorRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n ViewChild,\n ComponentFactoryResolver,\n ComponentFactory,\n ComponentRef,\n Injector,\n ElementRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\nimport { PepValidatorService } from '@pepperi-addons/ngx-lib';\nimport {\n IPepSmartFilterOperator,\n IPepSmartFilterOperatorUnit,\n PepSmartFilterOperators,\n PepSmartFilterOperatorUnits,\n} from './operator';\nimport { forwardRef } from '@angular/core';\nimport { IPepSmartFilterData, IPepSmartFilterDataValue } from './filter';\nimport { PepSmartFilterBaseField } from './field';\nimport { takeUntil } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PepFilterActionsComponent } from '../filter-actions.component';\n\n\n@Directive({})\nexport abstract class BaseFilterComponent\n implements OnInit, OnChanges, OnDestroy {\n private readonly _destroyed: Subject<void>;\n private actionsContainerRef: ComponentRef<PepFilterActionsComponent>;\n\n private _fieldIdWithNoDots = '';\n private _field: PepSmartFilterBaseField;\n @Input()\n set field(value: PepSmartFilterBaseField) {\n this._field = value;\n this._fieldIdWithNoDots = value ? value.id.replace(/\\./g, '_') : '';\n this.setupForm();\n }\n get field(): PepSmartFilterBaseField {\n return this._field;\n }\n\n private _filter: IPepSmartFilterData;\n @Input()\n set filter(value: IPepSmartFilterData) {\n this._filter = value;\n this.setupFilter();\n }\n get filter(): IPepSmartFilterData {\n return this._filter;\n }\n protected _parentForm: FormGroup;\n @Input()\n set parentForm(form: FormGroup) {\n this._parentForm = form;\n this.updateParentForm();\n }\n @Input() emitOnChange = false;\n @Input() inline = false;\n @Input() showActionButtons = true;\n @Input() renderTitle = true;\n\n @Output() filterClear: EventEmitter<void> = new EventEmitter<void>();\n @Output()\n filterChange: EventEmitter<IPepSmartFilterData> = new EventEmitter<IPepSmartFilterData>();\n\n private _operator: IPepSmartFilterOperator;\n set operator(operator: IPepSmartFilterOperator) {\n if (operator?.id != this._operator?.id) {\n // Validate operator\n const index = this.operators.findIndex((o) => o.id === operator.id);\n if (index >= 0) {\n this._operator = this.operators[index];\n } else {\n this._operator = this.operators[0];\n }\n\n this.form.reset();\n this.updateValidity();\n }\n }\n get operator(): IPepSmartFilterOperator {\n return this._operator;\n }\n\n private _operatorUnit: IPepSmartFilterOperatorUnit;\n set operatorUnit(operatorUnit: IPepSmartFilterOperatorUnit) {\n // Validate operator unit\n if (operatorUnit) {\n const index = this.operatorUnits.findIndex(\n (ou) => ou.id === operatorUnit.id\n );\n if (index >= 0) {\n this._operatorUnit = this.operatorUnits[index];\n } else {\n this._operatorUnit = this.operatorUnits[0];\n }\n } else {\n this._operatorUnit = undefined;\n }\n }\n get operatorUnit(): IPepSmartFilterOperatorUnit {\n return this._operatorUnit;\n }\n\n get firstControlKey() {\n return this.field ? `${this._fieldIdWithNoDots}_first` : 'first';\n }\n get firstControl(): AbstractControl {\n return this.form.get(this.firstControlKey);\n }\n get secondControlKey() {\n return this.field ? `${this._fieldIdWithNoDots}_second` : 'second';\n }\n get secondControl(): AbstractControl {\n return this.form.get(this.secondControlKey);\n }\n\n protected operators: IPepSmartFilterOperator[];\n protected operatorUnits: IPepSmartFilterOperatorUnit[];\n\n protected readonly OPERATORS_TRANSLATION_PREFIX = 'SMART_FILTERS.OPERATORS';\n protected readonly OPERATOR_UNITS_TRANSLATION_PREFIX =\n 'SMART_FILTERS.OPERATOR_UNITS';\n\n form: FormGroup;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private injector: Injector,\n private resolver: ComponentFactoryResolver,\n private builder: FormBuilder,\n protected translate: TranslateService,\n protected validator: PepValidatorService,\n protected renderer: Renderer2\n ) {\n this._destroyed = new Subject();\n }\n\n private createActionsComponent() {\n const factory: ComponentFactory<PepFilterActionsComponent> = this.resolver.resolveComponentFactory(\n PepFilterActionsComponent\n );\n\n this.actionsContainerRef = factory.create(this.injector);\n this.actionsContainerRef.instance.form = this.form;\n this.actionsContainerRef.instance.applyClick.subscribe(() =>\n this.applyFilter()\n );\n this.actionsContainerRef.instance.clearClick.subscribe(() =>\n this.clearFilter()\n );\n\n this.viewContainerRef.insert(this.actionsContainerRef.hostView);\n }\n\n private setupForm() {\n const formValue = {};\n formValue[this.firstControlKey] = [];\n formValue[this.secondControlKey] = [];\n // this.form.patchValue(formValue); \n this.form = this.builder.group(formValue);\n // this.form[this.firstControlKey] = [];\n // this.form[this.secondControlKey] = [];\n\n this.setupOperators();\n\n if (this.showActionButtons) {\n this.createActionsComponent();\n }\n }\n\n private setupOperators() {\n // Get the operators by componentType.\n this.operators = Object.keys(PepSmartFilterOperators)\n .filter((key) => {\n return PepSmartFilterOperators[key].componentType.includes(\n this.field.componentType\n );\n })\n .map((key) => PepSmartFilterOperators[key]);\n\n // Filter by from field.operators input if exist.\n if (this.field.operators?.length > 0) {\n this.operators = this.operators.filter((o1) =>\n this.field.operators.some((o2) => o1.id === o2)\n );\n }\n\n // Get the operator units by componentType.\n this.operatorUnits = Object.keys(PepSmartFilterOperatorUnits)\n .filter((key) => {\n return PepSmartFilterOperatorUnits[key].componentType.includes(\n this.field.componentType\n );\n })\n .map((key) => PepSmartFilterOperatorUnits[key]);\n\n // Filter by from field.operatorsUnits input if exist.\n if (this.field.operatorUnits?.length > 0) {\n this.operatorUnits = this.operatorUnits.filter((o1) =>\n this.field.operatorUnits.some((o2) => o1.id === o2)\n );\n }\n\n // Load translation before get the options in the children.\n this.translate.get('SMART_FILTERS.TITLE').subscribe((res) => {\n this.loadOperatorsOptions();\n });\n }\n\n private setupFilter() {\n if (this.filter) {\n this.operator = this.filter.operator;\n this.operatorUnit = this.filter.operatorUnit;\n const formValue = {};\n formValue[this.firstControlKey] = this.filter.value.first;\n formValue[this.secondControlKey] = this.filter.value.second;\n this.form.patchValue(formValue);\n } else {\n this.operator = this.getDefaultOperator();\n this.operatorUnit = this.getDefaultOperatorUnit();\n this.clearFilter(false);\n }\n }\n\n protected updateParentForm() {\n this._parentForm.setControl('fieldId', this.builder.control(this.field.id));\n this._parentForm.setControl('fieldType', this.builder.control(this.field.type));\n this._parentForm.setControl('operator', this.builder.control(this.operator));\n this._parentForm.setControl('operatorUnit', this.builder.control(this.operatorUnit));\n this._parentForm.setControl('values', this.builder.group({\n first: this.firstControl,\n second: this.secondControl\n }));\n }\n\n protected getDestroyer() {\n return takeUntil(this._destroyed);\n }\n\n private updateValidity() {\n this.setFieldsStateAndValidators();\n\n this.firstControl.updateValueAndValidity();\n this.secondControl.updateValueAndValidity();\n }\n // Load the operators options from the translation.\n protected loadOperatorsOptions(): void {\n // Not implemented in the base\n }\n\n // Set default validators - some childs override this.\n protected setFieldsStateAndValidators(): void {\n this.firstControl.setValidators(Validators.required);\n this.secondControl.setValidators(Validators.required);\n this.secondControl.disable();\n }\n\n // Return undefined - some childs override this.\n protected getDefaultOperatorUnit(): IPepSmartFilterOperatorUnit {\n return undefined;\n }\n\n protected initFilter() {\n // Not implemented in the base\n }\n\n abstract getDefaultOperator(): IPepSmartFilterOperator;\n abstract getFilterValue(): IPepSmartFilterDataValue;\n\n clearFilter(emitEvent = true) {\n this._filter = null;\n this.form.reset();\n this.initFilter();\n\n if (emitEvent) {\n this.filterClear.emit();\n }\n }\n\n applyFilter() {\n const filterValue = this.getFilterValue();\n\n // If the filter is not null declare it, else - clear it.\n if (filterValue) {\n const filter = {\n fieldId: this.field.id,\n operator: this.operator,\n operatorUnit: this.operatorUnit,\n value: filterValue,\n };\n this._filter = filter;\n this.filterChange.emit(filter);\n } else {\n this.clearFilter();\n }\n }\n\n ngOnInit(): void {\n if (this.form) {\n this.updateValidity();\n }\n }\n\n ngOnChanges(): void {\n // if (this.form) {\n // this.updateValidity();\n // }\n }\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n\n if (this.showActionButtons) {\n this.actionsContainerRef.destroy();\n }\n }\n\n // writeValue(value: IPepSmartFilterDataValue): void {\n // if (value) {\n // this.form.setValue(\n // {\n // first: value.first,\n // second: value.second || null,\n // },\n // { emitEvent: false }\n // );\n // } else {\n // this.form.reset();\n // }\n // }\n\n // registerOnChange(fn: any): void {\n // this.form.valueChanges.subscribe(fn);\n // }\n\n // onTouched: () => void = () => {\n // /* Do nothing */\n // };\n\n // registerOnTouched(fn: any): void {\n // this.onTouched = fn;\n // }\n\n // setDisabledState?(isDisabled: boolean): void {\n // isDisabled ? this.form.disable() : this.form.enable();\n // }\n\n // validate(control: AbstractControl): ValidationErrors {\n // return this.form.valid ? null : { PepFilterIsNotValid: true };\n // }\n}\n","import { Component, OnChanges, OnInit } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n} from '../common/model/operator';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\n\n@Component({\n selector: 'pep-text-filter',\n templateUrl: './text-filter.component.html',\n styleUrls: ['./text-filter.component.scss'],\n})\nexport class PepTextFilterComponent extends BaseFilterComponent implements OnInit {\n chooseTypeOptions: Array<IPepOption> = [];\n operatorWidth = '38%';\n firstControlWidth = '62%';\n\n ngOnInit() {\n this.firstControl.valueChanges\n .pipe(this.getDestroyer(), distinctUntilChanged())\n .subscribe(() => {\n this.setFieldsStateAndValidators();\n });\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.Equals;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = {\n first: this.firstControl.value,\n };\n\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n filterValue['second'] = this.secondControl.value;\n }\n\n return filterValue;\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTypeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n }\n\n // Override\n setFieldsStateAndValidators(): void {\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n const firstValidators = [Validators.required];\n if (this.secondControl.value) {\n firstValidators.push(this.validator.isLessThan(this.secondControl));\n }\n this.firstControl.setValidators(firstValidators);\n } else {\n super.setFieldsStateAndValidators();\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(PepSmartFilterOperators).find(\n (operator) => operator.id === value\n );\n this.operator = operator;\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onValueChanged() {\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n} from '../common/model/operator';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Component({\n selector: 'pep-boolean-filter',\n templateUrl: './boolean-filter.component.html',\n styleUrls: ['./boolean-filter.component.scss'],\n})\nexport class PepBooleanFilterComponent extends BaseFilterComponent implements OnInit {\n @Input() options: IPepOption[] = [];\n\n ngOnInit() {\n //\n }\n\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.Equals;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = { first: this.firstControl.value || false };\n return filterValue;\n }\n\n onValueChanged(value) {\n this.firstControl.setValue(value);\n\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n // // Override\n // setFieldsStateAndValidators(): void {\n // this.secondControl.disable();\n // }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n IPepSmartFilterOperatorUnit,\n PepSmartFilterOperators,\n PepSmartFilterOperatorUnits,\n} from '../common/model/operator';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { Validators } from '@angular/forms';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Component({\n selector: 'pep-date-filter',\n templateUrl: './date-filter.component.html',\n styleUrls: ['./date-filter.component.scss'],\n})\nexport class PepDateFilterComponent extends BaseFilterComponent implements OnInit {\n PepSmartFilterOperators = PepSmartFilterOperators;\n chooseTimeOptions: Array<IPepOption> = [];\n chooseTimeUnitOptions: Array<IPepOption> = [];\n operatorWidth: string;\n fieldsWidth: string;\n\n ngOnInit() {\n if (this.inline) {\n this.setControlsWidth();\n }\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.InTheLast;\n }\n\n // Override\n getDefaultOperatorUnit(): IPepSmartFilterOperatorUnit {\n if (this.operator === PepSmartFilterOperators.InTheLast ||\n this.operator === PepSmartFilterOperators.NotInTheLast ||\n this.operator === PepSmartFilterOperators.DueIn ||\n this.operator === PepSmartFilterOperators.NotDueIn) {\n return PepSmartFilterOperatorUnits.Months;\n } else {\n return undefined;\n }\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = {\n first: this.firstControl.value,\n };\n\n if (this.operator === PepSmartFilterOperators.DateRange) {\n filterValue['second'] = this.secondControl.value;\n }\n\n return filterValue;\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTimeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n\n this.chooseTimeUnitOptions = this.operatorUnits.map((operatorUnit) => {\n return {\n key: operatorUnit.id,\n value: this.translate.instant(\n `${this.OPERATOR_UNITS_TRANSLATION_PREFIX}.${operatorUnit.name}`\n ),\n };\n });\n }\n\n // Override\n setFieldsStateAndValidators(): void {\n this.firstControl.enable();\n\n if (this.operator === PepSmartFilterOperators.DateRange) {\n this.firstControl.setValidators(Validators.required);\n this.secondControl.enable();\n this.secondControl.setValidators(Validators.required);\n } else if (\n this.operator === PepSmartFilterOperators.InTheLast ||\n this.operator === PepSmartFilterOperators.NotInTheLast ||\n this.operator === PepSmartFilterOperators.DueIn ||\n this.operator === PepSmartFilterOperators.NotDueIn\n ) {\n this.firstControl.setValidators([\n Validators.required,\n this.validator.numberValidator(),\n ]);\n this.secondControl.disable();\n } else {\n // Disable 'first' field.\n if (\n this.operator === PepSmartFilterOperators.Today ||\n this.operator === PepSmartFilterOperators.ThisWeek ||\n this.operator === PepSmartFilterOperators.ThisMonth ||\n this.operator === PepSmartFilterOperators.IsEmpty ||\n this.operator === PepSmartFilterOperators.IsNotEmpty\n ) {\n this.firstControl.disable();\n }\n\n // Default disable 'second' field.\n super.setFieldsStateAndValidators();\n }\n }\n\n setControlsWidth() {\n if (\n this.operator === PepSmartFilterOperators.Today ||\n this.operator === PepSmartFilterOperators.ThisWeek ||\n this.operator === PepSmartFilterOperators.ThisMonth ||\n this.operator === PepSmartFilterOperators.IsEmpty ||\n this.operator === PepSmartFilterOperators.IsNotEmpty\n ) {\n this.operatorWidth = 'auto';\n this.fieldsWidth = '0%';\n } else if (this.operator === PepSmartFilterOperators.On) {\n this.operatorWidth = '38%';\n this.fieldsWidth = '62%';\n } else {\n this.operatorWidth = '30%';\n this.fieldsWidth = '70%';\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(PepSmartFilterOperators).find(\n (operator) => operator.id === value\n );\n\n this.operator = operator;\n this.operatorUnit = this.getDefaultOperatorUnit();\n if (this.inline) {\n this.setControlsWidth();\n }\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onTimeUnitChanged(value: string) {\n const operatorUnit = Object.values(PepSmartFilterOperatorUnits).find(\n (operatorUnit) => operatorUnit.id === value\n );\n this.operatorUnit = operatorUnit;\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onDateValueChanged() {\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}\n","import {\n AfterViewInit,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Component, OnInit } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n} from '../common/model/operator';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { IPepSmartFilterFieldOption } from '../common/model/field';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\nimport { FormControl } from '@angular/forms';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { VirtualScrollerComponent } from 'ngx-virtual-scroller';\n\nclass PepMultiSelectFilterOption implements IPepSmartFilterFieldOption {\n value: string;\n count?: number;\n selected = false;\n}\n\n@Component({\n selector: 'pep-multi-select-filter',\n templateUrl: './multi-select-filter.component.html',\n styleUrls: ['./multi-select-filter.component.scss'],\n})\nexport class PepMultiSelectFilterComponent\n extends BaseFilterComponent\n implements OnInit, AfterViewInit {\n options: PepMultiSelectFilterOption[] = [];\n filteredOptions$: Observable<any>;\n searchControl = new FormControl();\n //inline props\n selected = '';\n inlineOptions: IPepOption[] = [];\n\n @ViewChild('optionsContainer')\n optionsContainer: ElementRef;\n\n private readonly MAX_OPTIONS_TO_SHOW = 6.35;\n @ViewChild(VirtualScrollerComponent)\n private virtualScroller: VirtualScrollerComponent;\n\n numberOptionsToShowSearch = 10;\n\n ngOnInit() {\n super.ngOnInit;\n\n if (this.inline) {\n this.inlineControlInit();\n } else {\n this.noneInlineControlInit();\n }\n }\n\n\n ngAfterViewInit(): void {\n // Calc for the first time.\n this.calcOptionsHeight(this.options.length);\n }\n\n private inlineControlInit() {\n //load options from field \n this.inlineOptions = this.field?.options?.length > 0 ? this.field.options as IPepOption[] : [];\n\n // Init the selected values from first value. \n if (this.firstControl?.value?.length > 0) {\n this.selected = this.firstControl.value.join(';');\n }\n }\n\n private noneInlineControlInit() {\n if (this.field.options?.length > 0) {\n this.options = this.field.options.map((opt) => {\n return { value: opt.value, count: opt.count, selected: false };\n });\n } else {\n this.searchControl.disable();\n }\n\n // Init the selected values from first value.\n const firstControl = this.firstControl;\n if (firstControl.value) {\n this.initOptionsSelectedValues(firstControl.value);\n }\n\n // Add subscription for the first value change to set the selected options.\n firstControl.valueChanges\n .pipe(this.getDestroyer(), distinctUntilChanged())\n .subscribe((selectedValues: string[]) => {\n this.initOptionsSelectedValues(selectedValues);\n });\n\n // Filter the options by the search control.\n this.filteredOptions$ = this.searchControl.valueChanges.pipe(\n this.getDestroyer(),\n startWith<any>(''),\n map((option) =>\n typeof option === 'string' ? option : option && option.value\n ),\n map((value) => (value ? this.filterOptions(value) : this.options))\n );\n\n // Each time the filter change.\n this.filteredOptions$.subscribe(\n (filterdOptions: PepMultiSelectFilterOption[]) => {\n this.calcOptionsHeight(filterdOptions.length);\n setTimeout(() => {\n // 8 is the padding top of the multi-select-options\n this.virtualScroller.scrollToPosition(-8);\n }, 125);\n }\n );\n\n }\n\n initOptionsSelectedValues(selectedValues: string[]): void {\n this.options.forEach((opt) => {\n const isValueSelected =\n selectedValues && selectedValues.includes(opt.value);\n opt.selected = isValueSelected;\n });\n }\n\n private calcOptionsHeight(optionsCount: number) {\n if (this.optionsContainer) {\n const optionsToShow =\n optionsCount > this.MAX_OPTIONS_TO_SHOW\n ? this.MAX_OPTIONS_TO_SHOW\n : optionsCount;\n // optionsToShow * 2.25 is 1 option height + 1 is the padding top & bottom of the container.\n const optionsHeight = optionsToShow * 2.25 + 1 + 'rem';\n\n this.renderer.setStyle(\n this.optionsContainer.nativeElement,\n 'height',\n optionsHeight\n );\n }\n }\n\n private filterOptions(value: string): any[] {\n const filterValue = value.toLowerCase();\n return this.options.filter(\n (opt) =>\n opt.value &&\n opt.value.toLowerCase().includes(filterValue.toLowerCase())\n );\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.In;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n if (this.inline) {\n return {\n first: this.firstControl.value\n };\n } else {\n const selectedValues = this.options\n .filter((opt) => opt.selected)\n .map((opt) => opt.value);\n const filterValue = {\n first: selectedValues,\n };\n\n return selectedValues.length > 0 ? filterValue : null;\n }\n\n }\n\n // Override\n initFilter() {\n this.options.forEach((opt) => (opt.selected = false));\n this.searchControl.setValue('');\n }\n\n onOptionChange(\n option: PepMultiSelectFilterOption,\n event: MatCheckboxChange\n ) {\n option.selected = event.checked;\n this.firstControl.setValue(\n this.options.filter((opt) => opt.selected).map((opt) => opt.value),\n { emitEvent: false }\n );\n }\n\n onMultiSelectChanged(value: string) {\n if (value) {\n const selected: string[] = value.split(';');\n this.firstControl.setValue(selected);\n } else {\n this.firstControl.setValue(null);\n }\n\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}\n","import { Component, OnChanges, OnInit } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n} from '../common/model/operator';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { Validators } from '@angular/forms';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n@Component({\n selector: 'pep-number-filter',\n templateUrl: './number-filter.component.html',\n styleUrls: ['./number-filter.component.scss'],\n})\nexport class PepNumberFilterComponent extends BaseFilterComponent implements OnInit {\n PepSmartFilterOperators = PepSmartFilterOperators;\n chooseTypeOptions: Array<IPepOption> = [];\n operatorWidth = '38%';\n fieldsWidth = '70%';\n\n ngOnInit() {\n this.firstControl.valueChanges\n .pipe(this.getDestroyer(), distinctUntilChanged())\n .subscribe(() => {\n this.setFieldsStateAndValidators();\n });\n\n this.secondControl.valueChanges\n .pipe(this.getDestroyer(), distinctUntilChanged())\n .subscribe(() => {\n this.setFieldsStateAndValidators();\n });\n this.setControlsWidth();\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.Equals;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = {\n first: this.firstControl.value,\n };\n\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n filterValue['second'] = this.secondControl.value;\n }\n\n return filterValue;\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTypeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n }\n\n // Override\n setFieldsStateAndValidators(): void {\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n const firstValidators = [Validators.required];\n if (this.secondControl.value) {\n firstValidators.push(this.validator.isLessThan(this.secondControl));\n }\n this.firstControl.setValidators(firstValidators);\n\n\n this.secondControl.enable();\n const secondValidators = [Validators.required];\n if (this.firstControl.value) {\n secondValidators.push(this.validator.isGreaterThan(this.firstControl));\n }\n this.secondControl.setValidators(secondValidators);\n } else {\n super.setFieldsStateAndValidators();\n }\n }\n\n setControlsWidth() {\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n this.operatorWidth = '30%';\n this.fieldsWidth = '70%';\n } else {\n this.operatorWidth = '38%';\n this.fieldsWidth = '62%';\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(PepSmartFilterOperators).find(\n (operator) => operator.id === value\n );\n this.operator = operator;\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n this.setControlsWidth();\n }\n\n onValueChanged() {\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatRadioModule } from '@angular/material/radio';\n\nimport { VirtualScrollerModule } from 'ngx-virtual-scroller';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepCheckboxModule } from '@pepperi-addons/ngx-lib/checkbox';\nimport { PepDateModule } from '@pepperi-addons/ngx-lib/date';\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\nimport { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';\nimport { PepSearchModule } from '@pepperi-addons/ngx-lib/search';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconNumberMinus,\n pepIconNumberPlus,\n} from '@pepperi-addons/ngx-lib/icon';\nimport { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';\n\n// import { BaseFilterComponent } from './common/model/base-filter-component';\nimport { PepSmartFiltersComponent } from './smart-filters.component';\nimport { PepFilterActionsComponent } from './common/filter-actions.component';\nimport { PepTextFilterComponent } from './text-filter/text-filter.component';\nimport { PepBooleanFilterComponent } from './boolean-filter/boolean-filter.component';\nimport { PepDateFilterComponent } from './date-filter/date-filter.component';\nimport { PepMultiSelectFilterComponent } from './multi-select-filter/multi-select-filter.component';\nimport { PepNumberFilterComponent } from './number-filter/number-filter.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n // Material modules\n MatCommonModule,\n MatCheckboxModule,\n MatChipsModule,\n MatExpansionModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n MatRadioModule,\n // External modules\n VirtualScrollerModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepCheckboxModule,\n PepDateModule,\n PepSelectModule,\n PepTextboxModule,\n PepSearchModule,\n PepIconModule,\n PepButtonModule,\n PepGroupButtonsModule\n ],\n exports: [\n PepSmartFiltersComponent,\n PepTextFilterComponent,\n PepBooleanFilterComponent,\n PepDateFilterComponent,\n PepMultiSelectFilterComponent,\n PepNumberFilterComponent\n ],\n declarations: [\n // BaseFilterComponent,\n PepSmartFiltersComponent,\n PepFilterActionsComponent,\n PepTextFilterComponent,\n PepBooleanFilterComponent,\n PepDateFilterComponent,\n PepMultiSelectFilterComponent,\n PepNumberFilterComponent\n ],\n})\nexport class PepSmartFiltersModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconNumberMinus,\n pepIconNumberPlus,\n ]);\n }\n}\n","import {\n IPepSmartFilterOperator,\n IPepSmartFilterOperatorUnit,\n} from './operator';\nimport {\n PepSmartFilterComponentType,\n PepSmartFilterType,\n PepSmartFilterOperatorType,\n PepSmartFilterOperatorUnitType,\n} from './type';\n\nexport interface IPepSmartFilterFieldOption {\n value: string;\n count?: number;\n}\n\nexport interface IPepSmartFilterField {\n id: string;\n name: string;\n isOpen?: boolean;\n options?: IPepSmartFilterFieldOption[];\n operators?: PepSmartFilterOperatorType[];\n operatorUnits?: PepSmartFilterOperatorUnitType[];\n}\n\n// Base field\n// ------------------------------\nexport abstract class PepSmartFilterBaseField implements IPepSmartFilterField {\n id: string;\n name: string;\n isOpen?: boolean;\n options?: IPepSmartFilterFieldOption[];\n operators?: PepSmartFilterOperatorType[];\n operatorUnits?: PepSmartFilterOperatorUnitType[];\n\n protected _componentType: PepSmartFilterComponentType;\n get componentType(): PepSmartFilterComponentType {\n return this._componentType;\n }\n\n private _type: PepSmartFilterType;\n get type(): PepSmartFilterType {\n return this._type;\n }\n\n constructor(field: IPepSmartFilterField) {\n this.id = field.id;\n this.name = field.name;\n this.isOpen = field.isOpen;\n this.options = field.options;\n this.operators = field.operators;\n this.operatorUnits = field.operatorUnits;\n\n this._type = this.getType();\n }\n\n protected abstract getType(): PepSmartFilterType;\n}\n// Text field\n// ------------------------------\nexport class PepSmartFilterTextField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'text';\n }\n\n getType(): PepSmartFilterType {\n return 'text';\n }\n}\n\n\n// Boolean field\n// ------------------------------\nexport class PepSmartFilterBooleanField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'boolean';\n }\n\n getType(): PepSmartFilterType {\n return 'boolean';\n }\n}\n\n// Date fields\n// ------------------------------\nexport abstract class PepSmartFilterDateBaseField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'date';\n }\n}\nexport class PepSmartFilterDateField extends PepSmartFilterDateBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'date';\n }\n}\nexport class PepSmartFilterDateTimeField extends PepSmartFilterDateBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'date-time';\n }\n}\n\n// Multi select field\n// ------------------------------\nexport class PepSmartFilterMultiSelectField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'multi-select';\n }\n\n getType(): PepSmartFilterType {\n return 'multi-select';\n }\n}\n\n// Number fields\n// ------------------------------\nexport abstract class PepSmartFilterNumberBaseField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'number';\n }\n}\nexport class PepSmartFilterIntField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'int';\n }\n}\nexport class PepSmartFilterRealField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'real';\n }\n}\nexport class PepSmartFilterCurrencyField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'currency';\n }\n}\nexport class PepSmartFilterPercentageField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'percentage';\n }\n}\n","import {\n IPepSmartFilterField,\n PepSmartFilterBaseField,\n PepSmartFilterTextField,\n PepSmartFilterBooleanField,\n PepSmartFilterDateField,\n PepSmartFilterMultiSelectField,\n PepSmartFilterIntField,\n PepSmartFilterDateTimeField,\n PepSmartFilterPercentageField,\n PepSmartFilterCurrencyField,\n PepSmartFilterRealField,\n} from './field';\nimport { IPepSmartFilterData } from './filter';\nimport { IPepSmartFilterOperator, IPepSmartFilterOperatorUnit } from './operator';\nimport { PepSmartFilterType } from './type';\n\nfunction createTextSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterTextField(data);\n}\n\nfunction createBooleanSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterBooleanField(data);\n}\n\nfunction createDateSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterDateField(data);\n}\n\nfunction createDateTimeSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterDateTimeField(data);\n}\n\nfunction createMultiSelectSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterMultiSelectField(data);\n}\n\nfunction createIntSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterIntField(data);\n}\n\nfunction createRealSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterRealField(data);\n}\n\nfunction createCurrencySmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterCurrencyField(data);\n}\n\nfunction createPercentageSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterPercentageField(data);\n}\n\nexport function createSmartFilterField(\n data: IPepSmartFilterField,\n type: PepSmartFilterType\n): PepSmartFilterBaseField {\n let field: PepSmartFilterBaseField;\n\n switch (type) {\n case 'text':\n field = createTextSmartFilterField(data);\n break;\n case 'boolean':\n field = createBooleanSmartFilterField(data);\n break;\n case 'date':\n field = createDateSmartFilterField(data);\n break;\n case 'date-time':\n field = createDateTimeSmartFilterField(data);\n break;\n case 'multi-select':\n field = createMultiSelectSmartFilterField(data);\n break;\n case 'int':\n field = createIntSmartFilterField(data);\n break;\n case 'real':\n field = createRealSmartFilterField(data);\n break;\n case 'currency':\n field = createCurrencySmartFilterField(data);\n break;\n case 'percentage':\n field = createPercentageSmartFilterField(data);\n break;\n default:\n field = createMultiSelectSmartFilterField(data);\n break;\n }\n\n return field;\n}\n\nexport function createSmartFilter(\n fieldId: string,\n operator: IPepSmartFilterOperator,\n first: any,\n second?: any,\n operatorUnit?: IPepSmartFilterOperatorUnit\n): IPepSmartFilterData {\n return {\n fieldId: fieldId,\n operator: operator,\n operatorUnit: operatorUnit,\n value: {\n first: first,\n second: second,\n },\n };\n}","/*\n * Public API Surface of ngx-lib/smart-filters\n */\nexport * from './smart-filters.module';\nexport * from './smart-filters.component';\nexport * from './common/model/base-filter-component';\nexport * from './common/filter-actions.component';\nexport * from './boolean-filter/boolean-filter.component';\nexport * from './date-filter/date-filter.component';\nexport * from './multi-select-filter/multi-select-filter.component';\nexport * from './number-filter/number-filter.component';\nexport * from './text-filter/text-filter.component';\n\n// Model\nexport * from './common/model/creator';\nexport * from './common/model/field';\nexport * from './common/model/filter';\nexport * from './common/model/operator';\nexport * from './common/model/type';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -139,9 +139,9 @@ class PepTextareaComponent {
139
139
  PepTextareaComponent.decorators = [
140
140
  { type: Component, args: [{
141
141
  selector: 'pep-textarea',
142
- template: "<ng-container [formGroup]=\"form\">\r\n <ng-template #pepTemplate let-isFormView=\"isFormView\">\r\n <div class=\"pep-textarea-container\" [ngClass]=\"{ 'stand-alone': standAlone,\r\n 'right-alignment': xAlignment == 'right', 'one-row': rowSpan === 1,\r\n 'pep-textarea-card-container': layoutType === 'card'}\">\r\n <pep-field-title *ngIf=\"renderTitle && isFormView\" [label]=\"label\" [mandatory]=\"mandatory\"\r\n [disabled]=\"disabled\" [maxFieldCharacters]=\"disabled || readonly ? 0 : maxFieldCharacters\"\r\n [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\" [inputLength]=\"input.value?.length\">\r\n </pep-field-title>\r\n <mat-form-field appearance=\"outline\" dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\"\r\n [ngClass]=\"{ 'pep-table-textarea': layoutType === 'table' }\">\r\n <textarea #input [hidden]=\"readonly\" [id]=\"key\" class=\"body-sm\" matInput (blur)=\"onBlur($event)\"\r\n title=\"{{ value }}\" [value]=\"value\"\r\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\r\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'right' ? 'right' : 'left' }\"\r\n [formControlName]=\"key\" [style.height]=\"fieldHeight\">\r\n </textarea>\r\n <div *ngIf=\"readonly\" class=\"body-sm disable-text-div\" title=\"{{ value }}\"\r\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'right' ? 'right' : 'left' }\"\r\n [innerHtml]=\"value | pepSafeHtml\" [style.height]=\"fieldHeight\">\r\n </div>\r\n <!-- <pep-textbox-icon *ngIf=\"xAlignment == 'right'\" matPrefix [value]=\"value\" [label]=\"label\" [type]=\"controlType\" [disabled]=\"disabled\"\r\n [ngClass]=\"{ 'card-one-row-icon': layoutType === 'card' && rowSpan === 1 }\" (iconClick)=\"openDialog()\">\r\n </pep-textbox-icon> -->\r\n <pep-textbox-icon matSuffix [value]=\"value\" [label]=\"label\" [type]=\"controlType\"\r\n [disabled]=\"disabled || readonly\"\r\n [ngClass]=\"{ 'card-one-row-icon': layoutType === 'card' && rowSpan === 1 }\"\r\n (iconClick)=\"openDialog()\">\r\n </pep-textbox-icon>\r\n <mat-error>\r\n <span class=\"body-xs\"\r\n [title]=\"mandatory && value.length == 0 ? ('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label }) : ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\"\r\n [innerText]=\"mandatory && value.length == 0 ? ('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label }) : ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\"></span>\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"layoutType === 'form'\">\r\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true }\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"layoutType === 'card'\">\r\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\r\n <ng-template #editBlock>\r\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false }\"></ng-container>\r\n </ng-template>\r\n <ng-template #readOnlyBlock>\r\n <div class=\"pep-textarea-card-container card-flex-container\"\r\n [ngClass]=\"{'one-row': rowSpan === 1, 'pep-button weak': isActive && !disabled}\"\r\n [ngStyle]=\"{ color: textColor, '-webkit-line-clamp': rowSpan }\" [class]=\"'text-align-' + xAlignment\"\r\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\" [style.height]=\"fieldHeight\">\r\n <span *ngIf=\" showTitle && label !=''\" class=\" body-xs title no-shrink\" title=\"{{ label }}\">{{ label\r\n }}&nbsp;</span>\r\n <span [id]=\"key\" title=\"{{ value }}\" class=\"body-sm value wrap\">{{ value }}</span>\r\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button self-start\"\r\n [ngClass]=\"{'self-end' : value && value !== ''}\" mat-button>\r\n <mat-icon>\r\n <pep-icon name=\"system_edit\">\r\n </pep-icon>\r\n </mat-icon>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"layoutType === 'table'\">\r\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\r\n <ng-template #selectedBlock>\r\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false }\"></ng-container>\r\n </ng-template>\r\n <ng-template #notSelectedBlock>\r\n <ng-container *ngIf=\"value?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\r\n <ng-template #notEmptyBlock>\r\n <mat-form-field appearance=\"outline\" dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\"\r\n class=\"pep-report-textarea\" [ngClass]=\"{ readonly: disabled }\">\r\n <input matInput [id]=\"key\" class=\"body-sm pep-report-input\" [ngClass]=\"{ readonly: disabled}\"\r\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\r\n title=\"{{ value }}\" [formControlName]=\"key\" type=\"text\" [value]=\"value\" [disabled]=\"true\" />\r\n <pep-textbox-icon *ngIf=\"disabled && xAlignment == 'right'\" matPrefix [value]=\"value\"\r\n [label]=\"label\" [type]=\"controlType\" [disabled]=\"disabled\" (iconClick)=\"openDialog()\">\r\n </pep-textbox-icon>\r\n <pep-textbox-icon *ngIf=\"disabled && (xAlignment == 'left')\" matSuffix [value]=\"value\"\r\n [label]=\"label\" [type]=\"controlType\" [disabled]=\"disabled\" (iconClick)=\"openDialog()\">\r\n </pep-textbox-icon>\r\n </mat-form-field>\r\n </ng-template>\r\n <ng-template #emptyBlock>\r\n <span>&nbsp;</span>\r\n </ng-template>\r\n </ng-template>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-template #textAreaDialogTemplate>\r\n <pep-dialog class=\"dialog-textarea-container\" [title]=\"label\">\r\n <ng-container pep-dialog-content>\r\n <textarea #dialogTextarea [readonly]=\"disabled || readonly\">{{ value }}</textarea>\r\n </ng-container>\r\n <div pep-dialog-actions class=\"pep-spacing-element-negative\">\r\n <ng-container *ngIf=\"disabled || readonly; then notEditableBlock; else editableBlock\">\r\n </ng-container>\r\n <ng-template #editableBlock>\r\n <button mat-button (click)=\"closeDialog()\" class=\"pep-spacing-element pep-button md weak\">\r\n {{ 'ACTIONS.CANCEL' | translate }}\r\n </button>\r\n <button mat-button class=\"pep-spacing-element pep-button md strong\"\r\n (click)=\"closeDialog(dialogTextarea.value)\">\r\n {{ 'ACTIONS.SAVE' | translate }}\r\n </button>\r\n </ng-template>\r\n <ng-template #notEditableBlock>\r\n <button mat-button (click)=\"closeDialog()\" class=\"pep-spacing-element pep-button md weak\">\r\n {{ 'ACTIONS.CLOSE' | translate }}\r\n </button>\r\n </ng-template>\r\n </div>\r\n </pep-dialog>\r\n</ng-template>",
142
+ template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate let-isFormView=\"isFormView\">\n <div class=\"pep-textarea-container\" [ngClass]=\"{ 'stand-alone': standAlone,\n 'right-alignment': xAlignment == 'right', 'one-row': rowSpan === 1,\n 'pep-textarea-card-container': layoutType === 'card'}\">\n <pep-field-title *ngIf=\"renderTitle && isFormView\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [maxFieldCharacters]=\"disabled || readonly ? 0 : maxFieldCharacters\"\n [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\" [inputLength]=\"input.value?.length\">\n </pep-field-title>\n <mat-form-field appearance=\"outline\" dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\"\n [ngClass]=\"{ 'pep-table-textarea': layoutType === 'table' }\">\n <textarea #input [hidden]=\"readonly\" [id]=\"key\" class=\"body-sm\" matInput (blur)=\"onBlur($event)\"\n title=\"{{ value }}\" [value]=\"value\"\n maxlength=\"{{ maxFieldCharacters > 0 ? maxFieldCharacters : 99999 }}\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'right' ? 'right' : 'left' }\"\n [formControlName]=\"key\" [style.height]=\"fieldHeight\">\n </textarea>\n <div *ngIf=\"readonly\" class=\"body-sm disable-text-div\" title=\"{{ value }}\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'right' ? 'right' : 'left' }\"\n [innerHtml]=\"value | pepSafeHtml\" [style.height]=\"fieldHeight\">\n </div>\n <!-- <pep-textbox-icon *ngIf=\"xAlignment == 'right'\" matPrefix [value]=\"value\" [label]=\"label\" [type]=\"controlType\" [disabled]=\"disabled\"\n [ngClass]=\"{ 'card-one-row-icon': layoutType === 'card' && rowSpan === 1 }\" (iconClick)=\"openDialog()\">\n </pep-textbox-icon> -->\n <pep-textbox-icon matSuffix [value]=\"value\" [label]=\"label\" [type]=\"controlType\"\n [disabled]=\"disabled || readonly\"\n [ngClass]=\"{ 'card-one-row-icon': layoutType === 'card' && rowSpan === 1 }\"\n (iconClick)=\"openDialog()\">\n </pep-textbox-icon>\n <mat-error>\n <span class=\"body-xs\"\n [title]=\"mandatory && value.length == 0 ? ('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label }) : ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\"\n [innerText]=\"mandatory && value.length == 0 ? ('MESSAGES.ERROR_IS_REQUIRED' | translate: { field: label }) : ('MESSAGES.ERROR_IS_NOT_VALID' | translate: { field: label })\"></span>\n </mat-error>\n </mat-form-field>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: true }\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngIf=\"isInEditMode; then editBlock; else readOnlyBlock\"></ng-container>\n <ng-template #editBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false }\"></ng-container>\n </ng-template>\n <ng-template #readOnlyBlock>\n <div class=\"pep-textarea-card-container card-flex-container\"\n [ngClass]=\"{'one-row': rowSpan === 1, 'pep-button weak': isActive && !disabled}\"\n [ngStyle]=\"{ color: textColor, '-webkit-line-clamp': rowSpan }\" [class]=\"'text-align-' + xAlignment\"\n (click)=\"!disabled ? cardTemplateClicked($event) : ''\" [style.height]=\"fieldHeight\">\n <span *ngIf=\" showTitle && label !=''\" class=\" body-xs title no-shrink\" title=\"{{ label }}\">{{ label\n }}&nbsp;</span>\n <span [id]=\"key\" title=\"{{ value }}\" class=\"body-sm value wrap\">{{ value }}</span>\n <button *ngIf=\"isActive && !disabled\" class=\"pep-button weak card-edit-button self-start\"\n [ngClass]=\"{'self-end' : value && value !== ''}\" mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\">\n </pep-icon>\n </mat-icon>\n </button>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"isActive && !disabled; then selectedBlock; else notSelectedBlock\"></ng-container>\n <ng-template #selectedBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate; context: { isFormView: false }\"></ng-container>\n </ng-template>\n <ng-template #notSelectedBlock>\n <ng-container *ngIf=\"value?.length > 0; then notEmptyBlock; else emptyBlock\"></ng-container>\n <ng-template #notEmptyBlock>\n <mat-form-field appearance=\"outline\" dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\"\n class=\"pep-report-textarea\" [ngClass]=\"{ readonly: disabled }\">\n <input matInput [id]=\"key\" class=\"body-sm pep-report-input\" [ngClass]=\"{ readonly: disabled}\"\n [ngStyle]=\"{ color: textColor, 'text-align': xAlignment == 'center' ? 'center' : xAlignment == 'right' ? 'right' : 'left' }\"\n title=\"{{ value }}\" [formControlName]=\"key\" type=\"text\" [value]=\"value\" [disabled]=\"true\" />\n <pep-textbox-icon *ngIf=\"disabled && xAlignment == 'right'\" matPrefix [value]=\"value\"\n [label]=\"label\" [type]=\"controlType\" [disabled]=\"disabled\" (iconClick)=\"openDialog()\">\n </pep-textbox-icon>\n <pep-textbox-icon *ngIf=\"disabled && (xAlignment == 'left')\" matSuffix [value]=\"value\"\n [label]=\"label\" [type]=\"controlType\" [disabled]=\"disabled\" (iconClick)=\"openDialog()\">\n </pep-textbox-icon>\n </mat-form-field>\n </ng-template>\n <ng-template #emptyBlock>\n <span>&nbsp;</span>\n </ng-template>\n </ng-template>\n </ng-container>\n</ng-container>\n\n<ng-template #textAreaDialogTemplate>\n <pep-dialog class=\"dialog-textarea-container\" [title]=\"label\">\n <ng-container pep-dialog-content>\n <textarea #dialogTextarea [readonly]=\"disabled || readonly\">{{ value }}</textarea>\n </ng-container>\n <div pep-dialog-actions class=\"pep-spacing-element-negative\">\n <ng-container *ngIf=\"disabled || readonly; then notEditableBlock; else editableBlock\">\n </ng-container>\n <ng-template #editableBlock>\n <button mat-button (click)=\"closeDialog()\" class=\"pep-spacing-element pep-button md weak\">\n {{ 'ACTIONS.CANCEL' | translate }}\n </button>\n <button mat-button class=\"pep-spacing-element pep-button md strong\"\n (click)=\"closeDialog(dialogTextarea.value)\">\n {{ 'ACTIONS.SAVE' | translate }}\n </button>\n </ng-template>\n <ng-template #notEditableBlock>\n <button mat-button (click)=\"closeDialog()\" class=\"pep-spacing-element pep-button md weak\">\n {{ 'ACTIONS.CLOSE' | translate }}\n </button>\n </ng-template>\n </div>\n </pep-dialog>\n</ng-template>",
143
143
  changeDetection: ChangeDetectionStrategy.OnPush,
144
- styles: [":host{height:inherit;display:grid}:host>*{align-self:center}.disable-text-div{display:inline-block;vertical-align:middle;margin:0;padding:.5rem 1.5rem .5rem 0;overflow-y:hidden}.right-alignment .disable-text-div{padding:.5rem 0 .5rem 1.5rem}.dialog-textarea-container textarea{border:none;resize:none;width:25rem;height:13rem}.dialog-textarea-container textarea:focus{outline:none}"]
144
+ styles: [".pep-textarea-container,.pepperi-textarea-container{height:inherit;display:grid;align-items:center}.pep-textarea-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex,.pepperi-textarea-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex{display:flex}.pep-textarea-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix,.pepperi-textarea-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix{line-height:unset;width:100%;height:100%;overflow:hidden;display:grid!important}.pep-textarea-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-input-element,.pepperi-textarea-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-input-element{margin:0;padding:.5rem 1.5rem .5rem 0;vertical-align:unset;resize:none;width:calc(100% + 3rem);max-width:unset;overflow-y:scroll;box-sizing:border-box}.pep-textarea-container ::ng-deep .mat-form-field .mat-form-field-prefix,.pep-textarea-container ::ng-deep .mat-form-field .mat-form-field-suffix,.pepperi-textarea-container ::ng-deep .mat-form-field .mat-form-field-prefix,.pepperi-textarea-container ::ng-deep .mat-form-field .mat-form-field-suffix{align-self:flex-end!important;margin-bottom:.5rem}.pep-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix .mat-input-element,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix .mat-input-element{padding-top:.35rem}.pep-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-prefix,.pep-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-suffix,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-prefix,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-suffix{align-self:center!important;margin-bottom:unset}.pep-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-prefix .card-one-row-icon .pep-button,.pep-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-prefix .card-one-row-icon .pepperi-button,.pep-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-suffix .card-one-row-icon .pep-button,.pep-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-suffix .card-one-row-icon .pepperi-button,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-prefix .card-one-row-icon .pep-button,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-prefix .card-one-row-icon .pepperi-button,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-suffix .card-one-row-icon .pep-button,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-suffix .card-one-row-icon .pepperi-button{width:1rem!important;height:1rem!important}.pep-textarea-container.one-row ::ng-deep .mat-form-field.pep-table-textarea .mat-input-element,.pep-textarea-container.one-row ::ng-deep .mat-form-field.pepperi-table-textarea .mat-input-element,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field.pep-table-textarea .mat-input-element,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field.pepperi-table-textarea .mat-input-element{padding-top:.135rem!important}.pep-textarea-container .rich-text-cont,.pepperi-textarea-container .rich-text-cont{overflow-x:hidden;display:inline-block;vertical-align:unset;margin:0;padding:.5rem 1.5rem .5rem 0;resize:none;width:calc(100% + 3rem);max-width:unset;overflow-y:scroll;box-sizing:border-box}.pep-textarea-container.right-alignment ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-input-element,.pepperi-textarea-container.right-alignment ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-input-element{padding:.5rem 0 .5rem 1.5rem}.pep-textarea-container.right-alignment .rich-text-cont,.pepperi-textarea-container.right-alignment .rich-text-cont{padding:.5rem 0 .5rem 1.5rem}.pep-textarea-card-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex,.pepperi-textarea-card-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex{padding-left:.5rem;padding-right:.5rem}.pep-textarea-card-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex .mat-input-element,.pepperi-textarea-card-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex .mat-input-element{padding:.25rem 1.5rem .5rem 0}.pep-textarea-card-container.card-flex-container,.pepperi-textarea-card-container.card-flex-container{height:inherit;display:flex;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;white-space:unset;padding:.25rem}.pep-textarea-card-container.card-flex-container.one-row .title,.pepperi-textarea-card-container.card-flex-container.one-row .title{padding-top:.25rem}.pep-textarea-card-container.card-flex-container span.value,.pepperi-textarea-card-container.card-flex-container span.value{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;white-space:unset}.pep-textarea-card-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix,.pepperi-textarea-card-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix{line-height:0!important}.pep-textarea-card-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix .mat-input-element,.pepperi-textarea-card-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix .mat-input-element{padding-top:0;padding-bottom:0}.pep-textarea-card-container.right-alignment ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-input-element,.pepperi-textarea-card-container.right-alignment ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-input-element{padding:.25rem 0 .5rem 1.5rem}.pep-report-textarea .mat-form-field-suffix,.pepperi-report-textarea .mat-form-field-suffix{right:0!important}.pep-report-textarea.readonly .mat-form-field-wrapper .mat-form-field-flex,.pepperi-report-textarea.readonly .mat-form-field-wrapper .mat-form-field-flex{padding:0}:host{height:inherit;display:grid}:host>*{align-self:center}.disable-text-div{display:inline-block;vertical-align:middle;margin:0;padding:.5rem 1.5rem .5rem 0;overflow-y:hidden}.right-alignment .disable-text-div{padding:.5rem 0 .5rem 1.5rem}.dialog-textarea-container textarea{border:none;resize:none;width:25rem;height:13rem}.dialog-textarea-container textarea:focus{outline:none}", ".pep-textarea-container,.pepperi-textarea-container{height:inherit;display:grid;align-items:center}.pep-textarea-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex,.pepperi-textarea-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex{display:flex}.pep-textarea-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix,.pepperi-textarea-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix{line-height:unset;width:100%;height:100%;overflow:hidden;display:grid!important}.pep-textarea-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-input-element,.pepperi-textarea-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-input-element{margin:0;padding:.5rem 1.5rem .5rem 0;vertical-align:unset;resize:none;width:calc(100% + 3rem);max-width:unset;overflow-y:scroll;box-sizing:border-box}.pep-textarea-container ::ng-deep .mat-form-field .mat-form-field-prefix,.pep-textarea-container ::ng-deep .mat-form-field .mat-form-field-suffix,.pepperi-textarea-container ::ng-deep .mat-form-field .mat-form-field-prefix,.pepperi-textarea-container ::ng-deep .mat-form-field .mat-form-field-suffix{align-self:flex-end!important;margin-bottom:.5rem}.pep-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix .mat-input-element,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix .mat-input-element{padding-top:.35rem}.pep-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-prefix,.pep-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-suffix,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-prefix,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-suffix{align-self:center!important;margin-bottom:unset}.pep-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-prefix .card-one-row-icon .pep-button,.pep-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-prefix .card-one-row-icon .pepperi-button,.pep-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-suffix .card-one-row-icon .pep-button,.pep-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-suffix .card-one-row-icon .pepperi-button,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-prefix .card-one-row-icon .pep-button,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-prefix .card-one-row-icon .pepperi-button,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-suffix .card-one-row-icon .pep-button,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-suffix .card-one-row-icon .pepperi-button{width:1rem!important;height:1rem!important}.pep-textarea-container.one-row ::ng-deep .mat-form-field.pep-table-textarea .mat-input-element,.pep-textarea-container.one-row ::ng-deep .mat-form-field.pepperi-table-textarea .mat-input-element,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field.pep-table-textarea .mat-input-element,.pepperi-textarea-container.one-row ::ng-deep .mat-form-field.pepperi-table-textarea .mat-input-element{padding-top:.135rem!important}.pep-textarea-container .rich-text-cont,.pepperi-textarea-container .rich-text-cont{overflow-x:hidden;display:inline-block;vertical-align:unset;margin:0;padding:.5rem 1.5rem .5rem 0;resize:none;width:calc(100% + 3rem);max-width:unset;overflow-y:scroll;box-sizing:border-box}.pep-textarea-container.right-alignment ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-input-element,.pepperi-textarea-container.right-alignment ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-input-element{padding:.5rem 0 .5rem 1.5rem}.pep-textarea-container.right-alignment .rich-text-cont,.pepperi-textarea-container.right-alignment .rich-text-cont{padding:.5rem 0 .5rem 1.5rem}.pep-textarea-card-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex,.pepperi-textarea-card-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex{padding-left:.5rem;padding-right:.5rem}.pep-textarea-card-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex .mat-input-element,.pepperi-textarea-card-container ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-flex .mat-input-element{padding:.25rem 1.5rem .5rem 0}.pep-textarea-card-container.card-flex-container,.pepperi-textarea-card-container.card-flex-container{height:inherit;display:flex;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;white-space:unset;padding:.25rem}.pep-textarea-card-container.card-flex-container.one-row .title,.pepperi-textarea-card-container.card-flex-container.one-row .title{padding-top:.25rem}.pep-textarea-card-container.card-flex-container span.value,.pepperi-textarea-card-container.card-flex-container span.value{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;white-space:unset}.pep-textarea-card-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix,.pepperi-textarea-card-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix{line-height:0!important}.pep-textarea-card-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix .mat-input-element,.pepperi-textarea-card-container.one-row ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-form-field-infix .mat-input-element{padding-top:0;padding-bottom:0}.pep-textarea-card-container.right-alignment ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-input-element,.pepperi-textarea-card-container.right-alignment ::ng-deep .mat-form-field .mat-form-field-wrapper .mat-input-element{padding:.25rem 0 .5rem 1.5rem}.pep-report-textarea .mat-form-field-suffix,.pepperi-report-textarea .mat-form-field-suffix{right:0!important}.pep-report-textarea.readonly .mat-form-field-wrapper .mat-form-field-flex,.pepperi-report-textarea.readonly .mat-form-field-wrapper .mat-form-field-flex{padding:0}.pep-report-textarea ::ng-deep.mat-form-field-flex,.pepperi-report-textarea ::ng-deep.mat-form-field-flex{background:transparent!important}"]
145
145
  },] }
146
146
  ];
147
147
  PepTextareaComponent.ctorParameters = () => [