@pepperi-addons/ngx-lib 0.2.61-query-builder.2 → 0.3.0

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 (468) hide show
  1. package/README.md +39 -39
  2. package/address/address.component.theme.scss +5 -5
  3. package/address/pepperi-addons-ngx-lib-address.metadata.json +1 -1
  4. package/attachment/attachment.component.theme.scss +4 -1
  5. package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +1 -1
  6. package/bread-crumbs/bread-crumbs.component.theme.scss +9 -9
  7. package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.metadata.json +1 -1
  8. package/bundles/pepperi-addons-ngx-lib-address.umd.js +1 -1
  9. package/bundles/pepperi-addons-ngx-lib-address.umd.js.map +1 -1
  10. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +2 -2
  11. package/bundles/pepperi-addons-ngx-lib-attachment.umd.js.map +1 -1
  12. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js +1 -1
  13. package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js.map +1 -1
  14. package/bundles/pepperi-addons-ngx-lib-button.umd.js +1 -1
  15. package/bundles/pepperi-addons-ngx-lib-button.umd.js.map +1 -1
  16. package/bundles/pepperi-addons-ngx-lib-carousel.umd.js.map +1 -1
  17. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +1 -1
  18. package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +1 -1
  19. package/bundles/pepperi-addons-ngx-lib-color.umd.js +3 -3
  20. package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +1 -1
  21. package/bundles/pepperi-addons-ngx-lib-date.umd.js +4 -3
  22. package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
  23. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js +2 -2
  24. package/bundles/pepperi-addons-ngx-lib-dialog.umd.js.map +1 -1
  25. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js +1 -1
  26. package/bundles/pepperi-addons-ngx-lib-field-title.umd.js.map +1 -1
  27. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +2 -2
  28. package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js.map +1 -1
  29. package/bundles/pepperi-addons-ngx-lib-form.umd.js +8 -8
  30. package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
  31. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js +1 -1
  32. package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js.map +1 -1
  33. package/bundles/pepperi-addons-ngx-lib-icon.umd.js.map +1 -1
  34. package/bundles/pepperi-addons-ngx-lib-image.umd.js +2 -2
  35. package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
  36. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +1 -1
  37. package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
  38. package/bundles/pepperi-addons-ngx-lib-list.umd.js +8 -8
  39. package/bundles/pepperi-addons-ngx-lib-list.umd.js.map +1 -1
  40. package/bundles/pepperi-addons-ngx-lib-menu.umd.js +2 -2
  41. package/bundles/pepperi-addons-ngx-lib-menu.umd.js.map +1 -1
  42. package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js +1 -1
  43. package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js.map +1 -1
  44. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +2 -2
  45. package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
  46. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +21 -18
  47. package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +1 -1
  48. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +2 -2
  49. package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +1 -1
  50. package/bundles/pepperi-addons-ngx-lib-search.umd.js +1 -1
  51. package/bundles/pepperi-addons-ngx-lib-search.umd.js.map +1 -1
  52. package/bundles/pepperi-addons-ngx-lib-select.umd.js +2 -2
  53. package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
  54. package/bundles/pepperi-addons-ngx-lib-separator.umd.js +2 -2
  55. package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +1 -1
  56. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js +1 -1
  57. package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js.map +1 -1
  58. package/bundles/pepperi-addons-ngx-lib-signature.umd.js +2 -2
  59. package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +1 -1
  60. package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js +1 -1
  61. package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js.map +1 -1
  62. package/bundles/pepperi-addons-ngx-lib-slider.umd.js +2 -2
  63. package/bundles/pepperi-addons-ngx-lib-slider.umd.js.map +1 -1
  64. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +7 -7
  65. package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
  66. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +2 -2
  67. package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +1 -1
  68. package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js +1 -1
  69. package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js.map +1 -1
  70. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +1 -1
  71. package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +1 -1
  72. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js +1 -1
  73. package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js.map +1 -1
  74. package/bundles/pepperi-addons-ngx-lib.umd.js +35 -35
  75. package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
  76. package/button/pepperi-addons-ngx-lib-button.metadata.json +1 -1
  77. package/checkbox/pepperi-addons-ngx-lib-checkbox.metadata.json +1 -1
  78. package/color/color-picker.component.theme.scss +170 -169
  79. package/color/pepperi-addons-ngx-lib-color.metadata.json +1 -1
  80. package/core/common/services/addon.service.d.ts +2 -1
  81. package/core/common/services/file.service.d.ts +4 -4
  82. package/date/date.component.theme.scss +163 -0
  83. package/date/pepperi-addons-ngx-lib-date.metadata.json +1 -1
  84. package/dialog/dialog.component.theme.scss +5 -5
  85. package/dialog/pepperi-addons-ngx-lib-dialog.metadata.json +1 -1
  86. package/esm2015/address/address.component.js +2 -2
  87. package/esm2015/address/address.module.js +1 -1
  88. package/esm2015/address/public-api.js +1 -1
  89. package/esm2015/attachment/attachment.component.js +3 -3
  90. package/esm2015/attachment/attachment.module.js +1 -1
  91. package/esm2015/attachment/public-api.js +1 -1
  92. package/esm2015/bread-crumbs/bread-crumbs.component.js +2 -2
  93. package/esm2015/bread-crumbs/bread-crumbs.model.js +1 -1
  94. package/esm2015/bread-crumbs/bread-crumbs.module.js +1 -1
  95. package/esm2015/bread-crumbs/public-api.js +1 -1
  96. package/esm2015/button/button.component.js +2 -2
  97. package/esm2015/button/button.model.js +1 -1
  98. package/esm2015/button/button.module.js +1 -1
  99. package/esm2015/button/public-api.js +1 -1
  100. package/esm2015/carousel/carousel-item.directive.js +1 -1
  101. package/esm2015/carousel/carousel.component.js +15 -15
  102. package/esm2015/carousel/carousel.module.js +1 -1
  103. package/esm2015/carousel/public-api.js +1 -1
  104. package/esm2015/checkbox/checkbox.component.js +2 -2
  105. package/esm2015/checkbox/checkbox.module.js +1 -1
  106. package/esm2015/checkbox/public-api.js +1 -1
  107. package/esm2015/color/color-picker.component.js +29 -29
  108. package/esm2015/color/color.component.js +2 -2
  109. package/esm2015/color/color.model.js +1 -1
  110. package/esm2015/color/color.module.js +1 -1
  111. package/esm2015/color/public-api.js +1 -1
  112. package/esm2015/core/clipboard/clipboard.directive.js +1 -1
  113. package/esm2015/core/clipboard/clipboard.service.js +1 -1
  114. package/esm2015/core/clipboard/index.js +1 -1
  115. package/esm2015/core/clipboard/public-api.js +1 -1
  116. package/esm2015/core/common/directives/auto-width.directive.js +1 -1
  117. package/esm2015/core/common/directives/button-blur.directive.js +1 -1
  118. package/esm2015/core/common/directives/button-loader.directive.js +1 -1
  119. package/esm2015/core/common/directives/data-qa.directive.js +1 -1
  120. package/esm2015/core/common/directives/index.js +1 -1
  121. package/esm2015/core/common/directives/menu-blur.directive.js +1 -1
  122. package/esm2015/core/common/directives/prevent-multi-click.directive.js +1 -1
  123. package/esm2015/core/common/directives/public-api.js +1 -1
  124. package/esm2015/core/common/index.js +1 -1
  125. package/esm2015/core/common/model/index.js +1 -1
  126. package/esm2015/core/common/model/papi.model.js +1 -1
  127. package/esm2015/core/common/model/public-api.js +1 -1
  128. package/esm2015/core/common/model/utilities.model.js +1 -1
  129. package/esm2015/core/common/model/wapi.model.js +1 -1
  130. package/esm2015/core/common/pipes/common-pipes.js +1 -1
  131. package/esm2015/core/common/pipes/index.js +1 -1
  132. package/esm2015/core/common/pipes/public-api.js +1 -1
  133. package/esm2015/core/common/public-api.js +1 -1
  134. package/esm2015/core/common/services/addon.service.js +19 -4
  135. package/esm2015/core/common/services/color.service.js +1 -1
  136. package/esm2015/core/common/services/cookie.service.js +1 -1
  137. package/esm2015/core/common/services/data-convertor.service.js +1 -1
  138. package/esm2015/core/common/services/file.service.js +9 -9
  139. package/esm2015/core/common/services/index.js +1 -1
  140. package/esm2015/core/common/services/jwt-helper.service.js +1 -1
  141. package/esm2015/core/common/services/public-api.js +1 -1
  142. package/esm2015/core/common/services/session.service.js +1 -1
  143. package/esm2015/core/common/services/utilities.service.js +4 -25
  144. package/esm2015/core/common/services/validator.service.js +1 -1
  145. package/esm2015/core/common/services/window-scrolling.service.js +5 -5
  146. package/esm2015/core/customization/customization.model.js +1 -1
  147. package/esm2015/core/customization/customization.service.js +1 -1
  148. package/esm2015/core/customization/index.js +1 -1
  149. package/esm2015/core/customization/public-api.js +1 -1
  150. package/esm2015/core/http/index.js +1 -1
  151. package/esm2015/core/http/interceptors/error.interceptor.js +1 -1
  152. package/esm2015/core/http/interceptors/index.js +1 -1
  153. package/esm2015/core/http/interceptors/loader.interceptor.js +1 -1
  154. package/esm2015/core/http/interceptors/profiler.interceptor.js +1 -1
  155. package/esm2015/core/http/public-api.js +1 -1
  156. package/esm2015/core/http/services/http.service.js +1 -1
  157. package/esm2015/core/http/services/loader.service.js +1 -1
  158. package/esm2015/core/index.js +1 -1
  159. package/esm2015/core/layout/index.js +1 -1
  160. package/esm2015/core/layout/layout.service.js +1 -1
  161. package/esm2015/core/layout/public-api.js +1 -1
  162. package/esm2015/core/layout/rtl.directive.js +1 -1
  163. package/esm2015/core/portal/attach.directive.js +1 -1
  164. package/esm2015/core/portal/index.js +1 -1
  165. package/esm2015/core/portal/portal.service.js +1 -1
  166. package/esm2015/core/portal/public-api.js +1 -1
  167. package/esm2015/core/portal/target.directive.js +1 -1
  168. package/esm2015/core/public-api.js +1 -1
  169. package/esm2015/core/scroll-to/index.js +1 -1
  170. package/esm2015/core/scroll-to/public-api.js +1 -1
  171. package/esm2015/core/scroll-to/scroll-to.service.js +1 -1
  172. package/esm2015/date/date.component.js +5 -4
  173. package/esm2015/date/date.module.js +1 -1
  174. package/esm2015/date/public-api.js +1 -1
  175. package/esm2015/dialog/default-dialog.component.js +2 -2
  176. package/esm2015/dialog/dialog.component.js +2 -2
  177. package/esm2015/dialog/dialog.model.js +1 -1
  178. package/esm2015/dialog/dialog.module.js +1 -1
  179. package/esm2015/dialog/dialog.service.js +1 -1
  180. package/esm2015/dialog/public-api.js +1 -1
  181. package/esm2015/field-title/field-title.component.js +2 -2
  182. package/esm2015/field-title/field-title.module.js +1 -1
  183. package/esm2015/field-title/public-api.js +1 -1
  184. package/esm2015/files-uploader/files-uploader.component.js +3 -3
  185. package/esm2015/files-uploader/files-uploader.module.js +1 -1
  186. package/esm2015/files-uploader/public-api.js +1 -1
  187. package/esm2015/form/field-generator.component.js +2 -2
  188. package/esm2015/form/form.component.js +2 -2
  189. package/esm2015/form/form.module.js +1 -1
  190. package/esm2015/form/indicators.component.js +2 -2
  191. package/esm2015/form/internal-button.component.js +2 -2
  192. package/esm2015/form/internal-carusel.component.js +2 -2
  193. package/esm2015/form/internal-carusel.service.js +1 -1
  194. package/esm2015/form/internal-list.component.js +2 -2
  195. package/esm2015/form/internal-menu.component.js +2 -2
  196. package/esm2015/form/internal-page.component.js +2 -2
  197. package/esm2015/form/internal-page.service.js +1 -1
  198. package/esm2015/form/public-api.js +1 -1
  199. package/esm2015/group-buttons/group-buttons.component.js +2 -2
  200. package/esm2015/group-buttons/group-buttons.module.js +1 -1
  201. package/esm2015/group-buttons/public-api.js +1 -1
  202. package/esm2015/icon/icon-generated-all.model.js +1 -1
  203. package/esm2015/icon/icon-generated.model.js +1 -1
  204. package/esm2015/icon/icon-registry.service.js +2 -2
  205. package/esm2015/icon/icon.component.js +1 -1
  206. package/esm2015/icon/icon.module.js +1 -1
  207. package/esm2015/icon/public-api.js +1 -1
  208. package/esm2015/image/image.component.js +3 -3
  209. package/esm2015/image/image.module.js +1 -1
  210. package/esm2015/image/public-api.js +1 -1
  211. package/esm2015/images-filmstrip/images-filmstrip.component.js +2 -2
  212. package/esm2015/images-filmstrip/images-filmstrip.module.js +1 -1
  213. package/esm2015/images-filmstrip/public-api.js +1 -1
  214. package/esm2015/list/list-actions.component.js +2 -2
  215. package/esm2015/list/list-carousel.component.js +2 -2
  216. package/esm2015/list/list-chooser.component.js +2 -2
  217. package/esm2015/list/list-pager.component.js +2 -2
  218. package/esm2015/list/list-sorting.component.js +2 -2
  219. package/esm2015/list/list-total.component.js +2 -2
  220. package/esm2015/list/list-views.component.js +2 -2
  221. package/esm2015/list/list.component.js +2 -2
  222. package/esm2015/list/list.model.js +1 -1
  223. package/esm2015/list/list.module.js +1 -1
  224. package/esm2015/list/public-api.js +1 -1
  225. package/esm2015/menu/menu-item.component.js +2 -2
  226. package/esm2015/menu/menu.component.js +2 -2
  227. package/esm2015/menu/menu.model.js +1 -1
  228. package/esm2015/menu/menu.module.js +1 -1
  229. package/esm2015/menu/public-api.js +1 -1
  230. package/esm2015/ngx-lib.module.js +1 -1
  231. package/esm2015/page-layout/page-layout.component.js +2 -2
  232. package/esm2015/page-layout/page-layout.module.js +1 -1
  233. package/esm2015/page-layout/public-api.js +1 -1
  234. package/esm2015/public-api.js +1 -1
  235. package/esm2015/quantity-selector/public-api.js +1 -1
  236. package/esm2015/quantity-selector/quantity-selector-validation.directive.js +1 -1
  237. package/esm2015/quantity-selector/quantity-selector.component.js +3 -3
  238. package/esm2015/quantity-selector/quantity-selector.module.js +1 -1
  239. package/esm2015/quantity-selector/quantity-selector.pipes.js +1 -1
  240. package/esm2015/query-builder/common/model/field.js +2 -0
  241. package/esm2015/query-builder/common/model/filter.js +1 -1
  242. package/esm2015/query-builder/common/model/legacy.js +1 -1
  243. package/esm2015/query-builder/common/model/operator-unit.js +1 -1
  244. package/esm2015/query-builder/common/model/operator.js +1 -1
  245. package/esm2015/query-builder/common/model/structure.js +1 -1
  246. package/esm2015/query-builder/common/model/type-map.js +1 -1
  247. package/esm2015/query-builder/common/model/type.js +1 -1
  248. package/esm2015/query-builder/common/services/output-query.service.js +1 -1
  249. package/esm2015/query-builder/common/services/type-convertor.service.js +1 -1
  250. package/esm2015/query-builder/public-api.js +1 -1
  251. package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +13 -12
  252. package/esm2015/query-builder/query-builder-section/query-builder-section.component.js +2 -2
  253. package/esm2015/query-builder/query-builder.component.js +2 -2
  254. package/esm2015/query-builder/query-builder.module.js +1 -1
  255. package/esm2015/query-builder/query-builder.service.js +8 -6
  256. package/esm2015/rich-html-textarea/public-api.js +1 -1
  257. package/esm2015/rich-html-textarea/rich-html-textarea.component.js +3 -3
  258. package/esm2015/rich-html-textarea/rich-html-textarea.module.js +1 -1
  259. package/esm2015/search/public-api.js +1 -1
  260. package/esm2015/search/search.component.js +2 -2
  261. package/esm2015/search/search.model.js +1 -1
  262. package/esm2015/search/search.module.js +1 -1
  263. package/esm2015/select/public-api.js +1 -1
  264. package/esm2015/select/select.component.js +3 -3
  265. package/esm2015/select/select.module.js +1 -1
  266. package/esm2015/separator/public-api.js +1 -1
  267. package/esm2015/separator/separator.component.js +3 -3
  268. package/esm2015/separator/separator.module.js +1 -1
  269. package/esm2015/side-bar/public-api.js +1 -1
  270. package/esm2015/side-bar/side-bar.component.js +2 -2
  271. package/esm2015/side-bar/side-bar.model.js +1 -1
  272. package/esm2015/side-bar/side-bar.module.js +1 -1
  273. package/esm2015/signature/public-api.js +1 -1
  274. package/esm2015/signature/signature.component.js +3 -3
  275. package/esm2015/signature/signature.module.js +1 -1
  276. package/esm2015/size-detector/public-api.js +1 -1
  277. package/esm2015/size-detector/size-detector.component.js +2 -2
  278. package/esm2015/size-detector/size-detector.module.js +1 -1
  279. package/esm2015/slider/public-api.js +1 -1
  280. package/esm2015/slider/slider.component.js +3 -3
  281. package/esm2015/slider/slider.module.js +1 -1
  282. package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +2 -2
  283. package/esm2015/smart-filters/common/filter-actions.component.js +2 -2
  284. package/esm2015/smart-filters/common/model/base-filter-component.js +1 -1
  285. package/esm2015/smart-filters/common/model/creator.js +1 -1
  286. package/esm2015/smart-filters/common/model/field.js +1 -1
  287. package/esm2015/smart-filters/common/model/filter.js +1 -1
  288. package/esm2015/smart-filters/common/model/operator.js +1 -1
  289. package/esm2015/smart-filters/common/model/type.js +1 -1
  290. package/esm2015/smart-filters/date-filter/date-filter.component.js +2 -2
  291. package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +2 -2
  292. package/esm2015/smart-filters/number-filter/number-filter.component.js +2 -2
  293. package/esm2015/smart-filters/public-api.js +1 -1
  294. package/esm2015/smart-filters/smart-filters.component.js +2 -2
  295. package/esm2015/smart-filters/smart-filters.module.js +1 -1
  296. package/esm2015/smart-filters/text-filter/text-filter.component.js +2 -2
  297. package/esm2015/textarea/public-api.js +1 -1
  298. package/esm2015/textarea/textarea.component.js +3 -3
  299. package/esm2015/textarea/textarea.module.js +1 -1
  300. package/esm2015/textbox/public-api.js +1 -1
  301. package/esm2015/textbox/textbox-validation.directive.js +1 -1
  302. package/esm2015/textbox/textbox.component.js +2 -2
  303. package/esm2015/textbox/textbox.module.js +1 -1
  304. package/esm2015/textbox-icon/public-api.js +1 -1
  305. package/esm2015/textbox-icon/textbox-icon.component.js +2 -2
  306. package/esm2015/textbox-icon/textbox-icon.module.js +1 -1
  307. package/esm2015/top-bar/public-api.js +1 -1
  308. package/esm2015/top-bar/top-bar.component.js +2 -2
  309. package/esm2015/top-bar/top-bar.model.js +1 -1
  310. package/esm2015/top-bar/top-bar.module.js +1 -1
  311. package/fesm2015/pepperi-addons-ngx-lib-address.js +1 -1
  312. package/fesm2015/pepperi-addons-ngx-lib-address.js.map +1 -1
  313. package/fesm2015/pepperi-addons-ngx-lib-attachment.js +2 -2
  314. package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +1 -1
  315. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js +1 -1
  316. package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js.map +1 -1
  317. package/fesm2015/pepperi-addons-ngx-lib-button.js +1 -1
  318. package/fesm2015/pepperi-addons-ngx-lib-button.js.map +1 -1
  319. package/fesm2015/pepperi-addons-ngx-lib-carousel.js +14 -14
  320. package/fesm2015/pepperi-addons-ngx-lib-carousel.js.map +1 -1
  321. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +1 -1
  322. package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +1 -1
  323. package/fesm2015/pepperi-addons-ngx-lib-color.js +29 -29
  324. package/fesm2015/pepperi-addons-ngx-lib-color.js.map +1 -1
  325. package/fesm2015/pepperi-addons-ngx-lib-date.js +4 -3
  326. package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
  327. package/fesm2015/pepperi-addons-ngx-lib-dialog.js +2 -2
  328. package/fesm2015/pepperi-addons-ngx-lib-dialog.js.map +1 -1
  329. package/fesm2015/pepperi-addons-ngx-lib-field-title.js +1 -1
  330. package/fesm2015/pepperi-addons-ngx-lib-field-title.js.map +1 -1
  331. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +2 -2
  332. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js.map +1 -1
  333. package/fesm2015/pepperi-addons-ngx-lib-form.js +8 -8
  334. package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
  335. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js +1 -1
  336. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js.map +1 -1
  337. package/fesm2015/pepperi-addons-ngx-lib-icon.js +1 -1
  338. package/fesm2015/pepperi-addons-ngx-lib-icon.js.map +1 -1
  339. package/fesm2015/pepperi-addons-ngx-lib-image.js +2 -2
  340. package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
  341. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +1 -1
  342. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
  343. package/fesm2015/pepperi-addons-ngx-lib-list.js +8 -8
  344. package/fesm2015/pepperi-addons-ngx-lib-list.js.map +1 -1
  345. package/fesm2015/pepperi-addons-ngx-lib-menu.js +2 -2
  346. package/fesm2015/pepperi-addons-ngx-lib-menu.js.map +1 -1
  347. package/fesm2015/pepperi-addons-ngx-lib-page-layout.js +1 -1
  348. package/fesm2015/pepperi-addons-ngx-lib-page-layout.js.map +1 -1
  349. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +2 -2
  350. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
  351. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +21 -18
  352. package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +1 -1
  353. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +2 -2
  354. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +1 -1
  355. package/fesm2015/pepperi-addons-ngx-lib-search.js +1 -1
  356. package/fesm2015/pepperi-addons-ngx-lib-search.js.map +1 -1
  357. package/fesm2015/pepperi-addons-ngx-lib-select.js +2 -2
  358. package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
  359. package/fesm2015/pepperi-addons-ngx-lib-separator.js +2 -2
  360. package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +1 -1
  361. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js +1 -1
  362. package/fesm2015/pepperi-addons-ngx-lib-side-bar.js.map +1 -1
  363. package/fesm2015/pepperi-addons-ngx-lib-signature.js +2 -2
  364. package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +1 -1
  365. package/fesm2015/pepperi-addons-ngx-lib-size-detector.js +1 -1
  366. package/fesm2015/pepperi-addons-ngx-lib-size-detector.js.map +1 -1
  367. package/fesm2015/pepperi-addons-ngx-lib-slider.js +2 -2
  368. package/fesm2015/pepperi-addons-ngx-lib-slider.js.map +1 -1
  369. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +7 -7
  370. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
  371. package/fesm2015/pepperi-addons-ngx-lib-textarea.js +2 -2
  372. package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +1 -1
  373. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js +1 -1
  374. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js.map +1 -1
  375. package/fesm2015/pepperi-addons-ngx-lib-textbox.js +1 -1
  376. package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +1 -1
  377. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js +1 -1
  378. package/fesm2015/pepperi-addons-ngx-lib-top-bar.js.map +1 -1
  379. package/fesm2015/pepperi-addons-ngx-lib.js +33 -39
  380. package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
  381. package/field-title/pepperi-addons-ngx-lib-field-title.metadata.json +1 -1
  382. package/files-uploader/files-uploader.component.theme.scss +3 -0
  383. package/files-uploader/pepperi-addons-ngx-lib-files-uploader.metadata.json +1 -1
  384. package/form/indicators.component.theme.scss +7 -7
  385. package/form/pepperi-addons-ngx-lib-form.metadata.json +1 -1
  386. package/group-buttons/group-buttons.component.theme.scss +15 -15
  387. package/group-buttons/pepperi-addons-ngx-lib-group-buttons.metadata.json +1 -1
  388. package/image/image.component.theme.scss +35 -32
  389. package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
  390. package/images-filmstrip/images-filmstrip.component.theme.scss +32 -32
  391. package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
  392. package/list/list-total.component.theme.scss +10 -10
  393. package/list/pepperi-addons-ngx-lib-list.metadata.json +1 -1
  394. package/menu/pepperi-addons-ngx-lib-menu.metadata.json +1 -1
  395. package/package.json +1 -1
  396. package/page-layout/page-layout.component.theme.scss +6 -6
  397. package/page-layout/pepperi-addons-ngx-lib-page-layout.metadata.json +1 -1
  398. package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +1 -1
  399. package/quantity-selector/quantity-selector.component.theme.scss +77 -77
  400. package/query-builder/common/model/field.d.ts +8 -0
  401. package/query-builder/common/model/legacy.d.ts +4 -1
  402. package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +1 -1
  403. package/query-builder/query-builder-item/query-builder-item.component.d.ts +2 -2
  404. package/query-builder/query-builder-section/query-builder-section.component.theme.scss +6 -6
  405. package/query-builder/query-builder.service.d.ts +1 -1
  406. package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +1 -1
  407. package/rich-html-textarea/rich-html-textarea.component.theme.scss +244 -241
  408. package/search/pepperi-addons-ngx-lib-search.metadata.json +1 -1
  409. package/select/pepperi-addons-ngx-lib-select.metadata.json +1 -1
  410. package/select/select.component.theme.scss +98 -0
  411. package/separator/pepperi-addons-ngx-lib-separator.metadata.json +1 -1
  412. package/separator/separator.component.theme.scss +2 -2
  413. package/side-bar/pepperi-addons-ngx-lib-side-bar.metadata.json +1 -1
  414. package/side-bar/side-bar.component.theme.scss +26 -26
  415. package/signature/pepperi-addons-ngx-lib-signature.metadata.json +1 -1
  416. package/signature/signature.component.theme.scss +11 -7
  417. package/size-detector/pepperi-addons-ngx-lib-size-detector.metadata.json +1 -1
  418. package/slider/pepperi-addons-ngx-lib-slider.metadata.json +1 -1
  419. package/slider/slider.component.theme.scss +67 -66
  420. package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
  421. package/smart-filters/smart-filters.component.theme.scss +9 -9
  422. package/src/assets/i18n/de.ngx-lib.json +77 -77
  423. package/src/assets/i18n/en.ngx-lib.json +139 -139
  424. package/src/assets/i18n/es.ngx-lib.json +77 -77
  425. package/src/assets/i18n/fr.ngx-lib.json +78 -78
  426. package/src/assets/i18n/he.ngx-lib.json +78 -78
  427. package/src/assets/i18n/hu.ngx-lib.json +78 -78
  428. package/src/assets/i18n/it.ngx-lib.json +78 -78
  429. package/src/assets/i18n/ja.ngx-lib.json +78 -78
  430. package/src/assets/i18n/nl.ngx-lib.json +78 -78
  431. package/src/assets/i18n/pl.ngx-lib.json +78 -78
  432. package/src/assets/i18n/pt.ngx-lib.json +78 -78
  433. package/src/assets/i18n/ru.ngx-lib.json +78 -78
  434. package/src/assets/i18n/zh.ngx-lib.json +76 -76
  435. package/src/assets/images/no-image.svg +41 -41
  436. package/src/core/style/abstracts/breakpoints.scss +37 -37
  437. package/src/core/style/abstracts/functions.scss +439 -439
  438. package/src/core/style/abstracts/mixins.scss +800 -800
  439. package/src/core/style/abstracts/variables.scss +545 -545
  440. package/src/core/style/base/base.scss +874 -874
  441. package/src/core/style/base/grids.scss +4 -4
  442. package/src/core/style/base/helpers.scss +70 -70
  443. package/src/core/style/base/typography.scss +259 -259
  444. package/src/core/style/components/button.scss +346 -346
  445. package/src/core/style/components/checkbox.scss +476 -476
  446. package/src/core/style/components/datetime.scss +182 -182
  447. package/src/core/style/components/file.scss +237 -223
  448. package/src/core/style/components/general.scss +974 -1002
  449. package/src/core/style/components/input.scss +92 -98
  450. package/src/core/style/components/quantity-selector.scss +17 -17
  451. package/src/core/style/components/radio-button.scss +152 -171
  452. package/src/core/style/components/select.scss +187 -187
  453. package/src/core/style/components/signature.scss +14 -14
  454. package/src/core/style/components/splitter.scss +67 -67
  455. package/src/core/style/components/textarea.scss +207 -198
  456. package/src/core/style/themes/black-theme.scss +7 -7
  457. package/src/core/style/themes/default-theme.scss +144 -144
  458. package/src/core/style/themes/light-theme.scss +7 -7
  459. package/src/core/style/themes/nature-theme.scss +7 -7
  460. package/src/core/style/vendors/normalize.scss +497 -497
  461. package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +1 -1
  462. package/textarea/textarea.component.theme.scss +3 -2
  463. package/textbox/pepperi-addons-ngx-lib-textbox.metadata.json +1 -1
  464. package/textbox/textbox.component.theme.scss +3 -3
  465. package/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.metadata.json +1 -1
  466. package/theming.scss +126 -125
  467. package/top-bar/pepperi-addons-ngx-lib-top-bar.metadata.json +1 -1
  468. package/top-bar/top-bar.component.theme.scss +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"pepperi-addons-ngx-lib-smart-filters.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/ngx-lib/smart-filters/smart-filters.component.ts","../../../projects/ngx-lib/smart-filters/common/filter-actions.component.ts","../../../projects/ngx-lib/smart-filters/common/model/operator.ts","../../../projects/ngx-lib/smart-filters/common/model/base-filter-component.ts","../../../projects/ngx-lib/smart-filters/text-filter/text-filter.component.ts","../../../projects/ngx-lib/smart-filters/boolean-filter/boolean-filter.component.ts","../../../projects/ngx-lib/smart-filters/date-filter/date-filter.component.ts","../../../projects/ngx-lib/smart-filters/multi-select-filter/multi-select-filter.component.ts","../../../projects/ngx-lib/smart-filters/number-filter/number-filter.component.ts","../../../projects/ngx-lib/smart-filters/smart-filters.module.ts","../../../projects/ngx-lib/smart-filters/common/model/field.ts","../../../projects/ngx-lib/smart-filters/common/model/creator.ts","../../../projects/ngx-lib/smart-filters/public-api.ts","../../../projects/ngx-lib/smart-filters/pepperi-addons-ngx-lib-smart-filters.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n ChangeDetectionStrategy,\r\n Output,\r\n EventEmitter,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport {\r\n IPepSmartFilterField,\r\n PepSmartFilterBaseField,\r\n} from './common/model/field';\r\nimport { PepLayoutService } from '@pepperi-addons/ngx-lib';\r\nimport { IPepSmartFilterData } from './common/model/filter';\r\n\r\n@Component({\r\n selector: 'pep-smart-filters',\r\n templateUrl: './smart-filters.component.html',\r\n styleUrls: ['./smart-filters.component.scss', './smart-filters.component.theme.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PepSmartFiltersComponent {\r\n\r\n @Input() title = '';\r\n\r\n filtersDataMap: Map<string, IPepSmartFilterData> = new Map<\r\n string,\r\n IPepSmartFilterData\r\n >();\r\n\r\n private _filters: IPepSmartFilterData[] = [];\r\n @Input()\r\n set filters(value: IPepSmartFilterData[]) {\r\n this._filters = value;\r\n this.setupFilters(value);\r\n }\r\n get filters(): IPepSmartFilterData[] {\r\n this._filters = [...this.filtersDataMap.keys()]\r\n // .filter((key) => this.filtersDataMap.get(key) !== null)\r\n .map((key) => {\r\n if (key) {\r\n return this.filtersDataMap.get(key);\r\n }\r\n });\r\n\r\n return this._filters;\r\n }\r\n\r\n private _fields: Array<IPepSmartFilterField> = [];\r\n @Input()\r\n set fields(value: Array<IPepSmartFilterField>) {\r\n this._fields = value;\r\n }\r\n get fields(): Array<IPepSmartFilterField> {\r\n return this._fields;\r\n }\r\n\r\n private _useAsWebComponent = false;\r\n @Input()\r\n set useAsWebComponent(value: boolean) {\r\n if (value) {\r\n this.exportFunctionsOnHostElement();\r\n }\r\n }\r\n get useAsWebComponent(): boolean {\r\n return this._useAsWebComponent;\r\n }\r\n\r\n // @Output()\r\n // filtersClear: EventEmitter<void> = new EventEmitter<void>();\r\n @Output()\r\n filtersChange: EventEmitter<IPepSmartFilterData[]> = new EventEmitter<\r\n IPepSmartFilterData[]\r\n >();\r\n\r\n @Output()\r\n fieldToggleChange: EventEmitter<IPepSmartFilterField> = new EventEmitter<IPepSmartFilterField>();\r\n\r\n expansionPanelHeaderHeight = '*';\r\n\r\n constructor(\r\n private hostElement: ElementRef,\r\n public layoutService: PepLayoutService\r\n ) { }\r\n\r\n private exportFunctionsOnHostElement() {\r\n // This is for web component usage for use those functions.\r\n this.hostElement.nativeElement.clearFilters = this.clearFilters.bind(\r\n this\r\n );\r\n this.hostElement.nativeElement.clearFilter = this.clearFilter.bind(\r\n this\r\n );\r\n this.hostElement.nativeElement.toggleField = this.toggleField.bind(\r\n this\r\n );\r\n }\r\n\r\n private setupFilters(value: IPepSmartFilterData[]) {\r\n this.filtersDataMap.clear();\r\n if (value) {\r\n value.forEach((filter) => {\r\n // Validate before add the filter into the map.\r\n let currentField = null;\r\n\r\n if (this.fields && this.fields.length > 0) {\r\n currentField = this.fields.find(\r\n (field) => field.id === filter.fieldId\r\n ) as PepSmartFilterBaseField;\r\n }\r\n\r\n if (currentField) {\r\n // Only if the operator is from the same type\r\n if (\r\n filter.operator.componentType.includes(\r\n currentField.componentType\r\n )\r\n ) {\r\n let isOperatorUnitValid = true;\r\n if (filter.operatorUnit) {\r\n // Only if the operator unit is not from the same type\r\n if (\r\n !filter.operatorUnit.componentType.includes(\r\n currentField.componentType\r\n )\r\n ) {\r\n isOperatorUnitValid = false;\r\n }\r\n }\r\n\r\n // Add the filter.\r\n if (isOperatorUnitValid) {\r\n this.filtersDataMap.set(filter.fieldId, filter);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n private raiseFiltersChange(): void {\r\n this.filtersChange.emit(this.filters);\r\n }\r\n\r\n toggleField(index: number, isOpen: boolean): void {\r\n this.fields[index].isOpen = isOpen;\r\n this.fieldToggleChange.emit(this.fields[index]);\r\n }\r\n\r\n clearFilters() {\r\n this.filtersDataMap.clear();\r\n }\r\n\r\n clearFilter(fieldId: string) {\r\n this.filtersDataMap.delete(fieldId);\r\n }\r\n\r\n // Clear all the filters and raise event that filters has change.\r\n onFiltersClear() {\r\n this.clearFilters();\r\n this.raiseFiltersChange();\r\n }\r\n\r\n // Clear the filter and raise event that filters has change.\r\n onFilterClear(field: IPepSmartFilterField) {\r\n this.clearFilter(field.id);\r\n this.raiseFiltersChange();\r\n }\r\n\r\n // Set the filter and raise event that filters has change.\r\n onFilterChange(\r\n field: IPepSmartFilterField,\r\n filterData: IPepSmartFilterData\r\n ) {\r\n this.clearFilter(field.id);\r\n this.filtersDataMap.set(field.id, filterData);\r\n this.raiseFiltersChange();\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'pep-filter-actions',\r\n templateUrl: './filter-actions.component.html',\r\n styleUrls: ['./filter-actions.component.scss'],\r\n})\r\nexport class PepFilterActionsComponent {\r\n @Input() form: FormGroup;\r\n\r\n @Output() clearClick: EventEmitter<void> = new EventEmitter<void>();\r\n @Output() applyClick: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n clear() {\r\n this.clearClick.emit();\r\n }\r\n\r\n apply() {\r\n this.applyClick.emit();\r\n }\r\n}\r\n","import {\r\n PepSmartFilterComponentType,\r\n PepSmartFilterOperatorType,\r\n PepSmartFilterOperatorUnitType,\r\n} from './type';\r\nexport class IPepSmartFilterOperator {\r\n id: PepSmartFilterOperatorType;\r\n name: string;\r\n short: string;\r\n componentType: PepSmartFilterComponentType[];\r\n}\r\n\r\nconst Equals: IPepSmartFilterOperator = {\r\n id: 'eq',\r\n name: 'EQUAL',\r\n short: '=',\r\n componentType: [\r\n 'number',\r\n 'boolean'\r\n // 'multi-select',\r\n // 'date',\r\n // 'text',\r\n // 'auto-complete',\r\n // 'select',\r\n ],\r\n};\r\n\r\nconst NotEqual: IPepSmartFilterOperator = {\r\n id: 'neq',\r\n name: 'NOT_EQUAL',\r\n short: '<>',\r\n componentType: [\r\n 'number',\r\n // 'multi-select',\r\n // 'date',\r\n // 'text',\r\n // 'auto-complete',\r\n // 'select',\r\n ],\r\n};\r\n\r\nconst LessThan: IPepSmartFilterOperator = {\r\n id: 'lt',\r\n name: 'LESS_THEN',\r\n short: '<',\r\n componentType: ['number'],\r\n};\r\n\r\n// const LessThanOrEquals: IPepSmartFilterOperator = {\r\n// id: 'ltoe',\r\n// name: 'LESS_THEN_OR_EQUAL',\r\n// short: '<=',\r\n// type: ['number'],\r\n// };\r\n\r\nconst GreaterThan: IPepSmartFilterOperator = {\r\n id: 'gt',\r\n name: 'GREATER_THEN',\r\n short: '>',\r\n componentType: ['number'],\r\n};\r\n\r\n// const GreaterThanOrEquals: IPepSmartFilterOperator = {\r\n// id: 'gtoe',\r\n// name: 'GREATER_THEN_OR_EQUAL',\r\n// short: '>=',\r\n// type: ['number'],\r\n// };\r\n\r\nconst NumberRange: IPepSmartFilterOperator = {\r\n id: 'numberRange',\r\n name: 'NUMBER_RANGE',\r\n short: 'Range',\r\n componentType: ['number'],\r\n};\r\n\r\nconst Contains: IPepSmartFilterOperator = {\r\n id: 'contains',\r\n name: 'CONTAINS',\r\n short: 'Contains',\r\n componentType: ['text'],\r\n};\r\n\r\n// const BeginsWith: Operator = {\r\n// id: 'beginsWith',\r\n// name: 'Begins With',\r\n// short: 'Begins With',\r\n// type: ['text'],\r\n// };\r\n\r\n// const EndsWith: Operator = {\r\n// id: 'endsWith',\r\n// name: 'Ends With',\r\n// short: 'End With',\r\n// type: ['text'],\r\n// };\r\n\r\n// const After: Operator = {\r\n// id: 'after',\r\n// name: 'After',\r\n// short: 'After',\r\n// type: ['date'],\r\n// };\r\n\r\n// const Before: Operator = {\r\n// id: 'before',\r\n// name: 'Before',\r\n// short: 'Before',\r\n// type: ['date'],\r\n// };\r\n\r\nconst InTheLast: IPepSmartFilterOperator = {\r\n id: 'inTheLast',\r\n name: 'IN_THE_LAST',\r\n short: 'In the last',\r\n componentType: ['date'],\r\n};\r\n\r\nconst Today: IPepSmartFilterOperator = {\r\n id: 'today',\r\n name: 'TODAY',\r\n short: 'Today',\r\n componentType: ['date'],\r\n};\r\n\r\nconst ThisWeek: IPepSmartFilterOperator = {\r\n id: 'thisWeek',\r\n name: 'THIS_WEEK',\r\n short: 'This week',\r\n componentType: ['date'],\r\n};\r\n\r\nconst ThisMonth: IPepSmartFilterOperator = {\r\n id: 'thisMonth',\r\n name: 'THIS_MONTH',\r\n short: 'This month',\r\n componentType: ['date'],\r\n};\r\n\r\nconst DateRange: IPepSmartFilterOperator = {\r\n id: 'dateRange',\r\n name: 'DATE_RANGE',\r\n short: 'Range',\r\n componentType: ['date'],\r\n};\r\n\r\nconst DueIn: IPepSmartFilterOperator = {\r\n id: 'dueIn',\r\n name: 'DUE_IN',\r\n short: 'Due in',\r\n componentType: ['date'],\r\n};\r\n\r\nconst On: IPepSmartFilterOperator = {\r\n id: 'on',\r\n name: 'ON',\r\n short: 'On',\r\n componentType: ['date'],\r\n};\r\n\r\nconst NotInTheLast: IPepSmartFilterOperator = {\r\n id: 'notInTheLast',\r\n name: 'NOT_IN_THE_LAST',\r\n short: 'Not in the last',\r\n componentType: ['date'],\r\n};\r\n\r\nconst NotDueIn: IPepSmartFilterOperator = {\r\n id: 'notDueIn',\r\n name: 'NOT_DUE_IN',\r\n short: 'Not due in',\r\n componentType: ['date'],\r\n};\r\n\r\nconst IsEmpty: IPepSmartFilterOperator = {\r\n id: 'isEmpty',\r\n name: 'IS_EMPTY',\r\n short: 'Is empty',\r\n componentType: ['date'],\r\n};\r\n\r\nconst IsNotEmpty: IPepSmartFilterOperator = {\r\n id: 'isNotEmpty',\r\n name: 'IS_NOT_EMPTY',\r\n short: 'Is not empty',\r\n componentType: ['date'],\r\n};\r\n\r\nconst In: IPepSmartFilterOperator = {\r\n id: 'in',\r\n name: 'IN',\r\n short: 'In',\r\n componentType: ['multi-select'],\r\n};\r\n\r\nexport const PepSmartFilterOperators = {\r\n Equals: Equals,\r\n NotEqual: NotEqual,\r\n LessThan: LessThan,\r\n // LessThanOrEquals: LessThanOrEquals,\r\n GreaterThan: GreaterThan,\r\n // GreaterThanOrEquals: GreaterThanOrEquals,\r\n NumberRange: NumberRange,\r\n Contains: Contains,\r\n // BeginsWith: BeginsWith,\r\n // EndsWith: EndsWith,\r\n // After: After,\r\n // Before: Before,\r\n InTheLast: InTheLast,\r\n Today: Today,\r\n ThisWeek: ThisWeek,\r\n ThisMonth: ThisMonth,\r\n DateRange: DateRange,\r\n DueIn: DueIn,\r\n On: On,\r\n NotInTheLast: NotInTheLast,\r\n NotDueIn: NotDueIn,\r\n IsEmpty: IsEmpty,\r\n IsNotEmpty: IsNotEmpty,\r\n In: In,\r\n};\r\n\r\nexport class IPepSmartFilterOperatorUnit {\r\n id: PepSmartFilterOperatorUnitType;\r\n name: string;\r\n componentType: PepSmartFilterComponentType[];\r\n}\r\n\r\nconst Days: IPepSmartFilterOperatorUnit = {\r\n id: 'days',\r\n name: 'DAYS',\r\n componentType: ['date'],\r\n};\r\n\r\nconst Weeks: IPepSmartFilterOperatorUnit = {\r\n id: 'weeks',\r\n name: 'WEEKS',\r\n componentType: ['date'],\r\n};\r\n\r\nconst Months: IPepSmartFilterOperatorUnit = {\r\n id: 'months',\r\n name: 'MONTHS',\r\n componentType: ['date'],\r\n};\r\n\r\nconst Years: IPepSmartFilterOperatorUnit = {\r\n id: 'years',\r\n name: 'YEARS',\r\n componentType: ['date'],\r\n};\r\n\r\nexport const PepSmartFilterOperatorUnits = {\r\n Days: Days,\r\n Weeks: Weeks,\r\n Months: Months,\r\n Years: Years,\r\n};\r\n","import {\r\n Directive,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n AfterViewInit,\r\n Output,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n TemplateRef,\r\n ViewContainerRef,\r\n ViewChild,\r\n ComponentFactoryResolver,\r\n ComponentFactory,\r\n ComponentRef,\r\n Injector,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormBuilder,\r\n FormGroup,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n ValidatorFn,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { PepValidatorService } from '@pepperi-addons/ngx-lib';\r\nimport {\r\n IPepSmartFilterOperator,\r\n IPepSmartFilterOperatorUnit,\r\n PepSmartFilterOperators,\r\n PepSmartFilterOperatorUnits,\r\n} from './operator';\r\nimport { forwardRef } from '@angular/core';\r\nimport { IPepSmartFilterData, IPepSmartFilterDataValue } from './filter';\r\nimport { PepSmartFilterBaseField } from './field';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { PepFilterActionsComponent } from '../filter-actions.component';\r\n\r\n\r\n@Directive({})\r\nexport abstract class BaseFilterComponent\r\n implements OnInit, OnChanges, OnDestroy {\r\n private readonly _destroyed: Subject<void>;\r\n private actionsContainerRef: ComponentRef<PepFilterActionsComponent>;\r\n\r\n private _fieldIdWithNoDots = '';\r\n private _field: PepSmartFilterBaseField;\r\n @Input()\r\n set field(value: PepSmartFilterBaseField) {\r\n this._field = value;\r\n this._fieldIdWithNoDots = value ? value.id.replace(/\\./g, '_') : '';\r\n this.setupForm();\r\n }\r\n get field(): PepSmartFilterBaseField {\r\n return this._field;\r\n }\r\n\r\n private _filter: IPepSmartFilterData;\r\n @Input()\r\n set filter(value: IPepSmartFilterData) {\r\n this._filter = value;\r\n this.setupFilter();\r\n }\r\n get filter(): IPepSmartFilterData {\r\n return this._filter;\r\n }\r\n protected _parentForm: FormGroup;\r\n @Input()\r\n set parentForm(form: FormGroup) {\r\n this._parentForm = form;\r\n this.updateParentForm();\r\n }\r\n @Input() emitOnChange = false;\r\n @Input() inline = false;\r\n @Input() showActionButtons = true;\r\n @Input() renderTitle = true;\r\n\r\n @Output() filterClear: EventEmitter<void> = new EventEmitter<void>();\r\n @Output()\r\n filterChange: EventEmitter<IPepSmartFilterData> = new EventEmitter<IPepSmartFilterData>();\r\n\r\n private _operator: IPepSmartFilterOperator;\r\n set operator(operator: IPepSmartFilterOperator) {\r\n if (operator?.id != this._operator?.id) {\r\n // Validate operator\r\n const index = this.operators.findIndex((o) => o.id === operator.id);\r\n if (index >= 0) {\r\n this._operator = this.operators[index];\r\n } else {\r\n this._operator = this.operators[0];\r\n }\r\n\r\n this.form.reset();\r\n this.updateValidity();\r\n }\r\n }\r\n get operator(): IPepSmartFilterOperator {\r\n return this._operator;\r\n }\r\n\r\n private _operatorUnit: IPepSmartFilterOperatorUnit;\r\n set operatorUnit(operatorUnit: IPepSmartFilterOperatorUnit) {\r\n // Validate operator unit\r\n if (operatorUnit) {\r\n const index = this.operatorUnits.findIndex(\r\n (ou) => ou.id === operatorUnit.id\r\n );\r\n if (index >= 0) {\r\n this._operatorUnit = this.operatorUnits[index];\r\n } else {\r\n this._operatorUnit = this.operatorUnits[0];\r\n }\r\n } else {\r\n this._operatorUnit = undefined;\r\n }\r\n }\r\n get operatorUnit(): IPepSmartFilterOperatorUnit {\r\n return this._operatorUnit;\r\n }\r\n\r\n get firstControlKey() {\r\n return this.field ? `${this._fieldIdWithNoDots}_first` : 'first';\r\n }\r\n get firstControl(): AbstractControl {\r\n return this.form.get(this.firstControlKey);\r\n }\r\n get secondControlKey() {\r\n return this.field ? `${this._fieldIdWithNoDots}_second` : 'second';\r\n }\r\n get secondControl(): AbstractControl {\r\n return this.form.get(this.secondControlKey);\r\n }\r\n\r\n protected operators: IPepSmartFilterOperator[];\r\n protected operatorUnits: IPepSmartFilterOperatorUnit[];\r\n\r\n protected readonly OPERATORS_TRANSLATION_PREFIX = 'SMART_FILTERS.OPERATORS';\r\n protected readonly OPERATOR_UNITS_TRANSLATION_PREFIX =\r\n 'SMART_FILTERS.OPERATOR_UNITS';\r\n\r\n form: FormGroup;\r\n\r\n constructor(\r\n private viewContainerRef: ViewContainerRef,\r\n private injector: Injector,\r\n private resolver: ComponentFactoryResolver,\r\n private builder: FormBuilder,\r\n protected translate: TranslateService,\r\n protected validator: PepValidatorService,\r\n protected renderer: Renderer2\r\n ) {\r\n this._destroyed = new Subject();\r\n }\r\n\r\n private createActionsComponent() {\r\n const factory: ComponentFactory<PepFilterActionsComponent> = this.resolver.resolveComponentFactory(\r\n PepFilterActionsComponent\r\n );\r\n\r\n this.actionsContainerRef = factory.create(this.injector);\r\n this.actionsContainerRef.instance.form = this.form;\r\n this.actionsContainerRef.instance.applyClick.subscribe(() =>\r\n this.applyFilter()\r\n );\r\n this.actionsContainerRef.instance.clearClick.subscribe(() =>\r\n this.clearFilter()\r\n );\r\n\r\n this.viewContainerRef.insert(this.actionsContainerRef.hostView);\r\n }\r\n\r\n private setupForm() {\r\n const formValue = {};\r\n formValue[this.firstControlKey] = [];\r\n formValue[this.secondControlKey] = [];\r\n // this.form.patchValue(formValue); \r\n this.form = this.builder.group(formValue);\r\n // this.form[this.firstControlKey] = [];\r\n // this.form[this.secondControlKey] = [];\r\n\r\n this.setupOperators();\r\n\r\n if (this.showActionButtons) {\r\n this.createActionsComponent();\r\n }\r\n }\r\n\r\n private setupOperators() {\r\n // Get the operators by componentType.\r\n this.operators = Object.keys(PepSmartFilterOperators)\r\n .filter((key) => {\r\n return PepSmartFilterOperators[key].componentType.includes(\r\n this.field.componentType\r\n );\r\n })\r\n .map((key) => PepSmartFilterOperators[key]);\r\n\r\n // Filter by from field.operators input if exist.\r\n if (this.field.operators?.length > 0) {\r\n this.operators = this.operators.filter((o1) =>\r\n this.field.operators.some((o2) => o1.id === o2)\r\n );\r\n }\r\n\r\n // Get the operator units by componentType.\r\n this.operatorUnits = Object.keys(PepSmartFilterOperatorUnits)\r\n .filter((key) => {\r\n return PepSmartFilterOperatorUnits[key].componentType.includes(\r\n this.field.componentType\r\n );\r\n })\r\n .map((key) => PepSmartFilterOperatorUnits[key]);\r\n\r\n // Filter by from field.operatorsUnits input if exist.\r\n if (this.field.operatorUnits?.length > 0) {\r\n this.operatorUnits = this.operatorUnits.filter((o1) =>\r\n this.field.operatorUnits.some((o2) => o1.id === o2)\r\n );\r\n }\r\n\r\n // Load translation before get the options in the children.\r\n this.translate.get('SMART_FILTERS.TITLE').subscribe((res) => {\r\n this.loadOperatorsOptions();\r\n });\r\n }\r\n\r\n private setupFilter() {\r\n if (this.filter) {\r\n this.operator = this.filter.operator;\r\n this.operatorUnit = this.filter.operatorUnit;\r\n const formValue = {};\r\n formValue[this.firstControlKey] = this.filter.value.first;\r\n formValue[this.secondControlKey] = this.filter.value.second;\r\n this.form.patchValue(formValue);\r\n } else {\r\n this.operator = this.getDefaultOperator();\r\n this.operatorUnit = this.getDefaultOperatorUnit();\r\n this.clearFilter(false);\r\n }\r\n }\r\n\r\n protected updateParentForm() {\r\n this._parentForm.setControl('fieldId', this.builder.control(this.field.id));\r\n this._parentForm.setControl('fieldType', this.builder.control(this.field.type));\r\n this._parentForm.setControl('operator', this.builder.control(this.operator));\r\n this._parentForm.setControl('operatorUnit', this.builder.control(this.operatorUnit));\r\n this._parentForm.setControl('values', this.builder.group({\r\n first: this.firstControl,\r\n second: this.secondControl\r\n }));\r\n }\r\n\r\n protected getDestroyer() {\r\n return takeUntil(this._destroyed);\r\n }\r\n\r\n private updateValidity() {\r\n this.setFieldsStateAndValidators();\r\n\r\n this.firstControl.updateValueAndValidity();\r\n this.secondControl.updateValueAndValidity();\r\n }\r\n // Load the operators options from the translation.\r\n protected loadOperatorsOptions(): void {\r\n // Not implemented in the base\r\n }\r\n\r\n // Set default validators - some childs override this.\r\n protected setFieldsStateAndValidators(): void {\r\n this.firstControl.setValidators(Validators.required);\r\n this.secondControl.setValidators(Validators.required);\r\n this.secondControl.disable();\r\n }\r\n\r\n // Return undefined - some childs override this.\r\n protected getDefaultOperatorUnit(): IPepSmartFilterOperatorUnit {\r\n return undefined;\r\n }\r\n\r\n protected initFilter() {\r\n // Not implemented in the base\r\n }\r\n\r\n abstract getDefaultOperator(): IPepSmartFilterOperator;\r\n abstract getFilterValue(): IPepSmartFilterDataValue;\r\n\r\n clearFilter(emitEvent = true) {\r\n this._filter = null;\r\n this.form.reset();\r\n this.initFilter();\r\n\r\n if (emitEvent) {\r\n this.filterClear.emit();\r\n }\r\n }\r\n\r\n applyFilter() {\r\n const filterValue = this.getFilterValue();\r\n\r\n // If the filter is not null declare it, else - clear it.\r\n if (filterValue) {\r\n const filter = {\r\n fieldId: this.field.id,\r\n operator: this.operator,\r\n operatorUnit: this.operatorUnit,\r\n value: filterValue,\r\n };\r\n this._filter = filter;\r\n this.filterChange.emit(filter);\r\n } else {\r\n this.clearFilter();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.form) {\r\n this.updateValidity();\r\n }\r\n }\r\n\r\n ngOnChanges(): void {\r\n // if (this.form) {\r\n // this.updateValidity();\r\n // }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroyed.next();\r\n this._destroyed.complete();\r\n\r\n if (this.showActionButtons) {\r\n this.actionsContainerRef.destroy();\r\n }\r\n }\r\n\r\n // writeValue(value: IPepSmartFilterDataValue): void {\r\n // if (value) {\r\n // this.form.setValue(\r\n // {\r\n // first: value.first,\r\n // second: value.second || null,\r\n // },\r\n // { emitEvent: false }\r\n // );\r\n // } else {\r\n // this.form.reset();\r\n // }\r\n // }\r\n\r\n // registerOnChange(fn: any): void {\r\n // this.form.valueChanges.subscribe(fn);\r\n // }\r\n\r\n // onTouched: () => void = () => {\r\n // /* Do nothing */\r\n // };\r\n\r\n // registerOnTouched(fn: any): void {\r\n // this.onTouched = fn;\r\n // }\r\n\r\n // setDisabledState?(isDisabled: boolean): void {\r\n // isDisabled ? this.form.disable() : this.form.enable();\r\n // }\r\n\r\n // validate(control: AbstractControl): ValidationErrors {\r\n // return this.form.valid ? null : { PepFilterIsNotValid: true };\r\n // }\r\n}\r\n","import { Component, OnChanges, OnInit } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\r\nimport {\r\n IPepSmartFilterOperator,\r\n PepSmartFilterOperators,\r\n} from '../common/model/operator';\r\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\r\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\r\n\r\n@Component({\r\n selector: 'pep-text-filter',\r\n templateUrl: './text-filter.component.html',\r\n styleUrls: ['./text-filter.component.scss'],\r\n})\r\nexport class PepTextFilterComponent extends BaseFilterComponent implements OnInit {\r\n chooseTypeOptions: Array<IPepOption> = [];\r\n operatorWidth = '38%';\r\n firstControlWidth = '62%';\r\n\r\n ngOnInit() {\r\n this.firstControl.valueChanges\r\n .pipe(this.getDestroyer(), distinctUntilChanged())\r\n .subscribe(() => {\r\n this.setFieldsStateAndValidators();\r\n });\r\n }\r\n\r\n // Override\r\n getDefaultOperator(): IPepSmartFilterOperator {\r\n return PepSmartFilterOperators.Equals;\r\n }\r\n\r\n // Override\r\n getFilterValue(): IPepSmartFilterDataValue {\r\n const filterValue = {\r\n first: this.firstControl.value,\r\n };\r\n\r\n if (this.operator === PepSmartFilterOperators.NumberRange) {\r\n filterValue['second'] = this.secondControl.value;\r\n }\r\n\r\n return filterValue;\r\n }\r\n\r\n // Override\r\n loadOperatorsOptions() {\r\n this.chooseTypeOptions = this.operators.map((operator) => {\r\n return {\r\n key: operator.id,\r\n value: this.translate.instant(\r\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\r\n ),\r\n };\r\n });\r\n }\r\n\r\n // Override\r\n setFieldsStateAndValidators(): void {\r\n if (this.operator === PepSmartFilterOperators.NumberRange) {\r\n const firstValidators = [Validators.required];\r\n if (this.secondControl.value) {\r\n firstValidators.push(this.validator.isLessThan(this.secondControl));\r\n }\r\n this.firstControl.setValidators(firstValidators);\r\n } else {\r\n super.setFieldsStateAndValidators();\r\n }\r\n }\r\n\r\n onOperatorChanged(value: string) {\r\n const operator = Object.values(PepSmartFilterOperators).find(\r\n (operator) => operator.id === value\r\n );\r\n this.operator = operator;\r\n if (this._parentForm) {\r\n this.updateParentForm();\r\n }\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n\r\n onValueChanged() {\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n\r\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\r\nimport {\r\n IPepSmartFilterOperator,\r\n PepSmartFilterOperators,\r\n} from '../common/model/operator';\r\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\r\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\r\n\r\n@Component({\r\n selector: 'pep-boolean-filter',\r\n templateUrl: './boolean-filter.component.html',\r\n styleUrls: ['./boolean-filter.component.scss'],\r\n})\r\nexport class PepBooleanFilterComponent extends BaseFilterComponent implements OnInit {\r\n @Input() options: IPepOption[] = [];\r\n\r\n ngOnInit() {\r\n //\r\n }\r\n\r\n\r\n // Override\r\n getDefaultOperator(): IPepSmartFilterOperator {\r\n return PepSmartFilterOperators.Equals;\r\n }\r\n\r\n // Override\r\n getFilterValue(): IPepSmartFilterDataValue {\r\n const filterValue = { first: this.firstControl.value || false };\r\n return filterValue;\r\n }\r\n\r\n onValueChanged(value) {\r\n this.firstControl.setValue(value);\r\n\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n // // Override\r\n // setFieldsStateAndValidators(): void {\r\n // this.secondControl.disable();\r\n // }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\r\nimport {\r\n IPepSmartFilterOperator,\r\n IPepSmartFilterOperatorUnit,\r\n PepSmartFilterOperators,\r\n PepSmartFilterOperatorUnits,\r\n} from '../common/model/operator';\r\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\r\nimport { Validators } from '@angular/forms';\r\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\r\n\r\n@Component({\r\n selector: 'pep-date-filter',\r\n templateUrl: './date-filter.component.html',\r\n styleUrls: ['./date-filter.component.scss'],\r\n})\r\nexport class PepDateFilterComponent extends BaseFilterComponent implements OnInit {\r\n PepSmartFilterOperators = PepSmartFilterOperators;\r\n chooseTimeOptions: Array<IPepOption> = [];\r\n chooseTimeUnitOptions: Array<IPepOption> = [];\r\n operatorWidth: string;\r\n fieldsWidth: string;\r\n\r\n ngOnInit() {\r\n if (this.inline) {\r\n this.setControlsWidth();\r\n }\r\n }\r\n\r\n // Override\r\n getDefaultOperator(): IPepSmartFilterOperator {\r\n return PepSmartFilterOperators.InTheLast;\r\n }\r\n\r\n // Override\r\n getDefaultOperatorUnit(): IPepSmartFilterOperatorUnit {\r\n if (this.operator === PepSmartFilterOperators.InTheLast ||\r\n this.operator === PepSmartFilterOperators.NotInTheLast ||\r\n this.operator === PepSmartFilterOperators.DueIn ||\r\n this.operator === PepSmartFilterOperators.NotDueIn) {\r\n return PepSmartFilterOperatorUnits.Months;\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n\r\n // Override\r\n getFilterValue(): IPepSmartFilterDataValue {\r\n const filterValue = {\r\n first: this.firstControl.value,\r\n };\r\n\r\n if (this.operator === PepSmartFilterOperators.DateRange) {\r\n filterValue['second'] = this.secondControl.value;\r\n }\r\n\r\n return filterValue;\r\n }\r\n\r\n // Override\r\n loadOperatorsOptions() {\r\n this.chooseTimeOptions = this.operators.map((operator) => {\r\n return {\r\n key: operator.id,\r\n value: this.translate.instant(\r\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\r\n ),\r\n };\r\n });\r\n\r\n this.chooseTimeUnitOptions = this.operatorUnits.map((operatorUnit) => {\r\n return {\r\n key: operatorUnit.id,\r\n value: this.translate.instant(\r\n `${this.OPERATOR_UNITS_TRANSLATION_PREFIX}.${operatorUnit.name}`\r\n ),\r\n };\r\n });\r\n }\r\n\r\n // Override\r\n setFieldsStateAndValidators(): void {\r\n this.firstControl.enable();\r\n\r\n if (this.operator === PepSmartFilterOperators.DateRange) {\r\n this.firstControl.setValidators(Validators.required);\r\n this.secondControl.enable();\r\n this.secondControl.setValidators(Validators.required);\r\n } else if (\r\n this.operator === PepSmartFilterOperators.InTheLast ||\r\n this.operator === PepSmartFilterOperators.NotInTheLast ||\r\n this.operator === PepSmartFilterOperators.DueIn ||\r\n this.operator === PepSmartFilterOperators.NotDueIn\r\n ) {\r\n this.firstControl.setValidators([\r\n Validators.required,\r\n this.validator.numberValidator(),\r\n ]);\r\n this.secondControl.disable();\r\n } else {\r\n // Disable 'first' field.\r\n if (\r\n this.operator === PepSmartFilterOperators.Today ||\r\n this.operator === PepSmartFilterOperators.ThisWeek ||\r\n this.operator === PepSmartFilterOperators.ThisMonth ||\r\n this.operator === PepSmartFilterOperators.IsEmpty ||\r\n this.operator === PepSmartFilterOperators.IsNotEmpty\r\n ) {\r\n this.firstControl.disable();\r\n }\r\n\r\n // Default disable 'second' field.\r\n super.setFieldsStateAndValidators();\r\n }\r\n }\r\n\r\n setControlsWidth() {\r\n if (\r\n this.operator === PepSmartFilterOperators.Today ||\r\n this.operator === PepSmartFilterOperators.ThisWeek ||\r\n this.operator === PepSmartFilterOperators.ThisMonth ||\r\n this.operator === PepSmartFilterOperators.IsEmpty ||\r\n this.operator === PepSmartFilterOperators.IsNotEmpty\r\n ) {\r\n this.operatorWidth = 'auto';\r\n this.fieldsWidth = '0%';\r\n } else if (this.operator === PepSmartFilterOperators.On) {\r\n this.operatorWidth = '38%';\r\n this.fieldsWidth = '62%';\r\n } else {\r\n this.operatorWidth = '30%';\r\n this.fieldsWidth = '70%';\r\n }\r\n }\r\n\r\n onOperatorChanged(value: string) {\r\n const operator = Object.values(PepSmartFilterOperators).find(\r\n (operator) => operator.id === value\r\n );\r\n\r\n this.operator = operator;\r\n this.operatorUnit = this.getDefaultOperatorUnit();\r\n if (this.inline) {\r\n this.setControlsWidth();\r\n }\r\n if (this._parentForm) {\r\n this.updateParentForm();\r\n }\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n\r\n onTimeUnitChanged(value: string) {\r\n const operatorUnit = Object.values(PepSmartFilterOperatorUnits).find(\r\n (operatorUnit) => operatorUnit.id === value\r\n );\r\n this.operatorUnit = operatorUnit;\r\n if (this._parentForm) {\r\n this.updateParentForm();\r\n }\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n\r\n onDateValueChanged() {\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n\r\n}\r\n","import {\r\n AfterViewInit,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\r\nimport {\r\n IPepSmartFilterOperator,\r\n PepSmartFilterOperators,\r\n} from '../common/model/operator';\r\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\r\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\r\nimport { IPepSmartFilterFieldOption } from '../common/model/field';\r\nimport { Observable } from 'rxjs';\r\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { VirtualScrollerComponent } from 'ngx-virtual-scroller';\r\n\r\nclass PepMultiSelectFilterOption implements IPepSmartFilterFieldOption {\r\n value: string;\r\n count?: number;\r\n selected = false;\r\n}\r\n\r\n@Component({\r\n selector: 'pep-multi-select-filter',\r\n templateUrl: './multi-select-filter.component.html',\r\n styleUrls: ['./multi-select-filter.component.scss'],\r\n})\r\nexport class PepMultiSelectFilterComponent\r\n extends BaseFilterComponent\r\n implements OnInit, AfterViewInit {\r\n options: PepMultiSelectFilterOption[] = [];\r\n filteredOptions$: Observable<any>;\r\n searchControl = new FormControl();\r\n //inline props\r\n selected = '';\r\n inlineOptions: IPepOption[] = [];\r\n\r\n @ViewChild('optionsContainer')\r\n optionsContainer: ElementRef;\r\n\r\n private readonly MAX_OPTIONS_TO_SHOW = 6.35;\r\n @ViewChild(VirtualScrollerComponent)\r\n private virtualScroller: VirtualScrollerComponent;\r\n\r\n numberOptionsToShowSearch = 10;\r\n\r\n ngOnInit() {\r\n super.ngOnInit;\r\n\r\n if (this.inline) {\r\n this.inlineControlInit();\r\n } else {\r\n this.noneInlineControlInit();\r\n }\r\n }\r\n\r\n\r\n ngAfterViewInit(): void {\r\n // Calc for the first time.\r\n this.calcOptionsHeight(this.options.length);\r\n }\r\n\r\n private inlineControlInit() {\r\n //load options from field \r\n this.inlineOptions = this.field?.options?.length > 0 ? this.field.options as IPepOption[] : [];\r\n\r\n // Init the selected values from first value. \r\n if (this.firstControl?.value?.length > 0) {\r\n this.selected = this.firstControl.value.join(';');\r\n }\r\n }\r\n\r\n private noneInlineControlInit() {\r\n if (this.field.options?.length > 0) {\r\n this.options = this.field.options.map((opt) => {\r\n return { value: opt.value, count: opt.count, selected: false };\r\n });\r\n } else {\r\n this.searchControl.disable();\r\n }\r\n\r\n // Init the selected values from first value.\r\n const firstControl = this.firstControl;\r\n if (firstControl.value) {\r\n this.initOptionsSelectedValues(firstControl.value);\r\n }\r\n\r\n // Add subscription for the first value change to set the selected options.\r\n firstControl.valueChanges\r\n .pipe(this.getDestroyer(), distinctUntilChanged())\r\n .subscribe((selectedValues: string[]) => {\r\n this.initOptionsSelectedValues(selectedValues);\r\n });\r\n\r\n // Filter the options by the search control.\r\n this.filteredOptions$ = this.searchControl.valueChanges.pipe(\r\n this.getDestroyer(),\r\n startWith<any>(''),\r\n map((option) =>\r\n typeof option === 'string' ? option : option && option.value\r\n ),\r\n map((value) => (value ? this.filterOptions(value) : this.options))\r\n );\r\n\r\n // Each time the filter change.\r\n this.filteredOptions$.subscribe(\r\n (filterdOptions: PepMultiSelectFilterOption[]) => {\r\n this.calcOptionsHeight(filterdOptions.length);\r\n setTimeout(() => {\r\n // 8 is the padding top of the multi-select-options\r\n this.virtualScroller.scrollToPosition(-8);\r\n }, 125);\r\n }\r\n );\r\n\r\n }\r\n\r\n initOptionsSelectedValues(selectedValues: string[]): void {\r\n this.options.forEach((opt) => {\r\n const isValueSelected =\r\n selectedValues && selectedValues.includes(opt.value);\r\n opt.selected = isValueSelected;\r\n });\r\n }\r\n\r\n private calcOptionsHeight(optionsCount: number) {\r\n if (this.optionsContainer) {\r\n const optionsToShow =\r\n optionsCount > this.MAX_OPTIONS_TO_SHOW\r\n ? this.MAX_OPTIONS_TO_SHOW\r\n : optionsCount;\r\n // optionsToShow * 2.25 is 1 option height + 1 is the padding top & bottom of the container.\r\n const optionsHeight = optionsToShow * 2.25 + 1 + 'rem';\r\n\r\n this.renderer.setStyle(\r\n this.optionsContainer.nativeElement,\r\n 'height',\r\n optionsHeight\r\n );\r\n }\r\n }\r\n\r\n private filterOptions(value: string): any[] {\r\n const filterValue = value.toLowerCase();\r\n return this.options.filter(\r\n (opt) =>\r\n opt.value &&\r\n opt.value.toLowerCase().includes(filterValue.toLowerCase())\r\n );\r\n }\r\n\r\n // Override\r\n getDefaultOperator(): IPepSmartFilterOperator {\r\n return PepSmartFilterOperators.In;\r\n }\r\n\r\n // Override\r\n getFilterValue(): IPepSmartFilterDataValue {\r\n if (this.inline) {\r\n return {\r\n first: this.firstControl.value\r\n };\r\n } else {\r\n const selectedValues = this.options\r\n .filter((opt) => opt.selected)\r\n .map((opt) => opt.value);\r\n const filterValue = {\r\n first: selectedValues,\r\n };\r\n\r\n return selectedValues.length > 0 ? filterValue : null;\r\n }\r\n\r\n }\r\n\r\n // Override\r\n initFilter() {\r\n this.options.forEach((opt) => (opt.selected = false));\r\n this.searchControl.setValue('');\r\n }\r\n\r\n onOptionChange(\r\n option: PepMultiSelectFilterOption,\r\n event: MatCheckboxChange\r\n ) {\r\n option.selected = event.checked;\r\n this.firstControl.setValue(\r\n this.options.filter((opt) => opt.selected).map((opt) => opt.value),\r\n { emitEvent: false }\r\n );\r\n }\r\n\r\n onMultiSelectChanged(value: string) {\r\n if (value) {\r\n const selected: string[] = value.split(';');\r\n this.firstControl.setValue(selected);\r\n } else {\r\n this.firstControl.setValue(null);\r\n }\r\n\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnChanges, OnInit } from '@angular/core';\r\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\r\nimport {\r\n IPepSmartFilterOperator,\r\n PepSmartFilterOperators,\r\n} from '../common/model/operator';\r\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\r\nimport { Validators } from '@angular/forms';\r\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'pep-number-filter',\r\n templateUrl: './number-filter.component.html',\r\n styleUrls: ['./number-filter.component.scss'],\r\n})\r\nexport class PepNumberFilterComponent extends BaseFilterComponent implements OnInit {\r\n PepSmartFilterOperators = PepSmartFilterOperators;\r\n chooseTypeOptions: Array<IPepOption> = [];\r\n operatorWidth = '38%';\r\n fieldsWidth = '70%';\r\n\r\n ngOnInit() {\r\n this.firstControl.valueChanges\r\n .pipe(this.getDestroyer(), distinctUntilChanged())\r\n .subscribe(() => {\r\n this.setFieldsStateAndValidators();\r\n });\r\n\r\n this.secondControl.valueChanges\r\n .pipe(this.getDestroyer(), distinctUntilChanged())\r\n .subscribe(() => {\r\n this.setFieldsStateAndValidators();\r\n });\r\n this.setControlsWidth();\r\n }\r\n\r\n // Override\r\n getDefaultOperator(): IPepSmartFilterOperator {\r\n return PepSmartFilterOperators.Equals;\r\n }\r\n\r\n // Override\r\n getFilterValue(): IPepSmartFilterDataValue {\r\n const filterValue = {\r\n first: this.firstControl.value,\r\n };\r\n\r\n if (this.operator === PepSmartFilterOperators.NumberRange) {\r\n filterValue['second'] = this.secondControl.value;\r\n }\r\n\r\n return filterValue;\r\n }\r\n\r\n // Override\r\n loadOperatorsOptions() {\r\n this.chooseTypeOptions = this.operators.map((operator) => {\r\n return {\r\n key: operator.id,\r\n value: this.translate.instant(\r\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\r\n ),\r\n };\r\n });\r\n }\r\n\r\n // Override\r\n setFieldsStateAndValidators(): void {\r\n if (this.operator === PepSmartFilterOperators.NumberRange) {\r\n const firstValidators = [Validators.required];\r\n if (this.secondControl.value) {\r\n firstValidators.push(this.validator.isLessThan(this.secondControl));\r\n }\r\n this.firstControl.setValidators(firstValidators);\r\n\r\n\r\n this.secondControl.enable();\r\n const secondValidators = [Validators.required];\r\n if (this.firstControl.value) {\r\n secondValidators.push(this.validator.isGreaterThan(this.firstControl));\r\n }\r\n this.secondControl.setValidators(secondValidators);\r\n } else {\r\n super.setFieldsStateAndValidators();\r\n }\r\n }\r\n\r\n setControlsWidth() {\r\n if (this.operator === PepSmartFilterOperators.NumberRange) {\r\n this.operatorWidth = '30%';\r\n this.fieldsWidth = '70%';\r\n } else {\r\n this.operatorWidth = '38%';\r\n this.fieldsWidth = '62%';\r\n }\r\n }\r\n\r\n onOperatorChanged(value: string) {\r\n const operator = Object.values(PepSmartFilterOperators).find(\r\n (operator) => operator.id === value\r\n );\r\n this.operator = operator;\r\n if (this._parentForm) {\r\n this.updateParentForm();\r\n }\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n this.setControlsWidth();\r\n }\r\n\r\n onValueChanged() {\r\n if (this.emitOnChange) {\r\n this.applyFilter();\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\n\r\nimport { MatCommonModule } from '@angular/material/core';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\n\r\nimport { VirtualScrollerModule } from 'ngx-virtual-scroller';\r\n\r\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\r\nimport { PepCheckboxModule } from '@pepperi-addons/ngx-lib/checkbox';\r\nimport { PepDateModule } from '@pepperi-addons/ngx-lib/date';\r\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\r\nimport { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';\r\nimport { PepSearchModule } from '@pepperi-addons/ngx-lib/search';\r\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\r\nimport {\r\n PepIconModule,\r\n PepIconRegistry,\r\n pepIconNumberMinus,\r\n pepIconNumberPlus,\r\n} from '@pepperi-addons/ngx-lib/icon';\r\nimport { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';\r\n\r\n// import { BaseFilterComponent } from './common/model/base-filter-component';\r\nimport { PepSmartFiltersComponent } from './smart-filters.component';\r\nimport { PepFilterActionsComponent } from './common/filter-actions.component';\r\nimport { PepTextFilterComponent } from './text-filter/text-filter.component';\r\nimport { PepBooleanFilterComponent } from './boolean-filter/boolean-filter.component';\r\nimport { PepDateFilterComponent } from './date-filter/date-filter.component';\r\nimport { PepMultiSelectFilterComponent } from './multi-select-filter/multi-select-filter.component';\r\nimport { PepNumberFilterComponent } from './number-filter/number-filter.component';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FlexLayoutModule,\r\n // Material modules\r\n MatCommonModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatExpansionModule,\r\n MatIconModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatRadioModule,\r\n // External modules\r\n VirtualScrollerModule,\r\n // ngx-lib modules\r\n PepNgxLibModule,\r\n PepCheckboxModule,\r\n PepDateModule,\r\n PepSelectModule,\r\n PepTextboxModule,\r\n PepSearchModule,\r\n PepIconModule,\r\n PepButtonModule,\r\n PepGroupButtonsModule\r\n ],\r\n exports: [\r\n PepSmartFiltersComponent,\r\n PepTextFilterComponent,\r\n PepBooleanFilterComponent,\r\n PepDateFilterComponent,\r\n PepMultiSelectFilterComponent,\r\n PepNumberFilterComponent\r\n ],\r\n declarations: [\r\n // BaseFilterComponent,\r\n PepSmartFiltersComponent,\r\n PepFilterActionsComponent,\r\n PepTextFilterComponent,\r\n PepBooleanFilterComponent,\r\n PepDateFilterComponent,\r\n PepMultiSelectFilterComponent,\r\n PepNumberFilterComponent\r\n ],\r\n})\r\nexport class PepSmartFiltersModule {\r\n constructor(private pepIconRegistry: PepIconRegistry) {\r\n this.pepIconRegistry.registerIcons([\r\n pepIconNumberMinus,\r\n pepIconNumberPlus,\r\n ]);\r\n }\r\n}\r\n","import {\r\n IPepSmartFilterOperator,\r\n IPepSmartFilterOperatorUnit,\r\n} from './operator';\r\nimport {\r\n PepSmartFilterComponentType,\r\n PepSmartFilterType,\r\n PepSmartFilterOperatorType,\r\n PepSmartFilterOperatorUnitType,\r\n} from './type';\r\n\r\nexport interface IPepSmartFilterFieldOption {\r\n value: string;\r\n count?: number;\r\n}\r\n\r\nexport interface IPepSmartFilterField {\r\n id: string;\r\n name: string;\r\n isOpen?: boolean;\r\n options?: IPepSmartFilterFieldOption[];\r\n operators?: PepSmartFilterOperatorType[];\r\n operatorUnits?: PepSmartFilterOperatorUnitType[];\r\n}\r\n\r\n// Base field\r\n// ------------------------------\r\nexport abstract class PepSmartFilterBaseField implements IPepSmartFilterField {\r\n id: string;\r\n name: string;\r\n isOpen?: boolean;\r\n options?: IPepSmartFilterFieldOption[];\r\n operators?: PepSmartFilterOperatorType[];\r\n operatorUnits?: PepSmartFilterOperatorUnitType[];\r\n\r\n protected _componentType: PepSmartFilterComponentType;\r\n get componentType(): PepSmartFilterComponentType {\r\n return this._componentType;\r\n }\r\n\r\n private _type: PepSmartFilterType;\r\n get type(): PepSmartFilterType {\r\n return this._type;\r\n }\r\n\r\n constructor(field: IPepSmartFilterField) {\r\n this.id = field.id;\r\n this.name = field.name;\r\n this.isOpen = field.isOpen;\r\n this.options = field.options;\r\n this.operators = field.operators;\r\n this.operatorUnits = field.operatorUnits;\r\n\r\n this._type = this.getType();\r\n }\r\n\r\n protected abstract getType(): PepSmartFilterType;\r\n}\r\n// Text field\r\n// ------------------------------\r\nexport class PepSmartFilterTextField extends PepSmartFilterBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n this._componentType = 'text';\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'text';\r\n }\r\n}\r\n\r\n\r\n// Boolean field\r\n// ------------------------------\r\nexport class PepSmartFilterBooleanField extends PepSmartFilterBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n this._componentType = 'boolean';\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'boolean';\r\n }\r\n}\r\n\r\n// Date fields\r\n// ------------------------------\r\nexport abstract class PepSmartFilterDateBaseField extends PepSmartFilterBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n this._componentType = 'date';\r\n }\r\n}\r\nexport class PepSmartFilterDateField extends PepSmartFilterDateBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'date';\r\n }\r\n}\r\nexport class PepSmartFilterDateTimeField extends PepSmartFilterDateBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'date-time';\r\n }\r\n}\r\n\r\n// Multi select field\r\n// ------------------------------\r\nexport class PepSmartFilterMultiSelectField extends PepSmartFilterBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n this._componentType = 'multi-select';\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'multi-select';\r\n }\r\n}\r\n\r\n// Number fields\r\n// ------------------------------\r\nexport abstract class PepSmartFilterNumberBaseField extends PepSmartFilterBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n this._componentType = 'number';\r\n }\r\n}\r\nexport class PepSmartFilterIntField extends PepSmartFilterNumberBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'int';\r\n }\r\n}\r\nexport class PepSmartFilterRealField extends PepSmartFilterNumberBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'real';\r\n }\r\n}\r\nexport class PepSmartFilterCurrencyField extends PepSmartFilterNumberBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'currency';\r\n }\r\n}\r\nexport class PepSmartFilterPercentageField extends PepSmartFilterNumberBaseField {\r\n constructor(field: IPepSmartFilterField) {\r\n super(field);\r\n }\r\n\r\n getType(): PepSmartFilterType {\r\n return 'percentage';\r\n }\r\n}\r\n","import {\r\n IPepSmartFilterField,\r\n PepSmartFilterBaseField,\r\n PepSmartFilterTextField,\r\n PepSmartFilterBooleanField,\r\n PepSmartFilterDateField,\r\n PepSmartFilterMultiSelectField,\r\n PepSmartFilterIntField,\r\n PepSmartFilterDateTimeField,\r\n PepSmartFilterPercentageField,\r\n PepSmartFilterCurrencyField,\r\n PepSmartFilterRealField,\r\n} from './field';\r\nimport { IPepSmartFilterData } from './filter';\r\nimport { IPepSmartFilterOperator, IPepSmartFilterOperatorUnit } from './operator';\r\nimport { PepSmartFilterType } from './type';\r\n\r\nfunction createTextSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterTextField(data);\r\n}\r\n\r\nfunction createBooleanSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterBooleanField(data);\r\n}\r\n\r\nfunction createDateSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterDateField(data);\r\n}\r\n\r\nfunction createDateTimeSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterDateTimeField(data);\r\n}\r\n\r\nfunction createMultiSelectSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterMultiSelectField(data);\r\n}\r\n\r\nfunction createIntSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterIntField(data);\r\n}\r\n\r\nfunction createRealSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterRealField(data);\r\n}\r\n\r\nfunction createCurrencySmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterCurrencyField(data);\r\n}\r\n\r\nfunction createPercentageSmartFilterField(data: IPepSmartFilterField) {\r\n return new PepSmartFilterPercentageField(data);\r\n}\r\n\r\nexport function createSmartFilterField(\r\n data: IPepSmartFilterField,\r\n type: PepSmartFilterType\r\n): PepSmartFilterBaseField {\r\n let field: PepSmartFilterBaseField;\r\n\r\n switch (type) {\r\n case 'text':\r\n field = createTextSmartFilterField(data);\r\n break;\r\n case 'boolean':\r\n field = createBooleanSmartFilterField(data);\r\n break;\r\n case 'date':\r\n field = createDateSmartFilterField(data);\r\n break;\r\n case 'date-time':\r\n field = createDateTimeSmartFilterField(data);\r\n break;\r\n case 'multi-select':\r\n field = createMultiSelectSmartFilterField(data);\r\n break;\r\n case 'int':\r\n field = createIntSmartFilterField(data);\r\n break;\r\n case 'real':\r\n field = createRealSmartFilterField(data);\r\n break;\r\n case 'currency':\r\n field = createCurrencySmartFilterField(data);\r\n break;\r\n case 'percentage':\r\n field = createPercentageSmartFilterField(data);\r\n break;\r\n default:\r\n field = createMultiSelectSmartFilterField(data);\r\n break;\r\n }\r\n\r\n return field;\r\n}\r\n\r\nexport function createSmartFilter(\r\n fieldId: string,\r\n operator: IPepSmartFilterOperator,\r\n first: any,\r\n second?: any,\r\n operatorUnit?: IPepSmartFilterOperatorUnit\r\n): IPepSmartFilterData {\r\n return {\r\n fieldId: fieldId,\r\n operator: operator,\r\n operatorUnit: operatorUnit,\r\n value: {\r\n first: first,\r\n second: second,\r\n },\r\n };\r\n}","/*\r\n * Public API Surface of ngx-lib/smart-filters\r\n */\r\nexport * from './smart-filters.module';\r\nexport * from './smart-filters.component';\r\nexport * from './common/model/base-filter-component';\r\nexport * from './common/filter-actions.component';\r\nexport * from './boolean-filter/boolean-filter.component';\r\nexport * from './date-filter/date-filter.component';\r\nexport * from './multi-select-filter/multi-select-filter.component';\r\nexport * from './number-filter/number-filter.component';\r\nexport * from './text-filter/text-filter.component';\r\n\r\n// Model\r\nexport * from './common/model/creator';\r\nexport * from './common/model/field';\r\nexport * from './common/model/filter';\r\nexport * from './common/model/operator';\r\nexport * from './common/model/type';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EventEmitter","Component","ChangeDetectionStrategy","ElementRef","PepLayoutService","Input","Output","Subject","takeUntil","Validators","Directive","ViewContainerRef","Injector","ComponentFactoryResolver","FormBuilder","TranslateService","PepValidatorService","Renderer2","distinctUntilChanged","FormControl","startWith","map","ViewChild","VirtualScrollerComponent","pepIconNumberMinus","pepIconNumberPlus","NgModule","CommonModule","ReactiveFormsModule","FlexLayoutModule","MatCommonModule","MatCheckboxModule","MatChipsModule","MatExpansionModule","MatIconModule","MatFormFieldModule","MatInputModule","MatRadioModule","VirtualScrollerModule","PepNgxLibModule","PepCheckboxModule","PepDateModule","PepSelectModule","PepTextboxModule","PepSearchModule","PepIconModule","PepButtonModule","PepGroupButtonsModule","PepIconRegistry"],"mappings":";;;;;;IAAA;;;;;;;;;;;;;;IAcA;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;aAEc,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;YACrC,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;QAC9F,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;QACvC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAEM,IAAI,QAAQ,GAAG;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAChF;YACD,OAAO,CAAC,CAAC;SACZ,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;QACL,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;QACpD,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;aAEe,OAAO,CAAC,UAAU,EAAE,SAAS;QACzC,OAAO,UAAU,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;aAEe,UAAU,CAAC,WAAW,EAAE,aAAa;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;aAEe,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS;QACvD,SAAS,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC5G,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM;YACrD,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC3F,SAAS,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC9F,SAAS,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC9G,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;aAEe,WAAW,CAAC,OAAO,EAAE,IAAI;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC9D,OAAO,CAAC;gBAAE,IAAI;oBACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAC7J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACT,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;wBAC9B,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;wBACjD,KAAK,CAAC;4BAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACjD;4BACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BAC5G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACtF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;6BAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;qBAC9B;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;iBAAE;wBAAS;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAAE;YAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,cAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;aAEa,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;aAEe,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;gBAC1C,IAAI,EAAE;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;oBACnC,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;QACD,OAAO,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAAE;gBAC/B;YACJ,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpD;oBACO;gBAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;aAAE;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ;QACpB,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;YAC7D,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,EAAE,CAAC;IACd,CAAC;aAEe,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAC1I,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACxH,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;aAEe,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5I,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;aAEe,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAChK,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;aAEe,oBAAoB,CAAC,MAAM,EAAE,GAAG;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;SAAE;aAAM;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;QAC/G,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC;QACd,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;aAEc,YAAY,CAAC,GAAG;QAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACzI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;aAEe,eAAe,CAAC,GAAG;QAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;QACnL,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClE,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;QAClL,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9G;;;QC1JI,kCACY,WAAuB,EACxB,aAA+B;YAD9B,gBAAW,GAAX,WAAW,CAAY;YACxB,kBAAa,GAAb,aAAa,CAAkB;YA3DjC,UAAK,GAAG,EAAE,CAAC;YAEpB,mBAAc,GAAqC,IAAI,GAAG,EAGvD,CAAC;YAEI,aAAQ,GAA0B,EAAE,CAAC;YAkBrC,YAAO,GAAgC,EAAE,CAAC;YAS1C,uBAAkB,GAAG,KAAK,CAAC;;;YAcnC,kBAAa,GAAwC,IAAIA,iBAAY,EAElE,CAAC;YAGJ,sBAAiB,GAAuC,IAAIA,iBAAY,EAAwB,CAAC;YAEjG,+BAA0B,GAAG,GAAG,CAAC;SAK5B;QApDL,sBACI,6CAAO;iBAIX;gBAAA,iBAUC;gBATG,IAAI,CAAC,QAAQ,GAAG,yBAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAEzC,GAAG,CAAC,UAAC,GAAG;oBACL,IAAI,GAAG,EAAE;wBACL,OAAO,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;qBACvC;iBACJ,CAAC,CAAC;gBAEP,OAAO,IAAI,CAAC,QAAQ,CAAC;aACxB;iBAfD,UACY,KAA4B;gBACpC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aAC5B;;;WAAA;QAcD,sBACI,4CAAM;iBAGV;gBACI,OAAO,IAAI,CAAC,OAAO,CAAC;aACvB;iBAND,UACW,KAAkC;gBACzC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACxB;;;WAAA;QAMD,sBACI,uDAAiB;iBAKrB;gBACI,OAAO,IAAI,CAAC,kBAAkB,CAAC;aAClC;iBARD,UACsB,KAAc;gBAChC,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,4BAA4B,EAAE,CAAC;iBACvC;aACJ;;;WAAA;QAsBO,+DAA4B,GAA5B;;YAEJ,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAChE,IAAI,CACP,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAC9D,IAAI,CACP,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAC9D,IAAI,CACP,CAAC;SACL;QAEO,+CAAY,GAAZ,UAAa,KAA4B;YAAzC,iBAwCP;YAvCG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC5B,IAAI,KAAK,EAAE;gBACP,KAAK,CAAC,OAAO,CAAC,UAAC,MAAM;;oBAEjB,IAAI,YAAY,GAAG,IAAI,CAAC;oBAExB,IAAI,KAAI,CAAC,MAAM,IAAI,KAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;wBACvC,YAAY,GAAG,KAAI,CAAC,MAAM,CAAC,IAAI,CAC3B,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,GAAA,CACd,CAAC;qBAChC;oBAED,IAAI,YAAY,EAAE;;wBAEd,IACI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAClC,YAAY,CAAC,aAAa,CAC7B,EACH;4BACE,IAAI,mBAAmB,GAAG,IAAI,CAAC;4BAC/B,IAAI,MAAM,CAAC,YAAY,EAAE;;gCAErB,IACI,CAAC,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,QAAQ,CACvC,YAAY,CAAC,aAAa,CAC7B,EACH;oCACE,mBAAmB,GAAG,KAAK,CAAC;iCAC/B;6BACJ;;4BAGD,IAAI,mBAAmB,EAAE;gCACrB,KAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;6BACnD;yBACJ;qBACJ;iBACJ,CAAC,CAAC;aACN;SACJ;QAEO,qDAAkB,GAAlB;YACJ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACzC;QAED,8CAAW,GAAX,UAAY,KAAa,EAAE,MAAe;YACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;YACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;SACnD;QAED,+CAAY,GAAZ;YACI,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;SAC/B;QAED,8CAAW,GAAX,UAAY,OAAe;YACvB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SACvC;;QAGD,iDAAc,GAAd;YACI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;;QAGD,gDAAa,GAAb,UAAc,KAA2B;YACrC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;;QAGD,iDAAc,GAAd,UACI,KAA2B,EAC3B,UAA+B;YAE/B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,kBAAkB,EAAE,CAAC;SAC7B;;;;gBAlKJC,cAAS,SAAC;oBACP,QAAQ,EAAE,mBAAmB;oBAC7B,y2IAA6C;oBAE7C,eAAe,EAAEC,4BAAuB,CAAC,MAAM;;iBAClD;;;gBAdGC,eAAU;gBAMLC,uBAAgB;;;wBAWpBC,UAAK;0BAQLA,UAAK;yBAkBLA,UAAK;oCASLA,UAAK;gCAYLC,WAAM;oCAKNA,WAAM;;;;QCxEX;YAQc,eAAU,GAAuB,IAAIN,iBAAY,EAAQ,CAAC;YAC1D,eAAU,GAA0B,IAAIA,iBAAY,EAAW,CAAC;SAS7E;QAPG,yCAAK,GAAL;YACI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SAC1B;QAED,yCAAK,GAAL;YACI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SAC1B;;;;gBAjBJC,cAAS,SAAC;oBACP,QAAQ,EAAE,oBAAoB;oBAC9B,gcAA8C;;iBAEjD;;;uBAEII,UAAK;6BAELC,WAAM;6BACNA,WAAM;;;;QCPX;SAKC;sCAAA;KAAA,IAAA;IAED,IAAM,MAAM,GAA4B;QACpC,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,GAAG;QACV,aAAa,EAAE;YACX,QAAQ;YACR,SAAS;;;;;;SAMZ;KACJ,CAAC;IAEF,IAAM,QAAQ,GAA4B;QACtC,EAAE,EAAE,KAAK;QACT,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,IAAI;QACX,aAAa,EAAE;YACX,QAAQ;;;;;;SAMX;KACJ,CAAC;IAEF,IAAM,QAAQ,GAA4B;QACtC,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,GAAG;QACV,aAAa,EAAE,CAAC,QAAQ,CAAC;KAC5B,CAAC;IAEF;IACA;IACA;IACA;IACA;IACA;IAEA,IAAM,WAAW,GAA4B;QACzC,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,GAAG;QACV,aAAa,EAAE,CAAC,QAAQ,CAAC;KAC5B,CAAC;IAEF;IACA;IACA;IACA;IACA;IACA;IAEA,IAAM,WAAW,GAA4B;QACzC,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,OAAO;QACd,aAAa,EAAE,CAAC,QAAQ,CAAC;KAC5B,CAAC;IAEF,IAAM,QAAQ,GAA4B;QACtC,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IAEA;IACA;IACA;IACA;IACA;IACA;IAEA,IAAM,SAAS,GAA4B;QACvC,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,aAAa;QACpB,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,IAAM,KAAK,GAA4B;QACnC,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,IAAM,QAAQ,GAA4B;QACtC,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,IAAM,SAAS,GAA4B;QACvC,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY;QACnB,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,IAAM,SAAS,GAA4B;QACvC,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,OAAO;QACd,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,IAAM,KAAK,GAA4B;QACnC,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,IAAM,EAAE,GAA4B;QAChC,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,IAAI;QACX,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,IAAM,YAAY,GAA4B;QAC1C,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,iBAAiB;QACvB,KAAK,EAAE,iBAAiB;QACxB,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,IAAM,QAAQ,GAA4B;QACtC,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY;QACnB,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,IAAM,OAAO,GAA4B;QACrC,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,IAAM,UAAU,GAA4B;QACxC,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,cAAc;QACrB,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,IAAM,EAAE,GAA4B;QAChC,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,IAAI;QACX,aAAa,EAAE,CAAC,cAAc,CAAC;KAClC,CAAC;QAEW,uBAAuB,GAAG;QACnC,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,QAAQ;;QAElB,WAAW,EAAE,WAAW;;QAExB,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,QAAQ;;;;;QAKlB,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,KAAK;QACZ,EAAE,EAAE,EAAE;QACN,YAAY,EAAE,YAAY;QAC1B,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,OAAO;QAChB,UAAU,EAAE,UAAU;QACtB,EAAE,EAAE,EAAE;MACR;;QAEF;SAIC;0CAAA;KAAA,IAAA;IAED,IAAM,IAAI,GAAgC;QACtC,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,MAAM;QACZ,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,IAAM,KAAK,GAAgC;QACvC,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,IAAM,MAAM,GAAgC;QACxC,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;IAEF,IAAM,KAAK,GAAgC;QACvC,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,OAAO;QACb,aAAa,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAC;QAEW,2BAA2B,GAAG;QACvC,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,KAAK;;;;QC1GZ,6BACY,gBAAkC,EAClC,QAAkB,EAClB,QAAkC,EAClC,OAAoB,EAClB,SAA2B,EAC3B,SAA8B,EAC9B,QAAmB;YANrB,qBAAgB,GAAhB,gBAAgB,CAAkB;YAClC,aAAQ,GAAR,QAAQ,CAAU;YAClB,aAAQ,GAAR,QAAQ,CAA0B;YAClC,YAAO,GAAP,OAAO,CAAa;YAClB,cAAS,GAAT,SAAS,CAAkB;YAC3B,cAAS,GAAT,SAAS,CAAqB;YAC9B,aAAQ,GAAR,QAAQ,CAAW;YAxGzB,uBAAkB,GAAG,EAAE,CAAC;YA2BvB,iBAAY,GAAG,KAAK,CAAC;YACrB,WAAM,GAAG,KAAK,CAAC;YACf,sBAAiB,GAAG,IAAI,CAAC;YACzB,gBAAW,GAAG,IAAI,CAAC;YAElB,gBAAW,GAAuB,IAAIN,iBAAY,EAAQ,CAAC;YAErE,iBAAY,GAAsC,IAAIA,iBAAY,EAAuB,CAAC;YAyDvE,iCAA4B,GAAG,yBAAyB,CAAC;YACzD,sCAAiC,GAChD,8BAA8B,CAAC;YAa/B,IAAI,CAAC,UAAU,GAAG,IAAIO,YAAO,EAAE,CAAC;SACnC;QAzGD,sBACI,sCAAK;iBAKT;gBACI,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;iBARD,UACU,KAA8B;gBACpC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,kBAAkB,GAAG,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;gBACpE,IAAI,CAAC,SAAS,EAAE,CAAC;aACpB;;;WAAA;QAMD,sBACI,uCAAM;iBAIV;gBACI,OAAO,IAAI,CAAC,OAAO,CAAC;aACvB;iBAPD,UACW,KAA0B;gBACjC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;;;WAAA;QAKD,sBACI,2CAAU;iBADd,UACe,IAAe;gBAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;;;WAAA;QAWD,sBAAI,yCAAQ;iBAcZ;gBACI,OAAO,IAAI,CAAC,SAAS,CAAC;aACzB;iBAhBD,UAAa,QAAiC;;gBAC1C,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,MAAI,MAAA,IAAI,CAAC,SAAS,0CAAE,EAAE,CAAA,EAAE;;oBAEpC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,GAAA,CAAC,CAAC;oBACpE,IAAI,KAAK,IAAI,CAAC,EAAE;wBACZ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;qBAC1C;yBAAM;wBACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;qBACtC;oBAED,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAClB,IAAI,CAAC,cAAc,EAAE,CAAC;iBACzB;aACJ;;;WAAA;QAMD,sBAAI,6CAAY;iBAehB;gBACI,OAAO,IAAI,CAAC,aAAa,CAAC;aAC7B;iBAjBD,UAAiB,YAAyC;;gBAEtD,IAAI,YAAY,EAAE;oBACd,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CACtC,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,GAAA,CACpC,CAAC;oBACF,IAAI,KAAK,IAAI,CAAC,EAAE;wBACZ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;qBAClD;yBAAM;wBACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;qBAC9C;iBACJ;qBAAM;oBACH,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;iBAClC;aACJ;;;WAAA;QAKD,sBAAI,gDAAe;iBAAnB;gBACI,OAAO,IAAI,CAAC,KAAK,GAAM,IAAI,CAAC,kBAAkB,WAAQ,GAAG,OAAO,CAAC;aACpE;;;WAAA;QACD,sBAAI,6CAAY;iBAAhB;gBACI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;aAC9C;;;WAAA;QACD,sBAAI,iDAAgB;iBAApB;gBACI,OAAO,IAAI,CAAC,KAAK,GAAM,IAAI,CAAC,kBAAkB,YAAS,GAAG,QAAQ,CAAC;aACtE;;;WAAA;QACD,sBAAI,8CAAa;iBAAjB;gBACI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAC/C;;;WAAA;QAuBO,oDAAsB,GAAtB;YAAA,iBAeP;YAdG,IAAM,OAAO,GAAgD,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAC9F,yBAAyB,CAC5B,CAAC;YAEF,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,cACnD,OAAA,KAAI,CAAC,WAAW,EAAE,GAAA,CACrB,CAAC;YACF,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,cACnD,OAAA,KAAI,CAAC,WAAW,EAAE,GAAA,CACrB,CAAC;YAEF,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;SACnE;QAEO,uCAAS,GAAT;YACJ,IAAM,SAAS,GAAG,EAAE,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;;YAEtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;;;YAI1C,IAAI,CAAC,cAAc,EAAE,CAAC;YAEtB,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,sBAAsB,EAAE,CAAC;aACjC;SACJ;QAEO,4CAAc,GAAd;YAAA,iBAqCP;;;YAnCG,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC;iBAChD,MAAM,CAAC,UAAC,GAAG;gBACR,OAAO,uBAAuB,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CACtD,KAAI,CAAC,KAAK,CAAC,aAAa,CAC3B,CAAC;aACL,CAAC;iBACD,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,uBAAuB,CAAC,GAAG,CAAC,GAAA,CAAC,CAAC;;YAGhD,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,MAAM,IAAG,CAAC,EAAE;gBAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAC,EAAE,IACtC,OAAA,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,EAAE,KAAK,EAAE,GAAA,CAAC,GAAA,CAClD,CAAC;aACL;;YAGD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC;iBACxD,MAAM,CAAC,UAAC,GAAG;gBACR,OAAO,2BAA2B,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,QAAQ,CAC1D,KAAI,CAAC,KAAK,CAAC,aAAa,CAC3B,CAAC;aACL,CAAC;iBACD,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,2BAA2B,CAAC,GAAG,CAAC,GAAA,CAAC,CAAC;;YAGpD,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,0CAAE,MAAM,IAAG,CAAC,EAAE;gBACtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAC,EAAE,IAC9C,OAAA,KAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,CAAC,EAAE,KAAK,EAAE,GAAA,CAAC,GAAA,CACtD,CAAC;aACL;;YAGD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,SAAS,CAAC,UAAC,GAAG;gBACpD,KAAI,CAAC,oBAAoB,EAAE,CAAC;aAC/B,CAAC,CAAC;SACN;QAEO,yCAAW,GAAX;YACJ,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC7C,IAAM,SAAS,GAAG,EAAE,CAAC;gBACrB,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;gBAC1D,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC5D,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;aACnC;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAClD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aAC3B;SACJ;QAES,8CAAgB,GAAhB;YACN,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7E,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACrF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACrD,KAAK,EAAE,IAAI,CAAC,YAAY;gBACxB,MAAM,EAAE,IAAI,CAAC,aAAa;aAC7B,CAAC,CAAC,CAAC;SACP;QAES,0CAAY,GAAZ;YACN,OAAOC,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SACrC;QAEO,4CAAc,GAAd;YACJ,IAAI,CAAC,2BAA2B,EAAE,CAAC;YAEnC,IAAI,CAAC,YAAY,CAAC,sBAAsB,EAAE,CAAC;YAC3C,IAAI,CAAC,aAAa,CAAC,sBAAsB,EAAE,CAAC;SAC/C;;QAES,kDAAoB,GAApB;;SAET;;QAGS,yDAA2B,GAA3B;YACN,IAAI,CAAC,YAAY,CAAC,aAAa,CAACC,gBAAU,CAAC,QAAQ,CAAC,CAAC;YACrD,IAAI,CAAC,aAAa,CAAC,aAAa,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;SAChC;;QAGS,oDAAsB,GAAtB;YACN,OAAO,SAAS,CAAC;SACpB;QAES,wCAAU,GAAV;;SAET;QAKD,yCAAW,GAAX,UAAY,SAAgB;YAAhB,0BAAA,EAAA,gBAAgB;YACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;YAElB,IAAI,SAAS,EAAE;gBACX,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;aAC3B;SACJ;QAED,yCAAW,GAAX;YACI,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;;YAG1C,IAAI,WAAW,EAAE;gBACb,IAAM,MAAM,GAAG;oBACX,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;oBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,KAAK,EAAE,WAAW;iBACrB,CAAC;gBACF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;gBACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAClC;iBAAM;gBACH,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;SACJ;QAED,sCAAQ,GAAR;YACI,IAAI,IAAI,CAAC,IAAI,EAAE;gBACX,IAAI,CAAC,cAAc,EAAE,CAAC;aACzB;SACJ;QAED,yCAAW,GAAX;;;;SAIC;QAED,yCAAW,GAAX;YACI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAE3B,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;aACtC;SACJ;;;;gBAtSJC,cAAS,SAAC,EAAE;;;gBAlCTC,qBAAgB;gBAKhBC,aAAQ;gBAHRC,6BAAwB;gBAQxBC,iBAAW;gBAoBNC,uBAAgB;gBAXhBC,0BAAmB;gBArBxBC,cAAS;;;wBA4CRZ,UAAK;yBAWLA,UAAK;6BASLA,UAAK;+BAKLA,UAAK;yBACLA,UAAK;oCACLA,UAAK;8BACLA,UAAK;8BAELC,WAAM;+BACNA,WAAM;;;;QCtEiC,0CAAmB;QAL/D;YAAA,6EAgFC;YA1EG,uBAAiB,GAAsB,EAAE,CAAC;YAC1C,mBAAa,GAAG,KAAK,CAAC;YACtB,uBAAiB,GAAG,KAAK,CAAC;;SAwE7B;QAtEG,yCAAQ,GAAR;YAAA,iBAMC;YALG,IAAI,CAAC,YAAY,CAAC,YAAY;iBACzB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAEY,8BAAoB,EAAE,CAAC;iBACjD,SAAS,CAAC;gBACP,KAAI,CAAC,2BAA2B,EAAE,CAAC;aACtC,CAAC,CAAC;SACV;;QAGD,mDAAkB,GAAlB;YACI,OAAO,uBAAuB,CAAC,MAAM,CAAC;SACzC;;QAGD,+CAAc,GAAd;YACI,IAAM,WAAW,GAAG;gBAChB,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;aACjC,CAAC;YAEF,IAAI,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,WAAW,EAAE;gBACvD,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;aACpD;YAED,OAAO,WAAW,CAAC;SACtB;;QAGD,qDAAoB,GAApB;YAAA,iBASC;YARG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,QAAQ;gBACjD,OAAO;oBACH,GAAG,EAAE,QAAQ,CAAC,EAAE;oBAChB,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,OAAO,CACtB,KAAI,CAAC,4BAA4B,SAAI,QAAQ,CAAC,IAAM,CAC1D;iBACJ,CAAC;aACL,CAAC,CAAC;SACN;;QAGD,4DAA2B,GAA3B;YACI,IAAI,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,WAAW,EAAE;gBACvD,IAAM,eAAe,GAAG,CAACT,gBAAU,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;oBAC1B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;iBACvE;gBACD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;aACpD;iBAAM;gBACH,iBAAM,2BAA2B,WAAE,CAAC;aACvC;SACJ;QAED,kDAAiB,GAAjB,UAAkB,KAAa;YAC3B,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CACxD,UAAC,QAAQ,IAAK,OAAA,QAAQ,CAAC,EAAE,KAAK,KAAK,GAAA,CACtC,CAAC;YACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;SACJ;QAED,+CAAc,GAAd;YACI,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;SACJ;;KAzEL,CAA4C,mBAAmB;;gBAL9DR,cAAS,SAAC;oBACP,QAAQ,EAAE,iBAAiB;oBAC3B,u2BAA2C;;iBAE9C;;;;QCD8C,6CAAmB;QALlE;YAAA,6EAmCC;YA7BY,aAAO,GAAiB,EAAE,CAAC;;;;;;SA6BvC;QA3BG,4CAAQ,GAAR;;SAEC;;QAID,sDAAkB,GAAlB;YACI,OAAO,uBAAuB,CAAC,MAAM,CAAC;SACzC;;QAGD,kDAAc,GAAd;YACI,IAAM,WAAW,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,KAAK,EAAE,CAAC;YAChE,OAAO,WAAW,CAAC;SACtB;QAED,kDAAc,GAAd,UAAe,KAAK;YAChB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAElC,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;SACJ;;KAzBL,CAA+C,mBAAmB;;gBALjEA,cAAS,SAAC;oBACP,QAAQ,EAAE,oBAAoB;oBAC9B,y0BAA8C;;iBAEjD;;;0BAEII,UAAK;;;;QCEkC,0CAAmB;QAL/D;YAAA,6EAiKC;YA3JG,6BAAuB,GAAG,uBAAuB,CAAC;YAClD,uBAAiB,GAAsB,EAAE,CAAC;YAC1C,2BAAqB,GAAsB,EAAE,CAAC;;SAyJjD;QArJG,yCAAQ,GAAR;YACI,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;SACJ;;QAGD,mDAAkB,GAAlB;YACI,OAAO,uBAAuB,CAAC,SAAS,CAAC;SAC5C;;QAGD,uDAAsB,GAAtB;YACI,IAAI,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,SAAS;gBACnD,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,YAAY;gBACtD,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,KAAK;gBAC/C,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,QAAQ,EAAE;gBACpD,OAAO,2BAA2B,CAAC,MAAM,CAAC;aAC7C;iBAAM;gBACH,OAAO,SAAS,CAAC;aACpB;SACJ;;QAGD,+CAAc,GAAd;YACI,IAAM,WAAW,GAAG;gBAChB,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;aACjC,CAAC;YAEF,IAAI,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,SAAS,EAAE;gBACrD,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;aACpD;YAED,OAAO,WAAW,CAAC;SACtB;;QAGD,qDAAoB,GAApB;YAAA,iBAkBC;YAjBG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,QAAQ;gBACjD,OAAO;oBACH,GAAG,EAAE,QAAQ,CAAC,EAAE;oBAChB,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,OAAO,CACtB,KAAI,CAAC,4BAA4B,SAAI,QAAQ,CAAC,IAAM,CAC1D;iBACJ,CAAC;aACL,CAAC,CAAC;YAEH,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAC,YAAY;gBAC7D,OAAO;oBACH,GAAG,EAAE,YAAY,CAAC,EAAE;oBACpB,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,OAAO,CACtB,KAAI,CAAC,iCAAiC,SAAI,YAAY,CAAC,IAAM,CACnE;iBACJ,CAAC;aACL,CAAC,CAAC;SACN;;QAGD,4DAA2B,GAA3B;YACI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAE3B,IAAI,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,SAAS,EAAE;gBACrD,IAAI,CAAC,YAAY,CAAC,aAAa,CAACI,gBAAU,CAAC,QAAQ,CAAC,CAAC;gBACrD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC,aAAa,CAAC,aAAa,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;aACzD;iBAAM,IACH,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,SAAS;gBACnD,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,YAAY;gBACtD,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,KAAK;gBAC/C,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,QAAQ,EACpD;gBACE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;oBAC5BA,gBAAU,CAAC,QAAQ;oBACnB,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE;iBACnC,CAAC,CAAC;gBACH,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;aAChC;iBAAM;;gBAEH,IACI,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,KAAK;oBAC/C,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,QAAQ;oBAClD,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,SAAS;oBACnD,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,OAAO;oBACjD,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,UAAU,EACtD;oBACE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;iBAC/B;;gBAGD,iBAAM,2BAA2B,WAAE,CAAC;aACvC;SACJ;QAED,iDAAgB,GAAhB;YACI,IACI,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,KAAK;gBAC/C,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,QAAQ;gBAClD,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,SAAS;gBACnD,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,OAAO;gBACjD,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,UAAU,EACtD;gBACE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;gBAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;aAC3B;iBAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,EAAE,EAAE;gBACrD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC5B;SACJ;QAED,kDAAiB,GAAjB,UAAkB,KAAa;YAC3B,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CACxD,UAAC,QAAQ,IAAK,OAAA,QAAQ,CAAC,EAAE,KAAK,KAAK,GAAA,CACtC,CAAC;YAEF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAClD,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;SACJ;QAED,kDAAiB,GAAjB,UAAkB,KAAa;YAC3B,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAChE,UAAC,YAAY,IAAK,OAAA,YAAY,CAAC,EAAE,KAAK,KAAK,GAAA,CAC9C,CAAC;YACF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;YACjC,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;SACJ;QAED,mDAAkB,GAAlB;YACI,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;SACJ;;KA1JL,CAA4C,mBAAmB;;gBAL9DR,cAAS,SAAC;oBACP,QAAQ,EAAE,iBAAiB;oBAC3B,22GAA2C;;iBAE9C;;;ICOD;QAAA;YAGI,aAAQ,GAAG,KAAK,CAAC;SACpB;yCAAA;KAAA,IAAA;;QAQW,iDAAmB;QAN/B;YAAA,6EAuLC;YA/KG,aAAO,GAAiC,EAAE,CAAC;YAE3C,mBAAa,GAAG,IAAIkB,iBAAW,EAAE,CAAC;;YAElC,cAAQ,GAAG,EAAE,CAAC;YACd,mBAAa,GAAiB,EAAE,CAAC;YAKhB,yBAAmB,GAAG,IAAI,CAAC;YAI5C,+BAAyB,GAAG,EAAE,CAAC;;SAiKlC;QA/JG,gDAAQ,GAAR;YACI,iBAAM,QAAQ,CAAC;YAEf,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAChC;SACJ;QAGD,uDAAe,GAAf;;YAEI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC/C;QAEO,yDAAiB,GAAjB;;;YAEJ,IAAI,CAAC,aAAa,GAAG,CAAA,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,0CAAE,MAAM,IAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAuB,GAAG,EAAE,CAAC;;YAG/F,IAAI,CAAA,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,KAAK,0CAAE,MAAM,IAAG,CAAC,EAAE;gBACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACrD;SACJ;QAEO,6DAAqB,GAArB;YAAA,iBA2CP;;YA1CG,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,MAAM,IAAG,CAAC,EAAE;gBAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,GAAG;oBACtC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;iBAClE,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;aAChC;;YAGD,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACvC,IAAI,YAAY,CAAC,KAAK,EAAE;gBACpB,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aACtD;;YAGD,YAAY,CAAC,YAAY;iBACpB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAED,8BAAoB,EAAE,CAAC;iBACjD,SAAS,CAAC,UAAC,cAAwB;gBAChC,KAAI,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;aAClD,CAAC,CAAC;;YAGP,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CACxD,IAAI,CAAC,YAAY,EAAE,EACnBE,mBAAS,CAAM,EAAE,CAAC,EAClBC,aAAG,CAAC,UAAC,MAAM,IACP,OAAA,OAAO,MAAM,KAAK,QAAQ,GAAG,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,KAAK,GAAA,CAC/D,EACDA,aAAG,CAAC,UAAC,KAAK,IAAK,QAAC,KAAK,GAAG,KAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,KAAI,CAAC,OAAO,IAAC,CAAC,CACrE,CAAC;;YAGF,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAC3B,UAAC,cAA4C;gBACzC,KAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBAC9C,UAAU,CAAC;;oBAEP,KAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC7C,EAAE,GAAG,CAAC,CAAC;aACX,CACJ,CAAC;SAEL;QAED,iEAAyB,GAAzB,UAA0B,cAAwB;YAC9C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,GAAG;gBACrB,IAAM,eAAe,GACjB,cAAc,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACzD,GAAG,CAAC,QAAQ,GAAG,eAAe,CAAC;aAClC,CAAC,CAAC;SACN;QAEO,yDAAiB,GAAjB,UAAkB,YAAoB;YAC1C,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAM,aAAa,GACf,YAAY,GAAG,IAAI,CAAC,mBAAmB;sBACjC,IAAI,CAAC,mBAAmB;sBACxB,YAAY,CAAC;;gBAEvB,IAAM,aAAa,GAAG,aAAa,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC;gBAEvD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,gBAAgB,CAAC,aAAa,EACnC,QAAQ,EACR,aAAa,CAChB,CAAC;aACL;SACJ;QAEO,qDAAa,GAAb,UAAc,KAAa;YAC/B,IAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACtB,UAAC,GAAG,IACA,OAAA,GAAG,CAAC,KAAK;gBACT,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,GAAA,CAClE,CAAC;SACL;;QAGD,0DAAkB,GAAlB;YACI,OAAO,uBAAuB,CAAC,EAAE,CAAC;SACrC;;QAGD,sDAAc,GAAd;YACI,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,OAAO;oBACH,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;iBACjC,CAAC;aACL;iBAAM;gBACH,IAAM,cAAc,GAAG,IAAI,CAAC,OAAO;qBAC9B,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,QAAQ,GAAA,CAAC;qBAC7B,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,KAAK,GAAA,CAAC,CAAC;gBAC7B,IAAM,WAAW,GAAG;oBAChB,KAAK,EAAE,cAAc;iBACxB,CAAC;gBAEF,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC;aACzD;SAEJ;;QAGD,kDAAU,GAAV;YACI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,GAAG,IAAK,QAAC,GAAG,CAAC,QAAQ,GAAG,KAAK,IAAC,CAAC,CAAC;YACtD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SACnC;QAED,sDAAc,GAAd,UACI,MAAkC,EAClC,KAAwB;YAExB,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,QAAQ,CACtB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,QAAQ,GAAA,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,CAAC,KAAK,GAAA,CAAC,EAClE,EAAE,SAAS,EAAE,KAAK,EAAE,CACvB,CAAC;SACL;QAED,4DAAoB,GAApB,UAAqB,KAAa;YAC9B,IAAI,KAAK,EAAE;gBACP,IAAM,QAAQ,GAAa,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;aACxC;iBAAM;gBACH,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACpC;YAED,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;SACJ;;KAhLL,CACY,mBAAmB;;gBAN9BpB,cAAS,SAAC;oBACP,QAAQ,EAAE,yBAAyB;oBACnC,69DAAmD;;iBAEtD;;;mCAWIqB,cAAS,SAAC,kBAAkB;kCAI5BA,cAAS,SAACC,2CAAwB;;;;QChCO,4CAAmB;QALjE;YAAA,6EA2GC;YArGG,6BAAuB,GAAG,uBAAuB,CAAC;YAClD,uBAAiB,GAAsB,EAAE,CAAC;YAC1C,mBAAa,GAAG,KAAK,CAAC;YACtB,iBAAW,GAAG,KAAK,CAAC;;SAkGvB;QAhGG,2CAAQ,GAAR;YAAA,iBAaC;YAZG,IAAI,CAAC,YAAY,CAAC,YAAY;iBACzB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAEL,8BAAoB,EAAE,CAAC;iBACjD,SAAS,CAAC;gBACP,KAAI,CAAC,2BAA2B,EAAE,CAAC;aACtC,CAAC,CAAC;YAEP,IAAI,CAAC,aAAa,CAAC,YAAY;iBAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAEA,8BAAoB,EAAE,CAAC;iBACjD,SAAS,CAAC;gBACP,KAAI,CAAC,2BAA2B,EAAE,CAAC;aACtC,CAAC,CAAC;YACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;;QAGD,qDAAkB,GAAlB;YACI,OAAO,uBAAuB,CAAC,MAAM,CAAC;SACzC;;QAGD,iDAAc,GAAd;YACI,IAAM,WAAW,GAAG;gBAChB,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;aACjC,CAAC;YAEF,IAAI,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,WAAW,EAAE;gBACvD,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;aACpD;YAED,OAAO,WAAW,CAAC;SACtB;;QAGD,uDAAoB,GAApB;YAAA,iBASC;YARG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,QAAQ;gBACjD,OAAO;oBACH,GAAG,EAAE,QAAQ,CAAC,EAAE;oBAChB,KAAK,EAAE,KAAI,CAAC,SAAS,CAAC,OAAO,CACtB,KAAI,CAAC,4BAA4B,SAAI,QAAQ,CAAC,IAAM,CAC1D;iBACJ,CAAC;aACL,CAAC,CAAC;SACN;;QAGD,8DAA2B,GAA3B;YACI,IAAI,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,WAAW,EAAE;gBACvD,IAAM,eAAe,GAAG,CAACT,gBAAU,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;oBAC1B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;iBACvE;gBACD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;gBAGjD,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC5B,IAAM,gBAAgB,GAAG,CAACA,gBAAU,CAAC,QAAQ,CAAC,CAAC;gBAC/C,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;oBACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;iBAC1E;gBACD,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;aACtD;iBAAM;gBACH,iBAAM,2BAA2B,WAAE,CAAC;aACvC;SACJ;QAED,mDAAgB,GAAhB;YACI,IAAI,IAAI,CAAC,QAAQ,KAAK,uBAAuB,CAAC,WAAW,EAAE;gBACvD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC5B;iBAAM;gBACH,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aAC5B;SACJ;QAED,oDAAiB,GAAjB,UAAkB,KAAa;YAC3B,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,IAAI,CACxD,UAAC,QAAQ,IAAK,OAAA,QAAQ,CAAC,EAAE,KAAK,KAAK,GAAA,CACtC,CAAC;YACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;aAC3B;YACD,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B;QAED,iDAAc,GAAd;YACI,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;SACJ;;KApGL,CAA8C,mBAAmB;;gBALhER,cAAS,SAAC;oBACP,QAAQ,EAAE,mBAAmB;oBAC7B,uqEAA6C;;iBAEhD;;;;QCyEG,+BAAoB,eAAgC;YAAhC,oBAAe,GAAf,eAAe,CAAiB;YAChD,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;gBAC/BuB,uBAAkB;gBAClBC,sBAAiB;aACpB,CAAC,CAAC;SACN;;;;gBApDJC,aAAQ,SAAC;oBACN,OAAO,EAAE;wBACLC,mBAAY;wBACZC,yBAAmB;wBACnBC,2BAAgB;;wBAEhBC,sBAAe;wBACfC,0BAAiB;wBACjBC,oBAAc;wBACdC,4BAAkB;wBAClBC,oBAAa;wBACbC,4BAAkB;wBAClBC,oBAAc;wBACdC,oBAAc;;wBAEdC,wCAAqB;;wBAErBC,sBAAe;wBACfC,4BAAiB;wBACjBC,kBAAa;wBACbC,sBAAe;wBACfC,wBAAgB;wBAChBC,sBAAe;wBACfC,kBAAa;wBACbC,sBAAe;wBACfC,kCAAqB;qBACxB;oBACD,OAAO,EAAE;wBACL,wBAAwB;wBACxB,sBAAsB;wBACtB,yBAAyB;wBACzB,sBAAsB;wBACtB,6BAA6B;wBAC7B,wBAAwB;qBAC3B;oBACD,YAAY,EAAE;;wBAEV,wBAAwB;wBACxB,yBAAyB;wBACzB,sBAAsB;wBACtB,yBAAyB;wBACzB,sBAAsB;wBACtB,6BAA6B;wBAC7B,wBAAwB;qBAC3B;iBACJ;;;gBA7DGC,oBAAe;;;ICAnB;IACA;;QAmBI,iCAAY,KAA2B;YACnC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;YAEzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;SAC/B;QAlBD,sBAAI,kDAAa;iBAAjB;gBACI,OAAO,IAAI,CAAC,cAAc,CAAC;aAC9B;;;WAAA;QAGD,sBAAI,yCAAI;iBAAR;gBACI,OAAO,IAAI,CAAC,KAAK,CAAC;aACrB;;;WAAA;sCAcJ;KAAA,IAAA;IACD;IACA;;QAC6C,2CAAuB;QAChE,iCAAY,KAA2B;YAAvC,YACI,kBAAM,KAAK,CAAC,SAEf;YADG,KAAI,CAAC,cAAc,GAAG,MAAM,CAAC;;SAChC;QAED,yCAAO,GAAP;YACI,OAAO,MAAM,CAAC;SACjB;sCACJ;KATD,CAA6C,uBAAuB,GASnE;IAGD;IACA;;QACgD,8CAAuB;QACnE,oCAAY,KAA2B;YAAvC,YACI,kBAAM,KAAK,CAAC,SAEf;YADG,KAAI,CAAC,cAAc,GAAG,SAAS,CAAC;;SACnC;QAED,4CAAO,GAAP;YACI,OAAO,SAAS,CAAC;SACpB;yCACJ;KATD,CAAgD,uBAAuB,GAStE;IAED;IACA;;QAC0D,+CAAuB;QAC7E,qCAAY,KAA2B;YAAvC,YACI,kBAAM,KAAK,CAAC,SAEf;YADG,KAAI,CAAC,cAAc,GAAG,MAAM,CAAC;;SAChC;0CACJ;KALD,CAA0D,uBAAuB,GAKhF;;QAC4C,2CAA2B;QACpE,iCAAY,KAA2B;mBACnC,kBAAM,KAAK,CAAC;SACf;QAED,yCAAO,GAAP;YACI,OAAO,MAAM,CAAC;SACjB;sCACJ;KARD,CAA6C,2BAA2B,GAQvE;;QACgD,+CAA2B;QACxE,qCAAY,KAA2B;mBACnC,kBAAM,KAAK,CAAC;SACf;QAED,6CAAO,GAAP;YACI,OAAO,WAAW,CAAC;SACtB;0CACJ;KARD,CAAiD,2BAA2B,GAQ3E;IAED;IACA;;QACoD,kDAAuB;QACvE,wCAAY,KAA2B;YAAvC,YACI,kBAAM,KAAK,CAAC,SAEf;YADG,KAAI,CAAC,cAAc,GAAG,cAAc,CAAC;;SACxC;QAED,gDAAO,GAAP;YACI,OAAO,cAAc,CAAC;SACzB;6CACJ;KATD,CAAoD,uBAAuB,GAS1E;IAED;IACA;;QAC4D,iDAAuB;QAC/E,uCAAY,KAA2B;YAAvC,YACI,kBAAM,KAAK,CAAC,SAEf;YADG,KAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;;SAClC;4CACJ;KALD,CAA4D,uBAAuB,GAKlF;;QAC2C,0CAA6B;QACrE,gCAAY,KAA2B;mBACnC,kBAAM,KAAK,CAAC;SACf;QAED,wCAAO,GAAP;YACI,OAAO,KAAK,CAAC;SAChB;qCACJ;KARD,CAA4C,6BAA6B,GAQxE;;QAC4C,2CAA6B;QACtE,iCAAY,KAA2B;mBACnC,kBAAM,KAAK,CAAC;SACf;QAED,yCAAO,GAAP;YACI,OAAO,MAAM,CAAC;SACjB;sCACJ;KARD,CAA6C,6BAA6B,GAQzE;;QACgD,+CAA6B;QAC1E,qCAAY,KAA2B;mBACnC,kBAAM,KAAK,CAAC;SACf;QAED,6CAAO,GAAP;YACI,OAAO,UAAU,CAAC;SACrB;0CACJ;KARD,CAAiD,6BAA6B,GAQ7E;;QACkD,iDAA6B;QAC5E,uCAAY,KAA2B;mBACnC,kBAAM,KAAK,CAAC;SACf;QAED,+CAAO,GAAP;YACI,OAAO,YAAY,CAAC;SACvB;4CACJ;KARD,CAAmD,6BAA6B;;IC/IhF,SAAS,0BAA0B,CAAC,IAA0B;QAC1D,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,6BAA6B,CAAC,IAA0B;QAC7D,OAAO,IAAI,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,SAAS,0BAA0B,CAAC,IAA0B;QAC1D,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,8BAA8B,CAAC,IAA0B;QAC9D,OAAO,IAAI,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,SAAS,iCAAiC,CAAC,IAA0B;QACjE,OAAO,IAAI,8BAA8B,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,SAAS,yBAAyB,CAAC,IAA0B;QACzD,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS,0BAA0B,CAAC,IAA0B;QAC1D,OAAO,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,SAAS,8BAA8B,CAAC,IAA0B;QAC9D,OAAO,IAAI,2BAA2B,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,SAAS,gCAAgC,CAAC,IAA0B;QAChE,OAAO,IAAI,6BAA6B,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;aAEe,sBAAsB,CAClC,IAA0B,EAC1B,IAAwB;QAExB,IAAI,KAA8B,CAAC;QAEnC,QAAQ,IAAI;YACR,KAAK,MAAM;gBACP,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM;YACV,KAAK,SAAS;gBACV,KAAK,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM;YACV,KAAK,MAAM;gBACP,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM;YACV,KAAK,WAAW;gBACZ,KAAK,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM;YACV,KAAK,cAAc;gBACf,KAAK,GAAG,iCAAiC,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM;YACV,KAAK,KAAK;gBACN,KAAK,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBACxC,MAAM;YACV,KAAK,MAAM;gBACP,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM;YACV,KAAK,UAAU;gBACX,KAAK,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM;YACV,KAAK,YAAY;gBACb,KAAK,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM;YACV;gBACI,KAAK,GAAG,iCAAiC,CAAC,IAAI,CAAC,CAAC;gBAChD,MAAM;SACb;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;aAEe,iBAAiB,CAC7B,OAAe,EACf,QAAiC,EACjC,KAAU,EACV,MAAY,EACZ,YAA0C;QAE1C,OAAO;YACH,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,YAAY;YAC1B,KAAK,EAAE;gBACH,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,MAAM;aACjB;SACJ,CAAC;IACN;;IC/GA;;;;ICAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"pepperi-addons-ngx-lib-smart-filters.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/ngx-lib/smart-filters/smart-filters.component.ts","../../../projects/ngx-lib/smart-filters/common/filter-actions.component.ts","../../../projects/ngx-lib/smart-filters/common/model/operator.ts","../../../projects/ngx-lib/smart-filters/common/model/base-filter-component.ts","../../../projects/ngx-lib/smart-filters/text-filter/text-filter.component.ts","../../../projects/ngx-lib/smart-filters/boolean-filter/boolean-filter.component.ts","../../../projects/ngx-lib/smart-filters/date-filter/date-filter.component.ts","../../../projects/ngx-lib/smart-filters/multi-select-filter/multi-select-filter.component.ts","../../../projects/ngx-lib/smart-filters/number-filter/number-filter.component.ts","../../../projects/ngx-lib/smart-filters/smart-filters.module.ts","../../../projects/ngx-lib/smart-filters/common/model/field.ts","../../../projects/ngx-lib/smart-filters/common/model/creator.ts","../../../projects/ngx-lib/smart-filters/public-api.ts","../../../projects/ngx-lib/smart-filters/pepperi-addons-ngx-lib-smart-filters.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n Output,\n EventEmitter,\n ElementRef,\n} from '@angular/core';\nimport {\n IPepSmartFilterField,\n PepSmartFilterBaseField,\n} from './common/model/field';\nimport { PepLayoutService } from '@pepperi-addons/ngx-lib';\nimport { IPepSmartFilterData } from './common/model/filter';\n\n@Component({\n selector: 'pep-smart-filters',\n templateUrl: './smart-filters.component.html',\n styleUrls: ['./smart-filters.component.scss', './smart-filters.component.theme.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PepSmartFiltersComponent {\n\n @Input() title = '';\n\n filtersDataMap: Map<string, IPepSmartFilterData> = new Map<\n string,\n IPepSmartFilterData\n >();\n\n private _filters: IPepSmartFilterData[] = [];\n @Input()\n set filters(value: IPepSmartFilterData[]) {\n this._filters = value;\n this.setupFilters(value);\n }\n get filters(): IPepSmartFilterData[] {\n this._filters = [...this.filtersDataMap.keys()]\n // .filter((key) => this.filtersDataMap.get(key) !== null)\n .map((key) => {\n if (key) {\n return this.filtersDataMap.get(key);\n }\n });\n\n return this._filters;\n }\n\n private _fields: Array<IPepSmartFilterField> = [];\n @Input()\n set fields(value: Array<IPepSmartFilterField>) {\n this._fields = value;\n }\n get fields(): Array<IPepSmartFilterField> {\n return this._fields;\n }\n\n private _useAsWebComponent = false;\n @Input()\n set useAsWebComponent(value: boolean) {\n if (value) {\n this.exportFunctionsOnHostElement();\n }\n }\n get useAsWebComponent(): boolean {\n return this._useAsWebComponent;\n }\n\n // @Output()\n // filtersClear: EventEmitter<void> = new EventEmitter<void>();\n @Output()\n filtersChange: EventEmitter<IPepSmartFilterData[]> = new EventEmitter<\n IPepSmartFilterData[]\n >();\n\n @Output()\n fieldToggleChange: EventEmitter<IPepSmartFilterField> = new EventEmitter<IPepSmartFilterField>();\n\n expansionPanelHeaderHeight = '*';\n\n constructor(\n private hostElement: ElementRef,\n public layoutService: PepLayoutService\n ) { }\n\n private exportFunctionsOnHostElement() {\n // This is for web component usage for use those functions.\n this.hostElement.nativeElement.clearFilters = this.clearFilters.bind(\n this\n );\n this.hostElement.nativeElement.clearFilter = this.clearFilter.bind(\n this\n );\n this.hostElement.nativeElement.toggleField = this.toggleField.bind(\n this\n );\n }\n\n private setupFilters(value: IPepSmartFilterData[]) {\n this.filtersDataMap.clear();\n if (value) {\n value.forEach((filter) => {\n // Validate before add the filter into the map.\n let currentField = null;\n\n if (this.fields && this.fields.length > 0) {\n currentField = this.fields.find(\n (field) => field.id === filter.fieldId\n ) as PepSmartFilterBaseField;\n }\n\n if (currentField) {\n // Only if the operator is from the same type\n if (\n filter.operator.componentType.includes(\n currentField.componentType\n )\n ) {\n let isOperatorUnitValid = true;\n if (filter.operatorUnit) {\n // Only if the operator unit is not from the same type\n if (\n !filter.operatorUnit.componentType.includes(\n currentField.componentType\n )\n ) {\n isOperatorUnitValid = false;\n }\n }\n\n // Add the filter.\n if (isOperatorUnitValid) {\n this.filtersDataMap.set(filter.fieldId, filter);\n }\n }\n }\n });\n }\n }\n\n private raiseFiltersChange(): void {\n this.filtersChange.emit(this.filters);\n }\n\n toggleField(index: number, isOpen: boolean): void {\n this.fields[index].isOpen = isOpen;\n this.fieldToggleChange.emit(this.fields[index]);\n }\n\n clearFilters() {\n this.filtersDataMap.clear();\n }\n\n clearFilter(fieldId: string) {\n this.filtersDataMap.delete(fieldId);\n }\n\n // Clear all the filters and raise event that filters has change.\n onFiltersClear() {\n this.clearFilters();\n this.raiseFiltersChange();\n }\n\n // Clear the filter and raise event that filters has change.\n onFilterClear(field: IPepSmartFilterField) {\n this.clearFilter(field.id);\n this.raiseFiltersChange();\n }\n\n // Set the filter and raise event that filters has change.\n onFilterChange(\n field: IPepSmartFilterField,\n filterData: IPepSmartFilterData\n ) {\n this.clearFilter(field.id);\n this.filtersDataMap.set(field.id, filterData);\n this.raiseFiltersChange();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'pep-filter-actions',\n templateUrl: './filter-actions.component.html',\n styleUrls: ['./filter-actions.component.scss'],\n})\nexport class PepFilterActionsComponent {\n @Input() form: FormGroup;\n\n @Output() clearClick: EventEmitter<void> = new EventEmitter<void>();\n @Output() applyClick: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n clear() {\n this.clearClick.emit();\n }\n\n apply() {\n this.applyClick.emit();\n }\n}\n","import {\n PepSmartFilterComponentType,\n PepSmartFilterOperatorType,\n PepSmartFilterOperatorUnitType,\n} from './type';\nexport class IPepSmartFilterOperator {\n id: PepSmartFilterOperatorType;\n name: string;\n short: string;\n componentType: PepSmartFilterComponentType[];\n}\n\nconst Equals: IPepSmartFilterOperator = {\n id: 'eq',\n name: 'EQUAL',\n short: '=',\n componentType: [\n 'number',\n 'boolean'\n // 'multi-select',\n // 'date',\n // 'text',\n // 'auto-complete',\n // 'select',\n ],\n};\n\nconst NotEqual: IPepSmartFilterOperator = {\n id: 'neq',\n name: 'NOT_EQUAL',\n short: '<>',\n componentType: [\n 'number',\n // 'multi-select',\n // 'date',\n // 'text',\n // 'auto-complete',\n // 'select',\n ],\n};\n\nconst LessThan: IPepSmartFilterOperator = {\n id: 'lt',\n name: 'LESS_THEN',\n short: '<',\n componentType: ['number'],\n};\n\n// const LessThanOrEquals: IPepSmartFilterOperator = {\n// id: 'ltoe',\n// name: 'LESS_THEN_OR_EQUAL',\n// short: '<=',\n// type: ['number'],\n// };\n\nconst GreaterThan: IPepSmartFilterOperator = {\n id: 'gt',\n name: 'GREATER_THEN',\n short: '>',\n componentType: ['number'],\n};\n\n// const GreaterThanOrEquals: IPepSmartFilterOperator = {\n// id: 'gtoe',\n// name: 'GREATER_THEN_OR_EQUAL',\n// short: '>=',\n// type: ['number'],\n// };\n\nconst NumberRange: IPepSmartFilterOperator = {\n id: 'numberRange',\n name: 'NUMBER_RANGE',\n short: 'Range',\n componentType: ['number'],\n};\n\nconst Contains: IPepSmartFilterOperator = {\n id: 'contains',\n name: 'CONTAINS',\n short: 'Contains',\n componentType: ['text'],\n};\n\n// const BeginsWith: Operator = {\n// id: 'beginsWith',\n// name: 'Begins With',\n// short: 'Begins With',\n// type: ['text'],\n// };\n\n// const EndsWith: Operator = {\n// id: 'endsWith',\n// name: 'Ends With',\n// short: 'End With',\n// type: ['text'],\n// };\n\n// const After: Operator = {\n// id: 'after',\n// name: 'After',\n// short: 'After',\n// type: ['date'],\n// };\n\n// const Before: Operator = {\n// id: 'before',\n// name: 'Before',\n// short: 'Before',\n// type: ['date'],\n// };\n\nconst InTheLast: IPepSmartFilterOperator = {\n id: 'inTheLast',\n name: 'IN_THE_LAST',\n short: 'In the last',\n componentType: ['date'],\n};\n\nconst Today: IPepSmartFilterOperator = {\n id: 'today',\n name: 'TODAY',\n short: 'Today',\n componentType: ['date'],\n};\n\nconst ThisWeek: IPepSmartFilterOperator = {\n id: 'thisWeek',\n name: 'THIS_WEEK',\n short: 'This week',\n componentType: ['date'],\n};\n\nconst ThisMonth: IPepSmartFilterOperator = {\n id: 'thisMonth',\n name: 'THIS_MONTH',\n short: 'This month',\n componentType: ['date'],\n};\n\nconst DateRange: IPepSmartFilterOperator = {\n id: 'dateRange',\n name: 'DATE_RANGE',\n short: 'Range',\n componentType: ['date'],\n};\n\nconst DueIn: IPepSmartFilterOperator = {\n id: 'dueIn',\n name: 'DUE_IN',\n short: 'Due in',\n componentType: ['date'],\n};\n\nconst On: IPepSmartFilterOperator = {\n id: 'on',\n name: 'ON',\n short: 'On',\n componentType: ['date'],\n};\n\nconst NotInTheLast: IPepSmartFilterOperator = {\n id: 'notInTheLast',\n name: 'NOT_IN_THE_LAST',\n short: 'Not in the last',\n componentType: ['date'],\n};\n\nconst NotDueIn: IPepSmartFilterOperator = {\n id: 'notDueIn',\n name: 'NOT_DUE_IN',\n short: 'Not due in',\n componentType: ['date'],\n};\n\nconst IsEmpty: IPepSmartFilterOperator = {\n id: 'isEmpty',\n name: 'IS_EMPTY',\n short: 'Is empty',\n componentType: ['date'],\n};\n\nconst IsNotEmpty: IPepSmartFilterOperator = {\n id: 'isNotEmpty',\n name: 'IS_NOT_EMPTY',\n short: 'Is not empty',\n componentType: ['date'],\n};\n\nconst In: IPepSmartFilterOperator = {\n id: 'in',\n name: 'IN',\n short: 'In',\n componentType: ['multi-select'],\n};\n\nexport const PepSmartFilterOperators = {\n Equals: Equals,\n NotEqual: NotEqual,\n LessThan: LessThan,\n // LessThanOrEquals: LessThanOrEquals,\n GreaterThan: GreaterThan,\n // GreaterThanOrEquals: GreaterThanOrEquals,\n NumberRange: NumberRange,\n Contains: Contains,\n // BeginsWith: BeginsWith,\n // EndsWith: EndsWith,\n // After: After,\n // Before: Before,\n InTheLast: InTheLast,\n Today: Today,\n ThisWeek: ThisWeek,\n ThisMonth: ThisMonth,\n DateRange: DateRange,\n DueIn: DueIn,\n On: On,\n NotInTheLast: NotInTheLast,\n NotDueIn: NotDueIn,\n IsEmpty: IsEmpty,\n IsNotEmpty: IsNotEmpty,\n In: In,\n};\n\nexport class IPepSmartFilterOperatorUnit {\n id: PepSmartFilterOperatorUnitType;\n name: string;\n componentType: PepSmartFilterComponentType[];\n}\n\nconst Days: IPepSmartFilterOperatorUnit = {\n id: 'days',\n name: 'DAYS',\n componentType: ['date'],\n};\n\nconst Weeks: IPepSmartFilterOperatorUnit = {\n id: 'weeks',\n name: 'WEEKS',\n componentType: ['date'],\n};\n\nconst Months: IPepSmartFilterOperatorUnit = {\n id: 'months',\n name: 'MONTHS',\n componentType: ['date'],\n};\n\nconst Years: IPepSmartFilterOperatorUnit = {\n id: 'years',\n name: 'YEARS',\n componentType: ['date'],\n};\n\nexport const PepSmartFilterOperatorUnits = {\n Days: Days,\n Weeks: Weeks,\n Months: Months,\n Years: Years,\n};\n","import {\n Directive,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n AfterViewInit,\n Output,\n ChangeDetectorRef,\n Renderer2,\n TemplateRef,\n ViewContainerRef,\n ViewChild,\n ComponentFactoryResolver,\n ComponentFactory,\n ComponentRef,\n Injector,\n ElementRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormBuilder,\n FormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { Observable, Subject } from 'rxjs';\nimport { PepValidatorService } from '@pepperi-addons/ngx-lib';\nimport {\n IPepSmartFilterOperator,\n IPepSmartFilterOperatorUnit,\n PepSmartFilterOperators,\n PepSmartFilterOperatorUnits,\n} from './operator';\nimport { forwardRef } from '@angular/core';\nimport { IPepSmartFilterData, IPepSmartFilterDataValue } from './filter';\nimport { PepSmartFilterBaseField } from './field';\nimport { takeUntil } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\nimport { PepFilterActionsComponent } from '../filter-actions.component';\n\n\n@Directive({})\nexport abstract class BaseFilterComponent\n implements OnInit, OnChanges, OnDestroy {\n private readonly _destroyed: Subject<void>;\n private actionsContainerRef: ComponentRef<PepFilterActionsComponent>;\n\n private _fieldIdWithNoDots = '';\n private _field: PepSmartFilterBaseField;\n @Input()\n set field(value: PepSmartFilterBaseField) {\n this._field = value;\n this._fieldIdWithNoDots = value ? value.id.replace(/\\./g, '_') : '';\n this.setupForm();\n }\n get field(): PepSmartFilterBaseField {\n return this._field;\n }\n\n private _filter: IPepSmartFilterData;\n @Input()\n set filter(value: IPepSmartFilterData) {\n this._filter = value;\n this.setupFilter();\n }\n get filter(): IPepSmartFilterData {\n return this._filter;\n }\n protected _parentForm: FormGroup;\n @Input()\n set parentForm(form: FormGroup) {\n this._parentForm = form;\n this.updateParentForm();\n }\n @Input() emitOnChange = false;\n @Input() inline = false;\n @Input() showActionButtons = true;\n @Input() renderTitle = true;\n\n @Output() filterClear: EventEmitter<void> = new EventEmitter<void>();\n @Output()\n filterChange: EventEmitter<IPepSmartFilterData> = new EventEmitter<IPepSmartFilterData>();\n\n private _operator: IPepSmartFilterOperator;\n set operator(operator: IPepSmartFilterOperator) {\n if (operator?.id != this._operator?.id) {\n // Validate operator\n const index = this.operators.findIndex((o) => o.id === operator.id);\n if (index >= 0) {\n this._operator = this.operators[index];\n } else {\n this._operator = this.operators[0];\n }\n\n this.form.reset();\n this.updateValidity();\n }\n }\n get operator(): IPepSmartFilterOperator {\n return this._operator;\n }\n\n private _operatorUnit: IPepSmartFilterOperatorUnit;\n set operatorUnit(operatorUnit: IPepSmartFilterOperatorUnit) {\n // Validate operator unit\n if (operatorUnit) {\n const index = this.operatorUnits.findIndex(\n (ou) => ou.id === operatorUnit.id\n );\n if (index >= 0) {\n this._operatorUnit = this.operatorUnits[index];\n } else {\n this._operatorUnit = this.operatorUnits[0];\n }\n } else {\n this._operatorUnit = undefined;\n }\n }\n get operatorUnit(): IPepSmartFilterOperatorUnit {\n return this._operatorUnit;\n }\n\n get firstControlKey() {\n return this.field ? `${this._fieldIdWithNoDots}_first` : 'first';\n }\n get firstControl(): AbstractControl {\n return this.form.get(this.firstControlKey);\n }\n get secondControlKey() {\n return this.field ? `${this._fieldIdWithNoDots}_second` : 'second';\n }\n get secondControl(): AbstractControl {\n return this.form.get(this.secondControlKey);\n }\n\n protected operators: IPepSmartFilterOperator[];\n protected operatorUnits: IPepSmartFilterOperatorUnit[];\n\n protected readonly OPERATORS_TRANSLATION_PREFIX = 'SMART_FILTERS.OPERATORS';\n protected readonly OPERATOR_UNITS_TRANSLATION_PREFIX =\n 'SMART_FILTERS.OPERATOR_UNITS';\n\n form: FormGroup;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private injector: Injector,\n private resolver: ComponentFactoryResolver,\n private builder: FormBuilder,\n protected translate: TranslateService,\n protected validator: PepValidatorService,\n protected renderer: Renderer2\n ) {\n this._destroyed = new Subject();\n }\n\n private createActionsComponent() {\n const factory: ComponentFactory<PepFilterActionsComponent> = this.resolver.resolveComponentFactory(\n PepFilterActionsComponent\n );\n\n this.actionsContainerRef = factory.create(this.injector);\n this.actionsContainerRef.instance.form = this.form;\n this.actionsContainerRef.instance.applyClick.subscribe(() =>\n this.applyFilter()\n );\n this.actionsContainerRef.instance.clearClick.subscribe(() =>\n this.clearFilter()\n );\n\n this.viewContainerRef.insert(this.actionsContainerRef.hostView);\n }\n\n private setupForm() {\n const formValue = {};\n formValue[this.firstControlKey] = [];\n formValue[this.secondControlKey] = [];\n // this.form.patchValue(formValue); \n this.form = this.builder.group(formValue);\n // this.form[this.firstControlKey] = [];\n // this.form[this.secondControlKey] = [];\n\n this.setupOperators();\n\n if (this.showActionButtons) {\n this.createActionsComponent();\n }\n }\n\n private setupOperators() {\n // Get the operators by componentType.\n this.operators = Object.keys(PepSmartFilterOperators)\n .filter((key) => {\n return PepSmartFilterOperators[key].componentType.includes(\n this.field.componentType\n );\n })\n .map((key) => PepSmartFilterOperators[key]);\n\n // Filter by from field.operators input if exist.\n if (this.field.operators?.length > 0) {\n this.operators = this.operators.filter((o1) =>\n this.field.operators.some((o2) => o1.id === o2)\n );\n }\n\n // Get the operator units by componentType.\n this.operatorUnits = Object.keys(PepSmartFilterOperatorUnits)\n .filter((key) => {\n return PepSmartFilterOperatorUnits[key].componentType.includes(\n this.field.componentType\n );\n })\n .map((key) => PepSmartFilterOperatorUnits[key]);\n\n // Filter by from field.operatorsUnits input if exist.\n if (this.field.operatorUnits?.length > 0) {\n this.operatorUnits = this.operatorUnits.filter((o1) =>\n this.field.operatorUnits.some((o2) => o1.id === o2)\n );\n }\n\n // Load translation before get the options in the children.\n this.translate.get('SMART_FILTERS.TITLE').subscribe((res) => {\n this.loadOperatorsOptions();\n });\n }\n\n private setupFilter() {\n if (this.filter) {\n this.operator = this.filter.operator;\n this.operatorUnit = this.filter.operatorUnit;\n const formValue = {};\n formValue[this.firstControlKey] = this.filter.value.first;\n formValue[this.secondControlKey] = this.filter.value.second;\n this.form.patchValue(formValue);\n } else {\n this.operator = this.getDefaultOperator();\n this.operatorUnit = this.getDefaultOperatorUnit();\n this.clearFilter(false);\n }\n }\n\n protected updateParentForm() {\n this._parentForm.setControl('fieldId', this.builder.control(this.field.id));\n this._parentForm.setControl('fieldType', this.builder.control(this.field.type));\n this._parentForm.setControl('operator', this.builder.control(this.operator));\n this._parentForm.setControl('operatorUnit', this.builder.control(this.operatorUnit));\n this._parentForm.setControl('values', this.builder.group({\n first: this.firstControl,\n second: this.secondControl\n }));\n }\n\n protected getDestroyer() {\n return takeUntil(this._destroyed);\n }\n\n private updateValidity() {\n this.setFieldsStateAndValidators();\n\n this.firstControl.updateValueAndValidity();\n this.secondControl.updateValueAndValidity();\n }\n // Load the operators options from the translation.\n protected loadOperatorsOptions(): void {\n // Not implemented in the base\n }\n\n // Set default validators - some childs override this.\n protected setFieldsStateAndValidators(): void {\n this.firstControl.setValidators(Validators.required);\n this.secondControl.setValidators(Validators.required);\n this.secondControl.disable();\n }\n\n // Return undefined - some childs override this.\n protected getDefaultOperatorUnit(): IPepSmartFilterOperatorUnit {\n return undefined;\n }\n\n protected initFilter() {\n // Not implemented in the base\n }\n\n abstract getDefaultOperator(): IPepSmartFilterOperator;\n abstract getFilterValue(): IPepSmartFilterDataValue;\n\n clearFilter(emitEvent = true) {\n this._filter = null;\n this.form.reset();\n this.initFilter();\n\n if (emitEvent) {\n this.filterClear.emit();\n }\n }\n\n applyFilter() {\n const filterValue = this.getFilterValue();\n\n // If the filter is not null declare it, else - clear it.\n if (filterValue) {\n const filter = {\n fieldId: this.field.id,\n operator: this.operator,\n operatorUnit: this.operatorUnit,\n value: filterValue,\n };\n this._filter = filter;\n this.filterChange.emit(filter);\n } else {\n this.clearFilter();\n }\n }\n\n ngOnInit(): void {\n if (this.form) {\n this.updateValidity();\n }\n }\n\n ngOnChanges(): void {\n // if (this.form) {\n // this.updateValidity();\n // }\n }\n\n ngOnDestroy(): void {\n this._destroyed.next();\n this._destroyed.complete();\n\n if (this.showActionButtons) {\n this.actionsContainerRef.destroy();\n }\n }\n\n // writeValue(value: IPepSmartFilterDataValue): void {\n // if (value) {\n // this.form.setValue(\n // {\n // first: value.first,\n // second: value.second || null,\n // },\n // { emitEvent: false }\n // );\n // } else {\n // this.form.reset();\n // }\n // }\n\n // registerOnChange(fn: any): void {\n // this.form.valueChanges.subscribe(fn);\n // }\n\n // onTouched: () => void = () => {\n // /* Do nothing */\n // };\n\n // registerOnTouched(fn: any): void {\n // this.onTouched = fn;\n // }\n\n // setDisabledState?(isDisabled: boolean): void {\n // isDisabled ? this.form.disable() : this.form.enable();\n // }\n\n // validate(control: AbstractControl): ValidationErrors {\n // return this.form.valid ? null : { PepFilterIsNotValid: true };\n // }\n}\n","import { Component, OnChanges, OnInit } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n} from '../common/model/operator';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\n\n@Component({\n selector: 'pep-text-filter',\n templateUrl: './text-filter.component.html',\n styleUrls: ['./text-filter.component.scss'],\n})\nexport class PepTextFilterComponent extends BaseFilterComponent implements OnInit {\n chooseTypeOptions: Array<IPepOption> = [];\n operatorWidth = '38%';\n firstControlWidth = '62%';\n\n ngOnInit() {\n this.firstControl.valueChanges\n .pipe(this.getDestroyer(), distinctUntilChanged())\n .subscribe(() => {\n this.setFieldsStateAndValidators();\n });\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.Equals;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = {\n first: this.firstControl.value,\n };\n\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n filterValue['second'] = this.secondControl.value;\n }\n\n return filterValue;\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTypeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n }\n\n // Override\n setFieldsStateAndValidators(): void {\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n const firstValidators = [Validators.required];\n if (this.secondControl.value) {\n firstValidators.push(this.validator.isLessThan(this.secondControl));\n }\n this.firstControl.setValidators(firstValidators);\n } else {\n super.setFieldsStateAndValidators();\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(PepSmartFilterOperators).find(\n (operator) => operator.id === value\n );\n this.operator = operator;\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onValueChanged() {\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n} from '../common/model/operator';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Component({\n selector: 'pep-boolean-filter',\n templateUrl: './boolean-filter.component.html',\n styleUrls: ['./boolean-filter.component.scss'],\n})\nexport class PepBooleanFilterComponent extends BaseFilterComponent implements OnInit {\n @Input() options: IPepOption[] = [];\n\n ngOnInit() {\n //\n }\n\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.Equals;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = { first: this.firstControl.value || false };\n return filterValue;\n }\n\n onValueChanged(value) {\n this.firstControl.setValue(value);\n\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n // // Override\n // setFieldsStateAndValidators(): void {\n // this.secondControl.disable();\n // }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n IPepSmartFilterOperatorUnit,\n PepSmartFilterOperators,\n PepSmartFilterOperatorUnits,\n} from '../common/model/operator';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { Validators } from '@angular/forms';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\n\n@Component({\n selector: 'pep-date-filter',\n templateUrl: './date-filter.component.html',\n styleUrls: ['./date-filter.component.scss'],\n})\nexport class PepDateFilterComponent extends BaseFilterComponent implements OnInit {\n PepSmartFilterOperators = PepSmartFilterOperators;\n chooseTimeOptions: Array<IPepOption> = [];\n chooseTimeUnitOptions: Array<IPepOption> = [];\n operatorWidth: string;\n fieldsWidth: string;\n\n ngOnInit() {\n if (this.inline) {\n this.setControlsWidth();\n }\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.InTheLast;\n }\n\n // Override\n getDefaultOperatorUnit(): IPepSmartFilterOperatorUnit {\n if (this.operator === PepSmartFilterOperators.InTheLast ||\n this.operator === PepSmartFilterOperators.NotInTheLast ||\n this.operator === PepSmartFilterOperators.DueIn ||\n this.operator === PepSmartFilterOperators.NotDueIn) {\n return PepSmartFilterOperatorUnits.Months;\n } else {\n return undefined;\n }\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = {\n first: this.firstControl.value,\n };\n\n if (this.operator === PepSmartFilterOperators.DateRange) {\n filterValue['second'] = this.secondControl.value;\n }\n\n return filterValue;\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTimeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n\n this.chooseTimeUnitOptions = this.operatorUnits.map((operatorUnit) => {\n return {\n key: operatorUnit.id,\n value: this.translate.instant(\n `${this.OPERATOR_UNITS_TRANSLATION_PREFIX}.${operatorUnit.name}`\n ),\n };\n });\n }\n\n // Override\n setFieldsStateAndValidators(): void {\n this.firstControl.enable();\n\n if (this.operator === PepSmartFilterOperators.DateRange) {\n this.firstControl.setValidators(Validators.required);\n this.secondControl.enable();\n this.secondControl.setValidators(Validators.required);\n } else if (\n this.operator === PepSmartFilterOperators.InTheLast ||\n this.operator === PepSmartFilterOperators.NotInTheLast ||\n this.operator === PepSmartFilterOperators.DueIn ||\n this.operator === PepSmartFilterOperators.NotDueIn\n ) {\n this.firstControl.setValidators([\n Validators.required,\n this.validator.numberValidator(),\n ]);\n this.secondControl.disable();\n } else {\n // Disable 'first' field.\n if (\n this.operator === PepSmartFilterOperators.Today ||\n this.operator === PepSmartFilterOperators.ThisWeek ||\n this.operator === PepSmartFilterOperators.ThisMonth ||\n this.operator === PepSmartFilterOperators.IsEmpty ||\n this.operator === PepSmartFilterOperators.IsNotEmpty\n ) {\n this.firstControl.disable();\n }\n\n // Default disable 'second' field.\n super.setFieldsStateAndValidators();\n }\n }\n\n setControlsWidth() {\n if (\n this.operator === PepSmartFilterOperators.Today ||\n this.operator === PepSmartFilterOperators.ThisWeek ||\n this.operator === PepSmartFilterOperators.ThisMonth ||\n this.operator === PepSmartFilterOperators.IsEmpty ||\n this.operator === PepSmartFilterOperators.IsNotEmpty\n ) {\n this.operatorWidth = 'auto';\n this.fieldsWidth = '0%';\n } else if (this.operator === PepSmartFilterOperators.On) {\n this.operatorWidth = '38%';\n this.fieldsWidth = '62%';\n } else {\n this.operatorWidth = '30%';\n this.fieldsWidth = '70%';\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(PepSmartFilterOperators).find(\n (operator) => operator.id === value\n );\n\n this.operator = operator;\n this.operatorUnit = this.getDefaultOperatorUnit();\n if (this.inline) {\n this.setControlsWidth();\n }\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onTimeUnitChanged(value: string) {\n const operatorUnit = Object.values(PepSmartFilterOperatorUnits).find(\n (operatorUnit) => operatorUnit.id === value\n );\n this.operatorUnit = operatorUnit;\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n onDateValueChanged() {\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}\n","import {\n AfterViewInit,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { Component, OnInit } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n} from '../common/model/operator';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { IPepSmartFilterFieldOption } from '../common/model/field';\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\nimport { FormControl } from '@angular/forms';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { VirtualScrollerComponent } from 'ngx-virtual-scroller';\n\nclass PepMultiSelectFilterOption implements IPepSmartFilterFieldOption {\n value: string;\n count?: number;\n selected = false;\n}\n\n@Component({\n selector: 'pep-multi-select-filter',\n templateUrl: './multi-select-filter.component.html',\n styleUrls: ['./multi-select-filter.component.scss'],\n})\nexport class PepMultiSelectFilterComponent\n extends BaseFilterComponent\n implements OnInit, AfterViewInit {\n options: PepMultiSelectFilterOption[] = [];\n filteredOptions$: Observable<any>;\n searchControl = new FormControl();\n //inline props\n selected = '';\n inlineOptions: IPepOption[] = [];\n\n @ViewChild('optionsContainer')\n optionsContainer: ElementRef;\n\n private readonly MAX_OPTIONS_TO_SHOW = 6.35;\n @ViewChild(VirtualScrollerComponent)\n private virtualScroller: VirtualScrollerComponent;\n\n numberOptionsToShowSearch = 10;\n\n ngOnInit() {\n super.ngOnInit;\n\n if (this.inline) {\n this.inlineControlInit();\n } else {\n this.noneInlineControlInit();\n }\n }\n\n\n ngAfterViewInit(): void {\n // Calc for the first time.\n this.calcOptionsHeight(this.options.length);\n }\n\n private inlineControlInit() {\n //load options from field \n this.inlineOptions = this.field?.options?.length > 0 ? this.field.options as IPepOption[] : [];\n\n // Init the selected values from first value. \n if (this.firstControl?.value?.length > 0) {\n this.selected = this.firstControl.value.join(';');\n }\n }\n\n private noneInlineControlInit() {\n if (this.field.options?.length > 0) {\n this.options = this.field.options.map((opt) => {\n return { value: opt.value, count: opt.count, selected: false };\n });\n } else {\n this.searchControl.disable();\n }\n\n // Init the selected values from first value.\n const firstControl = this.firstControl;\n if (firstControl.value) {\n this.initOptionsSelectedValues(firstControl.value);\n }\n\n // Add subscription for the first value change to set the selected options.\n firstControl.valueChanges\n .pipe(this.getDestroyer(), distinctUntilChanged())\n .subscribe((selectedValues: string[]) => {\n this.initOptionsSelectedValues(selectedValues);\n });\n\n // Filter the options by the search control.\n this.filteredOptions$ = this.searchControl.valueChanges.pipe(\n this.getDestroyer(),\n startWith<any>(''),\n map((option) =>\n typeof option === 'string' ? option : option && option.value\n ),\n map((value) => (value ? this.filterOptions(value) : this.options))\n );\n\n // Each time the filter change.\n this.filteredOptions$.subscribe(\n (filterdOptions: PepMultiSelectFilterOption[]) => {\n this.calcOptionsHeight(filterdOptions.length);\n setTimeout(() => {\n // 8 is the padding top of the multi-select-options\n this.virtualScroller.scrollToPosition(-8);\n }, 125);\n }\n );\n\n }\n\n initOptionsSelectedValues(selectedValues: string[]): void {\n this.options.forEach((opt) => {\n const isValueSelected =\n selectedValues && selectedValues.includes(opt.value);\n opt.selected = isValueSelected;\n });\n }\n\n private calcOptionsHeight(optionsCount: number) {\n if (this.optionsContainer) {\n const optionsToShow =\n optionsCount > this.MAX_OPTIONS_TO_SHOW\n ? this.MAX_OPTIONS_TO_SHOW\n : optionsCount;\n // optionsToShow * 2.25 is 1 option height + 1 is the padding top & bottom of the container.\n const optionsHeight = optionsToShow * 2.25 + 1 + 'rem';\n\n this.renderer.setStyle(\n this.optionsContainer.nativeElement,\n 'height',\n optionsHeight\n );\n }\n }\n\n private filterOptions(value: string): any[] {\n const filterValue = value.toLowerCase();\n return this.options.filter(\n (opt) =>\n opt.value &&\n opt.value.toLowerCase().includes(filterValue.toLowerCase())\n );\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.In;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n if (this.inline) {\n return {\n first: this.firstControl.value\n };\n } else {\n const selectedValues = this.options\n .filter((opt) => opt.selected)\n .map((opt) => opt.value);\n const filterValue = {\n first: selectedValues,\n };\n\n return selectedValues.length > 0 ? filterValue : null;\n }\n\n }\n\n // Override\n initFilter() {\n this.options.forEach((opt) => (opt.selected = false));\n this.searchControl.setValue('');\n }\n\n onOptionChange(\n option: PepMultiSelectFilterOption,\n event: MatCheckboxChange\n ) {\n option.selected = event.checked;\n this.firstControl.setValue(\n this.options.filter((opt) => opt.selected).map((opt) => opt.value),\n { emitEvent: false }\n );\n }\n\n onMultiSelectChanged(value: string) {\n if (value) {\n const selected: string[] = value.split(';');\n this.firstControl.setValue(selected);\n } else {\n this.firstControl.setValue(null);\n }\n\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}\n","import { Component, OnChanges, OnInit } from '@angular/core';\nimport { BaseFilterComponent } from '../common/model/base-filter-component';\nimport {\n IPepSmartFilterOperator,\n PepSmartFilterOperators,\n} from '../common/model/operator';\nimport { IPepSmartFilterDataValue } from '../common/model/filter';\nimport { Validators } from '@angular/forms';\nimport { IPepOption } from '@pepperi-addons/ngx-lib';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n@Component({\n selector: 'pep-number-filter',\n templateUrl: './number-filter.component.html',\n styleUrls: ['./number-filter.component.scss'],\n})\nexport class PepNumberFilterComponent extends BaseFilterComponent implements OnInit {\n PepSmartFilterOperators = PepSmartFilterOperators;\n chooseTypeOptions: Array<IPepOption> = [];\n operatorWidth = '38%';\n fieldsWidth = '70%';\n\n ngOnInit() {\n this.firstControl.valueChanges\n .pipe(this.getDestroyer(), distinctUntilChanged())\n .subscribe(() => {\n this.setFieldsStateAndValidators();\n });\n\n this.secondControl.valueChanges\n .pipe(this.getDestroyer(), distinctUntilChanged())\n .subscribe(() => {\n this.setFieldsStateAndValidators();\n });\n this.setControlsWidth();\n }\n\n // Override\n getDefaultOperator(): IPepSmartFilterOperator {\n return PepSmartFilterOperators.Equals;\n }\n\n // Override\n getFilterValue(): IPepSmartFilterDataValue {\n const filterValue = {\n first: this.firstControl.value,\n };\n\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n filterValue['second'] = this.secondControl.value;\n }\n\n return filterValue;\n }\n\n // Override\n loadOperatorsOptions() {\n this.chooseTypeOptions = this.operators.map((operator) => {\n return {\n key: operator.id,\n value: this.translate.instant(\n `${this.OPERATORS_TRANSLATION_PREFIX}.${operator.name}`\n ),\n };\n });\n }\n\n // Override\n setFieldsStateAndValidators(): void {\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n const firstValidators = [Validators.required];\n if (this.secondControl.value) {\n firstValidators.push(this.validator.isLessThan(this.secondControl));\n }\n this.firstControl.setValidators(firstValidators);\n\n\n this.secondControl.enable();\n const secondValidators = [Validators.required];\n if (this.firstControl.value) {\n secondValidators.push(this.validator.isGreaterThan(this.firstControl));\n }\n this.secondControl.setValidators(secondValidators);\n } else {\n super.setFieldsStateAndValidators();\n }\n }\n\n setControlsWidth() {\n if (this.operator === PepSmartFilterOperators.NumberRange) {\n this.operatorWidth = '30%';\n this.fieldsWidth = '70%';\n } else {\n this.operatorWidth = '38%';\n this.fieldsWidth = '62%';\n }\n }\n\n onOperatorChanged(value: string) {\n const operator = Object.values(PepSmartFilterOperators).find(\n (operator) => operator.id === value\n );\n this.operator = operator;\n if (this._parentForm) {\n this.updateParentForm();\n }\n if (this.emitOnChange) {\n this.applyFilter();\n }\n this.setControlsWidth();\n }\n\n onValueChanged() {\n if (this.emitOnChange) {\n this.applyFilter();\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatRadioModule } from '@angular/material/radio';\n\nimport { VirtualScrollerModule } from 'ngx-virtual-scroller';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepCheckboxModule } from '@pepperi-addons/ngx-lib/checkbox';\nimport { PepDateModule } from '@pepperi-addons/ngx-lib/date';\nimport { PepSelectModule } from '@pepperi-addons/ngx-lib/select';\nimport { PepTextboxModule } from '@pepperi-addons/ngx-lib/textbox';\nimport { PepSearchModule } from '@pepperi-addons/ngx-lib/search';\nimport { PepButtonModule } from '@pepperi-addons/ngx-lib/button';\nimport {\n PepIconModule,\n PepIconRegistry,\n pepIconNumberMinus,\n pepIconNumberPlus,\n} from '@pepperi-addons/ngx-lib/icon';\nimport { PepGroupButtonsModule } from '@pepperi-addons/ngx-lib/group-buttons';\n\n// import { BaseFilterComponent } from './common/model/base-filter-component';\nimport { PepSmartFiltersComponent } from './smart-filters.component';\nimport { PepFilterActionsComponent } from './common/filter-actions.component';\nimport { PepTextFilterComponent } from './text-filter/text-filter.component';\nimport { PepBooleanFilterComponent } from './boolean-filter/boolean-filter.component';\nimport { PepDateFilterComponent } from './date-filter/date-filter.component';\nimport { PepMultiSelectFilterComponent } from './multi-select-filter/multi-select-filter.component';\nimport { PepNumberFilterComponent } from './number-filter/number-filter.component';\n\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n // Material modules\n MatCommonModule,\n MatCheckboxModule,\n MatChipsModule,\n MatExpansionModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n MatRadioModule,\n // External modules\n VirtualScrollerModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepCheckboxModule,\n PepDateModule,\n PepSelectModule,\n PepTextboxModule,\n PepSearchModule,\n PepIconModule,\n PepButtonModule,\n PepGroupButtonsModule\n ],\n exports: [\n PepSmartFiltersComponent,\n PepTextFilterComponent,\n PepBooleanFilterComponent,\n PepDateFilterComponent,\n PepMultiSelectFilterComponent,\n PepNumberFilterComponent\n ],\n declarations: [\n // BaseFilterComponent,\n PepSmartFiltersComponent,\n PepFilterActionsComponent,\n PepTextFilterComponent,\n PepBooleanFilterComponent,\n PepDateFilterComponent,\n PepMultiSelectFilterComponent,\n PepNumberFilterComponent\n ],\n})\nexport class PepSmartFiltersModule {\n constructor(private pepIconRegistry: PepIconRegistry) {\n this.pepIconRegistry.registerIcons([\n pepIconNumberMinus,\n pepIconNumberPlus,\n ]);\n }\n}\n","import {\n IPepSmartFilterOperator,\n IPepSmartFilterOperatorUnit,\n} from './operator';\nimport {\n PepSmartFilterComponentType,\n PepSmartFilterType,\n PepSmartFilterOperatorType,\n PepSmartFilterOperatorUnitType,\n} from './type';\n\nexport interface IPepSmartFilterFieldOption {\n value: string;\n count?: number;\n}\n\nexport interface IPepSmartFilterField {\n id: string;\n name: string;\n isOpen?: boolean;\n options?: IPepSmartFilterFieldOption[];\n operators?: PepSmartFilterOperatorType[];\n operatorUnits?: PepSmartFilterOperatorUnitType[];\n}\n\n// Base field\n// ------------------------------\nexport abstract class PepSmartFilterBaseField implements IPepSmartFilterField {\n id: string;\n name: string;\n isOpen?: boolean;\n options?: IPepSmartFilterFieldOption[];\n operators?: PepSmartFilterOperatorType[];\n operatorUnits?: PepSmartFilterOperatorUnitType[];\n\n protected _componentType: PepSmartFilterComponentType;\n get componentType(): PepSmartFilterComponentType {\n return this._componentType;\n }\n\n private _type: PepSmartFilterType;\n get type(): PepSmartFilterType {\n return this._type;\n }\n\n constructor(field: IPepSmartFilterField) {\n this.id = field.id;\n this.name = field.name;\n this.isOpen = field.isOpen;\n this.options = field.options;\n this.operators = field.operators;\n this.operatorUnits = field.operatorUnits;\n\n this._type = this.getType();\n }\n\n protected abstract getType(): PepSmartFilterType;\n}\n// Text field\n// ------------------------------\nexport class PepSmartFilterTextField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'text';\n }\n\n getType(): PepSmartFilterType {\n return 'text';\n }\n}\n\n\n// Boolean field\n// ------------------------------\nexport class PepSmartFilterBooleanField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'boolean';\n }\n\n getType(): PepSmartFilterType {\n return 'boolean';\n }\n}\n\n// Date fields\n// ------------------------------\nexport abstract class PepSmartFilterDateBaseField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'date';\n }\n}\nexport class PepSmartFilterDateField extends PepSmartFilterDateBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'date';\n }\n}\nexport class PepSmartFilterDateTimeField extends PepSmartFilterDateBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'date-time';\n }\n}\n\n// Multi select field\n// ------------------------------\nexport class PepSmartFilterMultiSelectField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'multi-select';\n }\n\n getType(): PepSmartFilterType {\n return 'multi-select';\n }\n}\n\n// Number fields\n// ------------------------------\nexport abstract class PepSmartFilterNumberBaseField extends PepSmartFilterBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n this._componentType = 'number';\n }\n}\nexport class PepSmartFilterIntField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'int';\n }\n}\nexport class PepSmartFilterRealField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'real';\n }\n}\nexport class PepSmartFilterCurrencyField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'currency';\n }\n}\nexport class PepSmartFilterPercentageField extends PepSmartFilterNumberBaseField {\n constructor(field: IPepSmartFilterField) {\n super(field);\n }\n\n getType(): PepSmartFilterType {\n return 'percentage';\n }\n}\n","import {\n IPepSmartFilterField,\n PepSmartFilterBaseField,\n PepSmartFilterTextField,\n PepSmartFilterBooleanField,\n PepSmartFilterDateField,\n PepSmartFilterMultiSelectField,\n PepSmartFilterIntField,\n PepSmartFilterDateTimeField,\n PepSmartFilterPercentageField,\n PepSmartFilterCurrencyField,\n PepSmartFilterRealField,\n} from './field';\nimport { IPepSmartFilterData } from './filter';\nimport { IPepSmartFilterOperator, IPepSmartFilterOperatorUnit } from './operator';\nimport { PepSmartFilterType } from './type';\n\nfunction createTextSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterTextField(data);\n}\n\nfunction createBooleanSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterBooleanField(data);\n}\n\nfunction createDateSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterDateField(data);\n}\n\nfunction createDateTimeSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterDateTimeField(data);\n}\n\nfunction createMultiSelectSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterMultiSelectField(data);\n}\n\nfunction createIntSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterIntField(data);\n}\n\nfunction createRealSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterRealField(data);\n}\n\nfunction createCurrencySmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterCurrencyField(data);\n}\n\nfunction createPercentageSmartFilterField(data: IPepSmartFilterField) {\n return new PepSmartFilterPercentageField(data);\n}\n\nexport function createSmartFilterField(\n data: IPepSmartFilterField,\n type: PepSmartFilterType\n): PepSmartFilterBaseField {\n let field: PepSmartFilterBaseField;\n\n switch (type) {\n case 'text':\n field = createTextSmartFilterField(data);\n break;\n case 'boolean':\n field = createBooleanSmartFilterField(data);\n break;\n case 'date':\n field = createDateSmartFilterField(data);\n break;\n case 'date-time':\n field = createDateTimeSmartFilterField(data);\n break;\n case 'multi-select':\n field = createMultiSelectSmartFilterField(data);\n break;\n case 'int':\n field = createIntSmartFilterField(data);\n break;\n case 'real':\n field = createRealSmartFilterField(data);\n break;\n case 'currency':\n field = createCurrencySmartFilterField(data);\n break;\n case 'percentage':\n field = createPercentageSmartFilterField(data);\n break;\n default:\n field = createMultiSelectSmartFilterField(data);\n break;\n }\n\n return field;\n}\n\nexport function createSmartFilter(\n fieldId: string,\n operator: IPepSmartFilterOperator,\n first: any,\n second?: any,\n operatorUnit?: IPepSmartFilterOperatorUnit\n): IPepSmartFilterData {\n return {\n fieldId: fieldId,\n operator: operator,\n operatorUnit: operatorUnit,\n value: {\n first: first,\n second: second,\n },\n };\n}","/*\n * Public API Surface of ngx-lib/smart-filters\n */\nexport * from './smart-filters.module';\nexport * from './smart-filters.component';\nexport * from './common/model/base-filter-component';\nexport * from './common/filter-actions.component';\nexport * from './boolean-filter/boolean-filter.component';\nexport * from './date-filter/date-filter.component';\nexport * from './multi-select-filter/multi-select-filter.component';\nexport * from './number-filter/number-filter.component';\nexport * from './text-filter/text-filter.component';\n\n// Model\nexport * from './common/model/creator';\nexport * from './common/model/field';\nexport * from './common/model/filter';\nexport * from './common/model/operator';\nexport * from './common/model/type';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["EventEmitter","Component","ChangeDetectionStrategy","ElementRef","PepLayoutService","Input","Output","Subject","takeUntil","Validators","Directive","ViewContainerRef","Injector","ComponentFactoryResolver","FormBuilder","TranslateService","PepValidatorService","Renderer2","distinctUntilChanged","FormControl","startWith","map","ViewChild","VirtualScrollerComponent","pepIconNumberMinus","pepIconNumberPlus","NgModule","CommonModule","ReactiveFormsModule","FlexLayoutModule","MatCommonModule","MatCheckboxModule","MatChipsModule","MatExpansionModule","MatIconModule","MatFormFieldModule","MatInputModule","MatRadioModule","VirtualScrollerModule","PepNgxLibModule","PepCheckboxModule","PepDateModule","PepSelectModule","PepTextboxModule","PepSearchModule","PepIconModule","PepButtonModule","PepGroupButtonsModule","PepIconRegistry"],"mappings":"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"}