@pepperi-addons/ngx-lib 0.5.0-ng15.3 → 0.5.0-ng16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (749) hide show
  1. package/address/address.component.d.ts +1 -1
  2. package/attachment/attachment.component.d.ts +1 -1
  3. package/bread-crumbs/bread-crumbs.component.d.ts +1 -1
  4. package/button/button.component.d.ts +1 -1
  5. package/carousel/carousel-item.directive.d.ts +1 -1
  6. package/carousel/carousel.component.d.ts +1 -1
  7. package/checkbox/checkbox.component.d.ts +1 -1
  8. package/chips/chips.component.d.ts +1 -1
  9. package/color/color.component.d.ts +1 -1
  10. package/core/clipboard/clipboard.directive.d.ts +1 -1
  11. package/core/common/directives/auto-width.directive.d.ts +1 -1
  12. package/core/common/directives/button-loader.directive.d.ts +1 -1
  13. package/core/common/directives/data-qa.directive.d.ts +1 -1
  14. package/core/common/directives/div-loader.directive.d.ts +1 -1
  15. package/core/common/directives/prevent-multi-click.directive.d.ts +1 -1
  16. package/core/common/directives/print.directive.d.ts +1 -1
  17. package/core/portal/attach.directive.d.ts +1 -1
  18. package/core/portal/target.directive.d.ts +1 -1
  19. package/date/date.component.d.ts +1 -1
  20. package/dialog/dialog.component.d.ts +1 -1
  21. package/draggable-items/draggable-item/draggable-item.component.d.ts +1 -1
  22. package/draggable-items/draggable-items.component.d.ts +1 -1
  23. package/esm2022/address/address.component.mjs +112 -0
  24. package/{esm2020 → esm2022}/address/address.module.mjs +23 -23
  25. package/{esm2020 → esm2022}/attachment/attachment.component.mjs +65 -61
  26. package/{esm2020 → esm2022}/attachment/attachment.module.mjs +21 -21
  27. package/esm2022/bread-crumbs/bread-crumbs.component.mjs +87 -0
  28. package/esm2022/bread-crumbs/bread-crumbs.model.mjs +10 -0
  29. package/esm2022/bread-crumbs/bread-crumbs.module.mjs +51 -0
  30. package/{esm2020 → esm2022}/button/button.component.mjs +76 -53
  31. package/esm2022/button/button.model.mjs +13 -0
  32. package/{esm2020 → esm2022}/button/button.module.mjs +19 -19
  33. package/esm2022/carousel/carousel-item.directive.mjs +34 -0
  34. package/esm2022/carousel/carousel.component.mjs +765 -0
  35. package/{esm2020 → esm2022}/carousel/carousel.module.mjs +5 -5
  36. package/esm2022/checkbox/checkbox.component.mjs +182 -0
  37. package/esm2022/checkbox/checkbox.module.mjs +64 -0
  38. package/esm2022/chips/chips.component.mjs +187 -0
  39. package/esm2022/chips/chips.module.mjs +82 -0
  40. package/{esm2020 → esm2022}/chips/chips.service.mjs +5 -5
  41. package/esm2022/color/color-picker.component.mjs +229 -0
  42. package/esm2022/color/color.component.mjs +93 -0
  43. package/esm2022/color/color.module.mjs +93 -0
  44. package/{esm2020 → esm2022}/core/clipboard/clipboard.directive.mjs +4 -4
  45. package/{esm2020 → esm2022}/core/clipboard/clipboard.service.mjs +4 -4
  46. package/esm2022/core/common/directives/auto-width.directive.mjs +79 -0
  47. package/esm2022/core/common/directives/base-destroyer.directive.mjs +23 -0
  48. package/esm2022/core/common/directives/button-blur.directive.mjs +25 -0
  49. package/esm2022/core/common/directives/button-loader.directive.mjs +117 -0
  50. package/esm2022/core/common/directives/data-qa.directive.mjs +26 -0
  51. package/esm2022/core/common/directives/div-loader.directive.mjs +67 -0
  52. package/esm2022/core/common/directives/menu-blur.directive.mjs +33 -0
  53. package/esm2022/core/common/directives/prevent-multi-click.directive.mjs +25 -0
  54. package/esm2022/core/common/directives/print.directive.mjs +176 -0
  55. package/esm2022/core/common/model/wapi.model.mjs +247 -0
  56. package/esm2022/core/common/pipes/common-pipes.mjs +180 -0
  57. package/esm2022/core/common/pipes/date-ago.pipe.mjs +47 -0
  58. package/esm2022/core/common/services/addon.service.mjs +234 -0
  59. package/esm2022/core/common/services/color.service.mjs +383 -0
  60. package/esm2022/core/common/services/cookie.service.mjs +156 -0
  61. package/esm2022/core/common/services/data-convertor.service.mjs +139 -0
  62. package/esm2022/core/common/services/file.service.mjs +252 -0
  63. package/{esm2020 → esm2022}/core/common/services/jwt-helper.service.mjs +4 -4
  64. package/esm2022/core/common/services/session.service.mjs +73 -0
  65. package/esm2022/core/common/services/translate.service.mjs +47 -0
  66. package/esm2022/core/common/services/utilities.service.mjs +302 -0
  67. package/esm2022/core/common/services/validator.service.mjs +273 -0
  68. package/esm2022/core/common/services/window-scrolling.service.mjs +38 -0
  69. package/esm2022/core/customization/customization.model.mjs +377 -0
  70. package/esm2022/core/customization/customization.service.mjs +802 -0
  71. package/{esm2020 → esm2022}/core/http/interceptors/error.interceptor.mjs +4 -4
  72. package/esm2022/core/http/interceptors/loader.interceptor.mjs +33 -0
  73. package/{esm2020 → esm2022}/core/http/interceptors/profiler.interceptor.mjs +4 -4
  74. package/esm2022/core/http/services/http.service.mjs +158 -0
  75. package/{esm2020 → esm2022}/core/http/services/loader.service.mjs +6 -6
  76. package/esm2022/core/layout/layout.service.mjs +171 -0
  77. package/esm2022/core/layout/rtl.directive.mjs +50 -0
  78. package/esm2022/core/portal/attach.directive.mjs +30 -0
  79. package/esm2022/core/portal/portal.service.mjs +37 -0
  80. package/esm2022/core/portal/target.directive.mjs +27 -0
  81. package/{esm2020 → esm2022}/core/scroll-to/scroll-to.service.mjs +4 -4
  82. package/esm2022/date/date.component.mjs +345 -0
  83. package/{esm2020 → esm2022}/date/date.model.mjs +7 -7
  84. package/esm2022/date/date.module.mjs +89 -0
  85. package/esm2022/dialog/default-dialog.component.mjs +39 -0
  86. package/esm2022/dialog/dialog.component.mjs +37 -0
  87. package/esm2022/dialog/dialog.model.mjs +41 -0
  88. package/esm2022/dialog/dialog.module.mjs +59 -0
  89. package/esm2022/dialog/dialog.service.mjs +106 -0
  90. package/esm2022/draggable-items/draggable-item/draggable-item.component.mjs +68 -0
  91. package/esm2022/draggable-items/draggable-items.component.mjs +95 -0
  92. package/esm2022/draggable-items/draggable-items.module.mjs +65 -0
  93. package/esm2022/field-title/field-title.component.mjs +46 -0
  94. package/esm2022/field-title/field-title.module.mjs +48 -0
  95. package/{esm2020 → esm2022}/files-uploader/files-uploader.component.mjs +36 -27
  96. package/esm2022/files-uploader/files-uploader.module.mjs +80 -0
  97. package/esm2022/form/field-generator.component.mjs +152 -0
  98. package/esm2022/form/form.component.mjs +1258 -0
  99. package/esm2022/form/form.module.mjs +180 -0
  100. package/esm2022/form/indicators.component.mjs +23 -0
  101. package/esm2022/form/internal-button.component.mjs +188 -0
  102. package/esm2022/form/internal-carusel.component.mjs +126 -0
  103. package/esm2022/form/internal-carusel.service.mjs +34 -0
  104. package/esm2022/form/internal-field-generator.component.mjs +146 -0
  105. package/esm2022/form/internal-form.component.mjs +1236 -0
  106. package/esm2022/form/internal-list.component.mjs +524 -0
  107. package/esm2022/form/internal-menu.component.mjs +62 -0
  108. package/esm2022/form/internal-page.component.mjs +380 -0
  109. package/esm2022/form/internal-page.service.mjs +125 -0
  110. package/esm2022/group-buttons/group-buttons.component.mjs +73 -0
  111. package/esm2022/group-buttons/group-buttons.module.mjs +60 -0
  112. package/esm2022/icon/icon-registry.service.mjs +24 -0
  113. package/esm2022/icon/icon.component.mjs +95 -0
  114. package/{esm2020 → esm2022}/icon/icon.module.mjs +5 -5
  115. package/esm2022/icon/icon.service.mjs +34 -0
  116. package/{esm2020 → esm2022}/image/image.component.mjs +45 -39
  117. package/esm2022/image/image.module.mjs +74 -0
  118. package/esm2022/image/image.service.mjs +53 -0
  119. package/esm2022/images-filmstrip/images-filmstrip.component.mjs +360 -0
  120. package/esm2022/images-filmstrip/images-filmstrip.module.mjs +84 -0
  121. package/esm2022/link/link.component.mjs +324 -0
  122. package/esm2022/link/link.module.mjs +81 -0
  123. package/{esm2020 → esm2022}/link/link.pipes.mjs +4 -4
  124. package/esm2022/list/list-actions.component.mjs +42 -0
  125. package/esm2022/list/list-carousel.component.mjs +110 -0
  126. package/esm2022/list/list-chooser.component.mjs +64 -0
  127. package/esm2022/list/list-pager.component.mjs +126 -0
  128. package/{esm2020 → esm2022}/list/list-sorting.component.mjs +15 -13
  129. package/esm2022/list/list-total.component.mjs +31 -0
  130. package/esm2022/list/list-views.component.mjs +86 -0
  131. package/esm2022/list/list.component.mjs +1394 -0
  132. package/{esm2020 → esm2022}/list/list.model.mjs +4 -1
  133. package/esm2022/list/list.module.mjs +145 -0
  134. package/esm2022/list/list.pipes.mjs +45 -0
  135. package/esm2022/list/virtual-scroller.mjs +1124 -0
  136. package/esm2022/menu/menu-item.component.mjs +111 -0
  137. package/esm2022/menu/menu.component.mjs +218 -0
  138. package/esm2022/menu/menu.model.mjs +23 -0
  139. package/esm2022/menu/menu.module.mjs +60 -0
  140. package/{esm2020 → esm2022}/ngx-lib.module.mjs +65 -65
  141. package/esm2022/page-layout/page-layout.component.mjs +41 -0
  142. package/{esm2020 → esm2022}/page-layout/page-layout.module.mjs +13 -13
  143. package/esm2022/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +48 -0
  144. package/esm2022/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +82 -0
  145. package/esm2022/profile-data-views-list/profile-data-views-list.component.mjs +131 -0
  146. package/esm2022/profile-data-views-list/profile-data-views-list.module.mjs +89 -0
  147. package/esm2022/quantity-selector/quantity-selector-validation.directive.mjs +53 -0
  148. package/{esm2020 → esm2022}/quantity-selector/quantity-selector.component.mjs +83 -73
  149. package/esm2022/quantity-selector/quantity-selector.module.mjs +83 -0
  150. package/{esm2020 → esm2022}/quantity-selector/quantity-selector.pipes.mjs +4 -4
  151. package/esm2022/query-builder/common/model/type-map.mjs +28 -0
  152. package/esm2022/query-builder/common/services/output-query.service.mjs +118 -0
  153. package/esm2022/query-builder/common/services/query-structure.service.mjs +263 -0
  154. package/esm2022/query-builder/common/services/type-convertor.service.mjs +42 -0
  155. package/esm2022/query-builder/query-builder-item/query-builder-item.component.mjs +134 -0
  156. package/esm2022/query-builder/query-builder-section/query-builder-section.component.mjs +76 -0
  157. package/esm2022/query-builder/query-builder.component.mjs +116 -0
  158. package/esm2022/query-builder/query-builder.module.mjs +71 -0
  159. package/{esm2020 → esm2022}/query-builder/query-builder.service.mjs +4 -4
  160. package/esm2022/remote-loader/addon-block-loader.component.mjs +115 -0
  161. package/esm2022/remote-loader/addon-block-loader.service.mjs +66 -0
  162. package/esm2022/remote-loader/remote-loader-element.component.mjs +179 -0
  163. package/esm2022/remote-loader/remote-loader.component.mjs +120 -0
  164. package/{esm2020 → esm2022}/remote-loader/remote-loader.module.mjs +26 -26
  165. package/esm2022/remote-loader/remote-loader.service.mjs +107 -0
  166. package/{esm2020 → esm2022}/rich-html-textarea/rich-html-textarea.component.mjs +38 -30
  167. package/esm2022/rich-html-textarea/rich-html-textarea.module.mjs +96 -0
  168. package/esm2022/search/search.component.mjs +322 -0
  169. package/esm2022/search/search.module.mjs +71 -0
  170. package/esm2022/select/select.component.mjs +341 -0
  171. package/esm2022/select/select.module.mjs +71 -0
  172. package/esm2022/select-panel/select-panel.component.mjs +161 -0
  173. package/{esm2020 → esm2022}/select-panel/select-panel.module.mjs +31 -31
  174. package/esm2022/separator/separator.component.mjs +65 -0
  175. package/{esm2020 → esm2022}/separator/separator.module.mjs +5 -5
  176. package/esm2022/side-bar/side-bar.component.mjs +141 -0
  177. package/esm2022/side-bar/side-bar.module.mjs +56 -0
  178. package/esm2022/signature/signature-dialog.component.mjs +82 -0
  179. package/{esm2020 → esm2022}/signature/signature.component.mjs +41 -31
  180. package/esm2022/signature/signature.module.mjs +92 -0
  181. package/esm2022/size-detector/size-detector.component.mjs +97 -0
  182. package/{esm2020 → esm2022}/size-detector/size-detector.module.mjs +13 -13
  183. package/esm2022/skeleton-loader/skeleton-loader.component.mjs +46 -0
  184. package/{esm2020 → esm2022}/skeleton-loader/skeleton-loader.module.mjs +7 -7
  185. package/esm2022/slider/slider.component.mjs +105 -0
  186. package/{esm2020 → esm2022}/slider/slider.module.mjs +17 -17
  187. package/esm2022/smart-filters/boolean-filter/boolean-filter.component.mjs +74 -0
  188. package/esm2022/smart-filters/common/filter-actions.component.mjs +28 -0
  189. package/esm2022/smart-filters/common/model/base-filter-component.mjs +307 -0
  190. package/esm2022/smart-filters/common/model/field.mjs +125 -0
  191. package/esm2022/smart-filters/common/model/operator.mjs +287 -0
  192. package/esm2022/smart-filters/date-filter/date-filter.component.mjs +181 -0
  193. package/esm2022/smart-filters/multi-select-filter/multi-select-filter.component.mjs +202 -0
  194. package/esm2022/smart-filters/number-filter/number-filter.component.mjs +133 -0
  195. package/esm2022/smart-filters/smart-filters.component.mjs +143 -0
  196. package/esm2022/smart-filters/smart-filters.module.mjs +159 -0
  197. package/esm2022/smart-filters/text-filter/text-filter.component.mjs +110 -0
  198. package/esm2022/snack-bar/default-snack-bar.component.mjs +31 -0
  199. package/esm2022/snack-bar/snack-bar.component.mjs +28 -0
  200. package/esm2022/snack-bar/snack-bar.model.mjs +9 -0
  201. package/esm2022/snack-bar/snack-bar.module.mjs +63 -0
  202. package/esm2022/snack-bar/snack-bar.service.mjs +62 -0
  203. package/{esm2020 → esm2022}/textarea/textarea.component.mjs +35 -27
  204. package/esm2022/textarea/textarea.module.mjs +83 -0
  205. package/esm2022/textbox/textbox-validation.directive.mjs +96 -0
  206. package/esm2022/textbox/textbox.component.mjs +646 -0
  207. package/esm2022/textbox/textbox.module.mjs +73 -0
  208. package/esm2022/textbox-icon/textbox-icon.component.mjs +50 -0
  209. package/esm2022/textbox-icon/textbox-icon.module.mjs +65 -0
  210. package/esm2022/top-bar/top-bar.component.mjs +127 -0
  211. package/esm2022/top-bar/top-bar.module.mjs +63 -0
  212. package/fesm2022/pepperi-addons-ngx-lib-address.mjs +173 -0
  213. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  214. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-attachment.mjs +84 -80
  215. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  216. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-bread-crumbs.mjs +34 -28
  217. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +1 -1
  218. package/fesm2022/pepperi-addons-ngx-lib-button.mjs +227 -0
  219. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-button.mjs.map +1 -1
  220. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-carousel.mjs +76 -55
  221. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-carousel.mjs.map +1 -1
  222. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-checkbox.mjs +54 -48
  223. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  224. package/fesm2022/pepperi-addons-ngx-lib-chips.mjs +308 -0
  225. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  226. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-color.mjs +92 -84
  227. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  228. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-date.mjs +116 -104
  229. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  230. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-dialog.mjs +50 -36
  231. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  232. package/fesm2022/pepperi-addons-ngx-lib-draggable-items.mjs +229 -0
  233. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  234. package/fesm2022/pepperi-addons-ngx-lib-field-title.mjs +101 -0
  235. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  236. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-files-uploader.mjs +66 -56
  237. package/fesm2022/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -0
  238. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-form.mjs +391 -310
  239. package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  240. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-group-buttons.mjs +38 -35
  241. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  242. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-icon.mjs +23 -18
  243. package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  244. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-image.mjs +77 -68
  245. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  246. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-images-filmstrip.mjs +83 -60
  247. package/fesm2022/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -0
  248. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-link.mjs +113 -103
  249. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  250. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-list.mjs +339 -273
  251. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  252. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-menu.mjs +89 -87
  253. package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  254. package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-page-layout.mjs +23 -17
  255. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  256. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-profile-data-views-list.mjs +72 -63
  257. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  258. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-quantity-selector.mjs +125 -110
  259. package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  260. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-query-builder.mjs +93 -66
  261. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  262. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-remote-loader.mjs +84 -64
  263. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  264. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-rich-html-textarea.mjs +76 -67
  265. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  266. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-search.mjs +85 -79
  267. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-search.mjs.map +1 -1
  268. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-select-panel.mjs +53 -49
  269. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  270. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-select.mjs +74 -66
  271. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  272. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-separator.mjs +18 -16
  273. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-separator.mjs.map +1 -1
  274. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-side-bar.mjs +44 -38
  275. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  276. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-signature.mjs +95 -81
  277. package/fesm2022/pepperi-addons-ngx-lib-signature.mjs.map +1 -0
  278. package/fesm2022/pepperi-addons-ngx-lib-size-detector.mjs +139 -0
  279. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-size-detector.mjs.map +1 -1
  280. package/fesm2022/pepperi-addons-ngx-lib-skeleton-loader.mjs +78 -0
  281. package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  282. package/fesm2022/pepperi-addons-ngx-lib-slider.mjs +154 -0
  283. package/fesm2022/pepperi-addons-ngx-lib-slider.mjs.map +1 -0
  284. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-smart-filters.mjs +186 -158
  285. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  286. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-snack-bar.mjs +42 -34
  287. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-snack-bar.mjs.map +1 -1
  288. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textarea.mjs +67 -58
  289. package/{fesm2015 → fesm2022}/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  290. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textbox-icon.mjs +28 -25
  291. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  292. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textbox.mjs +156 -144
  293. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  294. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-top-bar.mjs +48 -32
  295. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  296. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib.mjs +661 -449
  297. package/{fesm2020 → fesm2022}/pepperi-addons-ngx-lib.mjs.map +1 -1
  298. package/field-title/field-title.component.d.ts +1 -1
  299. package/files-uploader/files-uploader.component.d.ts +1 -1
  300. package/form/field-generator.component.d.ts +1 -1
  301. package/form/form.component.d.ts +1 -1
  302. package/form/form.module.d.ts +2 -2
  303. package/form/indicators.component.d.ts +1 -1
  304. package/form/internal-button.component.d.ts +1 -1
  305. package/form/internal-carusel.component.d.ts +1 -1
  306. package/form/internal-field-generator.component.d.ts +1 -1
  307. package/form/internal-form.component.d.ts +1 -1
  308. package/form/internal-list.component.d.ts +1 -1
  309. package/form/internal-menu.component.d.ts +1 -1
  310. package/form/internal-page.component.d.ts +1 -1
  311. package/group-buttons/group-buttons.component.d.ts +1 -1
  312. package/icon/icon.component.d.ts +1 -1
  313. package/image/image.component.d.ts +1 -1
  314. package/images-filmstrip/images-filmstrip.component.d.ts +1 -1
  315. package/link/link.component.d.ts +1 -1
  316. package/list/list-actions.component.d.ts +1 -1
  317. package/list/list-carousel.component.d.ts +1 -1
  318. package/list/list-chooser.component.d.ts +1 -1
  319. package/list/list-pager.component.d.ts +1 -1
  320. package/list/list-sorting.component.d.ts +1 -1
  321. package/list/list-total.component.d.ts +1 -1
  322. package/list/list-views.component.d.ts +1 -1
  323. package/list/list.component.d.ts +1 -1
  324. package/list/virtual-scroller.d.ts +1 -1
  325. package/menu/menu-item.component.d.ts +1 -1
  326. package/menu/menu.component.d.ts +1 -1
  327. package/package.json +145 -235
  328. package/page-layout/page-layout.component.d.ts +1 -1
  329. package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +1 -1
  330. package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +1 -1
  331. package/profile-data-views-list/profile-data-views-list.component.d.ts +1 -1
  332. package/quantity-selector/quantity-selector-validation.directive.d.ts +1 -1
  333. package/quantity-selector/quantity-selector.component.d.ts +1 -1
  334. package/query-builder/query-builder-item/query-builder-item.component.d.ts +1 -1
  335. package/query-builder/query-builder-section/query-builder-section.component.d.ts +1 -1
  336. package/query-builder/query-builder.component.d.ts +1 -1
  337. package/remote-loader/addon-block-loader.component.d.ts +1 -1
  338. package/remote-loader/remote-loader-element.component.d.ts +1 -1
  339. package/remote-loader/remote-loader.component.d.ts +1 -1
  340. package/rich-html-textarea/rich-html-textarea.component.d.ts +1 -1
  341. package/search/search.component.d.ts +1 -1
  342. package/select/select.component.d.ts +1 -1
  343. package/select-panel/select-panel.component.d.ts +1 -1
  344. package/separator/separator.component.d.ts +1 -1
  345. package/side-bar/side-bar.component.d.ts +1 -1
  346. package/signature/signature-dialog.component.d.ts +2 -2
  347. package/signature/signature.component.d.ts +1 -1
  348. package/signature/signature.module.d.ts +2 -2
  349. package/size-detector/size-detector.component.d.ts +1 -1
  350. package/skeleton-loader/skeleton-loader.component.d.ts +1 -1
  351. package/slider/slider.component.d.ts +1 -1
  352. package/slider/slider.component.theme.scss +13 -6
  353. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +1 -1
  354. package/smart-filters/common/filter-actions.component.d.ts +1 -1
  355. package/smart-filters/common/model/base-filter-component.d.ts +1 -1
  356. package/smart-filters/smart-filters.component.d.ts +1 -1
  357. package/snack-bar/snack-bar.component.d.ts +1 -1
  358. package/textarea/textarea.component.d.ts +1 -1
  359. package/textbox/textbox-validation.directive.d.ts +1 -1
  360. package/textbox/textbox.component.d.ts +1 -1
  361. package/textbox-icon/textbox-icon.component.d.ts +1 -1
  362. package/top-bar/top-bar.component.d.ts +1 -1
  363. package/esm2020/address/address.component.mjs +0 -109
  364. package/esm2020/bread-crumbs/bread-crumbs.component.mjs +0 -85
  365. package/esm2020/bread-crumbs/bread-crumbs.model.mjs +0 -7
  366. package/esm2020/bread-crumbs/bread-crumbs.module.mjs +0 -50
  367. package/esm2020/button/button.model.mjs +0 -6
  368. package/esm2020/carousel/carousel-item.directive.mjs +0 -33
  369. package/esm2020/carousel/carousel.component.mjs +0 -745
  370. package/esm2020/checkbox/checkbox.component.mjs +0 -177
  371. package/esm2020/checkbox/checkbox.module.mjs +0 -63
  372. package/esm2020/chips/chips.component.mjs +0 -185
  373. package/esm2020/chips/chips.module.mjs +0 -81
  374. package/esm2020/color/color-picker.component.mjs +0 -224
  375. package/esm2020/color/color.component.mjs +0 -90
  376. package/esm2020/color/color.module.mjs +0 -93
  377. package/esm2020/core/common/directives/auto-width.directive.mjs +0 -77
  378. package/esm2020/core/common/directives/base-destroyer.directive.mjs +0 -22
  379. package/esm2020/core/common/directives/button-blur.directive.mjs +0 -24
  380. package/esm2020/core/common/directives/button-loader.directive.mjs +0 -112
  381. package/esm2020/core/common/directives/data-qa.directive.mjs +0 -23
  382. package/esm2020/core/common/directives/div-loader.directive.mjs +0 -61
  383. package/esm2020/core/common/directives/menu-blur.directive.mjs +0 -32
  384. package/esm2020/core/common/directives/prevent-multi-click.directive.mjs +0 -27
  385. package/esm2020/core/common/directives/print.directive.mjs +0 -170
  386. package/esm2020/core/common/model/wapi.model.mjs +0 -157
  387. package/esm2020/core/common/pipes/common-pipes.mjs +0 -177
  388. package/esm2020/core/common/pipes/date-ago.pipe.mjs +0 -46
  389. package/esm2020/core/common/services/addon.service.mjs +0 -227
  390. package/esm2020/core/common/services/color.service.mjs +0 -385
  391. package/esm2020/core/common/services/cookie.service.mjs +0 -153
  392. package/esm2020/core/common/services/data-convertor.service.mjs +0 -122
  393. package/esm2020/core/common/services/file.service.mjs +0 -250
  394. package/esm2020/core/common/services/session.service.mjs +0 -72
  395. package/esm2020/core/common/services/translate.service.mjs +0 -46
  396. package/esm2020/core/common/services/utilities.service.mjs +0 -301
  397. package/esm2020/core/common/services/validator.service.mjs +0 -272
  398. package/esm2020/core/common/services/window-scrolling.service.mjs +0 -36
  399. package/esm2020/core/customization/customization.model.mjs +0 -338
  400. package/esm2020/core/customization/customization.service.mjs +0 -799
  401. package/esm2020/core/http/interceptors/loader.interceptor.mjs +0 -32
  402. package/esm2020/core/http/services/http.service.mjs +0 -155
  403. package/esm2020/core/layout/layout.service.mjs +0 -168
  404. package/esm2020/core/layout/rtl.directive.mjs +0 -44
  405. package/esm2020/core/portal/attach.directive.mjs +0 -27
  406. package/esm2020/core/portal/portal.service.mjs +0 -36
  407. package/esm2020/core/portal/target.directive.mjs +0 -24
  408. package/esm2020/date/date.component.mjs +0 -334
  409. package/esm2020/date/date.module.mjs +0 -88
  410. package/esm2020/dialog/default-dialog.component.mjs +0 -37
  411. package/esm2020/dialog/dialog.component.mjs +0 -36
  412. package/esm2020/dialog/dialog.model.mjs +0 -33
  413. package/esm2020/dialog/dialog.module.mjs +0 -59
  414. package/esm2020/dialog/dialog.service.mjs +0 -103
  415. package/esm2020/draggable-items/draggable-item/draggable-item.component.mjs +0 -67
  416. package/esm2020/draggable-items/draggable-items.component.mjs +0 -94
  417. package/esm2020/draggable-items/draggable-items.module.mjs +0 -64
  418. package/esm2020/field-title/field-title.component.mjs +0 -48
  419. package/esm2020/field-title/field-title.module.mjs +0 -47
  420. package/esm2020/files-uploader/files-uploader.module.mjs +0 -79
  421. package/esm2020/form/field-generator.component.mjs +0 -152
  422. package/esm2020/form/form.component.mjs +0 -1240
  423. package/esm2020/form/form.module.mjs +0 -179
  424. package/esm2020/form/indicators.component.mjs +0 -23
  425. package/esm2020/form/internal-button.component.mjs +0 -184
  426. package/esm2020/form/internal-carusel.component.mjs +0 -121
  427. package/esm2020/form/internal-carusel.service.mjs +0 -32
  428. package/esm2020/form/internal-field-generator.component.mjs +0 -146
  429. package/esm2020/form/internal-form.component.mjs +0 -1218
  430. package/esm2020/form/internal-list.component.mjs +0 -513
  431. package/esm2020/form/internal-menu.component.mjs +0 -64
  432. package/esm2020/form/internal-page.component.mjs +0 -361
  433. package/esm2020/form/internal-page.service.mjs +0 -120
  434. package/esm2020/group-buttons/group-buttons.component.mjs +0 -71
  435. package/esm2020/group-buttons/group-buttons.module.mjs +0 -59
  436. package/esm2020/icon/icon-registry.service.mjs +0 -26
  437. package/esm2020/icon/icon.component.mjs +0 -91
  438. package/esm2020/icon/icon.service.mjs +0 -31
  439. package/esm2020/image/image.module.mjs +0 -74
  440. package/esm2020/image/image.service.mjs +0 -50
  441. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +0 -338
  442. package/esm2020/images-filmstrip/images-filmstrip.module.mjs +0 -83
  443. package/esm2020/link/link.component.mjs +0 -315
  444. package/esm2020/link/link.module.mjs +0 -80
  445. package/esm2020/list/list-actions.component.mjs +0 -44
  446. package/esm2020/list/list-carousel.component.mjs +0 -107
  447. package/esm2020/list/list-chooser.component.mjs +0 -64
  448. package/esm2020/list/list-pager.component.mjs +0 -120
  449. package/esm2020/list/list-total.component.mjs +0 -33
  450. package/esm2020/list/list-views.component.mjs +0 -85
  451. package/esm2020/list/list.component.mjs +0 -1382
  452. package/esm2020/list/list.module.mjs +0 -144
  453. package/esm2020/list/list.pipes.mjs +0 -47
  454. package/esm2020/list/virtual-scroller.mjs +0 -1080
  455. package/esm2020/menu/menu-item.component.mjs +0 -115
  456. package/esm2020/menu/menu.component.mjs +0 -216
  457. package/esm2020/menu/menu.model.mjs +0 -20
  458. package/esm2020/menu/menu.module.mjs +0 -59
  459. package/esm2020/page-layout/page-layout.component.mjs +0 -35
  460. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +0 -45
  461. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +0 -81
  462. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +0 -127
  463. package/esm2020/profile-data-views-list/profile-data-views-list.module.mjs +0 -88
  464. package/esm2020/quantity-selector/quantity-selector-validation.directive.mjs +0 -49
  465. package/esm2020/quantity-selector/quantity-selector.module.mjs +0 -82
  466. package/esm2020/query-builder/common/model/type-map.mjs +0 -27
  467. package/esm2020/query-builder/common/services/output-query.service.mjs +0 -116
  468. package/esm2020/query-builder/common/services/query-structure.service.mjs +0 -258
  469. package/esm2020/query-builder/common/services/type-convertor.service.mjs +0 -42
  470. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +0 -127
  471. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +0 -71
  472. package/esm2020/query-builder/query-builder.component.mjs +0 -110
  473. package/esm2020/query-builder/query-builder.module.mjs +0 -70
  474. package/esm2020/remote-loader/addon-block-loader.component.mjs +0 -112
  475. package/esm2020/remote-loader/addon-block-loader.service.mjs +0 -65
  476. package/esm2020/remote-loader/remote-loader-element.component.mjs +0 -171
  477. package/esm2020/remote-loader/remote-loader.component.mjs +0 -115
  478. package/esm2020/remote-loader/remote-loader.service.mjs +0 -104
  479. package/esm2020/rich-html-textarea/rich-html-textarea.module.mjs +0 -95
  480. package/esm2020/search/search.component.mjs +0 -317
  481. package/esm2020/search/search.module.mjs +0 -70
  482. package/esm2020/select/select.component.mjs +0 -334
  483. package/esm2020/select/select.module.mjs +0 -70
  484. package/esm2020/select-panel/select-panel.component.mjs +0 -157
  485. package/esm2020/separator/separator.component.mjs +0 -63
  486. package/esm2020/side-bar/side-bar.component.mjs +0 -136
  487. package/esm2020/side-bar/side-bar.module.mjs +0 -55
  488. package/esm2020/signature/signature-dialog.component.mjs +0 -79
  489. package/esm2020/signature/signature.module.mjs +0 -91
  490. package/esm2020/size-detector/size-detector.component.mjs +0 -94
  491. package/esm2020/skeleton-loader/skeleton-loader.component.mjs +0 -44
  492. package/esm2020/slider/slider.component.mjs +0 -101
  493. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +0 -75
  494. package/esm2020/smart-filters/common/filter-actions.component.mjs +0 -29
  495. package/esm2020/smart-filters/common/model/base-filter-component.mjs +0 -290
  496. package/esm2020/smart-filters/common/model/field.mjs +0 -117
  497. package/esm2020/smart-filters/common/model/operator.mjs +0 -280
  498. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +0 -182
  499. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +0 -200
  500. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +0 -136
  501. package/esm2020/smart-filters/smart-filters.component.mjs +0 -141
  502. package/esm2020/smart-filters/smart-filters.module.mjs +0 -158
  503. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +0 -113
  504. package/esm2020/snack-bar/default-snack-bar.component.mjs +0 -29
  505. package/esm2020/snack-bar/snack-bar.component.mjs +0 -26
  506. package/esm2020/snack-bar/snack-bar.model.mjs +0 -7
  507. package/esm2020/snack-bar/snack-bar.module.mjs +0 -63
  508. package/esm2020/snack-bar/snack-bar.service.mjs +0 -60
  509. package/esm2020/textarea/textarea.module.mjs +0 -82
  510. package/esm2020/textbox/textbox-validation.directive.mjs +0 -93
  511. package/esm2020/textbox/textbox.component.mjs +0 -638
  512. package/esm2020/textbox/textbox.module.mjs +0 -72
  513. package/esm2020/textbox-icon/textbox-icon.component.mjs +0 -48
  514. package/esm2020/textbox-icon/textbox-icon.module.mjs +0 -64
  515. package/esm2020/top-bar/top-bar.component.mjs +0 -112
  516. package/esm2020/top-bar/top-bar.module.mjs +0 -62
  517. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +0 -170
  518. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +0 -1
  519. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +0 -306
  520. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +0 -1
  521. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs +0 -147
  522. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.mjs.map +0 -1
  523. package/fesm2015/pepperi-addons-ngx-lib-button.mjs +0 -197
  524. package/fesm2015/pepperi-addons-ngx-lib-button.mjs.map +0 -1
  525. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs +0 -804
  526. package/fesm2015/pepperi-addons-ngx-lib-carousel.mjs.map +0 -1
  527. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +0 -246
  528. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +0 -1
  529. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +0 -306
  530. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +0 -1
  531. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +0 -404
  532. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +0 -1
  533. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +0 -481
  534. package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +0 -1
  535. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +0 -263
  536. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +0 -1
  537. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +0 -227
  538. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +0 -1
  539. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +0 -102
  540. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +0 -1
  541. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +0 -331
  542. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +0 -1
  543. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +0 -4232
  544. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +0 -136
  545. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +0 -1
  546. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +0 -741
  547. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +0 -397
  548. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +0 -1
  549. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +0 -426
  550. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +0 -1
  551. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +0 -414
  552. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +0 -1
  553. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +0 -3131
  554. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +0 -1
  555. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +0 -403
  556. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +0 -1
  557. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +0 -337
  558. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +0 -1
  559. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +0 -741
  560. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +0 -1226
  561. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +0 -1
  562. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +0 -644
  563. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +0 -1
  564. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +0 -363
  565. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +0 -1
  566. package/fesm2015/pepperi-addons-ngx-lib-search.mjs +0 -393
  567. package/fesm2015/pepperi-addons-ngx-lib-search.mjs.map +0 -1
  568. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +0 -235
  569. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +0 -1
  570. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +0 -410
  571. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +0 -1
  572. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs +0 -89
  573. package/fesm2015/pepperi-addons-ngx-lib-separator.mjs.map +0 -1
  574. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +0 -196
  575. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +0 -1
  576. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +0 -464
  577. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +0 -1
  578. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs +0 -136
  579. package/fesm2015/pepperi-addons-ngx-lib-size-detector.mjs.map +0 -1
  580. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +0 -78
  581. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +0 -151
  582. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +0 -1
  583. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +0 -1731
  584. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +0 -1
  585. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs +0 -183
  586. package/fesm2015/pepperi-addons-ngx-lib-snack-bar.mjs.map +0 -1
  587. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +0 -286
  588. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +0 -118
  589. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +0 -1
  590. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +0 -806
  591. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +0 -1
  592. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +0 -180
  593. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +0 -1
  594. package/fesm2015/pepperi-addons-ngx-lib.mjs +0 -4995
  595. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +0 -1
  596. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +0 -170
  597. package/fesm2020/pepperi-addons-ngx-lib-button.mjs +0 -197
  598. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +0 -305
  599. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +0 -226
  600. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +0 -102
  601. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +0 -1
  602. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +0 -1
  603. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +0 -1
  604. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +0 -1
  605. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +0 -1
  606. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +0 -77
  607. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +0 -1
  608. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +0 -1
  609. package/fesm2020/pepperi-addons-ngx-lib-size-detector.mjs +0 -136
  610. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +0 -76
  611. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +0 -1
  612. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +0 -150
  613. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +0 -1
  614. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +0 -1
  615. /package/{esm2020 → esm2022}/address/pepperi-addons-ngx-lib-address.mjs +0 -0
  616. /package/{esm2020 → esm2022}/address/public-api.mjs +0 -0
  617. /package/{esm2020 → esm2022}/attachment/pepperi-addons-ngx-lib-attachment.mjs +0 -0
  618. /package/{esm2020 → esm2022}/attachment/public-api.mjs +0 -0
  619. /package/{esm2020 → esm2022}/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.mjs +0 -0
  620. /package/{esm2020 → esm2022}/bread-crumbs/public-api.mjs +0 -0
  621. /package/{esm2020 → esm2022}/button/pepperi-addons-ngx-lib-button.mjs +0 -0
  622. /package/{esm2020 → esm2022}/button/public-api.mjs +0 -0
  623. /package/{esm2020 → esm2022}/carousel/pepperi-addons-ngx-lib-carousel.mjs +0 -0
  624. /package/{esm2020 → esm2022}/carousel/public-api.mjs +0 -0
  625. /package/{esm2020 → esm2022}/checkbox/pepperi-addons-ngx-lib-checkbox.mjs +0 -0
  626. /package/{esm2020 → esm2022}/checkbox/public-api.mjs +0 -0
  627. /package/{esm2020 → esm2022}/chips/chips.model.mjs +0 -0
  628. /package/{esm2020 → esm2022}/chips/pepperi-addons-ngx-lib-chips.mjs +0 -0
  629. /package/{esm2020 → esm2022}/chips/public-api.mjs +0 -0
  630. /package/{esm2020 → esm2022}/color/color.model.mjs +0 -0
  631. /package/{esm2020 → esm2022}/color/pepperi-addons-ngx-lib-color.mjs +0 -0
  632. /package/{esm2020 → esm2022}/color/public-api.mjs +0 -0
  633. /package/{esm2020 → esm2022}/core/clipboard/index.mjs +0 -0
  634. /package/{esm2020 → esm2022}/core/clipboard/public-api.mjs +0 -0
  635. /package/{esm2020 → esm2022}/core/common/directives/index.mjs +0 -0
  636. /package/{esm2020 → esm2022}/core/common/directives/public-api.mjs +0 -0
  637. /package/{esm2020 → esm2022}/core/common/index.mjs +0 -0
  638. /package/{esm2020 → esm2022}/core/common/model/index.mjs +0 -0
  639. /package/{esm2020 → esm2022}/core/common/model/papi.model.mjs +0 -0
  640. /package/{esm2020 → esm2022}/core/common/model/public-api.mjs +0 -0
  641. /package/{esm2020 → esm2022}/core/common/model/utilities.model.mjs +0 -0
  642. /package/{esm2020 → esm2022}/core/common/pipes/index.mjs +0 -0
  643. /package/{esm2020 → esm2022}/core/common/pipes/public-api.mjs +0 -0
  644. /package/{esm2020 → esm2022}/core/common/public-api.mjs +0 -0
  645. /package/{esm2020 → esm2022}/core/common/services/index.mjs +0 -0
  646. /package/{esm2020 → esm2022}/core/common/services/public-api.mjs +0 -0
  647. /package/{esm2020 → esm2022}/core/customization/index.mjs +0 -0
  648. /package/{esm2020 → esm2022}/core/customization/public-api.mjs +0 -0
  649. /package/{esm2020 → esm2022}/core/http/index.mjs +0 -0
  650. /package/{esm2020 → esm2022}/core/http/interceptors/index.mjs +0 -0
  651. /package/{esm2020 → esm2022}/core/http/public-api.mjs +0 -0
  652. /package/{esm2020 → esm2022}/core/index.mjs +0 -0
  653. /package/{esm2020 → esm2022}/core/layout/index.mjs +0 -0
  654. /package/{esm2020 → esm2022}/core/layout/public-api.mjs +0 -0
  655. /package/{esm2020 → esm2022}/core/portal/index.mjs +0 -0
  656. /package/{esm2020 → esm2022}/core/portal/public-api.mjs +0 -0
  657. /package/{esm2020 → esm2022}/core/public-api.mjs +0 -0
  658. /package/{esm2020 → esm2022}/core/scroll-to/index.mjs +0 -0
  659. /package/{esm2020 → esm2022}/core/scroll-to/public-api.mjs +0 -0
  660. /package/{esm2020 → esm2022}/date/pepperi-addons-ngx-lib-date.mjs +0 -0
  661. /package/{esm2020 → esm2022}/date/public-api.mjs +0 -0
  662. /package/{esm2020 → esm2022}/dialog/pepperi-addons-ngx-lib-dialog.mjs +0 -0
  663. /package/{esm2020 → esm2022}/dialog/public-api.mjs +0 -0
  664. /package/{esm2020 → esm2022}/draggable-items/draggable-items.model.mjs +0 -0
  665. /package/{esm2020 → esm2022}/draggable-items/pepperi-addons-ngx-lib-draggable-items.mjs +0 -0
  666. /package/{esm2020 → esm2022}/draggable-items/public-api.mjs +0 -0
  667. /package/{esm2020 → esm2022}/field-title/pepperi-addons-ngx-lib-field-title.mjs +0 -0
  668. /package/{esm2020 → esm2022}/field-title/public-api.mjs +0 -0
  669. /package/{esm2020 → esm2022}/files-uploader/pepperi-addons-ngx-lib-files-uploader.mjs +0 -0
  670. /package/{esm2020 → esm2022}/files-uploader/public-api.mjs +0 -0
  671. /package/{esm2020 → esm2022}/form/form.model.mjs +0 -0
  672. /package/{esm2020 → esm2022}/form/pepperi-addons-ngx-lib-form.mjs +0 -0
  673. /package/{esm2020 → esm2022}/form/public-api.mjs +0 -0
  674. /package/{esm2020 → esm2022}/group-buttons/pepperi-addons-ngx-lib-group-buttons.mjs +0 -0
  675. /package/{esm2020 → esm2022}/group-buttons/public-api.mjs +0 -0
  676. /package/{esm2020 → esm2022}/icon/icon-generated-all.model.mjs +0 -0
  677. /package/{esm2020 → esm2022}/icon/icon-generated.model.mjs +0 -0
  678. /package/{esm2020 → esm2022}/icon/pepperi-addons-ngx-lib-icon.mjs +0 -0
  679. /package/{esm2020 → esm2022}/icon/public-api.mjs +0 -0
  680. /package/{esm2020 → esm2022}/image/pepperi-addons-ngx-lib-image.mjs +0 -0
  681. /package/{esm2020 → esm2022}/image/public-api.mjs +0 -0
  682. /package/{esm2020 → esm2022}/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.mjs +0 -0
  683. /package/{esm2020 → esm2022}/images-filmstrip/public-api.mjs +0 -0
  684. /package/{esm2020 → esm2022}/link/pepperi-addons-ngx-lib-link.mjs +0 -0
  685. /package/{esm2020 → esm2022}/link/public-api.mjs +0 -0
  686. /package/{esm2020 → esm2022}/list/pepperi-addons-ngx-lib-list.mjs +0 -0
  687. /package/{esm2020 → esm2022}/list/public-api.mjs +0 -0
  688. /package/{esm2020 → esm2022}/menu/pepperi-addons-ngx-lib-menu.mjs +0 -0
  689. /package/{esm2020 → esm2022}/menu/public-api.mjs +0 -0
  690. /package/{esm2020 → esm2022}/page-layout/pepperi-addons-ngx-lib-page-layout.mjs +0 -0
  691. /package/{esm2020 → esm2022}/page-layout/public-api.mjs +0 -0
  692. /package/{esm2020 → esm2022}/pepperi-addons-ngx-lib.mjs +0 -0
  693. /package/{esm2020 → esm2022}/profile-data-views-list/pepperi-addons-ngx-lib-profile-data-views-list.mjs +0 -0
  694. /package/{esm2020 → esm2022}/profile-data-views-list/profile-data-views-list.model.mjs +0 -0
  695. /package/{esm2020 → esm2022}/profile-data-views-list/public-api.mjs +0 -0
  696. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  697. /package/{esm2020 → esm2022}/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.mjs +0 -0
  698. /package/{esm2020 → esm2022}/quantity-selector/public-api.mjs +0 -0
  699. /package/{esm2020 → esm2022}/query-builder/common/model/field.mjs +0 -0
  700. /package/{esm2020 → esm2022}/query-builder/common/model/filter.mjs +0 -0
  701. /package/{esm2020 → esm2022}/query-builder/common/model/legacy.mjs +0 -0
  702. /package/{esm2020 → esm2022}/query-builder/common/model/operator-unit.mjs +0 -0
  703. /package/{esm2020 → esm2022}/query-builder/common/model/operator.mjs +0 -0
  704. /package/{esm2020 → esm2022}/query-builder/common/model/structure.mjs +0 -0
  705. /package/{esm2020 → esm2022}/query-builder/common/model/type.mjs +0 -0
  706. /package/{esm2020 → esm2022}/query-builder/pepperi-addons-ngx-lib-query-builder.mjs +0 -0
  707. /package/{esm2020 → esm2022}/query-builder/public-api.mjs +0 -0
  708. /package/{esm2020 → esm2022}/remote-loader/pepperi-addons-ngx-lib-remote-loader.mjs +0 -0
  709. /package/{esm2020 → esm2022}/remote-loader/public-api.mjs +0 -0
  710. /package/{esm2020 → esm2022}/remote-loader/remote-loader.model.mjs +0 -0
  711. /package/{esm2020 → esm2022}/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.mjs +0 -0
  712. /package/{esm2020 → esm2022}/rich-html-textarea/public-api.mjs +0 -0
  713. /package/{esm2020 → esm2022}/search/pepperi-addons-ngx-lib-search.mjs +0 -0
  714. /package/{esm2020 → esm2022}/search/public-api.mjs +0 -0
  715. /package/{esm2020 → esm2022}/search/search.model.mjs +0 -0
  716. /package/{esm2020 → esm2022}/select/pepperi-addons-ngx-lib-select.mjs +0 -0
  717. /package/{esm2020 → esm2022}/select/public-api.mjs +0 -0
  718. /package/{esm2020 → esm2022}/select-panel/pepperi-addons-ngx-lib-select-panel.mjs +0 -0
  719. /package/{esm2020 → esm2022}/select-panel/public-api.mjs +0 -0
  720. /package/{esm2020 → esm2022}/select-panel/select-panel.model.mjs +0 -0
  721. /package/{esm2020 → esm2022}/separator/pepperi-addons-ngx-lib-separator.mjs +0 -0
  722. /package/{esm2020 → esm2022}/separator/public-api.mjs +0 -0
  723. /package/{esm2020 → esm2022}/side-bar/pepperi-addons-ngx-lib-side-bar.mjs +0 -0
  724. /package/{esm2020 → esm2022}/side-bar/public-api.mjs +0 -0
  725. /package/{esm2020 → esm2022}/side-bar/side-bar.model.mjs +0 -0
  726. /package/{esm2020 → esm2022}/signature/pepperi-addons-ngx-lib-signature.mjs +0 -0
  727. /package/{esm2020 → esm2022}/signature/public-api.mjs +0 -0
  728. /package/{esm2020 → esm2022}/size-detector/pepperi-addons-ngx-lib-size-detector.mjs +0 -0
  729. /package/{esm2020 → esm2022}/size-detector/public-api.mjs +0 -0
  730. /package/{esm2020 → esm2022}/skeleton-loader/pepperi-addons-ngx-lib-skeleton-loader.mjs +0 -0
  731. /package/{esm2020 → esm2022}/skeleton-loader/public-api.mjs +0 -0
  732. /package/{esm2020 → esm2022}/slider/pepperi-addons-ngx-lib-slider.mjs +0 -0
  733. /package/{esm2020 → esm2022}/slider/public-api.mjs +0 -0
  734. /package/{esm2020 → esm2022}/smart-filters/common/model/creator.mjs +0 -0
  735. /package/{esm2020 → esm2022}/smart-filters/common/model/filter.mjs +0 -0
  736. /package/{esm2020 → esm2022}/smart-filters/common/model/type.mjs +0 -0
  737. /package/{esm2020 → esm2022}/smart-filters/pepperi-addons-ngx-lib-smart-filters.mjs +0 -0
  738. /package/{esm2020 → esm2022}/smart-filters/public-api.mjs +0 -0
  739. /package/{esm2020 → esm2022}/snack-bar/pepperi-addons-ngx-lib-snack-bar.mjs +0 -0
  740. /package/{esm2020 → esm2022}/snack-bar/public-api.mjs +0 -0
  741. /package/{esm2020 → esm2022}/textarea/pepperi-addons-ngx-lib-textarea.mjs +0 -0
  742. /package/{esm2020 → esm2022}/textarea/public-api.mjs +0 -0
  743. /package/{esm2020 → esm2022}/textbox/pepperi-addons-ngx-lib-textbox.mjs +0 -0
  744. /package/{esm2020 → esm2022}/textbox/public-api.mjs +0 -0
  745. /package/{esm2020 → esm2022}/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.mjs +0 -0
  746. /package/{esm2020 → esm2022}/textbox-icon/public-api.mjs +0 -0
  747. /package/{esm2020 → esm2022}/top-bar/pepperi-addons-ngx-lib-top-bar.mjs +0 -0
  748. /package/{esm2020 → esm2022}/top-bar/public-api.mjs +0 -0
  749. /package/{esm2020 → esm2022}/top-bar/top-bar.model.mjs +0 -0
@@ -0,0 +1,83 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ReactiveFormsModule } from '@angular/forms';
4
+ import { MatCommonModule } from '@angular/material/core';
5
+ import { MatFormFieldModule } from '@angular/material/form-field';
6
+ import { MatInputModule } from '@angular/material/input';
7
+ import { MatButtonModule } from '@angular/material/button';
8
+ import { MatBadgeModule } from '@angular/material/badge';
9
+ import { MatIconModule } from '@angular/material/icon';
10
+ import { PepNgxLibModule } from '@pepperi-addons/ngx-lib';
11
+ import { PepIconModule, pepIconNumberMinus, pepIconNumberPlus, } from '@pepperi-addons/ngx-lib/icon';
12
+ import { PepFieldTitleModule } from '@pepperi-addons/ngx-lib/field-title';
13
+ import { PepQuantitySelectorComponent } from './quantity-selector.component';
14
+ import { PepQuantitySelectorValidationDirective } from './quantity-selector-validation.directive';
15
+ import { PepQuantitySelectorNumberPipe } from './quantity-selector.pipes';
16
+ import * as i0 from "@angular/core";
17
+ import * as i1 from "@pepperi-addons/ngx-lib/icon";
18
+ export class PepQuantitySelectorModule {
19
+ pepIconRegistry;
20
+ constructor(pepIconRegistry) {
21
+ this.pepIconRegistry = pepIconRegistry;
22
+ this.pepIconRegistry.registerIcons([
23
+ pepIconNumberMinus,
24
+ pepIconNumberPlus,
25
+ ]);
26
+ }
27
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQuantitySelectorModule, deps: [{ token: i1.PepIconRegistry }], target: i0.ɵɵFactoryTarget.NgModule });
28
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PepQuantitySelectorModule, declarations: [PepQuantitySelectorComponent,
29
+ PepQuantitySelectorNumberPipe,
30
+ PepQuantitySelectorValidationDirective], imports: [CommonModule,
31
+ ReactiveFormsModule,
32
+ // Material modules
33
+ MatCommonModule,
34
+ MatFormFieldModule,
35
+ MatInputModule,
36
+ MatButtonModule,
37
+ MatBadgeModule,
38
+ MatIconModule,
39
+ // ngx-lib modules
40
+ PepNgxLibModule,
41
+ PepIconModule,
42
+ PepFieldTitleModule], exports: [PepQuantitySelectorComponent] });
43
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQuantitySelectorModule, imports: [CommonModule,
44
+ ReactiveFormsModule,
45
+ // Material modules
46
+ MatCommonModule,
47
+ MatFormFieldModule,
48
+ MatInputModule,
49
+ MatButtonModule,
50
+ MatBadgeModule,
51
+ MatIconModule,
52
+ // ngx-lib modules
53
+ PepNgxLibModule,
54
+ PepIconModule,
55
+ PepFieldTitleModule] });
56
+ }
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQuantitySelectorModule, decorators: [{
58
+ type: NgModule,
59
+ args: [{
60
+ imports: [
61
+ CommonModule,
62
+ ReactiveFormsModule,
63
+ // Material modules
64
+ MatCommonModule,
65
+ MatFormFieldModule,
66
+ MatInputModule,
67
+ MatButtonModule,
68
+ MatBadgeModule,
69
+ MatIconModule,
70
+ // ngx-lib modules
71
+ PepNgxLibModule,
72
+ PepIconModule,
73
+ PepFieldTitleModule,
74
+ ],
75
+ exports: [PepQuantitySelectorComponent],
76
+ declarations: [
77
+ PepQuantitySelectorComponent,
78
+ PepQuantitySelectorNumberPipe,
79
+ PepQuantitySelectorValidationDirective,
80
+ ],
81
+ }]
82
+ }], ctorParameters: function () { return [{ type: i1.PepIconRegistry }]; } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbnRpdHktc2VsZWN0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9xdWFudGl0eS1zZWxlY3Rvci9xdWFudGl0eS1zZWxlY3Rvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUNILGFBQWEsRUFFYixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ3BCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFMUUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQXlCMUUsTUFBTSxPQUFPLHlCQUF5QjtJQUNkO0lBQXBCLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoRCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQztZQUMvQixrQkFBa0I7WUFDbEIsaUJBQWlCO1NBQ3BCLENBQUMsQ0FBQztJQUNQLENBQUM7d0dBTlEseUJBQXlCO3lHQUF6Qix5QkFBeUIsaUJBTDlCLDRCQUE0QjtZQUM1Qiw2QkFBNkI7WUFDN0Isc0NBQXNDLGFBbEJ0QyxZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxlQUFlO1lBQ2YsY0FBYztZQUNkLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsZUFBZTtZQUNmLGFBQWE7WUFDYixtQkFBbUIsYUFFYiw0QkFBNEI7eUdBTzdCLHlCQUF5QixZQXJCOUIsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsZUFBZTtZQUNmLGNBQWM7WUFDZCxhQUFhO1lBQ2Isa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZixhQUFhO1lBQ2IsbUJBQW1COzs0RkFTZCx5QkFBeUI7a0JBdkJyQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixtQkFBbUI7cUJBQ3RCO29CQUNELE9BQU8sRUFBRSxDQUFDLDRCQUE0QixDQUFDO29CQUN2QyxZQUFZLEVBQUU7d0JBQ1YsNEJBQTRCO3dCQUM1Qiw2QkFBNkI7d0JBQzdCLHNDQUFzQztxQkFDekM7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE1hdENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRCYWRnZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JhZGdlJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcblxuaW1wb3J0IHsgUGVwTmd4TGliTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHtcbiAgICBQZXBJY29uTW9kdWxlLFxuICAgIFBlcEljb25SZWdpc3RyeSxcbiAgICBwZXBJY29uTnVtYmVyTWludXMsXG4gICAgcGVwSWNvbk51bWJlclBsdXMsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuaW1wb3J0IHsgUGVwRmllbGRUaXRsZU1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ZpZWxkLXRpdGxlJztcblxuaW1wb3J0IHsgUGVwUXVhbnRpdHlTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vcXVhbnRpdHktc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcFF1YW50aXR5U2VsZWN0b3JWYWxpZGF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9xdWFudGl0eS1zZWxlY3Rvci12YWxpZGF0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQZXBRdWFudGl0eVNlbGVjdG9yTnVtYmVyUGlwZSB9IGZyb20gJy4vcXVhbnRpdHktc2VsZWN0b3IucGlwZXMnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICAvLyBNYXRlcmlhbCBtb2R1bGVzXG4gICAgICAgIE1hdENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRCYWRnZU1vZHVsZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgLy8gbmd4LWxpYiBtb2R1bGVzXG4gICAgICAgIFBlcE5neExpYk1vZHVsZSxcbiAgICAgICAgUGVwSWNvbk1vZHVsZSxcbiAgICAgICAgUGVwRmllbGRUaXRsZU1vZHVsZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtQZXBRdWFudGl0eVNlbGVjdG9yQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgUGVwUXVhbnRpdHlTZWxlY3RvckNvbXBvbmVudCxcbiAgICAgICAgUGVwUXVhbnRpdHlTZWxlY3Rvck51bWJlclBpcGUsXG4gICAgICAgIFBlcFF1YW50aXR5U2VsZWN0b3JWYWxpZGF0aW9uRGlyZWN0aXZlLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBlcFF1YW50aXR5U2VsZWN0b3JNb2R1bGUge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcGVwSWNvblJlZ2lzdHJ5OiBQZXBJY29uUmVnaXN0cnkpIHtcbiAgICAgICAgdGhpcy5wZXBJY29uUmVnaXN0cnkucmVnaXN0ZXJJY29ucyhbXG4gICAgICAgICAgICBwZXBJY29uTnVtYmVyTWludXMsXG4gICAgICAgICAgICBwZXBJY29uTnVtYmVyUGx1cyxcbiAgICAgICAgXSk7XG4gICAgfVxufVxuIl19
@@ -13,11 +13,11 @@ export class PepQuantitySelectorNumberPipe {
13
13
  return parseInt(value).toString();
14
14
  }
15
15
  }
16
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQuantitySelectorNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
17
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: PepQuantitySelectorNumberPipe, name: "pepQuantitySelectorNumber" });
16
18
  }
17
- PepQuantitySelectorNumberPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepQuantitySelectorNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
18
- PepQuantitySelectorNumberPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: PepQuantitySelectorNumberPipe, name: "pepQuantitySelectorNumber" });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PepQuantitySelectorNumberPipe, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQuantitySelectorNumberPipe, decorators: [{
20
20
  type: Pipe,
21
21
  args: [{ name: 'pepQuantitySelectorNumber' }]
22
22
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbnRpdHktc2VsZWN0b3IucGlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1YW50aXR5LXNlbGVjdG9yL3F1YW50aXR5LXNlbGVjdG9yLnBpcGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUdwRCxNQUFNLE9BQU8sNkJBQTZCO0lBQ3RDLFNBQVMsQ0FBQyxLQUFhLEVBQUUsWUFBcUI7UUFDMUMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5DLElBQUksUUFBUSxLQUFLLENBQUMsRUFBRTtZQUNoQixPQUFPLEdBQUcsQ0FBQztTQUNkO2FBQU0sSUFBSSxZQUFZLEVBQUU7WUFDckIsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDOUI7YUFBTTtZQUNILE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQzs7MkhBWFEsNkJBQTZCO3lIQUE3Qiw2QkFBNkI7NEZBQTdCLDZCQUE2QjtrQkFEekMsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSwyQkFBMkIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoeyBuYW1lOiAncGVwUXVhbnRpdHlTZWxlY3Rvck51bWJlcicgfSlcbmV4cG9ydCBjbGFzcyBQZXBRdWFudGl0eVNlbGVjdG9yTnVtYmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBhbGxvd0RlY2ltYWw6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB0bXBWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuXG4gICAgICAgIGlmICh0bXBWYWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuICcwJztcbiAgICAgICAgfSBlbHNlIGlmIChhbGxvd0RlY2ltYWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0bXBWYWx1ZS50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbnRpdHktc2VsZWN0b3IucGlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1YW50aXR5LXNlbGVjdG9yL3F1YW50aXR5LXNlbGVjdG9yLnBpcGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUdwRCxNQUFNLE9BQU8sNkJBQTZCO0lBQ3RDLFNBQVMsQ0FBQyxLQUFhLEVBQUUsWUFBcUI7UUFDMUMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5DLElBQUksUUFBUSxLQUFLLENBQUMsRUFBRTtZQUNoQixPQUFPLEdBQUcsQ0FBQztTQUNkO2FBQU0sSUFBSSxZQUFZLEVBQUU7WUFDckIsT0FBTyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDOUI7YUFBTTtZQUNILE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQzt3R0FYUSw2QkFBNkI7c0dBQTdCLDZCQUE2Qjs7NEZBQTdCLDZCQUE2QjtrQkFEekMsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSwyQkFBMkIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoeyBuYW1lOiAncGVwUXVhbnRpdHlTZWxlY3Rvck51bWJlcicgfSlcbmV4cG9ydCBjbGFzcyBQZXBRdWFudGl0eVNlbGVjdG9yTnVtYmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCBhbGxvd0RlY2ltYWw6IGJvb2xlYW4pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB0bXBWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuXG4gICAgICAgIGlmICh0bXBWYWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuICcwJztcbiAgICAgICAgfSBlbHNlIGlmIChhbGxvd0RlY2ltYWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0bXBWYWx1ZS50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,28 @@
1
+ export class PepQueryBuilderTypeMap {
2
+ map;
3
+ constructor() {
4
+ this.loadTypes();
5
+ }
6
+ loadTypes() {
7
+ this.map = new Map();
8
+ this.map.set('Bool', 'boolean');
9
+ this.map.set('JsonBool', 'boolean');
10
+ this.map.set('Integer', 'int');
11
+ this.map.set('Double', 'real');
12
+ this.map.set('String', 'text');
13
+ this.map.set('Guid', 'text');
14
+ this.map.set('Date', 'date');
15
+ this.map.set('DateTime', 'date-time');
16
+ this.map.set('MultipleStringValues', 'multi-select');
17
+ }
18
+ /**
19
+ * Converts legacy field type to smart filter type
20
+ * @param type legacy type
21
+ * @returns smart filter field type
22
+ */
23
+ getSmartFilterType(key) {
24
+ const item = this.map.get(key);
25
+ return item ? item : null;
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL21vZGVsL3R5cGUtbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyxzQkFBc0I7SUFDdkIsR0FBRyxDQUFrQztJQUU3QztRQUNJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sU0FBUztRQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFDLEdBQVc7UUFDMUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBlcFNtYXJ0RmlsdGVyVHlwZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMnO1xuXG5cbmV4cG9ydCBjbGFzcyBQZXBRdWVyeUJ1aWxkZXJUeXBlTWFwIHtcbiAgICBwcml2YXRlIG1hcDogTWFwPHN0cmluZywgUGVwU21hcnRGaWx0ZXJUeXBlPjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmxvYWRUeXBlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFR5cGVzKCkge1xuICAgICAgICB0aGlzLm1hcCA9IG5ldyBNYXA8c3RyaW5nLCBQZXBTbWFydEZpbHRlclR5cGU+KCk7XG4gICAgICAgIHRoaXMubWFwLnNldCgnQm9vbCcsICdib29sZWFuJyk7XG4gICAgICAgIHRoaXMubWFwLnNldCgnSnNvbkJvb2wnLCAnYm9vbGVhbicpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ0ludGVnZXInLCAnaW50Jyk7XG4gICAgICAgIHRoaXMubWFwLnNldCgnRG91YmxlJywgJ3JlYWwnKTtcbiAgICAgICAgdGhpcy5tYXAuc2V0KCdTdHJpbmcnLCAndGV4dCcpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ0d1aWQnLCAndGV4dCcpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ0RhdGUnLCAnZGF0ZScpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ0RhdGVUaW1lJywgJ2RhdGUtdGltZScpO1xuICAgICAgICB0aGlzLm1hcC5zZXQoJ011bHRpcGxlU3RyaW5nVmFsdWVzJywgJ211bHRpLXNlbGVjdCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGxlZ2FjeSBmaWVsZCB0eXBlIHRvIHNtYXJ0IGZpbHRlciB0eXBlXG4gICAgICogQHBhcmFtIHR5cGUgbGVnYWN5IHR5cGVcbiAgICAgKiBAcmV0dXJucyBzbWFydCBmaWx0ZXIgZmllbGQgdHlwZVxuICAgICAqL1xuICAgIGdldFNtYXJ0RmlsdGVyVHlwZShrZXk6IHN0cmluZyk6IFBlcFNtYXJ0RmlsdGVyVHlwZSB8IG51bGwge1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5tYXAuZ2V0KGtleSk7XG4gICAgICAgIHJldHVybiBpdGVtID8gaXRlbSA6IG51bGw7XG4gICAgfVxuXG59XG5cbiJdfQ==
@@ -0,0 +1,118 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { getLegacyOperator, getValueTypeOperator } from '../model/operator';
3
+ import { getLegacyOperationUnit } from '../model/operator-unit';
4
+ import { PepSmartFilterOperators, PepSmartFilterAdditionalOperators } from '@pepperi-addons/ngx-lib/smart-filters';
5
+ import * as i0 from "@angular/core";
6
+ export class PepOutputQueryService {
7
+ _complexIdCounter;
8
+ _expressionIdCounter;
9
+ constructor() {
10
+ //
11
+ }
12
+ /**
13
+ * generates a legacy query structure
14
+ * @param filters UI smart filters structure
15
+ * @returns legacy query
16
+ */
17
+ generateQuery(filters) {
18
+ this.initParams();
19
+ return this.sectionWalk(filters);
20
+ }
21
+ /**
22
+ * init params
23
+ */
24
+ initParams() {
25
+ this._complexIdCounter = 1;
26
+ this._expressionIdCounter = 1;
27
+ }
28
+ /**
29
+ * a recursive function dynamically builds legacy query structure
30
+ * @param current UI object represents either a section or filter component
31
+ * @returns section query data
32
+ */
33
+ sectionWalk(current) {
34
+ let section = null;
35
+ Object.keys(current).forEach(key => {
36
+ if (key.includes('item')) {
37
+ section = this.addToSection(section, {
38
+ ExpressionId: (this._expressionIdCounter++).toString(),
39
+ ApiName: current[key].smart.fieldId,
40
+ FieldType: (current[key].smart.operator.id === 'inv' &&
41
+ current[key].smart.fieldType === 'text') ? 'MultipleStringValues' : current[key].query.fieldType,
42
+ Operation: getLegacyOperator(current[key].smart.operator, current[key].smart.fieldType),
43
+ ValueType: getValueTypeOperator(current[key].smart.operator, current[key].smart.fieldType),
44
+ Values: this.getItemValues(current[key].smart)
45
+ }, current.operator);
46
+ }
47
+ else if (key.includes('section')) {
48
+ const childSection = this.sectionWalk(current[key]);
49
+ if (childSection) {
50
+ section = this.addToSection(section, childSection, current.operator);
51
+ }
52
+ }
53
+ });
54
+ return section;
55
+ }
56
+ /**
57
+ * adds a legacy filter object to the current query structure
58
+ * @param section section query data
59
+ * @param item filter item
60
+ * @param operator query operator
61
+ * @returns
62
+ */
63
+ addToSection(section, item, operator) {
64
+ return section ? this.createSection(section, item, operator) : item;
65
+ }
66
+ /**
67
+ * creates a legacy complex object
68
+ * @param left LeftNode object
69
+ * @param right RightNode object
70
+ * @param operator query operator
71
+ * @returns legacy complex object
72
+ */
73
+ createSection(left, right, operator) {
74
+ return {
75
+ ComplexId: (this._complexIdCounter++).toString(),
76
+ LeftNode: left,
77
+ RightNode: right,
78
+ Operation: operator
79
+ };
80
+ }
81
+ /**
82
+ * gets legacy filter values object
83
+ * @param current UI filter object's values
84
+ * @returns an array represents legacy values
85
+ */
86
+ getItemValues(current) {
87
+ let values = [];
88
+ if (current?.values?.first) {
89
+ if (current.operator === PepSmartFilterOperators.In) { //multi select
90
+ values = current.values.first;
91
+ }
92
+ else if (current.operator === PepSmartFilterOperators.InTheLast ||
93
+ current.operator === PepSmartFilterAdditionalOperators.InTheLastCalendar ||
94
+ current.operator === PepSmartFilterOperators.NotInTheLast ||
95
+ current.operator === PepSmartFilterAdditionalOperators.NotInTheLastCalendar ||
96
+ current.operator === PepSmartFilterOperators.DueIn ||
97
+ current.operator === PepSmartFilterOperators.NotDueIn) { //operation unit
98
+ values.push(current.values.first);
99
+ if (current.operatorUnit) {
100
+ values.push(getLegacyOperationUnit(current.operatorUnit));
101
+ }
102
+ }
103
+ else {
104
+ values.push(current.values.first);
105
+ if (current.values.second) {
106
+ values.push(current.values.second);
107
+ }
108
+ }
109
+ }
110
+ return values;
111
+ }
112
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepOutputQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
113
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepOutputQueryService });
114
+ }
115
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepOutputQueryService, decorators: [{
116
+ type: Injectable
117
+ }], ctorParameters: function () { return []; } });
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0LXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL3NlcnZpY2VzL291dHB1dC1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQ0FBaUMsRUFDcEMsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFJL0MsTUFBTSxPQUFPLHFCQUFxQjtJQUN0QixpQkFBaUIsQ0FBUztJQUMxQixvQkFBb0IsQ0FBUztJQUVyQztRQUNJLEVBQUU7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxPQUFZO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVTtRQUNkLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFdBQVcsQ0FBQyxPQUFZO1FBQzVCLElBQUksT0FBTyxHQUFxQyxJQUFJLENBQUM7UUFFckQsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN0QixPQUFPLEdBQUcsSUFB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QzNFLE9BQU8sQ0FBQyxRQUFRLEtBQUssdUJBQXVCLENBQUMsS0FBSztnQkFDbEQsT0FBTyxDQUFDLFFBQVEsS0FBSyx1QkFBdUIsQ0FBQyxRQUFRLEVBQ3ZELEVBQUUsNEJBQTRCO2dCQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRTtvQkFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztpQkFDN0Q7YUFDSjtpQkFBTTtnQkFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7b0JBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdEM7YUFDSjtTQUNKO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzt3R0FwSFEscUJBQXFCOzRHQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUGVwUXVlcnlTZWN0aW9uLCBJUGVwUXVlcnlJdGVtIH0gZnJvbSAnLi4vbW9kZWwvbGVnYWN5JztcbmltcG9ydCB7IGdldExlZ2FjeU9wZXJhdG9yLCBnZXRWYWx1ZVR5cGVPcGVyYXRvciB9IGZyb20gJy4uL21vZGVsL29wZXJhdG9yJztcbmltcG9ydCB7IFBlcE9wZXJhdG9yVHlwZXMgfSBmcm9tICcuLi9tb2RlbC90eXBlJztcbmltcG9ydCB7IGdldExlZ2FjeU9wZXJhdGlvblVuaXQgfSBmcm9tICcuLi9tb2RlbC9vcGVyYXRvci11bml0JztcbmltcG9ydCB7IFxuICAgIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLFxuICAgIFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9yc1xufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zbWFydC1maWx0ZXJzJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGVwT3V0cHV0UXVlcnlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9jb21wbGV4SWRDb3VudGVyOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfZXhwcmVzc2lvbklkQ291bnRlcjogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2VuZXJhdGVzIGEgbGVnYWN5IHF1ZXJ5IHN0cnVjdHVyZSBcbiAgICAgKiBAcGFyYW0gZmlsdGVycyBVSSBzbWFydCBmaWx0ZXJzIHN0cnVjdHVyZSAgICAgXG4gICAgICogQHJldHVybnMgbGVnYWN5IHF1ZXJ5XG4gICAgICovXG4gICAgZ2VuZXJhdGVRdWVyeShmaWx0ZXJzOiBhbnkpIHtcbiAgICAgICAgdGhpcy5pbml0UGFyYW1zKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc2VjdGlvbldhbGsoZmlsdGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaW5pdCBwYXJhbXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGluaXRQYXJhbXMoKSB7XG4gICAgICAgIHRoaXMuX2NvbXBsZXhJZENvdW50ZXIgPSAxO1xuICAgICAgICB0aGlzLl9leHByZXNzaW9uSWRDb3VudGVyID0gMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBhIHJlY3Vyc2l2ZSBmdW5jdGlvbiBkeW5hbWljYWxseSBidWlsZHMgbGVnYWN5IHF1ZXJ5IHN0cnVjdHVyZVxuICAgICAqIEBwYXJhbSBjdXJyZW50IFVJIG9iamVjdCByZXByZXNlbnRzIGVpdGhlciBhIHNlY3Rpb24gb3IgZmlsdGVyIGNvbXBvbmVudFxuICAgICAqIEByZXR1cm5zIHNlY3Rpb24gcXVlcnkgZGF0YVxuICAgICAqL1xuICAgIHByaXZhdGUgc2VjdGlvbldhbGsoY3VycmVudDogYW55KSB7XG4gICAgICAgIGxldCBzZWN0aW9uOiBJUGVwUXVlcnlTZWN0aW9uIHwgSVBlcFF1ZXJ5SXRlbSA9IG51bGw7XG5cbiAgICAgICAgT2JqZWN0LmtleXMoY3VycmVudCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgaWYgKGtleS5pbmNsdWRlcygnaXRlbScpKSB7XG4gICAgICAgICAgICAgICAgc2VjdGlvbiA9IHRoaXMuYWRkVG9TZWN0aW9uKHNlY3Rpb24sIHtcbiAgICAgICAgICAgICAgICAgICAgRXhwcmVzc2lvbklkOiAodGhpcy5fZXhwcmVzc2lvbklkQ291bnRlcisrKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBBcGlOYW1lOiBjdXJyZW50W2tleV0uc21hcnQuZmllbGRJZCxcbiAgICAgICAgICAgICAgICAgICAgRmllbGRUeXBlOiAoY3VycmVudFtrZXldLnNtYXJ0Lm9wZXJhdG9yLmlkID09PSAnaW52JyAmJiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFtrZXldLnNtYXJ0LmZpZWxkVHlwZSA9PT0gJ3RleHQnKSA/ICdNdWx0aXBsZVN0cmluZ1ZhbHVlcycgOiBjdXJyZW50W2tleV0ucXVlcnkuZmllbGRUeXBlLFxuICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb246IGdldExlZ2FjeU9wZXJhdG9yKGN1cnJlbnRba2V5XS5zbWFydC5vcGVyYXRvciwgY3VycmVudFtrZXldLnNtYXJ0LmZpZWxkVHlwZSksXG4gICAgICAgICAgICAgICAgICAgIFZhbHVlVHlwZTogZ2V0VmFsdWVUeXBlT3BlcmF0b3IoY3VycmVudFtrZXldLnNtYXJ0Lm9wZXJhdG9yLCBjdXJyZW50W2tleV0uc21hcnQuZmllbGRUeXBlKSxcbiAgICAgICAgICAgICAgICAgICAgVmFsdWVzOiB0aGlzLmdldEl0ZW1WYWx1ZXMoY3VycmVudFtrZXldLnNtYXJ0KVxuICAgICAgICAgICAgICAgIH0gYXMgSVBlcFF1ZXJ5SXRlbSwgY3VycmVudC5vcGVyYXRvcik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5pbmNsdWRlcygnc2VjdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRTZWN0aW9uID0gdGhpcy5zZWN0aW9uV2FsayhjdXJyZW50W2tleV0pO1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZFNlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbiA9IHRoaXMuYWRkVG9TZWN0aW9uKHNlY3Rpb24sIGNoaWxkU2VjdGlvbiwgY3VycmVudC5vcGVyYXRvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gc2VjdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBhZGRzIGEgbGVnYWN5IGZpbHRlciBvYmplY3QgdG8gdGhlIGN1cnJlbnQgcXVlcnkgc3RydWN0dXJlXG4gICAgICogQHBhcmFtIHNlY3Rpb24gc2VjdGlvbiBxdWVyeSBkYXRhXG4gICAgICogQHBhcmFtIGl0ZW0gZmlsdGVyIGl0ZW1cbiAgICAgKiBAcGFyYW0gb3BlcmF0b3IgcXVlcnkgb3BlcmF0b3JcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBwcml2YXRlIGFkZFRvU2VjdGlvbihzZWN0aW9uOiBhbnksIGl0ZW06IGFueSwgb3BlcmF0b3I6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiBzZWN0aW9uID8gdGhpcy5jcmVhdGVTZWN0aW9uKHNlY3Rpb24sIGl0ZW0sIG9wZXJhdG9yKSA6IGl0ZW07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBhIGxlZ2FjeSBjb21wbGV4IG9iamVjdFxuICAgICAqIEBwYXJhbSBsZWZ0IExlZnROb2RlIG9iamVjdFxuICAgICAqIEBwYXJhbSByaWdodCBSaWdodE5vZGUgb2JqZWN0XG4gICAgICogQHBhcmFtIG9wZXJhdG9yIHF1ZXJ5IG9wZXJhdG9yXG4gICAgICogQHJldHVybnMgbGVnYWN5IGNvbXBsZXggb2JqZWN0XG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVTZWN0aW9uKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgb3BlcmF0b3I6IHN0cmluZyk6IElQZXBRdWVyeVNlY3Rpb24ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgQ29tcGxleElkOiAodGhpcy5fY29tcGxleElkQ291bnRlcisrKS50b1N0cmluZygpLFxuICAgICAgICAgICAgTGVmdE5vZGU6IGxlZnQsXG4gICAgICAgICAgICBSaWdodE5vZGU6IHJpZ2h0LFxuICAgICAgICAgICAgT3BlcmF0aW9uOiA8UGVwT3BlcmF0b3JUeXBlcz5vcGVyYXRvclxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0cyBsZWdhY3kgZmlsdGVyIHZhbHVlcyBvYmplY3RcbiAgICAgKiBAcGFyYW0gY3VycmVudCBVSSBmaWx0ZXIgb2JqZWN0J3MgdmFsdWVzXG4gICAgICogQHJldHVybnMgYW4gYXJyYXkgcmVwcmVzZW50cyBsZWdhY3kgdmFsdWVzXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRJdGVtVmFsdWVzKGN1cnJlbnQ6IGFueSkge1xuICAgICAgICBsZXQgdmFsdWVzOiBhbnlbXSA9IFtdO1xuXG4gICAgICAgIGlmIChjdXJyZW50Py52YWx1ZXM/LmZpcnN0KSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudC5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSW4pIHsgLy9tdWx0aSBzZWxlY3QgXG4gICAgICAgICAgICAgICAgdmFsdWVzID0gY3VycmVudC52YWx1ZXMuZmlyc3Q7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkluVGhlTGFzdCB8fFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycy5JblRoZUxhc3RDYWxlbmRhciB8fFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLk5vdEluVGhlTGFzdCB8fFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycy5Ob3RJblRoZUxhc3RDYWxlbmRhciB8fFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkR1ZUluIHx8XG4gICAgICAgICAgICAgICAgY3VycmVudC5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90RHVlSW5cbiAgICAgICAgICAgICkgeyAvL29wZXJhdGlvbiB1bml0ICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goY3VycmVudC52YWx1ZXMuZmlyc3QpO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Lm9wZXJhdG9yVW5pdCkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRMZWdhY3lPcGVyYXRpb25Vbml0KGN1cnJlbnQub3BlcmF0b3JVbml0KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChjdXJyZW50LnZhbHVlcy5maXJzdCk7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQudmFsdWVzLnNlY29uZCkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChjdXJyZW50LnZhbHVlcy5zZWNvbmQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfVxuXG59Il19
@@ -0,0 +1,263 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { FormControl, FormGroup } from '@angular/forms';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { PepQueryBuilderSectionComponent } from '../../query-builder-section/query-builder-section.component';
5
+ import { PepQueryBuilderItemComponent } from '../../query-builder-item/query-builder-item.component';
6
+ import { PepQueryBuilderTypeMap } from '../../common/model/type-map';
7
+ import { PepOperatorTypes } from '../../common/model/type';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../common/services/output-query.service";
10
+ import * as i2 from "../../query-builder.service";
11
+ const MAX_STRUCTURE_DEPTH = 3;
12
+ export class PepQueryStructureService {
13
+ _resolver;
14
+ _outputQueryService;
15
+ _queryBuilderService;
16
+ _outputQuery$ = new BehaviorSubject(null);
17
+ _smartFilterFields;
18
+ _variableFields = {};
19
+ _form;
20
+ _maxStructureDepth = MAX_STRUCTURE_DEPTH;
21
+ _cmpRefMap = new Map();
22
+ outputQuery$ = this._outputQuery$.asObservable();
23
+ constructor(_resolver, _outputQueryService, _queryBuilderService) {
24
+ this._resolver = _resolver;
25
+ this._outputQueryService = _outputQueryService;
26
+ this._queryBuilderService = _queryBuilderService;
27
+ }
28
+ set maxDepth(value) {
29
+ this._maxStructureDepth = value;
30
+ }
31
+ get maxDepth() {
32
+ return this._maxStructureDepth;
33
+ }
34
+ set fields(list) {
35
+ this._smartFilterFields = this._queryBuilderService.convertToSmartFilterFields(list);
36
+ }
37
+ get hasFields() {
38
+ return this._smartFilterFields?.length > 0;
39
+ }
40
+ set variableFields(list) {
41
+ if (list?.length) {
42
+ const typeMapper = new PepQueryBuilderTypeMap();
43
+ list.forEach(field => {
44
+ const fieldType = this.convertSmartFilterComponentType(typeMapper.getSmartFilterType(field.FieldType));
45
+ if (this.hasProperty(this._variableFields, fieldType)) {
46
+ if (!this._variableFields[fieldType].includes(field.FieldID)) {
47
+ this._variableFields[fieldType].push(field.FieldID);
48
+ }
49
+ }
50
+ else {
51
+ this._variableFields[fieldType] = [field.FieldID];
52
+ }
53
+ });
54
+ }
55
+ this._cmpRefMap.forEach((value, key) => {
56
+ if (value.instance.variableFields) {
57
+ Object.keys(value.instance.variableFields).forEach(function (key, index) {
58
+ value.instance.variableFields[key] = JSON.parse(JSON.stringify(value.instance.variableFields[key]));
59
+ });
60
+ }
61
+ });
62
+ }
63
+ set form(value) {
64
+ this._form = value;
65
+ }
66
+ get form() {
67
+ return this._form;
68
+ }
69
+ /**
70
+ * builds a dynamic UI query structure
71
+ * might has a different structure than the query's due to parent-child elements merge
72
+ * @param query legacy query
73
+ * @param containerRef reference to root element
74
+ */
75
+ buildQueryStructure(query, containerRef) {
76
+ // Remove all the components from the query builder.
77
+ this._cmpRefMap.forEach((value, key) => {
78
+ // console.log(key, value);
79
+ // value.instance.remove();
80
+ if (value.instance.parentForm) {
81
+ value.instance.parentForm.removeControl(key);
82
+ }
83
+ value.destroy();
84
+ this._cmpRefMap.delete(key);
85
+ });
86
+ // Clear containerRef
87
+ containerRef.clear();
88
+ //update root operator
89
+ if (this.hasProperty(query, 'ComplexId') &&
90
+ query?.Operation &&
91
+ query.Operation !== this._form.get('operator').value) {
92
+ this._form.get('operator').setValue(query.Operation);
93
+ }
94
+ this.flatten(this._form.get('operator').value, query, containerRef, this._form, 0);
95
+ }
96
+ /**
97
+ * checks if the object contains property
98
+ * @param obj object
99
+ * @param prop property name
100
+ * @returns true if contains, false otherwise
101
+ */
102
+ hasProperty(obj, prop) {
103
+ return Object.prototype.hasOwnProperty.call(obj, prop);
104
+ }
105
+ /**
106
+ * a recursive function dynamically builds UI filters structure
107
+ * @param parentOperator parent legacy complex operator
108
+ * @param current child legacy object (either another complex or expression type)
109
+ * @param containerRef parent element
110
+ * @param parentForm parent form
111
+ */
112
+ flatten(parentOperator, current, containerRef, parentForm, depth) {
113
+ if (this.hasProperty(current, 'ComplexId')) {
114
+ const section = current;
115
+ if (parentOperator === current.Operation) {
116
+ this.flatten(current.Operation, section.LeftNode, containerRef, parentForm, depth);
117
+ this.flatten(current.Operation, section.RightNode, containerRef, parentForm, depth);
118
+ }
119
+ else {
120
+ const result = this.createSection(section.Operation, containerRef, parentForm, depth + 1);
121
+ this.flatten(section.Operation, section.LeftNode, result.containerRef, result.parentForm, depth + 1);
122
+ this.flatten(section.Operation, section.RightNode, result.containerRef, result.parentForm, depth + 1);
123
+ }
124
+ }
125
+ else if (this.hasProperty(current, 'ExpressionId')) {
126
+ this.createItem(current, containerRef, parentForm);
127
+ }
128
+ }
129
+ /**
130
+ * creates a container object of two or more child filter items
131
+ * @param operator AND/OR operator
132
+ * @param containerRef parent element
133
+ * @param parentForm parent form
134
+ * @param depth
135
+ * @returns an object containing the current element and current form
136
+ */
137
+ createSection(operator, containerRef, parentForm, depth) {
138
+ const factory = this._resolver.resolveComponentFactory(PepQueryBuilderSectionComponent);
139
+ const componentRef = containerRef.createComponent(factory);
140
+ // const sectionGroup = this._fb.group({
141
+ // operator: this._fb.control(operator)
142
+ // });
143
+ const sectionGroup = new FormGroup({
144
+ operator: new FormControl(operator)
145
+ });
146
+ let counter = 1;
147
+ Object.keys(parentForm.controls).forEach(item => { if (item.includes('section')) {
148
+ counter++;
149
+ } });
150
+ const formKey = `section${counter}`;
151
+ parentForm.addControl(formKey, sectionGroup);
152
+ componentRef.instance.form = sectionGroup;
153
+ componentRef.instance.depth = {
154
+ current: depth,
155
+ max: this._maxStructureDepth
156
+ };
157
+ componentRef.instance.createSection.subscribe(() => {
158
+ const section = this.createSection(PepOperatorTypes.And, componentRef.instance.sectionContainer, sectionGroup, depth + 1);
159
+ this.createItem(null, section.containerRef, section.parentForm);
160
+ });
161
+ componentRef.instance.createItem.subscribe(() => {
162
+ this.createItem(null, componentRef.instance.sectionContainer, sectionGroup);
163
+ });
164
+ componentRef.instance.remove.subscribe(() => {
165
+ parentForm.removeControl(formKey);
166
+ componentRef.destroy();
167
+ this.createOutputQuery();
168
+ if (this._cmpRefMap.has(formKey)) {
169
+ this._cmpRefMap.delete(formKey);
170
+ }
171
+ });
172
+ componentRef.instance.operatorChange.subscribe(() => {
173
+ this.createOutputQuery();
174
+ });
175
+ // Add this to remove all the components when fields changes.
176
+ this._cmpRefMap.set(formKey, componentRef);
177
+ return {
178
+ containerRef: componentRef.instance.sectionContainer,
179
+ parentForm: sectionGroup
180
+ };
181
+ }
182
+ /**
183
+ * creates a component represents filter item (leaf element - has no childs)
184
+ * @param current filter legacy element
185
+ * @param containerRef parent element
186
+ * @param parentForm parent form
187
+ */
188
+ createItem(current, containerRef, parentForm) {
189
+ const factory = this._resolver.resolveComponentFactory(PepQueryBuilderItemComponent);
190
+ const componentRef = containerRef.createComponent(factory);
191
+ let counter = 1;
192
+ Object.keys(parentForm.controls).forEach(item => { if (item.includes('item')) {
193
+ counter++;
194
+ } });
195
+ const formKey = `item${counter}`;
196
+ componentRef.instance.formKey = formKey;
197
+ componentRef.instance.fields = this._smartFilterFields;
198
+ componentRef.instance.variableFields = this._variableFields;
199
+ const selectedField = this.getSelectedField(current);
200
+ if (selectedField) {
201
+ componentRef.instance.selected = selectedField;
202
+ if (current) {
203
+ componentRef.instance.filter = this._queryBuilderService.getFilter(current, selectedField.smart);
204
+ }
205
+ }
206
+ componentRef.instance.parentForm = parentForm;
207
+ componentRef.instance.filterChange.subscribe(() => {
208
+ this.createOutputQuery();
209
+ });
210
+ componentRef.instance.remove.subscribe(() => {
211
+ parentForm.removeControl(formKey);
212
+ componentRef.destroy();
213
+ this.createOutputQuery();
214
+ if (this._cmpRefMap.has(formKey)) {
215
+ this._cmpRefMap.delete(formKey);
216
+ }
217
+ });
218
+ // Add this to remove all the components when fields changes.
219
+ this._cmpRefMap.set(formKey, componentRef);
220
+ }
221
+ /**
222
+ * get smart filter field
223
+ * @param current filter legacy element
224
+ * @returns smart filter field, if not found returns the first field
225
+ */
226
+ getSelectedField(current) {
227
+ if (current) {
228
+ const item = this._smartFilterFields.find(field => field.smart.id === current.ApiName);
229
+ return item ? item : this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;
230
+ }
231
+ else {
232
+ return this._smartFilterFields?.length > 0 ? this._smartFilterFields[0] : null;
233
+ }
234
+ }
235
+ convertSmartFilterComponentType(type) {
236
+ switch (type) {
237
+ case 'int':
238
+ case 'currency':
239
+ case 'real':
240
+ case 'percentage':
241
+ return 'number';
242
+ case 'date-time':
243
+ return 'date';
244
+ default:
245
+ return type;
246
+ }
247
+ }
248
+ /**
249
+ * creates a legacy output query
250
+ */
251
+ createOutputQuery() {
252
+ if (this._form.valid) {
253
+ const query = this._outputQueryService.generateQuery(this._form.value);
254
+ this._outputQuery$.next(query);
255
+ }
256
+ }
257
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQueryStructureService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.PepOutputQueryService }, { token: i2.PepQueryBuilderService }], target: i0.ɵɵFactoryTarget.Injectable });
258
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQueryStructureService });
259
+ }
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PepQueryStructureService, decorators: [{
261
+ type: Injectable
262
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.PepOutputQueryService }, { type: i2.PepQueryBuilderService }]; } });
263
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RydWN0dXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL3NlcnZpY2VzL3F1ZXJ5LXN0cnVjdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTRELE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUt2QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVyRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUUzRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUc5QixNQUFNLE9BQU8sd0JBQXdCO0lBYXJCO0lBQ0E7SUFDQTtJQWRKLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBbUMsSUFBSSxDQUFDLENBQUM7SUFFNUUsa0JBQWtCLENBQXdDO0lBQzFELGVBQWUsR0FBUSxFQUFFLENBQUM7SUFDMUIsS0FBSyxDQUFZO0lBQ2pCLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDO0lBRXpDLFVBQVUsR0FBbUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUV4RCxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUV4RCxZQUNZLFNBQW1DLEVBQ25DLG1CQUEwQyxFQUMxQyxvQkFBNEM7UUFGNUMsY0FBUyxHQUFULFNBQVMsQ0FBMEI7UUFDbkMsd0JBQW1CLEdBQW5CLG1C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O2dCQUNJLE9BQU8sSUFBSSxDQUFDO1NBQ25CO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCO1FBQ2IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEM7SUFDTCxDQUFDO3dHQTFRUSx3QkFBd0I7NEdBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFZpZXdDb250YWluZXJSZWYsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJUGVwUXVlcnlCdWlsZGVyRmllbGQsIElQZXBRdWVyeVNlY3Rpb24sIElQZXBRdWVyeUl0ZW0gfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvbGVnYWN5JztcbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9xdWVyeS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwT3V0cHV0UXVlcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL291dHB1dC1xdWVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9xdWVyeS1idWlsZGVyLXNlY3Rpb24vcXVlcnktYnVpbGRlci1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcXVlcnktYnVpbGRlci1pdGVtL3F1ZXJ5LWJ1aWxkZXItaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSVBlcFF1ZXJ5QnVpbGRlckZpZWxkQ29udGFpbmVyIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVsL2ZpZWxkJztcbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlclR5cGVNYXAgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvdHlwZS1tYXAnO1xuaW1wb3J0IHsgUGVwT3BlcmF0b3JUeXBlcyB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC90eXBlJztcblxuY29uc3QgTUFYX1NUUlVDVFVSRV9ERVBUSCA9IDM7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQZXBRdWVyeVN0cnVjdHVyZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgX291dHB1dFF1ZXJ5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVBlcFF1ZXJ5U2VjdGlvbiB8IElQZXBRdWVyeUl0ZW0+KG51bGwpO1xuXG4gICAgcHJpdmF0ZSBfc21hcnRGaWx0ZXJGaWVsZHM6IEFycmF5PElQZXBRdWVyeUJ1aWxkZXJGaWVsZENvbnRhaW5lcj47XG4gICAgcHJpdmF0ZSBfdmFyaWFibGVGaWVsZHM6IGFueSA9IHt9O1xuICAgIHByaXZhdGUgX2Zvcm06IEZvcm1Hcm91cDtcbiAgICBwcml2YXRlIF9tYXhTdHJ1Y3R1cmVEZXB0aCA9IE1BWF9TVFJVQ1RVUkVfREVQVEg7XG5cbiAgICBwcml2YXRlIF9jbXBSZWZNYXA6IE1hcDxzdHJpbmcsIENvbXBvbmVudFJlZjxhbnk+PiA9IG5ldyBNYXAoKTtcblxuICAgIHB1YmxpYyBvdXRwdXRRdWVyeSQgPSB0aGlzLl9vdXRwdXRRdWVyeSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBfb3V0cHV0UXVlcnlTZXJ2aWNlOiBQZXBPdXRwdXRRdWVyeVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3F1ZXJ5QnVpbGRlclNlcnZpY2U6IFBlcFF1ZXJ5QnVpbGRlclNlcnZpY2UpIHtcblxuICAgIH1cblxuICAgIHNldCBtYXhEZXB0aCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9tYXhTdHJ1Y3R1cmVEZXB0aCA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBtYXhEZXB0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heFN0cnVjdHVyZURlcHRoO1xuICAgIH1cblxuICAgIHNldCBmaWVsZHMobGlzdDogQXJyYXk8SVBlcFF1ZXJ5QnVpbGRlckZpZWxkPikge1xuICAgICAgICB0aGlzLl9zbWFydEZpbHRlckZpZWxkcyA9IHRoaXMuX3F1ZXJ5QnVpbGRlclNlcnZpY2UuY29udmVydFRvU21hcnRGaWx0ZXJGaWVsZHMobGlzdCk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0ZpZWxkcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzPy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIHNldCB2YXJpYWJsZUZpZWxkcyhsaXN0OiBBcnJheTxJUGVwUXVlcnlCdWlsZGVyRmllbGQ+KSB7XG4gICAgICAgIGlmIChsaXN0Py5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVNYXBwZXIgPSBuZXcgUGVwUXVlcnlCdWlsZGVyVHlwZU1hcCgpO1xuICAgICAgICAgICAgbGlzdC5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZFR5cGUgPSB0aGlzLmNvbnZlcnRTbWFydEZpbHRlckNvbXBvbmVudFR5cGUodHlwZU1hcHBlci5nZXRTbWFydEZpbHRlclR5cGUoZmllbGQuRmllbGRUeXBlKSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzUHJvcGVydHkodGhpcy5fdmFyaWFibGVGaWVsZHMsIGZpZWxkVHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYoIXRoaXMuX3ZhcmlhYmxlRmllbGRzW2ZpZWxkVHlwZV0uaW5jbHVkZXMoZmllbGQuRmllbGRJRCkpe1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVGaWVsZHNbZmllbGRUeXBlXS5wdXNoKGZpZWxkLkZpZWxkSUQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVGaWVsZHNbZmllbGRUeXBlXSA9IFtmaWVsZC5GaWVsZElEXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NtcFJlZk1hcC5mb3JFYWNoKCh2YWx1ZTogQ29tcG9uZW50UmVmPGFueT4sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWUuaW5zdGFuY2UudmFyaWFibGVGaWVsZHMpIHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh2YWx1ZS5pbnN0YW5jZS52YXJpYWJsZUZpZWxkcykuZm9yRWFjaChmdW5jdGlvbihrZXksIGluZGV4KXtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUuaW5zdGFuY2UudmFyaWFibGVGaWVsZHNba2V5XSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsdWUuaW5zdGFuY2UudmFyaWFibGVGaWVsZHNba2V5XSkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXQgZm9ybSh2YWx1ZTogRm9ybUdyb3VwKSB7XG4gICAgICAgIHRoaXMuX2Zvcm0gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgZm9ybSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYnVpbGRzIGEgZHluYW1pYyBVSSBxdWVyeSBzdHJ1Y3R1cmVcbiAgICAgKiBtaWdodCBoYXMgYSBkaWZmZXJlbnQgc3RydWN0dXJlIHRoYW4gdGhlIHF1ZXJ5J3MgZHVlIHRvIHBhcmVudC1jaGlsZCBlbGVtZW50cyBtZXJnZVxuICAgICAqIEBwYXJhbSBxdWVyeSBsZWdhY3kgcXVlcnkgICAgIFxuICAgICAqIEBwYXJhbSBjb250YWluZXJSZWYgcmVmZXJlbmNlIHRvIHJvb3QgZWxlbWVudFxuICAgICAqL1xuICAgIGJ1aWxkUXVlcnlTdHJ1Y3R1cmUoXG4gICAgICAgIHF1ZXJ5OiBJUGVwUXVlcnlTZWN0aW9uIHwgSVBlcFF1ZXJ5SXRlbSxcbiAgICAgICAgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7XG4gICAgICAgIC8vIFJlbW92ZSBhbGwgdGhlIGNvbXBvbmVudHMgZnJvbSB0aGUgcXVlcnkgYnVpbGRlci5cbiAgICAgICAgdGhpcy5fY21wUmVmTWFwLmZvckVhY2goKHZhbHVlOiBDb21wb25lbnRSZWY8YW55Piwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgLy8gdmFsdWUuaW5zdGFuY2UucmVtb3ZlKCk7XG4gICAgICAgICAgICBpZiAodmFsdWUuaW5zdGFuY2UucGFyZW50Rm9ybSkge1xuICAgICAgICAgICAgICAgIHZhbHVlLmluc3RhbmNlLnBhcmVudEZvcm0ucmVtb3ZlQ29udHJvbChrZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFsdWUuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5fY21wUmVmTWFwLmRlbGV0ZShrZXkpO1xuICAgICAgICB9KTtcbiAgICAgICAgXG4gICAgICAgIC8vIENsZWFyIGNvbnRhaW5lclJlZlxuICAgICAgICBjb250YWluZXJSZWYuY2xlYXIoKTtcblxuICAgICAgICAvL3VwZGF0ZSByb290IG9wZXJhdG9yICAgICAgICBcbiAgICAgICAgaWYgKHRoaXMuaGFzUHJvcGVydHkocXVlcnksICdDb21wbGV4SWQnKSAmJlxuICAgICAgICAgICAgcXVlcnk/Lk9wZXJhdGlvbiAmJlxuICAgICAgICAgICAgcXVlcnkuT3BlcmF0aW9uICE9PSB0aGlzLl9mb3JtLmdldCgnb3BlcmF0b3InKS52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fZm9ybS5nZXQoJ29wZXJhdG9yJykuc2V0VmFsdWUocXVlcnkuT3BlcmF0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZsYXR0ZW4odGhpcy5fZm9ybS5nZXQoJ29wZXJhdG9yJykudmFsdWUsIHF1ZXJ5LCBjb250YWluZXJSZWYsIHRoaXMuX2Zvcm0sIDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogY2hlY2tzIGlmIHRoZSBvYmplY3QgY29udGFpbnMgcHJvcGVydHlcbiAgICAqIEBwYXJhbSBvYmogb2JqZWN0XG4gICAgKiBAcGFyYW0gcHJvcCBwcm9wZXJ0eSBuYW1lXG4gICAgKiBAcmV0dXJucyB0cnVlIGlmIGNvbnRhaW5zLCBmYWxzZSBvdGhlcndpc2VcbiAgICAqL1xuICAgIHByaXZhdGUgaGFzUHJvcGVydHkob2JqLCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBhIHJlY3Vyc2l2ZSBmdW5jdGlvbiBkeW5hbWljYWxseSBidWlsZHMgVUkgZmlsdGVycyBzdHJ1Y3R1cmVcbiAgICAgKiBAcGFyYW0gcGFyZW50T3BlcmF0b3IgcGFyZW50IGxlZ2FjeSBjb21wbGV4IG9wZXJhdG9yXG4gICAgICogQHBhcmFtIGN1cnJlbnQgY2hpbGQgbGVnYWN5IG9iamVjdCAoZWl0aGVyIGFub3RoZXIgY29tcGxleCBvciBleHByZXNzaW9uIHR5cGUpXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiBwYXJlbnQgZWxlbWVudFxuICAgICAqIEBwYXJhbSBwYXJlbnRGb3JtIHBhcmVudCBmb3JtXG4gICAgICovXG4gICAgcHJpdmF0ZSBmbGF0dGVuKHBhcmVudE9wZXJhdG9yOiBzdHJpbmcsIGN1cnJlbnQ6IElQZXBRdWVyeVNlY3Rpb24gfCBJUGVwUXVlcnlJdGVtLCBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHBhcmVudEZvcm06IEZvcm1Hcm91cCwgZGVwdGg6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5oYXNQcm9wZXJ0eShjdXJyZW50LCAnQ29tcGxleElkJykpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSBjdXJyZW50IGFzIElQZXBRdWVyeVNlY3Rpb247XG4gICAgICAgICAgICBpZiAocGFyZW50T3BlcmF0b3IgPT09IGN1cnJlbnQuT3BlcmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKGN1cnJlbnQuT3BlcmF0aW9uLCBzZWN0aW9uLkxlZnROb2RlLCBjb250YWluZXJSZWYsIHBhcmVudEZvcm0sIGRlcHRoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZsYXR0ZW4oY3VycmVudC5PcGVyYXRpb24sIHNlY3Rpb24uUmlnaHROb2RlLCBjb250YWluZXJSZWYsIHBhcmVudEZvcm0sIGRlcHRoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5jcmVhdGVTZWN0aW9uKHNlY3Rpb24uT3BlcmF0aW9uLCBjb250YWluZXJSZWYsIHBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKHNlY3Rpb24uT3BlcmF0aW9uLCBzZWN0aW9uLkxlZnROb2RlLCByZXN1bHQuY29udGFpbmVyUmVmLCByZXN1bHQucGFyZW50Rm9ybSwgZGVwdGggKyAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZsYXR0ZW4oc2VjdGlvbi5PcGVyYXRpb24sIHNlY3Rpb24uUmlnaHROb2RlLCByZXN1bHQuY29udGFpbmVyUmVmLCByZXN1bHQucGFyZW50Rm9ybSwgZGVwdGggKyAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmhhc1Byb3BlcnR5KGN1cnJlbnQsICdFeHByZXNzaW9uSWQnKSkge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVJdGVtKGN1cnJlbnQgYXMgSVBlcFF1ZXJ5SXRlbSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgYSBjb250YWluZXIgb2JqZWN0IG9mIHR3byBvciBtb3JlIGNoaWxkIGZpbHRlciBpdGVtc1xuICAgICAqIEBwYXJhbSBvcGVyYXRvciBBTkQvT1Igb3BlcmF0b3JcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyUmVmIHBhcmVudCBlbGVtZW50XG4gICAgICogQHBhcmFtIHBhcmVudEZvcm0gcGFyZW50IGZvcm1cbiAgICAgKiBAcGFyYW0gZGVwdGhcbiAgICAgKiBAcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudCBlbGVtZW50IGFuZCBjdXJyZW50IGZvcm1cbiAgICAgKi9cbiAgICBjcmVhdGVTZWN0aW9uKG9wZXJhdG9yOiBQZXBPcGVyYXRvclR5cGVzLCBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsIHBhcmVudEZvcm06IEZvcm1Hcm91cCwgZGVwdGg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5fcmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoUGVwUXVlcnlCdWlsZGVyU2VjdGlvbkNvbXBvbmVudCk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IGNvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG5cbiAgICAgICAgLy8gY29uc3Qgc2VjdGlvbkdyb3VwID0gdGhpcy5fZmIuZ3JvdXAoe1xuICAgICAgICAvLyAgICAgb3BlcmF0b3I6IHRoaXMuX2ZiLmNvbnRyb2wob3BlcmF0b3IpXG4gICAgICAgIC8vIH0pO1xuICAgICAgICBjb25zdCBzZWN0aW9uR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICAgIG9wZXJhdG9yOiBuZXcgRm9ybUNvbnRyb2wob3BlcmF0b3IpXG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgY291bnRlciA9IDE7XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmVudEZvcm0uY29udHJvbHMpLmZvckVhY2goaXRlbSA9PiB7IGlmIChpdGVtLmluY2x1ZGVzKCdzZWN0aW9uJykpIHsgY291bnRlcisrOyB9IH0pO1xuICAgICAgICBjb25zdCBmb3JtS2V5ID0gYHNlY3Rpb24ke2NvdW50ZXJ9YDtcbiAgICAgICAgcGFyZW50Rm9ybS5hZGRDb250cm9sKGZvcm1LZXksIHNlY3Rpb25Hcm91cCk7XG5cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmZvcm0gPSBzZWN0aW9uR3JvdXA7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5kZXB0aCA9IHtcbiAgICAgICAgICAgIGN1cnJlbnQ6IGRlcHRoLFxuICAgICAgICAgICAgbWF4OiB0aGlzLl9tYXhTdHJ1Y3R1cmVEZXB0aFxuICAgICAgICB9O1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY3JlYXRlU2VjdGlvbi5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuY3JlYXRlU2VjdGlvbihQZXBPcGVyYXRvclR5cGVzLkFuZCwgY29tcG9uZW50UmVmLmluc3RhbmNlLnNlY3Rpb25Db250YWluZXIsIHNlY3Rpb25Hcm91cCwgZGVwdGggKyAxKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSXRlbShudWxsLCBzZWN0aW9uLmNvbnRhaW5lclJlZiwgc2VjdGlvbi5wYXJlbnRGb3JtKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5jcmVhdGVJdGVtLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUl0ZW0obnVsbCwgY29tcG9uZW50UmVmLmluc3RhbmNlLnNlY3Rpb25Db250YWluZXIsIHNlY3Rpb25Hcm91cCk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucmVtb3ZlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBwYXJlbnRGb3JtLnJlbW92ZUNvbnRyb2woZm9ybUtleSk7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2NtcFJlZk1hcC5oYXMoZm9ybUtleSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jbXBSZWZNYXAuZGVsZXRlKGZvcm1LZXkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLm9wZXJhdG9yQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU91dHB1dFF1ZXJ5KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCB0aGlzIHRvIHJlbW92ZSBhbGwgdGhlIGNvbXBvbmVudHMgd2hlbiBmaWVsZHMgY2hhbmdlcy5cbiAgICAgICAgdGhpcy5fY21wUmVmTWFwLnNldChmb3JtS2V5LCBjb21wb25lbnRSZWYpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb250YWluZXJSZWY6IGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLFxuICAgICAgICAgICAgcGFyZW50Rm9ybTogc2VjdGlvbkdyb3VwXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBhIGNvbXBvbmVudCByZXByZXNlbnRzIGZpbHRlciBpdGVtIChsZWFmIGVsZW1lbnQgLSBoYXMgbm8gY2hpbGRzKVxuICAgICAqIEBwYXJhbSBjdXJyZW50IGZpbHRlciBsZWdhY3kgZWxlbWVudFxuICAgICAqIEBwYXJhbSBjb250YWluZXJSZWYgcGFyZW50IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gcGFyZW50Rm9ybSBwYXJlbnQgZm9ybVxuICAgICAqL1xuICAgIGNyZWF0ZUl0ZW0oY3VycmVudDogSVBlcFF1ZXJ5SXRlbSwgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXApIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX3Jlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFBlcFF1ZXJ5QnVpbGRlckl0ZW1Db21wb25lbnQpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuICAgICAgICBcbiAgICAgICAgbGV0IGNvdW50ZXIgPSAxO1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJlbnRGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGl0ZW0gPT4geyBpZiAoaXRlbS5pbmNsdWRlcygnaXRlbScpKSB7IGNvdW50ZXIrKzsgfSB9KTtcbiAgICAgICAgY29uc3QgZm9ybUtleSA9IGBpdGVtJHtjb3VudGVyfWA7XG5cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmZvcm1LZXkgPSBmb3JtS2V5O1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmllbGRzID0gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHM7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS52YXJpYWJsZUZpZWxkcyA9IHRoaXMuX3ZhcmlhYmxlRmllbGRzO1xuICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkID0gdGhpcy5nZXRTZWxlY3RlZEZpZWxkKGN1cnJlbnQpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRGaWVsZCkge1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnNlbGVjdGVkID0gc2VsZWN0ZWRGaWVsZDtcbiAgICAgICAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmZpbHRlciA9IHRoaXMuX3F1ZXJ5QnVpbGRlclNlcnZpY2UuZ2V0RmlsdGVyKGN1cnJlbnQsIHNlbGVjdGVkRmllbGQuc21hcnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5wYXJlbnRGb3JtID0gcGFyZW50Rm9ybTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmZpbHRlckNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnJlbW92ZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgcGFyZW50Rm9ybS5yZW1vdmVDb250cm9sKGZvcm1LZXkpO1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0UXVlcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jbXBSZWZNYXAuaGFzKGZvcm1LZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY21wUmVmTWFwLmRlbGV0ZShmb3JtS2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gQWRkIHRoaXMgdG8gcmVtb3ZlIGFsbCB0aGUgY29tcG9uZW50cyB3aGVuIGZpZWxkcyBjaGFuZ2VzLlxuICAgICAgICB0aGlzLl9jbXBSZWZNYXAuc2V0KGZvcm1LZXksIGNvbXBvbmVudFJlZik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0IHNtYXJ0IGZpbHRlciBmaWVsZFxuICAgICAqIEBwYXJhbSBjdXJyZW50IGZpbHRlciBsZWdhY3kgZWxlbWVudFxuICAgICAqIEByZXR1cm5zIHNtYXJ0IGZpbHRlciBmaWVsZCwgaWYgbm90IGZvdW5kIHJldHVybnMgdGhlIGZpcnN0IGZpZWxkXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3RlZEZpZWxkKGN1cnJlbnQ6IElQZXBRdWVyeUl0ZW0pOiBJUGVwUXVlcnlCdWlsZGVyRmllbGRDb250YWluZXIgfCBudWxsIHtcbiAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLl9zbWFydEZpbHRlckZpZWxkcy5maW5kKGZpZWxkID0+IGZpZWxkLnNtYXJ0LmlkID09PSBjdXJyZW50LkFwaU5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0gPyBpdGVtIDogdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHM/Lmxlbmd0aCA+IDAgPyB0aGlzLl9zbWFydEZpbHRlckZpZWxkc1swXSA6IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHM/Lmxlbmd0aCA+IDAgPyB0aGlzLl9zbWFydEZpbHRlckZpZWxkc1swXSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnZlcnRTbWFydEZpbHRlckNvbXBvbmVudFR5cGUodHlwZTogc3RyaW5nKSB7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnaW50JzpcbiAgICAgICAgICAgIGNhc2UgJ2N1cnJlbmN5JzpcbiAgICAgICAgICAgIGNhc2UgJ3JlYWwnOlxuICAgICAgICAgICAgY2FzZSAncGVyY2VudGFnZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdudW1iZXInO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZS10aW1lJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2RhdGUnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgYSBsZWdhY3kgb3V0cHV0IHF1ZXJ5IFxuICAgICAqL1xuICAgIGNyZWF0ZU91dHB1dFF1ZXJ5KCkge1xuICAgICAgICBpZiAodGhpcy5fZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLl9vdXRwdXRRdWVyeVNlcnZpY2UuZ2VuZXJhdGVRdWVyeSh0aGlzLl9mb3JtLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX291dHB1dFF1ZXJ5JC5uZXh0KHF1ZXJ5KTtcbiAgICAgICAgfVxuICAgIH1cblxufSJdfQ==