@solidxai/core-ui 0.1.7-beta.1 → 0.1.7-beta.3

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 (1128) hide show
  1. package/dist/components/auth/AuthLayout.d.ts.map +1 -1
  2. package/dist/components/auth/AuthLayout.js +41 -26
  3. package/dist/components/auth/AuthLayout.js.map +1 -1
  4. package/dist/components/auth/AuthLayout.tsx +87 -88
  5. package/dist/components/auth/ForgotPasswordThankYou.d.ts.map +1 -1
  6. package/dist/components/auth/ForgotPasswordThankYou.js +4 -2
  7. package/dist/components/auth/ForgotPasswordThankYou.js.map +1 -1
  8. package/dist/components/auth/ForgotPasswordThankYou.tsx +14 -11
  9. package/dist/components/auth/GoogleAuthChecking.d.ts.map +1 -1
  10. package/dist/components/auth/GoogleAuthChecking.js +17 -12
  11. package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
  12. package/dist/components/auth/GoogleAuthChecking.tsx +8 -5
  13. package/dist/components/auth/SolidChangeForcePassword.d.ts.map +1 -1
  14. package/dist/components/auth/SolidChangeForcePassword.js +3 -5
  15. package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
  16. package/dist/components/auth/SolidChangeForcePassword.tsx +41 -34
  17. package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
  18. package/dist/components/auth/SolidForgotPassword.js +5 -10
  19. package/dist/components/auth/SolidForgotPassword.js.map +1 -1
  20. package/dist/components/auth/SolidForgotPassword.tsx +26 -27
  21. package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
  22. package/dist/components/auth/SolidInitialLoginOtp.js +25 -25
  23. package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
  24. package/dist/components/auth/SolidInitialLoginOtp.tsx +55 -43
  25. package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
  26. package/dist/components/auth/SolidInitiateRegisterOtp.js +11 -16
  27. package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
  28. package/dist/components/auth/SolidInitiateRegisterOtp.tsx +48 -42
  29. package/dist/components/auth/SolidLogin.d.ts.map +1 -1
  30. package/dist/components/auth/SolidLogin.js +34 -35
  31. package/dist/components/auth/SolidLogin.js.map +1 -1
  32. package/dist/components/auth/SolidLogin.tsx +90 -115
  33. package/dist/components/auth/SolidRegister.d.ts.map +1 -1
  34. package/dist/components/auth/SolidRegister.js +23 -25
  35. package/dist/components/auth/SolidRegister.js.map +1 -1
  36. package/dist/components/auth/SolidRegister.tsx +53 -71
  37. package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
  38. package/dist/components/auth/SolidResetPassword.js +5 -15
  39. package/dist/components/auth/SolidResetPassword.js.map +1 -1
  40. package/dist/components/auth/SolidResetPassword.tsx +15 -37
  41. package/dist/components/common/AutoCompleteField.d.ts.map +1 -1
  42. package/dist/components/common/AutoCompleteField.js +2 -2
  43. package/dist/components/common/AutoCompleteField.js.map +1 -1
  44. package/dist/components/common/AutoCompleteField.tsx +4 -6
  45. package/dist/components/common/BackButton.js +4 -3
  46. package/dist/components/common/BackButton.js.map +1 -1
  47. package/dist/components/common/BackButton.tsx +6 -6
  48. package/dist/components/common/CancelButton.d.ts.map +1 -1
  49. package/dist/components/common/CancelButton.js +5 -4
  50. package/dist/components/common/CancelButton.js.map +1 -1
  51. package/dist/components/common/CancelButton.tsx +10 -6
  52. package/dist/components/common/CreateButton.d.ts.map +1 -1
  53. package/dist/components/common/CreateButton.js +2 -2
  54. package/dist/components/common/CreateButton.js.map +1 -1
  55. package/dist/components/common/CreateButton.tsx +8 -2
  56. package/dist/components/common/DownloadProgressToast.d.ts.map +1 -1
  57. package/dist/components/common/DownloadProgressToast.js +3 -3
  58. package/dist/components/common/DownloadProgressToast.js.map +1 -1
  59. package/dist/components/common/DownloadProgressToast.tsx +21 -18
  60. package/dist/components/common/DropzonePlaceholder.js +2 -2
  61. package/dist/components/common/DropzonePlaceholder.js.map +1 -1
  62. package/dist/components/common/DropzonePlaceholder.tsx +3 -3
  63. package/dist/components/common/DropzoneUpload.js +2 -2
  64. package/dist/components/common/DropzoneUpload.js.map +1 -1
  65. package/dist/components/common/DropzoneUpload.tsx +3 -3
  66. package/dist/components/common/GeneralSettings.d.ts.map +1 -1
  67. package/dist/components/common/GeneralSettings.js +70 -106
  68. package/dist/components/common/GeneralSettings.js.map +1 -1
  69. package/dist/components/common/GeneralSettings.tsx +168 -327
  70. package/dist/components/common/GlobalToast.d.ts +1 -1
  71. package/dist/components/common/GlobalToast.d.ts.map +1 -1
  72. package/dist/components/common/GlobalToast.js +1 -24
  73. package/dist/components/common/GlobalToast.js.map +1 -1
  74. package/dist/components/common/GlobalToast.tsx +1 -25
  75. package/dist/components/common/MultipleSelectAutoCompleteField.d.ts.map +1 -1
  76. package/dist/components/common/MultipleSelectAutoCompleteField.js +2 -2
  77. package/dist/components/common/MultipleSelectAutoCompleteField.js.map +1 -1
  78. package/dist/components/common/MultipleSelectAutoCompleteField.tsx +3 -5
  79. package/dist/components/common/NotFound.d.ts.map +1 -1
  80. package/dist/components/common/NotFound.js +3 -3
  81. package/dist/components/common/NotFound.js.map +1 -1
  82. package/dist/components/common/NotFound.tsx +8 -15
  83. package/dist/components/common/SocialMediaLogin.d.ts.map +1 -1
  84. package/dist/components/common/SocialMediaLogin.js +13 -4
  85. package/dist/components/common/SocialMediaLogin.js.map +1 -1
  86. package/dist/components/common/SocialMediaLogin.tsx +58 -45
  87. package/dist/components/common/SolidAdmin.d.ts.map +1 -1
  88. package/dist/components/common/SolidAdmin.js +10 -2
  89. package/dist/components/common/SolidAdmin.js.map +1 -1
  90. package/dist/components/common/SolidAdmin.tsx +116 -131
  91. package/dist/components/common/SolidBreadcrumb.d.ts.map +1 -1
  92. package/dist/components/common/SolidBreadcrumb.js +10 -25
  93. package/dist/components/common/SolidBreadcrumb.js.map +1 -1
  94. package/dist/components/common/SolidBreadcrumb.tsx +32 -26
  95. package/dist/components/common/SolidErrorPage.d.ts.map +1 -1
  96. package/dist/components/common/SolidErrorPage.js +4 -6
  97. package/dist/components/common/SolidErrorPage.js.map +1 -1
  98. package/dist/components/common/SolidErrorPage.tsx +11 -37
  99. package/dist/components/common/SolidExport.d.ts +1 -1
  100. package/dist/components/common/SolidExport.d.ts.map +1 -1
  101. package/dist/components/common/SolidExport.js +182 -221
  102. package/dist/components/common/SolidExport.js.map +1 -1
  103. package/dist/components/common/SolidExport.tsx +401 -453
  104. package/dist/components/common/SolidFieldTooltip.d.ts +1 -1
  105. package/dist/components/common/SolidFieldTooltip.d.ts.map +1 -1
  106. package/dist/components/common/SolidFieldTooltip.js +8 -7
  107. package/dist/components/common/SolidFieldTooltip.js.map +1 -1
  108. package/dist/components/common/SolidFieldTooltip.tsx +29 -16
  109. package/dist/components/common/SolidFormHeader.d.ts +1 -1
  110. package/dist/components/common/SolidFormHeader.d.ts.map +1 -1
  111. package/dist/components/common/SolidFormHeader.js +7 -5
  112. package/dist/components/common/SolidFormHeader.js.map +1 -1
  113. package/dist/components/common/SolidFormHeader.tsx +11 -6
  114. package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
  115. package/dist/components/common/SolidFormStepper.js +7 -22
  116. package/dist/components/common/SolidFormStepper.js.map +1 -1
  117. package/dist/components/common/SolidFormStepper.tsx +31 -50
  118. package/dist/components/common/SolidHeaderRequestStatus.d.ts +6 -0
  119. package/dist/components/common/SolidHeaderRequestStatus.d.ts.map +1 -0
  120. package/dist/components/common/SolidHeaderRequestStatus.js +9 -0
  121. package/dist/components/common/SolidHeaderRequestStatus.js.map +1 -0
  122. package/dist/components/common/SolidHeaderRequestStatus.tsx +16 -0
  123. package/dist/components/common/SolidModuleHome.d.ts.map +1 -1
  124. package/dist/components/common/SolidModuleHome.js +3 -3
  125. package/dist/components/common/SolidModuleHome.js.map +1 -1
  126. package/dist/components/common/SolidModuleHome.tsx +13 -5
  127. package/dist/components/common/SolidNotFoundPage.d.ts.map +1 -1
  128. package/dist/components/common/SolidNotFoundPage.js +4 -5
  129. package/dist/components/common/SolidNotFoundPage.js.map +1 -1
  130. package/dist/components/common/SolidNotFoundPage.tsx +11 -29
  131. package/dist/components/common/SolidPopupContainer.d.ts.map +1 -1
  132. package/dist/components/common/SolidPopupContainer.js +11 -6
  133. package/dist/components/common/SolidPopupContainer.js.map +1 -1
  134. package/dist/components/common/SolidPopupContainer.tsx +28 -29
  135. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts +11 -0
  136. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.d.ts.map +1 -0
  137. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js +60 -0
  138. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.js.map +1 -0
  139. package/dist/components/common/SolidSettings/LlmSettings/AiModelConfigTab.tsx +76 -0
  140. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.d.ts.map +1 -1
  141. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.js +2 -3
  142. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.js.map +1 -1
  143. package/dist/components/common/SolidSettings/LlmSettings/AnthropicProviderComponent.tsx +28 -38
  144. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.d.ts.map +1 -1
  145. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.js +2 -3
  146. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.js.map +1 -1
  147. package/dist/components/common/SolidSettings/LlmSettings/OpenAiProviderComponent.tsx +28 -38
  148. package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.js +2 -2
  149. package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.js.map +1 -1
  150. package/dist/components/common/SolidSettings/SettingDropzoneActivePlaceholder.tsx +3 -3
  151. package/dist/components/common/SolidSettings/SettingsImageRemoveButton.js +2 -2
  152. package/dist/components/common/SolidSettings/SettingsImageRemoveButton.js.map +1 -1
  153. package/dist/components/common/SolidSettings/SettingsImageRemoveButton.tsx +3 -3
  154. package/dist/components/common/SolidToastProvider.d.ts +2 -0
  155. package/dist/components/common/SolidToastProvider.d.ts.map +1 -0
  156. package/dist/components/common/SolidToastProvider.js +45 -0
  157. package/dist/components/common/SolidToastProvider.js.map +1 -0
  158. package/dist/components/common/SolidToastProvider.tsx +39 -0
  159. package/dist/components/common/error.d.ts.map +1 -1
  160. package/dist/components/common/error.js +4 -2
  161. package/dist/components/common/error.js.map +1 -1
  162. package/dist/components/common/error.tsx +9 -15
  163. package/dist/components/common/solid-export.css +454 -59
  164. package/dist/components/core/card/CardGrid.d.ts +3 -0
  165. package/dist/components/core/card/CardGrid.d.ts.map +1 -0
  166. package/dist/components/core/card/CardGrid.js +42 -0
  167. package/dist/components/core/card/CardGrid.js.map +1 -0
  168. package/dist/components/core/card/CardGrid.tsx +83 -0
  169. package/dist/components/core/card/CardItem.d.ts +13 -0
  170. package/dist/components/core/card/CardItem.d.ts.map +1 -0
  171. package/dist/components/core/card/CardItem.js +21 -0
  172. package/dist/components/core/card/CardItem.js.map +1 -0
  173. package/dist/components/core/card/CardItem.tsx +91 -0
  174. package/dist/components/core/card/CardUserViewLayout.d.ts +2 -0
  175. package/dist/components/core/card/CardUserViewLayout.d.ts.map +1 -0
  176. package/dist/components/core/card/CardUserViewLayout.js +94 -0
  177. package/dist/components/core/card/CardUserViewLayout.js.map +1 -0
  178. package/dist/components/core/card/CardUserViewLayout.tsx +68 -0
  179. package/dist/components/core/card/SolidCardView.d.ts +8 -0
  180. package/dist/components/core/card/SolidCardView.d.ts.map +1 -0
  181. package/dist/components/core/card/SolidCardView.js +365 -0
  182. package/dist/components/core/card/SolidCardView.js.map +1 -0
  183. package/dist/components/core/card/SolidCardView.tsx +528 -0
  184. package/dist/components/core/card/SolidCardViewConfigure.d.ts +2 -0
  185. package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -0
  186. package/dist/components/core/card/SolidCardViewConfigure.js +122 -0
  187. package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -0
  188. package/dist/components/core/card/SolidCardViewConfigure.tsx +268 -0
  189. package/dist/components/core/chatter/SolidChatter.d.ts.map +1 -1
  190. package/dist/components/core/chatter/SolidChatter.js +25 -21
  191. package/dist/components/core/chatter/SolidChatter.js.map +1 -1
  192. package/dist/components/core/chatter/SolidChatter.tsx +85 -67
  193. package/dist/components/core/chatter/SolidChatterAuditMessage.js +1 -1
  194. package/dist/components/core/chatter/SolidChatterAuditMessage.js.map +1 -1
  195. package/dist/components/core/chatter/SolidChatterAuditMessage.tsx +3 -3
  196. package/dist/components/core/chatter/SolidChatterCustomMessage.d.ts.map +1 -1
  197. package/dist/components/core/chatter/SolidChatterCustomMessage.js +2 -1
  198. package/dist/components/core/chatter/SolidChatterCustomMessage.js.map +1 -1
  199. package/dist/components/core/chatter/SolidChatterCustomMessage.tsx +3 -6
  200. package/dist/components/core/chatter/SolidChatterDateDivider.js.map +1 -1
  201. package/dist/components/core/chatter/SolidChatterDateDivider.tsx +1 -1
  202. package/dist/components/core/chatter/SolidChatterHeader.d.ts +1 -0
  203. package/dist/components/core/chatter/SolidChatterHeader.d.ts.map +1 -1
  204. package/dist/components/core/chatter/SolidChatterHeader.js +40 -30
  205. package/dist/components/core/chatter/SolidChatterHeader.js.map +1 -1
  206. package/dist/components/core/chatter/SolidChatterHeader.tsx +137 -101
  207. package/dist/components/core/chatter/SolidChatterMessageBox.d.ts.map +1 -1
  208. package/dist/components/core/chatter/SolidChatterMessageBox.js +55 -21
  209. package/dist/components/core/chatter/SolidChatterMessageBox.js.map +1 -1
  210. package/dist/components/core/chatter/SolidChatterMessageBox.tsx +124 -91
  211. package/dist/components/core/chatter/SolidMessageComposer.d.ts +6 -3
  212. package/dist/components/core/chatter/SolidMessageComposer.d.ts.map +1 -1
  213. package/dist/components/core/chatter/SolidMessageComposer.js +15 -7
  214. package/dist/components/core/chatter/SolidMessageComposer.js.map +1 -1
  215. package/dist/components/core/chatter/SolidMessageComposer.tsx +90 -49
  216. package/dist/components/core/chatter/chatter.module.css +197 -7
  217. package/dist/components/core/common/FilterComponent.d.ts +2 -8
  218. package/dist/components/core/common/FilterComponent.d.ts.map +1 -1
  219. package/dist/components/core/common/FilterComponent.js +27 -49
  220. package/dist/components/core/common/FilterComponent.js.map +1 -1
  221. package/dist/components/core/common/FilterComponent.tsx +69 -127
  222. package/dist/components/core/common/GroupingComponent.d.ts.map +1 -1
  223. package/dist/components/core/common/GroupingComponent.js +40 -70
  224. package/dist/components/core/common/GroupingComponent.js.map +1 -1
  225. package/dist/components/core/common/GroupingComponent.tsx +174 -251
  226. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.d.ts +1 -1
  227. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.d.ts.map +1 -1
  228. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js +12 -32
  229. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.js.map +1 -1
  230. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css +530 -42
  231. package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.tsx +71 -86
  232. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  233. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +75 -48
  234. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  235. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +242 -172
  236. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  237. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +44 -55
  238. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  239. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +108 -125
  240. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.d.ts.map +1 -1
  241. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js +106 -87
  242. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js.map +1 -1
  243. package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +332 -285
  244. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.d.ts.map +1 -1
  245. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.js +12 -13
  246. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.js.map +1 -1
  247. package/dist/components/core/common/SolidAccountSettings/SolidVersionInfo.tsx +48 -65
  248. package/dist/components/core/common/SolidCreateButton.d.ts.map +1 -1
  249. package/dist/components/core/common/SolidCreateButton.js +5 -3
  250. package/dist/components/core/common/SolidCreateButton.js.map +1 -1
  251. package/dist/components/core/common/SolidCreateButton.tsx +20 -14
  252. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.d.ts.map +1 -1
  253. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.js +30 -11
  254. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.js.map +1 -1
  255. package/dist/components/core/common/SolidGenericImport/SolidGenericImport.tsx +91 -43
  256. package/dist/components/core/common/SolidGenericImport/SolidImport.module.css +574 -27
  257. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
  258. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +14 -9
  259. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
  260. package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +46 -24
  261. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.d.ts.map +1 -1
  262. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js +24 -25
  263. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.js.map +1 -1
  264. package/dist/components/core/common/SolidGenericImport/SolidImportInstructions.tsx +78 -54
  265. package/dist/components/core/common/SolidGenericImport/SolidImportStepper.d.ts +1 -1
  266. package/dist/components/core/common/SolidGenericImport/SolidImportStepper.d.ts.map +1 -1
  267. package/dist/components/core/common/SolidGenericImport/SolidImportStepper.js +15 -125
  268. package/dist/components/core/common/SolidGenericImport/SolidImportStepper.js.map +1 -1
  269. package/dist/components/core/common/SolidGenericImport/SolidImportStepper.tsx +35 -213
  270. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
  271. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +16 -31
  272. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
  273. package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +77 -84
  274. package/dist/components/core/common/SolidGenericImport/SolidImportTransactionStatus.d.ts.map +1 -1
  275. package/dist/components/core/common/SolidGenericImport/SolidImportTransactionStatus.js +11 -13
  276. package/dist/components/core/common/SolidGenericImport/SolidImportTransactionStatus.js.map +1 -1
  277. package/dist/components/core/common/SolidGenericImport/SolidImportTransactionStatus.tsx +87 -52
  278. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  279. package/dist/components/core/common/SolidGlobalSearchElement.js +319 -161
  280. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  281. package/dist/components/core/common/SolidGlobalSearchElement.tsx +654 -287
  282. package/dist/components/core/common/SolidLayoutViews.d.ts.map +1 -1
  283. package/dist/components/core/common/SolidLayoutViews.js +5 -8
  284. package/dist/components/core/common/SolidLayoutViews.js.map +1 -1
  285. package/dist/components/core/common/SolidLayoutViews.tsx +49 -63
  286. package/dist/components/core/common/SolidListViewOptions.d.ts.map +1 -1
  287. package/dist/components/core/common/SolidListViewOptions.js +3 -3
  288. package/dist/components/core/common/SolidListViewOptions.js.map +1 -1
  289. package/dist/components/core/common/SolidListViewOptions.tsx +7 -6
  290. package/dist/components/core/common/SolidSaveCustomFilterForm.d.ts.map +1 -1
  291. package/dist/components/core/common/SolidSaveCustomFilterForm.js +3 -3
  292. package/dist/components/core/common/SolidSaveCustomFilterForm.js.map +1 -1
  293. package/dist/components/core/common/SolidSaveCustomFilterForm.tsx +31 -28
  294. package/dist/components/core/common/SolidSearchBox.d.ts.map +1 -1
  295. package/dist/components/core/common/SolidSearchBox.js +2 -2
  296. package/dist/components/core/common/SolidSearchBox.js.map +1 -1
  297. package/dist/components/core/common/SolidSearchBox.tsx +3 -4
  298. package/dist/components/core/dashboard/DashboardFilter.d.ts.map +1 -1
  299. package/dist/components/core/dashboard/DashboardFilter.js +8 -14
  300. package/dist/components/core/dashboard/DashboardFilter.js.map +1 -1
  301. package/dist/components/core/dashboard/DashboardFilter.tsx +26 -34
  302. package/dist/components/core/dashboard/PrimeDataTableWrapper.js +2 -2
  303. package/dist/components/core/dashboard/PrimeDataTableWrapper.js.map +1 -1
  304. package/dist/components/core/dashboard/PrimeDataTableWrapper.tsx +3 -3
  305. package/dist/components/core/dashboard/SolidDashboard.d.ts.map +1 -1
  306. package/dist/components/core/dashboard/SolidDashboard.js +13 -125
  307. package/dist/components/core/dashboard/SolidDashboard.js.map +1 -1
  308. package/dist/components/core/dashboard/SolidDashboard.module.css +3 -3
  309. package/dist/components/core/dashboard/SolidDashboard.tsx +41 -187
  310. package/dist/components/core/dashboard/SolidDashboardBody.d.ts.map +1 -1
  311. package/dist/components/core/dashboard/SolidDashboardBody.js +14 -14
  312. package/dist/components/core/dashboard/SolidDashboardBody.js.map +1 -1
  313. package/dist/components/core/dashboard/SolidDashboardBody.tsx +6 -7
  314. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js +2 -1
  315. package/dist/components/core/dashboard/SolidDashboardFilterRequired.js.map +1 -1
  316. package/dist/components/core/dashboard/SolidDashboardFilterRequired.tsx +3 -3
  317. package/dist/components/core/dashboard/SolidDashboardLoading.d.ts.map +1 -1
  318. package/dist/components/core/dashboard/SolidDashboardLoading.js +5 -2
  319. package/dist/components/core/dashboard/SolidDashboardLoading.js.map +1 -1
  320. package/dist/components/core/dashboard/SolidDashboardLoading.tsx +20 -14
  321. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js +2 -1
  322. package/dist/components/core/dashboard/SolidDashboardNotAvailable.js.map +1 -1
  323. package/dist/components/core/dashboard/SolidDashboardNotAvailable.tsx +3 -3
  324. package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts.map +1 -1
  325. package/dist/components/core/dashboard/SolidDashboardRenderError.js +2 -1
  326. package/dist/components/core/dashboard/SolidDashboardRenderError.js.map +1 -1
  327. package/dist/components/core/dashboard/SolidDashboardRenderError.tsx +3 -4
  328. package/dist/components/core/dashboard/SolidDashboardVariable.d.ts.map +1 -1
  329. package/dist/components/core/dashboard/SolidDashboardVariable.js +9 -18
  330. package/dist/components/core/dashboard/SolidDashboardVariable.js.map +1 -1
  331. package/dist/components/core/dashboard/SolidDashboardVariable.tsx +40 -37
  332. package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts.map +1 -1
  333. package/dist/components/core/dashboard/SolidQuestionRenderer.js +16 -11
  334. package/dist/components/core/dashboard/SolidQuestionRenderer.js.map +1 -1
  335. package/dist/components/core/dashboard/SolidQuestionRenderer.tsx +30 -11
  336. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts.map +1 -1
  337. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js +4 -14
  338. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js.map +1 -1
  339. package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.tsx +24 -27
  340. package/dist/components/core/extension/solid-core/CustomIcon/StatusIcon.d.ts +1 -2
  341. package/dist/components/core/extension/solid-core/CustomIcon/StatusIcon.d.ts.map +1 -1
  342. package/dist/components/core/extension/solid-core/CustomIcon/StatusIcon.js +2 -2
  343. package/dist/components/core/extension/solid-core/CustomIcon/StatusIcon.js.map +1 -1
  344. package/dist/components/core/extension/solid-core/CustomIcon/StatusIcon.tsx +10 -12
  345. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js +2 -2
  346. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js.map +1 -1
  347. package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.tsx +3 -3
  348. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.d.ts +3 -0
  349. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.d.ts.map +1 -0
  350. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.js +69 -0
  351. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.js.map +1 -0
  352. package/dist/components/core/extension/solid-core/media/card/MediaCardWidget.tsx +139 -0
  353. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
  354. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +3 -6
  355. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
  356. package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +54 -38
  357. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.d.ts.map +1 -1
  358. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js +74 -97
  359. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js.map +1 -1
  360. package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +178 -188
  361. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.d.ts.map +1 -1
  362. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js +33 -35
  363. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js.map +1 -1
  364. package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.tsx +123 -110
  365. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.d.ts.map +1 -1
  366. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js +70 -106
  367. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js.map +1 -1
  368. package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +175 -182
  369. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.d.ts +3 -0
  370. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.d.ts.map +1 -0
  371. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.js +128 -0
  372. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.js.map +1 -0
  373. package/dist/components/core/extension/solid-core/mqMessage/kanban/MqMessageKanbanCardWidget.tsx +193 -0
  374. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
  375. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +10 -18
  376. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
  377. package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +32 -53
  378. package/dist/components/core/field/FieldListViewData.d.ts.map +1 -1
  379. package/dist/components/core/field/FieldListViewData.js +83 -74
  380. package/dist/components/core/field/FieldListViewData.js.map +1 -1
  381. package/dist/components/core/field/FieldListViewData.tsx +120 -168
  382. package/dist/components/core/filter/SEARCH_FILTER_HIERARCHY.md +582 -0
  383. package/dist/components/core/filter/SolidBooleanFilterElement.d.ts +1 -1
  384. package/dist/components/core/filter/SolidBooleanFilterElement.d.ts.map +1 -1
  385. package/dist/components/core/filter/SolidBooleanFilterElement.js +4 -4
  386. package/dist/components/core/filter/SolidBooleanFilterElement.js.map +1 -1
  387. package/dist/components/core/filter/SolidBooleanFilterElement.tsx +7 -6
  388. package/dist/components/core/filter/SolidManyToManyFilterElement.d.ts +1 -1
  389. package/dist/components/core/filter/SolidManyToManyFilterElement.d.ts.map +1 -1
  390. package/dist/components/core/filter/SolidManyToManyFilterElement.js +5 -9
  391. package/dist/components/core/filter/SolidManyToManyFilterElement.js.map +1 -1
  392. package/dist/components/core/filter/SolidManyToManyFilterElement.tsx +8 -7
  393. package/dist/components/core/filter/SolidManyToOneFilterElement.d.ts +1 -1
  394. package/dist/components/core/filter/SolidManyToOneFilterElement.d.ts.map +1 -1
  395. package/dist/components/core/filter/SolidManyToOneFilterElement.js +4 -4
  396. package/dist/components/core/filter/SolidManyToOneFilterElement.js.map +1 -1
  397. package/dist/components/core/filter/SolidManyToOneFilterElement.tsx +7 -6
  398. package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts +1 -1
  399. package/dist/components/core/filter/SolidOneToManyFilterElement.d.ts.map +1 -1
  400. package/dist/components/core/filter/SolidOneToManyFilterElement.js +5 -9
  401. package/dist/components/core/filter/SolidOneToManyFilterElement.js.map +1 -1
  402. package/dist/components/core/filter/SolidOneToManyFilterElement.tsx +8 -7
  403. package/dist/components/core/filter/SolidSelectionDynamicFilterElement.d.ts +1 -1
  404. package/dist/components/core/filter/SolidSelectionDynamicFilterElement.d.ts.map +1 -1
  405. package/dist/components/core/filter/SolidSelectionDynamicFilterElement.js +4 -4
  406. package/dist/components/core/filter/SolidSelectionDynamicFilterElement.js.map +1 -1
  407. package/dist/components/core/filter/SolidSelectionDynamicFilterElement.tsx +7 -6
  408. package/dist/components/core/filter/SolidSelectionStaticFilterElement.d.ts +1 -1
  409. package/dist/components/core/filter/SolidSelectionStaticFilterElement.d.ts.map +1 -1
  410. package/dist/components/core/filter/SolidSelectionStaticFilterElement.js +4 -4
  411. package/dist/components/core/filter/SolidSelectionStaticFilterElement.js.map +1 -1
  412. package/dist/components/core/filter/SolidSelectionStaticFilterElement.tsx +7 -6
  413. package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts +1 -1
  414. package/dist/components/core/filter/SolidVarInputsFilterElement.d.ts.map +1 -1
  415. package/dist/components/core/filter/SolidVarInputsFilterElement.js +109 -38
  416. package/dist/components/core/filter/SolidVarInputsFilterElement.js.map +1 -1
  417. package/dist/components/core/filter/SolidVarInputsFilterElement.tsx +215 -155
  418. package/dist/components/core/filter/fields/SolidBooleanField.js +3 -3
  419. package/dist/components/core/filter/fields/SolidBooleanField.js.map +1 -1
  420. package/dist/components/core/filter/fields/SolidBooleanField.tsx +6 -6
  421. package/dist/components/core/filter/fields/SolidDateField.d.ts.map +1 -1
  422. package/dist/components/core/filter/fields/SolidDateField.js +3 -5
  423. package/dist/components/core/filter/fields/SolidDateField.js.map +1 -1
  424. package/dist/components/core/filter/fields/SolidDateField.tsx +6 -8
  425. package/dist/components/core/filter/fields/SolidDatetimeField.js +3 -3
  426. package/dist/components/core/filter/fields/SolidDatetimeField.js.map +1 -1
  427. package/dist/components/core/filter/fields/SolidDatetimeField.tsx +5 -5
  428. package/dist/components/core/filter/fields/SolidExternalIdField.js +5 -5
  429. package/dist/components/core/filter/fields/SolidExternalIdField.js.map +1 -1
  430. package/dist/components/core/filter/fields/SolidExternalIdField.tsx +8 -8
  431. package/dist/components/core/filter/fields/SolidIdField.d.ts.map +1 -1
  432. package/dist/components/core/filter/fields/SolidIdField.js +11 -4
  433. package/dist/components/core/filter/fields/SolidIdField.js.map +1 -1
  434. package/dist/components/core/filter/fields/SolidIdField.tsx +12 -5
  435. package/dist/components/core/filter/fields/SolidIntField.d.ts.map +1 -1
  436. package/dist/components/core/filter/fields/SolidIntField.js +3 -5
  437. package/dist/components/core/filter/fields/SolidIntField.js.map +1 -1
  438. package/dist/components/core/filter/fields/SolidIntField.tsx +6 -8
  439. package/dist/components/core/filter/fields/SolidMediaMultipleField.d.ts.map +1 -1
  440. package/dist/components/core/filter/fields/SolidMediaMultipleField.js +3 -5
  441. package/dist/components/core/filter/fields/SolidMediaMultipleField.js.map +1 -1
  442. package/dist/components/core/filter/fields/SolidMediaMultipleField.tsx +6 -8
  443. package/dist/components/core/filter/fields/SolidMediaSingleField.d.ts.map +1 -1
  444. package/dist/components/core/filter/fields/SolidMediaSingleField.js +3 -5
  445. package/dist/components/core/filter/fields/SolidMediaSingleField.js.map +1 -1
  446. package/dist/components/core/filter/fields/SolidMediaSingleField.tsx +6 -8
  447. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js +3 -3
  448. package/dist/components/core/filter/fields/SolidSelectionDynamicField.js.map +1 -1
  449. package/dist/components/core/filter/fields/SolidSelectionDynamicField.tsx +5 -5
  450. package/dist/components/core/filter/fields/SolidSelectionStaticField.js +3 -3
  451. package/dist/components/core/filter/fields/SolidSelectionStaticField.js.map +1 -1
  452. package/dist/components/core/filter/fields/SolidSelectionStaticField.tsx +5 -5
  453. package/dist/components/core/filter/fields/SolidShortTextField.d.ts.map +1 -1
  454. package/dist/components/core/filter/fields/SolidShortTextField.js +3 -5
  455. package/dist/components/core/filter/fields/SolidShortTextField.js.map +1 -1
  456. package/dist/components/core/filter/fields/SolidShortTextField.tsx +6 -8
  457. package/dist/components/core/filter/fields/SolidTimeField.js +3 -3
  458. package/dist/components/core/filter/fields/SolidTimeField.js.map +1 -1
  459. package/dist/components/core/filter/fields/SolidTimeField.tsx +5 -5
  460. package/dist/components/core/filter/fields/SolidUuidField.js +5 -5
  461. package/dist/components/core/filter/fields/SolidUuidField.js.map +1 -1
  462. package/dist/components/core/filter/fields/SolidUuidField.tsx +8 -8
  463. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js +2 -2
  464. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  465. package/dist/components/core/filter/fields/relations/SolidRelationManyToManyField.tsx +4 -4
  466. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js +3 -3
  467. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  468. package/dist/components/core/filter/fields/relations/SolidRelationManyToOneField.tsx +5 -5
  469. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js +2 -2
  470. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  471. package/dist/components/core/filter/fields/relations/SolidRelationOneToManyField.tsx +4 -4
  472. package/dist/components/core/filter/filterMatchMode.d.ts +17 -0
  473. package/dist/components/core/filter/filterMatchMode.d.ts.map +1 -0
  474. package/dist/components/core/filter/filterMatchMode.js +16 -0
  475. package/dist/components/core/filter/filterMatchMode.js.map +1 -0
  476. package/dist/components/core/filter/filterMatchMode.ts +18 -0
  477. package/dist/components/core/form/SolidFormActionHeader.d.ts +1 -1
  478. package/dist/components/core/form/SolidFormActionHeader.d.ts.map +1 -1
  479. package/dist/components/core/form/SolidFormActionHeader.js +60 -54
  480. package/dist/components/core/form/SolidFormActionHeader.js.map +1 -1
  481. package/dist/components/core/form/SolidFormActionHeader.tsx +356 -331
  482. package/dist/components/core/form/SolidFormFieldRender.js +2 -2
  483. package/dist/components/core/form/SolidFormFieldRender.js.map +1 -1
  484. package/dist/components/core/form/SolidFormFieldRender.tsx +2 -2
  485. package/dist/components/core/form/SolidFormFooter.d.ts.map +1 -1
  486. package/dist/components/core/form/SolidFormFooter.js +2 -2
  487. package/dist/components/core/form/SolidFormFooter.js.map +1 -1
  488. package/dist/components/core/form/SolidFormFooter.tsx +26 -18
  489. package/dist/components/core/form/SolidFormUserViewLayout.d.ts.map +1 -1
  490. package/dist/components/core/form/SolidFormUserViewLayout.js +3 -6
  491. package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
  492. package/dist/components/core/form/SolidFormUserViewLayout.tsx +8 -12
  493. package/dist/components/core/form/SolidFormView.d.ts +0 -3
  494. package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
  495. package/dist/components/core/form/SolidFormView.js +62 -100
  496. package/dist/components/core/form/SolidFormView.js.map +1 -1
  497. package/dist/components/core/form/SolidFormView.tsx +140 -163
  498. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts +3 -1
  499. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.d.ts.map +1 -1
  500. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js +22 -16
  501. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.js.map +1 -1
  502. package/dist/components/core/form/SolidFormViewContextMenuHeaderButton.tsx +46 -17
  503. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts +3 -1
  504. package/dist/components/core/form/SolidFormViewNormalHeaderButton.d.ts.map +1 -1
  505. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js +21 -15
  506. package/dist/components/core/form/SolidFormViewNormalHeaderButton.js.map +1 -1
  507. package/dist/components/core/form/SolidFormViewNormalHeaderButton.tsx +39 -17
  508. package/dist/components/core/form/SolidFormViewShimmerLoading.d.ts.map +1 -1
  509. package/dist/components/core/form/SolidFormViewShimmerLoading.js +5 -2
  510. package/dist/components/core/form/SolidFormViewShimmerLoading.js.map +1 -1
  511. package/dist/components/core/form/SolidFormViewShimmerLoading.tsx +40 -37
  512. package/dist/components/core/form/fields/SolidBooleanField.d.ts +1 -1
  513. package/dist/components/core/form/fields/SolidBooleanField.d.ts.map +1 -1
  514. package/dist/components/core/form/fields/SolidBooleanField.js +80 -69
  515. package/dist/components/core/form/fields/SolidBooleanField.js.map +1 -1
  516. package/dist/components/core/form/fields/SolidBooleanField.tsx +116 -145
  517. package/dist/components/core/form/fields/SolidDateField.d.ts.map +1 -1
  518. package/dist/components/core/form/fields/SolidDateField.js +22 -49
  519. package/dist/components/core/form/fields/SolidDateField.js.map +1 -1
  520. package/dist/components/core/form/fields/SolidDateField.tsx +30 -72
  521. package/dist/components/core/form/fields/SolidDateTimeField.d.ts.map +1 -1
  522. package/dist/components/core/form/fields/SolidDateTimeField.js +22 -48
  523. package/dist/components/core/form/fields/SolidDateTimeField.js.map +1 -1
  524. package/dist/components/core/form/fields/SolidDateTimeField.tsx +33 -69
  525. package/dist/components/core/form/fields/SolidDecimalField.d.ts +1 -1
  526. package/dist/components/core/form/fields/SolidDecimalField.d.ts.map +1 -1
  527. package/dist/components/core/form/fields/SolidDecimalField.js +17 -17
  528. package/dist/components/core/form/fields/SolidDecimalField.js.map +1 -1
  529. package/dist/components/core/form/fields/SolidDecimalField.tsx +21 -24
  530. package/dist/components/core/form/fields/SolidEmailField.d.ts.map +1 -1
  531. package/dist/components/core/form/fields/SolidEmailField.js +11 -15
  532. package/dist/components/core/form/fields/SolidEmailField.js.map +1 -1
  533. package/dist/components/core/form/fields/SolidEmailField.tsx +27 -33
  534. package/dist/components/core/form/fields/SolidIntegerField.d.ts +1 -1
  535. package/dist/components/core/form/fields/SolidIntegerField.d.ts.map +1 -1
  536. package/dist/components/core/form/fields/SolidIntegerField.js +12 -9
  537. package/dist/components/core/form/fields/SolidIntegerField.js.map +1 -1
  538. package/dist/components/core/form/fields/SolidIntegerField.tsx +23 -24
  539. package/dist/components/core/form/fields/SolidJsonField.d.ts.map +1 -1
  540. package/dist/components/core/form/fields/SolidJsonField.js +15 -10
  541. package/dist/components/core/form/fields/SolidJsonField.js.map +1 -1
  542. package/dist/components/core/form/fields/SolidJsonField.tsx +21 -20
  543. package/dist/components/core/form/fields/SolidLongTextField.d.ts.map +1 -1
  544. package/dist/components/core/form/fields/SolidLongTextField.js +28 -44
  545. package/dist/components/core/form/fields/SolidLongTextField.js.map +1 -1
  546. package/dist/components/core/form/fields/SolidLongTextField.tsx +90 -119
  547. package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
  548. package/dist/components/core/form/fields/SolidMediaMultipleField.js +33 -41
  549. package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
  550. package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +96 -94
  551. package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
  552. package/dist/components/core/form/fields/SolidMediaSingleField.js +10 -23
  553. package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
  554. package/dist/components/core/form/fields/SolidMediaSingleField.tsx +94 -91
  555. package/dist/components/core/form/fields/SolidPasswordField.d.ts.map +1 -1
  556. package/dist/components/core/form/fields/SolidPasswordField.js +29 -32
  557. package/dist/components/core/form/fields/SolidPasswordField.js.map +1 -1
  558. package/dist/components/core/form/fields/SolidPasswordField.tsx +89 -88
  559. package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
  560. package/dist/components/core/form/fields/SolidRichTextField.js +6 -8
  561. package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
  562. package/dist/components/core/form/fields/SolidRichTextField.tsx +31 -46
  563. package/dist/components/core/form/fields/SolidSelectionDynamicField.d.ts.map +1 -1
  564. package/dist/components/core/form/fields/SolidSelectionDynamicField.js +36 -24
  565. package/dist/components/core/form/fields/SolidSelectionDynamicField.js.map +1 -1
  566. package/dist/components/core/form/fields/SolidSelectionDynamicField.tsx +56 -61
  567. package/dist/components/core/form/fields/SolidSelectionStaticField.d.ts.map +1 -1
  568. package/dist/components/core/form/fields/SolidSelectionStaticField.js +60 -74
  569. package/dist/components/core/form/fields/SolidSelectionStaticField.js.map +1 -1
  570. package/dist/components/core/form/fields/SolidSelectionStaticField.tsx +99 -167
  571. package/dist/components/core/form/fields/SolidShortTextField.d.ts.map +1 -1
  572. package/dist/components/core/form/fields/SolidShortTextField.js +23 -36
  573. package/dist/components/core/form/fields/SolidShortTextField.js.map +1 -1
  574. package/dist/components/core/form/fields/SolidShortTextField.tsx +54 -119
  575. package/dist/components/core/form/fields/SolidTimeField.d.ts.map +1 -1
  576. package/dist/components/core/form/fields/SolidTimeField.js +14 -14
  577. package/dist/components/core/form/fields/SolidTimeField.js.map +1 -1
  578. package/dist/components/core/form/fields/SolidTimeField.tsx +23 -26
  579. package/dist/components/core/form/fields/fieldEventUtils.d.ts +10 -0
  580. package/dist/components/core/form/fields/fieldEventUtils.d.ts.map +1 -0
  581. package/dist/components/core/form/fields/fieldEventUtils.js +11 -0
  582. package/dist/components/core/form/fields/fieldEventUtils.js.map +1 -0
  583. package/dist/components/core/form/fields/fieldEventUtils.ts +24 -0
  584. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
  585. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +19 -12
  586. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
  587. package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +57 -53
  588. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
  589. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +37 -25
  590. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
  591. package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +52 -34
  592. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.d.ts.map +1 -1
  593. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js +9 -8
  594. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.js.map +1 -1
  595. package/dist/components/core/form/fields/relations/SolidRelationOneToManyField.tsx +15 -18
  596. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.d.ts.map +1 -1
  597. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js +5 -8
  598. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.js.map +1 -1
  599. package/dist/components/core/form/fields/relations/widgets/helpers/InlineRelationEntityDialog.tsx +20 -13
  600. package/dist/components/core/form/fields/solidFields.module.css +192 -1
  601. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.d.ts.map +1 -1
  602. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.js +76 -56
  603. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.js.map +1 -1
  604. package/dist/components/core/form/fields/widgets/SolidAiInteractionMetadataFieldFormWidget.tsx +106 -120
  605. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +8 -8
  606. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
  607. package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +16 -16
  608. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.d.ts.map +1 -1
  609. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.js.map +1 -1
  610. package/dist/components/core/form/fields/widgets/SolidRelationFieldAvatarFormWidget.tsx +0 -5
  611. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.d.ts.map +1 -1
  612. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js +9 -8
  613. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.js.map +1 -1
  614. package/dist/components/core/form/fields/widgets/SolidS3FileViewerWidget.tsx +38 -29
  615. package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.d.ts.map +1 -1
  616. package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.js.map +1 -1
  617. package/dist/components/core/form/fields/widgets/SolidShortTextFieldAvatarWidget.tsx +1 -6
  618. package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
  619. package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
  620. package/dist/components/core/kanban/KanbanBoard.js +38 -8
  621. package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
  622. package/dist/components/core/kanban/KanbanBoard.tsx +55 -9
  623. package/dist/components/core/kanban/KanbanCard.d.ts +7 -0
  624. package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
  625. package/dist/components/core/kanban/KanbanCard.js +22 -162
  626. package/dist/components/core/kanban/KanbanCard.js.map +1 -1
  627. package/dist/components/core/kanban/KanbanCard.tsx +64 -222
  628. package/dist/components/core/kanban/KanbanColumn.d.ts +3 -2
  629. package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
  630. package/dist/components/core/kanban/KanbanColumn.js +8 -14
  631. package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
  632. package/dist/components/core/kanban/KanbanColumn.tsx +59 -80
  633. package/dist/components/core/kanban/KanbanUserViewLayout.d.ts.map +1 -1
  634. package/dist/components/core/kanban/KanbanUserViewLayout.js +4 -7
  635. package/dist/components/core/kanban/KanbanUserViewLayout.js.map +1 -1
  636. package/dist/components/core/kanban/KanbanUserViewLayout.tsx +15 -16
  637. package/dist/components/core/kanban/SolidKanbanView.d.ts +0 -2
  638. package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
  639. package/dist/components/core/kanban/SolidKanbanView.js +121 -74
  640. package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
  641. package/dist/components/core/kanban/SolidKanbanView.tsx +221 -139
  642. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts +1 -1
  643. package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
  644. package/dist/components/core/kanban/SolidKanbanViewConfigure.js +111 -52
  645. package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
  646. package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +239 -122
  647. package/dist/components/core/list/ListViewRowActionPopup.d.ts.map +1 -1
  648. package/dist/components/core/list/ListViewRowActionPopup.js +3 -2
  649. package/dist/components/core/list/ListViewRowActionPopup.js.map +1 -1
  650. package/dist/components/core/list/ListViewRowActionPopup.tsx +8 -5
  651. package/dist/components/core/list/PLAN.md +22 -2
  652. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts +1 -1
  653. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
  654. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +3 -8
  655. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
  656. package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +19 -24
  657. package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
  658. package/dist/components/core/list/SolidDataTable.js +7 -4
  659. package/dist/components/core/list/SolidDataTable.js.map +1 -1
  660. package/dist/components/core/list/SolidDataTable.tsx +8 -5
  661. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts +1 -1
  662. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  663. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +51 -30
  664. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  665. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +122 -90
  666. package/dist/components/core/list/SolidListView.d.ts +5 -12
  667. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  668. package/dist/components/core/list/SolidListView.js +363 -426
  669. package/dist/components/core/list/SolidListView.js.map +1 -1
  670. package/dist/components/core/list/SolidListView.tsx +713 -899
  671. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  672. package/dist/components/core/list/SolidListViewConfigure.js +50 -61
  673. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  674. package/dist/components/core/list/SolidListViewConfigure.tsx +237 -215
  675. package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
  676. package/dist/components/core/list/SolidListViewHeaderButton.js +6 -5
  677. package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
  678. package/dist/components/core/list/SolidListViewHeaderButton.tsx +9 -7
  679. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts +1 -1
  680. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  681. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +12 -7
  682. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  683. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +15 -13
  684. package/dist/components/core/list/SolidListViewRowActionMenuItem.d.ts +2 -0
  685. package/dist/components/core/list/SolidListViewRowActionMenuItem.d.ts.map +1 -0
  686. package/dist/components/core/list/SolidListViewRowActionMenuItem.js +42 -0
  687. package/dist/components/core/list/SolidListViewRowActionMenuItem.js.map +1 -0
  688. package/dist/components/core/list/SolidListViewRowActionMenuItem.tsx +43 -0
  689. package/dist/components/core/list/SolidListViewRowActionsMenu.d.ts +2 -0
  690. package/dist/components/core/list/SolidListViewRowActionsMenu.d.ts.map +1 -0
  691. package/dist/components/core/list/SolidListViewRowActionsMenu.js +32 -0
  692. package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -0
  693. package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +106 -0
  694. package/dist/components/core/list/SolidListViewShimmerLoading.d.ts.map +1 -1
  695. package/dist/components/core/list/SolidListViewShimmerLoading.js +3 -4
  696. package/dist/components/core/list/SolidListViewShimmerLoading.js.map +1 -1
  697. package/dist/components/core/list/SolidListViewShimmerLoading.tsx +4 -72
  698. package/dist/components/core/list/SolidListViewWrapper.module.css +82 -41
  699. package/dist/components/core/list/SolidManyToOneFilterElement.d.ts.map +1 -1
  700. package/dist/components/core/list/SolidManyToOneFilterElement.js +2 -2
  701. package/dist/components/core/list/SolidManyToOneFilterElement.js.map +1 -1
  702. package/dist/components/core/list/SolidManyToOneFilterElement.tsx +5 -5
  703. package/dist/components/core/list/SolidSelectionDynamicFilterElement.d.ts.map +1 -1
  704. package/dist/components/core/list/SolidSelectionDynamicFilterElement.js +2 -2
  705. package/dist/components/core/list/SolidSelectionDynamicFilterElement.js.map +1 -1
  706. package/dist/components/core/list/SolidSelectionDynamicFilterElement.tsx +5 -4
  707. package/dist/components/core/list/SolidSelectionStaticFilterElement.d.ts.map +1 -1
  708. package/dist/components/core/list/SolidSelectionStaticFilterElement.js +2 -2
  709. package/dist/components/core/list/SolidSelectionStaticFilterElement.js.map +1 -1
  710. package/dist/components/core/list/SolidSelectionStaticFilterElement.tsx +5 -4
  711. package/dist/components/core/list/SolidTableRowCell.d.ts.map +1 -1
  712. package/dist/components/core/list/SolidTableRowCell.js +4 -3
  713. package/dist/components/core/list/SolidTableRowCell.js.map +1 -1
  714. package/dist/components/core/list/SolidTableRowCell.tsx +11 -8
  715. package/dist/components/core/list/columns/SolidBooleanColumn.js +2 -2
  716. package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
  717. package/dist/components/core/list/columns/SolidBooleanColumn.tsx +2 -2
  718. package/dist/components/core/list/columns/SolidDateColumn.js +1 -1
  719. package/dist/components/core/list/columns/SolidDateColumn.js.map +1 -1
  720. package/dist/components/core/list/columns/SolidDateColumn.tsx +1 -1
  721. package/dist/components/core/list/columns/SolidDatetimeColumn.js +1 -1
  722. package/dist/components/core/list/columns/SolidDatetimeColumn.js.map +1 -1
  723. package/dist/components/core/list/columns/SolidDatetimeColumn.tsx +1 -1
  724. package/dist/components/core/list/columns/SolidExternalIdColumn.js +1 -1
  725. package/dist/components/core/list/columns/SolidExternalIdColumn.js.map +1 -1
  726. package/dist/components/core/list/columns/SolidExternalIdColumn.tsx +1 -1
  727. package/dist/components/core/list/columns/SolidIdColumn.js +2 -2
  728. package/dist/components/core/list/columns/SolidIdColumn.js.map +1 -1
  729. package/dist/components/core/list/columns/SolidIdColumn.tsx +3 -3
  730. package/dist/components/core/list/columns/SolidIntColumn.d.ts.map +1 -1
  731. package/dist/components/core/list/columns/SolidIntColumn.js +2 -2
  732. package/dist/components/core/list/columns/SolidIntColumn.js.map +1 -1
  733. package/dist/components/core/list/columns/SolidIntColumn.tsx +4 -2
  734. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  735. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +7 -10
  736. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  737. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +13 -18
  738. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  739. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +4 -4
  740. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  741. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +4 -4
  742. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.js +1 -1
  743. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.js.map +1 -1
  744. package/dist/components/core/list/columns/SolidSelectionDynamicColumn.tsx +1 -1
  745. package/dist/components/core/list/columns/SolidSelectionStaticColumn.js +1 -1
  746. package/dist/components/core/list/columns/SolidSelectionStaticColumn.js.map +1 -1
  747. package/dist/components/core/list/columns/SolidSelectionStaticColumn.tsx +1 -1
  748. package/dist/components/core/list/columns/SolidShortTextColumn.js +1 -1
  749. package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
  750. package/dist/components/core/list/columns/SolidShortTextColumn.tsx +1 -1
  751. package/dist/components/core/list/columns/SolidTimeColumn.js +1 -1
  752. package/dist/components/core/list/columns/SolidTimeColumn.js.map +1 -1
  753. package/dist/components/core/list/columns/SolidTimeColumn.tsx +1 -1
  754. package/dist/components/core/list/columns/SolidUuidColumn.js +1 -1
  755. package/dist/components/core/list/columns/SolidUuidColumn.js.map +1 -1
  756. package/dist/components/core/list/columns/SolidUuidColumn.tsx +1 -1
  757. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js +1 -1
  758. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js.map +1 -1
  759. package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +1 -1
  760. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
  761. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +5 -7
  762. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
  763. package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +9 -11
  764. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js +1 -1
  765. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js.map +1 -1
  766. package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +1 -1
  767. package/dist/components/core/locales/SolidChatterLocaleTabView.d.ts.map +1 -1
  768. package/dist/components/core/locales/SolidChatterLocaleTabView.js +50 -6
  769. package/dist/components/core/locales/SolidChatterLocaleTabView.js.map +1 -1
  770. package/dist/components/core/locales/SolidChatterLocaleTabView.tsx +78 -43
  771. package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
  772. package/dist/components/core/locales/SolidLocale.js +4 -8
  773. package/dist/components/core/locales/SolidLocale.js.map +1 -1
  774. package/dist/components/core/locales/SolidLocale.tsx +5 -11
  775. package/dist/components/core/locales/solid-locale.css +44 -23
  776. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  777. package/dist/components/core/model/CreateModel.js +58 -63
  778. package/dist/components/core/model/CreateModel.js.map +1 -1
  779. package/dist/components/core/model/CreateModel.tsx +178 -212
  780. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  781. package/dist/components/core/model/FieldMetaData.js +29 -40
  782. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  783. package/dist/components/core/model/FieldMetaData.tsx +128 -100
  784. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  785. package/dist/components/core/model/FieldMetaDataForm.js +521 -270
  786. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  787. package/dist/components/core/model/FieldMetaDataForm.tsx +1142 -956
  788. package/dist/components/core/model/FieldSelector.d.ts +5 -1
  789. package/dist/components/core/model/FieldSelector.d.ts.map +1 -1
  790. package/dist/components/core/model/FieldSelector.js +52 -30
  791. package/dist/components/core/model/FieldSelector.js.map +1 -1
  792. package/dist/components/core/model/FieldSelector.tsx +119 -57
  793. package/dist/components/core/model/ModelListViewData.d.ts.map +1 -1
  794. package/dist/components/core/model/ModelListViewData.js +110 -91
  795. package/dist/components/core/model/ModelListViewData.js.map +1 -1
  796. package/dist/components/core/model/ModelListViewData.tsx +172 -220
  797. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  798. package/dist/components/core/model/ModelMetaData.js +105 -61
  799. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  800. package/dist/components/core/model/ModelMetaData.tsx +277 -457
  801. package/dist/components/core/module/CreateModule.d.ts +1 -1
  802. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  803. package/dist/components/core/module/CreateModule.js +33 -54
  804. package/dist/components/core/module/CreateModule.js.map +1 -1
  805. package/dist/components/core/module/CreateModule.tsx +273 -299
  806. package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
  807. package/dist/components/core/module/ModuleListViewData.js +104 -135
  808. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  809. package/dist/components/core/module/ModuleListViewData.tsx +172 -278
  810. package/dist/components/core/solid-ai/SolidAiChat.d.ts.map +1 -1
  811. package/dist/components/core/solid-ai/SolidAiChat.js +25 -20
  812. package/dist/components/core/solid-ai/SolidAiChat.js.map +1 -1
  813. package/dist/components/core/solid-ai/SolidAiChat.tsx +80 -31
  814. package/dist/components/core/solid-ai/SolidAiMainWrapper.d.ts.map +1 -1
  815. package/dist/components/core/solid-ai/SolidAiMainWrapper.js +5 -2
  816. package/dist/components/core/solid-ai/SolidAiMainWrapper.js.map +1 -1
  817. package/dist/components/core/solid-ai/SolidAiMainWrapper.tsx +7 -2
  818. package/dist/components/core/tree/SolidTreeTable.d.ts +73 -0
  819. package/dist/components/core/tree/SolidTreeTable.d.ts.map +1 -0
  820. package/dist/components/core/tree/SolidTreeTable.js +275 -0
  821. package/dist/components/core/tree/SolidTreeTable.js.map +1 -0
  822. package/dist/components/core/tree/SolidTreeTable.tsx +522 -0
  823. package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
  824. package/dist/components/core/tree/SolidTreeView.js +266 -244
  825. package/dist/components/core/tree/SolidTreeView.js.map +1 -1
  826. package/dist/components/core/tree/SolidTreeView.tsx +606 -625
  827. package/dist/components/core/users/CreateUser.d.ts.map +1 -1
  828. package/dist/components/core/users/CreateUser.js +81 -143
  829. package/dist/components/core/users/CreateUser.js.map +1 -1
  830. package/dist/components/core/users/CreateUser.tsx +217 -317
  831. package/dist/components/core/users/CreateUserRole.d.ts.map +1 -1
  832. package/dist/components/core/users/CreateUserRole.js +14 -21
  833. package/dist/components/core/users/CreateUserRole.js.map +1 -1
  834. package/dist/components/core/users/CreateUserRole.tsx +16 -33
  835. package/dist/components/core/users/UserListView.d.ts.map +1 -1
  836. package/dist/components/core/users/UserListView.js +95 -92
  837. package/dist/components/core/users/UserListView.js.map +1 -1
  838. package/dist/components/core/users/UserListView.tsx +286 -330
  839. package/dist/components/layout/AdminLayout.d.ts.map +1 -1
  840. package/dist/components/layout/AdminLayout.js +4 -12
  841. package/dist/components/layout/AdminLayout.js.map +1 -1
  842. package/dist/components/layout/AdminLayout.tsx +22 -31
  843. package/dist/components/layout/AppConfig.d.ts +2 -2
  844. package/dist/components/layout/AppConfig.d.ts.map +1 -1
  845. package/dist/components/layout/AppConfig.js +9 -47
  846. package/dist/components/layout/AppConfig.js.map +1 -1
  847. package/dist/components/layout/AppConfig.tsx +10 -98
  848. package/dist/components/layout/AppSidebar.d.ts.map +1 -1
  849. package/dist/components/layout/AppSidebar.js +149 -86
  850. package/dist/components/layout/AppSidebar.js.map +1 -1
  851. package/dist/components/layout/AppSidebar.tsx +281 -164
  852. package/dist/components/layout/DashboardHeader.d.ts.map +1 -1
  853. package/dist/components/layout/DashboardHeader.js +11 -17
  854. package/dist/components/layout/DashboardHeader.js.map +1 -1
  855. package/dist/components/layout/DashboardHeader.tsx +40 -35
  856. package/dist/components/layout/FilterMenu.d.ts.map +1 -1
  857. package/dist/components/layout/FilterMenu.js +4 -6
  858. package/dist/components/layout/FilterMenu.js.map +1 -1
  859. package/dist/components/layout/FilterMenu.tsx +21 -19
  860. package/dist/components/layout/GlobalSearch.d.ts.map +1 -1
  861. package/dist/components/layout/GlobalSearch.js +2 -6
  862. package/dist/components/layout/GlobalSearch.js.map +1 -1
  863. package/dist/components/layout/GlobalSearch.tsx +7 -13
  864. package/dist/components/layout/Layout.d.ts.map +1 -1
  865. package/dist/components/layout/Layout.js +11 -130
  866. package/dist/components/layout/Layout.js.map +1 -1
  867. package/dist/components/layout/Layout.tsx +18 -161
  868. package/dist/components/layout/ListingHeader.d.ts.map +1 -1
  869. package/dist/components/layout/ListingHeader.js +4 -8
  870. package/dist/components/layout/ListingHeader.js.map +1 -1
  871. package/dist/components/layout/ListingHeader.tsx +3 -9
  872. package/dist/components/layout/SolidAiStudioLayout.d.ts.map +1 -1
  873. package/dist/components/layout/SolidAiStudioLayout.js +14 -63
  874. package/dist/components/layout/SolidAiStudioLayout.js.map +1 -1
  875. package/dist/components/layout/SolidAiStudioLayout.tsx +75 -187
  876. package/dist/components/layout/UserSidebar.d.ts.map +1 -1
  877. package/dist/components/layout/UserSidebar.js +5 -4
  878. package/dist/components/layout/UserSidebar.js.map +1 -1
  879. package/dist/components/layout/UserSidebar.tsx +6 -5
  880. package/dist/components/layout/context/layoutcontext.d.ts.map +1 -1
  881. package/dist/components/layout/context/layoutcontext.js +31 -6
  882. package/dist/components/layout/context/layoutcontext.js.map +1 -1
  883. package/dist/components/layout/context/layoutcontext.tsx +31 -2
  884. package/dist/components/layout/navbar-one.d.ts.map +1 -1
  885. package/dist/components/layout/navbar-one.js +3 -8
  886. package/dist/components/layout/navbar-one.js.map +1 -1
  887. package/dist/components/layout/navbar-one.tsx +24 -15
  888. package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
  889. package/dist/components/layout/navbar-two-menu.js +16 -2
  890. package/dist/components/layout/navbar-two-menu.js.map +1 -1
  891. package/dist/components/layout/navbar-two-menu.tsx +50 -13
  892. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  893. package/dist/components/layout/user-profile-menu.js +74 -59
  894. package/dist/components/layout/user-profile-menu.js.map +1 -1
  895. package/dist/components/layout/user-profile-menu.tsx +206 -143
  896. package/dist/components/shad-cn-ui/SolidAccordion.d.ts +7 -0
  897. package/dist/components/shad-cn-ui/SolidAccordion.d.ts.map +1 -0
  898. package/dist/components/shad-cn-ui/SolidAccordion.js +47 -0
  899. package/dist/components/shad-cn-ui/SolidAccordion.js.map +1 -0
  900. package/dist/components/shad-cn-ui/SolidAccordion.tsx +41 -0
  901. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts +12 -1
  902. package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +1 -1
  903. package/dist/components/shad-cn-ui/SolidAutocomplete.js +31 -15
  904. package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +1 -1
  905. package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +60 -24
  906. package/dist/components/shad-cn-ui/SolidButton.d.ts +10 -2
  907. package/dist/components/shad-cn-ui/SolidButton.d.ts.map +1 -1
  908. package/dist/components/shad-cn-ui/SolidButton.js +18 -2
  909. package/dist/components/shad-cn-ui/SolidButton.js.map +1 -1
  910. package/dist/components/shad-cn-ui/SolidButton.tsx +54 -8
  911. package/dist/components/shad-cn-ui/SolidCheckbox.d.ts +7 -0
  912. package/dist/components/shad-cn-ui/SolidCheckbox.d.ts.map +1 -0
  913. package/dist/components/shad-cn-ui/SolidCheckbox.js +35 -0
  914. package/dist/components/shad-cn-ui/SolidCheckbox.js.map +1 -0
  915. package/dist/components/shad-cn-ui/SolidCheckbox.tsx +19 -0
  916. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts +12 -0
  917. package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -0
  918. package/dist/components/shad-cn-ui/SolidCodeEditor.js +13 -0
  919. package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -0
  920. package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +38 -0
  921. package/dist/components/shad-cn-ui/SolidConfirmDialog.d.ts +14 -0
  922. package/dist/components/shad-cn-ui/SolidConfirmDialog.d.ts.map +1 -0
  923. package/dist/components/shad-cn-ui/SolidConfirmDialog.js +8 -0
  924. package/dist/components/shad-cn-ui/SolidConfirmDialog.js.map +1 -0
  925. package/dist/components/shad-cn-ui/SolidConfirmDialog.tsx +50 -0
  926. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts +10 -0
  927. package/dist/components/shad-cn-ui/SolidDatePicker.d.ts.map +1 -0
  928. package/dist/components/shad-cn-ui/SolidDatePicker.js +65 -0
  929. package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -0
  930. package/dist/components/shad-cn-ui/SolidDatePicker.tsx +72 -0
  931. package/dist/components/shad-cn-ui/SolidDialog.d.ts +40 -0
  932. package/dist/components/shad-cn-ui/SolidDialog.d.ts.map +1 -0
  933. package/dist/components/shad-cn-ui/SolidDialog.js +61 -0
  934. package/dist/components/shad-cn-ui/SolidDialog.js.map +1 -0
  935. package/dist/components/shad-cn-ui/SolidDialog.tsx +138 -0
  936. package/dist/components/shad-cn-ui/SolidDivider.d.ts +4 -0
  937. package/dist/components/shad-cn-ui/SolidDivider.d.ts.map +1 -0
  938. package/dist/components/shad-cn-ui/SolidDivider.js +6 -0
  939. package/dist/components/shad-cn-ui/SolidDivider.js.map +1 -0
  940. package/dist/components/shad-cn-ui/SolidDivider.tsx +5 -0
  941. package/dist/components/shad-cn-ui/SolidDropdownMenu.d.ts +15 -0
  942. package/dist/components/shad-cn-ui/SolidDropdownMenu.d.ts.map +1 -0
  943. package/dist/components/shad-cn-ui/SolidDropdownMenu.js +70 -0
  944. package/dist/components/shad-cn-ui/SolidDropdownMenu.js.map +1 -0
  945. package/dist/components/shad-cn-ui/SolidDropdownMenu.tsx +124 -0
  946. package/dist/components/shad-cn-ui/SolidIcon.d.ts +92 -0
  947. package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -0
  948. package/dist/components/shad-cn-ui/SolidIcon.js +148 -0
  949. package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -0
  950. package/dist/components/shad-cn-ui/SolidIcon.tsx +220 -0
  951. package/dist/components/shad-cn-ui/SolidInput.d.ts +1 -1
  952. package/dist/components/shad-cn-ui/SolidInput.d.ts.map +1 -1
  953. package/dist/components/shad-cn-ui/SolidInput.js +4 -3
  954. package/dist/components/shad-cn-ui/SolidInput.js.map +1 -1
  955. package/dist/components/shad-cn-ui/SolidInput.tsx +6 -4
  956. package/dist/components/shad-cn-ui/SolidLightbox.d.ts +19 -0
  957. package/dist/components/shad-cn-ui/SolidLightbox.d.ts.map +1 -0
  958. package/dist/components/shad-cn-ui/SolidLightbox.js +160 -0
  959. package/dist/components/shad-cn-ui/SolidLightbox.js.map +1 -0
  960. package/dist/components/shad-cn-ui/SolidLightbox.tsx +281 -0
  961. package/dist/components/shad-cn-ui/SolidMessage.d.ts +10 -0
  962. package/dist/components/shad-cn-ui/SolidMessage.d.ts.map +1 -0
  963. package/dist/components/shad-cn-ui/SolidMessage.js +13 -0
  964. package/dist/components/shad-cn-ui/SolidMessage.js.map +1 -0
  965. package/dist/components/shad-cn-ui/SolidMessage.tsx +20 -0
  966. package/dist/components/shad-cn-ui/SolidOtpInput.d.ts +12 -0
  967. package/dist/components/shad-cn-ui/SolidOtpInput.d.ts.map +1 -0
  968. package/dist/components/shad-cn-ui/SolidOtpInput.js +143 -0
  969. package/dist/components/shad-cn-ui/SolidOtpInput.js.map +1 -0
  970. package/dist/components/shad-cn-ui/SolidOtpInput.tsx +149 -0
  971. package/dist/components/shad-cn-ui/SolidPanel.d.ts +11 -0
  972. package/dist/components/shad-cn-ui/SolidPanel.d.ts.map +1 -0
  973. package/dist/components/shad-cn-ui/SolidPanel.js +17 -0
  974. package/dist/components/shad-cn-ui/SolidPanel.js.map +1 -0
  975. package/dist/components/shad-cn-ui/SolidPanel.tsx +36 -0
  976. package/dist/components/shad-cn-ui/SolidPasswordInput.d.ts +7 -0
  977. package/dist/components/shad-cn-ui/SolidPasswordInput.d.ts.map +1 -0
  978. package/dist/components/shad-cn-ui/SolidPasswordInput.js +39 -0
  979. package/dist/components/shad-cn-ui/SolidPasswordInput.js.map +1 -0
  980. package/dist/components/shad-cn-ui/SolidPasswordInput.tsx +31 -0
  981. package/dist/components/shad-cn-ui/SolidPopover.d.ts +19 -0
  982. package/dist/components/shad-cn-ui/SolidPopover.d.ts.map +1 -0
  983. package/dist/components/shad-cn-ui/SolidPopover.js +110 -0
  984. package/dist/components/shad-cn-ui/SolidPopover.js.map +1 -0
  985. package/dist/components/shad-cn-ui/SolidPopover.tsx +149 -0
  986. package/dist/components/shad-cn-ui/SolidProgressBar.d.ts +10 -0
  987. package/dist/components/shad-cn-ui/SolidProgressBar.d.ts.map +1 -0
  988. package/dist/components/shad-cn-ui/SolidProgressBar.js +14 -0
  989. package/dist/components/shad-cn-ui/SolidProgressBar.js.map +1 -0
  990. package/dist/components/shad-cn-ui/SolidProgressBar.tsx +29 -0
  991. package/dist/components/shad-cn-ui/SolidRadioGroup.d.ts +17 -0
  992. package/dist/components/shad-cn-ui/SolidRadioGroup.d.ts.map +1 -0
  993. package/dist/components/shad-cn-ui/SolidRadioGroup.js +13 -0
  994. package/dist/components/shad-cn-ui/SolidRadioGroup.js.map +1 -0
  995. package/dist/components/shad-cn-ui/SolidRadioGroup.tsx +50 -0
  996. package/dist/components/shad-cn-ui/SolidRichTextEditor.d.ts +17 -0
  997. package/dist/components/shad-cn-ui/SolidRichTextEditor.d.ts.map +1 -0
  998. package/dist/components/shad-cn-ui/SolidRichTextEditor.js +109 -0
  999. package/dist/components/shad-cn-ui/SolidRichTextEditor.js.map +1 -0
  1000. package/dist/components/shad-cn-ui/SolidRichTextEditor.tsx +146 -0
  1001. package/dist/components/shad-cn-ui/SolidSegmentedControl.d.ts +17 -0
  1002. package/dist/components/shad-cn-ui/SolidSegmentedControl.d.ts.map +1 -0
  1003. package/dist/components/shad-cn-ui/SolidSegmentedControl.js +34 -0
  1004. package/dist/components/shad-cn-ui/SolidSegmentedControl.js.map +1 -0
  1005. package/dist/components/shad-cn-ui/SolidSegmentedControl.tsx +60 -0
  1006. package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
  1007. package/dist/components/shad-cn-ui/SolidSelect.js +2 -1
  1008. package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
  1009. package/dist/components/shad-cn-ui/SolidSelect.tsx +2 -2
  1010. package/dist/components/shad-cn-ui/SolidSlider.d.ts +12 -0
  1011. package/dist/components/shad-cn-ui/SolidSlider.d.ts.map +1 -0
  1012. package/dist/components/shad-cn-ui/SolidSlider.js +13 -0
  1013. package/dist/components/shad-cn-ui/SolidSlider.js.map +1 -0
  1014. package/dist/components/shad-cn-ui/SolidSlider.tsx +30 -0
  1015. package/dist/components/shad-cn-ui/SolidSpinner.d.ts +8 -0
  1016. package/dist/components/shad-cn-ui/SolidSpinner.d.ts.map +1 -0
  1017. package/dist/components/shad-cn-ui/SolidSpinner.js +14 -0
  1018. package/dist/components/shad-cn-ui/SolidSpinner.js.map +1 -0
  1019. package/dist/components/shad-cn-ui/SolidSpinner.tsx +21 -0
  1020. package/dist/components/shad-cn-ui/SolidSwitch.d.ts +10 -0
  1021. package/dist/components/shad-cn-ui/SolidSwitch.d.ts.map +1 -0
  1022. package/dist/components/shad-cn-ui/SolidSwitch.js +18 -0
  1023. package/dist/components/shad-cn-ui/SolidSwitch.js.map +1 -0
  1024. package/dist/components/shad-cn-ui/SolidSwitch.tsx +34 -0
  1025. package/dist/components/shad-cn-ui/SolidTabs.d.ts +3 -1
  1026. package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +1 -1
  1027. package/dist/components/shad-cn-ui/SolidTabs.js +4 -4
  1028. package/dist/components/shad-cn-ui/SolidTabs.js.map +1 -1
  1029. package/dist/components/shad-cn-ui/SolidTabs.tsx +16 -4
  1030. package/dist/components/shad-cn-ui/SolidTag.d.ts +9 -0
  1031. package/dist/components/shad-cn-ui/SolidTag.d.ts.map +1 -0
  1032. package/dist/components/shad-cn-ui/SolidTag.js +13 -0
  1033. package/dist/components/shad-cn-ui/SolidTag.js.map +1 -0
  1034. package/dist/components/shad-cn-ui/SolidTag.tsx +15 -0
  1035. package/dist/components/shad-cn-ui/SolidTextarea.d.ts +5 -0
  1036. package/dist/components/shad-cn-ui/SolidTextarea.d.ts.map +1 -0
  1037. package/dist/components/shad-cn-ui/SolidTextarea.js +35 -0
  1038. package/dist/components/shad-cn-ui/SolidTextarea.js.map +1 -0
  1039. package/dist/components/shad-cn-ui/SolidTextarea.tsx +11 -0
  1040. package/dist/components/shad-cn-ui/SolidToast.d.ts +13 -0
  1041. package/dist/components/shad-cn-ui/SolidToast.d.ts.map +1 -0
  1042. package/dist/components/shad-cn-ui/SolidToast.js +34 -0
  1043. package/dist/components/shad-cn-ui/SolidToast.js.map +1 -0
  1044. package/dist/components/shad-cn-ui/SolidToast.tsx +55 -0
  1045. package/dist/components/shad-cn-ui/SolidTooltip.d.ts +22 -0
  1046. package/dist/components/shad-cn-ui/SolidTooltip.d.ts.map +1 -0
  1047. package/dist/components/shad-cn-ui/SolidTooltip.js +22 -0
  1048. package/dist/components/shad-cn-ui/SolidTooltip.js.map +1 -0
  1049. package/dist/components/shad-cn-ui/SolidTooltip.tsx +65 -0
  1050. package/dist/components/shad-cn-ui/index.d.ts +26 -0
  1051. package/dist/components/shad-cn-ui/index.d.ts.map +1 -1
  1052. package/dist/components/shad-cn-ui/index.js +26 -0
  1053. package/dist/components/shad-cn-ui/index.js.map +1 -1
  1054. package/dist/components/shad-cn-ui/index.ts +48 -0
  1055. package/dist/helpers/mediaType.d.ts +3 -0
  1056. package/dist/helpers/mediaType.d.ts.map +1 -0
  1057. package/dist/helpers/mediaType.js +19 -0
  1058. package/dist/helpers/mediaType.js.map +1 -0
  1059. package/dist/helpers/mediaType.ts +23 -0
  1060. package/dist/helpers/registry.d.ts +3 -4
  1061. package/dist/helpers/registry.d.ts.map +1 -1
  1062. package/dist/helpers/registry.js +97 -90
  1063. package/dist/helpers/registry.js.map +1 -1
  1064. package/dist/helpers/registry.ts +107 -92
  1065. package/dist/helpers/routePaths.js +1 -1
  1066. package/dist/helpers/routePaths.js.map +1 -1
  1067. package/dist/helpers/routePaths.ts +1 -1
  1068. package/dist/hooks/useSolidAutocompleteField.d.ts +31 -0
  1069. package/dist/hooks/useSolidAutocompleteField.d.ts.map +1 -0
  1070. package/dist/hooks/useSolidAutocompleteField.js +116 -0
  1071. package/dist/hooks/useSolidAutocompleteField.js.map +1 -0
  1072. package/dist/hooks/useSolidAutocompleteField.ts +90 -0
  1073. package/dist/index.d.ts +12 -4
  1074. package/dist/index.d.ts.map +1 -1
  1075. package/dist/index.js +9 -4
  1076. package/dist/index.js.map +1 -1
  1077. package/dist/index.ts +13 -5
  1078. package/dist/redux/store/defaultStoreConfig.d.ts +35 -34
  1079. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  1080. package/dist/redux/store/defaultStoreConfig.js +29 -2
  1081. package/dist/redux/store/defaultStoreConfig.js.map +1 -1
  1082. package/dist/redux/store/defaultStoreConfig.ts +30 -32
  1083. package/dist/resources/globals.css +2400 -538
  1084. package/dist/resources/images/SolidXLogo-dark.svg +29 -0
  1085. package/dist/resources/images/SolidXLogo-light.svg +29 -0
  1086. package/dist/resources/shadcn-base.css +2688 -839
  1087. package/dist/resources/solid-responsive.css +36 -80
  1088. package/dist/resources/themes/solid-dark-purple/theme.css +14 -19
  1089. package/dist/resources/themes/solid-light-purple/theme.css +14 -19
  1090. package/dist/routes/AppEventListener.d.ts +1 -1
  1091. package/dist/routes/AppEventListener.d.ts.map +1 -1
  1092. package/dist/routes/AppEventListener.js +3 -1
  1093. package/dist/routes/AppEventListener.js.map +1 -1
  1094. package/dist/routes/AppEventListener.tsx +7 -1
  1095. package/dist/routes/pages/admin/core/CardPage.d.ts +2 -0
  1096. package/dist/routes/pages/admin/core/CardPage.d.ts.map +1 -0
  1097. package/dist/routes/pages/admin/core/CardPage.js +22 -0
  1098. package/dist/routes/pages/admin/core/CardPage.js.map +1 -0
  1099. package/dist/routes/pages/admin/core/CardPage.tsx +10 -0
  1100. package/dist/routes/pages/auth/SsoPage.d.ts.map +1 -1
  1101. package/dist/routes/pages/auth/SsoPage.js +4 -5
  1102. package/dist/routes/pages/auth/SsoPage.js.map +1 -1
  1103. package/dist/routes/pages/auth/SsoPage.tsx +7 -15
  1104. package/dist/routes/pages/studio/StudioLandingPage.js +3 -3
  1105. package/dist/routes/pages/studio/StudioLandingPage.js.map +1 -1
  1106. package/dist/routes/pages/studio/StudioLandingPage.tsx +4 -4
  1107. package/dist/routes/solidRoutes.d.ts.map +1 -1
  1108. package/dist/routes/solidRoutes.js +16 -0
  1109. package/dist/routes/solidRoutes.js.map +1 -1
  1110. package/dist/routes/solidRoutes.tsx +17 -0
  1111. package/dist/routes/types.d.ts +1 -1
  1112. package/dist/routes/types.d.ts.map +1 -1
  1113. package/dist/routes/types.js.map +1 -1
  1114. package/dist/routes/types.ts +5 -1
  1115. package/dist/styles.d.ts +1 -0
  1116. package/dist/styles.d.ts.map +1 -1
  1117. package/dist/styles.js +1 -0
  1118. package/dist/styles.js.map +1 -1
  1119. package/dist/styles.ts +1 -0
  1120. package/dist/types/extension-registry.d.ts +28 -0
  1121. package/dist/types/extension-registry.d.ts.map +1 -0
  1122. package/dist/types/extension-registry.js +26 -0
  1123. package/dist/types/extension-registry.js.map +1 -0
  1124. package/dist/types/extension-registry.ts +32 -0
  1125. package/dist/types/external.d.ts +11 -0
  1126. package/dist/types/layout.d.ts +4 -2
  1127. package/dist/types/solid-core.d.ts +29 -27
  1128. package/package.json +9 -4
@@ -1 +1 @@
1
- {"version":3,"file":"SolidGlobalSearchElement.js","sourceRoot":"","sources":["../../../../src/components/core/common/SolidGlobalSearchElement.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,eAAe,EAAE,EAAE,cAAc,EAAc,cAAc,EAAE,MAAM,iDAAiD,CAAC;AAC9H,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,iBAAwE,MAAM,qBAAqB,CAAC;AAG3G,IAAM,YAAY,GAAG,UAAC,GAAW,EAAE,GAAW;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7D,CAAC,CAAA;AA0BD,IAAM,aAAa,GAAG,UAAC,KAAiB;IAAjB,sBAAA,EAAA,UAAiB;IACpC,IAAM,MAAM,GAAU,EAAE,CAAC;IAEzB,KAAmB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;QAArB,IAAM,IAAI,cAAA;QACX,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,OAAO,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,EAAE;YAC/B,MAAM,CAAC,IAAI,OAAX,MAAM,EAAS,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;SAChD;KACJ;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAGF,IAAM,uBAAuB,GAAG,UAAC,MAAW,EAAE,UAAgC;IAAhC,2BAAA,EAAA,iBAAgC;IAC1E,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3E,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;KACjF;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KACjE;IACD,IAAM,SAAS,GAAG,SAAS,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;QACf,OAAO;YACH,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,cAAc,CAAC,UAAU;YAC/B,aAAa,EAAE,cAAc,CAAC,EAAE;YAChC,UAAU,YAAA;YACV,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC;iBAClB,MAAM,CAAC,UAAC,GAAQ;gBACb,+DAA+D;gBAC/D,IAAI,GAAG,IAAI,IAAI;oBAAE,OAAO,KAAK,CAAC;gBAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,OAAO,KAAK,CAAC;gBAC/D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAC3E,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC;iBACD,GAAG,CAAC,UAAC,SAAc,IAAK,OAAA,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,EAA7C,CAA6C,CAAC;SAC9E,CAAC;KACL;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;QAChB,OAAO;YACH,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,cAAc,CAAC,UAAU;YAC/B,aAAa,EAAE,cAAc,CAAC,GAAG;YACjC,UAAU,YAAA;YACV,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;iBACnB,MAAM,CAAC,UAAC,GAAQ;gBACb,+DAA+D;gBAC/D,IAAI,GAAG,IAAI,IAAI;oBAAE,OAAO,KAAK,CAAC;gBAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,OAAO,KAAK,CAAC;gBAC/D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAC3E,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC;iBACD,GAAG,CAAC,UAAC,SAAc,IAAK,OAAA,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,EAA7C,CAA6C,CAAC;SAC9E,CAAC;KACL;IAED,+BAA+B;IAC/B,KAAK,IAAM,SAAS,IAAI,MAAM,EAAE;QAC5B,IAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YAC7C,MAAM,IAAI,KAAK,CAAC,uCAAgC,SAAS,MAAG,CAAC,CAAC;SACjE;QAED,yCAAyC;QACzC,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,EAAE,KAAI,OAAO,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,EAAE,CAAA,KAAK,QAAQ,EAAE;YACpD,KAAK,IAAM,SAAS,IAAI,SAAS,CAAC,EAAE,EAAE;gBAClC,IAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBACzC,IAAM,cAAc,GAAQ,SAAS,CAAA;gBACrC,OAAO;oBACH,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,SAAS,WAAA;oBACT,SAAS,EAAE,cAAc;oBACzB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACtD,UAAU,YAAA;oBACV,QAAQ,EAAE,EAAE;iBACf,CAAC;aACL;SACJ;QAED,oCAAoC;QACpC,KAAK,IAAM,SAAS,IAAI,SAAS,EAAE;YAC/B,IAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YACtC,IAAM,cAAc,GAAQ,SAAS,CAAA;YACrC,OAAO;gBACH,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,cAAc,CAAC,IAAI;gBACzB,SAAS,WAAA;gBACT,SAAS,EAAE,cAAc;gBACzB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACtD,UAAU,YAAA;gBACV,QAAQ,EAAE,EAAE;aACf,CAAC;SACL;KAGJ;IACD,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;AAC7D,CAAC,CAAA;AAKD,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,IAAM,UAAU,GAAG,cAAM,OAAA,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAA7C,CAA6C,CAAC;AAGvE,IAAM,uBAAuB,GAAG,UAAC,KAAU,EAAE,QAAa;IAEtD,8CAA8C;IAC9C,IAAM,WAAW,GAAG,UAAC,IAAS;;;QAC1B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YAEjD,uCAAuC;YACvC,IAAI,MAAM,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAC,CAAC,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC;YACnH,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE;gBACzJ,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;aACtB;YAGD,IAAM,SAAS,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,mBAAmB,0CAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YACxE,IAAM,YAAY,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,UAAU,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,MAAK,cAAc,CAAC;YAGlG,IAAI,eAAe,SAAA,CAAC;YACpB,IAAI,YAAY,EAAE;gBACd,qEAAqE;gBACrE,eAAe;oBACX,GAAC,IAAI,CAAC,SAAS,IAAG;wBACd,EAAE;4BACE,GAAC,IAAI,CAAC,SAAS,IAAG,MAAM,CAAC,gBAAgB;;+BAC5C;qBACJ;uBACJ,CAAC;aACL;iBAAM;gBACH,sBAAsB;gBACtB,eAAe;oBACX,GAAC,IAAI,CAAC,SAAS;wBACX,GAAC,IAAI,CAAC,SAAS,IAAG,MAAM,CAAI,+DAA+D;;2BAC9F;uBACJ,CAAC;aACL;YAED,IAAI,eAAe,SAAA,CAAC;YACpB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAU,IAAK,OAAA,gBAAgB,CAAC,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC,MAAM,CAAC,UAAC,KAAU,IAAK,OAAA,KAAK,IAAI,IAAI,EAAb,CAAa,CAAC,CAAC;gBAAA,CAAC;aACvH;YACD,IAAI,eAAe,EAAE;gBACjB,6BAAY,eAAe,KAAE,eAAe,iBAAA,IAAE;aACjD;YACD,oBAAY,eAAe,EAAE;SAEhC;IAEL,CAAC,CAAC;IAEF,yCAAyC;IACzC,IAAM,gBAAgB,GAAG,UAAC,SAAc;;QACpC,IAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACnE,IAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAU;YAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;gBACvB,mBAAmB;gBACnB,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;aAC7B;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;gBACpC,qCAAqC;gBACrC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAClC;QACL,CAAC,CAAC,CAAC,MAAM,CAAC,UAAC,KAAU,IAAK,OAAA,KAAK,IAAI,IAAI,EAAb,CAAa,CAAC,CAAC;QACzC,oCAAoC;QACpC,+BAA+B;QAC/B,mBAAmB;QACnB,IAAI;QAEJ,qEAAqE;QACrE,+BAA+B;QAC/B,0BAA0B;QAC1B,IAAI;QAEJ;YACI,GAAC,QAAQ,IAAG,QAAQ;eACtB;IACN,CAAC,CAAC;IAGF,uCAAuC;IACvC,IAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE7C,IAAI,CAAC,YAAY,EAAE;QACf,OAAO,EAAE,CAAC;KACb;IAED,SAAS,mBAAmB,CAAC,OAAY;QACrC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC;QAE5D,IAAM,YAAY,GAAG,UAAC,GAAQ;YAC1B,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAgB,UAAG,EAAH,WAAG,EAAH,iBAAG,EAAH,IAAG,EAAE;gBAAhB,IAAI,GAAG,YAAA;gBACR,IAAI,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE;oBAC5B,IAAI,SAAS,GAAQ,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,6CAA6C;oBACrG,OAAO,GAAG,CAAC,eAAe,CAAC;oBAC3B,MAAM,CAAC,IAAI,OAAX,MAAM,iBAAM,GAAG,GAAK,SAAS,UAAE;iBAClC;qBAAM;oBACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACpB;gBAED,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;oBACjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;wBACzB,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;qBACrC;iBACJ;aACJ;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAA;QAED,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;YACrB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7C;SACJ;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAGD,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAA;AAE5C,CAAC,CAAA;AASD,6CAA6C;AAC7C,SAAS,oBAAoB,CAAC,IAAY,EAAE,WAAmB,EAAE,KAAU;;IACvE,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAM,IAAI,aAAK,GAAC,WAAW,IAAG,KAAK,KAAE,CAAC;IACtC,OAAO,IAAI,CAAC,WAAW,CAAC,UAAC,GAAG,EAAE,GAAG;;QAAK,OAAA,UAAG,GAAC,GAAG,IAAG,GAAG,KAAG;IAAhB,CAAgB,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,IAAM,uBAAuB,GAAG,UAAC,KAAU;IACvC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExC,IAAM,OAAO,GAAgC,EAAE,CAAC;IAEhD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,EAAiD;;;YAA/C,SAAS,eAAA,EAAE,KAAK,WAAA,EAAE,WAAW,iBAAA,EAAE,SAAS,eAAA;QAC1D,IAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE1E,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACrB,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,IAAI,YAAY,EAAE,CAAC;SAC7G;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,MAAA,OAAO,CAAC,SAAS,CAAC,gDAAE,MAAM,EAAC,IAAI,WAAI,GAAG,CAAC,CAAC;SAC3C;aAAM;YACH,MAAA,OAAO,CAAC,SAAS,CAAC,0CAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACxC;IACL,CAAC,CAAC,CAAC;IAEH,WAAW;IACX,oEAAoE;IACpE,yBAAyB;IACzB,mEAAmE;IACnE,YAAY;IACZ,UAAU;IACV,KAAK;IAEL,IAAM,UAAU,GAAU,EAAE,CAAC;IAE7B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,EAAkB;;YAAjB,SAAS,QAAA,EAAE,KAAK,QAAA;QAE9C,IAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE7E,IAAI,QAAQ,EAAE;YAEV,8DAA8D;YAC9D,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9F;iBAAM;gBACH,UAAU,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,EAA3D,CAA2D,CAAC;iBAC1F,CAAC,CAAC;aACN;SACJ;aAAM;YAEH,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,UAAU,CAAC,IAAI;oBACX,GAAC,SAAS,IAAG;wBACT,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;qBAC9B;wBACH,CAAC;aACN;iBAAM;gBACH,UAAU,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC;;wBAAK,OAAA;4BACzB,GAAC,SAAS,IAAG,EAAE,UAAU,EAAE,CAAC,EAAE;+BAChC;oBAF2B,CAE3B,CAAC;iBACN,CAAC,CAAC;aACN;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,IAAI,EAAE,UAAU;KACnB,CAAC;AACN,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAC,iBAAsB,EAAE,SAAc,EAAE,qBAA6B,EAAE,aAAqB;IACpI,IAAM,OAAO,GAAQ,EAAE,CAAC;IAExB,4BAA4B;IAC5B,IAAI,iBAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAChE,OAAO,CAAC,qBAAqB,CAAC,GAAG,iBAAiB,CAAC;KACtD;IACD,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAChD,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;KACtC;IAED,qCAAqC;IACrC,OAAO,OAAO,CAAC;AACnB,CAAC,CAAA;AAGD,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,YAAiB,EAAE,YAAiB,EAAE,WAAgB,EAAE,gBAAsB,EAAE,aAA8B,EAAE,gBAAoC;IACpL,IAAM,OAAO,GAAQ,EAAE,CAAC;IAExB,4BAA4B;IAC5B,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACtD,OAAO,CAAC,yBAAyB,CAAC,GAAG,YAAY,CAAC;KACrD;IACD,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACtD,OAAO,CAAC,kBAAkB,CAAC,GAAG,YAAY,CAAC;KAC9C;IACD,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACpD,OAAO,CAAC,wBAAwB,CAAC,GAAG,WAAW,CAAC;KACnD;IACD,IAAI,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9D,OAAO,CAAC,6BAA6B,CAAC,GAAG,gBAAgB,CAAC;KAC7D;IACD,IAAI,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACxD,OAAO,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC;KAC7C;IACD,IAAI,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9D,OAAO,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC;KACnD;IACD,qCAAqC;IACrC,OAAO,OAAO,CAAC;AACnB,CAAC,CAAA;AAED,IAAM,eAAe,GAAG,UAAC,EAAkJ;QAAhJ,WAAW,iBAAA,EAAE,iBAAiB,uBAAA,EAAE,gBAAgB,sBAAA,EAAE,qBAAqB,2BAAA,EAAE,yBAAyB,+BAAA,EAAE,0BAA0B,gCAAA,EAAE,SAAS,eAAA;IAChK,OAAO,CACH,eAAK,SAAS,EAAC,uDAAuD,aAClE,wBACI,KAAC,MAAM,IAAC,IAAI,QACR,IAAI,EAAC,OAAO,EACZ,SAAS,EAAE,gCAAyB,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAE,EACtE,QAAQ,EAAE,MAAM,CAAC,iBAAiB,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAChF,OAAO,EAAE,cAAM,OAAA,gBAAgB,CAAC,WAAW,CAAC,EAA7B,CAA6B,EAC5C,OAAO,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,YAAG,WAAW,CAAC,IAAI,GAC/C,GAEP,EACN,cAAK,SAAS,EAAC,+BAA+B,YACzC,WAAW,CAAC,QAAQ,KAAK,IAAI;oBAC1B,8BACI,KAAC,MAAM,IACH,IAAI,EAAC,cAAc,EACnB,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EACvB,QAAQ,EAAC,WAAW,EACpB,QAAQ,QAAC,IAAI,EAAC,OAAO,EACrB,OAAO,EAAE,cAAM,OAAA,qBAAqB,CAAC,WAAW,CAAC,EAAlC,CAAkC,GACnD,EACF,KAAC,MAAM,IACH,IAAI,EAAC,aAAa,EAClB,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EACvB,QAAQ,EAAC,WAAW,EACpB,QAAQ,QAAC,IAAI,EAAC,OAAO,EACrB,OAAO,EAAE;oCACL,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC;wCACrC,0BAA0B,CAAC,IAAI,CAAC,CAAC;gCACzC,CAAC,GACH,IACH,GAGL,IACJ,CACT,CAAA;AACL,CAAC,CAAA;AAED,IAAM,mBAAmB,GAAG,UAAC,GAAQ,EAAE,WAAmB;IACtD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QACzB,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;KACtD;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,EAAtC,CAAsC,CAAC,CAAC;KAClE;IACD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAChC,IAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,KAAK,IAAM,GAAG,IAAI,GAAG,EAAE;YACnB,MAAM,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;SAC5D;QACD,OAAO,MAAM,CAAC;KACjB;IACD,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAGF,IAAM,YAAY,GAAG,UAAC,IAAS;IAC3B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,mBAAmB;IACnB,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KAC1C;IAED,kBAAkB;IAClB,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KACzC;IAED,iBAAiB;IACjB,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAEhC,gBAAgB;IAChB,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,EAAE;QACzB,OAAO,CAAC;gBACJ,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,WAAW,CAAC,UAAU;gBAC7B,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjE,WAAW,EAAE,KAAK;gBAClB,SAAS,EAAE,YAAY;aAC1B,CAAC,CAAC;KACN;IACD,iCAAiC;SAC5B,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;QACtC,IAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAM,iBAAiB,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAEnD,IAAM,WAAW,GAAG,iBAAiB;YACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAjB,CAAiB,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC;QAEX,IAAI,WAAW,EAAE;YACb,OAAO,CAAC;oBACJ,UAAU,EAAE,KAAK;oBACjB,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC;oBACrC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjE,WAAW,EAAE,UAAG,KAAK,cAAI,WAAW,CAAE;oBACtC,SAAS,EAAE,WAAW;iBACzB,CAAC,CAAC;SACN;KACJ;IAED,OAAO,EAAE,CAAC;AACd,CAAC,CAAC;AAQF,MAAM,CAAC,IAAM,wBAAwB,GAAG,UAAU,CAAC,UAAC,EAAmH,EAAE,GAAG;;QAAtH,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAE,uBAAuB,6BAAA,EAAE,mBAAmB,yBAAA,EAAE,sBAAsB,4BAAA,EAAE,gBAAgB,sBAAA;IAC5J,IAAM,YAAY,GAAiB;QAC/B;YACI,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,cAAc,CAAC,UAAU;YAC/B,aAAa,EAAE,cAAc,CAAC,EAAE;YAChC,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE;gBACN;oBACI,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;oBACrC,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;oBACX,UAAU,EAAE,CAAC;oBACb,QAAQ,EAAE,EAAE;iBACf;gBACD;oBACI,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;oBACrC,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;oBACX,UAAU,EAAE,CAAC;oBACb,QAAQ,EAAE,EAAE;iBACf;aACJ;SACJ;KACJ,CAAC;IAEF,IAAM,uBAAuB,GAAsB;QAC/C;YACI,EAAE,EAAE,CAAC;YACL,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;SACf;KACJ,CAAC;IAEF,IAAM,oBAAoB,GAAmB;QACzC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;KACjD,CAAC;IAEI,IAAA,KAAkC,QAAQ,CAAC,YAAY,CAAC,EAAvD,YAAY,QAAA,EAAE,eAAe,QAA0B,CAAC;IAC/D,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAG/B,IAAM,YAAY,GAAG,eAAe,EAAE,CAAA,CAAC,wCAAwC;IAC/E,IAAM,iBAAiB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAE1D,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,IAAM,QAAQ,GAAG,MAAM,CAA8B,IAAI,CAAC,CAAC;IAE3D,2DAA2D;IAC3D,kFAAkF;IAC5E,IAAA,KAAgC,QAAQ,CAAe,YAAY,CAAC,EAAnE,WAAW,QAAA,EAAE,cAAc,QAAwC,CAAC;IACrE,IAAA,KAAkC,QAAQ,CAAa,IAAI,CAAC,EAA3D,YAAY,QAAA,EAAE,eAAe,QAA8B,CAAC;IAE7D,IAAA,KAAsB,QAAQ,CAAQ,EAAE,CAAC,EAAxC,MAAM,QAAA,EAAE,SAAS,QAAuB,CAAC;IAC1C,IAAA,KAA0C,QAAQ,CAAQ,EAAE,CAAC,EAA5D,gBAAgB,QAAA,EAAE,mBAAmB,QAAuB,CAAC;IAC9D,IAAA,KAAwC,QAAQ,CAAmB,EAAE,CAAC,EAArE,eAAe,QAAA,EAAE,kBAAkB,QAAkC,CAAC;IAEvE,IAAA,KAAoC,QAAQ,CAAiB,oBAAoB,CAAC,EAAjF,aAAa,QAAA,EAAE,gBAAgB,QAAkD,CAAC;IACnF,IAAA,KAA0C,QAAQ,CAAoB,uBAAuB,CAAC,EAA7F,gBAAgB,QAAA,EAAE,mBAAmB,QAAwD,CAAC;IAErG,gDAAgD;IAC1C,IAAA,KAA8C,QAAQ,CAAqB,EAAE,CAAC,EAA7E,kBAAkB,QAAA,EAAE,qBAAqB,QAAoC,CAAC;IAErF,gDAAgD;IAC1C,IAAA,KAAwD,QAAQ,CAAU,KAAK,CAAC,EAA/E,uBAAuB,QAAA,EAAE,0BAA0B,QAA4B,CAAC;IAEvF,+CAA+C;IACzC,IAAA,KAAsD,QAAQ,CAAU,KAAK,CAAC,EAA7E,sBAAsB,QAAA,EAAE,yBAAyB,QAA4B,CAAC;IAGrF,yDAAyD;IACzD,uEAAuE;IACjE,IAAA,KAAgC,QAAQ,CAA2C,EAAE,CAAC,EAArF,WAAW,QAAA,EAAE,cAAc,QAA0D,CAAC;IACvF,IAAA,KAAkC,QAAQ,CAAa,IAAI,CAAC,EAA3D,YAAY,QAAA,EAAE,eAAe,QAA8B,CAAC;IAEnE,6EAA6E;IACvE,IAAA,KAAkD,QAAQ,CAAyC,IAAI,CAAC,EAAvG,oBAAoB,QAAA,EAAE,uBAAuB,QAA0D,CAAC;IAE/G,4DAA4D;IACtD,IAAA,KAA8B,QAAQ,CAAgB,EAAE,CAAC,EAAxD,UAAU,QAAA,EAAE,aAAa,QAA+B,CAAC;IAEhE,0CAA0C;IACpC,IAAA,KAAgC,QAAQ,CAAU,KAAK,CAAC,EAAvD,WAAW,QAAA,EAAE,cAAc,QAA4B,CAAC;IAE/D,4EAA4E;IACtE,IAAA,KAAsD,QAAQ,EAAO,EAApE,sBAAsB,QAAA,EAAE,yBAAyB,QAAmB,CAAC;IACtE,IAAA,KAAwD,QAAQ,EAAO,EAAtE,uBAAuB,QAAA,EAAE,0BAA0B,QAAmB,CAAC;IACxE,IAAA,KAAwD,QAAQ,EAAO,EAAtE,uBAAuB,QAAA,EAAE,0BAA0B,QAAmB,CAAC;IACxE,IAAA,KAA0D,QAAQ,CAAU,KAAK,CAAC,EAAjF,wBAAwB,QAAA,EAAE,2BAA2B,QAA4B,CAAC;IAGnF,IAAA,KAAsD,QAAQ,EAAO,EAApE,sBAAsB,QAAA,EAAE,yBAAyB,QAAmB,CAAC;IACtE,IAAA,KAAwD,QAAQ,CAAU,KAAK,CAAC,EAA/E,uBAAuB,QAAA,EAAE,0BAA0B,QAA4B,CAAC;IACjF,IAAA,KAAsD,QAAQ,EAAU,EAAvE,sBAAsB,QAAA,EAAE,yBAAyB,QAAsB,CAAC;IACzE,IAAA,KAAgC,QAAQ,CAAC,KAAK,CAAC,EAA9C,WAAW,QAAA,EAAE,cAAc,QAAmB,CAAC;IACtD,IAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACjD,IAAA,KAAkC,QAAQ,CAAS,CAAC,CAAC,CAAC,EAArD,YAAY,QAAA,EAAE,eAAe,QAAwB,CAAC;IAEvD,IAAA,KAA4B,UAAU,EAAE,EAAhC,OAAO,UAAA,EAAE,MAAM,YAAiB,CAAC;IAC/C,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAErB,IAAA,MAA8B,QAAQ,CAAC,CAAC,CAAC,EAAxC,UAAU,SAAA,EAAE,aAAa,SAAe,CAAC;IAE1C,IAAA,MAA8D,QAAQ,CAAM,IAAI,CAAC,EAAhF,0BAA0B,SAAA,EAAE,6BAA6B,SAAuB,CAAC;IAElF,IAAA,MAAkC,QAAQ,CAAC,EAAE,CAAC,EAA7C,YAAY,SAAA,EAAE,eAAe,SAAgB,CAAC;IAC/C,IAAA,MAA8C,QAAQ,CAAC,KAAK,CAAC,EAA5D,kBAAkB,SAAA,EAAE,qBAAqB,SAAmB,CAAC;IAEpE,IAAM,SAAS,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAEnD,IAAA,4BAA4B,GAK5B,SAAS,6BALmB,EAC5B,4BAA4B,GAI5B,SAAS,6BAJmB,EAC5B,0BAA0B,GAG1B,SAAS,2BAHiB,EAC1B,4BAA4B,GAE5B,SAAS,6BAFmB,EAC5B,4BAA4B,GAC5B,SAAS,6BADmB,CAClB;IAER,IAAA,MAGF,4BAA4B,EAAE,EAF9B,YAAY,SAAA,EACZ,YAA4F,EAA/E,qBAAqB,gBAAA,EAAW,mBAAmB,cAAA,EAAS,iBAAiB,YAC5D,CAAC;IAE7B,IAAA,MAGF,4BAA4B,EAAE,EAF9B,YAAY,SAAA,EACZ,YAA4F,EAA/E,qBAAqB,gBAAA,EAAW,mBAAmB,cAAA,EAAS,iBAAiB,YAC5D,CAAC;IAE7B,IAAA,MAGF,4BAA4B,EAAE,EAF9B,YAAY,SAAA,EACZ,YAA4F,EAA/E,qBAAqB,gBAAA,EAAW,mBAAmB,cAAA,EAAS,iBAAiB,YAC5D,CAAC;IAE7B,IAAA,MAAuG,4BAA4B,EAAE,EAApI,uBAAuB,SAAA,EAAE,YAAyE,EAAjE,uBAAuB,WAAA,EAAa,oBAAoB,gBAAA,EAAE,KAAK,YAAoC,CAAC;IAEtI,IAAA,MAAsE,QAAQ,CAAC,CAAC,CAAC,EAAhF,8BAA8B,SAAA,EAAE,iCAAiC,SAAe,CAAC;IAIxF,SAAS,CAAC;QACN,IAAM,EAAE,GAAG;;;;;;wBACP,IAAI,CAAC,CAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAA,IAAI,CAAC,CAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE,CAAA,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAA,EAAE;4BACtF,sBAAO;yBACV;wBACD,qBAAqB,CAAC,KAAK,CAAC,CAAA;wBACtB,OAAO,GAAG;4BACZ,GAAG,EAAE;gCACD;oCACI,IAAI,EAAE;wCACF,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAC,EAAE,EAAE;wCAC1D,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,0CAAE,EAAE,CAAC,EAAE,EAAE;wCAC5C,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,EAAE,EAAE;wCAC7B,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;qCAC/B;iCACJ;gCACD;oCACI,IAAI,EAAE;wCACF,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAC,EAAE,EAAE;wCAC1D,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,0CAAE,EAAE,CAAC,EAAE,EAAE;wCAC5C,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;qCAChC;iCACJ;6BAEJ;yBACJ,CAAA;wBACK,SAAS,GAAQ;4BACnB,MAAM,EAAE,CAAC;4BACT,KAAK,EAAE,EAAE;4BACT,OAAO,EAAE,OAAO;4BAChB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;4BACnC,IAAI,EAAE,CAAC,SAAS,CAAC;yBACpB,CAAC;wBACI,WAAW,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;wBACxE,yBAAyB,CAAC,WAAW,CAAC,CAAA;wBAClB,qBAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAA;;wBAAjE,WAAW,GAAG,SAAmD;wBAEvE,IAAI,WAAW,EAAE;4BACb,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;4BACxC,eAAe,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC,CAAA;yBACxC;wBACD,qBAAqB,CAAC,IAAI,CAAC,CAAC;;;;aAC/B,CAAA;QACD,EAAE,EAAE,CAAA;IACR,CAAC,EAAE;QACC,iBAAiB;QACjB,8BAA8B;QAC9B,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE;QAC7B,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE;QACpC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE;KACX,CAAC,CAAA;IAEF,mBAAmB,CAAC,GAAG,EAAE,cAAM,OAAA,CAAC;QAC5B,WAAW,EAAE;YACT,cAAc,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;KACJ,CAAC,EAJ6B,CAI7B,CAAC,CAAC;IAEJ,SAAS,CAAC;QACN,IAAM,EAAE,GAAG;;;;;;6BAGH,kBAAkB,EAAlB,wBAAkB;wBAElB,IAAI,iBAAiB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;4BAAE,sBAAO;wBAErD,WAAW,GAAG,+BAA+B,EAAE,CAAC;wBACtD,4DAA4D;wBAC5D,IAAI,iBAAiB,EAAE;4BACb,yBAAuB,MAAM,CAAC,iBAAiB,CAAC,CAAC;4BACjD,2BAA8B,YAAY,CAAC,IAAI,CAAC,UAAC,WAAgB,IAAK,OAAA,WAAW,CAAC,EAAE,KAAK,sBAAoB,EAAvC,CAAuC,CAAC,CAAC;4BACrH,yBAAyB,CAAC,wBAAsB,CAAC,CAAC;4BAClD,IAAI,wBAAsB,EAAE;gCAClB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAsB,aAAtB,wBAAsB,uBAAtB,wBAAsB,CAAE,eAAe,CAAC,CAAC;gCACvE,IAAI,UAAU,EAAE;oCACR,gBAAgB,GAAG,UAAU,CAAA;oCACjC,0BAA0B,CAAC,gBAAgB,CAAC,CAAA;iCAC/C;6BACJ;yBACJ;6BAAM;4BACH,yBAAyB,CAAC,IAAI,CAAC,CAAA;4BAC/B,0BAA0B,CAAC,IAAI,CAAC,CAAA;yBACnC;wBACD,IAAI,WAAW,EAAE;4BACb,IAAI,WAAW,EAAE;gCACb,WAAW,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,gBAAgB,KAAI,IAAI,CAAC;gCACpD,WAAW,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,uBAAuB,KAAI,IAAI,CAAC;6BAC9D;yBACJ;wBACD,IAAI,WAAW,EAAE;4BACb,eAAe,CAAC,WAAW,CAAC,CAAC;4BAavB,cAAc,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;4BACjD,cAAc,CAAC,cAAc,CAAC,CAAC;yBAElC;6BACG,CAAA,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA,EAApD,wBAAoD;wBACpD,eAAe,CAAC,WAAW,CAAC,CAAC;wBACvB,KAAK,GAAe,uBAAuB,CAAC,WAAW,CAAC,CAAC;wBACzC,qBAAM,oBAAoB,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAA;;wBAA7D,aAAa,GAAG,SAA6C;wBACnE,cAAc,CAAC,aAAa,CAAC,CAAC;;;wBAE5B,gBAAgB,GAAG,CAAC,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,0CAAE,IAAI,CAAC,UAAC,IAAS,IAAK,OAAA,IAAI,CAAC,SAAS,KAAK,IAAI,EAAvB,CAAuB,CAAC,CAAC,CAAC;wBAErG,IAAI,gBAAgB,EAAE;4BAClB,gBAAgB,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,CAAC,CAAC;yBACjD;6BAAM;4BAEG,aAAa,GAAG,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,OAAO,CAAC;4BAExE,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gCACpD,oBAAoB,GAAmB,aAAa,CAAC,GAAG,CAAC,UAAC,QAAgB,EAAE,KAAa;oCACrF,IAAA,KAA4B,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAA9C,SAAS,QAAA,EAAE,YAAY,QAAuB,CAAC;oCACtD,OAAO;wCACH,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;wCACtB,SAAS,EAAE,SAAS,IAAI,IAAI;wCAC5B,YAAY,EAAG,YAAmC,IAAI,IAAI;qCAC7D,CAAC;gCACN,CAAC,CAAC,CAAC;gCACH,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;6BAC1C;yBACJ;wBAED,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,KAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,MAAK,gBAAgB,EAAE;4BACvF,mBAAmB,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,CAAC,CAAC;yBACvD;wBAGD,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;wBACjC,cAAc,CAAC,IAAI,CAAC,CAAC;;;;;aAE5B,CAAA;QACD,EAAE,EAAE,CAAA;IACR,CAAC,EAAE,CAAC,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAE1E,SAAS,CAAC;QACN,IAAM,EAAE,GAAG;;;;;6BACH,gBAAgB,EAAhB,wBAAgB;6BACZ,CAAA,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,uBAAuB,KAAI,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,uBAAuB,MAAK,YAAY,CAAA,EAAvG,wBAAuG;wBACvG,eAAe,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,uBAAuB,CAAC,CAAC;wBACrD,KAAK,GAAe,uBAAuB,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;wBACtE,qBAAM,oBAAoB,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAA;;wBAA7D,aAAa,GAAG,SAA6C;wBACnE,cAAc,CAAC,aAAa,CAAC,CAAC;;;wBAElC,IAAI,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,gBAAgB,KAAI,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,gBAAgB,MAAK,YAAY,EAAE;4BAC3F,eAAe,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,gBAAgB,CAAC,CAAC;4BAY9C,cAAc,GAAG,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;4BACvE,cAAc,CAAC,cAAc,CAAC,CAAC;yBAElC;;;;;aAER,CAAA;QACD,EAAE,EAAE,CAAA;IACR,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAEtB,SAAS,CAAC;;QACN,IAAI,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,mBAAmB,EAAE;YACrC,0CAA0C;YAC1C,cAAc,CAAC,EAAE,CAAC,CAAC;YACnB,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,cAAc,CAAC,YAAY,CAAC,CAAC;YAC7B,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;YACpC,aAAa,CAAC,EAAE,CAAC,CAAC;YAGlB,IAAI,UAAU,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,mBAAmB,CAAC;YACrD,2EAA2E;YAC3E,2BAA2B;YAE3B,IAAM,cAAc,GAAG,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,QAAQ,mCAAI,EAAE,CAAC;YACzE,IAAM,eAAa,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;YAGpD,IAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,EAAiB;;oBAAhB,GAAG,QAAA,EAAE,KAAK,QAAA;gBAChE,IAAM,gBAAgB,GAAG,eAAa,CAAC,IAAI,CACvC,UAAC,CAAM,YAAK,OAAA,CAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,0CAAE,IAAI,MAAK,GAAG,CAAA,EAAA,CACrC,CAAC;gBACF,OAAO;oBACH,IAAI,EAAE,KAAK,CAAC,WAAW;oBACvB,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,SAAS,EAAE,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,0CAAE,eAAe;oBACnD,WAAW,EAAE,MAAA,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,0CAAE,WAAW,mCAAI,IAAI;oBACzD,YAAY,EAAE,MAAA,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,0CAAE,YAAY,mCAAI,KAAK;oBAC5D,YAAY,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,mCAAI,IAAI;iBAC5C,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,SAAS,CAAC,UAAU,CAAC,CAAC;YAEtB,IAAM,oBAAoB,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,KAAU;gBACtD,IAAI,CAAC,KAAK,CAAC,YAAY;oBAAE,OAAO,KAAK,CAAC;gBAEtC,QAAQ,KAAK,CAAC,IAAI,EAAE;oBAChB,KAAK,UAAU;wBACX,kDAAkD;wBAClD,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;oBAC/B,KAAK,UAAU,CAAC;oBAChB,KAAK,WAAW,CAAC;oBACjB,KAAK,iBAAiB,CAAC;oBACvB,KAAK,kBAAkB;wBACnB,OAAO,IAAI,CAAC;oBAChB,0BAA0B;oBAC1B,KAAK,UAAU;wBACX,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;oBACvC;wBACI,OAAO,KAAK,CAAC;iBACpB;YACL,CAAC,CAAC,CAAC;YAEH,IAAM,mBAAmB,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,KAAU;gBACrD,QAAQ,KAAK,CAAC,IAAI,EAAE;oBAChB,KAAK,UAAU;wBACX,kDAAkD;wBAClD,IAAI,KAAK,CAAC,YAAY,KAAK,aAAa;4BACpC,OAAO,IAAI,CAAC;wBAChB,OAAO,KAAK,CAAC;oBACjB,KAAK,UAAU,CAAC;oBAChB,KAAK,WAAW,CAAC;oBACjB,KAAK,iBAAiB,CAAC;oBACvB,KAAK,kBAAkB,CAAC;oBACxB,KAAK,KAAK,CAAC;oBACX,KAAK,OAAO,CAAC;oBACb,KAAK,SAAS,CAAC;oBACf,KAAK,MAAM,CAAC;oBACZ,KAAK,UAAU;wBACX,OAAO,IAAI,CAAC;oBAChB,0BAA0B;oBAC1B,KAAK,UAAU;wBACX,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;oBACvC;wBACI,OAAO,KAAK,CAAC;iBACpB;YACL,CAAC,CAAC,CAAC;YAEH,yDAAyD;YACzD,IAAI,yBAAyB,GAAQ,oBAAoB,CAAC,GAAG,CAAC,UAAC,KAAU;;gBAAK,OAAA,CAAC;oBAC3E,SAAS,EAAE,KAAK,CAAC,KAAK;oBACtB,WAAW,EAAE,KAAK,CAAC,IAAI;oBACvB,WAAW,EAAE,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE;oBACpC,SAAS,EAAE,KAAK,CAAC,SAAS;iBAC7B,CAAC,CAAA;aAAA,CAAC,CAAC;YAEJ,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;YAE/C,IAAI,wBAAwB,GAAQ,mBAAmB,CAAC,GAAG,CAAC,UAAC,KAAU;;gBAAK,OAAA,CAAC;oBACzE,SAAS,EAAE,KAAK,CAAC,KAAK;oBACtB,WAAW,EAAE,KAAK,CAAC,IAAI;oBACvB,WAAW,EAAE,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE;oBACpC,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;iBACvD,CAAC,CAAA;aAAA,CAAC,CAAC;YAEJ,kBAAkB,CAAC,wBAAwB,CAAC,CAAA;YAE5C,IAAM,sBAAsB,GAAG,CAAA,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,kBAAkB,KAAI,EAAE,CAAC;YAClG,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;SACjD;QACD,oBAAoB;IACxB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,SAAS,CAAC;QACN,IAAI,QAAQ,CAAC,OAAO,EAAE;YAClB,IAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,YAAY,EAAE;gBACd,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAC,CAAM;oBAC1C,aAAa,CAAE,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC,CAAC;gBACxD,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAGP,IAAM,aAAa,GAAG,UAAC,UAAmB;QACtC,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,EAAE;YACpB,IAAM,eAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB;YAC/D,IAAI,CAAC,eAAa;gBAAE,OAAO;YAC3B,wEAAwE;YACxE,IAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,EAAE,EAAR,CAAQ,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,EAAE,EAAR,CAAQ,CAAC,CAAC;YAC9E,IAAM,WAAS,GAAG,UAAU,IAAI,eAAa,CAAC,SAAS,CAAC;YACxD,IAAM,YAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC;gBAChC,UAAU,EAAE,WAAS;gBACrB,KAAK,EAAE,CAAC;gBACR,iBAAiB,EAAE,eAAa,CAAC,WAAW;gBAC5C,WAAW,EAAE,eAAa,CAAC,WAAW;gBACtC,SAAS,EAAE,eAAa,CAAC,SAAS;aACrC,CAAC,EANiC,CAMjC,CAAC,CAAC;YAEJ,cAAc,CAAC,UAAC,IAAI,IAAK,uCAAI,IAAI,SAAK,YAAU,SAAvB,CAAwB,CAAC,CAAC;YACnD,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,cAAc,CAAC,IAAI,CAAC,CAAA;YACpB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;SAEpC;IAEL,CAAC,CAAC;IAEF,IAAM,iBAAiB,GAAG;QACtB,uCAAuC;QACvC,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;QACrB,gCAAgC;QAChC,sCAAsC;QACtC,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IAErC,CAAC,CAAA;IAGD,IAAM,0BAA0B,GAAG,UAAC,WAAgB;QAChD,IAAM,iBAAiB,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC5E,sEAAsE;QACtE,IAAI,iBAAiB,GAAG,iBAAiB,CAAC;QAC1C,4DAA4D;QAC5D,0DAA0D;QAC1D,4BAA4B;QAC5B,gEAAgE;QAChE,SAAS;QACT,IAAI;QACJ,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACnC,wCAAwC;QACxC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAClC,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,IAAM,yBAAyB,GAAG,UAAC,WAAgB;QAC/C,IAAM,iBAAiB,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE5E,sEAAsE;QACtE,IAAI,iBAAiB,GAAG,iBAAiB,CAAC;QAC1C,4DAA4D;QAC5D,0DAA0D;QAC1D,4BAA4B;QAC5B,gEAAgE;QAChE,SAAS;QACT,IAAI;QACJ,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;QAC9C,wCAAwC;QACxC,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACnC,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IAGrC,CAAC,CAAA;IAED,IAAM,aAAa,GAAG,UAAC,aAA6B,EAAE,gBAAmC;QACrF,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACjC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAChC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QACtC,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,SAAS,CAAC;QACN,IAAI,UAAU,GAAG,CAAC,IAAI,WAAW,EAAE;YAE/B,IAAM,cAAc,GAAG;gBACnB,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,UAAC,IAAS;;oBAAK,OAAA,CAAC;wBAClC,SAAS,EAAE,IAAI,CAAC,UAAU;wBAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;wBACnB,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,EAAE;qBACtC,CAAC,CAAA;iBAAA,CAAC;aACN,CAAC;YAGF,IAAM,iBAAiB,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;YAClE,eAAe,CAAC,iBAAiB,CAAC,CAAC;YAEnC,IAAI,gBAAgB,GAAQ,uBAAuB,CAAA;YACnD,IAAM,qBAAqB,GAAG,0BAA0B,CAAA;YAExD,IAAM,iBAAiB,GAAG,YAAY,CAAA;YACtC,IAAM,WAAW,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAA;YACvJ,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC3C,cAAc,CAAC,KAAK,CAAC,CAAA;YACrB,IAAI;SACP;IACL,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAGjB,qCAAqC;IAErC,IAAM,sBAAsB,GAAG;QAC3B,IAAI,CAAC,oBAAoB,IAAI,CAAC,YAAY,IAAI,CAAC,0BAA0B,EAAE;YACvE,OAAO,KAAK,CAAC;SAChB;QACD,iDAAiD;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACvF,CAAC,CAAC;IAEF,IAAM,qBAAqB,GAAG,UAAO,WAAgB;;;;;oBACjD,2BAA2B;oBAC3B,gDAAgD;oBAChD,oCAAoC;oBACpC,+BAA+B;oBAC/B,gEAAgE;oBAChE,uDAAuD;oBACvD,sBAAsB;oBACtB,2GAA2G;oBAC3G,kFAAkF;oBAClF,IAAI;oBAGJ,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnB,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,cAAc,CAAC,YAAY,CAAC,CAAC;oBAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;oBACrB,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;yBAGhC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,CAAA,EAAf,wBAAe;oBACT,kBAAgB,WAAW,CAAC,EAAE,CAAC;oBACrC,gDAAgD;oBAChD,cAAc,CAAC,KAAK,CAAC,CAAC;oBAChB,2BAA8B,YAAY,CAAC,IAAI,CAAC,UAAC,WAAgB,IAAK,OAAA,WAAW,CAAC,EAAE,KAAK,eAAa,EAAhC,CAAgC,CAAC,CAAC;oBAC9G,yBAAyB,CAAC,wBAAsB,CAAC,CAAC;yBAC9C,wBAAsB,EAAtB,wBAAsB;oBAChB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAsB,aAAtB,wBAAsB,uBAAtB,wBAAsB,CAAE,eAAe,CAAC,CAAC;yBACnE,UAAU,EAAV,wBAAU;oBACN,gBAAgB,GAAG,UAAU,CAAA;oBACjC,0BAA0B,CAAC,gBAAgB,CAAC,CAAA;oBACtC,KAAK,GAAe,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACxE,qBAAM,oBAAoB,CAC5C,CAAC,KAAK,CAAC,EACP,QAAQ,CACX,EAAA;;oBAHK,aAAa,GAAG,SAGrB;oBACD,0BAA0B,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;oBACzE,2BAA2B,CAAC,IAAI,CAAC,CAAA;;;;oBAIzC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;;;;;SAEhE,CAAA;IAED,IAAM,iBAAiB,GAAG;;;;;gBACtB,kCAAkC;gBAClC,qBAAM,YAAY,CAAC,sBAAsB,CAAC,EAAA;;oBAD1C,kCAAkC;oBAClC,SAA0C,CAAC;oBAEvC,kBAAkB,GAAG,YAAY,CAAC;oBAChC,UAAU,GAAG,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,GAAG,CAAC,YAAY,CAAC,CAAC;oBACzD,IAAI,sBAAsB,IAAI,UAAU,EAAE;wBAChC,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAC9D,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC/B,MAAM,CAAC,IAAI,CAAC,WAAI,SAAS,CAAC,QAAQ,EAAE,CAAE,CAAC,CAAC;qBAC3C;oBACD,0BAA0B,CAAC,KAAK,CAAC,CAAC;oBAClC,UAAU,CAAC;wBACP,iCAAiC,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;oBACvD,CAAC,EAAE,GAAG,CAAC,CAAA;;;;SACV,CAAA;IACD,IAAM,gBAAgB,GAAG,UAAO,UAAe;;;;;;oBAC3C,sBAAsB,CAAC,KAAK,CAAC,CAAA;;;;yBAGrB,UAAU,CAAC,EAAE,EAAb,wBAAa;oBACP,UAAU,GAAG,uBAAuB,CAAC;oBACrC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;oBACzC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBACxE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAC,CAAC;oBACjE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE,CAAC,CAAC;oBACzD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;oBACnD,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC;oBAEpC,qBAAM,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAAnE,SAAmE,CAAC;oBAEpE,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnB,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,cAAc,CAAC,YAAY,CAAC,CAAC;oBAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;oBACrB,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBACxB,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAChD,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,iDAAiD;oBAE1F,6BAA6B,CAAC,IAAI,CAAC,CAAC;oBACpC,UAAU,CAAC;wBACP,MAAM,CAAC,IAAI,CAAC,sBAAe,UAAU,CAAC,EAAE,CAAE,CAAC,CAAC;oBAChD,CAAC,EAAE,GAAG,CAAC,CAAA;;;oBAGD,UAAU,GAAG,YAAY,CAAC;oBAC1B,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;oBACzC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBACxE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAC,CAAC;oBACjE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE,CAAC,CAAC;oBACzD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;oBACnD,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC;oBACrB,qBAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAA9C,WAAS,SAAqC;oBAEpD,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnB,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,cAAc,CAAC,YAAY,CAAC,CAAC;oBAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;oBACrB,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;oBAE9B,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAChD,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,iDAAiD;oBAE1F,UAAU,CAAC;wBACP,MAAM,CAAC,IAAI,CAAC,sBAAe,QAAM,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC,CAAC;oBACjD,CAAC,EAAE,GAAG,CAAC,CAAA;;;;;;;;;SAMlB,CAAA;IAID,SAAS,CAAC;QACN,4CAA4C;QAC5C,SAAS,kBAAkB,CAAC,KAAiB;YACzC,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE;gBAC1E,cAAc,CAAC,KAAK,CAAC,CAAC;aACzB;QACL,CAAC;QACD,IAAI,WAAW,EAAE;YACb,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;SAC9D;QACD,OAAO;YACH,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAClE,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,IAAM,UAAU,GAAG;;QACf,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;QAC1C,IAAM,SAAS,GACX,MAAA,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,0CAAE,MAAM,mCACzB,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,0CAAE,MAAM,mCAC1B,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAE3C,OAAO,CACH,uBACI,eAAK,SAAS,EAAC,yBAAyB,aACpC,eAAK,SAAS,EAAC,yCAAyC,aACpD,eAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAC1F,OAAO,EAAE;oCACL,0BAA0B,CAAC,IAAI,CAAC,CAAA;gCACpC,CAAC,aAED,eAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,GAAG,EACrD,eAAM,CAAC,EAAC,mGAAmG,EACvG,IAAI,EAAC,OAAO,GAAG,IACjB,EACN,2BAAM,2BAAS,SAAS,GAAU,sBAAqB,IACrD,EAGN,YAAG,OAAO,EAAE,iBAAiB,EACzB,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAE5B,YAAG,SAAS,EAAC,kBAAkB,GAC3B,GAAI,IACV,GACL,CACR,CAAA;IACL,CAAC,CAAC;IAGF,iCAAiC;IAEjC,IAAM,gBAAgB,GAAG,UAAC,WAAgB;QAEtC,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;QACrB,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;QACpC,IAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,2BAA2B;QAC5E,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,iDAAiD;QAC1F,gCAAgC;QAChC,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,sBAAe,WAAW,CAAC,EAAE,CAAE,CAAC,CAAC;YAC7C,cAAc,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACH,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;SAC5D;IACL,CAAC,CAAA;IAED,IAAM,iBAAiB,GAAG;QACtB,IAAM,MAAM,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAChC,0BAA0B,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC5B,IAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE;gBAC5B,CAAC,CAAC,UAAG,QAAQ,cAAI,MAAM,CAAC,QAAQ,EAAE,CAAE;gBACpC,CAAC,CAAC,QAAQ,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvB;IACL,CAAC,CAAA;IAED,IAAM,gBAAgB,GAAG;QAErB,OAAO,CACH,uBACI,eAAK,SAAS,EAAC,yBAAyB,aACpC,eAAK,SAAS,EAAC,yCAAyC,aACpD,eAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAC1F,OAAO,EAAE;oCACL,IAAM,EAAE,GAAG;;;;;yDACH,uBAAuB,EAAvB,wBAAuB;oDACjB,KAAK,GAAe,uBAAuB,CAAC,uBAAuB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oDACtF,qBAAM,oBAAoB,CAC5C,CAAC,KAAK,CAAC,EACP,QAAQ,CACX,EAAA;;oDAHK,aAAa,GAAG,SAGrB;oDACD,0BAA0B,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;oDACzE,2BAA2B,CAAC,IAAI,CAAC,CAAA;;;;;yCAExC,CAAA;oCACD,EAAE,EAAE,CAAA;gCACR,CAAC,aAGD,eAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,GAAG,EACrD,eAAM,CAAC,EAAC,mGAAmG,EACvG,IAAI,EAAC,OAAO,GAAG,IACjB,EACN,yBAAM,2BAAS,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,IAAI,GAAU,GAAO,IAC1D,EAGN,YAAG,OAAO,EAAE,iBAAiB,EACzB,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAE5B,YAAG,SAAS,EAAC,kBAAkB,GAC3B,GAAI,IACV,GACL,CACR,CAAA;IACL,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG;QACnB,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QACvC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;QAC7C,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,IAAM,YAAY,GAAG;QACjB,OAAO,CACH,aAAI,SAAS,EAAC,0BAA0B,YACpC,eAAK,SAAS,EAAC,+BAA+B,aAC1C,eAAK,SAAS,EAAC,+BAA+B,aAC1C,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAE1F,OAAO,EAAE,cAAM,OAAA,yBAAyB,CAAC,IAAI,CAAC,EAA/B,CAA+B,aAE9C,eAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,GAAG,EACrD,eAAM,CAAC,EAAC,mGAAmG,EACvG,IAAI,EAAC,OAAO,GAAG,IACjB,EACN,2BAAM,2BAAS,aAAa,CAAC,MAAM,GAAU,+BAA8B,IACzE,EAGN,YAAG,OAAO,EAAE,cAAc,EACtB,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,YAE5B,YAAG,SAAS,EAAC,kBAAkB,GAC3B,GAAI,IACV,GACL,CACR,CAAA;IACL,CAAC,CAAC;IAKF,+BAA+B;IAG/B,4BAA4B;IAE5B,IAAM,qBAAqB,GAAG,UAAC,UAAkB;QAC7C,IAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,UAAU,KAAK,UAAU,EAA9B,CAA8B,CAAC,CAAC;QAChF,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7B,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IAErC,CAAC,CAAC;IAEF,IAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,UAAC,GAA6B,EAAE,IAAI;QAC9E,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,IAAI,CAAC,GAAG;YAAE,OAAO,GAAG,CAAC,CAAC,oBAAoB;QAE1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACX,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;SACjB;QACD,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAGP,IAAM,aAAa,GAAG,UAAC,CAAwC;QAC3D,IAAM,QAAQ,GAAG,CAAC,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,CAAA,CAAC;QACtC,IAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,IAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,MAAM,KAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAM,iBAAiB,GAAG,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,KAAI,CAAC,CAAC;QACpD,IAAM,UAAU,GAAG,WAAW,GAAG,eAAe,GAAG,iBAAiB,CAAC;QAErE,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;YACvB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,WAAW,EAAE;gBACb,eAAe,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,IAAI,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAzC,CAAyC,CAAC,CAAC;aACtE;SACJ;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE;YAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,WAAW,EAAE;gBACb,eAAe,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAA7B,CAA6B,CAAC,CAAC;aAC1D;SACJ;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YAC1B,IAAI,QAAQ,IAAI,YAAY,IAAI,CAAC;gBAAE,CAAC,CAAC,cAAc,EAAE,CAAC;YAEtD,IAAM,sBAAsB,GAAG,WAAW,CAAC;YAC3C,IAAM,iBAAiB,GAAG,sBAAsB,GAAG,eAAe,CAAC;YAEnE,IAAI,WAAW,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,GAAG,sBAAsB,EAAE;gBAC3E,IAAM,OAAK,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAC7C,IAAM,YAAY,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,KAAI,EAAE,CAAC;gBAC9C,IAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAE,EAAR,CAAQ,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,KAAK,EAAE,EAAR,CAAQ,CAAC,CAAC;gBACpF,IAAM,YAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC;oBACvC,UAAU,EAAE,OAAK,CAAC,SAAS;oBAC3B,KAAK,EAAE,CAAC;oBACR,iBAAiB,EAAE,OAAK,CAAC,WAAW;oBACpC,WAAW,EAAE,OAAK,CAAC,WAAW;oBAC9B,SAAS,EAAE,OAAK,CAAC,SAAS;iBAC7B,CAAC,EANwC,CAMxC,CAAC,CAAC;gBACJ,cAAc,CAAC,UAAC,IAAI,IAAK,uCAAI,IAAI,SAAK,YAAU,SAAvB,CAAwB,CAAC,CAAC;gBACnD,aAAa,CAAC,EAAE,CAAC,CAAC;gBAClB,cAAc,CAAC,IAAI,CAAC,CAAC;gBACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAC;gBAClC,cAAc,CAAC,KAAK,CAAC,CAAC;gBACtB,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;aACvB;iBAAM,IAAI,WAAW,IAAI,YAAY,IAAI,sBAAsB,IAAI,YAAY,GAAG,iBAAiB,EAAE;gBAClG,IAAM,gBAAgB,GAAG,kBAAkB,CAAC,YAAY,GAAG,sBAAsB,CAAC,CAAC;gBACnF,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;gBACzC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;aACvB;iBAAM,IAAI,WAAW,IAAI,YAAY,IAAI,iBAAiB,IAAI,YAAY,GAAG,UAAU,EAAE;gBACtF,IAAM,cAAc,GAAG,YAAY,GAAG,iBAAiB,CAAC;gBACxD,IAAM,WAAW,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;gBACjD,IAAI,WAAW;oBAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBAC/C,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;aACvB;iBAAM,IAAI,QAAQ,EAAE;gBACjB,aAAa,EAAE,CAAC;gBAChB,cAAc,CAAC,KAAK,CAAC,CAAC;gBACtB,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;aACvB;SACJ;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,UAAU,KAAK,EAAE,EAAE;YAEnD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,cAAc,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC,CAAC;aAC/C;iBAAM,IAAI,YAAY,EAAE;gBACrB,eAAe,CAAC,IAAI,CAAC,CAAA;gBACrB,cAAc,CAAC,YAAY,CAAC,CAAC;aAChC;iBAAM,IAAI,oBAAoB,EAAE;gBAC7B,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;aACvC;iBAAM,IAAI,iBAAiB,EAAE;gBAC1B,iBAAiB,EAAE,CAAA;aACtB;iBAAM,IAAI,iBAAiB,EAAE;gBAC1B,iBAAiB,EAAE,CAAC;aACvB;YACD,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;SACpC;IACL,CAAC,CAAC;IAEF,IAAM,UAAU,GAAG,cAAM,OAAA,CACrB,4BACK,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,UAAC,EAAgB;gBAAf,MAAM,QAAA,EAAE,MAAM,QAAA;YACpD,IAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,KAAK,MAAM,EAAtB,CAAsB,CAAC,CAAC;YACrE,IAAM,iBAAiB,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,KAAI,MAAM,CAAC;YAE3D,OAAO,CACH,uBACI,eAAK,SAAS,EAAC,yBAAyB,aACpC,wBAAM,iBAAiB,GAAO,EAC7B,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK,EAAE,KAAK,IAAK,OAAA,CAC1B,MAAC,KAAK,CAAC,QAAQ,eAEX,eAAkB,SAAS,EAAC,mBAAmB,YAAE,KAAK,IAA3C,KAAK,CACT,EACN,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;oCACtB,eAAM,SAAS,EAAC,gBAAgB,mBAAU,IAEjC,CACpB,EAT6B,CAS7B,CAAC,EAEF,YAAG,SAAS,EAAC,kBAAkB,EAC3B,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAC5B,OAAO,EAAE,cAAM,OAAA,qBAAqB,CAAC,MAAM,CAAC,EAA7B,CAA6B,GAE5C,IACF,IAnBD,MAAM,CAoBV,CACR,CAAA;QACL,CAAC,CAAC,GACH,CACN,EA/BwB,CA+BxB,CAAC;IAEF,0BAA0B;IAG1B,sCAAsC;IAEtC,IAAM,sBAAsB,GAAG,UAAC,gBAAqB;QACjD,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,CAAA;YAAE,OAAO;QAEhC,IAAI,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,CAAA,EAAE;YAC5B,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,gBAAgB,CAAC,CAAC;YAC9E,OAAO;SACV;QAED,IAAI;YACA,6DAA6D;YAC7D,IAAM,eAAe,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YAEzF,0CAA0C;YAC1C,sBAAsB;YACtB,yBAAyB;YACzB,gCAAgC;YAChC,wBAAwB;YACxB,uBAAuB;YACvB,iCAAiC;YACjC,uBAAuB,CAAC;gBACpB,IAAI,EAAE,gBAAgB,CAAC,IAAI;gBAC3B,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;aAC3B,CAAC,CAAC;YAEH,6BAA6B,CAAC,eAAe,CAAC,CAAC;YAE/C,sDAAsD;YACtD,oCAAoC;YAEpC,mBAAmB;YACnB,wCAAwC;YAExC,gCAAgC;YAChC,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;SACpC;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;YAC1D,8CAA8C;SACjD;IACL,CAAC,CAAC;IAGF,IAAM,0BAA0B,GAAG;QAC/B,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAA;QACnC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,wCAAwC;QACxC,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IACrC,CAAC,CAAC;IAEF,IAAM,oBAAoB,GAAG,cAAM,OAAA,CAC/B,uBACI,eAAK,SAAS,EAAC,yBAAyB,aACpC,eAAK,SAAS,EAAC,+BAA+B,aAC1C,6BAAS,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,IAAI,SAAW,EAC9C,eAAM,SAAS,EAAC,mBAAmB,YAAE,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,KAAK,GAAQ,IACtE,EAEN,YAAG,SAAS,EAAC,kBAAkB,EAC3B,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAC5B,OAAO,EAAE,0BAA0B,GAEnC,IACF,GACL,CACR,EAfkC,CAelC,CAAC;IAEF,oCAAoC;IAEpC,OAAO,CACH,4BACI,eAAK,SAAS,EAAC,kEAAkE,aAC7E,cAAK,SAAS,EAAC,6BAA6B,YACxC,cAAI,SAAS,EAAC,EAAE,aACX,sBAAsB,IAAI,KAAC,gBAAgB,KAAG,EAC9C,oBAAoB,IAAI,KAAC,oBAAoB,KAAG,EAChD,YAAY,IAAI,KAAC,UAAU,KAAG,EAC9B,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,KAAK,IAAI,EAApB,CAAoB,CAAC,IAAI,KAAC,YAAY,KAAG,EAC9F,KAAC,UAAU,KAAG,EACd,aAAI,GAAG,EAAE,QAAQ,YACb,eAAK,SAAS,EAAC,8CAA8C,aACzD,KAAC,SAAS,IACN,KAAK,EAAE,UAAU,IAAI,EAAE,EACvB,WAAW,EAAC,SAAS,EACrB,QAAQ,EAAE,UAAC,CAAC;gDACR,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gDAC9B,cAAc,CAAC,IAAI,CAAC,CAAC;gDACrB,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;4CACxB,CAAC,EACD,OAAO,EAAE;gDACL,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE;oDAAE,cAAc,CAAC,IAAI,CAAC,CAAC;4CACjD,CAAC,EACD,MAAM,EAAE;gDACJ,gDAAgD;gDAChD,UAAU,CAAC,cAAM,OAAA,cAAc,CAAC,KAAK,CAAC,EAArB,CAAqB,EAAE,GAAG,CAAC,CAAC;4CACjD,CAAC,EAED,SAAS,EAAE,aAAa,GAC1B,EACF,KAAC,MAAM,IACH,IAAI,EAAC,cAAc,EACnB,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EACvB,QAAQ,EAAC,WAAW,EACpB,QAAQ,QAAC,IAAI,EAAC,OAAO,EACrB,OAAO,EAAE,cAAM,OAAA,cAAc,CAAC,IAAI,CAAC,EAApB,CAAoB,EACnC,SAAS,EAAC,sBAAsB,GAClC,IACA,GACL,IACJ,GACH,EAEL,WAAW,IAAI,CACZ,eAAK,GAAG,EAAE,UAAU,EAAE,SAAS,EAAC,0DAA0D,EAAC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,yCAAyC,EAAE,YAAY,EAAE,KAAK,EAAE,aAEhN,UAAU,CAAC,CAAC,CAAC,CACV,8BACI,eAAK,SAAS,EAAC,yDAAyD,aACpE,aAAI,SAAS,EAAC,gBAAgB,iCAAsB,EAEhD,gBAAgB,CAAC,GAAG,CAAC,UAAC,KAAU,EAAE,KAAU;4CACxC,+BAA+B;4CAE/B,OAAO,CACH,MAAC,MAAM,IAEH,SAAS,EAAE,oCAA6B,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAE;gDACvF,uCAAuC;gDACvC,WAAW,EAAE,UAAC,CAAC;oDACX,gCAAgC;oDAChC,CAAC,CAAC,cAAc,EAAE,CAAC;oDACnB,IAAM,YAAY,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,CAAC;oDACxC,IAAI,YAAY,EAAE;wDACd,IAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAE,EAAR,CAAQ,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,KAAK,EAAE,EAAR,CAAQ,CAAC,CAAC;wDACpF,IAAM,YAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC;4DAChC,UAAU,EAAE,KAAK,CAAC,SAAS;4DAC3B,KAAK,EAAE,CAAC;4DACR,iBAAiB,EAAE,KAAK,CAAC,WAAW;4DACpC,WAAW,EAAE,KAAK,CAAC,WAAW;4DAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;yDAC7B,CAAC,EANiC,CAMjC,CAAC,CAAC;wDACJ,cAAc,CAAC,UAAC,IAAI,IAAK,uCAAI,IAAI,SAAK,YAAU,SAAvB,CAAwB,CAAC,CAAC;wDACnD,aAAa,CAAC,EAAE,CAAC,CAAC;wDAClB,cAAc,CAAC,IAAI,CAAC,CAAC;wDACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;wDACjC,cAAc,CAAC,KAAK,CAAC,CAAC;qDACzB;gDACL,CAAC,EACD,IAAI,QACJ,QAAQ,EAAC,WAAW,EACpB,IAAI,EAAC,OAAO,wBAEL,2BAAS,KAAK,CAAC,WAAW,GAAU,YAAM,eAAM,SAAS,EAAC,sBAAsB,YAAE,UAAU,GAAQ,KA3BtG,KAAK,CA4BL,CACZ,CAAA;wCACL,CAAC,CAAC,IAEJ,EACL,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,CACpD,8BACI,KAAC,OAAO,IAAC,SAAS,EAAC,KAAK,GAAG,EAC3B,eAAK,SAAS,EAAC,yDAAyD,aACpE,aAAI,SAAS,EAAC,gBAAgB,oCAAyB,EACtD,kBAAkB,CAAC,GAAG,CAAC,UAAC,gBAAqB,EAAE,KAAa,IAAK,OAAA,CAC9D,MAAC,MAAM,IAEH,SAAS,EAAE,kEAA2D,YAAY,KAAK,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAE,EACjJ,WAAW,EAAE,UAAC,CAAC;wDACX,CAAC,CAAC,cAAc,EAAE,CAAC;wDACnB,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;oDAC7C,CAAC,EACD,IAAI,QACJ,QAAQ,EAAC,WAAW,EACpB,IAAI,EAAC,OAAO,aAEZ,eAAK,SAAS,EAAC,+BAA+B,aAC1C,6BAAS,gBAAgB,CAAC,IAAI,SAAW,EACzC,eAAM,SAAS,EAAC,sBAAsB,YAAE,UAAU,GAAQ,IACxD,EACN,cAAK,SAAS,EAAC,SAAS,YAAE,gBAAgB,CAAC,WAAW,GAAO,KAdxD,KAAK,CAeL,CACZ,EAlBiE,CAkBjE,CAAC,IACA,IACP,CACN,IACF,CACN,CAAC,CAAC;4BACC,8BACI,cAAK,SAAS,EAAC,eAAe,+BAAqB,EACnD,KAAC,OAAO,IAAC,SAAS,EAAC,KAAK,GAAG,IAC5B,EAEN,YAAY,CAAC,MAAM,GAAG,CAAC;4BACpB,8BACI,eAAK,SAAS,EAAC,KAAK,aAChB,YAAG,SAAS,EAAC,aAAa,8BAAkB,EAC5C,cAAK,SAAS,EAAC,wBAAwB,YAClC,YAAY,CAAC,GAAG,CAAC,UAAC,WAAgB,EAAE,GAAW;oDAC5C,IAAM,QAAQ,GAAG,CAAC,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,CAAA,CAAC;oDACtC,IAAM,cAAc,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,MAAM,KAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oDACrH,OAAO,CACH,KAAC,eAAe,IAAW,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,SAAS,EAAE,YAAY,KAAK,cAAc,GAAG,GAAG,IAArT,GAAG,CAAsU,CAClW,CAAA;gDACL,CAAC,CAAC,GACA,IACJ,EACN,KAAC,OAAO,IAAC,SAAS,EAAC,KAAK,GAAG,IAC5B,EAEP,eAAK,SAAS,EAAC,wCAAwC,aACnD,KAAC,MAAM,IAAC,IAAI,QAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,eAAe,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,YAAY,EAAC,OAAO,EAAE,cAAM,OAAA,0BAA0B,CAAC,IAAI,CAAC,EAAhC,CAAgC,EAAE,SAAS,EAAC,WAAW,GAAG,EACzJ,QAAQ,KAAK,MAAM;oCAChB,KAAC,MAAM,IAAC,IAAI,QAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,UAAU,EAAC,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,YAAY,EAAC,OAAO,EAAE,cAAM,OAAA,yBAAyB,CAAC,IAAI,CAAC,EAA/B,CAA+B,EAAE,SAAS,EAAC,WAAW,GAAG,IAEtJ,IACJ,CACT,EAED,MAAC,MAAM,IAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAC,4BAA4B,EAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,cAAQ,IAAI,CAAC,uBAAuB;wBAAE,OAAO,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aACxT,eAAK,SAAS,EAAC,sDAAsD,aACjE,aAAI,SAAS,EAAC,wBAAwB,kCAAuB,EAC7D,KAAC,MAAM,IAAC,IAAI,EAAC,aAAa,EAAC,OAAO,QAAC,IAAI,sBAAY,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,cAAM,OAAA,0BAA0B,CAAC,KAAK,CAAC,EAAjC,CAAiC,GAAI,IACxI,EACN,KAAC,OAAO,IAAC,SAAS,EAAC,KAAK,GAAG,EAC3B,cAAK,SAAS,EAAC,YAAY,YACtB,MAAM,CAAC,MAAM,GAAG,CAAC;gCACd,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,WAAW,EAAE,cAAM,OAAA,0BAA0B,CAAC,KAAK,CAAC,EAAjC,CAAiC,GAAoB,GAE3O,IACD,EACT,MAAC,MAAM,IAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAC,4BAA4B,EAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,cAAQ,IAAI,CAAC,sBAAsB;wBAAE,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aACrT,eAAK,SAAS,EAAC,sDAAsD,aACjE,aAAI,SAAS,EAAC,wBAAwB,GAAM,EAC5C,KAAC,MAAM,IAAC,IAAI,EAAC,aAAa,EAAC,OAAO,QAAC,IAAI,sBAAY,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,cAAM,OAAA,yBAAyB,CAAC,KAAK,CAAC,EAAhC,CAAgC,GAAI,IACvI,EACN,KAAC,OAAO,IAAC,SAAS,EAAC,KAAK,GAAG,EAC3B,cAAK,SAAS,EAAC,YAAY,YACtB,eAAe,CAAC,MAAM,GAAG,CAAC;gCACvB,KAAC,iBAAiB,IACd,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,cAAM,OAAA,yBAAyB,CAAC,KAAK,CAAC,EAAhC,CAAgC,GAClC,GAEvB,IACA,EACV,MAAC,MAAM,IAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAC,4BAA4B,EAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,wBAAwB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,cAAQ,IAAI,CAAC,wBAAwB;wBAAE,OAAO,CAAC,2BAA2B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAC3T,eAAK,SAAS,EAAC,sDAAsD,aACjE,aAAI,SAAS,EAAC,wBAAwB,6BAAkB,EACxD,KAAC,MAAM,IAAC,IAAI,EAAC,aAAa,EAAC,OAAO,QAAC,IAAI,sBAAY,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAE,cAAM,OAAA,2BAA2B,CAAC,KAAK,CAAC,EAAlC,CAAkC,GAAI,IACzI,EACN,KAAC,OAAO,IAAC,SAAS,EAAC,KAAK,GAAG,EAC3B,cAAK,SAAS,EAAC,YAAY,YACtB,MAAM,CAAC,MAAM,GAAG,CAAC;gCACd,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAuB,EAAE,cAAc,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,WAAW,EAAE,cAAM,OAAA,2BAA2B,CAAC,KAAK,CAAC,EAAlC,CAAkC,GAAoB,GAEnQ,IACD,EACT,KAAC,MAAM,IAAC,MAAM,EAAC,oBAAoB,EAAC,SAAS,EAAC,4BAA4B,EAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,cAAQ,IAAI,CAAC,mBAAmB;wBAAE,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAC9M,KAAC,yBAAyB,IAAC,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,sBAAsB,GAA8B,GAC3K,EAET,KAAC,MAAM,IACH,OAAO,EAAE,uBAAuB,EAChC,MAAM,EAAC,gBAAgB,EACvB,KAAK,QACL,SAAS,EAAC,sBAAsB,EAChC,MAAM,EAAE,cAAM,OAAA,CACV,eAAK,SAAS,EAAC,6BAA6B,aACxC,KAAC,MAAM,IAAC,KAAK,EAAC,KAAK,EAAC,IAAI,EAAC,aAAa,EAAC,SAAS,EAAC,cAAc,EAAC,QAAQ,EAAC,QAAQ,EAAC,SAAS,QAAC,OAAO,EAAE,iBAAiB,GAAI,EAC1H,KAAC,MAAM,IAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,aAAa,EAAC,SAAS,EAAC,cAAc,EAAC,OAAO,EAAE,cAAM,OAAA,0BAA0B,CAAC,KAAK,CAAC,EAAjC,CAAiC,GAAI,IACjH,CACT,EALa,CAKb,EACD,MAAM,EAAE,cAAM,OAAA,0BAA0B,CAAC,KAAK,CAAC,EAAjC,CAAiC,YAE/C,gEAAwC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,IAAI,qBAAkB,GACjF,IACN,GAYR,CACN,CAAA;AACL,CAAC,CAAC,CAAC","sourcesContent":["import React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from \"react\";\nimport { Dialog } from \"primereact/dialog\";\nimport FilterComponent, { FilterOperator, FilterRule, FilterRuleType } from \"../../../components/core/common/FilterComponent\";\nimport { Button } from \"primereact/button\";\nimport { Divider } from \"primereact/divider\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { getFilterObjectFromLocalStorage } from \"../list/SolidListView\";\nimport { InputText } from \"primereact/inputtext\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport qs from \"qs\";\nimport { SolidSaveCustomFilterForm } from \"./SolidSaveCustomFilterForm\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { hydrateRelationRules } from \"../../../helpers/hydrateRelationRules\";\nimport { useSession } from '../../../hooks/useSession'\nimport GroupingComponent, { AggregationRule, GroupingRule, DateGroupingFormat } from \"./GroupingComponent\";\n\n\nconst getRandomInt = (min: number, max: number) => {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\ninterface PredefinedSearch {\n name: string;\n description?: string;\n filters: Record<string, any>;\n}\n\nexport type SearchableField = {\n fieldName: string;\n displayName: string;\n searchField: string;\n matchMode: string;\n}\n\nexport type GroupableField = {\n fieldName: string;\n displayName: string;\n searchField: string;\n matchMode: string;\n type: string;\n ormType: string;\n relationType: string;\n computedFieldValueType: string;\n}\n\nconst extractFields = (nodes: any[] = []): any[] => {\n const result: any[] = [];\n\n for (const node of nodes) {\n if (node?.type === \"field\") {\n result.push(node);\n }\n\n if (Array.isArray(node?.children)) {\n result.push(...extractFields(node.children));\n }\n }\n\n return result;\n};\n\n\nconst transformFiltersToRules = (filter: any, parentRule: number | null = null): FilterRule => {\n if (!filter || typeof filter !== \"object\" || Object.keys(filter).length === 0) {\n throw new Error(\"Invalid filter: expected a non-null object with properties\");\n }\n if (!filter || typeof filter !== \"object\") {\n throw new Error(\"Invalid filter: expected a non-null object\");\n }\n const currentId = idCounter++;\n if (filter[\"$or\"]) {\n return {\n id: currentId,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.OR,\n parentRule,\n children: filter[\"$or\"]\n .filter((sub: any) => {\n // Filter out null, undefined, empty strings, and empty objects\n if (sub == null) return false;\n if (typeof sub === \"string\" && sub.trim() === \"\") return false;\n if (typeof sub === \"object\" && Object.keys(sub).length === 0) return false;\n return true;\n })\n .map((subFilter: any) => transformFiltersToRules(subFilter, currentId))\n };\n }\n\n if (filter[\"$and\"]) {\n return {\n id: currentId,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.AND,\n parentRule,\n children: filter[\"$and\"]\n .filter((sub: any) => {\n // Filter out null, undefined, empty strings, and empty objects\n if (sub == null) return false;\n if (typeof sub === \"string\" && sub.trim() === \"\") return false;\n if (typeof sub === \"object\" && Object.keys(sub).length === 0) return false;\n return true;\n })\n .map((subFilter: any) => transformFiltersToRules(subFilter, currentId))\n };\n }\n\n // Handle single rule condition\n for (const fieldName in filter) {\n const condition = filter[fieldName];\n if (!condition || typeof condition !== \"object\") {\n throw new Error(`Invalid condition for field '${fieldName}'`);\n }\n\n // CASE 1: relation filter → unwrap first\n if (condition?.id && typeof condition?.id === \"object\") {\n for (const matchMode in condition.id) {\n const rawValue = condition.id[matchMode];\n const mathcModeValue: any = matchMode\n return {\n id: currentId,\n type: FilterRuleType.RULE,\n fieldName,\n matchMode: mathcModeValue,\n value: Array.isArray(rawValue) ? rawValue : [rawValue],\n parentRule,\n children: []\n };\n }\n }\n\n // CASE 2: normal field → loop stays\n for (const matchMode in condition) {\n const rawValue = condition[matchMode];\n const mathcModeValue: any = matchMode\n return {\n id: currentId,\n type: FilterRuleType.RULE,\n fieldName,\n matchMode: mathcModeValue,\n value: Array.isArray(rawValue) ? rawValue : [rawValue],\n parentRule,\n children: []\n };\n }\n\n\n }\n throw new Error(ERROR_MESSAGES.INVALID_FILTER_STRUCTURE);\n}\n\n\n\n\nlet idCounter = 1;\nconst generateId = () => Date.now() + Math.floor(Math.random() * 1000);\n\n\nconst transformRulesToFilters = (input: any, viewData: any) => {\n\n // Helper function to process individual rules\n const processRule = (rule: any) => {\n if (rule.value !== undefined && rule.value !== null) {\n\n // Ensure rule.value is always an array\n let values = typeof rule.value[0] === \"object\" ? rule.value.map((i: any) => i?.value ? i?.value : i) : rule?.value;\n if (rule.matchMode !== '$in' && rule.matchMode !== '$notIn' && rule.matchMode !== '$between' && rule.matchMode !== '$null' && rule.matchMode !== '$notNull') {\n values = values[0];\n }\n\n\n const fieldMeta = viewData?.data?.solidFieldsMetadata?.[rule.fieldName];\n const isManyToMany = fieldMeta?.type === 'relation' && fieldMeta?.relationType === 'many-to-many';\n\n\n let transformedRule;\n if (isManyToMany) {\n // For many-to-many relations, always use array format for $in/$notIn\n transformedRule = {\n [rule.fieldName]: {\n id: {\n [rule.matchMode]: values // Keep as array\n }\n }\n };\n } else {\n // Rule transformation\n transformedRule = {\n [rule.fieldName]: {\n [rule.matchMode]: values // Assuming `value` is always an array with `value` and `label`\n }\n };\n }\n\n let processedFields;\n if (rule.children && rule.children.length > 0) {\n processedFields = rule.children.map((child: any) => processRuleGroup(child)).filter((child: any) => child != null);;\n }\n if (processedFields) {\n return { ...transformedRule, processedFields }\n }\n return { ...transformedRule }\n\n }\n\n };\n\n // Helper function to process rule groups\n const processRuleGroup = (ruleGroup: any) => {\n const operator = ruleGroup.matchOperator === 'or' ? '$or' : '$and';\n const children = ruleGroup.children.map((child: any) => {\n if (child.type === 'rule') {\n // Process the rule\n return processRule(child);\n } else if (child.type === 'rule_group') {\n // Process the rule group recursively\n return processRuleGroup(child);\n }\n }).filter((child: any) => child != null);\n // If no valid children, return null\n // if (children.length === 0) {\n // return null;\n // }\n\n // If only one child, return it directly without wrapping in operator\n // if (children.length === 1) {\n // return children[0];\n // }\n\n return {\n [operator]: children\n };\n };\n\n\n // Start processing the root rule group\n const filterObject = processRuleGroup(input);\n\n if (!filterObject) {\n return {};\n }\n\n function liftProcessedFields(filters: any) {\n if (!filters || typeof filters !== 'object') return filters;\n\n const processArray = (arr: any) => {\n let newArr = [];\n for (let obj of arr) {\n if (obj && obj.processedFields) {\n let processed: any = processArray(obj.processedFields); // Recursively process nested processedFields\n delete obj.processedFields;\n newArr.push(obj, ...processed);\n } else {\n newArr.push(obj);\n }\n\n for (let key in obj) {\n if (Array.isArray(obj[key])) {\n obj[key] = processArray(obj[key]);\n }\n }\n }\n return newArr;\n }\n\n for (let key in filters) {\n if (Array.isArray(filters[key])) {\n filters[key] = processArray(filters[key]);\n }\n }\n\n return filters;\n }\n\n\n return liftProcessedFields(filterObject)\n\n}\n\n\ntype GroupedType = {\n values: string[];\n searchField: any;\n matchMode: string;\n}\n\n// Build nested condition for relation fields\nfunction buildNestedCondition(path: string, operatorKey: string, value: any) {\n const keys = path.split(\".\").filter(Boolean);\n const leaf = { [operatorKey]: value };\n return keys.reduceRight((acc, key) => ({ [key]: acc }), leaf);\n}\n\nconst tranformSearchToFilters = (input: any) => {\n if (!input || !input.$and) return input;\n\n const grouped: Record<string, GroupedType> = {};\n\n input.$and.forEach(({ fieldName, value, searchField, matchMode }: any) => {\n const val = Array.isArray(value) && value.length === 1 ? value[0] : value;\n\n if (!grouped[fieldName]) {\n grouped[fieldName] = { values: [], searchField: searchField || \"\", matchMode: matchMode || \"$containsi\" };\n }\n\n if (Array.isArray(val)) {\n grouped[fieldName]?.values.push(...val);\n } else {\n grouped[fieldName]?.values.push(val);\n }\n });\n\n // return {\n // $and: Object.entries(grouped).map(([fieldName, values]) => ({\n // [fieldName]: {\n // $containsi: values.length === 1 ? values[0] : values\n // }\n // }))\n // };\n\n const andFilters: any[] = [];\n\n Object.entries(grouped).forEach(([fieldName, value]) => {\n\n const isNested = value.searchField ? value.searchField.includes(\".\") : false;\n\n if (isNested) {\n\n // NESTED: use $eq and expand dot-notation into nested objects\n if (value.values.length === 1) {\n andFilters.push(buildNestedCondition(value.searchField, value.matchMode, value.values[0]));\n } else {\n andFilters.push({\n $or: value.values.map(v => buildNestedCondition(value.searchField, value.matchMode, v)),\n });\n }\n } else {\n\n if (value.values.length === 1) {\n andFilters.push({\n [fieldName]: {\n $containsi: value.values[0]\n }\n });\n } else {\n andFilters.push({\n $or: value.values.map((v) => ({\n [fieldName]: { $containsi: v }\n }))\n });\n }\n }\n });\n\n return {\n $and: andFilters\n };\n}\n\nexport const mergeSearchAndCustomFilters = (transformedFilter: any, newFilter: any, transformedFilterName: string, newFilterName: string) => {\n const filters: any = {};\n\n // Add only non-null filters\n if (transformedFilter && Object.keys(transformedFilter).length > 0) {\n filters[transformedFilterName] = transformedFilter;\n }\n if (newFilter && Object.keys(newFilter).length > 0) {\n filters[newFilterName] = newFilter;\n }\n\n // Return the combined filters object\n return filters;\n}\n\n\nexport const mergeAllDiffFilters = (customFilter: any, searchFilter: any, savedFilter: any, preDefinedFilter?: any, groupingRules?: GroupingRule[], aggregationRules?: AggregationRule[]) => {\n const filters: any = {};\n\n // Add only non-null filters\n if (customFilter && Object.keys(customFilter).length > 0) {\n filters[\"custom_filter_predicate\"] = customFilter;\n }\n if (searchFilter && Object.keys(searchFilter).length > 0) {\n filters[\"search_predicate\"] = searchFilter;\n }\n if (savedFilter && Object.keys(savedFilter).length > 0) {\n filters[\"saved_filter_predicate\"] = savedFilter;\n }\n if (preDefinedFilter && Object.keys(preDefinedFilter).length > 0) {\n filters[\"predefined_search_predicate\"] = preDefinedFilter;\n }\n if (groupingRules && Object.keys(groupingRules).length > 0) {\n filters[\"grouping_rules\"] = groupingRules;\n }\n if (aggregationRules && Object.keys(aggregationRules).length > 0) {\n filters[\"aggregation_rules\"] = aggregationRules;\n }\n // Return the combined filters object\n return filters;\n}\n\nconst SavedFilterList = ({ savedfilter, activeSavedFilter, applySavedFilter, openSavedCustomFilter, setSavedFilterTobeDeleted, setIsDeleteSQDialogVisible, isFocused }: any) => {\n return (\n <div className=\"flex align-items-center justify-content-between gap-2\">\n <div>\n <Button text\n size=\"small\"\n className={`text-base py-1 w-full ${isFocused ? 'surface-hover' : ''}`}\n severity={Number(activeSavedFilter) == savedfilter.id ? \"secondary\" : \"contrast\"}\n onClick={() => applySavedFilter(savedfilter)}\n tooltip={savedfilter?.description}>{savedfilter.name}\n </Button>\n {/* {savedfilter?.description && <p className=\"text-xs pl-3\">{savedfilter?.description}</p>} */}\n </div>\n <div className=\"flex align-items-center gap-2\">\n {savedfilter.isSeeded !== true &&\n <>\n <Button\n icon=\"pi pi-pencil\"\n style={{ fontSize: 10 }}\n severity=\"secondary\"\n outlined size=\"small\"\n onClick={() => openSavedCustomFilter(savedfilter)}\n />\n <Button\n icon=\"pi pi-trash\"\n style={{ fontSize: 10 }}\n severity=\"secondary\"\n outlined size=\"small\"\n onClick={() => {\n setSavedFilterTobeDeleted(savedfilter.id),\n setIsDeleteSQDialogVisible(true);\n }}\n />\n </>\n }\n\n </div>\n </div>\n )\n}\n\nconst replacePlaceholders = (obj: any, searchValue: string): any => {\n if (typeof obj === 'string') {\n return obj.replace(/\\{\\{search\\}\\}/g, searchValue);\n }\n if (Array.isArray(obj)) {\n return obj.map(item => replacePlaceholders(item, searchValue));\n }\n if (obj && typeof obj === 'object') {\n const newObj: any = {};\n for (const key in obj) {\n newObj[key] = replacePlaceholders(obj[key], searchValue);\n }\n return newObj;\n }\n return obj;\n};\n\n\nconst extractChips = (node: any): any[] => {\n if (!node) return [];\n\n // If node has $and\n if (node.$and && Array.isArray(node.$and)) {\n return node.$and.flatMap(extractChips);\n }\n\n // If node has $or\n if (node.$or && Array.isArray(node.$or)) {\n return node.$or.flatMap(extractChips);\n }\n\n // Leaf condition\n const field = Object.keys(node)[0];\n const operatorObj = node[field];\n\n // ✅ Normal case\n if (operatorObj?.$containsi) {\n return [{\n columnName: field,\n value: operatorObj.$containsi,\n columnDisplayName: field.charAt(0).toUpperCase() + field.slice(1),\n searchField: field,\n matchMode: \"$containsi\"\n }];\n }\n // ✅ Nested case (like city.name)\n else if (typeof operatorObj === \"object\") {\n const nestedField = Object.keys(operatorObj)[0];\n const nestedOperatorObj = operatorObj[nestedField];\n\n const operatorKey = nestedOperatorObj\n ? Object.keys(nestedOperatorObj).find(k => k.startsWith(\"$\"))\n : null;\n\n if (operatorKey) {\n return [{\n columnName: field,\n value: nestedOperatorObj[operatorKey],\n columnDisplayName: field.charAt(0).toUpperCase() + field.slice(1),\n searchField: `${field}.${nestedField}`,\n matchMode: operatorKey\n }];\n }\n }\n\n return [];\n};\n\n\n\ntype RelationCache = Map<string, { label: string; value: number }>;\n\n\n\nexport const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handleApplyCustomFilter, showSaveFilterPopup, setShowSaveFilterPopup, filterPredicates }: any, ref) => {\n const defaultState: FilterRule[] = [\n {\n id: 1,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.OR,\n parentRule: null,\n children: [\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: 1,\n children: []\n },\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: 1,\n children: []\n }\n ]\n }\n ];\n\n const defaultAggregationRules: AggregationRule[] = [\n {\n id: 1,\n operator: \"count\",\n fieldName: \"id\",\n locked: true\n }\n ];\n\n const defaultGroupingRules: GroupingRule[] = [\n { id: 1, fieldName: null, dateGrouping: null }\n ];\n\n const [initialState, setInitialState] = useState(defaultState);\n const pathname = usePathname();\n\n\n const searchParams = useSearchParams() // Converts the query params to a string\n const activeSavedFilter = searchParams?.get(\"savedQuery\");\n\n const router = useRouter();\n\n const chipsRef = useRef<HTMLDivElement | null | any>(null);\n\n // filterRules is used to maintian the ui of custom filter \n // customFilter is used to maintian the transformed filter object of custom filter\n const [filterRules, setFilterRules] = useState<FilterRule[]>(initialState);\n const [customFilter, setCustomFilter] = useState<any | null>(null);\n\n const [fields, setFields] = useState<any[]>([]);\n const [searchableFields, setSearchableFields] = useState<any[]>([]);\n const [groupableFields, setGroupableFields] = useState<GroupableField[]>([]);\n\n const [groupingRules, setGroupingRules] = useState<GroupingRule[]>(defaultGroupingRules);\n const [aggregationRules, setAggregationRules] = useState<AggregationRule[]>(defaultAggregationRules);\n\n // used to show the list of predefined searches \n const [predefinedSearches, setPredefinedSearches] = useState<PredefinedSearch[]>([]);\n\n // used to open / close the custom fitler popup \n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState<boolean>(false);\n\n // used to open / close the group fitler popup \n const [showGroupFilterElement, setShowGroupFilterElement] = useState<boolean>(false);\n\n\n // searchChips maintain the ui to display searched query \n // searchFilter maintain the transformed filter of the searched query \n const [searchChips, setSearchChips] = useState<{ columnName?: string; value: string }[]>([]);\n const [searchFilter, setSearchFilter] = useState<any | null>(null);\n\n // predefinedSearchChip maintain the ui to display predefined searches query \n const [predefinedSearchChip, setPredefinedSearchChip] = useState<{ name: string; value: string } | null>(null);\n\n // state to maintain the text typed in the search input box\n const [inputValue, setInputValue] = useState<string | null>(\"\");\n\n // flag to prevent un necessary re renders\n const [hasSearched, setHasSearched] = useState<boolean>(false);\n\n // currentSavedFilterData is used to save the whole object of saved filter \n const [currentSavedFilterData, setCurrentSavedFilterData] = useState<any>();\n const [currentSavedFilterQuery, setCurrentSavedFilterQuery] = useState<any>();\n const [currentSavedFilterRules, setCurrentSavedFilterRules] = useState<any>();\n const [showSavedFilterComponent, setShowSavedFilterComponent] = useState<boolean>(false);\n\n\n const [savedFilterTobeDeleted, setSavedFilterTobeDeleted] = useState<any>();\n const [isDeleteSQDialogVisible, setIsDeleteSQDialogVisible] = useState<boolean>(false);\n const [savedFilterQueryString, setSavedFilterQueryString] = useState<string>();\n const [showOverlay, setShowOverlay] = useState(false);\n const overlayRef = useRef<HTMLDivElement | null>(null);\n const [focusedIndex, setFocusedIndex] = useState<number>(-1);\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const [refreshKey, setRefreshKey] = useState(0);\n\n const [predefinedSearchBaseFilter, setPredefinedSearchBaseFilter] = useState<any>(null);\n\n const [savedFilters, setSavedFilters] = useState([]);\n const [savedFiltersLoaded, setSavedFiltersLoaded] = useState(false);\n\n const entityApi = createSolidEntityApi(\"savedFilters\");\n const {\n useCreateSolidEntityMutation,\n useDeleteSolidEntityMutation,\n useGetSolidEntityByIdQuery,\n useUpdateSolidEntityMutation,\n useLazyGetSolidEntitiesQuery\n } = entityApi;\n\n const [\n createEntity,\n { isSuccess: isEntityCreateSuccess, isError: isEntityCreateError, error: entityCreateError },\n ] = useCreateSolidEntityMutation();\n\n const [\n updateEntity,\n { isSuccess: isEntityUpdateSuceess, isError: isEntityUpdateError, error: entityUpdateError },\n ] = useUpdateSolidEntityMutation();\n\n const [\n deleteEntity,\n { isSuccess: isEntityDeleteSuceess, isError: isEntityDeleteError, error: entityDeleteError },\n ] = useDeleteSolidEntityMutation();\n\n const [triggerGetSolidEntities, { data: solidEntityListViewData, isLoading: isSavedFilterLoading, error }] = useLazyGetSolidEntitiesQuery();\n\n const [savedFilterFetchDataRefreshKey, setSavedFilterFetchDataRefreshKey] = useState(0);\n\n\n\n useEffect(() => {\n const fn = async () => {\n if (!viewData?.data?.solidView?.model?.id || !viewData?.data?.solidView?.id || !user?.id) {\n return;\n }\n setSavedFiltersLoaded(false)\n const filters = {\n $or: [\n {\n $and: [\n { model: { $in: [viewData?.data?.solidView?.model?.id] } },\n { view: { $in: [viewData?.solidView?.id] } },\n { user: { $in: [user?.id] } },\n { isPrivate: { $eq: true } }\n ]\n },\n {\n $and: [\n { model: { $in: [viewData?.data?.solidView?.model?.id] } },\n { view: { $in: [viewData?.solidView?.id] } },\n { isPrivate: { $eq: false } }\n ]\n }\n\n ]\n }\n const queryData: any = {\n offset: 0,\n limit: 10,\n filters: filters,\n populate: [\"model\", \"view\", \"user\"],\n sort: [\"id:desc\"],\n };\n const queryString = qs.stringify(queryData, { encodeValuesOnly: true });\n setSavedFilterQueryString(queryString)\n const savedFilter = await triggerGetSolidEntities(queryString).unwrap();\n\n if (savedFilter) {\n console.log(\"savedFilter\", savedFilter);\n setSavedFilters(savedFilter?.records)\n }\n setSavedFiltersLoaded(true);\n }\n fn()\n }, [\n activeSavedFilter,\n savedFilterFetchDataRefreshKey,\n viewData?.data?.solidView?.id,\n viewData?.data?.solidView?.model?.id,\n user?.id\n ])\n\n useImperativeHandle(ref, () => ({\n clearFilter: () => {\n setFilterRules(initialState);\n }\n }));\n\n useEffect(() => {\n const fn = async () => {\n let searchChips: any;\n let customChips: any;\n if (savedFiltersLoaded) {\n\n if (activeSavedFilter && savedFilters.length === 0) return;\n\n const queryObject = getFilterObjectFromLocalStorage();\n // const savedQuery = parsedSearchParams?.get(\"savedQuery\");\n if (activeSavedFilter) {\n const currentSavedFilterId = Number(activeSavedFilter);\n const currentSavedFilterData: any = savedFilters.find((savedFilter: any) => savedFilter.id === currentSavedFilterId);\n setCurrentSavedFilterData(currentSavedFilterData);\n if (currentSavedFilterData) {\n const filterJson = JSON.parse(currentSavedFilterData?.filterQueryJson);\n if (filterJson) {\n let finalSavedFilter = filterJson\n setCurrentSavedFilterQuery(finalSavedFilter)\n }\n }\n } else {\n setCurrentSavedFilterData(null)\n setCurrentSavedFilterQuery(null)\n }\n if (queryObject) {\n if (queryObject) {\n searchChips = queryObject?.search_predicate || null;\n customChips = queryObject?.custom_filter_predicate || null;\n }\n }\n if (searchChips) {\n setSearchFilter(searchChips);\n // const formattedChips = searchChips?.$and.map((chip: any, key: any) => {\n // const chipKey = Object.keys(chip)[0]; // Get the key, e.g., \"displayName\"\n // const chipValue = chip[chipKey]?.$containsi; // Get the value of \"$containsi\"\n // const chipdata = {\n // columnName: chipKey,\n // value: chipValue\n // };\n // return chipdata\n // }\n // );\n // setSearchChips(formattedChips);\n\n const formattedChips = extractChips(searchChips);\n setSearchChips(formattedChips);\n\n }\n if (customChips && Object.keys(customChips).length !== 0) {\n setCustomFilter(customChips);\n const rules: FilterRule = transformFiltersToRules(customChips);\n const hydratedRules = await hydrateRelationRules([rules], viewData);\n setFilterRules(hydratedRules);\n }\n const hasGroupingRules = (queryObject?.grouping_rules?.some((rule: any) => rule.fieldName !== null));\n\n if (hasGroupingRules) {\n setGroupingRules(queryObject?.grouping_rules);\n } else {\n // If no grouping rules in localStorage check layout\n const layoutGroupBy = viewData?.data?.solidView?.layout?.attrs?.groupBy;\n\n if (Array.isArray(layoutGroupBy) && layoutGroupBy.length > 0) {\n const initialGroupingRules: GroupingRule[] = layoutGroupBy.map((groupStr: string, index: number) => {\n const [fieldName, dateGrouping] = groupStr.split(\":\");\n return {\n id: Date.now() + index,\n fieldName: fieldName || null,\n dateGrouping: (dateGrouping as DateGroupingFormat) || null\n };\n });\n setGroupingRules(initialGroupingRules);\n }\n }\n\n if (queryObject?.aggregation_rules && queryObject?.aggregation_rules !== aggregationRules) {\n setAggregationRules(queryObject?.aggregation_rules);\n }\n\n\n setRefreshKey((prev) => prev + 1)\n setHasSearched(true);\n }\n }\n fn()\n }, [viewData?.data?.solidView?.id, activeSavedFilter, savedFiltersLoaded])\n\n useEffect(() => {\n const fn = async () => {\n if (filterPredicates) {\n if (filterPredicates?.custom_filter_predicate && filterPredicates?.custom_filter_predicate !== customFilter) {\n setCustomFilter(filterPredicates?.custom_filter_predicate);\n const rules: FilterRule = transformFiltersToRules(filterPredicates.custom_filter_predicate);\n const hydratedRules = await hydrateRelationRules([rules], viewData);\n setFilterRules(hydratedRules);\n }\n if (filterPredicates?.search_predicate && filterPredicates?.search_predicate !== searchFilter) {\n setSearchFilter(filterPredicates?.search_predicate);\n // const formattedChips = filterPredicates.search_predicate?.$and.map((chip: any, key: any) => {\n // const chipKey = Object.keys(chip)[0]; // Get the key, e.g., \"displayName\"\n // const chipValue = chip[chipKey]?.$containsi; // Get the value of \"$containsi\"\n // const chipdata = {\n // columnName: chipKey,\n // value: chipValue\n // };\n // return chipdata\n // }\n // );\n // setSearchChips(formattedChips);\n const formattedChips = extractChips(filterPredicates.search_predicate);\n setSearchChips(formattedChips);\n\n }\n }\n }\n fn()\n }, [filterPredicates])\n\n useEffect(() => {\n if (viewData?.data?.solidFieldsMetadata) {\n // Reset search state when switching views\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null);\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n setInputValue(\"\");\n\n\n let fieldsData = viewData?.data?.solidFieldsMetadata;\n // console.log(`fiels data while rendering solid global search element: `);\n // console.log(fieldsData);\n\n const layoutChildren = viewData?.data?.solidView?.layout?.children ?? [];\n const fieldElements = extractFields(layoutChildren);\n\n\n const fieldsList = Object.entries(fieldsData ?? {}).map(([key, value]: any) => {\n const viewFieldElement = fieldElements.find(\n (f: any) => f?.attrs?.name === key\n );\n return {\n name: value.displayName,\n value: key,\n type: value.type,\n ormType: value.ormType,\n matchMode: viewFieldElement?.attrs?.searchMatchMode,\n searchField: viewFieldElement?.attrs?.searchField ?? null,\n isSearchable: viewFieldElement?.attrs?.isSearchable ?? false,\n relationType: value?.relationType ?? null,\n };\n });\n\n setFields(fieldsList);\n\n const searchableFieldsList = fieldsList.filter((field: any) => {\n if (!field.isSearchable) return false;\n\n switch (field.type) {\n case \"relation\":\n // Only include relation if searchField is present\n return !!field.searchField;\n case \"longText\":\n case \"shortText\":\n case \"selectionStatic\":\n case \"selectionDynamic\":\n return true;\n // case \"selectionStatic\":\n case \"computed\":\n return field.ormType === \"varchar\";\n default:\n return false;\n }\n });\n\n const groupableFieldsList = fieldsList.filter((field: any) => {\n switch (field.type) {\n case \"relation\":\n // Only include relation if searchField is present\n if (field.relationType === \"many-to-one\")\n return true;\n return false;\n case \"longText\":\n case \"shortText\":\n case \"selectionStatic\":\n case \"selectionDynamic\":\n case \"int\":\n case \"float\":\n case \"boolean\":\n case \"date\":\n case \"datetime\":\n return true;\n // case \"selectionStatic\":\n case \"computed\":\n return field.ormType === \"varchar\";\n default:\n return false;\n }\n });\n\n // Optionally map to a minimal structure if needed for UI\n let finalSearchableFieldsList: any = searchableFieldsList.map((field: any) => ({\n fieldName: field.value,\n displayName: field.name,\n searchField: field.searchField ?? \"\",\n matchMode: field.matchMode\n }));\n\n setSearchableFields(finalSearchableFieldsList);\n\n let finalGroupableFieldsList: any = groupableFieldsList.map((field: any) => ({\n fieldName: field.value,\n displayName: field.name,\n searchField: field.searchField ?? \"\",\n matchMode: field.matchMode,\n type: field.type,\n ormType: field.ormType,\n relationType: field.relationType,\n computedFieldValueType: field.computedFieldValueType\n }));\n\n setGroupableFields(finalGroupableFieldsList)\n\n const predefinedSearchesList = viewData?.data?.solidView?.layout?.attrs?.predefinedSearches || [];\n setPredefinedSearches(predefinedSearchesList);\n }\n // used to open the \n }, [viewData])\n\n useEffect(() => {\n if (chipsRef.current) {\n const inputElement = chipsRef.current.querySelector(\"input\");\n if (inputElement) {\n inputElement.addEventListener(\"input\", (e: any) => {\n setInputValue((e.target as HTMLInputElement).value);\n });\n }\n }\n }, []);\n\n\n const handleAddChip = (columnName?: string) => {\n if (inputValue?.trim()) {\n const fallbackField = searchableFields[0]; // guaranteed object\n if (!fallbackField) return;\n // Support comma-separated values: split, trim and add as separate chips\n const values = inputValue.split(\",\").map(v => v.trim()).filter(v => v !== \"\");\n const fieldName = columnName || fallbackField.fieldName;\n const chipsToAdd = values.map(v => ({\n columnName: fieldName,\n value: v,\n columnDisplayName: fallbackField.displayName,\n searchField: fallbackField.searchField,\n matchMode: fallbackField.matchMode\n }));\n\n setSearchChips((prev) => [...prev, ...chipsToAdd]);\n setInputValue(\"\");\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n\n }\n\n };\n\n const clearCustomFilter = () => {\n // handleApplyCustomFilter(finalFilter)\n setFilterRules(initialState);\n setCustomFilter(null)\n // setPredefinedSearchChip(null)\n // setPredefinedSearchBaseFilter(null)\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n\n }\n\n\n const transformCustomFilterRules = (filterRules: any) => {\n const transformedFilter = transformRulesToFilters(filterRules[0], viewData);\n // If there's a predefined search, merge it with the new custom filter\n let finalCustomFilter = transformedFilter;\n // if (predefinedSearchChip && predefinedSearchBaseFilter) {\n // // Combine predefined filter with new custom filter\n // finalCustomFilter = {\n // $and: [predefinedSearchBaseFilter, transformedFilter]\n // };\n // }\n setCustomFilter(finalCustomFilter);\n // handleApplyCustomFilter(finalFilter);\n setShowGlobalSearchElement(false);\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n }\n\n const transformSavedFilterRules = (filterRules: any) => {\n const transformedFilter = transformRulesToFilters(filterRules[0], viewData);\n\n // If there's a predefined search, merge it with the new custom filter\n let finalCustomFilter = transformedFilter;\n // if (predefinedSearchChip && predefinedSearchBaseFilter) {\n // // Combine predefined filter with new custom filter\n // finalCustomFilter = {\n // $and: [predefinedSearchBaseFilter, transformedFilter]\n // };\n // }\n setCurrentSavedFilterQuery(finalCustomFilter);\n // handleApplyCustomFilter(finalFilter);\n setShowSavedFilterComponent(false);\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n\n\n }\n\n const applyGrouping = (groupingRules: GroupingRule[], aggregationRules: AggregationRule[]) => {\n setHasSearched(true)\n setShowGroupFilterElement(false);\n setGroupingRules(groupingRules);\n setAggregationRules(aggregationRules);\n setRefreshKey((prev) => prev + 1)\n }\n\n useEffect(() => {\n if (refreshKey > 0 && hasSearched) {\n\n const formattedChips = {\n $and: searchChips.map((chip: any) => ({\n fieldName: chip.columnName,\n matchMode: chip.matchMode,\n value: [chip.value],\n searchField: chip.searchField ?? \"\",\n }))\n };\n\n\n const finalSearchFilter = tranformSearchToFilters(formattedChips);\n setSearchFilter(finalSearchFilter);\n\n let finalSavedFilter: any = currentSavedFilterQuery\n const finalPredefinedFilter = predefinedSearchBaseFilter\n\n const finalCustomFilter = customFilter\n const finalFilter = mergeAllDiffFilters(finalCustomFilter, finalSearchFilter, finalSavedFilter, finalPredefinedFilter, groupingRules, aggregationRules)\n handleApplyCustomFilter(finalFilter, true);\n setHasSearched(false)\n // }\n }\n }, [refreshKey]);\n\n\n // Handle predefined search selection\n\n const hasCustomFilterChanged = () => {\n if (!predefinedSearchChip || !customFilter || !predefinedSearchBaseFilter) {\n return false;\n }\n // Deep comparison to check if filter has changed\n return JSON.stringify(customFilter) !== JSON.stringify(predefinedSearchBaseFilter);\n };\n\n const openSavedCustomFilter = async (savedfilter: any) => {\n //Open custom filter popup \n // router.push(`?savedQuery=${savedfilter.id}`);\n // setShowGlobalSearchElement(true);\n // // dont refetch the data yet\n // const customFilter = JSON.parse(savedfilter.filterQueryJson);\n // setCustomFilter(customFilter ? customFilter : null);\n // if (customFilter) {\n // const formatedCustomChips: FilterRule = transformFiltersToRules(customFilter ? customFilter : null);\n // setFilterRules(formatedCustomChips ? [formatedCustomChips] : initialState);\n // }\n\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n\n // push the savedQuery=1 in url \n if (savedfilter?.id) {\n const savedfilterId = savedfilter.id;\n // router.push(`?savedQuery=${savedfilter.id}`);\n setShowOverlay(false);\n const currentSavedFilterData: any = savedFilters.find((savedFilter: any) => savedFilter.id === savedfilterId);\n setCurrentSavedFilterData(currentSavedFilterData);\n if (currentSavedFilterData) {\n const filterJson = JSON.parse(currentSavedFilterData?.filterQueryJson);\n if (filterJson) {\n let finalSavedFilter = filterJson\n setCurrentSavedFilterQuery(finalSavedFilter)\n const rules: FilterRule = transformFiltersToRules(finalSavedFilter ? finalSavedFilter : null);\n const hydratedRules = await hydrateRelationRules(\n [rules],\n viewData\n );\n setCurrentSavedFilterRules(hydratedRules ? hydratedRules : initialState);\n setShowSavedFilterComponent(true)\n }\n }\n } else {\n console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);\n }\n }\n\n const deleteSavedFilter = async () => {\n // delte the saved filter with id \n await deleteEntity(savedFilterTobeDeleted);\n // triggerGetSolidEntities(savedFilterQueryString);\n let parsedSearchParams = searchParams;\n const savedQuery = parsedSearchParams?.get(\"savedQuery\");\n if (savedFilterTobeDeleted == savedQuery) {\n const urlParams = new URLSearchParams(window.location.search);\n urlParams.delete(\"savedQuery\");\n router.push(`?${urlParams.toString()}`);\n }\n setIsDeleteSQDialogVisible(false);\n setTimeout(() => {\n setSavedFilterFetchDataRefreshKey(prev => prev + 1)\n }, 500)\n }\n const handleSaveFilter = async (formValues: any) => {\n setShowSaveFilterPopup(false)\n\n try {\n if (formValues.id) {\n const filterJson = currentSavedFilterQuery;\n const formData = new FormData();\n formData.append(\"name\", formValues.name);\n formData.append(\"filterQueryJson\", JSON.stringify(filterJson, null, 2));\n formData.append(\"modelId\", viewData?.data?.solidView?.model?.id);\n formData.append(\"viewId\", viewData?.data?.solidView?.id);\n formData.append(\"isPrivate\", formValues.isPrivate);\n formData.append(\"userId\", user?.id);\n\n await updateEntity({ id: +formValues.id, data: formData }).unwrap();\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Store in local storage with the URL as the key\n\n setPredefinedSearchBaseFilter(null);\n setTimeout(() => {\n router.push(`?savedQuery=${formValues.id}`);\n }, 500)\n } else {\n\n const filterJson = customFilter;\n const formData = new FormData();\n formData.append(\"name\", formValues.name);\n formData.append(\"filterQueryJson\", JSON.stringify(filterJson, null, 2));\n formData.append(\"modelId\", viewData?.data?.solidView?.model?.id);\n formData.append(\"viewId\", viewData?.data?.solidView?.id);\n formData.append(\"isPrivate\", formValues.isPrivate);\n formData.append(\"userId\", user?.id);\n const result = await createEntity(formData).unwrap();\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Store in local storage with the URL as the key\n\n setTimeout(() => {\n router.push(`?savedQuery=${result.data.id}`);\n }, 500)\n\n }\n } catch (error) {\n\n }\n }\n\n\n\n useEffect(() => {\n // Explicitly type the event as a MouseEvent\n function handleClickOutside(event: MouseEvent) {\n if (overlayRef.current && !overlayRef.current.contains(event.target as Node)) {\n setShowOverlay(false);\n }\n }\n if (showOverlay) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [showOverlay]);\n\n const CustomChip = () => {\n console.log(\"customFilter\", customFilter);\n const ruleCount =\n customFilter?.$or?.length ??\n customFilter?.$and?.length ??\n Object.keys(customFilter || {}).length;\n\n return (\n <li>\n <div className=\"custom-filter-chip-type\">\n <div className=\"flex align-items-center gap-2 text-base\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n onClick={() => {\n setShowGlobalSearchElement(true)\n }\n }>\n <rect width=\"20\" height=\"20\" rx=\"4\" fill=\"#722ED1\" />\n <path d=\"M8.66667 15V13.3333H11.3333V15H8.66667ZM6 10.8333V9.16667H14V10.8333H6ZM4 6.66667V5H16V6.66667H4Z\"\n fill=\"white\" />\n </svg>\n <span><strong>{ruleCount}</strong> rules applied</span>\n </div>\n\n {/* button to clear filter */}\n <a onClick={clearCustomFilter}\n style={{ cursor: \"pointer\" }}\n >\n <i className=\"pi pi-times ml-1\">\n </i></a>\n </div>\n </li>\n )\n };\n\n\n //saved filter related code start\n\n const applySavedFilter = (savedfilter: any) => {\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Store in local storage with the URL as the key\n // push the savedQuery=1 in url \n if (savedfilter?.id) {\n router.push(`?savedQuery=${savedfilter.id}`);\n setShowOverlay(false);\n } else {\n console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);\n }\n }\n\n const removeSavedFilter = () => {\n const params = new URLSearchParams(searchParams.toString());\n setCurrentSavedFilterData(null);\n setCurrentSavedFilterQuery(null)\n if (params.has(\"savedQuery\")) {\n params.delete(\"savedQuery\");\n const newUrl = params.toString()\n ? `${pathname}?${params.toString()}`\n : pathname;\n router.push(newUrl);\n }\n }\n\n const SavedFiltersChip = () => {\n\n return (\n <li>\n <div className=\"custom-filter-chip-type\">\n <div className=\"flex align-items-center gap-2 text-base\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n onClick={() => {\n const fn = async () => {\n if (currentSavedFilterQuery) {\n const rules: FilterRule = transformFiltersToRules(currentSavedFilterQuery ? currentSavedFilterQuery : null);\n const hydratedRules = await hydrateRelationRules(\n [rules],\n viewData\n );\n setCurrentSavedFilterRules(hydratedRules ? hydratedRules : initialState);\n setShowSavedFilterComponent(true)\n }\n }\n fn()\n }\n }\n >\n <rect width=\"20\" height=\"20\" rx=\"4\" fill=\"#722ED1\" />\n <path d=\"M8.66667 15V13.3333H11.3333V15H8.66667ZM6 10.8333V9.16667H14V10.8333H6ZM4 6.66667V5H16V6.66667H4Z\"\n fill=\"white\" />\n </svg>\n <span><strong>{currentSavedFilterData?.name}</strong></span>\n </div>\n\n {/* button to clear filter */}\n <a onClick={removeSavedFilter}\n style={{ cursor: \"pointer\" }}\n >\n <i className=\"pi pi-times ml-1\">\n </i></a>\n </div>\n </li>\n )\n };\n\n const removeGrouping = () => {\n setGroupingRules(defaultGroupingRules);\n setAggregationRules(defaultAggregationRules);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n }\n\n const GroupingChip = () => {\n return (\n <li className=\"solid-global-search-chip\">\n <div className=\"flex align-items-center gap-2\">\n <div className=\"flex align-items-center gap-2\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n\n onClick={() => setShowGroupFilterElement(true)}\n >\n <rect width=\"20\" height=\"20\" rx=\"4\" fill=\"#722ED1\" />\n <path d=\"M8.66667 15V13.3333H11.3333V15H8.66667ZM6 10.8333V9.16667H14V10.8333H6ZM4 6.66667V5H16V6.66667H4Z\"\n fill=\"white\" />\n </svg>\n <span><strong>{groupingRules.length}</strong> Grouping rules applied</span>\n </div>\n\n {/* button to clear filter */}\n <a onClick={removeGrouping}\n style={{ cursor: \"pointer\" }}\n >\n <i className=\"pi pi-times ml-1\">\n </i></a>\n </div>\n </li>\n )\n };\n\n\n\n\n //saved filter related code end\n\n\n // search related code start\n\n const handleRemoveChipGroup = (columnName: string) => {\n const updatedChips = searchChips.filter(chip => chip.columnName !== columnName);\n setSearchChips(updatedChips);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n\n };\n\n const groupedSearchChips = searchChips.reduce((acc: Record<string, string[]>, chip) => {\n const key = chip.columnName;\n if (!key) return acc; // skip if undefined\n\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(chip.value);\n return acc;\n }, {});\n\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const hasInput = !!inputValue?.trim();\n const searchCount = hasInput ? searchableFields.length : 0;\n const predefinedCount = hasInput ? (predefinedSearches?.length || 0) : 0;\n const savedFiltersCount = savedFilters?.length || 0;\n const totalItems = searchCount + predefinedCount + savedFiltersCount;\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n if (showOverlay) {\n setFocusedIndex(prev => (prev < totalItems - 1 ? prev + 1 : prev));\n }\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n if (showOverlay) {\n setFocusedIndex(prev => (prev > -1 ? prev - 1 : prev));\n }\n } else if (e.key === \"Enter\") {\n if (hasInput || focusedIndex >= 0) e.preventDefault();\n \n const predefinedSearchOffset = searchCount;\n const savedFilterOffset = predefinedSearchOffset + predefinedCount;\n\n if (showOverlay && focusedIndex >= 0 && focusedIndex < predefinedSearchOffset) {\n const value = searchableFields[focusedIndex];\n const currentValue = inputValue?.trim() || \"\";\n const values = currentValue.split(\",\").map((v) => v.trim()).filter((v) => v !== \"\");\n const chipsToAdd = values.map((v: any) => ({\n columnName: value.fieldName,\n value: v,\n columnDisplayName: value.displayName,\n searchField: value.searchField,\n matchMode: value.matchMode\n }));\n setSearchChips((prev) => [...prev, ...chipsToAdd]);\n setInputValue(\"\");\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1);\n setShowOverlay(false);\n setFocusedIndex(-1);\n } else if (showOverlay && focusedIndex >= predefinedSearchOffset && focusedIndex < savedFilterOffset) {\n const predefinedSearch = predefinedSearches[focusedIndex - predefinedSearchOffset];\n handlePredefinedSearch(predefinedSearch);\n setFocusedIndex(-1);\n } else if (showOverlay && focusedIndex >= savedFilterOffset && focusedIndex < totalItems) {\n const savedFilterIdx = focusedIndex - savedFilterOffset;\n const savedFilter = savedFilters[savedFilterIdx];\n if (savedFilter) applySavedFilter(savedFilter);\n setFocusedIndex(-1);\n } else if (hasInput) {\n handleAddChip();\n setShowOverlay(false);\n setFocusedIndex(-1);\n }\n } else if (e.key === \"Backspace\" && inputValue === \"\") {\n\n if (searchChips.length > 0) {\n setSearchChips((prev) => prev.slice(0, -1));\n } else if (customFilter) {\n setCustomFilter(null)\n setFilterRules(initialState);\n } else if (predefinedSearchChip) {\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n } else if (activeSavedFilter) {\n removeSavedFilter()\n } else if (activeSavedFilter) {\n clearCustomFilter();\n }\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n }\n };\n\n const SearchChip = () => (\n <>\n {Object.entries(groupedSearchChips).map(([column, values]) => {\n const fieldMeta = searchableFields.find(f => f.fieldName === column);\n const columnDisplayName = fieldMeta?.displayName || column;\n\n return (\n <li key={column}>\n <div className=\"search-filter-chip-type\">\n <div>{columnDisplayName}</div>\n {values.map((value, index) => (\n <React.Fragment>\n {/* displayname */}\n <span key={index} className=\"custom-chip-value\">{value}\n </span>\n {index < values.length - 1 &&\n <span className=\"custom-chip-or\">or</span>\n }\n </React.Fragment>\n ))}\n {/* button to clear filter */}\n <i className=\"pi pi-times ml-1\"\n style={{ cursor: \"pointer\" }}\n onClick={() => handleRemoveChipGroup(column)}\n >\n </i>\n </div>\n </li>\n )\n })}\n </>\n );\n\n // search related code end\n\n\n // predefinedfilter related code start\n\n const handlePredefinedSearch = (predefinedSearch: any) => {\n if (!inputValue?.trim()) return;\n\n if (!predefinedSearch?.filters) {\n console.error('Invalid predefined search: missing filters', predefinedSearch);\n return;\n }\n\n try {\n // Replace {{ search }} placeholders with actual search value\n const processedFilter = replacePlaceholders(predefinedSearch.filters, inputValue.trim());\n\n // Clear all existing filters and searches\n // setSearchChips([]);\n // setSearchFilter(null);\n // setFilterRules(initialState);\n // setCustomFilter(null)\n // removeSavedFilter();\n // Set the predefined search chip\n setPredefinedSearchChip({\n name: predefinedSearch.name,\n value: inputValue.trim()\n });\n\n setPredefinedSearchBaseFilter(processedFilter);\n\n // Apply the predefined search filter as custom filter\n // setCustomFilter(processedFilter);\n\n // Apply the filter\n // handleApplyCustomFilter(finalFilter);\n\n // Clear input and close overlay\n setInputValue(\"\");\n setShowOverlay(false);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n } catch (error) {\n console.error('Error applying predefined search:', error);\n // Optionally show user-friendly error message\n }\n };\n\n\n const removePredefinedSearchChip = () => {\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null)\n setCustomFilter(null);\n // handleApplyCustomFilter(finalFilter);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n };\n\n const PredefinedSearchChip = () => (\n <li>\n <div className=\"search-filter-chip-type\">\n <div className=\"flex align-items-center gap-2\">\n <strong>{predefinedSearchChip?.name}:</strong>\n <span className=\"custom-chip-value\">{predefinedSearchChip?.value}</span>\n </div>\n {/* button to clear filter */}\n <i className=\"pi pi-times ml-1\"\n style={{ cursor: \"pointer\" }}\n onClick={removePredefinedSearchChip}\n >\n </i>\n </div>\n </li>\n );\n\n // predefinedfilter related code end\n\n return (\n <>\n <div className=\"flex justify-content-center solid-custom-filter-wrapper relative\">\n <div className=\"solid-global-search-element\">\n <ul className=\"\">\n {currentSavedFilterData && <SavedFiltersChip />}\n {predefinedSearchChip && <PredefinedSearchChip />}\n {customFilter && <CustomChip />}\n {groupingRules.length > 0 && groupingRules.some(r => r.fieldName !== null) && <GroupingChip />}\n <SearchChip />\n <li ref={chipsRef}>\n <div className=\"relative solid-global-search-element-wrapper\">\n <InputText\n value={inputValue || \"\"}\n placeholder=\"Search.\"\n onChange={(e) => {\n setInputValue(e.target.value);\n setShowOverlay(true);\n setFocusedIndex(-1);\n }}\n onFocus={() => {\n if (inputValue?.trim()) setShowOverlay(true);\n }}\n onBlur={() => {\n // Delay so you can click buttons inside overlay\n setTimeout(() => setShowOverlay(false), 150);\n }}\n\n onKeyDown={handleKeyDown}\n />\n <Button\n icon=\"pi pi-search\"\n style={{ fontSize: 10 }}\n severity=\"secondary\"\n outlined size=\"small\"\n onClick={() => setShowOverlay(true)}\n className=\"custom-filter-button\"\n />\n </div>\n </li>\n </ul>\n </div>\n\n {showOverlay && (\n <div ref={overlayRef} className=\"absolute w-full z-5 shadow-2 solid-search-overlay-pannel\" style={{ top: 35, background: \"var(--surface-0)\", border: '1px solid var(--surface-300) !important', borderRadius: '6px' }}>\n {/* <div ref={overlayRef} className=\"absolute w-full z-5 surface-0 border-round border-1 border-300 shadow-2 solid-search-overlay-pannel\" style={{ top: 35 }}> */}\n {inputValue ? (\n <>\n <div className=\"custom-filter-search-options px-3 py-2 flex flex-column\">\n <h6 className=\"my-1 font-bold\">Search By Fields</h6>\n {\n searchableFields.map((value: any, index: any) => {\n // console.log(\"value\", value);\n\n return (\n <Button\n key={index}\n className={`p-2 flex gap-1 text-color ${focusedIndex === index ? 'surface-hover' : ''}`}\n // onClick={() => handleAddChip(value)}\n onMouseDown={(e) => {\n // Prevent focus loss from input\n e.preventDefault();\n const currentValue = inputValue?.trim();\n if (currentValue) {\n const values = currentValue.split(\",\").map((v) => v.trim()).filter((v) => v !== \"\");\n const chipsToAdd = values.map(v => ({\n columnName: value.fieldName,\n value: v,\n columnDisplayName: value.displayName,\n searchField: value.searchField,\n matchMode: value.matchMode\n }));\n setSearchChips((prev) => [...prev, ...chipsToAdd]);\n setInputValue(\"\");\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n setShowOverlay(false);\n }\n }}\n text\n severity=\"secondary\"\n size=\"small\"\n >\n Search <strong>{value.displayName}</strong> for: <span className=\"font-bold text-color\">{inputValue}</span>\n </Button>\n )\n })\n }\n </div>\n {predefinedSearches && predefinedSearches.length > 0 && (\n <>\n <Divider className=\"m-0\" />\n <div className=\"custom-filter-search-options px-3 py-2 flex flex-column\">\n <h6 className=\"my-1 font-bold\">Predefined Searches</h6>\n {predefinedSearches.map((predefinedSearch: any, index: number) => (\n <Button\n key={index}\n className={`p-2 flex flex-column align-items-start gap-1 text-color ${focusedIndex === (index + searchableFields.length) ? 'surface-hover' : ''}`}\n onMouseDown={(e) => {\n e.preventDefault();\n handlePredefinedSearch(predefinedSearch);\n }}\n text\n severity=\"secondary\"\n size=\"small\"\n >\n <div className=\"flex gap-1 align-items-center\">\n <strong>{predefinedSearch.name}:</strong>\n <span className=\"font-bold text-color\">{inputValue}</span>\n </div>\n <div className=\"text-xs\">{predefinedSearch.description}</div>\n </Button>\n ))}\n </div>\n </>\n )}\n </>\n ) :\n <>\n <div className=\"p-3 text-base\">Search Here...</div>\n <Divider className=\"m-0\" />\n </>\n }\n {savedFilters.length > 0 &&\n <>\n <div className=\"p-3\">\n <p className=\"font-medium\">Saved Filters</p>\n <div className=\"flex flex-column gap-2\">\n {savedFilters.map((savedfilter: any, idx: number) => {\n const hasInput = !!inputValue?.trim();\n const combinedOffset = (hasInput ? searchableFields.length : 0) + (hasInput ? (predefinedSearches?.length || 0) : 0);\n return (\n <SavedFilterList key={idx} savedfilter={savedfilter} activeSavedFilter={activeSavedFilter} applySavedFilter={applySavedFilter} openSavedCustomFilter={openSavedCustomFilter} setSavedFilterTobeDeleted={setSavedFilterTobeDeleted} setIsDeleteSQDialogVisible={setIsDeleteSQDialogVisible} isFocused={focusedIndex === combinedOffset + idx}></SavedFilterList>\n )\n })}\n </div>\n </div>\n <Divider className=\"m-0\" />\n </>\n }\n <div className=\"px-2 py-1 flex justify-content-between\">\n <Button text size=\"small\" label=\"Custom Filter\" iconPos=\"left\" icon='pi pi-plus' onClick={() => setShowGlobalSearchElement(true)} className=\"font-bold\" />\n {viewType === \"tree\" &&\n <Button text size=\"small\" label=\"Grouping\" iconPos=\"left\" icon='pi pi-plus' onClick={() => setShowGroupFilterElement(true)} className=\"font-bold\" />\n }\n </div>\n </div>\n )\n }\n <Dialog header={false} className=\"solid-global-search-filter\" showHeader={false} visible={showGlobalSearchElement} style={{ width: '65vw' }} breakpoints={{ '1024px': '75vw', '991px': '90vw', '767px': '94w', '250px': '96vw' }} onHide={() => { if (!showGlobalSearchElement) return; setShowGlobalSearchElement(false); }}>\n <div className=\"flex align-items-center justify-content-between px-3\">\n <h5 className=\"solid-custom-title m-0\">Add Custom Filter</h5>\n <Button icon=\"pi pi-times\" rounded text aria-label=\"Cancel\" type=\"reset\" size=\"small\" onClick={() => setShowGlobalSearchElement(false)} />\n </div>\n <Divider className=\"m-0\" />\n <div className=\"p-2 lg:p-2\">\n {fields.length > 0 &&\n <FilterComponent viewData={viewData} fields={fields} filterRules={filterRules} setFilterRules={setFilterRules} transformFilterRules={transformCustomFilterRules} closeDialog={() => setShowGlobalSearchElement(false)}></FilterComponent>\n }\n </div>\n </Dialog>\n <Dialog header={false} className=\"solid-global-search-filter\" showHeader={false} visible={showGroupFilterElement} style={{ width: '20vw' }} breakpoints={{ '1024px': '75vw', '991px': '90vw', '767px': '94w', '250px': '96vw' }} onHide={() => { if (!showGroupFilterElement) return; setShowGroupFilterElement(false); }}>\n <div className=\"flex align-items-center justify-content-between px-3\">\n <h5 className=\"solid-custom-title m-0\"></h5>\n <Button icon=\"pi pi-times\" rounded text aria-label=\"Cancel\" type=\"reset\" size=\"small\" onClick={() => setShowGroupFilterElement(false)} />\n </div>\n <Divider className=\"m-0\" />\n <div className=\"p-2 lg:p-2\">\n {groupableFields.length > 0 &&\n <GroupingComponent\n viewData={viewData}\n fields={groupableFields}\n groupingRules={groupingRules}\n setGroupingRules={setGroupingRules}\n aggregationRules={aggregationRules}\n setAggregationRules={setAggregationRules}\n applyGrouping={applyGrouping}\n closeDialog={() => setShowGroupFilterElement(false)}\n ></GroupingComponent>\n }\n </div>\n </Dialog >\n <Dialog header={false} className=\"solid-global-search-filter\" showHeader={false} visible={showSavedFilterComponent} style={{ width: '65vw' }} breakpoints={{ '1024px': '75vw', '991px': '90vw', '767px': '94w', '250px': '96vw' }} onHide={() => { if (!showSavedFilterComponent) return; setShowSavedFilterComponent(false); }}>\n <div className=\"flex align-items-center justify-content-between px-3\">\n <h5 className=\"solid-custom-title m-0\">Saved Filter</h5>\n <Button icon=\"pi pi-times\" rounded text aria-label=\"Cancel\" type=\"reset\" size=\"small\" onClick={() => setShowSavedFilterComponent(false)} />\n </div>\n <Divider className=\"m-0\" />\n <div className=\"p-2 lg:p-2\">\n {fields.length > 0 &&\n <FilterComponent viewData={viewData} fields={fields} filterRules={currentSavedFilterRules} setFilterRules={setCurrentSavedFilterRules} transformFilterRules={transformSavedFilterRules} closeDialog={() => setShowSavedFilterComponent(false)}></FilterComponent>\n }\n </div>\n </Dialog>\n <Dialog header=\"Save Custom Filter\" className=\"solid-custom-filter-dialog\" visible={showSaveFilterPopup} style={{ width: 500 }} onHide={() => { if (!showSaveFilterPopup) return; setShowSaveFilterPopup(false); }}>\n <SolidSaveCustomFilterForm currentSavedFilterData={currentSavedFilterData} handleSaveFilter={handleSaveFilter} closeDialog={setShowSaveFilterPopup}></SolidSaveCustomFilterForm>\n </Dialog>\n\n <Dialog\n visible={isDeleteSQDialogVisible}\n header=\"Confirm Delete\"\n modal\n className=\"solid-confirm-dialog\"\n footer={() => (\n <div className=\"flex justify-content-center\">\n <Button label=\"Yes\" icon=\"pi pi-check\" className='small-button' severity=\"danger\" autoFocus onClick={deleteSavedFilter} />\n <Button label=\"No\" icon=\"pi pi-times\" className='small-button' onClick={() => setIsDeleteSQDialogVisible(false)} />\n </div>\n )}\n onHide={() => setIsDeleteSQDialogVisible(false)}\n >\n <p>Are you sure you want to delete the {currentSavedFilterData?.name} saved query?</p>\n </Dialog>\n </div >\n {/* <div>\n <Button\n icon=\"pi pi-save\"\n style={{ fontSize: 10 }}\n severity=\"secondary\"\n outlined size=\"small\"\n onClick={() => {\n setShowSaveFilterPopup(true)\n }}\n />\n </div> */}\n </>\n )\n});\n"]}
1
+ {"version":3,"file":"SolidGlobalSearchElement.js","sourceRoot":"","sources":["../../../../src/components/core/common/SolidGlobalSearchElement.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrG,OAAO,eAAe,EAAE,EAAE,cAAc,EAAc,cAAc,EAAE,MAAM,iDAAiD,CAAC;AAC9H,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,iBAAwE,MAAM,qBAAqB,CAAC;AAC3G,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EACH,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACnB,MAAM,8BAA8B,CAAC;AAGtC,IAAM,YAAY,GAAG,UAAC,GAAW,EAAE,GAAW;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7D,CAAC,CAAA;AA0BD,IAAM,aAAa,GAAG,UAAC,KAAiB;IAAjB,sBAAA,EAAA,UAAiB;IACpC,IAAM,MAAM,GAAU,EAAE,CAAC;IAEzB,KAAmB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;QAArB,IAAM,IAAI,cAAA;QACX,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,OAAO,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,EAAE;YAC/B,MAAM,CAAC,IAAI,OAAX,MAAM,EAAS,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;SAChD;KACJ;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAGF,IAAM,uBAAuB,GAAG,UAAC,MAAW,EAAE,UAAgC;IAAhC,2BAAA,EAAA,iBAAgC;IAC1E,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3E,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;KACjF;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KACjE;IACD,IAAM,SAAS,GAAG,SAAS,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;QACf,OAAO;YACH,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,cAAc,CAAC,UAAU;YAC/B,aAAa,EAAE,cAAc,CAAC,EAAE;YAChC,UAAU,YAAA;YACV,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC;iBAClB,MAAM,CAAC,UAAC,GAAQ;gBACb,+DAA+D;gBAC/D,IAAI,GAAG,IAAI,IAAI;oBAAE,OAAO,KAAK,CAAC;gBAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,OAAO,KAAK,CAAC;gBAC/D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAC3E,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC;iBACD,GAAG,CAAC,UAAC,SAAc,IAAK,OAAA,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,EAA7C,CAA6C,CAAC;SAC9E,CAAC;KACL;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;QAChB,OAAO;YACH,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,cAAc,CAAC,UAAU;YAC/B,aAAa,EAAE,cAAc,CAAC,GAAG;YACjC,UAAU,YAAA;YACV,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;iBACnB,MAAM,CAAC,UAAC,GAAQ;gBACb,+DAA+D;gBAC/D,IAAI,GAAG,IAAI,IAAI;oBAAE,OAAO,KAAK,CAAC;gBAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,OAAO,KAAK,CAAC;gBAC/D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAC3E,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC;iBACD,GAAG,CAAC,UAAC,SAAc,IAAK,OAAA,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,EAA7C,CAA6C,CAAC;SAC9E,CAAC;KACL;IAED,+BAA+B;IAC/B,KAAK,IAAM,SAAS,IAAI,MAAM,EAAE;QAC5B,IAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YAC7C,MAAM,IAAI,KAAK,CAAC,uCAAgC,SAAS,MAAG,CAAC,CAAC;SACjE;QAED,yCAAyC;QACzC,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,EAAE,KAAI,OAAO,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,EAAE,CAAA,KAAK,QAAQ,EAAE;YACpD,KAAK,IAAM,SAAS,IAAI,SAAS,CAAC,EAAE,EAAE;gBAClC,IAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBACzC,IAAM,cAAc,GAAQ,SAAS,CAAA;gBACrC,OAAO;oBACH,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,SAAS,WAAA;oBACT,SAAS,EAAE,cAAc;oBACzB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACtD,UAAU,YAAA;oBACV,QAAQ,EAAE,EAAE;iBACf,CAAC;aACL;SACJ;QAED,oCAAoC;QACpC,KAAK,IAAM,SAAS,IAAI,SAAS,EAAE;YAC/B,IAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YACtC,IAAM,cAAc,GAAQ,SAAS,CAAA;YACrC,OAAO;gBACH,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,cAAc,CAAC,IAAI;gBACzB,SAAS,WAAA;gBACT,SAAS,EAAE,cAAc;gBACzB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACtD,UAAU,YAAA;gBACV,QAAQ,EAAE,EAAE;aACf,CAAC;SACL;KAGJ;IACD,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;AAC7D,CAAC,CAAA;AAKD,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,IAAM,UAAU,GAAG,cAAM,OAAA,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAA7C,CAA6C,CAAC;AAGvE,IAAM,uBAAuB,GAAG,UAAC,KAAU,EAAE,QAAa;IAEtD,8CAA8C;IAC9C,IAAM,WAAW,GAAG,UAAC,IAAS;;;QAC1B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YAEjD,uCAAuC;YACvC,IAAI,MAAM,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAC,CAAC,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC;YACnH,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE;gBACzJ,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;aACtB;YAGD,IAAM,SAAS,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,mBAAmB,0CAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YACxE,IAAM,YAAY,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,UAAU,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,MAAK,cAAc,CAAC;YAGlG,IAAI,eAAe,SAAA,CAAC;YACpB,IAAI,YAAY,EAAE;gBACd,qEAAqE;gBACrE,eAAe;oBACX,GAAC,IAAI,CAAC,SAAS,IAAG;wBACd,EAAE;4BACE,GAAC,IAAI,CAAC,SAAS,IAAG,MAAM,CAAC,gBAAgB;;+BAC5C;qBACJ;uBACJ,CAAC;aACL;iBAAM;gBACH,sBAAsB;gBACtB,eAAe;oBACX,GAAC,IAAI,CAAC,SAAS;wBACX,GAAC,IAAI,CAAC,SAAS,IAAG,MAAM,CAAI,+DAA+D;;2BAC9F;uBACJ,CAAC;aACL;YAED,IAAI,eAAe,SAAA,CAAC;YACpB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAU,IAAK,OAAA,gBAAgB,CAAC,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC,MAAM,CAAC,UAAC,KAAU,IAAK,OAAA,KAAK,IAAI,IAAI,EAAb,CAAa,CAAC,CAAC;gBAAA,CAAC;aACvH;YACD,IAAI,eAAe,EAAE;gBACjB,6BAAY,eAAe,KAAE,eAAe,iBAAA,IAAE;aACjD;YACD,oBAAY,eAAe,EAAE;SAEhC;IAEL,CAAC,CAAC;IAEF,yCAAyC;IACzC,IAAM,gBAAgB,GAAG,UAAC,SAAc;;QACpC,IAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACnE,IAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAU;YAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;gBACvB,mBAAmB;gBACnB,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;aAC7B;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;gBACpC,qCAAqC;gBACrC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAClC;QACL,CAAC,CAAC,CAAC,MAAM,CAAC,UAAC,KAAU,IAAK,OAAA,KAAK,IAAI,IAAI,EAAb,CAAa,CAAC,CAAC;QACzC,oCAAoC;QACpC,+BAA+B;QAC/B,mBAAmB;QACnB,IAAI;QAEJ,qEAAqE;QACrE,+BAA+B;QAC/B,0BAA0B;QAC1B,IAAI;QAEJ;YACI,GAAC,QAAQ,IAAG,QAAQ;eACtB;IACN,CAAC,CAAC;IAGF,uCAAuC;IACvC,IAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE7C,IAAI,CAAC,YAAY,EAAE;QACf,OAAO,EAAE,CAAC;KACb;IAED,SAAS,mBAAmB,CAAC,OAAY;QACrC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC;QAE5D,IAAM,YAAY,GAAG,UAAC,GAAQ;YAC1B,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAgB,UAAG,EAAH,WAAG,EAAH,iBAAG,EAAH,IAAG,EAAE;gBAAhB,IAAI,GAAG,YAAA;gBACR,IAAI,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE;oBAC5B,IAAI,SAAS,GAAQ,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,6CAA6C;oBACrG,OAAO,GAAG,CAAC,eAAe,CAAC;oBAC3B,MAAM,CAAC,IAAI,OAAX,MAAM,iBAAM,GAAG,GAAK,SAAS,UAAE;iBAClC;qBAAM;oBACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACpB;gBAED,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;oBACjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;wBACzB,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;qBACrC;iBACJ;aACJ;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAA;QAED,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;YACrB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7C;SACJ;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAGD,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAA;AAE5C,CAAC,CAAA;AASD,6CAA6C;AAC7C,SAAS,oBAAoB,CAAC,IAAY,EAAE,WAAmB,EAAE,KAAU;;IACvE,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAM,IAAI,aAAK,GAAC,WAAW,IAAG,KAAK,KAAE,CAAC;IACtC,OAAO,IAAI,CAAC,WAAW,CAAC,UAAC,GAAG,EAAE,GAAG;;QAAK,OAAA,UAAG,GAAC,GAAG,IAAG,GAAG,KAAG;IAAhB,CAAgB,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,IAAM,uBAAuB,GAAG,UAAC,KAAU;IACvC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExC,IAAM,OAAO,GAAgC,EAAE,CAAC;IAEhD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,EAAiD;;;YAA/C,SAAS,eAAA,EAAE,KAAK,WAAA,EAAE,WAAW,iBAAA,EAAE,SAAS,eAAA;QAC1D,IAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE1E,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACrB,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,IAAI,YAAY,EAAE,CAAC;SAC7G;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,MAAA,OAAO,CAAC,SAAS,CAAC,gDAAE,MAAM,EAAC,IAAI,WAAI,GAAG,CAAC,CAAC;SAC3C;aAAM;YACH,MAAA,OAAO,CAAC,SAAS,CAAC,0CAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACxC;IACL,CAAC,CAAC,CAAC;IAEH,WAAW;IACX,oEAAoE;IACpE,yBAAyB;IACzB,mEAAmE;IACnE,YAAY;IACZ,UAAU;IACV,KAAK;IAEL,IAAM,UAAU,GAAU,EAAE,CAAC;IAE7B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,EAAkB;;YAAjB,SAAS,QAAA,EAAE,KAAK,QAAA;QAE9C,IAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE7E,IAAI,QAAQ,EAAE;YAEV,8DAA8D;YAC9D,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9F;iBAAM;gBACH,UAAU,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,EAA3D,CAA2D,CAAC;iBAC1F,CAAC,CAAC;aACN;SACJ;aAAM;YAEH,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,UAAU,CAAC,IAAI;oBACX,GAAC,SAAS,IAAG;wBACT,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;qBAC9B;wBACH,CAAC;aACN;iBAAM;gBACH,UAAU,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC;;wBAAK,OAAA;4BACzB,GAAC,SAAS,IAAG,EAAE,UAAU,EAAE,CAAC,EAAE;+BAChC;oBAF2B,CAE3B,CAAC;iBACN,CAAC,CAAC;aACN;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,IAAI,EAAE,UAAU;KACnB,CAAC;AACN,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAC,iBAAsB,EAAE,SAAc,EAAE,qBAA6B,EAAE,aAAqB;IACpI,IAAM,OAAO,GAAQ,EAAE,CAAC;IAExB,4BAA4B;IAC5B,IAAI,iBAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAChE,OAAO,CAAC,qBAAqB,CAAC,GAAG,iBAAiB,CAAC;KACtD;IACD,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAChD,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;KACtC;IAED,qCAAqC;IACrC,OAAO,OAAO,CAAC;AACnB,CAAC,CAAA;AAGD,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,YAAiB,EAAE,YAAiB,EAAE,WAAgB,EAAE,gBAAsB,EAAE,aAA8B,EAAE,gBAAoC;IACpL,IAAM,OAAO,GAAQ,EAAE,CAAC;IAExB,4BAA4B;IAC5B,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACtD,OAAO,CAAC,yBAAyB,CAAC,GAAG,YAAY,CAAC;KACrD;IACD,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACtD,OAAO,CAAC,kBAAkB,CAAC,GAAG,YAAY,CAAC;KAC9C;IACD,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACpD,OAAO,CAAC,wBAAwB,CAAC,GAAG,WAAW,CAAC;KACnD;IACD,IAAI,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9D,OAAO,CAAC,6BAA6B,CAAC,GAAG,gBAAgB,CAAC;KAC7D;IACD,IAAI,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACxD,OAAO,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC;KAC7C;IACD,IAAI,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9D,OAAO,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC;KACnD;IACD,qCAAqC;IACrC,OAAO,OAAO,CAAC;AACnB,CAAC,CAAA;AAED,IAAM,eAAe,GAAG,UAAC,EAAgK;QAA9J,WAAW,iBAAA,EAAE,iBAAiB,uBAAA,EAAE,gBAAgB,sBAAA,EAAE,qBAAqB,2BAAA,EAAE,yBAAyB,+BAAA,EAAE,0BAA0B,gCAAA,EAAE,SAAS,eAAA,EAAE,YAAY,kBAAA;IAC9K,IAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC;IAE7D,OAAO,CACH,eAAK,SAAS,EAAC,yBAAyB,EAAC,YAAY,EAAE,YAAY,aAC/D,cAAK,SAAS,EAAC,8BAA8B,YACzC,KAAC,WAAW,IACR,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,yCAAkC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,cAAI,SAAS,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,CAAE,EACnI,OAAO,EAAE,cAAM,OAAA,gBAAgB,CAAC,WAAW,CAAC,EAA7B,CAA6B,EAC5C,KAAK,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,YAE9B,WAAW,CAAC,IAAI,GACP,GACZ,EACN,cAAK,SAAS,EAAC,4BAA4B,YACtC,WAAW,CAAC,QAAQ,KAAK,IAAI;oBAC1B,8BACI,KAAC,WAAW,IACR,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,6BAA6B,EACvC,OAAO,EAAE,cAAM,OAAA,qBAAqB,CAAC,WAAW,CAAC,EAAlC,CAAkC,YAEjD,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,EACd,KAAC,WAAW,IACR,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,uCAAuC,EACjD,OAAO,EAAE;oCACL,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC;wCACrC,0BAA0B,CAAC,IAAI,CAAC,CAAC;gCACzC,CAAC,YAED,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACf,GAGL,IACJ,CACT,CAAA;AACL,CAAC,CAAA;AAED,IAAM,mBAAmB,GAAG,UAAC,GAAQ,EAAE,WAAmB;IACtD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QACzB,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;KACtD;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,EAAtC,CAAsC,CAAC,CAAC;KAClE;IACD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAChC,IAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,KAAK,IAAM,GAAG,IAAI,GAAG,EAAE;YACnB,MAAM,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;SAC5D;QACD,OAAO,MAAM,CAAC;KACjB;IACD,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAGF,IAAM,YAAY,GAAG,UAAC,IAAS;IAC3B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,mBAAmB;IACnB,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KAC1C;IAED,kBAAkB;IAClB,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KACzC;IAED,iBAAiB;IACjB,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAEhC,gBAAgB;IAChB,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,EAAE;QACzB,OAAO,CAAC;gBACJ,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,WAAW,CAAC,UAAU;gBAC7B,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjE,WAAW,EAAE,KAAK;gBAClB,SAAS,EAAE,YAAY;aAC1B,CAAC,CAAC;KACN;IACD,iCAAiC;SAC5B,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;QACtC,IAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAM,iBAAiB,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAEnD,IAAM,WAAW,GAAG,iBAAiB;YACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAjB,CAAiB,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC;QAEX,IAAI,WAAW,EAAE;YACb,OAAO,CAAC;oBACJ,UAAU,EAAE,KAAK;oBACjB,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC;oBACrC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjE,WAAW,EAAE,UAAG,KAAK,cAAI,WAAW,CAAE;oBACtC,SAAS,EAAE,WAAW;iBACzB,CAAC,CAAC;SACN;KACJ;IAED,OAAO,EAAE,CAAC;AACd,CAAC,CAAC;AAQF,MAAM,CAAC,IAAM,wBAAwB,GAAG,UAAU,CAAC,UAAC,EAAmH,EAAE,GAAG;;QAAtH,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAE,uBAAuB,6BAAA,EAAE,mBAAmB,yBAAA,EAAE,sBAAsB,4BAAA,EAAE,gBAAgB,sBAAA;IAa5J,IAAM,YAAY,GAAiB;QAC/B;YACI,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,cAAc,CAAC,UAAU;YAC/B,aAAa,EAAE,cAAc,CAAC,EAAE;YAChC,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE;gBACN;oBACI,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;oBACrC,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;oBACX,UAAU,EAAE,CAAC;oBACb,QAAQ,EAAE,EAAE;iBACf;gBACD;oBACI,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;oBACrC,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;oBACX,UAAU,EAAE,CAAC;oBACb,QAAQ,EAAE,EAAE;iBACf;aACJ;SACJ;KACJ,CAAC;IAEF,IAAM,uBAAuB,GAAsB;QAC/C;YACI,EAAE,EAAE,CAAC;YACL,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;SACf;KACJ,CAAC;IAEF,IAAM,oBAAoB,GAAmB;QACzC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;KACjD,CAAC;IAEI,IAAA,KAAkC,QAAQ,CAAC,YAAY,CAAC,EAAvD,YAAY,QAAA,EAAE,eAAe,QAA0B,CAAC;IAC/D,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,qBAAqB,GACvB,CAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,WAAW;SACtC,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,WAAW,CAAA;QAC7C,SAAS,CAAC;IAGd,IAAM,YAAY,GAAG,eAAe,EAAE,CAAA,CAAC,wCAAwC;IAC/E,IAAM,iBAAiB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAE1D,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,IAAM,QAAQ,GAAG,MAAM,CAA8B,IAAI,CAAC,CAAC;IAE3D,2DAA2D;IAC3D,kFAAkF;IAC5E,IAAA,KAAgC,QAAQ,CAAe,YAAY,CAAC,EAAnE,WAAW,QAAA,EAAE,cAAc,QAAwC,CAAC;IACrE,IAAA,KAAkC,QAAQ,CAAa,IAAI,CAAC,EAA3D,YAAY,QAAA,EAAE,eAAe,QAA8B,CAAC;IAE7D,IAAA,KAAsB,QAAQ,CAAQ,EAAE,CAAC,EAAxC,MAAM,QAAA,EAAE,SAAS,QAAuB,CAAC;IAC1C,IAAA,KAA0C,QAAQ,CAAQ,EAAE,CAAC,EAA5D,gBAAgB,QAAA,EAAE,mBAAmB,QAAuB,CAAC;IAC9D,IAAA,KAAwC,QAAQ,CAAmB,EAAE,CAAC,EAArE,eAAe,QAAA,EAAE,kBAAkB,QAAkC,CAAC;IAEvE,IAAA,KAAoC,QAAQ,CAAiB,oBAAoB,CAAC,EAAjF,aAAa,QAAA,EAAE,gBAAgB,QAAkD,CAAC;IACnF,IAAA,KAA0C,QAAQ,CAAoB,uBAAuB,CAAC,EAA7F,gBAAgB,QAAA,EAAE,mBAAmB,QAAwD,CAAC;IAErG,gDAAgD;IAC1C,IAAA,KAA8C,QAAQ,CAAqB,EAAE,CAAC,EAA7E,kBAAkB,QAAA,EAAE,qBAAqB,QAAoC,CAAC;IAErF,gDAAgD;IAC1C,IAAA,KAAwD,QAAQ,CAAU,KAAK,CAAC,EAA/E,uBAAuB,QAAA,EAAE,0BAA0B,QAA4B,CAAC;IAEvF,+CAA+C;IACzC,IAAA,KAAsD,QAAQ,CAAU,KAAK,CAAC,EAA7E,sBAAsB,QAAA,EAAE,yBAAyB,QAA4B,CAAC;IAGrF,yDAAyD;IACzD,uEAAuE;IACjE,IAAA,KAAgC,QAAQ,CAA2C,EAAE,CAAC,EAArF,WAAW,QAAA,EAAE,cAAc,QAA0D,CAAC;IACvF,IAAA,KAAkC,QAAQ,CAAa,IAAI,CAAC,EAA3D,YAAY,QAAA,EAAE,eAAe,QAA8B,CAAC;IAEnE,6EAA6E;IACvE,IAAA,KAAkD,QAAQ,CAAyC,IAAI,CAAC,EAAvG,oBAAoB,QAAA,EAAE,uBAAuB,QAA0D,CAAC;IAE/G,4DAA4D;IACtD,IAAA,KAA8B,QAAQ,CAAgB,EAAE,CAAC,EAAxD,UAAU,QAAA,EAAE,aAAa,QAA+B,CAAC;IAC1D,IAAA,KAAkC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAA7C,YAAY,QAAA,EAAE,eAAe,QAAgB,CAAC;IAErD,0CAA0C;IACpC,IAAA,KAAgC,QAAQ,CAAU,KAAK,CAAC,EAAvD,WAAW,QAAA,EAAE,cAAc,QAA4B,CAAC;IAE/D,4EAA4E;IACtE,IAAA,MAAsD,QAAQ,EAAO,EAApE,sBAAsB,SAAA,EAAE,yBAAyB,SAAmB,CAAC;IACtE,IAAA,MAAwD,QAAQ,EAAO,EAAtE,uBAAuB,SAAA,EAAE,0BAA0B,SAAmB,CAAC;IACxE,IAAA,MAAwD,QAAQ,EAAO,EAAtE,uBAAuB,SAAA,EAAE,0BAA0B,SAAmB,CAAC;IACxE,IAAA,MAA0D,QAAQ,CAAU,KAAK,CAAC,EAAjF,wBAAwB,SAAA,EAAE,2BAA2B,SAA4B,CAAC;IAGnF,IAAA,MAAsD,QAAQ,EAAO,EAApE,sBAAsB,SAAA,EAAE,yBAAyB,SAAmB,CAAC;IACtE,IAAA,MAAwD,QAAQ,CAAU,KAAK,CAAC,EAA/E,uBAAuB,SAAA,EAAE,0BAA0B,SAA4B,CAAC;IACjF,IAAA,MAAsD,QAAQ,EAAU,EAAvE,sBAAsB,SAAA,EAAE,yBAAyB,SAAsB,CAAC;IACzE,IAAA,MAAgC,QAAQ,CAAC,KAAK,CAAC,EAA9C,WAAW,SAAA,EAAE,cAAc,SAAmB,CAAC;IACtD,IAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACjD,IAAA,MAAwC,QAAQ,CAAC,KAAK,CAAC,EAAtD,eAAe,SAAA,EAAE,kBAAkB,SAAmB,CAAC;IAC9D,IAAM,cAAc,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAC3D,IAAM,qBAAqB,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IAErE,SAAS,CAAC;QACN,IAAI,YAAY,IAAI,CAAC,IAAI,WAAW,EAAE;YAClC,IAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,qCAAqC,CAAC,CAAC;YACpF,IAAI,aAAa,EAAE;gBACf,aAAa,CAAC,cAAc,CAAC;oBACzB,KAAK,EAAE,SAAS;oBAChB,MAAM,EAAE,OAAO;iBAClB,CAAC,CAAC;aACN;SACJ;IACL,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAE1B,IAAA,MAA4B,UAAU,EAAE,EAAhC,OAAO,WAAA,EAAE,MAAM,aAAiB,CAAC;IAC/C,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAErB,IAAA,MAA8B,QAAQ,CAAC,CAAC,CAAC,EAAxC,UAAU,SAAA,EAAE,aAAa,SAAe,CAAC;IAE1C,IAAA,MAA8D,QAAQ,CAAM,IAAI,CAAC,EAAhF,0BAA0B,SAAA,EAAE,6BAA6B,SAAuB,CAAC;IAElF,IAAA,MAAkC,QAAQ,CAAC,EAAE,CAAC,EAA7C,YAAY,SAAA,EAAE,eAAe,SAAgB,CAAC;IAC/C,IAAA,MAA8C,QAAQ,CAAC,KAAK,CAAC,EAA5D,kBAAkB,SAAA,EAAE,qBAAqB,SAAmB,CAAC;IAEpE,IAAM,SAAS,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAEnD,IAAA,4BAA4B,GAK5B,SAAS,6BALmB,EAC5B,4BAA4B,GAI5B,SAAS,6BAJmB,EAC5B,0BAA0B,GAG1B,SAAS,2BAHiB,EAC1B,4BAA4B,GAE5B,SAAS,6BAFmB,EAC5B,4BAA4B,GAC5B,SAAS,6BADmB,CAClB;IAER,IAAA,MAGF,4BAA4B,EAAE,EAF9B,YAAY,SAAA,EACZ,YAA4F,EAA/E,qBAAqB,gBAAA,EAAW,mBAAmB,cAAA,EAAS,iBAAiB,YAC5D,CAAC;IAE7B,IAAA,MAGF,4BAA4B,EAAE,EAF9B,YAAY,SAAA,EACZ,YAA4F,EAA/E,qBAAqB,gBAAA,EAAW,mBAAmB,cAAA,EAAS,iBAAiB,YAC5D,CAAC;IAE7B,IAAA,MAGF,4BAA4B,EAAE,EAF9B,YAAY,SAAA,EACZ,YAA4F,EAA/E,qBAAqB,gBAAA,EAAW,mBAAmB,cAAA,EAAS,iBAAiB,YAC5D,CAAC;IAE7B,IAAA,MAAuG,4BAA4B,EAAE,EAApI,uBAAuB,SAAA,EAAE,YAAyE,EAAjE,uBAAuB,WAAA,EAAa,oBAAoB,gBAAA,EAAE,KAAK,YAAoC,CAAC;IAEtI,IAAA,MAAsE,QAAQ,CAAC,CAAC,CAAC,EAAhF,8BAA8B,SAAA,EAAE,iCAAiC,SAAe,CAAC;IAIxF,SAAS,CAAC;QACN,IAAM,EAAE,GAAG;;;;;;wBACP,IAAI,CAAC,CAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAA,IAAI,CAAC,CAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE,CAAA,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAA,EAAE;4BACtF,sBAAO;yBACV;wBACD,qBAAqB,CAAC,KAAK,CAAC,CAAA;wBACtB,OAAO,GAAG;4BACZ,GAAG,EAAE;gCACD;oCACI,IAAI,EAAE;wCACF,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAC,EAAE,EAAE;wCAC1D,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,0CAAE,EAAE,CAAC,EAAE,EAAE;wCAC5C,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,EAAE,EAAE;wCAC7B,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;qCAC/B;iCACJ;gCACD;oCACI,IAAI,EAAE;wCACF,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAC,EAAE,EAAE;wCAC1D,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,0CAAE,EAAE,CAAC,EAAE,EAAE;wCAC5C,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;qCAChC;iCACJ;6BAEJ;yBACJ,CAAA;wBACK,SAAS,GAAQ;4BACnB,MAAM,EAAE,CAAC;4BACT,KAAK,EAAE,EAAE;4BACT,OAAO,EAAE,OAAO;4BAChB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;4BACnC,IAAI,EAAE,CAAC,SAAS,CAAC;yBACpB,CAAC;wBACI,WAAW,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;wBACxE,yBAAyB,CAAC,WAAW,CAAC,CAAA;wBAClB,qBAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAA;;wBAAjE,WAAW,GAAG,SAAmD;wBAEvE,IAAI,WAAW,EAAE;4BACb,2CAA2C;4BAC3C,eAAe,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC,CAAA;yBACxC;wBACD,qBAAqB,CAAC,IAAI,CAAC,CAAC;;;;aAC/B,CAAA;QACD,EAAE,EAAE,CAAA;IACR,CAAC,EAAE;QACC,iBAAiB;QACjB,8BAA8B;QAC9B,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE;QAC7B,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE;QACpC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE;KACX,CAAC,CAAA;IAEF,mBAAmB,CAAC,GAAG,EAAE,cAAM,OAAA,CAAC;QAC5B,WAAW,EAAE;YACT,cAAc,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;QACD,kBAAkB,EAAE;YAChB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,yBAAyB,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,sBAAsB,EAAE;YACpB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;KACJ,CAAC,EAZ6B,CAY7B,CAAC,CAAC;IAEJ,SAAS,CAAC;QACN,IAAM,EAAE,GAAG;;;;;;6BAGH,kBAAkB,EAAlB,wBAAkB;wBAElB,IAAI,iBAAiB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;4BAAE,sBAAO;wBAErD,WAAW,GAAG,+BAA+B,EAAE,CAAC;wBACtD,4DAA4D;wBAC5D,IAAI,iBAAiB,EAAE;4BACb,yBAAuB,MAAM,CAAC,iBAAiB,CAAC,CAAC;4BACjD,2BAA8B,YAAY,CAAC,IAAI,CAAC,UAAC,WAAgB,IAAK,OAAA,WAAW,CAAC,EAAE,KAAK,sBAAoB,EAAvC,CAAuC,CAAC,CAAC;4BACrH,yBAAyB,CAAC,wBAAsB,CAAC,CAAC;4BAClD,IAAI,wBAAsB,EAAE;gCAClB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAsB,aAAtB,wBAAsB,uBAAtB,wBAAsB,CAAE,eAAe,CAAC,CAAC;gCACvE,IAAI,UAAU,EAAE;oCACR,gBAAgB,GAAG,UAAU,CAAA;oCACjC,0BAA0B,CAAC,gBAAgB,CAAC,CAAA;iCAC/C;6BACJ;yBACJ;6BAAM;4BACH,yBAAyB,CAAC,IAAI,CAAC,CAAA;4BAC/B,0BAA0B,CAAC,IAAI,CAAC,CAAA;yBACnC;wBACD,IAAI,WAAW,EAAE;4BACb,IAAI,WAAW,EAAE;gCACb,WAAW,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,gBAAgB,KAAI,IAAI,CAAC;gCACpD,WAAW,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,uBAAuB,KAAI,IAAI,CAAC;6BAC9D;yBACJ;wBACD,IAAI,WAAW,EAAE;4BACb,eAAe,CAAC,WAAW,CAAC,CAAC;4BAavB,cAAc,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;4BACjD,cAAc,CAAC,cAAc,CAAC,CAAC;yBAElC;6BACG,CAAA,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA,EAApD,wBAAoD;wBACpD,eAAe,CAAC,WAAW,CAAC,CAAC;wBACvB,KAAK,GAAe,uBAAuB,CAAC,WAAW,CAAC,CAAC;wBACzC,qBAAM,oBAAoB,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAA;;wBAA7D,aAAa,GAAG,SAA6C;wBACnE,cAAc,CAAC,aAAa,CAAC,CAAC;;;wBAE5B,gBAAgB,GAAG,CAAC,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,0CAAE,IAAI,CAAC,UAAC,IAAS,IAAK,OAAA,IAAI,CAAC,SAAS,KAAK,IAAI,EAAvB,CAAuB,CAAC,CAAC,CAAC;wBAErG,IAAI,gBAAgB,EAAE;4BAClB,gBAAgB,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,CAAC,CAAC;yBACjD;6BAAM;4BAEG,aAAa,GAAG,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,OAAO,CAAC;4BAExE,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gCACpD,oBAAoB,GAAmB,aAAa,CAAC,GAAG,CAAC,UAAC,QAAgB,EAAE,KAAa;oCACrF,IAAA,KAA4B,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAA9C,SAAS,QAAA,EAAE,YAAY,QAAuB,CAAC;oCACtD,OAAO;wCACH,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;wCACtB,SAAS,EAAE,SAAS,IAAI,IAAI;wCAC5B,YAAY,EAAG,YAAmC,IAAI,IAAI;qCAC7D,CAAC;gCACN,CAAC,CAAC,CAAC;gCACH,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;6BAC1C;yBACJ;wBAED,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,KAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,MAAK,gBAAgB,EAAE;4BACvF,mBAAmB,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,CAAC,CAAC;yBACvD;wBAGD,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;wBACjC,cAAc,CAAC,IAAI,CAAC,CAAC;;;;;aAE5B,CAAA;QACD,EAAE,EAAE,CAAA;IACR,CAAC,EAAE,CAAC,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAE1E,SAAS,CAAC;QACN,IAAM,EAAE,GAAG;;;;;6BACH,gBAAgB,EAAhB,wBAAgB;6BACZ,CAAA,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,uBAAuB,KAAI,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,uBAAuB,MAAK,YAAY,CAAA,EAAvG,wBAAuG;wBACvG,eAAe,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,uBAAuB,CAAC,CAAC;wBACrD,KAAK,GAAe,uBAAuB,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;wBACtE,qBAAM,oBAAoB,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAA;;wBAA7D,aAAa,GAAG,SAA6C;wBACnE,cAAc,CAAC,aAAa,CAAC,CAAC;;;wBAElC,IAAI,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,gBAAgB,KAAI,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,gBAAgB,MAAK,YAAY,EAAE;4BAC3F,eAAe,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,gBAAgB,CAAC,CAAC;4BAY9C,cAAc,GAAG,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;4BACvE,cAAc,CAAC,cAAc,CAAC,CAAC;yBAElC;;;;;aAER,CAAA;QACD,EAAE,EAAE,CAAA;IACR,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAEtB,SAAS,CAAC;;QACN,IAAI,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,mBAAmB,EAAE;YACrC,0CAA0C;YAC1C,cAAc,CAAC,EAAE,CAAC,CAAC;YACnB,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,cAAc,CAAC,YAAY,CAAC,CAAC;YAC7B,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;YACpC,aAAa,CAAC,EAAE,CAAC,CAAC;YAGlB,IAAI,UAAU,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,mBAAmB,CAAC;YACrD,2EAA2E;YAC3E,2BAA2B;YAE3B,IAAM,cAAc,GAAG,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,QAAQ,mCAAI,EAAE,CAAC;YACzE,IAAM,eAAa,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;YAGpD,IAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,EAAiB;;oBAAhB,GAAG,QAAA,EAAE,KAAK,QAAA;gBAChE,IAAM,gBAAgB,GAAG,eAAa,CAAC,IAAI,CACvC,UAAC,CAAM,YAAK,OAAA,CAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,0CAAE,IAAI,MAAK,GAAG,CAAA,EAAA,CACrC,CAAC;gBACF,OAAO;oBACH,IAAI,EAAE,KAAK,CAAC,WAAW;oBACvB,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,SAAS,EAAE,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,0CAAE,eAAe;oBACnD,WAAW,EAAE,MAAA,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,0CAAE,WAAW,mCAAI,IAAI;oBACzD,YAAY,EAAE,MAAA,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,0CAAE,YAAY,mCAAI,KAAK;oBAC5D,YAAY,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,mCAAI,IAAI;iBAC5C,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,IAAM,oBAAoB,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,KAAU;gBACtD,QAAQ,KAAK,CAAC,IAAI,EAAE;oBAChB,KAAK,aAAa,CAAC;oBACnB,KAAK,eAAe;wBAChB,OAAO,KAAK,CAAC;oBACjB;wBACI,OAAO,IAAI,CAAC;iBACnB;YACL,CAAC,CAAC,CAAC;YAEH,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAEhC,IAAM,oBAAoB,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,KAAU;gBACtD,IAAI,CAAC,KAAK,CAAC,YAAY;oBAAE,OAAO,KAAK,CAAC;gBAEtC,QAAQ,KAAK,CAAC,IAAI,EAAE;oBAChB,KAAK,UAAU;wBACX,kDAAkD;wBAClD,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;oBAC/B,KAAK,UAAU,CAAC;oBAChB,KAAK,WAAW,CAAC;oBACjB,KAAK,iBAAiB,CAAC;oBACvB,KAAK,kBAAkB;wBACnB,OAAO,IAAI,CAAC;oBAChB,0BAA0B;oBAC1B,KAAK,UAAU;wBACX,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;oBACvC;wBACI,OAAO,KAAK,CAAC;iBACpB;YACL,CAAC,CAAC,CAAC;YAEH,IAAM,mBAAmB,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,KAAU;gBACrD,QAAQ,KAAK,CAAC,IAAI,EAAE;oBAChB,KAAK,UAAU;wBACX,kDAAkD;wBAClD,IAAI,KAAK,CAAC,YAAY,KAAK,aAAa;4BACpC,OAAO,IAAI,CAAC;wBAChB,OAAO,KAAK,CAAC;oBACjB,KAAK,UAAU,CAAC;oBAChB,KAAK,WAAW,CAAC;oBACjB,KAAK,iBAAiB,CAAC;oBACvB,KAAK,kBAAkB,CAAC;oBACxB,KAAK,KAAK,CAAC;oBACX,KAAK,OAAO,CAAC;oBACb,KAAK,SAAS,CAAC;oBACf,KAAK,MAAM,CAAC;oBACZ,KAAK,UAAU;wBACX,OAAO,IAAI,CAAC;oBAChB,0BAA0B;oBAC1B,KAAK,UAAU;wBACX,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;oBACvC;wBACI,OAAO,KAAK,CAAC;iBACpB;YACL,CAAC,CAAC,CAAC;YAEH,yDAAyD;YACzD,IAAI,yBAAyB,GAAQ,oBAAoB,CAAC,GAAG,CAAC,UAAC,KAAU;;gBAAK,OAAA,CAAC;oBAC3E,SAAS,EAAE,KAAK,CAAC,KAAK;oBACtB,WAAW,EAAE,KAAK,CAAC,IAAI;oBACvB,WAAW,EAAE,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE;oBACpC,SAAS,EAAE,KAAK,CAAC,SAAS;iBAC7B,CAAC,CAAA;aAAA,CAAC,CAAC;YAEJ,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;YAE/C,IAAI,wBAAwB,GAAQ,mBAAmB,CAAC,GAAG,CAAC,UAAC,KAAU;;gBAAK,OAAA,CAAC;oBACzE,SAAS,EAAE,KAAK,CAAC,KAAK;oBACtB,WAAW,EAAE,KAAK,CAAC,IAAI;oBACvB,WAAW,EAAE,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE;oBACpC,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;iBACvD,CAAC,CAAA;aAAA,CAAC,CAAC;YAEJ,kBAAkB,CAAC,wBAAwB,CAAC,CAAA;YAE5C,IAAM,sBAAsB,GAAG,CAAA,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,kBAAkB,KAAI,EAAE,CAAC;YAClG,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;SACjD;QACD,oBAAoB;IACxB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,SAAS,CAAC;QACN,IAAI,QAAQ,CAAC,OAAO,EAAE;YAClB,IAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,YAAY,EAAE;gBACd,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAC,CAAM;oBAC1C,aAAa,CAAE,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC,CAAC;gBACxD,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAGP,IAAM,aAAa,GAAG,UAAC,UAAmB;QACtC,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,EAAE;YACpB,IAAM,eAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB;YAC/D,IAAI,CAAC,eAAa;gBAAE,OAAO;YAC3B,wEAAwE;YACxE,IAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,EAAE,EAAR,CAAQ,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,EAAE,EAAR,CAAQ,CAAC,CAAC;YAC9E,IAAM,WAAS,GAAG,UAAU,IAAI,eAAa,CAAC,SAAS,CAAC;YACxD,IAAM,YAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC;gBAChC,UAAU,EAAE,WAAS;gBACrB,KAAK,EAAE,CAAC;gBACR,iBAAiB,EAAE,eAAa,CAAC,WAAW;gBAC5C,WAAW,EAAE,eAAa,CAAC,WAAW;gBACtC,SAAS,EAAE,eAAa,CAAC,SAAS;aACrC,CAAC,EANiC,CAMjC,CAAC,CAAC;YAEJ,cAAc,CAAC,UAAC,IAAI,IAAK,uCAAI,IAAI,SAAK,YAAU,SAAvB,CAAwB,CAAC,CAAC;YACnD,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,cAAc,CAAC,IAAI,CAAC,CAAA;YACpB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;SAEpC;IAEL,CAAC,CAAC;IAEF,IAAM,iBAAiB,GAAG;QACtB,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;QACrB,gCAAgC;QAChC,sCAAsC;QACtC,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IAErC,CAAC,CAAA;IAGD,IAAM,0BAA0B,GAAG,UAAC,WAAgB;QAChD,IAAM,iBAAiB,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC5E,sEAAsE;QACtE,IAAI,iBAAiB,GAAG,iBAAiB,CAAC;QAC1C,4DAA4D;QAC5D,0DAA0D;QAC1D,4BAA4B;QAC5B,gEAAgE;QAChE,SAAS;QACT,IAAI;QACJ,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACnC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAClC,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,IAAM,yBAAyB,GAAG,UAAC,WAAgB;QAC/C,IAAM,iBAAiB,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE5E,sEAAsE;QACtE,IAAI,iBAAiB,GAAG,iBAAiB,CAAC;QAC1C,4DAA4D;QAC5D,0DAA0D;QAC1D,4BAA4B;QAC5B,gEAAgE;QAChE,SAAS;QACT,IAAI;QACJ,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;QAC9C,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACnC,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IAGrC,CAAC,CAAA;IAED,IAAM,aAAa,GAAG,UAAC,aAA6B,EAAE,gBAAmC;QACrF,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACjC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAChC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QACtC,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,IAAM,sBAAsB,GAAG;QAC3B,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,IAAM,kBAAkB,GAAG;QACvB,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,SAAS,CAAC;QACN,IAAI,UAAU,GAAG,CAAC,IAAI,WAAW,EAAE;YAE/B,IAAM,cAAc,GAAG;gBACnB,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,UAAC,IAAS;;oBAAK,OAAA,CAAC;wBAClC,SAAS,EAAE,IAAI,CAAC,UAAU;wBAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;wBACnB,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,EAAE;qBACtC,CAAC,CAAA;iBAAA,CAAC;aACN,CAAC;YAGF,IAAM,iBAAiB,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;YAClE,eAAe,CAAC,iBAAiB,CAAC,CAAC;YAEnC,IAAI,gBAAgB,GAAQ,uBAAuB,CAAA;YACnD,IAAM,qBAAqB,GAAG,0BAA0B,CAAA;YAExD,IAAM,iBAAiB,GAAG,YAAY,CAAA;YACtC,IAAM,WAAW,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAA;YACvJ,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC3C,cAAc,CAAC,KAAK,CAAC,CAAA;YACrB,IAAI;SACP;IACL,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAGjB,qCAAqC;IAErC,IAAM,sBAAsB,GAAG;QAC3B,IAAI,CAAC,oBAAoB,IAAI,CAAC,YAAY,IAAI,CAAC,0BAA0B,EAAE;YACvE,OAAO,KAAK,CAAC;SAChB;QACD,iDAAiD;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACvF,CAAC,CAAC;IAEF,IAAM,qBAAqB,GAAG,UAAO,WAAgB;;;;;oBACjD,2BAA2B;oBAC3B,gDAAgD;oBAChD,oCAAoC;oBACpC,+BAA+B;oBAC/B,gEAAgE;oBAChE,uDAAuD;oBACvD,sBAAsB;oBACtB,2GAA2G;oBAC3G,kFAAkF;oBAClF,IAAI;oBAGJ,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnB,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,cAAc,CAAC,YAAY,CAAC,CAAC;oBAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;oBACrB,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;yBAGhC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,CAAA,EAAf,wBAAe;oBACT,kBAAgB,WAAW,CAAC,EAAE,CAAC;oBACrC,gDAAgD;oBAChD,cAAc,CAAC,KAAK,CAAC,CAAC;oBAChB,2BAA8B,YAAY,CAAC,IAAI,CAAC,UAAC,WAAgB,IAAK,OAAA,WAAW,CAAC,EAAE,KAAK,eAAa,EAAhC,CAAgC,CAAC,CAAC;oBAC9G,yBAAyB,CAAC,wBAAsB,CAAC,CAAC;yBAC9C,wBAAsB,EAAtB,wBAAsB;oBAChB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAsB,aAAtB,wBAAsB,uBAAtB,wBAAsB,CAAE,eAAe,CAAC,CAAC;yBACnE,UAAU,EAAV,wBAAU;oBACN,gBAAgB,GAAG,UAAU,CAAA;oBACjC,0BAA0B,CAAC,gBAAgB,CAAC,CAAA;oBACtC,KAAK,GAAe,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACxE,qBAAM,oBAAoB,CAC5C,CAAC,KAAK,CAAC,EACP,QAAQ,CACX,EAAA;;oBAHK,aAAa,GAAG,SAGrB;oBACD,0BAA0B,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;oBACzE,2BAA2B,CAAC,IAAI,CAAC,CAAA;;;;oBAIzC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;;;;;SAEhE,CAAA;IAED,IAAM,iBAAiB,GAAG;;;;;gBACtB,kCAAkC;gBAClC,qBAAM,YAAY,CAAC,sBAAsB,CAAC,EAAA;;oBAD1C,kCAAkC;oBAClC,SAA0C,CAAC;oBAEvC,kBAAkB,GAAG,YAAY,CAAC;oBAChC,UAAU,GAAG,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,GAAG,CAAC,YAAY,CAAC,CAAC;oBACzD,IAAI,sBAAsB,IAAI,UAAU,EAAE;wBAChC,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAC9D,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC/B,MAAM,CAAC,IAAI,CAAC,WAAI,SAAS,CAAC,QAAQ,EAAE,CAAE,CAAC,CAAC;qBAC3C;oBACD,0BAA0B,CAAC,KAAK,CAAC,CAAC;oBAClC,UAAU,CAAC;wBACP,iCAAiC,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;oBACvD,CAAC,EAAE,GAAG,CAAC,CAAA;;;;SACV,CAAA;IACD,IAAM,gBAAgB,GAAG,UAAO,UAAe;;;;;;oBAC3C,sBAAsB,CAAC,KAAK,CAAC,CAAA;;;;yBAGrB,UAAU,CAAC,EAAE,EAAb,wBAAa;oBACP,UAAU,GAAG,uBAAuB,CAAC;oBACrC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;oBACzC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBACxE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAC,CAAC;oBACjE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE,CAAC,CAAC;oBACzD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;oBACnD,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC;oBAEpC,qBAAM,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAAnE,SAAmE,CAAC;oBAEpE,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnB,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,cAAc,CAAC,YAAY,CAAC,CAAC;oBAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;oBACrB,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBACxB,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAChD,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,iDAAiD;oBAE1F,6BAA6B,CAAC,IAAI,CAAC,CAAC;oBACpC,UAAU,CAAC;wBACP,MAAM,CAAC,IAAI,CAAC,sBAAe,UAAU,CAAC,EAAE,CAAE,CAAC,CAAC;oBAChD,CAAC,EAAE,GAAG,CAAC,CAAA;;;oBAGD,UAAU,GAAG,YAAY,CAAC;oBAC1B,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;oBACzC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBACxE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAC,CAAC;oBACjE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE,CAAC,CAAC;oBACzD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;oBACnD,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC;oBACrB,qBAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAA9C,WAAS,SAAqC;oBAEpD,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnB,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,cAAc,CAAC,YAAY,CAAC,CAAC;oBAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;oBACrB,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;oBAE9B,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAChD,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,iDAAiD;oBAE1F,UAAU,CAAC;wBACP,MAAM,CAAC,IAAI,CAAC,sBAAe,QAAM,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC,CAAC;oBACjD,CAAC,EAAE,GAAG,CAAC,CAAA;;;;;;;;;SAMlB,CAAA;IAID,SAAS,CAAC;QACN,4CAA4C;QAC5C,SAAS,kBAAkB,CAAC,KAAiB;YACzC,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE;gBAC1E,cAAc,CAAC,KAAK,CAAC,CAAC;aACzB;QACL,CAAC;QACD,IAAI,WAAW,EAAE;YACb,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;SAC9D;QACD,OAAO;YACH,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAClE,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,SAAS,CAAC;QACN,SAAS,6BAA6B,CAAC,KAAiB;;YACpD,IAAM,UAAU,GAAG,KAAK,CAAC,MAAc,CAAC;YACxC,IAAI,MAAA,cAAc,CAAC,OAAO,0CAAE,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO;YACzD,IAAI,MAAA,qBAAqB,CAAC,OAAO,0CAAE,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO;YAChE,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,eAAe,EAAE;YACjB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;SACzE;QAED,OAAO;YACH,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;QAC7E,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,IAAM,UAAU,GAAG;;QACf,6CAA6C;QAC7C,IAAM,SAAS,GACX,MAAA,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,0CAAE,MAAM,mCACzB,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,0CAAE,MAAM,mCAC1B,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAE3C,OAAO,CACH,uBACI,eAAK,SAAS,EAAC,yBAAyB,aACpC,eAAK,SAAS,EAAC,yCAAyC,aACpD,eAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAC1F,OAAO,EAAE;oCACL,0BAA0B,CAAC,IAAI,CAAC,CAAA;gCACpC,CAAC,aAED,eAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,GAAG,EACrD,eAAM,CAAC,EAAC,mGAAmG,EACvG,IAAI,EAAC,OAAO,GAAG,IACjB,EACN,2BAAM,2BAAS,SAAS,GAAU,sBAAqB,IACrD,EAGN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAC,MAAM,YAC5F,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACP,GACL,CACR,CAAA;IACL,CAAC,CAAC;IAGF,iCAAiC;IAEjC,IAAM,gBAAgB,GAAG,UAAC,WAAgB;QAEtC,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;QACrB,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;QACpC,IAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,2BAA2B;QAC5E,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,iDAAiD;QAC1F,gCAAgC;QAChC,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,sBAAe,WAAW,CAAC,EAAE,CAAE,CAAC,CAAC;YAC7C,cAAc,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACH,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;SAC5D;IACL,CAAC,CAAA;IAED,IAAM,iBAAiB,GAAG;QACtB,IAAM,MAAM,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAChC,0BAA0B,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC5B,IAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE;gBAC5B,CAAC,CAAC,UAAG,QAAQ,cAAI,MAAM,CAAC,QAAQ,EAAE,CAAE;gBACpC,CAAC,CAAC,QAAQ,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvB;IACL,CAAC,CAAA;IAED,IAAM,gBAAgB,GAAG;QAErB,OAAO,CACH,uBACI,eAAK,SAAS,EAAC,yBAAyB,aACpC,eAAK,SAAS,EAAC,yCAAyC,aACpD,eAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAC1F,OAAO,EAAE;oCACL,IAAM,EAAE,GAAG;;;;;yDACH,uBAAuB,EAAvB,wBAAuB;oDACjB,KAAK,GAAe,uBAAuB,CAAC,uBAAuB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oDACtF,qBAAM,oBAAoB,CAC5C,CAAC,KAAK,CAAC,EACP,QAAQ,CACX,EAAA;;oDAHK,aAAa,GAAG,SAGrB;oDACD,0BAA0B,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;oDACzE,2BAA2B,CAAC,IAAI,CAAC,CAAA;;;;;yCAExC,CAAA;oCACD,EAAE,EAAE,CAAA;gCACR,CAAC,aAGD,eAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,GAAG,EACrD,eAAM,CAAC,EAAC,mGAAmG,EACvG,IAAI,EAAC,OAAO,GAAG,IACjB,EACN,yBAAM,2BAAS,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,IAAI,GAAU,GAAO,IAC1D,EAGN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAC,MAAM,YAC5F,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACP,GACL,CACR,CAAA;IACL,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG;QACnB,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QACvC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;QAC7C,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,IAAM,YAAY,GAAG;QACjB,OAAO,CACH,aAAI,SAAS,EAAC,0BAA0B,YACpC,eAAK,SAAS,EAAC,+BAA+B,aAC1C,eAAK,SAAS,EAAC,+BAA+B,aAC1C,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAE1F,OAAO,EAAE,cAAM,OAAA,yBAAyB,CAAC,IAAI,CAAC,EAA/B,CAA+B,aAE9C,eAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,SAAS,GAAG,EACrD,eAAM,CAAC,EAAC,mGAAmG,EACvG,IAAI,EAAC,OAAO,GAAG,IACjB,EACN,2BAAM,2BAAS,aAAa,CAAC,MAAM,GAAU,+BAA8B,IACzE,EAGN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAC,MAAM,YACzF,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACP,GACL,CACR,CAAA;IACL,CAAC,CAAC;IAKF,+BAA+B;IAG/B,4BAA4B;IAE5B,IAAM,qBAAqB,GAAG,UAAC,UAAkB;QAC7C,IAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,UAAU,KAAK,UAAU,EAA9B,CAA8B,CAAC,CAAC;QAChF,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7B,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IAErC,CAAC,CAAC;IAEF,IAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,UAAC,GAA6B,EAAE,IAAI;QAC9E,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,IAAI,CAAC,GAAG;YAAE,OAAO,GAAG,CAAC,CAAC,oBAAoB;QAE1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACX,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;SACjB;QACD,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,eAAe,GACjB,MAAA,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,0CAAE,MAAM,mCACzB,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,0CAAE,MAAM,mCAC1B,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAE3C,IAAM,gBAAgB,GAAG,OAAO,CAAoB;QAChD,IAAM,KAAK,GAAsB,EAAE,CAAC;QAEpC,IAAI,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,IAAI,EAAE;YAC9B,KAAK,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,cAAc;gBAClB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,iBAAU,sBAAsB,CAAC,IAAI,CAAE;gBAC9C,QAAQ,EAAE,cAAM,OAAA,iBAAiB,EAAE,EAAnB,CAAmB;aACtC,CAAC,CAAC;SACN;QAED,IAAI,CAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,IAAI,MAAI,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,KAAK,CAAA,EAAE;YAC3D,KAAK,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,mBAAmB;gBACvB,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,sBAAe,oBAAoB,CAAC,IAAI,eAAK,oBAAoB,CAAC,KAAK,MAAG;gBACjF,QAAQ,EAAE,cAAM,OAAA,0BAA0B,EAAE,EAA5B,CAA4B;aAC/C,CAAC,CAAC;SACN;QAED,IAAI,YAAY,IAAI,eAAe,GAAG,CAAC,EAAE;YACrC,KAAK,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,UAAG,eAAe,0BAAuB;gBAChD,QAAQ,EAAE,cAAM,OAAA,iBAAiB,EAAE,EAAnB,CAAmB;gBACnC,MAAM,EAAC,cAAM,OAAA,0BAA0B,CAAC,IAAI,CAAC,EAAhC,CAAgC;aAChD,CAAC,CAAC;SACN;QAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,SAAS,KAAK,IAAI,EAApB,CAAoB,CAAC,EAAE;YAC7E,KAAK,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,gBAAgB;gBACpB,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,UAAG,aAAa,CAAC,MAAM,4BAAyB;gBACvD,QAAQ,EAAE,cAAM,OAAA,cAAc,EAAE,EAAhB,CAAgB;gBAChC,MAAM,EAAC,cAAM,OAAA,yBAAyB,CAAC,IAAI,CAAC,EAA/B,CAA+B;aAE/C,CAAC,CAAC;SACN;QAED,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAgB;gBAAf,MAAM,QAAA,EAAE,MAAM,QAAA;YACvD,IAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,SAAS,KAAK,MAAM,EAA1B,CAA0B,CAAC,CAAC;YAC/E,IAAM,iBAAiB,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,KAAI,MAAM,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,iBAAU,MAAM,CAAE;gBACtB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,UAAG,iBAAiB,eAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAE;gBACrD,QAAQ,EAAE,cAAM,OAAA,qBAAqB,CAAC,MAAM,CAAC,EAA7B,CAA6B;aAChD,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACjB,CAAC,EAAE;QACC,sBAAsB;QACtB,oBAAoB;QACpB,YAAY;QACZ,eAAe;QACf,aAAa;QACb,kBAAkB;QAClB,gBAAgB;KACnB,CAAC,CAAC;IAEH,IAAM,iBAAiB,GAAG,CAAC,CAAC;IAC5B,IAAM,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACtE,IAAM,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAClE,IAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC;IAE/C,IAAM,oBAAoB,GAAG;QACzB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE1C,IAAI,iBAAiB,IAAI,sBAAsB,EAAE;YAC7C,iBAAiB,EAAE,CAAC;SACvB;QAED,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;QACpC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7B,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QACvC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;QAC7C,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1B,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,SAAS,CAAC;QACN,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,EAAE;YAClD,kBAAkB,CAAC,KAAK,CAAC,CAAC;SAC7B;IACL,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAG/C,IAAM,cAAc,GAAG,OAAO,CAAkB;QAC5C,IAAM,YAAY,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,KAAI,EAAE,CAAC;QAC9C,IAAM,MAAM,GAAoB,YAAY;YACxC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAC,KAAU,IAAK,OAAA,CAAC;gBACpC,EAAE,EAAE,gBAAS,KAAK,CAAC,SAAS,CAAE;gBAC9B,IAAI,EAAE,OAAgB;gBACtB,KAAK,OAAA;aACR,CAAC,EAJqC,CAIrC,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACT,IAAM,UAAU,GACZ,YAAY,KAAI,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,MAAM,CAAA;YACtC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAC,CAAM,EAAE,GAAW,IAAK,OAAA,CAAC;gBAC/C,EAAE,EAAE,qBAAc,CAAC,CAAC,IAAI,IAAI,GAAG,CAAE;gBACjC,IAAI,EAAE,YAAqB;gBAC3B,UAAU,EAAE,CAAC;aAChB,CAAC,EAJgD,CAIhD,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACb,IAAM,KAAK,GAAoB,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC;YACjE,EAAE,EAAE,gBAAS,CAAC,CAAC,EAAE,CAAE;YACnB,IAAI,EAAE,OAAgB;YACtB,KAAK,EAAE,CAAC;SACX,CAAC,EAJkE,CAIlE,CAAC,CAAC;QAEJ,qDAAW,MAAM,SAAK,UAAU,SAAK,KAAK,QAAE;IAChD,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC;IAErE,IAAM,aAAa,GAAG,UAAC,CAAwC;QAC3D,IAAM,YAAY,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,KAAI,EAAE,CAAC;QAE9C,IAAM,gBAAgB,GAAG,UAAC,KAAU;YAChC,IAAM,OAAO,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAE,EAAR,CAAQ,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,KAAK,EAAE,EAAR,CAAQ,CAAC,CAAC;YAC/E,IAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC;gBAChC,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,KAAK,EAAE,CAAC;gBACR,iBAAiB,EAAE,KAAK,CAAC,WAAW;gBACpC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;aAC7B,CAAC,EANiC,CAMjC,CAAC,CAAC;YACJ,cAAc,CAAC,UAAC,IAAI,IAAK,uCAAI,IAAI,SAAK,UAAU,SAAvB,CAAwB,CAAC,CAAC;YACnD,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAC;YAClC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7E,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,IAAM,SAAS,GACX,CAAC,CAAC,GAAG,KAAK,WAAW;gBACjB,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM;gBAC5C,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YAC7E,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3B,OAAO;SACV;QAED,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACnB,IAAI,YAAY,IAAI,YAAY,IAAI,CAAC,EAAE;gBACnC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,IAAM,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAE/F,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,MAAK,OAAO,EAAE;oBAChC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;iBACxC;qBAAM,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,MAAK,YAAY,EAAE;oBAC5C,sBAAsB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;iBACnD;qBAAM,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,MAAK,OAAO,EAAE;oBACvC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;iBACxC;qBAAM,IAAI,YAAY,EAAE;oBACrB,aAAa,EAAE,CAAC;oBAChB,cAAc,CAAC,KAAK,CAAC,CAAC;iBACzB;aACJ;SACJ;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,UAAU,KAAK,EAAE,EAAE;YACnD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,cAAc,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC,CAAC;aAC/C;iBAAM,IAAI,YAAY,EAAE;gBACrB,eAAe,CAAC,IAAI,CAAC,CAAC;gBACtB,cAAc,CAAC,YAAY,CAAC,CAAC;aAChC;iBAAM,IAAI,oBAAoB,EAAE;gBAC7B,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;aACvC;iBAAM,IAAI,iBAAiB,EAAE;gBAC1B,iBAAiB,EAAE,CAAC;aACvB;YACD,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAC;SACrC;IACL,CAAC,CAAC;IAEF,SAAS,CAAC;QACN,IAAI,CAAC,WAAW,EAAE;YACd,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;SACvB;IACL,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,IAAM,UAAU,GAAG,cAAM,OAAA,CACrB,4BACK,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,UAAC,EAAgB;gBAAf,MAAM,QAAA,EAAE,MAAM,QAAA;YACpD,IAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,KAAK,MAAM,EAAtB,CAAsB,CAAC,CAAC;YACrE,IAAM,iBAAiB,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,KAAI,MAAM,CAAC;YAE3D,OAAO,CACH,uBACI,eAAK,SAAS,EAAC,yBAAyB,aACpC,wBAAM,iBAAiB,GAAO,EAC7B,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK,EAAE,KAAK,IAAK,OAAA,CAC1B,MAAC,KAAK,CAAC,QAAQ,eAEX,eAAkB,SAAS,EAAC,mBAAmB,YAAE,KAAK,IAA3C,KAAK,CACT,EACN,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;oCACtB,eAAM,SAAS,EAAC,gBAAgB,mBAAU,IAEjC,CACpB,EAT6B,CAS7B,CAAC,EAEF,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,cAAM,OAAA,qBAAqB,CAAC,MAAM,CAAC,EAA7B,CAA6B,YAC7G,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACP,IAjBD,MAAM,CAkBV,CACR,CAAA;QACL,CAAC,CAAC,GACH,CACN,EA7BwB,CA6BxB,CAAC;IAEF,0BAA0B;IAG1B,sCAAsC;IAEtC,IAAM,sBAAsB,GAAG,UAAC,gBAAqB;QACjD,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,CAAA;YAAE,OAAO;QAEhC,IAAI,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,CAAA,EAAE;YAC5B,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,gBAAgB,CAAC,CAAC;YAC9E,OAAO;SACV;QAED,IAAI;YACA,6DAA6D;YAC7D,IAAM,eAAe,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YAEzF,0CAA0C;YAC1C,sBAAsB;YACtB,yBAAyB;YACzB,gCAAgC;YAChC,wBAAwB;YACxB,uBAAuB;YACvB,iCAAiC;YACjC,uBAAuB,CAAC;gBACpB,IAAI,EAAE,gBAAgB,CAAC,IAAI;gBAC3B,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;aAC3B,CAAC,CAAC;YAEH,6BAA6B,CAAC,eAAe,CAAC,CAAC;YAE/C,sDAAsD;YACtD,oCAAoC;YAEpC,gCAAgC;YAChC,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;SACpC;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;YAC1D,8CAA8C;SACjD;IACL,CAAC,CAAC;IAGF,IAAM,0BAA0B,GAAG;QAC/B,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAA;QACnC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IACrC,CAAC,CAAC;IAEF,IAAM,oBAAoB,GAAG,cAAM,OAAA,CAC/B,uBACI,eAAK,SAAS,EAAC,yBAAyB,aACpC,eAAK,SAAS,EAAC,+BAA+B,aAC1C,6BAAS,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,IAAI,SAAW,EAC9C,eAAM,SAAS,EAAC,mBAAmB,YAAE,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,KAAK,GAAQ,IACtE,EAEN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,0BAA0B,YACpG,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACP,GACL,CACR,EAbkC,CAalC,CAAC;IAEF,oCAAoC;IAEpC,OAAO,CACH,4BACI,eAAK,SAAS,EAAC,kEAAkE,aAC7E,cAAK,SAAS,EAAC,6BAA6B,YACxC,cAAI,SAAS,EAAC,+BAA+B,aACxC,gBAAgB,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,CAC5B,uBACI,eAAK,SAAS,EAAE,kEAA2D,IAAI,CAAC,IAAI,CAAE,aAClF,eAAM,SAAS,EAAC,yCAAyC,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,YACtE,IAAI,CAAC,KAAK,GACR,EACP,iBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wBAAwB,EAClC,WAAW,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,cAAc,EAAE,EAAlB,CAAkB,EACtC,OAAO,EAAE,IAAI,CAAC,QAAQ,gBACV,iBAAU,IAAI,CAAC,KAAK,CAAE,YAElC,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACP,IAdD,IAAI,CAAC,EAAE,CAeX,CACR,EAjB+B,CAiB/B,CAAC,EACD,eAAe,GAAG,CAAC,IAAI,CACpB,uBACI,kBACI,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,qBAAqB,EAC1B,SAAS,EAAC,2BAA2B,EACrC,WAAW,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,cAAc,EAAE,EAAlB,CAAkB,EACtC,OAAO,EAAE,cAAM,OAAA,kBAAkB,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,EAAnC,CAAmC,kBAEhD,eAAe,aACZ,GACR,CACR,EACA,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,KAAK,CAAC,IAAI,CACrD,uBACI,iBACI,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,qBAAqB,EAC1B,SAAS,EAAC,+DAA+D,EACzE,WAAW,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,cAAc,EAAE,EAAlB,CAAkB,EACtC,OAAO,EAAE,cAAM,OAAA,kBAAkB,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,EAAnC,CAAmC,uBAG7C,GACR,CACR,EACD,aAAI,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAC,gCAAgC,YACzD,eAAK,SAAS,EAAC,8CAA8C,aACzD,KAAC,UAAU,IACP,SAAS,EAAC,2BAA2B,EACrC,KAAK,EAAE,UAAU,IAAI,EAAE,EACvB,WAAW,EAAC,SAAS,EACrB,QAAQ,EAAE,UAAC,CAAC;gDACR,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gDAC9B,kBAAkB,CAAC,KAAK,CAAC,CAAC;gDAC1B,cAAc,CAAC,IAAI,CAAC,CAAC;gDACrB,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;4CACxB,CAAC,EACD,OAAO,EAAE;gDACL,kBAAkB,CAAC,KAAK,CAAC,CAAC;gDAC1B,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE;oDAAE,cAAc,CAAC,IAAI,CAAC,CAAC;4CACjD,CAAC,EACD,MAAM,EAAE;gDACJ,gDAAgD;gDAChD,UAAU,CAAC,cAAM,OAAA,cAAc,CAAC,KAAK,CAAC,EAArB,CAAqB,EAAE,GAAG,CAAC,CAAC;4CACjD,CAAC,EAED,SAAS,EAAE,aAAa,GAC1B,EACF,KAAC,WAAW,IACR,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE;gDACL,kBAAkB,CAAC,KAAK,CAAC,CAAC;gDAC1B,cAAc,CAAC,IAAI,CAAC,CAAC;4CACzB,CAAC,EACD,SAAS,EAAC,kDAAkD,YAE5D,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACZ,GACL,IACJ,GACH,EAEL,eAAe,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAC/C,eAAK,GAAG,EAAE,cAAc,EAAE,SAAS,EAAC,uCAAuC,aACvE,eAAK,SAAS,EAAC,2BAA2B,aACtC,eAAK,SAAS,EAAC,0BAA0B,gCAAiB,gBAAgB,CAAC,MAAM,SAAQ,EACzF,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,8BAA8B,EAAC,OAAO,EAAE,oBAAoB,0BAEnF,IACP,EACN,cAAK,SAAS,EAAC,yBAAyB,YACnC,gBAAgB,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,CAC5B,eAA+B,SAAS,EAAE,kDAA2C,IAAI,CAAC,IAAI,CAAE,EAAE,OAAO,EAAE;oCACvG,IAAI,IAAI,CAAC,EAAE,IAAI,eAAe,IAAI,IAAI,CAAC,EAAE,IAAI,gBAAgB,EAAE;wCAC3D,IAAG,IAAI,CAAC,MAAM,EAAC;4CACX,IAAI,CAAC,MAAM,EAAE,CAAA;yCAChB;qCACJ;gCACL,CAAC,aAEG,eAAM,SAAS,EAAC,+BAA+B,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,YAC5D,IAAI,CAAC,KAAK,GACR,EACP,iBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,gCAAgC,EAC1C,OAAO,EAAE,IAAI,CAAC,QAAQ,gBACV,iBAAU,IAAI,CAAC,KAAK,CAAE,YAElC,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,KAlBH,iBAAU,IAAI,CAAC,EAAE,CAAE,CAmBvB,CACT,EArB+B,CAqB/B,CAAC,GACA,IACJ,CACT,EAEA,WAAW,IAAI,CACZ,eAAK,GAAG,EAAE,UAAU,EAAE,SAAS,EAAC,0DAA0D,aACtF,eAAK,SAAS,EAAC,6BAA6B,aACvC,UAAU,CAAC,CAAC,CAAC,CACV,8BACI,eAAK,SAAS,EAAC,sFAAsF,aACjG,cAAI,SAAS,EAAC,6GAA6G,aACvH,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,EACpB,8CAA6B,IAC5B,EACJ,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC3B,gBAAgB,CAAC,GAAG,CAAC,UAAC,KAAU,EAAE,KAAa;oDAC3C,OAAO,CACH,MAAC,WAAW,IAER,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,4DAAqD,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,2BAAwB,EAC1J,WAAW,EAAE,UAAC,CAAC;4DACX,CAAC,CAAC,cAAc,EAAE,CAAC;4DACnB,IAAM,YAAY,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,CAAC;4DACxC,IAAI,YAAY,EAAE;gEACd,IAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAE,EAAR,CAAQ,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,KAAK,EAAE,EAAR,CAAQ,CAAC,CAAC;gEACpF,IAAM,YAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC;oEAChC,UAAU,EAAE,KAAK,CAAC,SAAS;oEAC3B,KAAK,EAAE,CAAC;oEACR,iBAAiB,EAAE,KAAK,CAAC,WAAW;oEACpC,WAAW,EAAE,KAAK,CAAC,WAAW;oEAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;iEAC7B,CAAC,EANiC,CAMjC,CAAC,CAAC;gEACJ,cAAc,CAAC,UAAC,IAAI,IAAK,uCAAI,IAAI,SAAK,YAAU,SAAvB,CAAwB,CAAC,CAAC;gEACnD,aAAa,CAAC,EAAE,CAAC,CAAC;gEAClB,cAAc,CAAC,IAAI,CAAC,CAAC;gEACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;gEACjC,cAAc,CAAC,KAAK,CAAC,CAAC;6DACzB;wDACL,CAAC,EACD,YAAY,EAAE,cAAM,OAAA,eAAe,CAAC,KAAK,CAAC,EAAtB,CAAsB,wBAEnC,iBAAQ,KAAK,EAAE,EAAC,WAAW,EAAC,KAAK,EAAC,YAAG,KAAK,CAAC,WAAW,GAAU,yBAAmB,eAAM,SAAS,EAAC,sBAAsB,YAAE,UAAU,GAAQ,KAzB/I,KAAK,CA0BA,CACjB,CAAA;gDACL,CAAC,CAAC,CACL,CAAC,CAAC,CAAC,CACA,eAAK,SAAS,EAAC,gCAAgC,aAC3C,cAAK,SAAS,EAAC,qCAAqC,YAChD,KAAC,OAAO,IAAC,IAAI,EAAE,EAAE,GAAI,GACnB,EACN,cAAK,SAAS,EAAC,qCAAqC,iDAE9C,IACJ,CACT,IACC,EACL,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,CACpD,8BACI,cAAK,SAAS,EAAC,yBAAyB,GAAG,EAC3C,eAAK,SAAS,EAAC,sFAAsF,aACjG,aAAI,SAAS,EAAC,sEAAsE,oCAAyB,EAC5G,kBAAkB,CAAC,GAAG,CAAC,UAAC,gBAAqB,EAAE,KAAa,IAAK,OAAA,CAC9D,MAAC,WAAW,IAER,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,8HAAuH,YAAY,KAAK,gBAAgB,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,CAAE,EAChO,WAAW,EAAE,UAAC,CAAC;gEACX,CAAC,CAAC,cAAc,EAAE,CAAC;gEACnB,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;4DAC7C,CAAC,EACD,YAAY,EAAE,cAAM,OAAA,eAAe,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,CAAC,EAAhD,CAAgD,aAEpE,eAAK,SAAS,EAAC,+BAA+B,aAC1C,6BAAS,gBAAgB,CAAC,IAAI,SAAW,EACzC,eAAM,SAAS,EAAC,sBAAsB,YAAE,UAAU,GAAQ,IACxD,EACN,cAAK,SAAS,EAAC,SAAS,YAAE,gBAAgB,CAAC,WAAW,GAAO,KAdxD,KAAK,CAeA,CACjB,EAlBiE,CAkBjE,CAAC,IACA,IACP,CACN,IACF,CACN,CAAC,CAAC;oCACC,8BACI,cAAK,SAAS,EAAC,gCAAgC,YAC3C,eAAK,SAAS,EAAC,oCAAoC,aAC/C,cAAK,SAAS,EAAC,yCAAyC,YACpD,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,GAClB,EACN,eAAK,SAAS,EAAC,yCAAyC,aACpD,cAAK,SAAS,EAAC,kCAAkC,uCAE3C,EACN,eAAK,SAAS,EAAC,qCAAqC,wFACwB,qBAAqB,YAC3F,IACJ,IACJ,GACJ,EACN,cAAK,SAAS,EAAC,yBAAyB,GAAG,IAC5C,EAEN,YAAY,CAAC,MAAM,GAAG,CAAC;oCACpB,4BACI,eAAK,SAAS,EAAC,kCAAkC,aAC7C,eAAK,SAAS,EAAC,+EAA+E,aAC1F,cAAK,SAAS,EAAC,yCAAyC,YACpD,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,GACpB,EACN,eAAK,SAAS,EAAC,yCAAyC,aACpD,YAAG,SAAS,EAAC,iEAAiE,8BAAkB,EAChG,cAAK,SAAS,EAAC,qCAAqC,8DAE9C,IACJ,IACJ,EACN,cAAK,SAAS,EAAC,kDAAkD,YAC5D,YAAY,CAAC,GAAG,CAAC,UAAC,WAAgB,EAAE,KAAa;;wDAAK,OAAA,CACnD,KAAC,eAAe,IAEZ,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EAC5C,yBAAyB,EAAE,yBAAyB,EACpD,0BAA0B,EAAE,0BAA0B,EACtD,SAAS,EAAE,CAAA,MAAA,cAAc,CAAC,YAAY,CAAC,0CAAE,EAAE,MAAK,gBAAS,WAAW,CAAC,EAAE,CAAE,EACzE,YAAY,EAAE;gEACV,IAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,gBAAS,WAAW,CAAC,EAAE,CAAE,EAAlC,CAAkC,CAAC,CAAC;gEACnF,IAAI,QAAQ,KAAK,CAAC,CAAC;oEAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;4DACnD,CAAC,IAXI,WAAW,CAAC,EAAE,CAYrB,CACL,CAAA;qDAAA,CAAC,GACA,IACJ,GACP,IAEL,EAEN,eAAK,SAAS,EAAC,6BAA6B,aACxC,iBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,+DAA+D,EACzE,OAAO,EAAE,sBAAsB,YAE/B,eAAK,SAAS,EAAC,yCAAyC,aACpD,cAAK,SAAS,EAAC,yCAAyC,YACpD,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,GAClB,EACN,eAAK,SAAS,EAAC,yCAAyC,aACpD,cAAK,SAAS,EAAC,sEAAsE,mDAE/E,EACN,cAAK,SAAS,EAAC,sCAAsC,wFAE/C,IACJ,IACJ,GACD,EACR,QAAQ,KAAK,MAAM,IAAI,CACpB,iBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,4GAA4G,EACtH,OAAO,EAAE,kBAAkB,YAE3B,eAAK,SAAS,EAAC,yCAAyC,aACpD,cAAK,SAAS,EAAC,yCAAyC,YACpD,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GAChB,EACN,eAAK,SAAS,EAAC,yCAAyC,aACpD,cAAK,SAAS,EAAC,sEAAsE,iDAE/E,EACN,cAAK,SAAS,EAAC,sCAAsC,6EAE/C,IACJ,IACJ,GACD,CACZ,IACC,IACJ,CACT,EAED,MAAC,WAAW,IAAC,IAAI,EAAE,uBAAuB,EAAE,YAAY,EAAE,0BAA0B,EAAE,SAAS,EAAC,sDAAsD,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,aACrM,MAAC,iBAAiB,IAAC,SAAS,EAAC,0BAA0B,aACnD,0BACI,KAAC,gBAAgB,IAAC,SAAS,EAAC,+BAA+B,kCAAqC,EAChG,KAAC,sBAAsB,IAAC,SAAS,EAAC,kCAAkC,8DAAuE,IACzI,EACN,KAAC,gBAAgB,IAAC,SAAS,EAAC,2BAA2B,GAAG,IAC1C,EACpB,KAAC,oBAAoB,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAC5D,KAAC,eAAe,IAAC,SAAS,EAAC,0BAA0B,YAChD,MAAM,CAAC,MAAM,GAAG,CAAC;gCACd,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,WAAW,EAAE,cAAM,OAAA,0BAA0B,CAAC,KAAK,CAAC,EAAjC,CAAiC,GAAoB,GAE/N,IACR,EACd,MAAC,WAAW,IAAC,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,yBAAyB,EAAE,SAAS,EAAC,yFAAyF,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,aACtO,MAAC,iBAAiB,IAAC,SAAS,EAAC,0BAA0B,aACnD,0BACI,KAAC,gBAAgB,IAAC,SAAS,EAAC,+BAA+B,yBAA4B,EACvF,KAAC,sBAAsB,IAAC,SAAS,EAAC,kCAAkC,oDAA6D,IAC/H,EACN,KAAC,gBAAgB,IAAC,SAAS,EAAC,2BAA2B,GAAG,IAC1C,EACpB,KAAC,oBAAoB,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAC5D,KAAC,eAAe,IAAC,SAAS,EAAC,0BAA0B,YAChD,eAAe,CAAC,MAAM,GAAG,CAAC;gCACvB,KAAC,iBAAiB,IACd,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,cAAM,OAAA,yBAAyB,CAAC,KAAK,CAAC,EAAhC,CAAgC,GAClC,GAEX,IACP,EACf,MAAC,WAAW,IAAC,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,2BAA2B,EAAE,SAAS,EAAC,sDAAsD,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,aACvM,MAAC,iBAAiB,IAAC,SAAS,EAAC,0BAA0B,aACnD,0BACI,KAAC,gBAAgB,IAAC,SAAS,EAAC,+BAA+B,6BAAgC,EAC3F,KAAC,sBAAsB,IAAC,SAAS,EAAC,kCAAkC,+DAAwE,IAC1I,EACN,KAAC,gBAAgB,IAAC,SAAS,EAAC,2BAA2B,GAAG,IAC1C,EACpB,KAAC,oBAAoB,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAC5D,KAAC,eAAe,IAAC,SAAS,EAAC,0BAA0B,YAChD,MAAM,CAAC,MAAM,GAAG,CAAC;gCACd,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAuB,EAAE,cAAc,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,WAAW,EAAE,cAAM,OAAA,2BAA2B,CAAC,KAAK,CAAC,EAAlC,CAAkC,GAAoB,GAEvP,IACR,EACd,MAAC,WAAW,IAAC,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,sBAAsB,EAAE,SAAS,EAAC,qDAAqD,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,aAC5L,MAAC,iBAAiB,IAAC,SAAS,EAAC,0BAA0B,aACnD,0BACI,KAAC,gBAAgB,IAAC,SAAS,EAAC,+BAA+B,mCAAsC,EACjG,KAAC,sBAAsB,IAAC,SAAS,EAAC,kCAAkC,4DAAqE,IACvI,EACN,KAAC,gBAAgB,IAAC,SAAS,EAAC,2BAA2B,GAAG,IAC1C,EACpB,KAAC,oBAAoB,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAC5D,KAAC,eAAe,IAAC,SAAS,EAAC,0BAA0B,YACjD,KAAC,yBAAyB,IAAC,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAM,OAAA,sBAAsB,CAAC,KAAK,CAAC,EAA7B,CAA6B,GAA8B,GAC/K,IACR,EAEd,MAAC,WAAW,IAAC,IAAI,EAAE,uBAAuB,EAAE,YAAY,EAAE,0BAA0B,EAAE,SAAS,EAAC,sBAAsB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,aACrK,MAAC,iBAAiB,eACd,0BACI,KAAC,gBAAgB,iCAAkC,EACnD,MAAC,sBAAsB,uDAAsC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,IAAI,qBAAuC,IAC9H,EACN,KAAC,gBAAgB,KAAG,IACJ,EACpB,KAAC,oBAAoB,KAAG,EACxB,MAAC,iBAAiB,IAAC,SAAS,EAAC,wBAAwB,aACjD,MAAC,WAAW,IAAC,OAAO,EAAC,aAAa,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,iBAAiB,aACnE,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,GAAI,WAET,EACd,MAAC,WAAW,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAM,OAAA,0BAA0B,CAAC,KAAK,CAAC,EAAjC,CAAiC,aACrF,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,UAEL,IACE,IACV,IACX,GACR,CACN,CAAA;AACL,CAAC,CAAC,CAAC","sourcesContent":["import React, { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from \"react\";\nimport FilterComponent, { FilterOperator, FilterRule, FilterRuleType } from \"../../../components/core/common/FilterComponent\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { getFilterObjectFromLocalStorage } from \"../list/SolidListView\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport qs from \"qs\";\nimport { SolidSaveCustomFilterForm } from \"./SolidSaveCustomFilterForm\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { hydrateRelationRules } from \"../../../helpers/hydrateRelationRules\";\nimport { useSession } from '../../../hooks/useSession'\nimport GroupingComponent, { AggregationRule, GroupingRule, DateGroupingFormat } from \"./GroupingComponent\";\nimport { Bookmark, Check, Filter, Pencil, Plus, Search, SearchX, Trash2, X } from \"lucide-react\";\nimport { SolidButton } from \"../../shad-cn-ui/SolidButton\";\nimport { SolidInput } from \"../../shad-cn-ui/SolidInput\";\nimport {\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogDescription,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n} from \"../../shad-cn-ui/SolidDialog\";\n\n\nconst getRandomInt = (min: number, max: number) => {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\ninterface PredefinedSearch {\n name: string;\n description?: string;\n filters: Record<string, any>;\n}\n\nexport type SearchableField = {\n fieldName: string;\n displayName: string;\n searchField: string;\n matchMode: string;\n}\n\nexport type GroupableField = {\n fieldName: string;\n displayName: string;\n searchField: string;\n matchMode: string;\n type: string;\n ormType: string;\n relationType: string;\n computedFieldValueType: string;\n}\n\nconst extractFields = (nodes: any[] = []): any[] => {\n const result: any[] = [];\n\n for (const node of nodes) {\n if (node?.type === \"field\") {\n result.push(node);\n }\n\n if (Array.isArray(node?.children)) {\n result.push(...extractFields(node.children));\n }\n }\n\n return result;\n};\n\n\nconst transformFiltersToRules = (filter: any, parentRule: number | null = null): FilterRule => {\n if (!filter || typeof filter !== \"object\" || Object.keys(filter).length === 0) {\n throw new Error(\"Invalid filter: expected a non-null object with properties\");\n }\n if (!filter || typeof filter !== \"object\") {\n throw new Error(\"Invalid filter: expected a non-null object\");\n }\n const currentId = idCounter++;\n if (filter[\"$or\"]) {\n return {\n id: currentId,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.OR,\n parentRule,\n children: filter[\"$or\"]\n .filter((sub: any) => {\n // Filter out null, undefined, empty strings, and empty objects\n if (sub == null) return false;\n if (typeof sub === \"string\" && sub.trim() === \"\") return false;\n if (typeof sub === \"object\" && Object.keys(sub).length === 0) return false;\n return true;\n })\n .map((subFilter: any) => transformFiltersToRules(subFilter, currentId))\n };\n }\n\n if (filter[\"$and\"]) {\n return {\n id: currentId,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.AND,\n parentRule,\n children: filter[\"$and\"]\n .filter((sub: any) => {\n // Filter out null, undefined, empty strings, and empty objects\n if (sub == null) return false;\n if (typeof sub === \"string\" && sub.trim() === \"\") return false;\n if (typeof sub === \"object\" && Object.keys(sub).length === 0) return false;\n return true;\n })\n .map((subFilter: any) => transformFiltersToRules(subFilter, currentId))\n };\n }\n\n // Handle single rule condition\n for (const fieldName in filter) {\n const condition = filter[fieldName];\n if (!condition || typeof condition !== \"object\") {\n throw new Error(`Invalid condition for field '${fieldName}'`);\n }\n\n // CASE 1: relation filter → unwrap first\n if (condition?.id && typeof condition?.id === \"object\") {\n for (const matchMode in condition.id) {\n const rawValue = condition.id[matchMode];\n const mathcModeValue: any = matchMode\n return {\n id: currentId,\n type: FilterRuleType.RULE,\n fieldName,\n matchMode: mathcModeValue,\n value: Array.isArray(rawValue) ? rawValue : [rawValue],\n parentRule,\n children: []\n };\n }\n }\n\n // CASE 2: normal field → loop stays\n for (const matchMode in condition) {\n const rawValue = condition[matchMode];\n const mathcModeValue: any = matchMode\n return {\n id: currentId,\n type: FilterRuleType.RULE,\n fieldName,\n matchMode: mathcModeValue,\n value: Array.isArray(rawValue) ? rawValue : [rawValue],\n parentRule,\n children: []\n };\n }\n\n\n }\n throw new Error(ERROR_MESSAGES.INVALID_FILTER_STRUCTURE);\n}\n\n\n\n\nlet idCounter = 1;\nconst generateId = () => Date.now() + Math.floor(Math.random() * 1000);\n\n\nconst transformRulesToFilters = (input: any, viewData: any) => {\n\n // Helper function to process individual rules\n const processRule = (rule: any) => {\n if (rule.value !== undefined && rule.value !== null) {\n\n // Ensure rule.value is always an array\n let values = typeof rule.value[0] === \"object\" ? rule.value.map((i: any) => i?.value ? i?.value : i) : rule?.value;\n if (rule.matchMode !== '$in' && rule.matchMode !== '$notIn' && rule.matchMode !== '$between' && rule.matchMode !== '$null' && rule.matchMode !== '$notNull') {\n values = values[0];\n }\n\n\n const fieldMeta = viewData?.data?.solidFieldsMetadata?.[rule.fieldName];\n const isManyToMany = fieldMeta?.type === 'relation' && fieldMeta?.relationType === 'many-to-many';\n\n\n let transformedRule;\n if (isManyToMany) {\n // For many-to-many relations, always use array format for $in/$notIn\n transformedRule = {\n [rule.fieldName]: {\n id: {\n [rule.matchMode]: values // Keep as array\n }\n }\n };\n } else {\n // Rule transformation\n transformedRule = {\n [rule.fieldName]: {\n [rule.matchMode]: values // Assuming `value` is always an array with `value` and `label`\n }\n };\n }\n\n let processedFields;\n if (rule.children && rule.children.length > 0) {\n processedFields = rule.children.map((child: any) => processRuleGroup(child)).filter((child: any) => child != null);;\n }\n if (processedFields) {\n return { ...transformedRule, processedFields }\n }\n return { ...transformedRule }\n\n }\n\n };\n\n // Helper function to process rule groups\n const processRuleGroup = (ruleGroup: any) => {\n const operator = ruleGroup.matchOperator === 'or' ? '$or' : '$and';\n const children = ruleGroup.children.map((child: any) => {\n if (child.type === 'rule') {\n // Process the rule\n return processRule(child);\n } else if (child.type === 'rule_group') {\n // Process the rule group recursively\n return processRuleGroup(child);\n }\n }).filter((child: any) => child != null);\n // If no valid children, return null\n // if (children.length === 0) {\n // return null;\n // }\n\n // If only one child, return it directly without wrapping in operator\n // if (children.length === 1) {\n // return children[0];\n // }\n\n return {\n [operator]: children\n };\n };\n\n\n // Start processing the root rule group\n const filterObject = processRuleGroup(input);\n\n if (!filterObject) {\n return {};\n }\n\n function liftProcessedFields(filters: any) {\n if (!filters || typeof filters !== 'object') return filters;\n\n const processArray = (arr: any) => {\n let newArr = [];\n for (let obj of arr) {\n if (obj && obj.processedFields) {\n let processed: any = processArray(obj.processedFields); // Recursively process nested processedFields\n delete obj.processedFields;\n newArr.push(obj, ...processed);\n } else {\n newArr.push(obj);\n }\n\n for (let key in obj) {\n if (Array.isArray(obj[key])) {\n obj[key] = processArray(obj[key]);\n }\n }\n }\n return newArr;\n }\n\n for (let key in filters) {\n if (Array.isArray(filters[key])) {\n filters[key] = processArray(filters[key]);\n }\n }\n\n return filters;\n }\n\n\n return liftProcessedFields(filterObject)\n\n}\n\n\ntype GroupedType = {\n values: string[];\n searchField: any;\n matchMode: string;\n}\n\n// Build nested condition for relation fields\nfunction buildNestedCondition(path: string, operatorKey: string, value: any) {\n const keys = path.split(\".\").filter(Boolean);\n const leaf = { [operatorKey]: value };\n return keys.reduceRight((acc, key) => ({ [key]: acc }), leaf);\n}\n\nconst tranformSearchToFilters = (input: any) => {\n if (!input || !input.$and) return input;\n\n const grouped: Record<string, GroupedType> = {};\n\n input.$and.forEach(({ fieldName, value, searchField, matchMode }: any) => {\n const val = Array.isArray(value) && value.length === 1 ? value[0] : value;\n\n if (!grouped[fieldName]) {\n grouped[fieldName] = { values: [], searchField: searchField || \"\", matchMode: matchMode || \"$containsi\" };\n }\n\n if (Array.isArray(val)) {\n grouped[fieldName]?.values.push(...val);\n } else {\n grouped[fieldName]?.values.push(val);\n }\n });\n\n // return {\n // $and: Object.entries(grouped).map(([fieldName, values]) => ({\n // [fieldName]: {\n // $containsi: values.length === 1 ? values[0] : values\n // }\n // }))\n // };\n\n const andFilters: any[] = [];\n\n Object.entries(grouped).forEach(([fieldName, value]) => {\n\n const isNested = value.searchField ? value.searchField.includes(\".\") : false;\n\n if (isNested) {\n\n // NESTED: use $eq and expand dot-notation into nested objects\n if (value.values.length === 1) {\n andFilters.push(buildNestedCondition(value.searchField, value.matchMode, value.values[0]));\n } else {\n andFilters.push({\n $or: value.values.map(v => buildNestedCondition(value.searchField, value.matchMode, v)),\n });\n }\n } else {\n\n if (value.values.length === 1) {\n andFilters.push({\n [fieldName]: {\n $containsi: value.values[0]\n }\n });\n } else {\n andFilters.push({\n $or: value.values.map((v) => ({\n [fieldName]: { $containsi: v }\n }))\n });\n }\n }\n });\n\n return {\n $and: andFilters\n };\n}\n\nexport const mergeSearchAndCustomFilters = (transformedFilter: any, newFilter: any, transformedFilterName: string, newFilterName: string) => {\n const filters: any = {};\n\n // Add only non-null filters\n if (transformedFilter && Object.keys(transformedFilter).length > 0) {\n filters[transformedFilterName] = transformedFilter;\n }\n if (newFilter && Object.keys(newFilter).length > 0) {\n filters[newFilterName] = newFilter;\n }\n\n // Return the combined filters object\n return filters;\n}\n\n\nexport const mergeAllDiffFilters = (customFilter: any, searchFilter: any, savedFilter: any, preDefinedFilter?: any, groupingRules?: GroupingRule[], aggregationRules?: AggregationRule[]) => {\n const filters: any = {};\n\n // Add only non-null filters\n if (customFilter && Object.keys(customFilter).length > 0) {\n filters[\"custom_filter_predicate\"] = customFilter;\n }\n if (searchFilter && Object.keys(searchFilter).length > 0) {\n filters[\"search_predicate\"] = searchFilter;\n }\n if (savedFilter && Object.keys(savedFilter).length > 0) {\n filters[\"saved_filter_predicate\"] = savedFilter;\n }\n if (preDefinedFilter && Object.keys(preDefinedFilter).length > 0) {\n filters[\"predefined_search_predicate\"] = preDefinedFilter;\n }\n if (groupingRules && Object.keys(groupingRules).length > 0) {\n filters[\"grouping_rules\"] = groupingRules;\n }\n if (aggregationRules && Object.keys(aggregationRules).length > 0) {\n filters[\"aggregation_rules\"] = aggregationRules;\n }\n // Return the combined filters object\n return filters;\n}\n\nconst SavedFilterList = ({ savedfilter, activeSavedFilter, applySavedFilter, openSavedCustomFilter, setSavedFilterTobeDeleted, setIsDeleteSQDialogVisible, isFocused, onMouseEnter }: any) => {\n const isActive = Number(activeSavedFilter) == savedfilter.id;\n\n return (\n <div className=\"solid-saved-filter-item\" onMouseEnter={onMouseEnter}>\n <div className=\"solid-saved-filter-main-wrap\">\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className={`solid-saved-filter-main w-full ${isActive ? \"is-active\" : \"\"} ${isFocused ? \"solid-search-overlay-option-active\" : \"\"}`}\n onClick={() => applySavedFilter(savedfilter)}\n title={savedfilter?.description}\n >\n {savedfilter.name}\n </SolidButton>\n </div>\n <div className=\"solid-saved-filter-actions\">\n {savedfilter.isSeeded !== true &&\n <>\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-saved-filter-icon-btn\"\n onClick={() => openSavedCustomFilter(savedfilter)}\n >\n <Pencil size={14} />\n </SolidButton>\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-saved-filter-icon-btn is-danger\"\n onClick={() => {\n setSavedFilterTobeDeleted(savedfilter.id),\n setIsDeleteSQDialogVisible(true);\n }}\n >\n <Trash2 size={14} />\n </SolidButton>\n </>\n }\n\n </div>\n </div>\n )\n}\n\nconst replacePlaceholders = (obj: any, searchValue: string): any => {\n if (typeof obj === 'string') {\n return obj.replace(/\\{\\{search\\}\\}/g, searchValue);\n }\n if (Array.isArray(obj)) {\n return obj.map(item => replacePlaceholders(item, searchValue));\n }\n if (obj && typeof obj === 'object') {\n const newObj: any = {};\n for (const key in obj) {\n newObj[key] = replacePlaceholders(obj[key], searchValue);\n }\n return newObj;\n }\n return obj;\n};\n\n\nconst extractChips = (node: any): any[] => {\n if (!node) return [];\n\n // If node has $and\n if (node.$and && Array.isArray(node.$and)) {\n return node.$and.flatMap(extractChips);\n }\n\n // If node has $or\n if (node.$or && Array.isArray(node.$or)) {\n return node.$or.flatMap(extractChips);\n }\n\n // Leaf condition\n const field = Object.keys(node)[0];\n const operatorObj = node[field];\n\n // ✅ Normal case\n if (operatorObj?.$containsi) {\n return [{\n columnName: field,\n value: operatorObj.$containsi,\n columnDisplayName: field.charAt(0).toUpperCase() + field.slice(1),\n searchField: field,\n matchMode: \"$containsi\"\n }];\n }\n // ✅ Nested case (like city.name)\n else if (typeof operatorObj === \"object\") {\n const nestedField = Object.keys(operatorObj)[0];\n const nestedOperatorObj = operatorObj[nestedField];\n\n const operatorKey = nestedOperatorObj\n ? Object.keys(nestedOperatorObj).find(k => k.startsWith(\"$\"))\n : null;\n\n if (operatorKey) {\n return [{\n columnName: field,\n value: nestedOperatorObj[operatorKey],\n columnDisplayName: field.charAt(0).toUpperCase() + field.slice(1),\n searchField: `${field}.${nestedField}`,\n matchMode: operatorKey\n }];\n }\n }\n\n return [];\n};\n\n\n\ntype RelationCache = Map<string, { label: string; value: number }>;\n\n\n\nexport const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handleApplyCustomFilter, showSaveFilterPopup, setShowSaveFilterPopup, filterPredicates }: any, ref) => {\n type OverlayOption =\n | { id: string; kind: \"field\"; field: any }\n | { id: string; kind: \"predefined\"; predefined: any }\n | { id: string; kind: \"saved\"; saved: any };\n type ManagedChipItem = {\n id: string;\n type: \"saved\" | \"search\" | \"predefined\" | \"custom\" | \"grouping\";\n label: string;\n onRemove: () => void;\n onOpen?: () => void;\n };\n\n const defaultState: FilterRule[] = [\n {\n id: 1,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.OR,\n parentRule: null,\n children: [\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: 1,\n children: []\n },\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: 1,\n children: []\n }\n ]\n }\n ];\n\n const defaultAggregationRules: AggregationRule[] = [\n {\n id: 1,\n operator: \"count\",\n fieldName: \"id\",\n locked: true\n }\n ];\n\n const defaultGroupingRules: GroupingRule[] = [\n { id: 1, fieldName: null, dateGrouping: null }\n ];\n\n const [initialState, setInitialState] = useState(defaultState);\n const pathname = usePathname();\n const searchableEntityLabel =\n viewData?.data?.solidView?.displayName ||\n viewData?.data?.solidView?.model?.displayName ||\n \"records\";\n\n\n const searchParams = useSearchParams() // Converts the query params to a string\n const activeSavedFilter = searchParams?.get(\"savedQuery\");\n\n const router = useRouter();\n\n const chipsRef = useRef<HTMLDivElement | null | any>(null);\n\n // filterRules is used to maintian the ui of custom filter \n // customFilter is used to maintian the transformed filter object of custom filter\n const [filterRules, setFilterRules] = useState<FilterRule[]>(initialState);\n const [customFilter, setCustomFilter] = useState<any | null>(null);\n\n const [fields, setFields] = useState<any[]>([]);\n const [searchableFields, setSearchableFields] = useState<any[]>([]);\n const [groupableFields, setGroupableFields] = useState<GroupableField[]>([]);\n\n const [groupingRules, setGroupingRules] = useState<GroupingRule[]>(defaultGroupingRules);\n const [aggregationRules, setAggregationRules] = useState<AggregationRule[]>(defaultAggregationRules);\n\n // used to show the list of predefined searches \n const [predefinedSearches, setPredefinedSearches] = useState<PredefinedSearch[]>([]);\n\n // used to open / close the custom fitler popup \n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState<boolean>(false);\n\n // used to open / close the group fitler popup \n const [showGroupFilterElement, setShowGroupFilterElement] = useState<boolean>(false);\n\n\n // searchChips maintain the ui to display searched query \n // searchFilter maintain the transformed filter of the searched query \n const [searchChips, setSearchChips] = useState<{ columnName?: string; value: string }[]>([]);\n const [searchFilter, setSearchFilter] = useState<any | null>(null);\n\n // predefinedSearchChip maintain the ui to display predefined searches query \n const [predefinedSearchChip, setPredefinedSearchChip] = useState<{ name: string; value: string } | null>(null);\n\n // state to maintain the text typed in the search input box\n const [inputValue, setInputValue] = useState<string | null>(\"\");\n const [focusedIndex, setFocusedIndex] = useState(-1);\n\n // flag to prevent un necessary re renders\n const [hasSearched, setHasSearched] = useState<boolean>(false);\n\n // currentSavedFilterData is used to save the whole object of saved filter \n const [currentSavedFilterData, setCurrentSavedFilterData] = useState<any>();\n const [currentSavedFilterQuery, setCurrentSavedFilterQuery] = useState<any>();\n const [currentSavedFilterRules, setCurrentSavedFilterRules] = useState<any>();\n const [showSavedFilterComponent, setShowSavedFilterComponent] = useState<boolean>(false);\n\n\n const [savedFilterTobeDeleted, setSavedFilterTobeDeleted] = useState<any>();\n const [isDeleteSQDialogVisible, setIsDeleteSQDialogVisible] = useState<boolean>(false);\n const [savedFilterQueryString, setSavedFilterQueryString] = useState<string>();\n const [showOverlay, setShowOverlay] = useState(false);\n const overlayRef = useRef<HTMLDivElement | null>(null);\n const [showChipManager, setShowChipManager] = useState(false);\n const chipManagerRef = useRef<HTMLDivElement | null>(null);\n const chipManagerTriggerRef = useRef<HTMLButtonElement | null>(null);\n\n useEffect(() => {\n if (focusedIndex >= 0 && showOverlay) {\n const activeElement = document.querySelector(`.solid-search-overlay-option-active`);\n if (activeElement) {\n activeElement.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n }\n }, [focusedIndex, showOverlay]);\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const [refreshKey, setRefreshKey] = useState(0);\n\n const [predefinedSearchBaseFilter, setPredefinedSearchBaseFilter] = useState<any>(null);\n\n const [savedFilters, setSavedFilters] = useState([]);\n const [savedFiltersLoaded, setSavedFiltersLoaded] = useState(false);\n\n const entityApi = createSolidEntityApi(\"savedFilters\");\n const {\n useCreateSolidEntityMutation,\n useDeleteSolidEntityMutation,\n useGetSolidEntityByIdQuery,\n useUpdateSolidEntityMutation,\n useLazyGetSolidEntitiesQuery\n } = entityApi;\n\n const [\n createEntity,\n { isSuccess: isEntityCreateSuccess, isError: isEntityCreateError, error: entityCreateError },\n ] = useCreateSolidEntityMutation();\n\n const [\n updateEntity,\n { isSuccess: isEntityUpdateSuceess, isError: isEntityUpdateError, error: entityUpdateError },\n ] = useUpdateSolidEntityMutation();\n\n const [\n deleteEntity,\n { isSuccess: isEntityDeleteSuceess, isError: isEntityDeleteError, error: entityDeleteError },\n ] = useDeleteSolidEntityMutation();\n\n const [triggerGetSolidEntities, { data: solidEntityListViewData, isLoading: isSavedFilterLoading, error }] = useLazyGetSolidEntitiesQuery();\n\n const [savedFilterFetchDataRefreshKey, setSavedFilterFetchDataRefreshKey] = useState(0);\n\n\n\n useEffect(() => {\n const fn = async () => {\n if (!viewData?.data?.solidView?.model?.id || !viewData?.data?.solidView?.id || !user?.id) {\n return;\n }\n setSavedFiltersLoaded(false)\n const filters = {\n $or: [\n {\n $and: [\n { model: { $in: [viewData?.data?.solidView?.model?.id] } },\n { view: { $in: [viewData?.solidView?.id] } },\n { user: { $in: [user?.id] } },\n { isPrivate: { $eq: true } }\n ]\n },\n {\n $and: [\n { model: { $in: [viewData?.data?.solidView?.model?.id] } },\n { view: { $in: [viewData?.solidView?.id] } },\n { isPrivate: { $eq: false } }\n ]\n }\n\n ]\n }\n const queryData: any = {\n offset: 0,\n limit: 10,\n filters: filters,\n populate: [\"model\", \"view\", \"user\"],\n sort: [\"id:desc\"],\n };\n const queryString = qs.stringify(queryData, { encodeValuesOnly: true });\n setSavedFilterQueryString(queryString)\n const savedFilter = await triggerGetSolidEntities(queryString).unwrap();\n\n if (savedFilter) {\n // console.log(\"savedFilter\", savedFilter);\n setSavedFilters(savedFilter?.records)\n }\n setSavedFiltersLoaded(true);\n }\n fn()\n }, [\n activeSavedFilter,\n savedFilterFetchDataRefreshKey,\n viewData?.data?.solidView?.id,\n viewData?.data?.solidView?.model?.id,\n user?.id\n ])\n\n useImperativeHandle(ref, () => ({\n clearFilter: () => {\n setFilterRules(initialState);\n },\n openGroupingDialog: () => {\n setShowOverlay(false);\n setShowGroupFilterElement(true);\n },\n openCustomFilterDialog: () => {\n setShowOverlay(false);\n setShowGlobalSearchElement(true);\n }\n }));\n\n useEffect(() => {\n const fn = async () => {\n let searchChips: any;\n let customChips: any;\n if (savedFiltersLoaded) {\n\n if (activeSavedFilter && savedFilters.length === 0) return;\n\n const queryObject = getFilterObjectFromLocalStorage();\n // const savedQuery = parsedSearchParams?.get(\"savedQuery\");\n if (activeSavedFilter) {\n const currentSavedFilterId = Number(activeSavedFilter);\n const currentSavedFilterData: any = savedFilters.find((savedFilter: any) => savedFilter.id === currentSavedFilterId);\n setCurrentSavedFilterData(currentSavedFilterData);\n if (currentSavedFilterData) {\n const filterJson = JSON.parse(currentSavedFilterData?.filterQueryJson);\n if (filterJson) {\n let finalSavedFilter = filterJson\n setCurrentSavedFilterQuery(finalSavedFilter)\n }\n }\n } else {\n setCurrentSavedFilterData(null)\n setCurrentSavedFilterQuery(null)\n }\n if (queryObject) {\n if (queryObject) {\n searchChips = queryObject?.search_predicate || null;\n customChips = queryObject?.custom_filter_predicate || null;\n }\n }\n if (searchChips) {\n setSearchFilter(searchChips);\n // const formattedChips = searchChips?.$and.map((chip: any, key: any) => {\n // const chipKey = Object.keys(chip)[0]; // Get the key, e.g., \"displayName\"\n // const chipValue = chip[chipKey]?.$containsi; // Get the value of \"$containsi\"\n // const chipdata = {\n // columnName: chipKey,\n // value: chipValue\n // };\n // return chipdata\n // }\n // );\n // setSearchChips(formattedChips);\n\n const formattedChips = extractChips(searchChips);\n setSearchChips(formattedChips);\n\n }\n if (customChips && Object.keys(customChips).length !== 0) {\n setCustomFilter(customChips);\n const rules: FilterRule = transformFiltersToRules(customChips);\n const hydratedRules = await hydrateRelationRules([rules], viewData);\n setFilterRules(hydratedRules);\n }\n const hasGroupingRules = (queryObject?.grouping_rules?.some((rule: any) => rule.fieldName !== null));\n\n if (hasGroupingRules) {\n setGroupingRules(queryObject?.grouping_rules);\n } else {\n // If no grouping rules in localStorage check layout\n const layoutGroupBy = viewData?.data?.solidView?.layout?.attrs?.groupBy;\n\n if (Array.isArray(layoutGroupBy) && layoutGroupBy.length > 0) {\n const initialGroupingRules: GroupingRule[] = layoutGroupBy.map((groupStr: string, index: number) => {\n const [fieldName, dateGrouping] = groupStr.split(\":\");\n return {\n id: Date.now() + index,\n fieldName: fieldName || null,\n dateGrouping: (dateGrouping as DateGroupingFormat) || null\n };\n });\n setGroupingRules(initialGroupingRules);\n }\n }\n\n if (queryObject?.aggregation_rules && queryObject?.aggregation_rules !== aggregationRules) {\n setAggregationRules(queryObject?.aggregation_rules);\n }\n\n\n setRefreshKey((prev) => prev + 1)\n setHasSearched(true);\n }\n }\n fn()\n }, [viewData?.data?.solidView?.id, activeSavedFilter, savedFiltersLoaded])\n\n useEffect(() => {\n const fn = async () => {\n if (filterPredicates) {\n if (filterPredicates?.custom_filter_predicate && filterPredicates?.custom_filter_predicate !== customFilter) {\n setCustomFilter(filterPredicates?.custom_filter_predicate);\n const rules: FilterRule = transformFiltersToRules(filterPredicates.custom_filter_predicate);\n const hydratedRules = await hydrateRelationRules([rules], viewData);\n setFilterRules(hydratedRules);\n }\n if (filterPredicates?.search_predicate && filterPredicates?.search_predicate !== searchFilter) {\n setSearchFilter(filterPredicates?.search_predicate);\n // const formattedChips = filterPredicates.search_predicate?.$and.map((chip: any, key: any) => {\n // const chipKey = Object.keys(chip)[0]; // Get the key, e.g., \"displayName\"\n // const chipValue = chip[chipKey]?.$containsi; // Get the value of \"$containsi\"\n // const chipdata = {\n // columnName: chipKey,\n // value: chipValue\n // };\n // return chipdata\n // }\n // );\n // setSearchChips(formattedChips);\n const formattedChips = extractChips(filterPredicates.search_predicate);\n setSearchChips(formattedChips);\n\n }\n }\n }\n fn()\n }, [filterPredicates])\n\n useEffect(() => {\n if (viewData?.data?.solidFieldsMetadata) {\n // Reset search state when switching views\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null);\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n setInputValue(\"\");\n\n\n let fieldsData = viewData?.data?.solidFieldsMetadata;\n // console.log(`fiels data while rendering solid global search element: `);\n // console.log(fieldsData);\n\n const layoutChildren = viewData?.data?.solidView?.layout?.children ?? [];\n const fieldElements = extractFields(layoutChildren);\n\n\n const fieldsList = Object.entries(fieldsData ?? {}).map(([key, value]: any) => {\n const viewFieldElement = fieldElements.find(\n (f: any) => f?.attrs?.name === key\n );\n return {\n name: value.displayName,\n value: key,\n type: value.type,\n ormType: value.ormType,\n matchMode: viewFieldElement?.attrs?.searchMatchMode,\n searchField: viewFieldElement?.attrs?.searchField ?? null,\n isSearchable: viewFieldElement?.attrs?.isSearchable ?? false,\n relationType: value?.relationType ?? null,\n };\n });\n\n const filterableFieldsList = fieldsList.filter((field: any) => {\n switch (field.type) {\n case \"mediaSingle\":\n case \"mediaMultiple\":\n return false;\n default:\n return true;\n }\n });\n\n setFields(filterableFieldsList);\n\n const searchableFieldsList = fieldsList.filter((field: any) => {\n if (!field.isSearchable) return false;\n\n switch (field.type) {\n case \"relation\":\n // Only include relation if searchField is present\n return !!field.searchField;\n case \"longText\":\n case \"shortText\":\n case \"selectionStatic\":\n case \"selectionDynamic\":\n return true;\n // case \"selectionStatic\":\n case \"computed\":\n return field.ormType === \"varchar\";\n default:\n return false;\n }\n });\n\n const groupableFieldsList = fieldsList.filter((field: any) => {\n switch (field.type) {\n case \"relation\":\n // Only include relation if searchField is present\n if (field.relationType === \"many-to-one\")\n return true;\n return false;\n case \"longText\":\n case \"shortText\":\n case \"selectionStatic\":\n case \"selectionDynamic\":\n case \"int\":\n case \"float\":\n case \"boolean\":\n case \"date\":\n case \"datetime\":\n return true;\n // case \"selectionStatic\":\n case \"computed\":\n return field.ormType === \"varchar\";\n default:\n return false;\n }\n });\n\n // Optionally map to a minimal structure if needed for UI\n let finalSearchableFieldsList: any = searchableFieldsList.map((field: any) => ({\n fieldName: field.value,\n displayName: field.name,\n searchField: field.searchField ?? \"\",\n matchMode: field.matchMode\n }));\n\n setSearchableFields(finalSearchableFieldsList);\n\n let finalGroupableFieldsList: any = groupableFieldsList.map((field: any) => ({\n fieldName: field.value,\n displayName: field.name,\n searchField: field.searchField ?? \"\",\n matchMode: field.matchMode,\n type: field.type,\n ormType: field.ormType,\n relationType: field.relationType,\n computedFieldValueType: field.computedFieldValueType\n }));\n\n setGroupableFields(finalGroupableFieldsList)\n\n const predefinedSearchesList = viewData?.data?.solidView?.layout?.attrs?.predefinedSearches || [];\n setPredefinedSearches(predefinedSearchesList);\n }\n // used to open the \n }, [viewData])\n\n useEffect(() => {\n if (chipsRef.current) {\n const inputElement = chipsRef.current.querySelector(\"input\");\n if (inputElement) {\n inputElement.addEventListener(\"input\", (e: any) => {\n setInputValue((e.target as HTMLInputElement).value);\n });\n }\n }\n }, []);\n\n\n const handleAddChip = (columnName?: string) => {\n if (inputValue?.trim()) {\n const fallbackField = searchableFields[0]; // guaranteed object\n if (!fallbackField) return;\n // Support comma-separated values: split, trim and add as separate chips\n const values = inputValue.split(\",\").map(v => v.trim()).filter(v => v !== \"\");\n const fieldName = columnName || fallbackField.fieldName;\n const chipsToAdd = values.map(v => ({\n columnName: fieldName,\n value: v,\n columnDisplayName: fallbackField.displayName,\n searchField: fallbackField.searchField,\n matchMode: fallbackField.matchMode\n }));\n\n setSearchChips((prev) => [...prev, ...chipsToAdd]);\n setInputValue(\"\");\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n\n }\n\n };\n\n const clearCustomFilter = () => {\n setFilterRules(initialState);\n setCustomFilter(null)\n // setPredefinedSearchChip(null)\n // setPredefinedSearchBaseFilter(null)\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n\n }\n\n\n const transformCustomFilterRules = (filterRules: any) => {\n const transformedFilter = transformRulesToFilters(filterRules[0], viewData);\n // If there's a predefined search, merge it with the new custom filter\n let finalCustomFilter = transformedFilter;\n // if (predefinedSearchChip && predefinedSearchBaseFilter) {\n // // Combine predefined filter with new custom filter\n // finalCustomFilter = {\n // $and: [predefinedSearchBaseFilter, transformedFilter]\n // };\n // }\n setCustomFilter(finalCustomFilter);\n setShowGlobalSearchElement(false);\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n }\n\n const transformSavedFilterRules = (filterRules: any) => {\n const transformedFilter = transformRulesToFilters(filterRules[0], viewData);\n\n // If there's a predefined search, merge it with the new custom filter\n let finalCustomFilter = transformedFilter;\n // if (predefinedSearchChip && predefinedSearchBaseFilter) {\n // // Combine predefined filter with new custom filter\n // finalCustomFilter = {\n // $and: [predefinedSearchBaseFilter, transformedFilter]\n // };\n // }\n setCurrentSavedFilterQuery(finalCustomFilter);\n setShowSavedFilterComponent(false);\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n\n\n }\n\n const applyGrouping = (groupingRules: GroupingRule[], aggregationRules: AggregationRule[]) => {\n setHasSearched(true)\n setShowGroupFilterElement(false);\n setGroupingRules(groupingRules);\n setAggregationRules(aggregationRules);\n setRefreshKey((prev) => prev + 1)\n }\n\n const openCustomFilterDialog = () => {\n setShowOverlay(false);\n setShowGlobalSearchElement(true);\n };\n\n const openGroupingDialog = () => {\n setShowOverlay(false);\n setShowGroupFilterElement(true);\n };\n\n useEffect(() => {\n if (refreshKey > 0 && hasSearched) {\n\n const formattedChips = {\n $and: searchChips.map((chip: any) => ({\n fieldName: chip.columnName,\n matchMode: chip.matchMode,\n value: [chip.value],\n searchField: chip.searchField ?? \"\",\n }))\n };\n\n\n const finalSearchFilter = tranformSearchToFilters(formattedChips);\n setSearchFilter(finalSearchFilter);\n\n let finalSavedFilter: any = currentSavedFilterQuery\n const finalPredefinedFilter = predefinedSearchBaseFilter\n\n const finalCustomFilter = customFilter\n const finalFilter = mergeAllDiffFilters(finalCustomFilter, finalSearchFilter, finalSavedFilter, finalPredefinedFilter, groupingRules, aggregationRules)\n handleApplyCustomFilter(finalFilter, true);\n setHasSearched(false)\n // }\n }\n }, [refreshKey]);\n\n\n // Handle predefined search selection\n\n const hasCustomFilterChanged = () => {\n if (!predefinedSearchChip || !customFilter || !predefinedSearchBaseFilter) {\n return false;\n }\n // Deep comparison to check if filter has changed\n return JSON.stringify(customFilter) !== JSON.stringify(predefinedSearchBaseFilter);\n };\n\n const openSavedCustomFilter = async (savedfilter: any) => {\n //Open custom filter popup \n // router.push(`?savedQuery=${savedfilter.id}`);\n // setShowGlobalSearchElement(true);\n // // dont refetch the data yet\n // const customFilter = JSON.parse(savedfilter.filterQueryJson);\n // setCustomFilter(customFilter ? customFilter : null);\n // if (customFilter) {\n // const formatedCustomChips: FilterRule = transformFiltersToRules(customFilter ? customFilter : null);\n // setFilterRules(formatedCustomChips ? [formatedCustomChips] : initialState);\n // }\n\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n\n // push the savedQuery=1 in url \n if (savedfilter?.id) {\n const savedfilterId = savedfilter.id;\n // router.push(`?savedQuery=${savedfilter.id}`);\n setShowOverlay(false);\n const currentSavedFilterData: any = savedFilters.find((savedFilter: any) => savedFilter.id === savedfilterId);\n setCurrentSavedFilterData(currentSavedFilterData);\n if (currentSavedFilterData) {\n const filterJson = JSON.parse(currentSavedFilterData?.filterQueryJson);\n if (filterJson) {\n let finalSavedFilter = filterJson\n setCurrentSavedFilterQuery(finalSavedFilter)\n const rules: FilterRule = transformFiltersToRules(finalSavedFilter ? finalSavedFilter : null);\n const hydratedRules = await hydrateRelationRules(\n [rules],\n viewData\n );\n setCurrentSavedFilterRules(hydratedRules ? hydratedRules : initialState);\n setShowSavedFilterComponent(true)\n }\n }\n } else {\n console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);\n }\n }\n\n const deleteSavedFilter = async () => {\n // delte the saved filter with id \n await deleteEntity(savedFilterTobeDeleted);\n // triggerGetSolidEntities(savedFilterQueryString);\n let parsedSearchParams = searchParams;\n const savedQuery = parsedSearchParams?.get(\"savedQuery\");\n if (savedFilterTobeDeleted == savedQuery) {\n const urlParams = new URLSearchParams(window.location.search);\n urlParams.delete(\"savedQuery\");\n router.push(`?${urlParams.toString()}`);\n }\n setIsDeleteSQDialogVisible(false);\n setTimeout(() => {\n setSavedFilterFetchDataRefreshKey(prev => prev + 1)\n }, 500)\n }\n const handleSaveFilter = async (formValues: any) => {\n setShowSaveFilterPopup(false)\n\n try {\n if (formValues.id) {\n const filterJson = currentSavedFilterQuery;\n const formData = new FormData();\n formData.append(\"name\", formValues.name);\n formData.append(\"filterQueryJson\", JSON.stringify(filterJson, null, 2));\n formData.append(\"modelId\", viewData?.data?.solidView?.model?.id);\n formData.append(\"viewId\", viewData?.data?.solidView?.id);\n formData.append(\"isPrivate\", formValues.isPrivate);\n formData.append(\"userId\", user?.id);\n\n await updateEntity({ id: +formValues.id, data: formData }).unwrap();\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Store in local storage with the URL as the key\n\n setPredefinedSearchBaseFilter(null);\n setTimeout(() => {\n router.push(`?savedQuery=${formValues.id}`);\n }, 500)\n } else {\n\n const filterJson = customFilter;\n const formData = new FormData();\n formData.append(\"name\", formValues.name);\n formData.append(\"filterQueryJson\", JSON.stringify(filterJson, null, 2));\n formData.append(\"modelId\", viewData?.data?.solidView?.model?.id);\n formData.append(\"viewId\", viewData?.data?.solidView?.id);\n formData.append(\"isPrivate\", formValues.isPrivate);\n formData.append(\"userId\", user?.id);\n const result = await createEntity(formData).unwrap();\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Store in local storage with the URL as the key\n\n setTimeout(() => {\n router.push(`?savedQuery=${result.data.id}`);\n }, 500)\n\n }\n } catch (error) {\n\n }\n }\n\n\n\n useEffect(() => {\n // Explicitly type the event as a MouseEvent\n function handleClickOutside(event: MouseEvent) {\n if (overlayRef.current && !overlayRef.current.contains(event.target as Node)) {\n setShowOverlay(false);\n }\n }\n if (showOverlay) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [showOverlay]);\n\n useEffect(() => {\n function handleChipManagerClickOutside(event: MouseEvent) {\n const targetNode = event.target as Node;\n if (chipManagerRef.current?.contains(targetNode)) return;\n if (chipManagerTriggerRef.current?.contains(targetNode)) return;\n setShowChipManager(false);\n }\n\n if (showChipManager) {\n document.addEventListener(\"mousedown\", handleChipManagerClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleChipManagerClickOutside);\n };\n }, [showChipManager]);\n\n const CustomChip = () => {\n // console.log(\"customFilter\", customFilter);\n const ruleCount =\n customFilter?.$or?.length ??\n customFilter?.$and?.length ??\n Object.keys(customFilter || {}).length;\n\n return (\n <li>\n <div className=\"custom-filter-chip-type\">\n <div className=\"flex align-items-center gap-2 text-base\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n onClick={() => {\n setShowGlobalSearchElement(true)\n }\n }>\n <rect width=\"20\" height=\"20\" rx=\"4\" fill=\"#722ED1\" />\n <path d=\"M8.66667 15V13.3333H11.3333V15H8.66667ZM6 10.8333V9.16667H14V10.8333H6ZM4 6.66667V5H16V6.66667H4Z\"\n fill=\"white\" />\n </svg>\n <span><strong>{ruleCount}</strong> rules applied</span>\n </div>\n\n {/* button to clear filter */}\n <button type=\"button\" onClick={clearCustomFilter} style={{ cursor: \"pointer\" }} className=\"ml-1\">\n <X size={14} />\n </button>\n </div>\n </li>\n )\n };\n\n\n //saved filter related code start\n\n const applySavedFilter = (savedfilter: any) => {\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Store in local storage with the URL as the key\n // push the savedQuery=1 in url \n if (savedfilter?.id) {\n router.push(`?savedQuery=${savedfilter.id}`);\n setShowOverlay(false);\n } else {\n console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);\n }\n }\n\n const removeSavedFilter = () => {\n const params = new URLSearchParams(searchParams.toString());\n setCurrentSavedFilterData(null);\n setCurrentSavedFilterQuery(null)\n if (params.has(\"savedQuery\")) {\n params.delete(\"savedQuery\");\n const newUrl = params.toString()\n ? `${pathname}?${params.toString()}`\n : pathname;\n router.push(newUrl);\n }\n }\n\n const SavedFiltersChip = () => {\n\n return (\n <li>\n <div className=\"custom-filter-chip-type\">\n <div className=\"flex align-items-center gap-2 text-base\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n onClick={() => {\n const fn = async () => {\n if (currentSavedFilterQuery) {\n const rules: FilterRule = transformFiltersToRules(currentSavedFilterQuery ? currentSavedFilterQuery : null);\n const hydratedRules = await hydrateRelationRules(\n [rules],\n viewData\n );\n setCurrentSavedFilterRules(hydratedRules ? hydratedRules : initialState);\n setShowSavedFilterComponent(true)\n }\n }\n fn()\n }\n }\n >\n <rect width=\"20\" height=\"20\" rx=\"4\" fill=\"#722ED1\" />\n <path d=\"M8.66667 15V13.3333H11.3333V15H8.66667ZM6 10.8333V9.16667H14V10.8333H6ZM4 6.66667V5H16V6.66667H4Z\"\n fill=\"white\" />\n </svg>\n <span><strong>{currentSavedFilterData?.name}</strong></span>\n </div>\n\n {/* button to clear filter */}\n <button type=\"button\" onClick={removeSavedFilter} style={{ cursor: \"pointer\" }} className=\"ml-1\">\n <X size={14} />\n </button>\n </div>\n </li>\n )\n };\n\n const removeGrouping = () => {\n setGroupingRules(defaultGroupingRules);\n setAggregationRules(defaultAggregationRules);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n }\n\n const GroupingChip = () => {\n return (\n <li className=\"solid-global-search-chip\">\n <div className=\"flex align-items-center gap-2\">\n <div className=\"flex align-items-center gap-2\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n\n onClick={() => setShowGroupFilterElement(true)}\n >\n <rect width=\"20\" height=\"20\" rx=\"4\" fill=\"#722ED1\" />\n <path d=\"M8.66667 15V13.3333H11.3333V15H8.66667ZM6 10.8333V9.16667H14V10.8333H6ZM4 6.66667V5H16V6.66667H4Z\"\n fill=\"white\" />\n </svg>\n <span><strong>{groupingRules.length}</strong> Grouping rules applied</span>\n </div>\n\n {/* button to clear filter */}\n <button type=\"button\" onClick={removeGrouping} style={{ cursor: \"pointer\" }} className=\"ml-1\">\n <X size={14} />\n </button>\n </div>\n </li>\n )\n };\n\n\n\n\n //saved filter related code end\n\n\n // search related code start\n\n const handleRemoveChipGroup = (columnName: string) => {\n const updatedChips = searchChips.filter(chip => chip.columnName !== columnName);\n setSearchChips(updatedChips);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n\n };\n\n const groupedSearchChips = searchChips.reduce((acc: Record<string, string[]>, chip) => {\n const key = chip.columnName;\n if (!key) return acc; // skip if undefined\n\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(chip.value);\n return acc;\n }, {});\n\n const customRuleCount =\n customFilter?.$or?.length ??\n customFilter?.$and?.length ??\n Object.keys(customFilter || {}).length;\n\n const managedChipItems = useMemo<ManagedChipItem[]>(() => {\n const items: ManagedChipItem[] = [];\n\n if (currentSavedFilterData?.name) {\n items.push({\n id: \"saved-filter\",\n type: \"saved\",\n label: `Saved: ${currentSavedFilterData.name}`,\n onRemove: () => removeSavedFilter(),\n });\n }\n\n if (predefinedSearchChip?.name && predefinedSearchChip?.value) {\n items.push({\n id: \"predefined-search\",\n type: \"predefined\",\n label: `Predefined: ${predefinedSearchChip.name} (${predefinedSearchChip.value})`,\n onRemove: () => removePredefinedSearchChip(),\n });\n }\n\n if (customFilter && customRuleCount > 0) {\n items.push({\n id: \"custom-filter\",\n type: \"custom\",\n label: `${customRuleCount} custom rules applied`,\n onRemove: () => clearCustomFilter(),\n onOpen:() => setShowGlobalSearchElement(true)\n });\n }\n\n if (groupingRules.length > 0 && groupingRules.some((r) => r.fieldName !== null)) {\n items.push({\n id: \"grouping-rules\",\n type: \"grouping\",\n label: `${groupingRules.length} grouping rules applied`,\n onRemove: () => removeGrouping(),\n onOpen:() => setShowGroupFilterElement(true)\n\n });\n }\n\n Object.entries(groupedSearchChips).forEach(([column, values]) => {\n const fieldMeta = searchableFields.find((field) => field.fieldName === column);\n const columnDisplayName = fieldMeta?.displayName || column;\n items.push({\n id: `search:${column}`,\n type: \"search\",\n label: `${columnDisplayName}: ${values.join(\" or \")}`,\n onRemove: () => handleRemoveChipGroup(column),\n });\n });\n\n return items;\n }, [\n currentSavedFilterData,\n predefinedSearchChip,\n customFilter,\n customRuleCount,\n groupingRules,\n groupedSearchChips,\n searchableFields,\n ]);\n\n const MAX_VISIBLE_CHIPS = 3;\n const visibleChipItems = managedChipItems.slice(0, MAX_VISIBLE_CHIPS);\n const hiddenChipItems = managedChipItems.slice(MAX_VISIBLE_CHIPS);\n const hiddenChipCount = hiddenChipItems.length;\n\n const clearAllAppliedChips = () => {\n if (managedChipItems.length === 0) return;\n\n if (activeSavedFilter || currentSavedFilterData) {\n removeSavedFilter();\n }\n\n setSearchChips([]);\n setSearchFilter(null);\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n setCustomFilter(null);\n setFilterRules(initialState);\n setGroupingRules(defaultGroupingRules);\n setAggregationRules(defaultAggregationRules);\n setShowChipManager(false);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1);\n };\n\n useEffect(() => {\n if (managedChipItems.length === 0 && showChipManager) {\n setShowChipManager(false);\n }\n }, [managedChipItems.length, showChipManager]);\n\n\n const overlayOptions = useMemo<OverlayOption[]>(() => {\n const currentValue = inputValue?.trim() || \"\";\n const fields: OverlayOption[] = currentValue\n ? searchableFields.map((field: any) => ({\n id: `field:${field.fieldName}`,\n kind: \"field\" as const,\n field\n }))\n : [];\n const predefined: OverlayOption[] =\n currentValue && predefinedSearches?.length\n ? predefinedSearches.map((p: any, idx: number) => ({\n id: `predefined:${p.name || idx}`,\n kind: \"predefined\" as const,\n predefined: p,\n }))\n : [];\n const saved: OverlayOption[] = (savedFilters || []).map((s: any) => ({\n id: `saved:${s.id}`,\n kind: \"saved\" as const,\n saved: s,\n }));\n\n return [...fields, ...predefined, ...saved];\n }, [inputValue, searchableFields, predefinedSearches, savedFilters]);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const currentValue = inputValue?.trim() || \"\";\n\n const applyFieldOption = (value: any) => {\n const trimmed = inputValue?.trim();\n if (!trimmed) return;\n const values = trimmed.split(\",\").map((v) => v.trim()).filter((v) => v !== \"\");\n const chipsToAdd = values.map(v => ({\n columnName: value.fieldName,\n value: v,\n columnDisplayName: value.displayName,\n searchField: value.searchField,\n matchMode: value.matchMode\n }));\n setSearchChips((prev) => [...prev, ...chipsToAdd]);\n setInputValue(\"\");\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1);\n setShowOverlay(false);\n };\n\n if ((e.key === \"ArrowDown\" || e.key === \"ArrowUp\") && overlayOptions.length > 0) {\n e.preventDefault();\n setShowOverlay(true);\n const nextIndex =\n e.key === \"ArrowDown\"\n ? (focusedIndex + 1) % overlayOptions.length\n : (focusedIndex <= 0 ? overlayOptions.length - 1 : focusedIndex - 1);\n setFocusedIndex(nextIndex);\n return;\n }\n\n if (e.key === \"Enter\") {\n if (currentValue || focusedIndex >= 0) {\n e.preventDefault();\n const activeOption = overlayOptions[focusedIndex] || (currentValue ? overlayOptions[0] : null);\n\n if (activeOption?.kind === \"field\") {\n applyFieldOption(activeOption.field);\n } else if (activeOption?.kind === \"predefined\") {\n handlePredefinedSearch(activeOption.predefined);\n } else if (activeOption?.kind === \"saved\") {\n applySavedFilter(activeOption.saved);\n } else if (currentValue) {\n handleAddChip();\n setShowOverlay(false);\n }\n }\n } else if (e.key === \"Backspace\" && inputValue === \"\") {\n if (searchChips.length > 0) {\n setSearchChips((prev) => prev.slice(0, -1));\n } else if (customFilter) {\n setCustomFilter(null);\n setFilterRules(initialState);\n } else if (predefinedSearchChip) {\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n } else if (activeSavedFilter) {\n removeSavedFilter();\n }\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1);\n }\n };\n\n useEffect(() => {\n if (!showOverlay) {\n setFocusedIndex(-1);\n }\n }, [showOverlay]);\n\n const SearchChip = () => (\n <>\n {Object.entries(groupedSearchChips).map(([column, values]) => {\n const fieldMeta = searchableFields.find(f => f.fieldName === column);\n const columnDisplayName = fieldMeta?.displayName || column;\n\n return (\n <li key={column}>\n <div className=\"search-filter-chip-type\">\n <div>{columnDisplayName}</div>\n {values.map((value, index) => (\n <React.Fragment>\n {/* displayname */}\n <span key={index} className=\"custom-chip-value\">{value}\n </span>\n {index < values.length - 1 &&\n <span className=\"custom-chip-or\">or</span>\n }\n </React.Fragment>\n ))}\n {/* button to clear filter */}\n <button type=\"button\" className=\"ml-1\" style={{ cursor: \"pointer\" }} onClick={() => handleRemoveChipGroup(column)}>\n <X size={14} />\n </button>\n </div>\n </li>\n )\n })}\n </>\n );\n\n // search related code end\n\n\n // predefinedfilter related code start\n\n const handlePredefinedSearch = (predefinedSearch: any) => {\n if (!inputValue?.trim()) return;\n\n if (!predefinedSearch?.filters) {\n console.error('Invalid predefined search: missing filters', predefinedSearch);\n return;\n }\n\n try {\n // Replace {{ search }} placeholders with actual search value\n const processedFilter = replacePlaceholders(predefinedSearch.filters, inputValue.trim());\n\n // Clear all existing filters and searches\n // setSearchChips([]);\n // setSearchFilter(null);\n // setFilterRules(initialState);\n // setCustomFilter(null)\n // removeSavedFilter();\n // Set the predefined search chip\n setPredefinedSearchChip({\n name: predefinedSearch.name,\n value: inputValue.trim()\n });\n\n setPredefinedSearchBaseFilter(processedFilter);\n\n // Apply the predefined search filter as custom filter\n // setCustomFilter(processedFilter);\n\n // Clear input and close overlay\n setInputValue(\"\");\n setShowOverlay(false);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n } catch (error) {\n console.error('Error applying predefined search:', error);\n // Optionally show user-friendly error message\n }\n };\n\n\n const removePredefinedSearchChip = () => {\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null)\n setCustomFilter(null);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n };\n\n const PredefinedSearchChip = () => (\n <li>\n <div className=\"search-filter-chip-type\">\n <div className=\"flex align-items-center gap-2\">\n <strong>{predefinedSearchChip?.name}:</strong>\n <span className=\"custom-chip-value\">{predefinedSearchChip?.value}</span>\n </div>\n {/* button to clear filter */}\n <button type=\"button\" className=\"ml-1\" style={{ cursor: \"pointer\" }} onClick={removePredefinedSearchChip}>\n <X size={14} />\n </button>\n </div>\n </li>\n );\n\n // predefinedfilter related code end\n\n return (\n <>\n <div className=\"flex justify-content-center solid-custom-filter-wrapper relative\">\n <div className=\"solid-global-search-element\">\n <ul className=\"solid-global-search-chip-list\">\n {visibleChipItems.map((chip) => (\n <li key={chip.id}>\n <div className={`search-filter-chip-type solid-chip-pill solid-chip-tone-${chip.type}`}>\n <span className=\"custom-chip-value solid-chip-pill-label\" title={chip.label}>\n {chip.label}\n </span>\n <button\n type=\"button\"\n className=\"solid-chip-pill-remove\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={chip.onRemove}\n aria-label={`Remove ${chip.label}`}\n >\n <X size={14} />\n </button>\n </div>\n </li>\n ))}\n {hiddenChipCount > 0 && (\n <li>\n <button\n type=\"button\"\n ref={chipManagerTriggerRef}\n className=\"solid-chip-manage-trigger\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => setShowChipManager((prev) => !prev)}\n >\n +{hiddenChipCount} more\n </button>\n </li>\n )}\n {managedChipItems.length > 0 && hiddenChipCount === 0 && (\n <li>\n <button\n type=\"button\"\n ref={chipManagerTriggerRef}\n className=\"solid-chip-manage-trigger solid-chip-manage-trigger-secondary\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => setShowChipManager((prev) => !prev)}\n >\n Manage\n </button>\n </li>\n )}\n <li ref={chipsRef} className=\"solid-global-search-input-item\">\n <div className=\"relative solid-global-search-element-wrapper\">\n <SolidInput\n className=\"solid-global-search-input\"\n value={inputValue || \"\"}\n placeholder=\"Search.\"\n onChange={(e) => {\n setInputValue(e.target.value);\n setShowChipManager(false);\n setShowOverlay(true);\n setFocusedIndex(-1);\n }}\n onFocus={() => {\n setShowChipManager(false);\n if (inputValue?.trim()) setShowOverlay(true);\n }}\n onBlur={() => {\n // Delay so you can click buttons inside overlay\n setTimeout(() => setShowOverlay(false), 150);\n }}\n\n onKeyDown={handleKeyDown}\n />\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n onClick={() => {\n setShowChipManager(false);\n setShowOverlay(true);\n }}\n className=\"custom-filter-button solid-global-search-trigger\"\n >\n <Search size={14} />\n </SolidButton>\n </div>\n </li>\n </ul>\n </div>\n\n {showChipManager && managedChipItems.length > 0 && (\n <div ref={chipManagerRef} className=\"absolute z-5 solid-chip-manager-panel\">\n <div className=\"solid-chip-manager-header\">\n <div className=\"solid-chip-manager-title\">Applied chips ({managedChipItems.length})</div>\n <button type=\"button\" className=\"solid-chip-manager-clear-btn\" onClick={clearAllAppliedChips}>\n Clear all\n </button>\n </div>\n <div className=\"solid-chip-manager-body\">\n {managedChipItems.map((chip) => (\n <div key={`manage-${chip.id}`} className={`solid-chip-manager-item solid-chip-tone-${chip.type}`} onClick={() => {\n if (chip.id == \"custom-filter\" || chip.id == \"grouping-rules\") {\n if(chip.onOpen){\n chip.onOpen()\n }\n }\n }\n }>\n <span className=\"solid-chip-manager-item-label\" title={chip.label}>\n {chip.label}\n </span>\n <button\n type=\"button\"\n className=\"solid-chip-manager-item-remove\"\n onClick={chip.onRemove}\n aria-label={`Remove ${chip.label}`}\n >\n <X size={14} />\n </button>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {showOverlay && (\n <div ref={overlayRef} className=\"absolute w-full z-5 shadow-2 solid-search-overlay-pannel\">\n <div className=\"solid-search-overlay-scroll\">\n {inputValue ? (\n <>\n <div className=\"custom-filter-search-options solid-search-overlay-section px-3 py-1 flex flex-column\">\n <h6 className=\"my-1 solid-search-overlay-heading solid-search-overlay-section-title solid-search-overlay-heading-with-icon\">\n <Search size={13} />\n <span>Search by fields</span>\n </h6>\n {searchableFields.length > 0 ? (\n searchableFields.map((value: any, index: number) => {\n return (\n <SolidButton\n key={index}\n variant=\"ghost\"\n size=\"sm\"\n className={`flex gap-1 text-color solid-search-overlay-option ${focusedIndex === index ? \"solid-search-overlay-option-active\" : \"\"} justify-content-start`}\n onMouseDown={(e) => {\n e.preventDefault();\n const currentValue = inputValue?.trim();\n if (currentValue) {\n const values = currentValue.split(\",\").map((v) => v.trim()).filter((v) => v !== \"\");\n const chipsToAdd = values.map(v => ({\n columnName: value.fieldName,\n value: v,\n columnDisplayName: value.displayName,\n searchField: value.searchField,\n matchMode: value.matchMode\n }));\n setSearchChips((prev) => [...prev, ...chipsToAdd]);\n setInputValue(\"\");\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n setShowOverlay(false);\n }\n }}\n onMouseEnter={() => setFocusedIndex(index)}\n >\n Search <strong style={{paddingLeft:\"2px\"}}>{value.displayName}</strong> &nbsp; for:&nbsp; <span className=\"font-bold text-color\">{inputValue}</span>\n </SolidButton>\n )\n })\n ) : (\n <div className=\"solid-search-overlay-no-fields\">\n <div className=\"solid-search-overlay-no-fields-icon\">\n <SearchX size={14} />\n </div>\n <div className=\"solid-search-overlay-no-fields-text\">\n No fields configured for search.\n </div>\n </div>\n )}\n </div>\n {predefinedSearches && predefinedSearches.length > 0 && (\n <>\n <div className=\"solid-filter-dialog-sep\" />\n <div className=\"custom-filter-search-options solid-search-overlay-section px-3 py-1 flex flex-column\">\n <h6 className=\"my-1 solid-search-overlay-heading solid-search-overlay-section-title\">Predefined searches</h6>\n {predefinedSearches.map((predefinedSearch: any, index: number) => (\n <SolidButton\n key={index}\n variant=\"ghost\"\n size=\"sm\"\n className={`flex flex-column align-items-start gap-1 text-color solid-search-overlay-option solid-search-overlay-option-stacked ${focusedIndex === searchableFields.length + index ? \"solid-search-overlay-option-active\" : \"\"}`}\n onMouseDown={(e) => {\n e.preventDefault();\n handlePredefinedSearch(predefinedSearch);\n }}\n onMouseEnter={() => setFocusedIndex(searchableFields.length + index)}\n >\n <div className=\"flex gap-1 align-items-center\">\n <strong>{predefinedSearch.name}:</strong>\n <span className=\"font-bold text-color\">{inputValue}</span>\n </div>\n <div className=\"text-xs\">{predefinedSearch.description}</div>\n </SolidButton>\n ))}\n </div>\n </>\n )}\n </>\n ) :\n <>\n <div className=\"p-3 solid-search-overlay-empty\">\n <div className=\"solid-search-overlay-panel-callout\">\n <div className=\"solid-search-overlay-panel-callout-icon\">\n <Search size={13} />\n </div>\n <div className=\"solid-search-overlay-panel-callout-copy\">\n <div className=\"solid-search-overlay-empty-title\">\n Start typing to search\n </div>\n <div className=\"solid-search-overlay-empty-subtitle\">\n Start typing in search input to see all fields on which you can search {searchableEntityLabel} by.\n </div>\n </div>\n </div>\n </div>\n <div className=\"solid-filter-dialog-sep\" />\n </>\n }\n {savedFilters.length > 0 &&\n <>\n <div className=\"p-3 solid-search-overlay-section\">\n <div className=\"solid-search-overlay-panel-callout solid-search-overlay-panel-callout-compact\">\n <div className=\"solid-search-overlay-panel-callout-icon\">\n <Bookmark size={13} />\n </div>\n <div className=\"solid-search-overlay-panel-callout-copy\">\n <p className=\"solid-search-overlay-heading solid-search-overlay-section-title\">Saved filters</p>\n <div className=\"solid-search-overlay-empty-subtitle\">\n Reusable filter sets available for this view.\n </div>\n </div>\n </div>\n <div className=\"flex flex-column solid-search-overlay-saved-list\">\n {savedFilters.map((savedfilter: any, index: number) => (\n <SavedFilterList\n key={savedfilter.id}\n savedfilter={savedfilter}\n activeSavedFilter={activeSavedFilter}\n applySavedFilter={applySavedFilter}\n openSavedCustomFilter={openSavedCustomFilter}\n setSavedFilterTobeDeleted={setSavedFilterTobeDeleted}\n setIsDeleteSQDialogVisible={setIsDeleteSQDialogVisible}\n isFocused={overlayOptions[focusedIndex]?.id === `saved:${savedfilter.id}`}\n onMouseEnter={() => {\n const optIndex = overlayOptions.findIndex(o => o.id === `saved:${savedfilter.id}`);\n if (optIndex !== -1) setFocusedIndex(optIndex);\n }}\n />\n ))}\n </div>\n </div>\n </>\n }\n </div>\n\n <div className=\"solid-search-overlay-footer\">\n <button\n type=\"button\"\n className=\"px-3 py-2 flex flex-column solid-search-overlay-footer-action\"\n onClick={openCustomFilterDialog}\n >\n <div className=\"solid-search-overlay-footer-action-main\">\n <div className=\"solid-search-overlay-panel-callout-icon\">\n <Filter size={14} />\n </div>\n <div className=\"solid-search-overlay-panel-callout-copy\">\n <div className=\"solid-search-overlay-footer-title solid-search-overlay-section-title\">\n Click here to apply custom filters\n </div>\n <div className=\"solid-search-overlay-footer-subtitle\">\n Use custom filters to apply conditions on any field using any operator.\n </div>\n </div>\n </div>\n </button>\n {viewType === \"tree\" && (\n <button\n type=\"button\"\n className=\"px-3 py-2 flex flex-column solid-search-overlay-footer-action solid-search-overlay-footer-action-secondary\"\n onClick={openGroupingDialog}\n >\n <div className=\"solid-search-overlay-footer-action-main\">\n <div className=\"solid-search-overlay-panel-callout-icon\">\n <Plus size={14} />\n </div>\n <div className=\"solid-search-overlay-panel-callout-copy\">\n <div className=\"solid-search-overlay-footer-title solid-search-overlay-section-title\">\n Click here to do custom grouping\n </div>\n <div className=\"solid-search-overlay-footer-subtitle\">\n Configure grouping rules and aggregations for the tree view.\n </div>\n </div>\n </div>\n </button>\n )}\n </div>\n </div>\n )\n }\n <SolidDialog open={showGlobalSearchElement} onOpenChange={setShowGlobalSearchElement} className=\"solid-global-search-filter solid-filter-dialog-shell\" style={{ width: \"min(960px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Add Custom Filter</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">Apply conditions on any field with operators.</SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n {fields.length > 0 &&\n <FilterComponent viewData={viewData} fields={fields} filterRules={filterRules} setFilterRules={setFilterRules} transformFilterRules={transformCustomFilterRules} closeDialog={() => setShowGlobalSearchElement(false)}></FilterComponent>\n }\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog open={showGroupFilterElement} onOpenChange={setShowGroupFilterElement} className=\"solid-global-search-filter solid-filter-dialog-shell solid-filter-dialog-shell-grouping\" style={{ width: \"min(560px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Grouping</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">Configure grouping and aggregation.</SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n {groupableFields.length > 0 &&\n <GroupingComponent\n viewData={viewData}\n fields={groupableFields}\n groupingRules={groupingRules}\n setGroupingRules={setGroupingRules}\n aggregationRules={aggregationRules}\n setAggregationRules={setAggregationRules}\n applyGrouping={applyGrouping}\n closeDialog={() => setShowGroupFilterElement(false)}\n ></GroupingComponent>\n }\n </SolidDialogBody>\n </SolidDialog >\n <SolidDialog open={showSavedFilterComponent} onOpenChange={setShowSavedFilterComponent} className=\"solid-global-search-filter solid-filter-dialog-shell\" style={{ width: \"min(960px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Saved Filter</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">Review and refine the saved filter conditions.</SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n {fields.length > 0 &&\n <FilterComponent viewData={viewData} fields={fields} filterRules={currentSavedFilterRules} setFilterRules={setCurrentSavedFilterRules} transformFilterRules={transformSavedFilterRules} closeDialog={() => setShowSavedFilterComponent(false)}></FilterComponent>\n }\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog open={showSaveFilterPopup} onOpenChange={setShowSaveFilterPopup} className=\"solid-custom-filter-dialog solid-save-filter-dialog\" style={{ width: \"min(420px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Save Custom Filter</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">Name this filter so you can reuse it later.</SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <SolidSaveCustomFilterForm currentSavedFilterData={currentSavedFilterData} handleSaveFilter={handleSaveFilter} closeDialog={() => setShowSaveFilterPopup(false)}></SolidSaveCustomFilterForm>\n </SolidDialogBody>\n </SolidDialog>\n\n <SolidDialog open={isDeleteSQDialogVisible} onOpenChange={setIsDeleteSQDialogVisible} className=\"solid-confirm-dialog\" style={{ width: \"min(420px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader>\n <div>\n <SolidDialogTitle>Confirm Delete</SolidDialogTitle>\n <SolidDialogDescription>Are you sure you want to delete the {currentSavedFilterData?.name} saved query?</SolidDialogDescription>\n </div>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogFooter className=\"justify-content-center\">\n <SolidButton variant=\"destructive\" size=\"sm\" onClick={deleteSavedFilter}>\n <Check size={14} />\n Yes\n </SolidButton>\n <SolidButton variant=\"outline\" size=\"sm\" onClick={() => setIsDeleteSQDialogVisible(false)}>\n <X size={14} />\n No\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n </div >\n </>\n )\n});\n"]}