@pepperi-addons/ngx-lib 0.4.2-beta.32 → 0.4.2-beta.320

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 (410) hide show
  1. package/README.md +35 -0
  2. package/address/address.component.d.ts +9 -2
  3. package/attachment/attachment.component.d.ts +3 -1
  4. package/carousel/carousel.component.d.ts +3 -2
  5. package/checkbox/checkbox.component.d.ts +8 -1
  6. package/chips/chips.component.d.ts +4 -7
  7. package/chips/chips.service.d.ts +0 -3
  8. package/core/common/directives/auto-width.directive.d.ts +6 -2
  9. package/core/common/directives/base-destroyer.directive.d.ts +10 -0
  10. package/core/common/directives/public-api.d.ts +1 -0
  11. package/core/common/pipes/common-pipes.d.ts +5 -2
  12. package/core/common/services/addon.service.d.ts +6 -4
  13. package/core/common/services/file.service.d.ts +7 -2
  14. package/core/common/services/session.service.d.ts +2 -0
  15. package/core/common/services/utilities.service.d.ts +4 -4
  16. package/core/customization/customization.model.d.ts +4 -1
  17. package/core/customization/customization.service.d.ts +4 -0
  18. package/date/date.component.d.ts +4 -2
  19. package/draggable-items/draggable-item/draggable-item.component.d.ts +16 -2
  20. package/draggable-items/draggable-items.component.d.ts +3 -6
  21. package/draggable-items/draggable-items.module.d.ts +4 -3
  22. package/elements/README.md +256 -0
  23. package/esm2020/address/address.component.mjs +93 -5
  24. package/esm2020/assets/i18n/ar.ngx-lib.json +180 -0
  25. package/esm2020/assets/i18n/de.ngx-lib.json +180 -0
  26. package/esm2020/assets/i18n/en.ngx-lib.json +189 -0
  27. package/esm2020/assets/i18n/es.ngx-lib.json +180 -0
  28. package/esm2020/assets/i18n/fr.ngx-lib.json +180 -0
  29. package/esm2020/assets/i18n/he.ngx-lib.json +180 -0
  30. package/esm2020/assets/i18n/hu.ngx-lib.json +79 -0
  31. package/esm2020/assets/i18n/it.ngx-lib.json +180 -0
  32. package/esm2020/assets/i18n/ja.ngx-lib.json +180 -0
  33. package/esm2020/assets/i18n/nl.ngx-lib.json +79 -0
  34. package/esm2020/assets/i18n/pl.ngx-lib.json +180 -0
  35. package/esm2020/assets/i18n/pt.ngx-lib.json +180 -0
  36. package/esm2020/assets/i18n/ru.ngx-lib.json +79 -0
  37. package/esm2020/assets/i18n/sr.ngx-lib.json +180 -0
  38. package/esm2020/assets/i18n/zh.ngx-lib.json +180 -0
  39. package/esm2020/attachment/attachment.component.mjs +16 -6
  40. package/esm2020/carousel/carousel.component.mjs +14 -4
  41. package/esm2020/checkbox/checkbox.component.mjs +37 -3
  42. package/esm2020/chips/chips.component.mjs +11 -16
  43. package/esm2020/chips/chips.service.mjs +2 -11
  44. package/esm2020/color/color-picker.component.mjs +3 -3
  45. package/esm2020/color/color.component.mjs +3 -3
  46. package/esm2020/core/common/directives/auto-width.directive.mjs +29 -9
  47. package/esm2020/core/common/directives/base-destroyer.directive.mjs +22 -0
  48. package/esm2020/core/common/directives/public-api.mjs +2 -1
  49. package/esm2020/core/common/pipes/common-pipes.mjs +18 -8
  50. package/esm2020/core/common/services/addon.service.mjs +31 -7
  51. package/esm2020/core/common/services/data-convertor.service.mjs +3 -3
  52. package/esm2020/core/common/services/file.service.mjs +57 -20
  53. package/esm2020/core/common/services/session.service.mjs +5 -1
  54. package/esm2020/core/common/services/utilities.service.mjs +7 -7
  55. package/esm2020/core/customization/customization.model.mjs +46 -10
  56. package/esm2020/core/customization/customization.service.mjs +29 -1
  57. package/esm2020/core/http/services/http.service.mjs +17 -8
  58. package/esm2020/core/http/services/loader.service.mjs +3 -3
  59. package/esm2020/date/date.component.mjs +35 -13
  60. package/esm2020/dialog/dialog.component.mjs +3 -3
  61. package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +44 -4
  62. package/esm2020/draggable-items/draggable-items.component.mjs +7 -15
  63. package/esm2020/draggable-items/draggable-items.module.mjs +5 -1
  64. package/esm2020/field-title/field-title.component.mjs +6 -3
  65. package/esm2020/files-uploader/files-uploader.component.mjs +23 -32
  66. package/esm2020/form/field-generator.component.mjs +3 -3
  67. package/esm2020/form/form.component.mjs +7 -4
  68. package/esm2020/form/internal-button.component.mjs +2 -2
  69. package/esm2020/form/internal-carusel.component.mjs +10 -6
  70. package/esm2020/form/internal-field-generator.component.mjs +3 -3
  71. package/esm2020/form/internal-form.component.mjs +5 -3
  72. package/esm2020/form/internal-list.component.mjs +2 -2
  73. package/esm2020/form/internal-menu.component.mjs +4 -6
  74. package/esm2020/form/internal-page.component.mjs +3 -4
  75. package/esm2020/group-buttons/group-buttons.component.mjs +2 -2
  76. package/esm2020/icon/icon.component.mjs +36 -6
  77. package/esm2020/icon/icon.service.mjs +5 -1
  78. package/esm2020/image/image.component.mjs +15 -3
  79. package/esm2020/image/image.service.mjs +2 -4
  80. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +99 -25
  81. package/esm2020/json-editor/json-editor.component.mjs +288 -0
  82. package/esm2020/json-editor/json-editor.module.mjs +83 -0
  83. package/esm2020/json-editor/json-tree-node.component.mjs +32 -0
  84. package/esm2020/json-editor/pepperi-addons-ngx-lib-json-editor.mjs +5 -0
  85. package/esm2020/json-editor/public-api.mjs +6 -0
  86. package/esm2020/lib/i18n/embedded-i18n.mjs +33 -0
  87. package/esm2020/link/link.component.mjs +25 -4
  88. package/esm2020/list/list-actions.component.mjs +1 -1
  89. package/esm2020/list/list-chooser.component.mjs +1 -1
  90. package/esm2020/list/list-pager.component.mjs +56 -9
  91. package/esm2020/list/list-sorting.component.mjs +1 -1
  92. package/esm2020/list/list-total.component.mjs +6 -3
  93. package/esm2020/list/list-views.component.mjs +1 -1
  94. package/esm2020/list/list.component.mjs +280 -50
  95. package/esm2020/list/list.model.mjs +1 -1
  96. package/esm2020/list/list.module.mjs +5 -1
  97. package/esm2020/list/virtual-scroller.mjs +16 -2
  98. package/esm2020/menu/menu-item.component.mjs +3 -3
  99. package/esm2020/menu/menu.component.mjs +6 -3
  100. package/esm2020/menu/menu.model.mjs +2 -1
  101. package/esm2020/page-layout/page-layout.component.mjs +28 -7
  102. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +1 -1
  103. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +25 -9
  104. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +58 -26
  105. package/esm2020/profile-data-views-list/profile-data-views-list.model.mjs +1 -1
  106. package/esm2020/public-api.mjs +2 -1
  107. package/esm2020/quantity-selector/quantity-selector.component.mjs +67 -33
  108. package/esm2020/query-builder/common/model/legacy.mjs +1 -1
  109. package/esm2020/query-builder/common/model/operator.mjs +76 -64
  110. package/esm2020/query-builder/common/services/output-query.service.mjs +5 -3
  111. package/esm2020/query-builder/common/services/query-structure.service.mjs +34 -2
  112. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +14 -12
  113. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +3 -3
  114. package/esm2020/query-builder/query-builder.module.mjs +14 -3
  115. package/esm2020/query-builder/query-builder.service.mjs +4 -3
  116. package/esm2020/remote-loader/addon-block-loader.component.mjs +26 -16
  117. package/esm2020/remote-loader/addon-block-loader.service.mjs +5 -2
  118. package/esm2020/remote-loader/remote-loader-element.component.mjs +148 -27
  119. package/esm2020/remote-loader/remote-loader.component.mjs +1 -4
  120. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  121. package/esm2020/remote-loader/remote-loader.service.mjs +49 -26
  122. package/esm2020/reset-configuration-field/pepperi-addons-ngx-lib-reset-configuration-field.mjs +5 -0
  123. package/esm2020/reset-configuration-field/public-api.mjs +3 -0
  124. package/esm2020/reset-configuration-field/reset-configuration-field.component.mjs +55 -0
  125. package/esm2020/reset-configuration-field/reset-configuration-field.module.mjs +36 -0
  126. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +19 -3
  127. package/esm2020/search/search.component.mjs +43 -16
  128. package/esm2020/select/select.component.mjs +124 -53
  129. package/esm2020/select-panel/select-panel.component.mjs +4 -6
  130. package/esm2020/side-bar/side-bar.component.mjs +18 -4
  131. package/esm2020/signature/signature-dialog.component.mjs +9 -4
  132. package/esm2020/signature/signature.component.mjs +14 -7
  133. package/esm2020/size-detector/size-detector.component.mjs +16 -6
  134. package/esm2020/skeleton-loader/public-api.mjs +2 -2
  135. package/esm2020/skeleton-loader/skeleton-loader.component.mjs +33 -9
  136. package/esm2020/slider/slider.component.mjs +2 -2
  137. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +1 -1
  138. package/esm2020/smart-filters/common/model/base-filter-component.mjs +5 -11
  139. package/esm2020/smart-filters/common/model/operator.mjs +15 -6
  140. package/esm2020/smart-filters/common/model/type.mjs +1 -1
  141. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +1 -1
  142. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +3 -3
  143. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
  144. package/esm2020/smart-filters/smart-filters.component.mjs +2 -2
  145. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +27 -7
  146. package/esm2020/snack-bar/snack-bar.component.mjs +21 -6
  147. package/esm2020/textarea/textarea.component.mjs +12 -3
  148. package/esm2020/textbox/textbox-validation.directive.mjs +2 -4
  149. package/esm2020/textbox/textbox.component.mjs +85 -10
  150. package/esm2020/textbox-icon/textbox-icon.component.mjs +3 -3
  151. package/esm2020/top-bar/top-bar.component.mjs +26 -15
  152. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +92 -5
  153. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  154. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +15 -5
  155. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  156. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +13 -3
  157. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  158. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +37 -2
  159. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  160. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +11 -25
  161. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  162. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +4 -4
  163. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  164. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +35 -12
  165. package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  166. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +2 -2
  167. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  168. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +54 -19
  169. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  170. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  171. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  172. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +22 -31
  173. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  174. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +31 -25
  175. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  176. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +2 -2
  177. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  178. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +40 -5
  179. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  180. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +15 -5
  181. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  182. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +101 -24
  183. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  184. package/fesm2015/pepperi-addons-ngx-lib-json-editor.mjs +407 -0
  185. package/fesm2015/pepperi-addons-ngx-lib-json-editor.mjs.map +1 -0
  186. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +24 -3
  187. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  188. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +367 -66
  189. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  190. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +8 -4
  191. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  192. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +27 -6
  193. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  194. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +81 -33
  195. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  196. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +66 -31
  197. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  198. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +152 -84
  199. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  200. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +237 -85
  201. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  202. package/fesm2015/pepperi-addons-ngx-lib-reset-configuration-field.mjs +95 -0
  203. package/fesm2015/pepperi-addons-ngx-lib-reset-configuration-field.mjs.map +1 -0
  204. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +18 -2
  205. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  206. package/fesm2015/pepperi-addons-ngx-lib-search.mjs +45 -15
  207. package/fesm2015/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  208. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +3 -5
  209. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  210. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +123 -51
  211. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  212. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +17 -3
  213. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  214. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +23 -9
  215. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  216. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +15 -5
  217. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  218. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +33 -9
  219. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  220. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +2 -2
  221. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  222. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +53 -30
  223. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  224. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +20 -5
  225. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  226. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +11 -2
  227. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  228. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +2 -2
  229. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  230. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +87 -12
  231. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  232. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +26 -15
  233. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  234. package/fesm2015/pepperi-addons-ngx-lib.mjs +3441 -574
  235. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  236. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +92 -5
  237. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  238. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +15 -5
  239. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  240. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs +13 -3
  241. package/fesm2020/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  242. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +36 -2
  243. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  244. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +11 -25
  245. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  246. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +4 -4
  247. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  248. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +34 -12
  249. package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  250. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +2 -2
  251. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  252. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +54 -19
  253. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  254. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  255. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  256. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +22 -31
  257. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  258. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +31 -25
  259. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  260. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +2 -2
  261. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  262. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +39 -5
  263. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  264. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +15 -5
  265. package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  266. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +98 -24
  267. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  268. package/fesm2020/pepperi-addons-ngx-lib-json-editor.mjs +403 -0
  269. package/fesm2020/pepperi-addons-ngx-lib-json-editor.mjs.map +1 -0
  270. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +24 -3
  271. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  272. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +362 -65
  273. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  274. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +8 -4
  275. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  276. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +27 -6
  277. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  278. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +81 -33
  279. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  280. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +65 -31
  281. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  282. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +141 -82
  283. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  284. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +224 -70
  285. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  286. package/fesm2020/pepperi-addons-ngx-lib-reset-configuration-field.mjs +95 -0
  287. package/fesm2020/pepperi-addons-ngx-lib-reset-configuration-field.mjs.map +1 -0
  288. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +18 -2
  289. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  290. package/fesm2020/pepperi-addons-ngx-lib-search.mjs +42 -15
  291. package/fesm2020/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  292. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +3 -5
  293. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  294. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +122 -51
  295. package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  296. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +17 -3
  297. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  298. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +21 -9
  299. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  300. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +15 -5
  301. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  302. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +33 -9
  303. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  304. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +2 -2
  305. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  306. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +53 -30
  307. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  308. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs +20 -5
  309. package/fesm2020/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  310. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +11 -2
  311. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  312. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +2 -2
  313. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  314. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +85 -12
  315. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  316. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +25 -14
  317. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  318. package/fesm2020/pepperi-addons-ngx-lib.mjs +3436 -571
  319. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  320. package/field-title/field-title.component.d.ts +2 -1
  321. package/files-uploader/files-uploader.component.d.ts +4 -2
  322. package/form/internal-carusel.component.d.ts +1 -0
  323. package/form/internal-menu.component.d.ts +1 -2
  324. package/icon/icon.component.d.ts +4 -0
  325. package/image/image.component.d.ts +3 -1
  326. package/images-filmstrip/images-filmstrip.component.d.ts +24 -8
  327. package/json-editor/index.d.ts +5 -0
  328. package/json-editor/json-editor.component.d.ts +75 -0
  329. package/json-editor/json-editor.component.theme.scss +5 -0
  330. package/json-editor/json-editor.module.d.ts +24 -0
  331. package/json-editor/json-tree-node.component.d.ts +18 -0
  332. package/json-editor/public-api.d.ts +2 -0
  333. package/lib/i18n/embedded-i18n.d.ts +1 -0
  334. package/link/link.component.d.ts +7 -2
  335. package/list/list-pager.component.d.ts +16 -6
  336. package/list/list-total.component.d.ts +2 -1
  337. package/list/list.component.d.ts +26 -5
  338. package/list/list.model.d.ts +2 -1
  339. package/list/list.module.d.ts +4 -3
  340. package/menu/menu.component.d.ts +2 -1
  341. package/menu/menu.model.d.ts +1 -0
  342. package/package.json +18 -2
  343. package/page-layout/page-layout.component.d.ts +8 -2
  344. package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +3 -3
  345. package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +5 -4
  346. package/profile-data-views-list/profile-data-views-list.component.d.ts +13 -10
  347. package/profile-data-views-list/profile-data-views-list.model.d.ts +8 -0
  348. package/public-api.d.ts +1 -0
  349. package/quantity-selector/quantity-selector.component.d.ts +9 -9
  350. package/query-builder/common/model/legacy.d.ts +3 -0
  351. package/query-builder/common/model/operator.d.ts +11 -1
  352. package/query-builder/common/services/query-structure.service.d.ts +1 -0
  353. package/query-builder/query-builder-item/query-builder-item.component.d.ts +3 -1
  354. package/query-builder/query-builder.module.d.ts +7 -3
  355. package/remote-loader/addon-block-loader.component.d.ts +4 -2
  356. package/remote-loader/remote-loader-element.component.d.ts +8 -1
  357. package/remote-loader/remote-loader.model.d.ts +1 -0
  358. package/remote-loader/remote-loader.service.d.ts +3 -1
  359. package/reset-configuration-field/index.d.ts +5 -0
  360. package/reset-configuration-field/public-api.d.ts +2 -0
  361. package/reset-configuration-field/reset-configuration-field.component.d.ts +23 -0
  362. package/reset-configuration-field/reset-configuration-field.module.d.ts +12 -0
  363. package/rich-html-textarea/rich-html-textarea.component.d.ts +4 -1
  364. package/rich-html-textarea/rich-html-textarea.component.theme.scss +4 -2
  365. package/search/search.component.d.ts +9 -3
  366. package/select/select.component.d.ts +18 -2
  367. package/select-panel/select-panel.component.d.ts +1 -2
  368. package/side-bar/side-bar.component.d.ts +4 -1
  369. package/signature/signature-dialog.component.d.ts +2 -1
  370. package/signature/signature.component.d.ts +2 -1
  371. package/size-detector/size-detector.component.d.ts +6 -3
  372. package/skeleton-loader/skeleton-loader.component.d.ts +15 -7
  373. package/slider/slider.component.theme.scss +4 -0
  374. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +3 -0
  375. package/smart-filters/common/model/base-filter-component.d.ts +2 -4
  376. package/smart-filters/common/model/operator.d.ts +3 -0
  377. package/smart-filters/common/model/type.d.ts +1 -1
  378. package/smart-filters/date-filter/date-filter.component.d.ts +3 -0
  379. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +3 -0
  380. package/smart-filters/number-filter/number-filter.component.d.ts +3 -0
  381. package/smart-filters/text-filter/text-filter.component.d.ts +4 -0
  382. package/snack-bar/snack-bar.component.d.ts +9 -4
  383. package/src/assets/i18n/ar.ngx-lib.json +180 -0
  384. package/src/assets/i18n/de.ngx-lib.json +106 -4
  385. package/src/assets/i18n/en.ngx-lib.json +17 -3
  386. package/src/assets/i18n/es.ngx-lib.json +113 -11
  387. package/src/assets/i18n/fr.ngx-lib.json +105 -4
  388. package/src/assets/i18n/he.ngx-lib.json +105 -4
  389. package/src/assets/i18n/it.ngx-lib.json +114 -13
  390. package/src/assets/i18n/ja.ngx-lib.json +105 -4
  391. package/src/assets/i18n/pl.ngx-lib.json +105 -4
  392. package/src/assets/i18n/pt.ngx-lib.json +105 -4
  393. package/src/assets/i18n/sr.ngx-lib.json +180 -0
  394. package/src/assets/i18n/zh.ngx-lib.json +105 -2
  395. package/src/core/style/abstracts/mixins.scss +135 -26
  396. package/src/core/style/abstracts/variables.scss +10 -1
  397. package/src/core/style/base/Spacing.stories.mdx +22 -22
  398. package/src/core/style/base/base.scss +24 -15
  399. package/src/core/style/base/typography.scss +2 -1
  400. package/src/core/style/components/button.scss +11 -0
  401. package/src/core/style/components/checkbox.scss +13 -63
  402. package/src/core/style/components/file.scss +4 -4
  403. package/src/core/style/components/general.scss +27 -9
  404. package/src/core/style/components/textarea.scss +13 -0
  405. package/textarea/textarea.component.d.ts +2 -1
  406. package/textbox/textbox.component.d.ts +10 -3
  407. package/theming.scss +5 -1
  408. package/top-bar/top-bar.component.d.ts +2 -0
  409. package/src/assets/images/sail-away.jpg +0 -0
  410. package/src/core/style/abstracts/AbstractsIntro.stories.mdx +0 -7
@@ -1,20 +1,22 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, EventEmitter, ViewContainerRef, Component, Input, Output, ViewChild, NgModule } from '@angular/core';
3
- import * as i3 from '@angular/common';
3
+ import * as i4 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i1 from '@angular/forms';
6
6
  import { FormGroup, FormControl, ReactiveFormsModule, FormBuilder } from '@angular/forms';
7
7
  import { FlexLayoutModule } from '@angular/flex-layout';
8
- import * as i7 from '@pepperi-addons/ngx-lib/smart-filters';
8
+ import * as i8 from '@pepperi-addons/ngx-lib/smart-filters';
9
9
  import { PepSmartFilterOperators, PepSmartFilterVariableOperators, PepSmartFilterAdditionalOperators, PepSmartFilterOperatorUnits, createSmartFilter, createSmartFilterField, PepSmartFiltersModule } from '@pepperi-addons/ngx-lib/smart-filters';
10
- import * as i5$1 from '@pepperi-addons/ngx-lib/select';
10
+ import * as i6 from '@pepperi-addons/ngx-lib/select';
11
11
  import { PepSelectModule } from '@pepperi-addons/ngx-lib/select';
12
- import * as i4 from '@pepperi-addons/ngx-lib/button';
12
+ import * as i4$1 from '@pepperi-addons/ngx-lib/button';
13
13
  import { PepButtonModule } from '@pepperi-addons/ngx-lib/button';
14
14
  import * as i5 from '@pepperi-addons/ngx-lib/group-buttons';
15
15
  import { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';
16
16
  import { BehaviorSubject } from 'rxjs';
17
- import * as i3$1 from '@angular/flex-layout/flex';
17
+ import * as i3 from '@angular/flex-layout/flex';
18
+ import * as i1$1 from '@pepperi-addons/ngx-lib/icon';
19
+ import { pepIconSystemBin, PepIconModule } from '@pepperi-addons/ngx-lib/icon';
18
20
 
19
21
  class PepTypeConvertorService {
20
22
  constructor() {
@@ -98,10 +100,10 @@ class PepQueryBuilderSectionComponent {
98
100
  }
99
101
  }
100
102
  PepQueryBuilderSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderSectionComponent, deps: [{ token: PepTypeConvertorService }], target: i0.ɵɵFactoryTarget.Component });
101
- PepQueryBuilderSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepQueryBuilderSectionComponent, selector: "pep-query-builder-section", inputs: { form: "form", depth: "depth", hasFields: "hasFields" }, outputs: { createSection: "createSection", createItem: "createItem", remove: "remove", operatorChange: "operatorChange" }, viewQueries: [{ propertyName: "sectionContainer", first: true, predicate: ["sectionContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, 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>", styles: [".query-section-container{border-radius:var(--pep-border-radius-md, .25rem);padding:.5rem;width:100%}\n", ".query-section-container{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 hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3$1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i4.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i5.PepGroupButtonsComponent, selector: "pep-group-buttons", inputs: ["viewType", "styleType", "sizeType", "buttons", "buttonsDisabled", "supportUnselect", "selectedButtonKey", "stretch"], outputs: ["buttonClick"] }] });
103
+ PepQueryBuilderSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepQueryBuilderSectionComponent, selector: "pep-query-builder-section", inputs: { form: "form", depth: "depth", hasFields: "hasFields" }, outputs: { createSection: "createSection", createItem: "createItem", remove: "remove", operatorChange: "operatorChange" }, viewQueries: [{ propertyName: "sectionContainer", first: true, predicate: ["sectionContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, 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\" sizeType=\"md\" classNames=\"\"\n [disabled]=\"false\" iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onDeleteSectionClicked()\">\n </pep-button>\n</div>", styles: [".query-section-container{border-radius:var(--pep-border-radius-md, .25rem);padding:.5rem;width:100%}\n", ".query-section-container{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 hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "component", type: i4$1.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i5.PepGroupButtonsComponent, selector: "pep-group-buttons", inputs: ["viewType", "styleType", "sizeType", "buttons", "buttonsDisabled", "supportUnselect", "selectedButtonKey", "stretch"], outputs: ["buttonClick"] }] });
102
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderSectionComponent, decorators: [{
103
105
  type: Component,
104
- args: [{ selector: 'pep-query-builder-section', 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>", styles: [".query-section-container{border-radius:var(--pep-border-radius-md, .25rem);padding:.5rem;width:100%}\n", ".query-section-container{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 hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}\n"] }]
106
+ args: [{ selector: 'pep-query-builder-section', 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\" sizeType=\"md\" classNames=\"\"\n [disabled]=\"false\" iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\"\n (buttonClick)=\"onDeleteSectionClicked()\">\n </pep-button>\n</div>", styles: [".query-section-container{border-radius:var(--pep-border-radius-md, .25rem);padding:.5rem;width:100%}\n", ".query-section-container{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 hsla(var(--pep-color-system-primary-h, 0),var(--pep-color-system-primary-s, 0%),var(--pep-color-system-primary-l, 10%),.24)}\n"] }]
105
107
  }], ctorParameters: function () { return [{ type: PepTypeConvertorService }]; }, propDecorators: { form: [{
106
108
  type: Input
107
109
  }], depth: [{
@@ -122,9 +124,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
122
124
  }] } });
123
125
 
124
126
  class PepQueryBuilderItemComponent {
125
- constructor(_fb, typeConvertorService) {
127
+ constructor(_fb, typeConvertorService, queryStructureService) {
126
128
  this._fb = _fb;
127
129
  this.typeConvertorService = typeConvertorService;
130
+ this.queryStructureService = queryStructureService;
128
131
  this._fields = [];
129
132
  this._options = [];
130
133
  this._selectedField = null;
@@ -162,7 +165,7 @@ class PepQueryBuilderItemComponent {
162
165
  }
163
166
  }
164
167
  ngOnInit() {
165
- //
168
+ //this.variableFields = this.queryStructureService.variableFields;
166
169
  }
167
170
  get f() {
168
171
  return this.form.controls;
@@ -214,12 +217,12 @@ class PepQueryBuilderItemComponent {
214
217
  this.remove.emit();
215
218
  }
216
219
  }
217
- PepQueryBuilderItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderItemComponent, deps: [{ token: i1.FormBuilder }, { token: PepTypeConvertorService }], target: i0.ɵɵFactoryTarget.Component });
218
- PepQueryBuilderItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepQueryBuilderItemComponent, selector: "pep-query-builder-item", inputs: { formKey: "formKey", fields: "fields", selected: "selected", filter: "filter", parentForm: "parentForm", variableFields: "variableFields" }, outputs: { filterChange: "filterChange", remove: "remove" }, ngImport: i0, 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\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [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\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.['multi-select']\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (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>", styles: ["::ng-deep .pep-field-no-spacing{min-height:0!important;margin-bottom:0!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3$1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3$1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i5$1.PepSelectComponent, selector: "pep-select", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "options", "visible", "emptyOption", "form", "layoutType", "parentFieldKey", "isActive", "showTitle", "renderTitle", "typeaheadDebounceInterval"], outputs: ["valueChange"] }, { kind: "component", type: i4.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i7.PepTextFilterComponent, selector: "pep-text-filter" }, { kind: "component", type: i7.PepBooleanFilterComponent, selector: "pep-boolean-filter", inputs: ["options"] }, { kind: "component", type: i7.PepDateFilterComponent, selector: "pep-date-filter" }, { kind: "component", type: i7.PepMultiSelectFilterComponent, selector: "pep-multi-select-filter" }, { kind: "component", type: i7.PepNumberFilterComponent, selector: "pep-number-filter" }] });
220
+ PepQueryBuilderItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderItemComponent, deps: [{ token: i1.FormBuilder }, { token: PepTypeConvertorService }, { token: PepQueryStructureService }], target: i0.ɵɵFactoryTarget.Component });
221
+ PepQueryBuilderItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepQueryBuilderItemComponent, selector: "pep-query-builder-item", inputs: { formKey: "formKey", fields: "fields", selected: "selected", filter: "filter", parentForm: "parentForm", variableFields: "variableFields" }, outputs: { filterChange: "filterChange", remove: "remove" }, ngImport: i0, 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\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [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\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <!-- <ng-container *ngSwitchCase=\"'text'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.text\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container> -->\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.text\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <pep-button styleType=\"weak\" styleStateType=\"system\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n </div>\n</div>", styles: ["::ng-deep .pep-field-no-spacing{min-height:0!important;margin-bottom:0!important}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i6.PepSelectComponent, selector: "pep-select", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "placeholder", "placeholderWhenDisabled", "autoSortOptions", "options", "visible", "emptyOption", "form", "layoutType", "parentFieldKey", "isActive", "showTitle", "renderTitle", "typeaheadDebounceInterval", "addValueToOptionsIfNotExist"], outputs: ["valueChange", "validationChange"] }, { kind: "component", type: i4$1.PepButtonComponent, selector: "pep-button", inputs: ["key", "value", "styleType", "styleStateType", "sizeType", "classNames", "disabled", "iconName", "iconPosition", "visible"], outputs: ["buttonClick"] }, { kind: "component", type: i8.PepTextFilterComponent, selector: "pep-text-filter" }, { kind: "component", type: i8.PepBooleanFilterComponent, selector: "pep-boolean-filter", inputs: ["options"] }, { kind: "component", type: i8.PepDateFilterComponent, selector: "pep-date-filter" }, { kind: "component", type: i8.PepMultiSelectFilterComponent, selector: "pep-multi-select-filter" }, { kind: "component", type: i8.PepNumberFilterComponent, selector: "pep-number-filter" }] });
219
222
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderItemComponent, decorators: [{
220
223
  type: Component,
221
- args: [{ selector: 'pep-query-builder-item', 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\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [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\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.['multi-select']\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (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>", styles: ["::ng-deep .pep-field-no-spacing{min-height:0!important;margin-bottom:0!important}\n"] }]
222
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: PepTypeConvertorService }]; }, propDecorators: { formKey: [{
224
+ args: [{ selector: 'pep-query-builder-item', 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\" [variableField]=\"variableFields?.text\"\n [field]=\"_selectedField\" [filter]=\"_filter\" [parentForm]=\"f.smart\" [emitOnChange]=\"true\"\n [inline]=\"true\" [renderTitle]=\"false\" (filterChange)=\"onFilterChanged()\">\n </pep-text-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'boolean'\">\n <pep-boolean-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.boolean\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [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\" [showAdditionalOperators]=\"true\"\n [variableField]=\"variableFields?.date\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-date-filter>\n </ng-container>\n <!-- <ng-container *ngSwitchCase=\"'text'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.text\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container> -->\n <ng-container *ngSwitchCase=\"'multi-select'\">\n <pep-multi-select-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.text\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-multi-select-filter>\n </ng-container>\n <ng-container *ngSwitchCase=\"'number'\">\n <pep-number-filter fxFlex=\"auto\" [showActionButtons]=\"false\"\n [variableField]=\"variableFields?.number\" [field]=\"_selectedField\" [filter]=\"_filter\"\n [parentForm]=\"f.smart\" [emitOnChange]=\"true\" [inline]=\"true\" [renderTitle]=\"false\"\n (filterChange)=\"onFilterChanged()\">\n </pep-number-filter>\n </ng-container>\n </ng-container>\n </ng-container>\n <pep-button styleType=\"weak\" styleStateType=\"system\" sizeType=\"md\" classNames=\"\" [disabled]=\"false\"\n iconName=\"system_bin\" iconPosition=\"end\" [visible]=\"true\" (buttonClick)=\"onDeleteItemClicked()\">\n </pep-button>\n </div>\n</div>", styles: ["::ng-deep .pep-field-no-spacing{min-height:0!important;margin-bottom:0!important}\n"] }]
225
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: PepTypeConvertorService }, { type: PepQueryStructureService }]; }, propDecorators: { formKey: [{
223
226
  type: Input
224
227
  }], fields: [{
225
228
  type: Input
@@ -272,41 +275,50 @@ var PepOperatorTypes;
272
275
 
273
276
  const Equals = {
274
277
  legacy: 'IsEqual',
278
+ valueType: 'Static',
275
279
  smartFilter: PepSmartFilterOperators.Equals,
276
- type: ['boolean', 'int', 'text']
280
+ type: ['boolean', 'int', 'text', 'real']
277
281
  };
278
282
  const EqualsVariable = {
279
- legacy: 'IsEqualVariable',
283
+ legacy: 'IsEqual',
284
+ valueType: 'Dynamic',
280
285
  smartFilter: PepSmartFilterVariableOperators.EqualsToVariable,
281
- type: ['boolean', 'int', 'text', 'multi-select']
286
+ type: ['boolean', 'int', 'text'],
287
+ fieldType: ['String', 'Bool', 'Integer']
282
288
  };
283
289
  const NotEqual = {
284
290
  legacy: 'IsNotEqual',
291
+ valueType: 'Static',
285
292
  smartFilter: PepSmartFilterOperators.NotEqual,
286
293
  type: null
287
294
  };
288
295
  const NotEqualsVariable = {
289
- legacy: 'IsNotEqualVariable',
296
+ legacy: 'IsNotEqual',
297
+ valueType: 'Dynamic',
290
298
  smartFilter: PepSmartFilterVariableOperators.NotEqualsToVariable,
291
- type: ['boolean', 'multi-select']
299
+ type: ['boolean']
292
300
  };
293
301
  const LessThan = {
294
302
  legacy: '<',
303
+ valueType: 'Static',
295
304
  smartFilter: PepSmartFilterOperators.LessThan,
296
305
  type: null
297
306
  };
298
- const LessThanVarible = {
299
- legacy: 'LessThanVarible',
307
+ const LessThanVariable = {
308
+ legacy: '<',
309
+ valueType: 'Dynamic',
300
310
  smartFilter: PepSmartFilterVariableOperators.LessThanVariable,
301
311
  type: null
302
312
  };
303
313
  const GreaterThan = {
304
314
  legacy: '>',
315
+ valueType: 'Static',
305
316
  smartFilter: PepSmartFilterOperators.GreaterThan,
306
317
  type: null
307
318
  };
308
- const GreaterThanVarible = {
309
- legacy: 'GreaterThanVarible',
319
+ const GreaterThanVariable = {
320
+ legacy: '>',
321
+ valueType: 'Dynamic',
310
322
  smartFilter: PepSmartFilterVariableOperators.GreaterThanVariable,
311
323
  type: null
312
324
  };
@@ -335,159 +347,142 @@ const LessThanOrEquals: IPepQueryBuilderOperator = {
335
347
  }; */
336
348
  const NumberRange = {
337
349
  legacy: 'Between',
350
+ valueType: 'Static',
338
351
  smartFilter: PepSmartFilterOperators.NumberRange,
339
352
  type: ['int']
340
353
  };
341
354
  const Contains = {
342
355
  legacy: 'Contains',
356
+ valueType: 'Static',
343
357
  smartFilter: PepSmartFilterOperators.Contains,
344
358
  type: null
345
359
  };
346
360
  const BeginsWith = {
347
- legacy: 'BeginsWith',
361
+ legacy: 'StartWith',
362
+ valueType: 'Static',
348
363
  smartFilter: PepSmartFilterOperators.BeginsWith,
349
364
  type: null
350
365
  };
351
366
  const EndsWith = {
352
- legacy: 'EndsWith',
367
+ legacy: 'EndWith',
368
+ valueType: 'Static',
353
369
  smartFilter: PepSmartFilterOperators.EndsWith,
354
370
  type: null
355
371
  };
356
- /*
357
- const BeginsWith: IPepQueryBuilderOperator = {
358
- legacy: {
359
- operator: 'BeginsWith',
360
- type: 'String'
361
- },
362
- smartFilter: {
363
- item: PepSmartFilterOperators.BeginsWith,
364
- type: 'text'
365
- }
366
- };
367
-
368
- const EndsWith: IPepQueryBuilderOperator = {
369
- legacy: {
370
- operator: 'EndsWith',
371
- type: 'String'
372
- },
373
- smartFilter: {
374
- item: PepSmartFilterOperators.EndsWith,
375
- type: 'text'
376
- }
377
- };
378
-
379
- const Before: IPepQueryBuilderOperator = {
380
- legacy: {
381
- operator: 'Before',
382
- type: 'Date'
383
- },
384
- smartFilter: {
385
- item: PepSmartFilterOperators.Before,
386
- type: 'date'
387
- }
388
- };
389
-
390
- const After: IPepQueryBuilderOperator = {
391
- legacy: {
392
- operator: 'After',
393
- type: 'Date'
394
- },
395
- smartFilter: {
396
- item: PepSmartFilterOperators.After,
397
- type: 'date'
398
- }
399
- }; */
400
372
  const InTheLast = {
401
373
  legacy: 'InTheLast',
374
+ valueType: 'Static',
402
375
  smartFilter: PepSmartFilterOperators.InTheLast,
403
376
  type: null
404
377
  };
405
378
  const InTheLastCalendar = {
406
379
  legacy: 'InTheLastCalendar',
380
+ valueType: 'Static',
407
381
  smartFilter: PepSmartFilterAdditionalOperators.InTheLastCalendar,
408
382
  type: null
409
383
  };
410
384
  /*
411
385
  const InTheLastVariable: IPepQueryBuilderOperator = {
412
- legacy: 'InTheLastVariable',
386
+ legacy: 'InTheLast',
387
+ valueType: 'Dynamic',
413
388
  smartFilter: PepSmartFilterVariableOperators.InTheLastVariable,
414
389
  type: null
415
390
  } */
416
391
  const NotInTheLast = {
417
392
  legacy: 'NotInTheLast',
393
+ valueType: 'Static',
418
394
  smartFilter: PepSmartFilterOperators.NotInTheLast,
419
395
  type: null
420
396
  };
421
397
  const NotInTheLastCalendar = {
422
398
  legacy: 'NotInTheLastCalendar',
399
+ valueType: 'Static',
423
400
  smartFilter: PepSmartFilterAdditionalOperators.NotInTheLastCalendar,
424
401
  type: null
425
402
  };
426
403
  const Today = {
427
404
  legacy: 'Today',
405
+ valueType: 'Static',
428
406
  smartFilter: PepSmartFilterOperators.Today,
429
407
  type: null
430
408
  };
431
409
  const ThisWeek = {
432
410
  legacy: 'ThisWeek',
411
+ valueType: 'Static',
433
412
  smartFilter: PepSmartFilterOperators.ThisWeek,
434
413
  type: null
435
414
  };
436
415
  const ThisMonth = {
437
416
  legacy: 'ThisMonth',
417
+ valueType: 'Static',
438
418
  smartFilter: PepSmartFilterOperators.ThisMonth,
439
419
  type: null
440
420
  };
441
421
  const DateRange = {
442
422
  legacy: 'Between',
423
+ valueType: 'Static',
443
424
  smartFilter: PepSmartFilterOperators.DateRange,
444
425
  type: ['date-time']
445
426
  };
446
427
  const dateRangeVariable = {
447
- legacy: 'BetweenVariable',
428
+ legacy: 'Between',
429
+ valueType: 'Dynamic',
448
430
  smartFilter: PepSmartFilterVariableOperators.DateRangeVariable,
449
431
  type: ['date-time']
450
432
  };
451
433
  const DueIn = {
452
434
  legacy: 'DueIn',
435
+ valueType: 'Static',
453
436
  smartFilter: PepSmartFilterOperators.DueIn,
454
437
  type: null
455
438
  };
456
439
  const NotDueIn = {
457
440
  legacy: 'NotDueIn',
441
+ valueType: 'Static',
458
442
  smartFilter: PepSmartFilterOperators.NotDueIn,
459
443
  type: null
460
444
  };
461
445
  const On = {
462
446
  legacy: 'On',
447
+ valueType: 'Static',
463
448
  smartFilter: PepSmartFilterOperators.On,
464
449
  type: null
465
450
  };
466
451
  const IsEmpty = {
467
452
  legacy: 'IsEmpty',
453
+ valueType: 'Static',
468
454
  smartFilter: PepSmartFilterOperators.IsEmpty,
469
455
  type: null
470
456
  };
471
457
  const IsNotEmpty = {
472
458
  legacy: 'IsNotEmpty',
459
+ valueType: 'Static',
473
460
  smartFilter: PepSmartFilterOperators.IsNotEmpty,
474
461
  type: null
475
462
  };
476
463
  const In = {
477
464
  legacy: 'IsEqual',
465
+ valueType: 'Static',
478
466
  smartFilter: PepSmartFilterOperators.In,
479
467
  type: ['multi-select']
480
468
  };
469
+ const InVariable = {
470
+ legacy: 'IsEqual',
471
+ valueType: 'Dynamic',
472
+ smartFilter: PepSmartFilterVariableOperators.InVariable,
473
+ type: ['multi-select', 'text'],
474
+ fieldType: ['MultipleStringValues']
475
+ };
481
476
  const PepQueryBuilderOperators = [
482
477
  Equals,
483
478
  EqualsVariable,
484
479
  NotEqual,
485
480
  NotEqualsVariable,
486
481
  LessThan,
487
- LessThanVarible,
482
+ LessThanVariable,
488
483
  // LessThanOrEquals,
489
484
  GreaterThan,
490
- GreaterThanVarible,
485
+ GreaterThanVariable,
491
486
  // GreaterThanOrEquals,
492
487
  NumberRange,
493
488
  Contains,
@@ -510,7 +505,8 @@ const PepQueryBuilderOperators = [
510
505
  On,
511
506
  IsEmpty,
512
507
  IsNotEmpty,
513
- In
508
+ In,
509
+ InVariable
514
510
  ];
515
511
  /**
516
512
  * gets a smart filter operator item
@@ -518,9 +514,18 @@ const PepQueryBuilderOperators = [
518
514
  * @param type smart filter's type
519
515
  * @returns smart filter operator item
520
516
  */
521
- function getSmartFilterOperator(operator, type) {
522
- const smartFilterOperator = PepQueryBuilderOperators.find(item => item.legacy === operator &&
523
- (item.type === null || item.type.includes(type)));
517
+ function getSmartFilterOperator(operator, type, valueType, fieldType = null) {
518
+ const smartFilterOperator = PepQueryBuilderOperators.find(item => {
519
+ var _a;
520
+ return item.legacy === operator &&
521
+ item.valueType === valueType &&
522
+ (item.type === null || item.type.includes(type)) &&
523
+ (fieldType == null || item.fieldType === undefined || ((_a = item.fieldType) === null || _a === void 0 ? void 0 : _a.includes(fieldType)));
524
+ });
525
+ /*
526
+ FieldType: (current[key].smart.operator.id === 'inv' &&
527
+ current[key].smart.fieldType === 'text') ? 'MultipleStringValues' : current[key].query.fieldType,
528
+ */
524
529
  return smartFilterOperator ? smartFilterOperator.smartFilter : null;
525
530
  }
526
531
  /**
@@ -530,10 +535,29 @@ function getSmartFilterOperator(operator, type) {
530
535
  * @returns legacy operator value
531
536
  */
532
537
  function getLegacyOperator(operator, type) {
533
- const legacyOperator = PepQueryBuilderOperators.find(item => item.smartFilter === operator &&
534
- (item.type === null || item.type.includes(type)));
538
+ const operatorId = typeof operator === 'object' && operator !== null ? operator.id : operator;
539
+ const legacyOperator = PepQueryBuilderOperators.find(item => {
540
+ var _a, _b;
541
+ return ((_b = (_a = item.smartFilter) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : item.smartFilter) === operatorId &&
542
+ (item.type === null || item.type.includes(type));
543
+ });
535
544
  return legacyOperator ? legacyOperator.legacy : null;
536
545
  }
546
+ /**
547
+ * gets a value type of the operator value
548
+ * @param operator smart filter operator item
549
+ * @param type smart filter's type
550
+ * @returns value type operator value
551
+ */
552
+ function getValueTypeOperator(operator, type) {
553
+ const operatorId = typeof operator === 'object' && operator !== null ? operator.id : operator;
554
+ const valueType = PepQueryBuilderOperators.find(item => {
555
+ var _a, _b;
556
+ return ((_b = (_a = item.smartFilter) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : item.smartFilter) === operatorId &&
557
+ (item.type === null || item.type.includes(type));
558
+ });
559
+ return valueType ? valueType.valueType : 'Static';
560
+ }
537
561
 
538
562
  const Days = {
539
563
  legacy: 'Days',
@@ -608,8 +632,10 @@ class PepOutputQueryService {
608
632
  section = this.addToSection(section, {
609
633
  ExpressionId: (this._expressionIdCounter++).toString(),
610
634
  ApiName: current[key].smart.fieldId,
611
- FieldType: current[key].query.fieldType,
635
+ FieldType: (current[key].smart.operator.id === 'inv' &&
636
+ current[key].smart.fieldType === 'text') ? 'MultipleStringValues' : current[key].query.fieldType,
612
637
  Operation: getLegacyOperator(current[key].smart.operator, current[key].smart.fieldType),
638
+ ValueType: getValueTypeOperator(current[key].smart.operator, current[key].smart.fieldType),
613
639
  Values: this.getItemValues(current[key].smart)
614
640
  }, current.operator);
615
641
  }
@@ -697,7 +723,7 @@ class PepQueryBuilderService {
697
723
  * @returns smart filter object
698
724
  */
699
725
  getFilter(current, field) {
700
- const operator = getSmartFilterOperator(current.Operation, field.type);
726
+ const operator = getSmartFilterOperator(current.Operation, field.type, current.ValueType || 'Static', current.FieldType || null);
701
727
  if (operator) {
702
728
  const filterValues = this.getFilterValues(current, operator, field);
703
729
  return createSmartFilter(current.ApiName, operator, filterValues.first, filterValues.second, filterValues.operationUnit);
@@ -725,7 +751,8 @@ class PepQueryBuilderService {
725
751
  key: option.Key,
726
752
  value: option.Value
727
753
  };
728
- })
754
+ }),
755
+ isOpen: field.isOpen
729
756
  }, typeMapper.getSmartFilterType(field.FieldType)),
730
757
  query: {
731
758
  fieldType: field.FieldType
@@ -793,6 +820,7 @@ class PepQueryStructureService {
793
820
  this._outputQuery$ = new BehaviorSubject(null);
794
821
  this._variableFields = {};
795
822
  this._maxStructureDepth = MAX_STRUCTURE_DEPTH;
823
+ this._cmpRefMap = new Map();
796
824
  this.outputQuery$ = this._outputQuery$.asObservable();
797
825
  }
798
826
  set maxDepth(value) {
@@ -814,13 +842,22 @@ class PepQueryStructureService {
814
842
  list.forEach(field => {
815
843
  const fieldType = this.convertSmartFilterComponentType(typeMapper.getSmartFilterType(field.FieldType));
816
844
  if (this.hasProperty(this._variableFields, fieldType)) {
817
- this._variableFields[fieldType].push(field.FieldID);
845
+ if (!this._variableFields[fieldType].includes(field.FieldID)) {
846
+ this._variableFields[fieldType].push(field.FieldID);
847
+ }
818
848
  }
819
849
  else {
820
850
  this._variableFields[fieldType] = [field.FieldID];
821
851
  }
822
852
  });
823
853
  }
854
+ this._cmpRefMap.forEach((value, key) => {
855
+ if (value.instance.variableFields) {
856
+ Object.keys(value.instance.variableFields).forEach(function (key, index) {
857
+ value.instance.variableFields[key] = JSON.parse(JSON.stringify(value.instance.variableFields[key]));
858
+ });
859
+ }
860
+ });
824
861
  }
825
862
  set form(value) {
826
863
  this._form = value;
@@ -835,6 +872,18 @@ class PepQueryStructureService {
835
872
  * @param containerRef reference to root element
836
873
  */
837
874
  buildQueryStructure(query, containerRef) {
875
+ // Remove all the components from the query builder.
876
+ this._cmpRefMap.forEach((value, key) => {
877
+ // console.log(key, value);
878
+ // value.instance.remove();
879
+ if (value.instance.parentForm) {
880
+ value.instance.parentForm.removeControl(key);
881
+ }
882
+ value.destroy();
883
+ this._cmpRefMap.delete(key);
884
+ });
885
+ // Clear containerRef
886
+ containerRef.clear();
838
887
  //update root operator
839
888
  if (this.hasProperty(query, 'ComplexId') &&
840
889
  (query === null || query === void 0 ? void 0 : query.Operation) &&
@@ -917,10 +966,15 @@ class PepQueryStructureService {
917
966
  parentForm.removeControl(formKey);
918
967
  componentRef.destroy();
919
968
  this.createOutputQuery();
969
+ if (this._cmpRefMap.has(formKey)) {
970
+ this._cmpRefMap.delete(formKey);
971
+ }
920
972
  });
921
973
  componentRef.instance.operatorChange.subscribe(() => {
922
974
  this.createOutputQuery();
923
975
  });
976
+ // Add this to remove all the components when fields changes.
977
+ this._cmpRefMap.set(formKey, componentRef);
924
978
  return {
925
979
  containerRef: componentRef.instance.sectionContainer,
926
980
  parentForm: sectionGroup
@@ -960,7 +1014,12 @@ class PepQueryStructureService {
960
1014
  parentForm.removeControl(formKey);
961
1015
  componentRef.destroy();
962
1016
  this.createOutputQuery();
1017
+ if (this._cmpRefMap.has(formKey)) {
1018
+ this._cmpRefMap.delete(formKey);
1019
+ }
963
1020
  });
1021
+ // Add this to remove all the components when fields changes.
1022
+ this._cmpRefMap.set(formKey, componentRef);
964
1023
  }
965
1024
  /**
966
1025
  * get smart filter field
@@ -1109,8 +1168,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
1109
1168
  }] } });
1110
1169
 
1111
1170
  class PepQueryBuilderModule {
1171
+ constructor(pepIconRegistry) {
1172
+ this.pepIconRegistry = pepIconRegistry;
1173
+ this.pepIconRegistry.registerIcons([
1174
+ pepIconSystemBin,
1175
+ ]);
1176
+ }
1112
1177
  }
1113
- PepQueryBuilderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1178
+ PepQueryBuilderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderModule, deps: [{ token: i1$1.PepIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
1114
1179
  PepQueryBuilderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderModule, declarations: [PepQueryBuilderComponent,
1115
1180
  PepQueryBuilderSectionComponent,
1116
1181
  PepQueryBuilderItemComponent], imports: [CommonModule,
@@ -1118,6 +1183,7 @@ PepQueryBuilderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", v
1118
1183
  FlexLayoutModule,
1119
1184
  PepSelectModule,
1120
1185
  PepButtonModule,
1186
+ PepIconModule,
1121
1187
  PepGroupButtonsModule,
1122
1188
  PepSmartFiltersModule], exports: [PepQueryBuilderComponent] });
1123
1189
  PepQueryBuilderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderModule, providers: [
@@ -1127,6 +1193,7 @@ PepQueryBuilderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
1127
1193
  FlexLayoutModule,
1128
1194
  PepSelectModule,
1129
1195
  PepButtonModule,
1196
+ PepIconModule,
1130
1197
  PepGroupButtonsModule,
1131
1198
  PepSmartFiltersModule] });
1132
1199
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderModule, decorators: [{
@@ -1138,6 +1205,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
1138
1205
  FlexLayoutModule,
1139
1206
  PepSelectModule,
1140
1207
  PepButtonModule,
1208
+ PepIconModule,
1141
1209
  PepGroupButtonsModule,
1142
1210
  PepSmartFiltersModule
1143
1211
  ],
@@ -1153,7 +1221,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
1153
1221
  FormBuilder
1154
1222
  ]
1155
1223
  }]
1156
- }] });
1224
+ }], ctorParameters: function () { return [{ type: i1$1.PepIconRegistry }]; } });
1157
1225
 
1158
1226
  /*
1159
1227
  * Public API Surface of ngx-lib/query-builder