@pepperi-addons/ngx-lib 0.2.61 → 0.3.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 (302) hide show
  1. package/address/address.component.theme.scss +4 -7
  2. package/address/pepperi-addons-ngx-lib-address.metadata.json +1 -1
  3. package/attachment/attachment.component.d.ts +1 -0
  4. package/attachment/attachment.component.theme.scss +3 -2
  5. package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +1 -1
  6. package/bread-crumbs/bread-crumbs.component.theme.scss +7 -7
  7. package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.metadata.json +1 -1
  8. package/bundles/pepperi-addons-ngx-lib-address.umd.js +1 -1
  9. package/bundles/pepperi-addons-ngx-lib-address.umd.js.map +1 -1
  10. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +7 -2
  11. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js.map +1 -1
  12. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js +1 -1
  13. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js.map +1 -1
  14. package/bundles/pepperi-addons-ngx-lib-button.umd.js +1 -1
  15. package/bundles/pepperi-addons-ngx-lib-button.umd.js.map +1 -1
  16. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +4 -1
  17. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +1 -1
  18. package/bundles/pepperi-addons-ngx-lib-color.umd.js +8 -3
  19. package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +1 -1
  20. package/bundles/pepperi-addons-ngx-lib-date.umd.js +4 -1
  21. package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
  22. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js +1 -1
  23. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js.map +1 -1
  24. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js +1 -1
  25. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js.map +1 -1
  26. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +1 -1
  27. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js.map +1 -1
  28. package/bundles/pepperi-addons-ngx-lib-form.umd.js +19 -16
  29. package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
  30. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js +1 -1
  31. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js.map +1 -1
  32. package/bundles/pepperi-addons-ngx-lib-image.umd.js +7 -2
  33. package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
  34. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +7 -2
  35. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
  36. package/bundles/pepperi-addons-ngx-lib-list.umd.js +3 -3
  37. package/bundles/pepperi-addons-ngx-lib-list.umd.js.map +1 -1
  38. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +7 -2
  39. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
  40. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +1104 -0
  41. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +1 -0
  42. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +7 -2
  43. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +1 -1
  44. package/bundles/pepperi-addons-ngx-lib-select.umd.js +7 -2
  45. package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
  46. package/bundles/pepperi-addons-ngx-lib-separator.umd.js +9 -1
  47. package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +1 -1
  48. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js +1 -1
  49. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js.map +1 -1
  50. package/bundles/pepperi-addons-ngx-lib-signature.umd.js +7 -2
  51. package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +1 -1
  52. package/bundles/pepperi-addons-ngx-lib-slider.umd.js +1 -1
  53. package/bundles/pepperi-addons-ngx-lib-slider.umd.js.map +1 -1
  54. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +306 -39
  55. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
  56. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +7 -2
  57. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +1 -1
  58. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +5 -3
  59. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +1 -1
  60. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js +1 -1
  61. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js.map +1 -1
  62. package/bundles/pepperi-addons-ngx-lib.umd.js +3 -1
  63. package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
  64. package/button/button.component.theme.scss +0 -2
  65. package/button/pepperi-addons-ngx-lib-button.metadata.json +1 -1
  66. package/checkbox/checkbox.component.theme.scss +0 -2
  67. package/checkbox/pepperi-addons-ngx-lib-checkbox.metadata.json +1 -1
  68. package/color/color-picker.component.theme.scss +122 -128
  69. package/color/color.component.d.ts +1 -0
  70. package/color/color.component.theme.scss +0 -7
  71. package/color/pepperi-addons-ngx-lib-color.metadata.json +1 -1
  72. package/core/customization/customization.service.d.ts +1 -0
  73. package/date/date.component.theme.scss +163 -169
  74. package/date/pepperi-addons-ngx-lib-date.metadata.json +1 -1
  75. package/dialog/dialog.component.theme.scss +4 -4
  76. package/dialog/pepperi-addons-ngx-lib-dialog.metadata.json +1 -1
  77. package/esm2015/address/address.component.js +2 -2
  78. package/esm2015/attachment/attachment.component.js +8 -3
  79. package/esm2015/bread-crumbs/bread-crumbs.component.js +2 -2
  80. package/esm2015/button/button.component.js +2 -2
  81. package/esm2015/checkbox/checkbox.component.js +5 -2
  82. package/esm2015/color/color-picker.component.js +2 -2
  83. package/esm2015/color/color.component.js +8 -3
  84. package/esm2015/core/customization/customization.service.js +4 -2
  85. package/esm2015/date/date.component.js +5 -2
  86. package/esm2015/dialog/dialog.component.js +2 -2
  87. package/esm2015/field-title/field-title.component.js +2 -2
  88. package/esm2015/files-uploader/files-uploader.component.js +2 -2
  89. package/esm2015/form/indicators.component.js +2 -2
  90. package/esm2015/form/internal-button.component.js +20 -17
  91. package/esm2015/group-buttons/group-buttons.component.js +2 -2
  92. package/esm2015/image/image.component.js +8 -3
  93. package/esm2015/images-filmstrip/images-filmstrip.component.js +8 -3
  94. package/esm2015/list/list-total.component.js +2 -2
  95. package/esm2015/list/virtual-scroller.js +3 -3
  96. package/esm2015/quantity-selector/quantity-selector.component.js +8 -3
  97. package/esm2015/query-builder/common/model/field.js +2 -0
  98. package/esm2015/query-builder/common/model/filter.js +2 -0
  99. package/esm2015/query-builder/common/model/legacy.js +2 -0
  100. package/esm2015/query-builder/common/model/operator-unit.js +42 -0
  101. package/esm2015/query-builder/common/model/operator.js +207 -0
  102. package/esm2015/query-builder/common/model/structure.js +2 -0
  103. package/esm2015/query-builder/common/model/type-map.js +27 -0
  104. package/esm2015/query-builder/common/model/type.js +6 -0
  105. package/esm2015/query-builder/common/services/output-query.service.js +111 -0
  106. package/esm2015/query-builder/common/services/type-convertor.service.js +40 -0
  107. package/esm2015/query-builder/pepperi-addons-ngx-lib-query-builder.js +9 -0
  108. package/esm2015/query-builder/public-api.js +8 -0
  109. package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +116 -0
  110. package/esm2015/query-builder/query-builder-section/query-builder-section.component.js +64 -0
  111. package/esm2015/query-builder/query-builder.component.js +104 -0
  112. package/esm2015/query-builder/query-builder.module.js +35 -0
  113. package/esm2015/query-builder/query-builder.service.js +282 -0
  114. package/esm2015/rich-html-textarea/rich-html-textarea.component.js +8 -3
  115. package/esm2015/select/select.component.js +8 -3
  116. package/esm2015/separator/separator.component.js +10 -2
  117. package/esm2015/side-bar/side-bar.component.js +2 -2
  118. package/esm2015/signature/signature.component.js +8 -3
  119. package/esm2015/slider/slider.component.js +2 -2
  120. package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +23 -3
  121. package/esm2015/smart-filters/common/model/base-filter-component.js +35 -8
  122. package/esm2015/smart-filters/common/model/creator.js +8 -2
  123. package/esm2015/smart-filters/common/model/field.js +12 -1
  124. package/esm2015/smart-filters/common/model/operator.js +8 -8
  125. package/esm2015/smart-filters/common/model/type.js +1 -1
  126. package/esm2015/smart-filters/date-filter/date-filter.component.js +45 -2
  127. package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +53 -14
  128. package/esm2015/smart-filters/number-filter/number-filter.component.js +27 -2
  129. package/esm2015/smart-filters/public-api.js +2 -1
  130. package/esm2015/smart-filters/smart-filters.component.js +2 -2
  131. package/esm2015/smart-filters/smart-filters.module.js +16 -3
  132. package/esm2015/smart-filters/text-filter/text-filter.component.js +79 -0
  133. package/esm2015/textarea/textarea.component.js +8 -3
  134. package/esm2015/textbox/textbox.component.js +6 -4
  135. package/esm2015/top-bar/top-bar.component.js +2 -2
  136. package/fesm2015/pepperi-addons-ngx-lib-address.js +1 -1
  137. package/fesm2015/pepperi-addons-ngx-lib-address.js.map +1 -1
  138. package/fesm2015/pepperi-addons-ngx-lib-attachment.js +7 -2
  139. package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +1 -1
  140. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js +1 -1
  141. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js.map +1 -1
  142. package/fesm2015/pepperi-addons-ngx-lib-button.js +1 -1
  143. package/fesm2015/pepperi-addons-ngx-lib-button.js.map +1 -1
  144. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +4 -1
  145. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +1 -1
  146. package/fesm2015/pepperi-addons-ngx-lib-color.js +8 -3
  147. package/fesm2015/pepperi-addons-ngx-lib-color.js.map +1 -1
  148. package/fesm2015/pepperi-addons-ngx-lib-date.js +4 -1
  149. package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
  150. package/fesm2015/pepperi-addons-ngx-lib-dialog.js +1 -1
  151. package/fesm2015/pepperi-addons-ngx-lib-dialog.js.map +1 -1
  152. package/fesm2015/pepperi-addons-ngx-lib-field-title.js +1 -1
  153. package/fesm2015/pepperi-addons-ngx-lib-field-title.js.map +1 -1
  154. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +1 -1
  155. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js.map +1 -1
  156. package/fesm2015/pepperi-addons-ngx-lib-form.js +19 -16
  157. package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
  158. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js +1 -1
  159. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js.map +1 -1
  160. package/fesm2015/pepperi-addons-ngx-lib-image.js +7 -2
  161. package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
  162. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +7 -2
  163. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
  164. package/fesm2015/pepperi-addons-ngx-lib-list.js +3 -3
  165. package/fesm2015/pepperi-addons-ngx-lib-list.js.map +1 -1
  166. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +7 -2
  167. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
  168. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +1014 -0
  169. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +1 -0
  170. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +7 -2
  171. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +1 -1
  172. package/fesm2015/pepperi-addons-ngx-lib-select.js +7 -2
  173. package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
  174. package/fesm2015/pepperi-addons-ngx-lib-separator.js +9 -1
  175. package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +1 -1
  176. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js +1 -1
  177. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js.map +1 -1
  178. package/fesm2015/pepperi-addons-ngx-lib-signature.js +7 -2
  179. package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +1 -1
  180. package/fesm2015/pepperi-addons-ngx-lib-slider.js +1 -1
  181. package/fesm2015/pepperi-addons-ngx-lib-slider.js.map +1 -1
  182. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +293 -36
  183. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
  184. package/fesm2015/pepperi-addons-ngx-lib-textarea.js +7 -2
  185. package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +1 -1
  186. package/fesm2015/pepperi-addons-ngx-lib-textbox.js +5 -3
  187. package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +1 -1
  188. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js +1 -1
  189. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js.map +1 -1
  190. package/fesm2015/pepperi-addons-ngx-lib.js +3 -1
  191. package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
  192. package/field-title/field-title.component.theme.scss +0 -2
  193. package/field-title/pepperi-addons-ngx-lib-field-title.metadata.json +1 -1
  194. package/files-uploader/files-uploader.component.theme.scss +3 -2
  195. package/files-uploader/pepperi-addons-ngx-lib-files-uploader.metadata.json +1 -1
  196. package/form/indicators.component.theme.scss +5 -5
  197. package/form/internal-button.component.d.ts +0 -1
  198. package/form/pepperi-addons-ngx-lib-form.metadata.json +1 -1
  199. package/group-buttons/group-buttons.component.theme.scss +11 -11
  200. package/group-buttons/pepperi-addons-ngx-lib-group-buttons.metadata.json +1 -1
  201. package/image/image.component.d.ts +1 -0
  202. package/image/image.component.theme.scss +28 -27
  203. package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
  204. package/images-filmstrip/images-filmstrip.component.d.ts +1 -0
  205. package/images-filmstrip/images-filmstrip.component.theme.scss +27 -26
  206. package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
  207. package/list/list-total.component.theme.scss +6 -6
  208. package/list/pepperi-addons-ngx-lib-list.metadata.json +1 -1
  209. package/package.json +5 -5
  210. package/page-layout/page-layout.component.theme.scss +6 -6
  211. package/pepperi-addons-ngx-lib.metadata.json +1 -1
  212. package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +1 -1
  213. package/quantity-selector/quantity-selector.component.d.ts +1 -0
  214. package/quantity-selector/quantity-selector.component.theme.scss +21 -21
  215. package/query-builder/common/model/field.d.ts +8 -0
  216. package/query-builder/common/model/filter.d.ts +6 -0
  217. package/query-builder/common/model/legacy.d.ts +29 -0
  218. package/query-builder/common/model/operator-unit.d.ts +13 -0
  219. package/query-builder/common/model/operator.d.ts +21 -0
  220. package/query-builder/common/model/structure.d.ts +4 -0
  221. package/query-builder/common/model/type-map.d.ts +12 -0
  222. package/query-builder/common/model/type.d.ts +4 -0
  223. package/query-builder/common/services/output-query.service.d.ts +44 -0
  224. package/query-builder/common/services/type-convertor.service.d.ts +10 -0
  225. package/query-builder/package.json +14 -0
  226. package/query-builder/pepperi-addons-ngx-lib-query-builder.d.ts +8 -0
  227. package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +1 -0
  228. package/query-builder/public-api.d.ts +4 -0
  229. package/query-builder/query-builder-item/query-builder-item.component.d.ts +37 -0
  230. package/query-builder/query-builder-section/query-builder-section.component.d.ts +27 -0
  231. package/query-builder/query-builder-section/query-builder-section.component.theme.scss +7 -0
  232. package/query-builder/query-builder.component.d.ts +35 -0
  233. package/query-builder/query-builder.module.d.ts +2 -0
  234. package/query-builder/query-builder.service.d.ts +94 -0
  235. package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +1 -1
  236. package/rich-html-textarea/rich-html-textarea.component.d.ts +1 -0
  237. package/rich-html-textarea/rich-html-textarea.component.theme.scss +77 -70
  238. package/select/pepperi-addons-ngx-lib-select.metadata.json +1 -1
  239. package/select/select.component.d.ts +1 -0
  240. package/select/select.component.theme.scss +98 -2
  241. package/separator/pepperi-addons-ngx-lib-separator.metadata.json +1 -1
  242. package/separator/separator.component.theme.scss +1 -1
  243. package/side-bar/pepperi-addons-ngx-lib-side-bar.metadata.json +1 -1
  244. package/side-bar/side-bar.component.theme.scss +17 -16
  245. package/signature/pepperi-addons-ngx-lib-signature.metadata.json +1 -1
  246. package/signature/signature.component.d.ts +1 -0
  247. package/signature/signature.component.theme.scss +5 -21
  248. package/slider/pepperi-addons-ngx-lib-slider.metadata.json +1 -1
  249. package/slider/slider.component.theme.scss +54 -53
  250. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +6 -1
  251. package/smart-filters/common/model/base-filter-component.d.ts +7 -0
  252. package/smart-filters/common/model/field.d.ts +4 -0
  253. package/smart-filters/common/model/operator.d.ts +1 -0
  254. package/smart-filters/common/model/type.d.ts +2 -2
  255. package/smart-filters/date-filter/date-filter.component.d.ts +8 -1
  256. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +6 -0
  257. package/smart-filters/number-filter/number-filter.component.d.ts +5 -0
  258. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
  259. package/smart-filters/public-api.d.ts +1 -0
  260. package/smart-filters/smart-filters.component.theme.scss +6 -7
  261. package/smart-filters/text-filter/text-filter.component.d.ts +17 -0
  262. package/src/assets/i18n/en.ngx-lib.json +2 -1
  263. package/src/core/style/abstracts/breakpoints.scss +4 -2
  264. package/src/core/style/abstracts/functions.scss +232 -216
  265. package/src/core/style/abstracts/mixins.scss +191 -188
  266. package/src/core/style/base/base.scss +125 -124
  267. package/src/core/style/base/grids.scss +1 -1
  268. package/src/core/style/base/typography.scss +66 -62
  269. package/src/core/style/components/button.scss +57 -60
  270. package/src/core/style/components/checkbox.scss +41 -38
  271. package/src/core/style/components/datetime.scss +182 -22
  272. package/src/core/style/components/file.scss +159 -141
  273. package/src/core/style/components/general.scss +176 -287
  274. package/src/core/style/components/input.scss +22 -24
  275. package/src/core/style/components/quantity-selector.scss +15 -12
  276. package/src/core/style/components/radio-button.scss +22 -38
  277. package/src/core/style/components/select.scss +184 -182
  278. package/src/core/style/components/signature.scss +14 -12
  279. package/src/core/style/components/splitter.scss +58 -55
  280. package/src/core/style/components/textarea.scss +90 -78
  281. package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +1 -1
  282. package/textarea/textarea.component.d.ts +1 -0
  283. package/textarea/textarea.component.theme.scss +3 -2
  284. package/textbox/pepperi-addons-ngx-lib-textbox.metadata.json +1 -1
  285. package/textbox/textbox.component.theme.scss +1 -1
  286. package/theming.scss +50 -144
  287. package/top-bar/pepperi-addons-ngx-lib-top-bar.metadata.json +1 -1
  288. package/top-bar/top-bar.component.theme.scss +7 -7
  289. package/form/form.component.theme.scss +0 -2
  290. package/form/internal-button.component.theme.scss +0 -2
  291. package/form/internal-menu.component.theme.scss +0 -3
  292. package/list/list-actions.component.theme.scss +0 -3
  293. package/list/list-carousel.component.theme.scss +0 -9
  294. package/list/list-chooser.component.theme.scss +0 -3
  295. package/list/list-pager.component.theme.scss +0 -3
  296. package/list/list-sorting.component.theme.scss +0 -3
  297. package/list/list-views.component.theme.scss +0 -3
  298. package/list/list.component.theme.scss +0 -5
  299. package/list/list_old.component.theme.scss +0 -5
  300. package/menu/menu.component.theme.scss +0 -2
  301. package/search/search.component.theme.scss +0 -3
  302. package/textbox-icon/textbox-icon.component.theme.scss +0 -3
@@ -0,0 +1,1104 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('@angular/flex-layout'), require('@pepperi-addons/ngx-lib/smart-filters'), require('@pepperi-addons/ngx-lib/select'), require('@pepperi-addons/ngx-lib/button'), require('@pepperi-addons/ngx-lib/group-buttons'), require('rxjs')) :
3
+ typeof define === 'function' && define.amd ? define('@pepperi-addons/ngx-lib/query-builder', ['exports', '@angular/core', '@angular/common', '@angular/forms', '@angular/flex-layout', '@pepperi-addons/ngx-lib/smart-filters', '@pepperi-addons/ngx-lib/select', '@pepperi-addons/ngx-lib/button', '@pepperi-addons/ngx-lib/group-buttons', 'rxjs'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['pepperi-addons'] = global['pepperi-addons'] || {}, global['pepperi-addons']['ngx-lib'] = global['pepperi-addons']['ngx-lib'] || {}, global['pepperi-addons']['ngx-lib']['query-builder'] = {}), global.ng.core, global.ng.common, global.ng.forms, global.ng.flexLayout, global['pepperi-addons']['ngx-lib']['smart-filters'], global['pepperi-addons']['ngx-lib'].select, global['pepperi-addons']['ngx-lib'].button, global['pepperi-addons']['ngx-lib']['group-buttons'], global.rxjs));
5
+ }(this, (function (exports, core, common, forms, flexLayout, smartFilters, select, button, groupButtons, rxjs) { 'use strict';
6
+
7
+ var Equals = {
8
+ legacy: 'IsEqual',
9
+ smartFilter: smartFilters.PepSmartFilterOperators.Equals,
10
+ type: ['boolean', 'int', 'text']
11
+ };
12
+ var NotEqual = {
13
+ legacy: 'IsNotEqual',
14
+ smartFilter: smartFilters.PepSmartFilterOperators.NotEqual,
15
+ type: null
16
+ };
17
+ var LessThan = {
18
+ legacy: '<',
19
+ smartFilter: smartFilters.PepSmartFilterOperators.LessThan,
20
+ type: null
21
+ };
22
+ var GreaterThan = {
23
+ legacy: '>',
24
+ smartFilter: smartFilters.PepSmartFilterOperators.GreaterThan,
25
+ type: null
26
+ };
27
+ /*
28
+ const GreaterThanOrEquals: IPepQueryBuilderOperator = {
29
+ legacy: {
30
+ operator: '>=',
31
+ type: 'Integer'
32
+ },
33
+ smartFilter: {
34
+ item: PepSmartFilterOperators.GreaterThanOrEquals,
35
+ type: 'int'
36
+ }
37
+ };
38
+
39
+ const LessThanOrEquals: IPepQueryBuilderOperator = {
40
+ legacy: {
41
+ operator: '<=',
42
+ type: 'Integer'
43
+ },
44
+ smartFilter: {
45
+ item: PepSmartFilterOperators.LessThanOrEquals,
46
+ type: 'int',
47
+ type: 'Integer'
48
+ }
49
+ }; */
50
+ var NumberRange = {
51
+ legacy: 'Between',
52
+ smartFilter: smartFilters.PepSmartFilterOperators.NumberRange,
53
+ type: ['int']
54
+ };
55
+ var Contains = {
56
+ legacy: 'Contains',
57
+ smartFilter: smartFilters.PepSmartFilterOperators.Contains,
58
+ type: null
59
+ };
60
+ /*
61
+ const BeginsWith: IPepQueryBuilderOperator = {
62
+ legacy: {
63
+ operator: 'BeginsWith',
64
+ type: 'String'
65
+ },
66
+ smartFilter: {
67
+ item: PepSmartFilterOperators.BeginsWith,
68
+ type: 'text'
69
+ }
70
+ };
71
+
72
+ const EndsWith: IPepQueryBuilderOperator = {
73
+ legacy: {
74
+ operator: 'EndsWith',
75
+ type: 'String'
76
+ },
77
+ smartFilter: {
78
+ item: PepSmartFilterOperators.EndsWith,
79
+ type: 'text'
80
+ }
81
+ };
82
+
83
+ const Before: IPepQueryBuilderOperator = {
84
+ legacy: {
85
+ operator: 'Before',
86
+ type: 'Date'
87
+ },
88
+ smartFilter: {
89
+ item: PepSmartFilterOperators.Before,
90
+ type: 'date'
91
+ }
92
+ };
93
+
94
+ const After: IPepQueryBuilderOperator = {
95
+ legacy: {
96
+ operator: 'After',
97
+ type: 'Date'
98
+ },
99
+ smartFilter: {
100
+ item: PepSmartFilterOperators.After,
101
+ type: 'date'
102
+ }
103
+ }; */
104
+ var InTheLast = {
105
+ legacy: 'InTheLast',
106
+ smartFilter: smartFilters.PepSmartFilterOperators.InTheLast,
107
+ type: null
108
+ };
109
+ var NotInTheLast = {
110
+ legacy: 'NotInTheLast',
111
+ smartFilter: smartFilters.PepSmartFilterOperators.NotInTheLast,
112
+ type: null
113
+ };
114
+ var Today = {
115
+ legacy: 'Today',
116
+ smartFilter: smartFilters.PepSmartFilterOperators.Today,
117
+ type: null
118
+ };
119
+ var ThisWeek = {
120
+ legacy: 'ThisWeek',
121
+ smartFilter: smartFilters.PepSmartFilterOperators.ThisWeek,
122
+ type: null
123
+ };
124
+ var ThisMonth = {
125
+ legacy: 'ThisMonth',
126
+ smartFilter: smartFilters.PepSmartFilterOperators.ThisMonth,
127
+ type: null
128
+ };
129
+ var DateRange = {
130
+ legacy: 'Between',
131
+ smartFilter: smartFilters.PepSmartFilterOperators.DateRange,
132
+ type: ['date-time']
133
+ };
134
+ var DueIn = {
135
+ legacy: 'DueIn',
136
+ smartFilter: smartFilters.PepSmartFilterOperators.DueIn,
137
+ type: null
138
+ };
139
+ var NotDueIn = {
140
+ legacy: 'NotDueIn',
141
+ smartFilter: smartFilters.PepSmartFilterOperators.NotDueIn,
142
+ type: null
143
+ };
144
+ var On = {
145
+ legacy: 'On',
146
+ smartFilter: smartFilters.PepSmartFilterOperators.On,
147
+ type: null
148
+ };
149
+ var IsEmpty = {
150
+ legacy: 'IsEmpty',
151
+ smartFilter: smartFilters.PepSmartFilterOperators.IsEmpty,
152
+ type: null
153
+ };
154
+ var IsNotEmpty = {
155
+ legacy: 'IsNotEmpty',
156
+ smartFilter: smartFilters.PepSmartFilterOperators.IsNotEmpty,
157
+ type: null
158
+ };
159
+ var In = {
160
+ legacy: 'IsEqual',
161
+ smartFilter: smartFilters.PepSmartFilterOperators.In,
162
+ type: ['multi-select']
163
+ };
164
+ var PepQueryBuilderOperators = [
165
+ Equals,
166
+ NotEqual,
167
+ LessThan,
168
+ // LessThanOrEquals,
169
+ GreaterThan,
170
+ // GreaterThanOrEquals,
171
+ NumberRange,
172
+ Contains,
173
+ // BeginsWith,
174
+ // EndsWith,
175
+ // After,
176
+ // Before,
177
+ InTheLast,
178
+ NotInTheLast,
179
+ Today,
180
+ ThisWeek,
181
+ ThisMonth,
182
+ DateRange,
183
+ DueIn,
184
+ NotDueIn,
185
+ On,
186
+ IsEmpty,
187
+ IsNotEmpty,
188
+ In
189
+ ];
190
+ /**
191
+ * gets a smart filter operator item
192
+ * @param operator legacy operator
193
+ * @param type smart filter's type
194
+ * @returns smart filter operator item
195
+ */
196
+ function getSmartBuilderOperator(operator, type) {
197
+ var smartFilterOperator = PepQueryBuilderOperators.find(function (item) { return item.legacy === operator &&
198
+ (item.type === null || item.type.includes(type)); });
199
+ return smartFilterOperator ? smartFilterOperator.smartFilter : null;
200
+ }
201
+ /**
202
+ * gets a legacy operator value
203
+ * @param operator smart filter operator item
204
+ * @param type smart filter's type
205
+ * @returns legacy operator value
206
+ */
207
+ function getLegacyOperator(operator, type) {
208
+ var legacyOperator = PepQueryBuilderOperators.find(function (item) { return item.smartFilter === operator &&
209
+ (item.type === null || item.type.includes(type)); });
210
+ return legacyOperator ? legacyOperator.legacy : null;
211
+ }
212
+
213
+ var PepTypeConvertorService = /** @class */ (function () {
214
+ function PepTypeConvertorService() {
215
+ this._operators = [];
216
+ this._booleans = [];
217
+ this.initOperators();
218
+ this.initBooleans();
219
+ }
220
+ Object.defineProperty(PepTypeConvertorService.prototype, "operators", {
221
+ get: function () {
222
+ return this._operators;
223
+ },
224
+ enumerable: false,
225
+ configurable: true
226
+ });
227
+ Object.defineProperty(PepTypeConvertorService.prototype, "booleans", {
228
+ get: function () {
229
+ return this._booleans;
230
+ },
231
+ enumerable: false,
232
+ configurable: true
233
+ });
234
+ PepTypeConvertorService.prototype.initOperators = function () {
235
+ this._operators.push({
236
+ key: 'AND',
237
+ value: 'And'
238
+ });
239
+ this._operators.push({
240
+ key: 'OR',
241
+ value: 'Or'
242
+ });
243
+ };
244
+ PepTypeConvertorService.prototype.initBooleans = function () {
245
+ this._booleans.push({
246
+ key: 'True',
247
+ value: 'True'
248
+ });
249
+ this._booleans.push({
250
+ key: 'False',
251
+ value: 'False'
252
+ });
253
+ };
254
+ return PepTypeConvertorService;
255
+ }());
256
+ PepTypeConvertorService.decorators = [
257
+ { type: core.Injectable }
258
+ ];
259
+ PepTypeConvertorService.ctorParameters = function () { return []; };
260
+
261
+ var PepQueryBuilderSectionComponent = /** @class */ (function () {
262
+ function PepQueryBuilderSectionComponent(_typeConvertorService) {
263
+ this._typeConvertorService = _typeConvertorService;
264
+ this.hasFields = true;
265
+ this.createSection = new core.EventEmitter();
266
+ this.createItem = new core.EventEmitter();
267
+ this.remove = new core.EventEmitter();
268
+ this.operatorChange = new core.EventEmitter();
269
+ }
270
+ PepQueryBuilderSectionComponent.prototype.ngOnInit = function () {
271
+ this.initOperators();
272
+ };
273
+ Object.defineProperty(PepQueryBuilderSectionComponent.prototype, "f", {
274
+ get: function () {
275
+ return this.form.controls;
276
+ },
277
+ enumerable: false,
278
+ configurable: true
279
+ });
280
+ PepQueryBuilderSectionComponent.prototype.initOperators = function () {
281
+ var _this = this;
282
+ this.toggleButtons = this._typeConvertorService.operators.map(function (operator) {
283
+ return {
284
+ key: operator.key,
285
+ value: operator.value,
286
+ callback: function (event) { return _this.onOperatorChanged(event); }
287
+ };
288
+ });
289
+ };
290
+ PepQueryBuilderSectionComponent.prototype.onOperatorChanged = function (event) {
291
+ var _a;
292
+ if ((_a = event === null || event === void 0 ? void 0 : event.source) === null || _a === void 0 ? void 0 : _a.key) {
293
+ this.f.operator.setValue(event.source.key);
294
+ this.operatorChange.emit();
295
+ }
296
+ };
297
+ PepQueryBuilderSectionComponent.prototype.onAddRuleClicked = function () {
298
+ this.createItem.emit();
299
+ };
300
+ PepQueryBuilderSectionComponent.prototype.onAddRuleSetClicked = function () {
301
+ this.createSection.emit();
302
+ };
303
+ PepQueryBuilderSectionComponent.prototype.onDeleteSectionClicked = function () {
304
+ this.remove.emit();
305
+ };
306
+ return PepQueryBuilderSectionComponent;
307
+ }());
308
+ PepQueryBuilderSectionComponent.decorators = [
309
+ { type: core.Component, args: [{
310
+ selector: 'pep-query-builder-section',
311
+ template: "<div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <div class=\"query-section-container\" fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutAlign=\"space-between\">\n <pep-group-buttons [buttons]=\"toggleButtons\" [selectedButtonKey]=\"f.operator?.value || ''\" styleType=\"weak\"\n sizeType=\"sm\" [viewType]=\"'toggle'\" [buttonsDisabled]=\"!hasFields\">\n </pep-group-buttons>\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-button value=\"Add Filter\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\" classNames=\"\"\n [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleClicked()\"></pep-button>\n <ng-container *ngIf=\"depth.current < depth.max-1\">\n <pep-button value=\"Add Filter Group\" styleType=\"weak\" styleStateType=\"system\" sizeType=\"sm\"\n classNames=\"\" [disabled]=\"!hasFields\" iconName=\"number_plus\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onAddRuleSetClicked()\"></pep-button>\n </ng-container>\n </div>\n </div>\n <ng-container #sectionContainer></ng-container>\n </div>\n <pep-button *ngIf=\"depth.current > 0\" styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\"\n [disabled]=\"false\" iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onDeleteSectionClicked()\">\n </pep-button>\n</div>",
312
+ styles: [".query-section-container{border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);padding:.5rem;width:100%}", ".query-section-container{box-shadow:0 .25rem .5rem 0 rgba(26,26,26,.08);box-shadow:var(--pep-shadow-sm-offset,0 .25rem .5rem 0) hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.08);border:1px solid rgba(26,26,26,.24);border:1px solid hsla(var(--pep-color-system-primary-h,0),var(--pep-color-system-primary-s,0%),var(--pep-color-system-primary-l,10%),.24)}"]
313
+ },] }
314
+ ];
315
+ PepQueryBuilderSectionComponent.ctorParameters = function () { return [
316
+ { type: PepTypeConvertorService }
317
+ ]; };
318
+ PepQueryBuilderSectionComponent.propDecorators = {
319
+ form: [{ type: core.Input }],
320
+ depth: [{ type: core.Input }],
321
+ hasFields: [{ type: core.Input }],
322
+ createSection: [{ type: core.Output }],
323
+ createItem: [{ type: core.Output }],
324
+ remove: [{ type: core.Output }],
325
+ operatorChange: [{ type: core.Output }],
326
+ sectionContainer: [{ type: core.ViewChild, args: ['sectionContainer', { read: core.ViewContainerRef, static: true },] }]
327
+ };
328
+
329
+ var PepQueryBuilderItemComponent = /** @class */ (function () {
330
+ function PepQueryBuilderItemComponent(_fb, typeConvertorService) {
331
+ this._fb = _fb;
332
+ this.typeConvertorService = typeConvertorService;
333
+ this._fields = [];
334
+ this._options = [];
335
+ this._selectedField = null;
336
+ this.filterChange = new core.EventEmitter();
337
+ this.remove = new core.EventEmitter();
338
+ this.setupForm();
339
+ }
340
+ Object.defineProperty(PepQueryBuilderItemComponent.prototype, "fields", {
341
+ set: function (list) {
342
+ if ((list === null || list === void 0 ? void 0 : list.length) > 0) {
343
+ this._fields = list;
344
+ this._options = list.map(function (field) {
345
+ return {
346
+ key: field.smart.id,
347
+ value: field.smart.name
348
+ };
349
+ });
350
+ }
351
+ },
352
+ enumerable: false,
353
+ configurable: true
354
+ });
355
+ Object.defineProperty(PepQueryBuilderItemComponent.prototype, "selected", {
356
+ set: function (value) {
357
+ if (value) {
358
+ this._selectedField = value.smart;
359
+ this.queryForm.fieldType.setValue(value.query.fieldType);
360
+ }
361
+ },
362
+ enumerable: false,
363
+ configurable: true
364
+ });
365
+ Object.defineProperty(PepQueryBuilderItemComponent.prototype, "filter", {
366
+ set: function (value) {
367
+ if (value) {
368
+ this._filter = value;
369
+ }
370
+ },
371
+ enumerable: false,
372
+ configurable: true
373
+ });
374
+ Object.defineProperty(PepQueryBuilderItemComponent.prototype, "parentForm", {
375
+ set: function (value) {
376
+ if (value) {
377
+ this._parentForm = value;
378
+ this.addToParentForm();
379
+ }
380
+ },
381
+ enumerable: false,
382
+ configurable: true
383
+ });
384
+ PepQueryBuilderItemComponent.prototype.ngOnInit = function () {
385
+ //
386
+ };
387
+ Object.defineProperty(PepQueryBuilderItemComponent.prototype, "f", {
388
+ get: function () {
389
+ return this.form.controls;
390
+ },
391
+ enumerable: false,
392
+ configurable: true
393
+ });
394
+ Object.defineProperty(PepQueryBuilderItemComponent.prototype, "queryForm", {
395
+ get: function () {
396
+ return this.f.query.controls;
397
+ },
398
+ enumerable: false,
399
+ configurable: true
400
+ });
401
+ PepQueryBuilderItemComponent.prototype.setupForm = function () {
402
+ this.form = this._fb.group({
403
+ smart: this._fb.group({
404
+ fieldId: this._fb.control(null),
405
+ fieldType: this._fb.control(null),
406
+ operator: this._fb.control(null),
407
+ operatorUnit: this._fb.control(null),
408
+ values: this._fb.group({
409
+ first: this._fb.control(null),
410
+ second: this._fb.control(null)
411
+ })
412
+ }),
413
+ query: this._fb.group({
414
+ fieldType: this._fb.control(null)
415
+ })
416
+ });
417
+ };
418
+ PepQueryBuilderItemComponent.prototype.addToParentForm = function () {
419
+ this._parentForm.setControl(this.formKey, this.form);
420
+ };
421
+ PepQueryBuilderItemComponent.prototype.onFieldChanged = function (key) {
422
+ var _this = this;
423
+ var item = this._fields.find(function (field) { return field.smart.id === key; });
424
+ this.setupForm();
425
+ this.queryForm.fieldType.setValue(item.query.fieldType);
426
+ this.addToParentForm();
427
+ /**
428
+ * hack due to angular's change detection bug -
429
+ * ERROR Error: There is no FormControl instance attached to form control element with name: [formControlName]
430
+ */
431
+ this._selectedField = null;
432
+ setTimeout(function () {
433
+ _this._selectedField = item ? item.smart : null;
434
+ }, 0);
435
+ this._filter = null;
436
+ };
437
+ PepQueryBuilderItemComponent.prototype.onFilterChanged = function () {
438
+ if (this.form.valid) {
439
+ this.filterChange.emit();
440
+ }
441
+ };
442
+ PepQueryBuilderItemComponent.prototype.onDeleteItemClicked = function () {
443
+ this.remove.emit();
444
+ };
445
+ return PepQueryBuilderItemComponent;
446
+ }());
447
+ PepQueryBuilderItemComponent.decorators = [
448
+ { type: core.Component, args: [{
449
+ selector: 'pep-query-builder-item',
450
+ template: "<div fxLayout=\"column\" fxLayoutGap=\".5rem\">\n <div fxLayout=\"row\" fxLayoutGap=\".5rem\">\n <pep-select fxFlex=\"25%\" [value]=\"_selectedField?.id\" xAlignment=\"left\" [options]=\"_options\"\n [renderTitle]=\"false\" (valueChange)=\"onFieldChanged($event)\"></pep-select>\n <ng-container *ngIf=\"_selectedField?.componentType\">\n <ng-container [ngSwitch]=\"_selectedField.componentType\">\n <ng-container *ngSwitchCase=\"'text'\">\n <pep-text-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [field]=\"_selectedField\"\n [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [field]=\"_selectedField\"\n [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [options]=\"typeConvertorService.booleans\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-boolean-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'date'\">\n <pep-date-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [field]=\"_selectedField\"\n [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [field]=\"_selectedField\"\n [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\" [field]=\"_selectedField\"\n [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\"\n [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <pep-button styleType=\"weak\" styleStateType=\"system_bin\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n </div>\n</div>",
451
+ styles: ["::ng-deep .pep-field-no-spacing{min-height:0!important;margin-bottom:0!important}"]
452
+ },] }
453
+ ];
454
+ PepQueryBuilderItemComponent.ctorParameters = function () { return [
455
+ { type: forms.FormBuilder },
456
+ { type: PepTypeConvertorService }
457
+ ]; };
458
+ PepQueryBuilderItemComponent.propDecorators = {
459
+ formKey: [{ type: core.Input }],
460
+ fields: [{ type: core.Input }],
461
+ selected: [{ type: core.Input }],
462
+ filter: [{ type: core.Input }],
463
+ parentForm: [{ type: core.Input }],
464
+ filterChange: [{ type: core.Output }],
465
+ remove: [{ type: core.Output }]
466
+ };
467
+
468
+ var PepQueryBuilderTypeMap = /** @class */ (function () {
469
+ function PepQueryBuilderTypeMap() {
470
+ this.loadTypes();
471
+ }
472
+ PepQueryBuilderTypeMap.prototype.loadTypes = function () {
473
+ this.map = new Map();
474
+ this.map.set('Bool', 'boolean');
475
+ this.map.set('JsonBool', 'boolean');
476
+ this.map.set('Integer', 'int');
477
+ this.map.set('Double', 'int');
478
+ this.map.set('String', 'text');
479
+ this.map.set('Guid', 'text');
480
+ this.map.set('Date', 'date');
481
+ this.map.set('DateTime', 'date-time');
482
+ this.map.set('MultipleStringValues', 'multi-select');
483
+ };
484
+ /**
485
+ * Converts legacy field type to smart builder type
486
+ * @param type legacy type
487
+ * @returns smart builder field type
488
+ */
489
+ PepQueryBuilderTypeMap.prototype.getSmartBuilderType = function (key) {
490
+ var item = this.map.get(key);
491
+ return item ? item : null;
492
+ };
493
+ return PepQueryBuilderTypeMap;
494
+ }());
495
+
496
+ var Days = {
497
+ legacy: 'Days',
498
+ smartFilter: smartFilters.PepSmartFilterOperatorUnits.Days
499
+ };
500
+ var Weeks = {
501
+ legacy: 'Weeks',
502
+ smartFilter: smartFilters.PepSmartFilterOperatorUnits.Weeks
503
+ };
504
+ var Months = {
505
+ legacy: 'Months',
506
+ smartFilter: smartFilters.PepSmartFilterOperatorUnits.Months
507
+ };
508
+ var Years = {
509
+ legacy: 'Years',
510
+ smartFilter: smartFilters.PepSmartFilterOperatorUnits.Years
511
+ };
512
+ var PepQueryBuilderOperationUnit = [
513
+ Days,
514
+ Weeks,
515
+ Months,
516
+ Years,
517
+ ];
518
+ /**
519
+ * gets a smart filter operation unit item
520
+ * @param operationUnit legacy operation unit
521
+ * @returns smart filter operation unit item
522
+ */
523
+ function getSmartBuilderOperationUnit(operationUnit) {
524
+ var smartFilterOperationUnit = PepQueryBuilderOperationUnit.find(function (unit) { return unit.legacy === operationUnit; });
525
+ return smartFilterOperationUnit ? smartFilterOperationUnit.smartFilter : null;
526
+ }
527
+ /**
528
+ * gets a legacy operation unit value
529
+ * @param operationUnit smart filter operation unit item
530
+ * @returns legacy operation unit value
531
+ */
532
+ function getLegacyOperationUnit(operationUnit) {
533
+ var legacyOperationUnit = PepQueryBuilderOperationUnit.find(function (unit) { return unit.smartFilter === operationUnit; });
534
+ return legacyOperationUnit ? legacyOperationUnit.legacy : null;
535
+ }
536
+
537
+ var PepOutputQueryService = /** @class */ (function () {
538
+ function PepOutputQueryService() {
539
+ //
540
+ }
541
+ /**
542
+ * generates a legacy query structure
543
+ * @param filters UI smart filters structure
544
+ * @returns legacy query
545
+ */
546
+ PepOutputQueryService.prototype.generateQuery = function (filters) {
547
+ this.initParams();
548
+ return this.sectionWalk(filters);
549
+ };
550
+ /**
551
+ * init params
552
+ */
553
+ PepOutputQueryService.prototype.initParams = function () {
554
+ this._complexIdCounter = 1;
555
+ this._expressionIdCounter = 1;
556
+ };
557
+ /**
558
+ * a recursive function dynamically builds legacy query structure
559
+ * @param current UI object represents either a section or filter component
560
+ * @returns section query data
561
+ */
562
+ PepOutputQueryService.prototype.sectionWalk = function (current) {
563
+ var _this = this;
564
+ var section = null;
565
+ Object.keys(current).forEach(function (key) {
566
+ if (key.includes('item')) {
567
+ section = _this.addToSection(section, {
568
+ ExpressionId: (_this._expressionIdCounter++).toString(),
569
+ ApiName: current[key].smart.fieldId,
570
+ FieldType: current[key].query.fieldType,
571
+ Operation: getLegacyOperator(current[key].smart.operator, current[key].smart.fieldType),
572
+ Values: _this.getItemValues(current[key].smart)
573
+ }, current.operator);
574
+ }
575
+ else if (key.includes('section')) {
576
+ var childSection = _this.sectionWalk(current[key]);
577
+ if (childSection) {
578
+ section = _this.addToSection(section, childSection, current.operator);
579
+ }
580
+ }
581
+ });
582
+ return section;
583
+ };
584
+ /**
585
+ * adds a legacy filter object to the current query structure
586
+ * @param section section query data
587
+ * @param item filter item
588
+ * @param operator query operator
589
+ * @returns
590
+ */
591
+ PepOutputQueryService.prototype.addToSection = function (section, item, operator) {
592
+ return section ? this.createSection(section, item, operator) : item;
593
+ };
594
+ /**
595
+ * creates a legacy complex object
596
+ * @param left LeftNode object
597
+ * @param right RightNode object
598
+ * @param operator query operator
599
+ * @returns legacy complex object
600
+ */
601
+ PepOutputQueryService.prototype.createSection = function (left, right, operator) {
602
+ return {
603
+ ComplexId: (this._complexIdCounter++).toString(),
604
+ LeftNode: left,
605
+ RightNode: right,
606
+ Operation: operator
607
+ };
608
+ };
609
+ /**
610
+ * gets legacy filter values object
611
+ * @param current UI filter object's values
612
+ * @returns an array represents legacy values
613
+ */
614
+ PepOutputQueryService.prototype.getItemValues = function (current) {
615
+ var _a;
616
+ var values = [];
617
+ if ((_a = current === null || current === void 0 ? void 0 : current.values) === null || _a === void 0 ? void 0 : _a.first) {
618
+ if (current.operator === smartFilters.PepSmartFilterOperators.In) { //multi select
619
+ values = current.values.first;
620
+ }
621
+ else if (current.operator === smartFilters.PepSmartFilterOperators.InTheLast ||
622
+ current.operator === smartFilters.PepSmartFilterOperators.NotInTheLast ||
623
+ current.operator === smartFilters.PepSmartFilterOperators.DueIn ||
624
+ current.operator === smartFilters.PepSmartFilterOperators.NotDueIn) { //operation unit
625
+ values.push(current.values.first);
626
+ if (current.operatorUnit) {
627
+ values.push(getLegacyOperationUnit(current.operatorUnit));
628
+ }
629
+ }
630
+ else {
631
+ values.push(current.values.first);
632
+ if (current.values.second) {
633
+ values.push(current.values.second);
634
+ }
635
+ }
636
+ }
637
+ return values;
638
+ };
639
+ return PepOutputQueryService;
640
+ }());
641
+ PepOutputQueryService.decorators = [
642
+ { type: core.Injectable }
643
+ ];
644
+ PepOutputQueryService.ctorParameters = function () { return []; };
645
+
646
+ var PepOperatorTypes;
647
+ (function (PepOperatorTypes) {
648
+ PepOperatorTypes["And"] = "AND";
649
+ PepOperatorTypes["Or"] = "OR";
650
+ })(PepOperatorTypes || (PepOperatorTypes = {}));
651
+
652
+ var MAX_STRUCTURE_DEPTH = 3;
653
+ var PepQueryBuilderService = /** @class */ (function () {
654
+ function PepQueryBuilderService(_fb, _resolver, _outputQueryService) {
655
+ this._fb = _fb;
656
+ this._resolver = _resolver;
657
+ this._outputQueryService = _outputQueryService;
658
+ this._outputQuery$ = new rxjs.BehaviorSubject(null);
659
+ this._maxStructureDepth = MAX_STRUCTURE_DEPTH;
660
+ this.outputQuery$ = this._outputQuery$.asObservable();
661
+ }
662
+ Object.defineProperty(PepQueryBuilderService.prototype, "maxDepth", {
663
+ get: function () {
664
+ return this._maxStructureDepth;
665
+ },
666
+ set: function (value) {
667
+ this._maxStructureDepth = value;
668
+ },
669
+ enumerable: false,
670
+ configurable: true
671
+ });
672
+ Object.defineProperty(PepQueryBuilderService.prototype, "fields", {
673
+ set: function (list) {
674
+ this._smartFilterFields = this.convertToSmartFilterFields(list);
675
+ },
676
+ enumerable: false,
677
+ configurable: true
678
+ });
679
+ Object.defineProperty(PepQueryBuilderService.prototype, "hasFields", {
680
+ get: function () {
681
+ var _a;
682
+ return ((_a = this._smartFilterFields) === null || _a === void 0 ? void 0 : _a.length) > 0;
683
+ },
684
+ enumerable: false,
685
+ configurable: true
686
+ });
687
+ Object.defineProperty(PepQueryBuilderService.prototype, "form", {
688
+ get: function () {
689
+ return this._form;
690
+ },
691
+ set: function (value) {
692
+ this._form = value;
693
+ },
694
+ enumerable: false,
695
+ configurable: true
696
+ });
697
+ /**
698
+ * builds a dynamic UI query structure
699
+ * might has a different structure than the query's due to parent-child elements merge
700
+ * @param query legacy query
701
+ * @param containerRef reference to root element
702
+ */
703
+ PepQueryBuilderService.prototype.buildQueryStructure = function (query, containerRef) {
704
+ //update root operator
705
+ if (this.hasProperty(query, 'ComplexId') &&
706
+ (query === null || query === void 0 ? void 0 : query.Operation) &&
707
+ query.Operation !== this._form.get('operator').value) {
708
+ this._form.get('operator').setValue(query.Operation);
709
+ }
710
+ this.flatten(this._form.get('operator').value, query, containerRef, this._form, 0);
711
+ };
712
+ /**
713
+ * checks if the object contains property
714
+ * @param obj object
715
+ * @param prop property name
716
+ * @returns true if contains, false otherwise
717
+ */
718
+ PepQueryBuilderService.prototype.hasProperty = function (obj, prop) {
719
+ return Object.prototype.hasOwnProperty.call(obj, prop);
720
+ };
721
+ /**
722
+ * a recursive function dynamically builds UI filters structure
723
+ * @param parentOperator parent legacy complex operator
724
+ * @param current child legacy object (either another complex or expression type)
725
+ * @param containerRef parent element
726
+ * @param parentForm parent form
727
+ */
728
+ PepQueryBuilderService.prototype.flatten = function (parentOperator, current, containerRef, parentForm, depth) {
729
+ if (this.hasProperty(current, 'ComplexId')) {
730
+ var section = current;
731
+ if (parentOperator === current.Operation) {
732
+ this.flatten(current.Operation, section.LeftNode, containerRef, parentForm, depth);
733
+ this.flatten(current.Operation, section.RightNode, containerRef, parentForm, depth);
734
+ }
735
+ else {
736
+ var result = this.createSection(section.Operation, containerRef, parentForm, depth);
737
+ this.flatten(section.Operation, section.LeftNode, result.containerRef, result.parentForm, depth + 1);
738
+ this.flatten(section.Operation, section.RightNode, result.containerRef, result.parentForm, depth + 1);
739
+ }
740
+ }
741
+ else if (this.hasProperty(current, 'ExpressionId')) {
742
+ this.createItem(current, containerRef, parentForm);
743
+ }
744
+ };
745
+ /**
746
+ * creates a container object of two or more child filter items
747
+ * @param operator AND/OR operator
748
+ * @param containerRef parent element
749
+ * @param parentForm parent form
750
+ * @param depth
751
+ * @returns an object containing the current element and current form
752
+ */
753
+ PepQueryBuilderService.prototype.createSection = function (operator, containerRef, parentForm, depth) {
754
+ var _this = this;
755
+ var factory = this._resolver.resolveComponentFactory(PepQueryBuilderSectionComponent);
756
+ var componentRef = containerRef.createComponent(factory);
757
+ var sectionGroup = this._fb.group({
758
+ operator: this._fb.control(operator)
759
+ });
760
+ var counter = 1;
761
+ Object.keys(parentForm.controls).forEach(function (item) {
762
+ if (item.includes('section')) {
763
+ counter++;
764
+ }
765
+ });
766
+ var formKey = "section" + counter;
767
+ parentForm.addControl(formKey, sectionGroup);
768
+ componentRef.instance.form = sectionGroup;
769
+ componentRef.instance.depth = {
770
+ current: depth,
771
+ max: this._maxStructureDepth
772
+ };
773
+ componentRef.instance.createSection.subscribe(function () {
774
+ var section = _this.createSection(PepOperatorTypes.And, componentRef.instance.sectionContainer, sectionGroup, depth + 1);
775
+ _this.createItem(null, section.containerRef, section.parentForm);
776
+ });
777
+ componentRef.instance.createItem.subscribe(function () {
778
+ _this.createItem(null, componentRef.instance.sectionContainer, sectionGroup);
779
+ });
780
+ componentRef.instance.remove.subscribe(function () {
781
+ parentForm.removeControl(formKey);
782
+ componentRef.destroy();
783
+ _this.createOutputQuery();
784
+ });
785
+ componentRef.instance.operatorChange.subscribe(function () {
786
+ _this.createOutputQuery();
787
+ });
788
+ return {
789
+ containerRef: componentRef.instance.sectionContainer,
790
+ parentForm: sectionGroup
791
+ };
792
+ };
793
+ /**
794
+ * creates a component represents filter item (leaf element - has no childs)
795
+ * @param current filter legacy element
796
+ * @param containerRef parent element
797
+ * @param parentForm parent form
798
+ */
799
+ PepQueryBuilderService.prototype.createItem = function (current, containerRef, parentForm) {
800
+ var _this = this;
801
+ var factory = this._resolver.resolveComponentFactory(PepQueryBuilderItemComponent);
802
+ var componentRef = containerRef.createComponent(factory);
803
+ var counter = 1;
804
+ Object.keys(parentForm.controls).forEach(function (item) {
805
+ if (item.includes('item')) {
806
+ counter++;
807
+ }
808
+ });
809
+ var formKey = "item" + counter;
810
+ componentRef.instance.formKey = formKey;
811
+ componentRef.instance.fields = this._smartFilterFields;
812
+ var selectedField = this.getSelectedField(current);
813
+ if (selectedField) {
814
+ componentRef.instance.selected = selectedField;
815
+ if (current) {
816
+ componentRef.instance.filter = this.getFilter(current, selectedField.smart);
817
+ }
818
+ }
819
+ componentRef.instance.parentForm = parentForm;
820
+ componentRef.instance.filterChange.subscribe(function () {
821
+ _this.createOutputQuery();
822
+ });
823
+ componentRef.instance.remove.subscribe(function () {
824
+ parentForm.removeControl(formKey);
825
+ componentRef.destroy();
826
+ _this.createOutputQuery();
827
+ });
828
+ };
829
+ /**
830
+ * creates a smart filter object
831
+ * @param current filter legacy element
832
+ * @param field filter's selected field
833
+ * @returns smart filter object
834
+ */
835
+ PepQueryBuilderService.prototype.getFilter = function (current, field) {
836
+ var operator = getSmartBuilderOperator(current.Operation, field.type);
837
+ if (operator) {
838
+ var filterValues = this.getFilterValues(current, operator, field);
839
+ return smartFilters.createSmartFilter(current.ApiName, operator, filterValues.first, filterValues.second, filterValues.operationUnit);
840
+ }
841
+ else {
842
+ return null;
843
+ }
844
+ };
845
+ /**
846
+ * get smart filter field
847
+ * @param current filter legacy element
848
+ * @returns smart filter field, if not found returns the first field
849
+ */
850
+ PepQueryBuilderService.prototype.getSelectedField = function (current) {
851
+ var _a, _b;
852
+ if (current) {
853
+ var item = this._smartFilterFields.find(function (field) { return field.smart.id === current.ApiName; });
854
+ return item ? item : ((_a = this._smartFilterFields) === null || _a === void 0 ? void 0 : _a.length) > 0 ? this._smartFilterFields[0] : null;
855
+ }
856
+ else {
857
+ return ((_b = this._smartFilterFields) === null || _b === void 0 ? void 0 : _b.length) > 0 ? this._smartFilterFields[0] : null;
858
+ }
859
+ };
860
+ /**
861
+ * gets smart filter's values data
862
+ * @param current filter legacy element
863
+ * @param operator smart filter operator
864
+ * @param field filter's selected field
865
+ * @returns object contains the filter values data
866
+ */
867
+ PepQueryBuilderService.prototype.getFilterValues = function (current, operator, field) {
868
+ var _a, _b, _c, _d, _e;
869
+ var data = {
870
+ first: null,
871
+ second: null,
872
+ operationUnit: null
873
+ };
874
+ if (operator === smartFilters.PepSmartFilterOperators.In) { //multi select
875
+ //filter keys don't exist on field options
876
+ data.first = ((_a = current === null || current === void 0 ? void 0 : current.Values) === null || _a === void 0 ? void 0 : _a.length) > 0 ? current.Values.filter(function (item) {
877
+ return field.options.find(function (option) { return option.key === item; });
878
+ }) : null;
879
+ }
880
+ else if (operator === smartFilters.PepSmartFilterOperators.InTheLast ||
881
+ operator === smartFilters.PepSmartFilterOperators.NotInTheLast ||
882
+ operator === smartFilters.PepSmartFilterOperators.DueIn ||
883
+ operator === smartFilters.PepSmartFilterOperators.NotDueIn) { //operation unit
884
+ data.first = ((_b = current === null || current === void 0 ? void 0 : current.Values) === null || _b === void 0 ? void 0 : _b.length) > 0 ? current.Values[0] : null;
885
+ if (((_c = current === null || current === void 0 ? void 0 : current.Values) === null || _c === void 0 ? void 0 : _c.length) === 2) {
886
+ data.operationUnit = getSmartBuilderOperationUnit(current.Values[1]);
887
+ }
888
+ }
889
+ else {
890
+ data.first = ((_d = current === null || current === void 0 ? void 0 : current.Values) === null || _d === void 0 ? void 0 : _d.length) > 0 ? current.Values[0] : null;
891
+ data.second = ((_e = current === null || current === void 0 ? void 0 : current.Values) === null || _e === void 0 ? void 0 : _e.length) === 2 ? current.Values[1] : null;
892
+ }
893
+ return data;
894
+ };
895
+ /**
896
+ * converts legacy fields to smart filter fields
897
+ * @param fields legacy fields array
898
+ * @returns smart filter fields array
899
+ */
900
+ PepQueryBuilderService.prototype.convertToSmartFilterFields = function (fields) {
901
+ if ((fields === null || fields === void 0 ? void 0 : fields.length) > 0) {
902
+ var typeMapper_1 = new PepQueryBuilderTypeMap();
903
+ return fields.map(function (field) {
904
+ var _a;
905
+ return {
906
+ smart: smartFilters.createSmartFilterField({
907
+ id: field.FieldID,
908
+ name: field.Title,
909
+ options: (_a = field.OptionalValues) === null || _a === void 0 ? void 0 : _a.map(function (option) {
910
+ return {
911
+ key: option.Key,
912
+ value: option.Value
913
+ };
914
+ })
915
+ }, typeMapper_1.getSmartBuilderType(field.FieldType)),
916
+ query: {
917
+ fieldType: field.FieldType
918
+ }
919
+ };
920
+ });
921
+ }
922
+ else {
923
+ return [];
924
+ }
925
+ };
926
+ /**
927
+ * creates a legacy output query
928
+ */
929
+ PepQueryBuilderService.prototype.createOutputQuery = function () {
930
+ if (this._form.valid) {
931
+ var query = this._outputQueryService.generateQuery(this._form.value);
932
+ this._outputQuery$.next(query);
933
+ }
934
+ };
935
+ return PepQueryBuilderService;
936
+ }());
937
+ PepQueryBuilderService.decorators = [
938
+ { type: core.Injectable }
939
+ ];
940
+ PepQueryBuilderService.ctorParameters = function () { return [
941
+ { type: forms.FormBuilder },
942
+ { type: core.ComponentFactoryResolver },
943
+ { type: PepOutputQueryService }
944
+ ]; };
945
+
946
+ var PepQueryBuilderComponent = /** @class */ (function () {
947
+ function PepQueryBuilderComponent(_fb, queryBuilderService) {
948
+ var _this = this;
949
+ this._fb = _fb;
950
+ this.queryBuilderService = queryBuilderService;
951
+ this._query = null;
952
+ this.queryChange = new core.EventEmitter();
953
+ this.formValidationChange = new core.EventEmitter();
954
+ this._lastFormValidStatus = true;
955
+ this.hasFields = false;
956
+ this.setupForm();
957
+ this.initDepth();
958
+ this._formSubscription$ = this.queryBuilderService.form.valueChanges.subscribe(function (val) {
959
+ if (_this.queryBuilderService.form.valid !== _this._lastFormValidStatus) {
960
+ _this._lastFormValidStatus = _this.queryBuilderService.form.valid;
961
+ _this.formValidationChange.emit(_this._lastFormValidStatus);
962
+ }
963
+ });
964
+ this._outputQuerySubscription$ = this.queryBuilderService.outputQuery$.subscribe(function (outputQuery) {
965
+ _this.queryChange.emit(outputQuery);
966
+ });
967
+ }
968
+ Object.defineProperty(PepQueryBuilderComponent.prototype, "query", {
969
+ set: function (object) {
970
+ this._query = object;
971
+ this.loadQuery();
972
+ },
973
+ enumerable: false,
974
+ configurable: true
975
+ });
976
+ Object.defineProperty(PepQueryBuilderComponent.prototype, "fields", {
977
+ set: function (list) {
978
+ this.queryBuilderService.fields = list;
979
+ this.hasFields = this.queryBuilderService.hasFields;
980
+ this.loadQuery();
981
+ },
982
+ enumerable: false,
983
+ configurable: true
984
+ });
985
+ Object.defineProperty(PepQueryBuilderComponent.prototype, "maxDepth", {
986
+ set: function (value) {
987
+ this.queryBuilderService.maxDepth = value;
988
+ },
989
+ enumerable: false,
990
+ configurable: true
991
+ });
992
+ PepQueryBuilderComponent.prototype.ngOnInit = function () {
993
+ //
994
+ };
995
+ PepQueryBuilderComponent.prototype.setupForm = function () {
996
+ this.queryBuilderService.form = this._fb.group({
997
+ operator: this._fb.control(PepOperatorTypes.And)
998
+ });
999
+ };
1000
+ PepQueryBuilderComponent.prototype.initDepth = function () {
1001
+ this.depth = {
1002
+ current: 0,
1003
+ max: this.queryBuilderService.maxDepth
1004
+ };
1005
+ };
1006
+ /**
1007
+ * builds UI query structure as soon as both the fields and query loads
1008
+ */
1009
+ PepQueryBuilderComponent.prototype.loadQuery = function () {
1010
+ var _a;
1011
+ if (this._query &&
1012
+ this.queryBuilderService.hasFields &&
1013
+ ((_a = this.root) === null || _a === void 0 ? void 0 : _a.sectionContainer)) {
1014
+ this.queryBuilderService.buildQueryStructure(this._query, this.root.sectionContainer);
1015
+ }
1016
+ };
1017
+ PepQueryBuilderComponent.prototype.onCreateSection = function () {
1018
+ var section = this.queryBuilderService.createSection(PepOperatorTypes.And, this.root.sectionContainer, this.queryBuilderService.form, 1);
1019
+ this.queryBuilderService.createItem(null, section.containerRef, section.parentForm);
1020
+ };
1021
+ PepQueryBuilderComponent.prototype.onCreateItem = function () {
1022
+ this.queryBuilderService.createItem(null, this.root.sectionContainer, this.queryBuilderService.form);
1023
+ };
1024
+ PepQueryBuilderComponent.prototype.onOperatorChange = function () {
1025
+ this.queryBuilderService.createOutputQuery();
1026
+ };
1027
+ PepQueryBuilderComponent.prototype.ngOnDestroy = function () {
1028
+ if (this._formSubscription$) {
1029
+ this._formSubscription$.unsubscribe();
1030
+ }
1031
+ if (this._outputQuerySubscription$) {
1032
+ this._outputQuerySubscription$.unsubscribe();
1033
+ }
1034
+ };
1035
+ return PepQueryBuilderComponent;
1036
+ }());
1037
+ PepQueryBuilderComponent.decorators = [
1038
+ { type: core.Component, args: [{
1039
+ selector: 'pep-query-builder',
1040
+ template: "<pep-query-builder-section #rootContainer [form]=\"queryBuilderService.form\" [depth]=\"depth\" [hasFields]=\"hasFields\"\n (createSection)=\"onCreateSection()\" (createItem)=\"onCreateItem()\" (operatorChange)=\"onOperatorChange()\">\n</pep-query-builder-section>",
1041
+ providers: [PepQueryBuilderService, PepTypeConvertorService, PepOutputQueryService],
1042
+ styles: [""]
1043
+ },] }
1044
+ ];
1045
+ PepQueryBuilderComponent.ctorParameters = function () { return [
1046
+ { type: forms.FormBuilder },
1047
+ { type: PepQueryBuilderService }
1048
+ ]; };
1049
+ PepQueryBuilderComponent.propDecorators = {
1050
+ query: [{ type: core.Input }],
1051
+ fields: [{ type: core.Input }],
1052
+ maxDepth: [{ type: core.Input }],
1053
+ queryChange: [{ type: core.Output }],
1054
+ formValidationChange: [{ type: core.Output }],
1055
+ root: [{ type: core.ViewChild, args: ['rootContainer', { static: true },] }]
1056
+ };
1057
+
1058
+ var PepQueryBuilderModule = /** @class */ (function () {
1059
+ function PepQueryBuilderModule() {
1060
+ }
1061
+ return PepQueryBuilderModule;
1062
+ }());
1063
+ PepQueryBuilderModule.decorators = [
1064
+ { type: core.NgModule, args: [{
1065
+ imports: [
1066
+ common.CommonModule,
1067
+ forms.ReactiveFormsModule,
1068
+ flexLayout.FlexLayoutModule,
1069
+ select.PepSelectModule,
1070
+ button.PepButtonModule,
1071
+ groupButtons.PepGroupButtonsModule,
1072
+ smartFilters.PepSmartFiltersModule
1073
+ ],
1074
+ exports: [
1075
+ PepQueryBuilderComponent
1076
+ ],
1077
+ declarations: [
1078
+ PepQueryBuilderComponent,
1079
+ PepQueryBuilderSectionComponent,
1080
+ PepQueryBuilderItemComponent
1081
+ ]
1082
+ },] }
1083
+ ];
1084
+
1085
+ /*
1086
+ * Public API Surface of ngx-lib/query-builder
1087
+ */
1088
+
1089
+ /**
1090
+ * Generated bundle index. Do not edit.
1091
+ */
1092
+
1093
+ exports.PepQueryBuilderComponent = PepQueryBuilderComponent;
1094
+ exports.PepQueryBuilderModule = PepQueryBuilderModule;
1095
+ exports.PepQueryBuilderService = PepQueryBuilderService;
1096
+ exports.ɵa = PepOutputQueryService;
1097
+ exports.ɵb = PepTypeConvertorService;
1098
+ exports.ɵc = PepQueryBuilderSectionComponent;
1099
+ exports.ɵd = PepQueryBuilderItemComponent;
1100
+
1101
+ Object.defineProperty(exports, '__esModule', { value: true });
1102
+
1103
+ })));
1104
+ //# sourceMappingURL=pepperi-addons-ngx-lib-query-builder.umd.js.map