@refinedev/antd 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/CHANGELOG.md +1689 -0
  2. package/README.md +285 -0
  3. package/dist/components/breadcrumb/index.d.ts +6 -0
  4. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  5. package/dist/components/buttons/clone/index.d.ts +11 -0
  6. package/dist/components/buttons/clone/index.d.ts.map +1 -0
  7. package/dist/components/buttons/create/index.d.ts +11 -0
  8. package/dist/components/buttons/create/index.d.ts.map +1 -0
  9. package/dist/components/buttons/delete/index.d.ts +10 -0
  10. package/dist/components/buttons/delete/index.d.ts.map +1 -0
  11. package/dist/components/buttons/edit/index.d.ts +11 -0
  12. package/dist/components/buttons/edit/index.d.ts.map +1 -0
  13. package/dist/components/buttons/export/index.d.ts +10 -0
  14. package/dist/components/buttons/export/index.d.ts.map +1 -0
  15. package/dist/components/buttons/import/index.d.ts +11 -0
  16. package/dist/components/buttons/import/index.d.ts.map +1 -0
  17. package/dist/components/buttons/index.d.ts +12 -0
  18. package/dist/components/buttons/index.d.ts.map +1 -0
  19. package/dist/components/buttons/list/index.d.ts +11 -0
  20. package/dist/components/buttons/list/index.d.ts.map +1 -0
  21. package/dist/components/buttons/refresh/index.d.ts +10 -0
  22. package/dist/components/buttons/refresh/index.d.ts.map +1 -0
  23. package/dist/components/buttons/save/index.d.ts +10 -0
  24. package/dist/components/buttons/save/index.d.ts.map +1 -0
  25. package/dist/components/buttons/show/index.d.ts +11 -0
  26. package/dist/components/buttons/show/index.d.ts.map +1 -0
  27. package/dist/components/buttons/types.d.ts +24 -0
  28. package/dist/components/buttons/types.d.ts.map +1 -0
  29. package/dist/components/crud/create/index.d.ts +10 -0
  30. package/dist/components/crud/create/index.d.ts.map +1 -0
  31. package/dist/components/crud/edit/index.d.ts +10 -0
  32. package/dist/components/crud/edit/index.d.ts.map +1 -0
  33. package/dist/components/crud/index.d.ts +6 -0
  34. package/dist/components/crud/index.d.ts.map +1 -0
  35. package/dist/components/crud/list/index.d.ts +10 -0
  36. package/dist/components/crud/list/index.d.ts.map +1 -0
  37. package/dist/components/crud/show/index.d.ts +10 -0
  38. package/dist/components/crud/show/index.d.ts.map +1 -0
  39. package/dist/components/crud/types.d.ts +10 -0
  40. package/dist/components/crud/types.d.ts.map +1 -0
  41. package/dist/components/fields/boolean/index.d.ts +9 -0
  42. package/dist/components/fields/boolean/index.d.ts.map +1 -0
  43. package/dist/components/fields/date/index.d.ts +9 -0
  44. package/dist/components/fields/date/index.d.ts.map +1 -0
  45. package/dist/components/fields/email/index.d.ts +10 -0
  46. package/dist/components/fields/email/index.d.ts.map +1 -0
  47. package/dist/components/fields/file/index.d.ts +9 -0
  48. package/dist/components/fields/file/index.d.ts.map +1 -0
  49. package/dist/components/fields/image/index.d.ts +9 -0
  50. package/dist/components/fields/image/index.d.ts.map +1 -0
  51. package/dist/components/fields/index.d.ts +12 -0
  52. package/dist/components/fields/index.d.ts.map +1 -0
  53. package/dist/components/fields/markdown/index.d.ts +9 -0
  54. package/dist/components/fields/markdown/index.d.ts.map +1 -0
  55. package/dist/components/fields/number/index.d.ts +9 -0
  56. package/dist/components/fields/number/index.d.ts.map +1 -0
  57. package/dist/components/fields/tag/index.d.ts +9 -0
  58. package/dist/components/fields/tag/index.d.ts.map +1 -0
  59. package/dist/components/fields/text/index.d.ts +9 -0
  60. package/dist/components/fields/text/index.d.ts.map +1 -0
  61. package/dist/components/fields/types.d.ts +20 -0
  62. package/dist/components/fields/types.d.ts.map +1 -0
  63. package/dist/components/fields/url/index.d.ts +10 -0
  64. package/dist/components/fields/url/index.d.ts.map +1 -0
  65. package/dist/components/index.d.ts +13 -0
  66. package/dist/components/index.d.ts.map +1 -0
  67. package/dist/components/layout/header/index.d.ts +4 -0
  68. package/dist/components/layout/header/index.d.ts.map +1 -0
  69. package/dist/components/layout/index.d.ts +4 -0
  70. package/dist/components/layout/index.d.ts.map +1 -0
  71. package/dist/components/layout/sider/index.d.ts +4 -0
  72. package/dist/components/layout/sider/index.d.ts.map +1 -0
  73. package/dist/components/layout/sider/styles.d.ts +3 -0
  74. package/dist/components/layout/sider/styles.d.ts.map +1 -0
  75. package/dist/components/layout/title/index.d.ts +4 -0
  76. package/dist/components/layout/title/index.d.ts.map +1 -0
  77. package/dist/components/layout/types.d.ts +3 -0
  78. package/dist/components/layout/types.d.ts.map +1 -0
  79. package/dist/components/pageHeader/index.d.ts +5 -0
  80. package/dist/components/pageHeader/index.d.ts.map +1 -0
  81. package/dist/components/pages/auth/components/forgotPassword/index.d.ts +12 -0
  82. package/dist/components/pages/auth/components/forgotPassword/index.d.ts.map +1 -0
  83. package/dist/components/pages/auth/components/index.d.ts +5 -0
  84. package/dist/components/pages/auth/components/index.d.ts.map +1 -0
  85. package/dist/components/pages/auth/components/login/index.d.ts +12 -0
  86. package/dist/components/pages/auth/components/login/index.d.ts.map +1 -0
  87. package/dist/components/pages/auth/components/register/index.d.ts +12 -0
  88. package/dist/components/pages/auth/components/register/index.d.ts.map +1 -0
  89. package/dist/components/pages/auth/components/styles.d.ts +5 -0
  90. package/dist/components/pages/auth/components/styles.d.ts.map +1 -0
  91. package/dist/components/pages/auth/components/updatePassword/index.d.ts +12 -0
  92. package/dist/components/pages/auth/components/updatePassword/index.d.ts.map +1 -0
  93. package/dist/components/pages/auth/index.d.ts +11 -0
  94. package/dist/components/pages/auth/index.d.ts.map +1 -0
  95. package/dist/components/pages/error/index.d.ts +10 -0
  96. package/dist/components/pages/error/index.d.ts.map +1 -0
  97. package/dist/components/pages/index.d.ts +7 -0
  98. package/dist/components/pages/index.d.ts.map +1 -0
  99. package/dist/components/pages/login/index.d.ts +15 -0
  100. package/dist/components/pages/login/index.d.ts.map +1 -0
  101. package/dist/components/pages/login/styles.d.ts +6 -0
  102. package/dist/components/pages/login/styles.d.ts.map +1 -0
  103. package/dist/components/pages/ready/index.d.ts +10 -0
  104. package/dist/components/pages/ready/index.d.ts.map +1 -0
  105. package/dist/components/pages/welcome/index.d.ts +6 -0
  106. package/dist/components/pages/welcome/index.d.ts.map +1 -0
  107. package/dist/components/table/components/filterDropdown/index.d.ts +13 -0
  108. package/dist/components/table/components/filterDropdown/index.d.ts.map +1 -0
  109. package/dist/components/table/components/index.d.ts +2 -0
  110. package/dist/components/table/components/index.d.ts.map +1 -0
  111. package/dist/components/table/index.d.ts +2 -0
  112. package/dist/components/table/index.d.ts.map +1 -0
  113. package/dist/components/undoableNotification/index.d.ts +10 -0
  114. package/dist/components/undoableNotification/index.d.ts.map +1 -0
  115. package/dist/definitions/index.d.ts +3 -0
  116. package/dist/definitions/index.d.ts.map +1 -0
  117. package/dist/definitions/table/index.d.ts +10 -0
  118. package/dist/definitions/table/index.d.ts.map +1 -0
  119. package/dist/definitions/upload/index.d.ts +4 -0
  120. package/dist/definitions/upload/index.d.ts.map +1 -0
  121. package/dist/esm/index.js +2 -0
  122. package/dist/esm/index.js.map +1 -0
  123. package/dist/hooks/fields/index.d.ts +4 -0
  124. package/dist/hooks/fields/index.d.ts.map +1 -0
  125. package/dist/hooks/fields/useCheckboxGroup/index.d.ts +24 -0
  126. package/dist/hooks/fields/useCheckboxGroup/index.d.ts.map +1 -0
  127. package/dist/hooks/fields/useRadioGroup/index.d.ts +24 -0
  128. package/dist/hooks/fields/useRadioGroup/index.d.ts.map +1 -0
  129. package/dist/hooks/fields/useSelect/index.d.ts +21 -0
  130. package/dist/hooks/fields/useSelect/index.d.ts.map +1 -0
  131. package/dist/hooks/form/index.d.ts +5 -0
  132. package/dist/hooks/form/index.d.ts.map +1 -0
  133. package/dist/hooks/form/useDrawerForm/index.d.ts +2 -0
  134. package/dist/hooks/form/useDrawerForm/index.d.ts.map +1 -0
  135. package/dist/hooks/form/useDrawerForm/useDrawerForm.d.ts +33 -0
  136. package/dist/hooks/form/useDrawerForm/useDrawerForm.d.ts.map +1 -0
  137. package/dist/hooks/form/useForm.d.ts +31 -0
  138. package/dist/hooks/form/useForm.d.ts.map +1 -0
  139. package/dist/hooks/form/useModalForm/index.d.ts +2 -0
  140. package/dist/hooks/form/useModalForm/index.d.ts.map +1 -0
  141. package/dist/hooks/form/useModalForm/useModalForm.d.ts +39 -0
  142. package/dist/hooks/form/useModalForm/useModalForm.d.ts.map +1 -0
  143. package/dist/hooks/form/useStepsForm/index.d.ts +2 -0
  144. package/dist/hooks/form/useStepsForm/index.d.ts.map +1 -0
  145. package/dist/hooks/form/useStepsForm/useStepsForm.d.ts +35 -0
  146. package/dist/hooks/form/useStepsForm/useStepsForm.d.ts.map +1 -0
  147. package/dist/hooks/import/index.d.ts +18 -0
  148. package/dist/hooks/import/index.d.ts.map +1 -0
  149. package/dist/hooks/index.d.ts +8 -0
  150. package/dist/hooks/index.d.ts.map +1 -0
  151. package/dist/hooks/list/index.d.ts +2 -0
  152. package/dist/hooks/list/index.d.ts.map +1 -0
  153. package/dist/hooks/list/useSimpleList/index.d.ts +2 -0
  154. package/dist/hooks/list/useSimpleList/index.d.ts.map +1 -0
  155. package/dist/hooks/list/useSimpleList/useSimpleList.d.ts +23 -0
  156. package/dist/hooks/list/useSimpleList/useSimpleList.d.ts.map +1 -0
  157. package/dist/hooks/modal/index.d.ts +2 -0
  158. package/dist/hooks/modal/index.d.ts.map +1 -0
  159. package/dist/hooks/modal/useModal/index.d.ts +18 -0
  160. package/dist/hooks/modal/useModal/index.d.ts.map +1 -0
  161. package/dist/hooks/table/index.d.ts +3 -0
  162. package/dist/hooks/table/index.d.ts.map +1 -0
  163. package/dist/hooks/table/useEditableTable/index.d.ts +2 -0
  164. package/dist/hooks/table/useEditableTable/index.d.ts.map +1 -0
  165. package/dist/hooks/table/useEditableTable/useEditableTable.d.ts +28 -0
  166. package/dist/hooks/table/useEditableTable/useEditableTable.d.ts.map +1 -0
  167. package/dist/hooks/table/useTable/index.d.ts +2 -0
  168. package/dist/hooks/table/useTable/index.d.ts.map +1 -0
  169. package/dist/hooks/table/useTable/paginationLink.d.ts +8 -0
  170. package/dist/hooks/table/useTable/paginationLink.d.ts.map +1 -0
  171. package/dist/hooks/table/useTable/useTable.d.ts +18 -0
  172. package/dist/hooks/table/useTable/useTable.d.ts.map +1 -0
  173. package/dist/hooks/useFileUploadState/index.d.ts +7 -0
  174. package/dist/hooks/useFileUploadState/index.d.ts.map +1 -0
  175. package/dist/iife/index.js +56 -0
  176. package/dist/iife/index.js.map +1 -0
  177. package/dist/index.d.ts +6 -0
  178. package/dist/index.d.ts.map +1 -0
  179. package/dist/index.js +2 -0
  180. package/dist/index.js.map +1 -0
  181. package/dist/interfaces/field.d.ts +4 -0
  182. package/dist/interfaces/field.d.ts.map +1 -0
  183. package/dist/interfaces/index.d.ts +19 -0
  184. package/dist/interfaces/index.d.ts.map +1 -0
  185. package/dist/interfaces/upload.d.ts +10 -0
  186. package/dist/interfaces/upload.d.ts.map +1 -0
  187. package/dist/providers/index.d.ts +2 -0
  188. package/dist/providers/index.d.ts.map +1 -0
  189. package/dist/providers/notificationProvider/index.d.ts +3 -0
  190. package/dist/providers/notificationProvider/index.d.ts.map +1 -0
  191. package/dist/reset.css +254 -0
  192. package/package.json +72 -0
  193. package/refine.config.js +604 -0
  194. package/src/assets/styles/reset.css +254 -0
  195. package/src/components/breadcrumb/index.tsx +70 -0
  196. package/src/components/buttons/clone/index.tsx +104 -0
  197. package/src/components/buttons/create/index.tsx +103 -0
  198. package/src/components/buttons/delete/index.tsx +122 -0
  199. package/src/components/buttons/edit/index.tsx +105 -0
  200. package/src/components/buttons/export/index.tsx +32 -0
  201. package/src/components/buttons/import/index.tsx +36 -0
  202. package/src/components/buttons/index.ts +11 -0
  203. package/src/components/buttons/list/index.tsx +122 -0
  204. package/src/components/buttons/refresh/index.tsx +61 -0
  205. package/src/components/buttons/save/index.tsx +32 -0
  206. package/src/components/buttons/show/index.tsx +104 -0
  207. package/src/components/buttons/types.ts +44 -0
  208. package/src/components/crud/create/index.tsx +135 -0
  209. package/src/components/crud/edit/index.tsx +221 -0
  210. package/src/components/crud/index.ts +6 -0
  211. package/src/components/crud/list/index.tsx +105 -0
  212. package/src/components/crud/show/index.tsx +215 -0
  213. package/src/components/crud/types.ts +63 -0
  214. package/src/components/fields/boolean/index.tsx +26 -0
  215. package/src/components/fields/date/index.tsx +33 -0
  216. package/src/components/fields/email/index.tsx +20 -0
  217. package/src/components/fields/file/index.tsx +21 -0
  218. package/src/components/fields/image/index.tsx +17 -0
  219. package/src/components/fields/index.ts +11 -0
  220. package/src/components/fields/markdown/index.tsx +16 -0
  221. package/src/components/fields/number/index.tsx +36 -0
  222. package/src/components/fields/tag/index.tsx +13 -0
  223. package/src/components/fields/text/index.tsx +15 -0
  224. package/src/components/fields/types.ts +49 -0
  225. package/src/components/fields/url/index.tsx +24 -0
  226. package/src/components/index.ts +14 -0
  227. package/src/components/layout/header/index.tsx +37 -0
  228. package/src/components/layout/index.tsx +41 -0
  229. package/src/components/layout/sider/index.tsx +261 -0
  230. package/src/components/layout/sider/styles.ts +9 -0
  231. package/src/components/layout/title/index.tsx +48 -0
  232. package/src/components/layout/types.ts +11 -0
  233. package/src/components/pageHeader/index.tsx +52 -0
  234. package/src/components/pages/auth/components/forgotPassword/index.tsx +167 -0
  235. package/src/components/pages/auth/components/index.tsx +4 -0
  236. package/src/components/pages/auth/components/login/index.tsx +239 -0
  237. package/src/components/pages/auth/components/register/index.tsx +210 -0
  238. package/src/components/pages/auth/components/styles.ts +23 -0
  239. package/src/components/pages/auth/components/updatePassword/index.tsx +158 -0
  240. package/src/components/pages/auth/index.tsx +35 -0
  241. package/src/components/pages/error/index.tsx +77 -0
  242. package/src/components/pages/index.tsx +6 -0
  243. package/src/components/pages/login/index.tsx +172 -0
  244. package/src/components/pages/login/styles.ts +25 -0
  245. package/src/components/pages/ready/index.tsx +96 -0
  246. package/src/components/pages/welcome/index.tsx +87 -0
  247. package/src/components/table/components/filterDropdown/index.tsx +112 -0
  248. package/src/components/table/components/index.ts +1 -0
  249. package/src/components/table/index.ts +1 -0
  250. package/src/components/undoableNotification/index.tsx +46 -0
  251. package/src/definitions/index.ts +2 -0
  252. package/src/definitions/table/index.ts +113 -0
  253. package/src/definitions/upload/index.ts +29 -0
  254. package/src/hooks/fields/index.ts +3 -0
  255. package/src/hooks/fields/useCheckboxGroup/index.ts +85 -0
  256. package/src/hooks/fields/useRadioGroup/index.ts +85 -0
  257. package/src/hooks/fields/useSelect/index.ts +47 -0
  258. package/src/hooks/form/index.ts +17 -0
  259. package/src/hooks/form/useDrawerForm/index.ts +6 -0
  260. package/src/hooks/form/useDrawerForm/useDrawerForm.ts +241 -0
  261. package/src/hooks/form/useForm.ts +168 -0
  262. package/src/hooks/form/useModalForm/index.ts +5 -0
  263. package/src/hooks/form/useModalForm/useModalForm.ts +286 -0
  264. package/src/hooks/form/useStepsForm/index.ts +5 -0
  265. package/src/hooks/form/useStepsForm/useStepsForm.ts +91 -0
  266. package/src/hooks/import/index.tsx +134 -0
  267. package/src/hooks/index.ts +7 -0
  268. package/src/hooks/list/index.ts +1 -0
  269. package/src/hooks/list/useSimpleList/index.ts +1 -0
  270. package/src/hooks/list/useSimpleList/useSimpleList.ts +229 -0
  271. package/src/hooks/modal/index.ts +1 -0
  272. package/src/hooks/modal/useModal/index.tsx +43 -0
  273. package/src/hooks/table/index.ts +2 -0
  274. package/src/hooks/table/useEditableTable/index.ts +1 -0
  275. package/src/hooks/table/useEditableTable/useEditableTable.ts +87 -0
  276. package/src/hooks/table/useTable/index.ts +1 -0
  277. package/src/hooks/table/useTable/paginationLink.tsx +27 -0
  278. package/src/hooks/table/useTable/useTable.ts +267 -0
  279. package/src/hooks/useFileUploadState/index.ts +34 -0
  280. package/src/index.tsx +11 -0
  281. package/src/interfaces/field.ts +3 -0
  282. package/src/interfaces/index.ts +23 -0
  283. package/src/interfaces/upload.ts +9 -0
  284. package/src/providers/index.ts +1 -0
  285. package/src/providers/notificationProvider/index.tsx +41 -0
  286. package/src/types/index.d.ts +4 -0
  287. package/src/types/sunflower.d.ts +86 -0
  288. package/tsconfig.json +28 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/hooks/form/useForm.ts","../../src/hooks/form/useModalForm/useModalForm.ts","../../src/hooks/form/useDrawerForm/useDrawerForm.ts","../../src/hooks/form/useStepsForm/useStepsForm.ts","../../src/hooks/table/useTable/useTable.ts","../../src/definitions/table/index.ts","../../src/hooks/table/useTable/paginationLink.tsx","../../src/hooks/table/useEditableTable/useEditableTable.ts","../../src/hooks/fields/useSelect/index.ts","../../src/hooks/fields/useCheckboxGroup/index.ts","../../src/hooks/fields/useRadioGroup/index.ts","../../src/hooks/import/index.tsx","../../src/hooks/list/useSimpleList/useSimpleList.ts","../../src/hooks/useFileUploadState/index.ts","../../src/hooks/modal/useModal/index.tsx","../../src/providers/notificationProvider/index.tsx","../../src/components/undoableNotification/index.tsx","../../src/components/layout/index.tsx","../../src/components/layout/sider/index.tsx","../../src/components/layout/sider/styles.ts","../../src/components/layout/header/index.tsx","../../src/components/layout/title/index.tsx","../../src/components/buttons/create/index.tsx","../../src/components/buttons/edit/index.tsx","../../src/components/buttons/delete/index.tsx","../../src/components/buttons/refresh/index.tsx","../../src/components/buttons/show/index.tsx","../../src/components/buttons/list/index.tsx","../../src/components/buttons/export/index.tsx","../../src/components/buttons/save/index.tsx","../../src/components/buttons/clone/index.tsx","../../src/components/buttons/import/index.tsx","../../src/components/crud/list/index.tsx","../../src/components/crud/create/index.tsx","../../src/components/crud/edit/index.tsx","../../src/components/crud/show/index.tsx","../../src/components/fields/text/index.tsx","../../src/components/fields/tag/index.tsx","../../src/components/fields/email/index.tsx","../../src/components/fields/image/index.tsx","../../src/components/fields/boolean/index.tsx","../../src/components/fields/date/index.tsx","../../src/components/fields/file/index.tsx","../../src/components/fields/url/index.tsx","../../src/components/fields/number/index.tsx","../../src/components/fields/markdown/index.tsx","../../src/components/table/components/filterDropdown/index.tsx","../../src/components/pages/error/index.tsx","../../src/components/pages/login/index.tsx","../../src/components/pages/login/styles.ts","../../src/components/pages/ready/index.tsx","../../src/components/pages/welcome/index.tsx","../../src/components/pages/auth/index.tsx","../../src/components/pages/auth/components/login/index.tsx","../../src/components/pages/auth/components/styles.ts","../../src/components/pages/auth/components/register/index.tsx","../../src/components/pages/auth/components/forgotPassword/index.tsx","../../src/components/pages/auth/components/updatePassword/index.tsx","../../src/components/breadcrumb/index.tsx","../../src/components/pageHeader/index.tsx","../../src/definitions/upload/index.ts"],"sourcesContent":["import React from \"react\";\nimport { FormInstance, FormProps, Form } from \"antd\";\nimport { useForm as useFormSF } from \"sunflower-antd\";\nimport { ButtonProps } from \"antd\";\n\nimport {\n HttpError,\n BaseRecord,\n useForm as useFormCore,\n UseFormReturnType as UseFormReturnTypeCore,\n useWarnAboutChange,\n UseFormProps as UseFormPropsCore,\n CreateResponse,\n UpdateResponse,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nexport type UseFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormPropsCore<TData, TError, TVariables> & {\n submitOnEnter?: boolean;\n /**\n * Shows notification when unsaved changes exist\n */\n warnWhenUnsavedChanges?: boolean;\n};\n\nexport type UseFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormReturnTypeCore<TData, TError, TVariables> & {\n form: FormInstance<TVariables>;\n formProps: FormProps<TVariables>;\n saveButtonProps: ButtonProps & {\n onClick: () => void;\n };\n onFinish: (\n values?: TVariables,\n ) => Promise<CreateResponse<TData> | UpdateResponse<TData> | void>;\n};\n\n/**\n * `useForm` is used to manage forms. It uses Ant Design {@link https://ant.design/components/form/ Form} data scope management under the hood and returns the required props for managing the form actions.\n *\n * @see {@link https://refine.dev/docs/api-references/hooks/form/useForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n>({\n action,\n resource,\n onMutationSuccess: onMutationSuccessProp,\n onMutationError,\n submitOnEnter = false,\n warnWhenUnsavedChanges: warnWhenUnsavedChangesProp,\n redirect,\n successNotification,\n errorNotification,\n meta,\n metaData,\n liveMode,\n liveParams,\n mutationMode,\n dataProviderName,\n onLiveEvent,\n invalidates,\n undoableTimeout,\n queryOptions,\n createMutationOptions,\n updateMutationOptions,\n id: idFromProps,\n}: UseFormProps<TData, TError, TVariables> = {}): UseFormReturnType<\n TData,\n TError,\n TVariables\n> => {\n const [formAnt] = Form.useForm();\n const formSF = useFormSF<TData, TVariables>({\n form: formAnt,\n });\n const { form } = formSF;\n\n const useFormCoreResult = useFormCore<TData, TError, TVariables>({\n onMutationSuccess: onMutationSuccessProp\n ? onMutationSuccessProp\n : undefined,\n onMutationError,\n redirect,\n action,\n resource,\n successNotification,\n errorNotification,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n liveMode,\n liveParams,\n mutationMode,\n dataProviderName,\n onLiveEvent,\n invalidates,\n undoableTimeout,\n queryOptions,\n createMutationOptions,\n updateMutationOptions,\n id: idFromProps,\n });\n\n const { formLoading, onFinish, queryResult, id } = useFormCoreResult;\n\n const {\n warnWhenUnsavedChanges: warnWhenUnsavedChangesRefine,\n setWarnWhen,\n } = useWarnAboutChange();\n const warnWhenUnsavedChanges =\n warnWhenUnsavedChangesProp ?? warnWhenUnsavedChangesRefine;\n\n React.useEffect(() => {\n form.resetFields();\n }, [queryResult?.data?.data, id]);\n\n const onKeyUp = (event: React.KeyboardEvent<HTMLFormElement>) => {\n if (submitOnEnter && event.key === \"Enter\") {\n form.submit();\n }\n };\n\n const onValuesChange = (changeValues: object) => {\n if (changeValues && warnWhenUnsavedChanges) {\n setWarnWhen(true);\n }\n return changeValues;\n };\n\n const saveButtonProps = {\n disabled: formLoading,\n onClick: () => {\n form.submit();\n },\n };\n\n return {\n form: formSF.form,\n formProps: {\n ...formSF.formProps,\n onFinish: (values: TVariables) =>\n onFinish(values).catch((error) => error),\n onKeyUp,\n onValuesChange,\n initialValues: queryResult?.data?.data,\n },\n saveButtonProps,\n ...useFormCoreResult,\n onFinish: async (values?: TVariables) => {\n return await onFinish(values ?? formSF.form.getFieldsValue(true));\n },\n };\n};\n","import { useCallback, useEffect } from \"react\";\nimport { FormInstance, FormProps, ModalProps } from \"antd\";\nimport {\n useModalForm as useModalFormSF,\n UseModalFormConfig as UseModalFormConfigSF,\n} from \"sunflower-antd\";\n\nimport {\n useMutationMode,\n useTranslate,\n useWarnAboutChange,\n HttpError,\n UseFormProps as UseFormPropsCore,\n BaseRecord,\n LiveModeProps,\n BaseKey,\n userFriendlyResourceName,\n useResource,\n FormWithSyncWithLocationParams,\n useParsed,\n useGo,\n} from \"@refinedev/core\";\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\nimport React from \"react\";\n\nexport type useModalFormFromSFReturnType<TData, TVariables> = {\n open: boolean;\n form: FormInstance<TVariables>;\n show: (id?: BaseKey) => void;\n close: () => void;\n modalProps: ModalProps;\n formProps: FormProps<TVariables>;\n formLoading: boolean;\n defaultFormValuesLoading: boolean;\n formValues: {};\n initialValues: {};\n formResult: undefined;\n submit: (values?: TVariables) => Promise<TData>;\n /** @deprecated Please use `open` instead. */\n visible: boolean;\n};\n\ntype useModalFormConfig = {\n action: \"show\" | \"edit\" | \"create\" | \"clone\";\n};\n\nexport type UseModalFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = Omit<\n UseFormReturnType<TData, TError, TVariables>,\n \"saveButtonProps\" | \"deleteButtonProps\"\n> &\n useModalFormFromSFReturnType<TData, TVariables>;\n\nexport type UseModalFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormPropsCore<TData, TError, TVariables> &\n UseFormProps<TData, TError, TVariables> &\n UseModalFormConfigSF &\n useModalFormConfig &\n LiveModeProps &\n FormWithSyncWithLocationParams;\n/**\n * `useModalForm` hook allows you to manage a form within a modal. It returns Ant Design {@link https://ant.design/components/form/ Form} and {@link https://ant.design/components/modal/ Modal} components props.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/form/useModalForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useModalForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n>({\n mutationMode: mutationModeProp,\n syncWithLocation,\n ...rest\n}: UseModalFormProps<TData, TError, TVariables>): UseModalFormReturnType<\n TData,\n TError,\n TVariables\n> => {\n const initiallySynced = React.useRef(false);\n\n const useFormProps = useForm<TData, TError, TVariables>({\n ...rest,\n mutationMode: mutationModeProp,\n });\n\n const { form, formProps, id, setId, formLoading, mutationResult } =\n useFormProps;\n\n const { resource, action: actionFromParams } = useResource(rest.resource);\n\n const parsed = useParsed();\n const go = useGo();\n\n const action = rest.action ?? actionFromParams ?? \"\";\n\n const syncingId =\n typeof syncWithLocation === \"object\" && syncWithLocation.syncId;\n\n const syncWithLocationKey =\n typeof syncWithLocation === \"object\" && \"key\" in syncWithLocation\n ? syncWithLocation.key\n : resource && action && syncWithLocation\n ? `modal-${resource?.identifier ?? resource?.name}-${action}`\n : undefined;\n\n const translate = useTranslate();\n\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n const sunflowerUseModal = useModalFormSF<TData, TVariables>({\n ...rest,\n form: form,\n });\n\n const {\n visible,\n close,\n show,\n form: modalForm,\n formProps: modalFormProps,\n modalProps,\n } = sunflowerUseModal;\n\n React.useEffect(() => {\n if (initiallySynced.current === false && syncWithLocationKey) {\n const openStatus = parsed?.params?.[syncWithLocationKey]?.open;\n if (typeof openStatus === \"boolean\") {\n if (openStatus) {\n show();\n }\n } else if (typeof openStatus === \"string\") {\n if (openStatus === \"true\") {\n show();\n }\n }\n\n if (syncingId) {\n const idFromParams = parsed?.params?.[syncWithLocationKey]?.id;\n if (idFromParams) {\n setId?.(idFromParams);\n }\n }\n\n initiallySynced.current = true;\n }\n }, [syncWithLocationKey, parsed, syncingId, setId]);\n\n React.useEffect(() => {\n if (initiallySynced.current === true) {\n if (visible && syncWithLocationKey) {\n go({\n query: {\n [syncWithLocationKey]: {\n ...parsed?.params?.[syncWithLocationKey],\n open: true,\n ...(syncingId && id && { id }),\n },\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n } else if (syncWithLocationKey && !visible) {\n go({\n query: {\n [syncWithLocationKey]: undefined,\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n }\n }\n }, [id, visible, show, syncWithLocationKey, syncingId]);\n\n const { mutationMode: mutationModeContext } = useMutationMode();\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const {\n isLoading: isLoadingMutation,\n isSuccess: isSuccessMutation,\n reset: resetMutation,\n } = mutationResult ?? {};\n\n useEffect(() => {\n if (visible && mutationMode === \"pessimistic\") {\n if (isSuccessMutation && !isLoadingMutation) {\n close();\n resetMutation?.();\n // Prevents resetting form values before closing modal in UI\n setTimeout(() => {\n form.resetFields();\n });\n }\n }\n }, [isSuccessMutation, isLoadingMutation]);\n\n const saveButtonPropsSF = {\n disabled: formLoading,\n onClick: () => {\n modalForm.submit();\n\n if (!(mutationMode === \"pessimistic\")) {\n close();\n // Prevents resetting form values before closing modal in UI\n setTimeout(() => {\n form.resetFields();\n });\n }\n },\n loading: formLoading,\n };\n\n const handleClose = useCallback(() => {\n if (warnWhen) {\n const warnWhenConfirm = window.confirm(\n translate(\n \"warnWhenUnsavedChanges\",\n \"Are you sure you want to leave? You have unsaved changes.\",\n ),\n );\n\n if (warnWhenConfirm) {\n setWarnWhen(false);\n } else {\n return;\n }\n }\n\n setId?.(undefined);\n sunflowerUseModal.close();\n }, [warnWhen]);\n\n const handleShow = useCallback((id?: BaseKey) => {\n setId?.(id);\n\n sunflowerUseModal.show();\n }, []);\n\n return {\n ...useFormProps,\n ...sunflowerUseModal,\n show: handleShow,\n close: handleClose,\n open: visible,\n formProps: {\n ...modalFormProps,\n ...useFormProps.formProps,\n onValuesChange: formProps?.onValuesChange,\n onKeyUp: formProps?.onKeyUp,\n onFinish: formProps.onFinish,\n },\n modalProps: {\n ...modalProps,\n width: \"1000px\",\n okButtonProps: saveButtonPropsSF,\n title: translate(\n `${resource?.name}.titles.${rest.action}`,\n `${userFriendlyResourceName(\n `${rest.action} ${\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name\n }`,\n \"singular\",\n )}`,\n ),\n okText: translate(\"buttons.save\", \"Save\"),\n cancelText: translate(\"buttons.cancel\", \"Cancel\"),\n onCancel: handleClose,\n forceRender: true,\n },\n formLoading,\n };\n};\n","import { useCallback, useEffect, useState } from \"react\";\nimport { UseFormConfig } from \"sunflower-antd\";\nimport { FormInstance, FormProps, DrawerProps, ButtonProps } from \"antd\";\nimport {\n useMutationMode,\n useTranslate,\n useWarnAboutChange,\n UseFormProps as UseFormPropsCore,\n HttpError,\n LiveModeProps,\n BaseRecord,\n FormWithSyncWithLocationParams,\n BaseKey,\n useResource,\n useParsed,\n useGo,\n} from \"@refinedev/core\";\n\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\nimport { DeleteButtonProps } from \"../../../components\";\nimport React from \"react\";\n\nexport interface UseDrawerFormConfig extends UseFormConfig {\n action: \"show\" | \"edit\" | \"create\" | \"clone\";\n}\n\nexport type UseDrawerFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormPropsCore<TData, TError, TVariables> &\n UseFormProps<TData, TError, TVariables> &\n UseDrawerFormConfig &\n LiveModeProps &\n FormWithSyncWithLocationParams;\n\nexport type UseDrawerFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormReturnType<TData, TError, TVariables> & {\n formProps: FormProps<TVariables> & {\n form: FormInstance<TVariables>;\n };\n show: (id?: BaseKey) => void;\n close: () => void;\n drawerProps: DrawerProps;\n saveButtonProps: ButtonProps;\n deleteButtonProps: DeleteButtonProps;\n formLoading: boolean;\n};\n\n/**\n * `useDrawerForm` hook allows you to manage a form within a drawer. It returns Ant Design {@link https://ant.design/components/form/ Form} and {@link https://ant.design/components/drawer/ Drawer} components props.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/form/useDrawerForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\n\nexport const useDrawerForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n>({\n mutationMode: mutationModeProp,\n syncWithLocation,\n ...rest\n}: UseDrawerFormProps<TData, TError, TVariables>): UseDrawerFormReturnType<\n TData,\n TError,\n TVariables\n> => {\n const initiallySynced = React.useRef(false);\n\n const useFormProps = useForm<TData, TError, TVariables>({\n ...rest,\n mutationMode: mutationModeProp,\n });\n\n const { form, formProps, formLoading, mutationResult, id, setId } =\n useFormProps;\n\n const { resource, action: actionFromParams } = useResource(rest.resource);\n\n const parsed = useParsed();\n const go = useGo();\n\n const action = rest.action ?? actionFromParams ?? \"\";\n\n const syncingId =\n typeof syncWithLocation === \"object\" && syncWithLocation.syncId;\n\n const syncWithLocationKey =\n typeof syncWithLocation === \"object\" && \"key\" in syncWithLocation\n ? syncWithLocation.key\n : resource && action && syncWithLocation\n ? `drawer-${resource?.identifier ?? resource?.name}-${action}`\n : undefined;\n\n const [open, setOpen] = useState(false);\n\n React.useEffect(() => {\n if (initiallySynced.current === false && syncWithLocationKey) {\n const openStatus = parsed?.params?.[syncWithLocationKey]?.open;\n if (typeof openStatus === \"boolean\") {\n setOpen(openStatus);\n } else if (typeof openStatus === \"string\") {\n setOpen(openStatus === \"true\");\n }\n\n if (syncingId) {\n const idFromParams = parsed?.params?.[syncWithLocationKey]?.id;\n if (idFromParams) {\n setId?.(idFromParams);\n }\n }\n\n initiallySynced.current = true;\n }\n }, [syncWithLocationKey, parsed, syncingId, setId]);\n\n React.useEffect(() => {\n if (initiallySynced.current === true) {\n if (open && syncWithLocationKey) {\n go({\n query: {\n [syncWithLocationKey]: {\n ...parsed?.params?.[syncWithLocationKey],\n open: true,\n ...(syncingId && id && { id }),\n },\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n } else if (syncWithLocationKey && !open) {\n go({\n query: {\n [syncWithLocationKey]: undefined,\n },\n options: { keepQuery: true },\n type: \"replace\",\n });\n }\n }\n }, [id, open, syncWithLocationKey, syncingId]);\n\n const translate = useTranslate();\n\n const { warnWhen, setWarnWhen } = useWarnAboutChange();\n\n const { mutationMode: mutationModeContext } = useMutationMode();\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const {\n isLoading: isLoadingMutation,\n isSuccess: isSuccessMutation,\n reset: resetMutation,\n } = mutationResult ?? {};\n\n useEffect(() => {\n if (open && mutationMode === \"pessimistic\") {\n if (isSuccessMutation && !isLoadingMutation) {\n setOpen(false);\n resetMutation?.();\n }\n }\n }, [isSuccessMutation, isLoadingMutation]);\n\n const saveButtonProps = {\n disabled: formLoading,\n onClick: () => {\n form?.submit();\n if (!(mutationMode === \"pessimistic\")) {\n setOpen(false);\n }\n },\n loading: formLoading,\n };\n\n const deleteButtonProps = {\n recordItemId: id,\n onSuccess: () => {\n setId?.(undefined);\n setOpen(false);\n },\n };\n\n const handleClose = useCallback(() => {\n if (warnWhen) {\n const warnWhenConfirm = window.confirm(\n translate(\n \"warnWhenUnsavedChanges\",\n \"Are you sure you want to leave? You have unsaved changes.\",\n ),\n );\n\n if (warnWhenConfirm) {\n setWarnWhen(false);\n } else {\n return;\n }\n }\n\n setOpen(false);\n setId?.(undefined);\n }, [warnWhen]);\n\n const handleShow = useCallback((id?: BaseKey) => {\n setId?.(id);\n\n setOpen(true);\n }, []);\n\n return {\n ...useFormProps,\n show: handleShow,\n close: handleClose,\n formProps: {\n form,\n ...useFormProps.formProps,\n onValuesChange: formProps?.onValuesChange,\n onKeyUp: formProps?.onKeyUp,\n onFinish: formProps.onFinish,\n },\n drawerProps: {\n width: \"500px\",\n onClose: handleClose,\n open,\n forceRender: true,\n },\n saveButtonProps,\n deleteButtonProps,\n formLoading,\n };\n};\n","import {\n useStepsForm as useStepsFormSF,\n UseStepsFormConfig,\n} from \"sunflower-antd\";\nimport { FormInstance, FormProps } from \"antd\";\n\nimport {\n HttpError,\n UseFormProps as UseFormPropsCore,\n BaseRecord,\n} from \"@refinedev/core\";\n\nimport { useForm, UseFormProps, UseFormReturnType } from \"../useForm\";\n\nexport type UseStepsFormFromSFReturnType<TData, TVariables> = {\n current: number;\n gotoStep: (step: number) => void;\n stepsProps: {\n current: number;\n onChange: (currentStep: number) => void;\n };\n formProps: FormProps<TVariables>;\n formLoading: boolean;\n defaultFormValuesLoading: boolean;\n formValues: {};\n initialValues: {};\n formResult: undefined;\n form: FormInstance<TVariables>;\n submit: (values?: TVariables) => Promise<TData>;\n};\n\nexport type UseStepsFormReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormReturnType<TData, TError, TVariables> &\n UseStepsFormFromSFReturnType<TData, TVariables>;\n\nexport type UseStepsFormProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n> = UseFormPropsCore<TData, TError, TVariables> &\n UseFormProps<TData, TError, TVariables> &\n UseStepsFormConfig;\n\n/**\n * `useStepsForm` hook allows you to split your form under an Ant Design based {@link https://ant.design/components/steps/ Steps} component and provides you with a few useful functionalities that will help you manage your form.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/form/useStepsForm} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for params. default `{}`\n *\n *\n */\nexport const useStepsForm = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n>(\n props: UseStepsFormProps<TData, TError, TVariables> = {},\n): UseStepsFormReturnType<TData, TError, TVariables> => {\n const useFormProps = useForm<TData, TError, TVariables>({ ...props });\n const { form, formProps } = useFormProps;\n\n const stepsPropsSunflower = useStepsFormSF<TData, TVariables>({\n isBackValidate: false,\n form: form,\n submit: (values: any) => {\n formProps?.onFinish?.(values);\n },\n ...props,\n });\n\n return {\n ...useFormProps,\n ...stepsPropsSunflower,\n formProps: {\n ...stepsPropsSunflower.formProps,\n ...useFormProps.formProps,\n onValuesChange: formProps?.onValuesChange,\n onKeyUp: formProps?.onKeyUp,\n },\n saveButtonProps: {\n ...useFormProps.saveButtonProps,\n onClick: () => stepsPropsSunflower.submit(),\n },\n };\n};\n","import React, { Children, createElement, Fragment } from \"react\";\nimport { Grid, FormProps, Form, TablePaginationConfig, TableProps } from \"antd\";\nimport { useForm as useFormSF } from \"sunflower-antd\";\n\nimport { SorterResult } from \"antd/lib/table/interface\";\n\nimport {\n useLiveMode,\n BaseRecord,\n CrudFilters,\n SuccessErrorNotification,\n HttpError,\n LiveModeProps,\n useTable as useTableCore,\n useTableProps as useTablePropsCore,\n useTableReturnType as useTableCoreReturnType,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nimport {\n mapAntdSorterToCrudSorting,\n mapAntdFilterToCrudFilter,\n} from \"@definitions/table\";\nimport { PaginationLink } from \"./paginationLink\";\n\nexport type useTableProps<\n TData,\n TError,\n TSearchVariables = unknown,\n> = useTablePropsCore<TData, TError> &\n SuccessErrorNotification &\n LiveModeProps & {\n onSearch?: (\n data: TSearchVariables,\n ) => CrudFilters | Promise<CrudFilters>;\n };\n\nexport type useTableReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TSearchVariables = unknown,\n> = useTableCoreReturnType<TData, TError> & {\n searchFormProps: FormProps<TSearchVariables>;\n tableProps: TableProps<TData>;\n};\n\n/**\n * By using useTable, you are able to get properties that are compatible with\n * Ant Design {@link https://ant.design/components/table/ `<Table>`} component.\n * All features such as sorting, filtering and pagination comes as out of box.\n *\n * @see {@link https://refine.dev/docs/api-references/hooks/table/useTable} for more details.\n */\n\nexport const useTable = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TSearchVariables = unknown,\n>({\n onSearch,\n initialCurrent,\n initialPageSize,\n hasPagination = true,\n pagination,\n initialSorter,\n permanentSorter,\n initialFilter,\n permanentFilter,\n defaultSetFilterBehavior,\n filters: filtersFromProp,\n sorters: sortersFromProp,\n syncWithLocation,\n resource,\n successNotification,\n errorNotification,\n queryOptions,\n liveMode: liveModeFromProp,\n onLiveEvent,\n liveParams,\n meta,\n metaData,\n dataProviderName,\n}: useTableProps<TData, TError, TSearchVariables> = {}): useTableReturnType<\n TData,\n TError,\n TSearchVariables\n> => {\n const {\n tableQueryResult,\n current,\n setCurrent,\n pageSize,\n setPageSize,\n filters,\n setFilters,\n sorters,\n setSorters,\n sorter,\n setSorter,\n createLinkForSyncWithLocation,\n pageCount,\n } = useTableCore<TData, TError>({\n permanentSorter,\n permanentFilter,\n initialCurrent,\n initialPageSize,\n pagination,\n hasPagination,\n filters: filtersFromProp,\n sorters: sortersFromProp,\n initialSorter,\n initialFilter,\n syncWithLocation,\n resource,\n defaultSetFilterBehavior,\n successNotification,\n errorNotification,\n queryOptions,\n liveMode: liveModeFromProp,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n });\n const breakpoint = Grid.useBreakpoint();\n const [form] = Form.useForm<TSearchVariables>();\n const formSF = useFormSF<any, TSearchVariables>({\n form: form,\n });\n const liveMode = useLiveMode(liveModeFromProp);\n\n const hasPaginationString = hasPagination === false ? \"off\" : \"server\";\n const isPaginationEnabled =\n (pagination?.mode ?? hasPaginationString) !== \"off\";\n\n const preferredInitialFilters = pickNotDeprecated(\n filtersFromProp?.initial,\n initialFilter,\n );\n\n const { data, isFetched, isLoading } = tableQueryResult;\n\n const onChange = (\n paginationState: TablePaginationConfig,\n tableFilters: Record<\n string,\n (string | number | boolean) | (string | number | boolean)[] | null\n >,\n sorter: SorterResult<any> | SorterResult<any>[],\n ) => {\n if (tableFilters && Object.keys(tableFilters).length > 0) {\n // Map Antd:Filter -> refine:CrudFilter\n const crudFilters = mapAntdFilterToCrudFilter(\n tableFilters,\n filters,\n preferredInitialFilters,\n );\n setFilters(crudFilters);\n }\n\n if (sorter && Object.keys(sorter).length > 0) {\n // Map Antd:Sorter -> refine:CrudSorting\n const crudSorting = mapAntdSorterToCrudSorting(sorter);\n setSorters(crudSorting);\n }\n\n if (isPaginationEnabled) {\n setCurrent?.(paginationState.current || 1);\n setPageSize?.(paginationState.pageSize || 10);\n }\n };\n\n const onFinish = async (value: TSearchVariables) => {\n if (onSearch) {\n const searchFilters = await onSearch(value);\n setFilters(searchFilters);\n\n if (isPaginationEnabled) {\n setCurrent?.(1);\n }\n }\n };\n\n const antdPagination = (): false | TablePaginationConfig => {\n if (isPaginationEnabled) {\n return {\n itemRender: (page, type, element) => {\n const link = createLinkForSyncWithLocation({\n pagination: {\n pageSize,\n current: page,\n },\n sorters,\n filters,\n });\n\n if (type === \"page\") {\n return createElement(PaginationLink, {\n to: link,\n element: `${page}`,\n });\n }\n if (type === \"next\" || type === \"prev\") {\n return createElement(PaginationLink, {\n to: link,\n element: element,\n });\n }\n\n if (type === \"jump-next\" || type === \"jump-prev\") {\n const elementChildren = (element as React.ReactElement)\n ?.props?.children;\n\n return createElement(PaginationLink, {\n to: link,\n element:\n Children.count(elementChildren) > 1\n ? createElement(\n Fragment,\n {},\n elementChildren,\n )\n : elementChildren,\n });\n }\n\n return element;\n },\n pageSize,\n current,\n simple: !breakpoint.sm,\n position: !breakpoint.sm ? [\"bottomCenter\"] : [\"bottomRight\"],\n total: data?.total,\n };\n }\n\n return false;\n };\n\n return {\n searchFormProps: {\n ...formSF.formProps,\n onFinish,\n },\n tableProps: {\n dataSource: data?.data,\n loading: liveMode === \"auto\" ? isLoading : !isFetched,\n onChange,\n pagination: antdPagination(),\n scroll: { x: true },\n },\n tableQueryResult,\n sorters,\n sorter,\n filters,\n setSorters,\n setSorter,\n setFilters,\n current,\n setCurrent,\n pageSize,\n setPageSize,\n pageCount,\n createLinkForSyncWithLocation,\n };\n};\n","import {\n CrudFilters,\n CrudOperators,\n CrudSorting,\n CrudFilter,\n getDefaultFilter as getDefaultFilterCore,\n getDefaultSortOrder as getDefaultSortOrderCore,\n ConditionalFilter,\n LogicalFilter,\n} from \"@refinedev/core\";\nimport { SortOrder, SorterResult } from \"antd/lib/table/interface\";\n\nexport const getDefaultSortOrder = (\n columnName: string,\n sorter?: CrudSorting,\n): SortOrder | undefined => {\n const sort = getDefaultSortOrderCore(columnName, sorter);\n\n if (sort) {\n return `${sort}end`;\n }\n\n return undefined;\n};\n\n/**\n * @deprecated getDefaultFilter moved to `@refinedev/core`. Use from `@refinedev/core`\n */\nexport const getDefaultFilter = (\n columnName: string,\n filters?: CrudFilters,\n operatorType: CrudOperators = \"eq\",\n): CrudFilter[\"value\"] | undefined => {\n return getDefaultFilterCore(columnName, filters, operatorType);\n};\n\nexport const mapAntdSorterToCrudSorting = (\n sorter: SorterResult<any> | SorterResult<any>[],\n): CrudSorting => {\n const crudSorting: CrudSorting = [];\n if (Array.isArray(sorter)) {\n sorter\n .sort((a, b) => {\n return ((a.column?.sorter as { multiple?: number }).multiple ??\n 0) <\n ((b.column?.sorter as { multiple?: number }).multiple ?? 0)\n ? -1\n : 0;\n })\n .map((item) => {\n if (item.field && item.order) {\n const field = Array.isArray(item.field)\n ? item.field.join(\".\")\n : `${item.field}`;\n\n crudSorting.push({\n field: `${item.columnKey ?? field}`,\n order: item.order.replace(\"end\", \"\") as \"asc\" | \"desc\",\n });\n }\n });\n } else {\n if (sorter.field && sorter.order) {\n const field = Array.isArray(sorter.field)\n ? sorter.field.join(\".\")\n : `${sorter.field}`;\n\n crudSorting.push({\n field: `${sorter.columnKey ?? field}`,\n order: sorter.order.replace(\"end\", \"\") as \"asc\" | \"desc\",\n });\n }\n }\n\n return crudSorting;\n};\n\nexport const mapAntdFilterToCrudFilter = (\n tableFilters: Record<\n string,\n (string | number | boolean) | (string | number | boolean)[] | null\n >,\n prevFilters: CrudFilters,\n initialFilters?: CrudFilters,\n): CrudFilters => {\n const crudFilters: CrudFilters = [];\n const mapInitialFilter: Record<string, CrudFilter> = (\n initialFilters ?? []\n ).reduce((acc, item) => {\n const field =\n (item as ConditionalFilter).key || (item as LogicalFilter).field;\n return { ...acc, [field]: item };\n }, {});\n\n Object.keys(tableFilters).map((field) => {\n const value = tableFilters[field];\n const operator =\n prevFilters\n .filter((i) => i.operator !== \"or\")\n .find((p: any) => p.field === field)?.operator ||\n mapInitialFilter[field]?.operator;\n\n if (operator !== \"or\" && operator !== \"and\") {\n crudFilters.push({\n field,\n operator: operator ?? (Array.isArray(value) ? \"in\" : \"eq\"),\n value,\n });\n }\n });\n\n return crudFilters;\n};\n","import { useLink, useRouterContext, useRouterType } from \"@refinedev/core\";\nimport React, { ReactNode } from \"react\";\n\ninterface PaginationLinkProps {\n to: string;\n element: ReactNode;\n}\n\nexport const PaginationLink = ({ to, element }: PaginationLinkProps) => {\n const { Link: LegacyLink } = useRouterContext();\n const routerType = useRouterType();\n const Link = useLink();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n return (\n <ActiveLink\n to={to}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n e.preventDefault();\n }}\n >\n {element}\n </ActiveLink>\n );\n};\n","import { useTable } from \"@hooks\";\nimport { BaseKey, BaseRecord, HttpError, UseFormProps } from \"@refinedev/core\";\nimport { ButtonProps } from \"antd\";\n\nimport { useTableProps, useTableReturnType } from \"../useTable\";\nimport { UseFormReturnType, useForm } from \"../../form/useForm\";\n\nexport type useEditableTableReturnType<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n> = useTableReturnType<TData, TError, TSearchVariables> &\n UseFormReturnType<TData, TError, TVariables> & {\n saveButtonProps: ButtonProps & {\n onClick: () => void;\n };\n cancelButtonProps: ButtonProps & {\n onClick: () => void;\n };\n editButtonProps: (id: BaseKey) => ButtonProps & {\n onClick: () => void;\n };\n isEditing: (id: BaseKey) => boolean;\n };\n\ntype useEditableTableProps<\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n> = useTableProps<TData, TError, TSearchVariables> &\n UseFormProps<TData, TError, TVariables>;\n\n/**\n * `useEditeableTable` allows you to implement edit feature on the table with ease,\n * on top of all the features that {@link https://refine.dev/docs/api-references/hooks/table/useTable `useTable`} provides.\n * `useEditableTable` return properties that can be used on Ant Design's {@link https://ant.design/components/table/ `<Table>`}\n * and {@link https://ant.design/components/form/ `<Form>`} components.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/table/useEditableTable} for more details.\n */\nexport const useEditableTable = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = {},\n TSearchVariables = unknown,\n>(\n props: useEditableTableProps<\n TData,\n TError,\n TVariables,\n TSearchVariables\n > = {},\n): useEditableTableReturnType<TData, TError, TVariables, TSearchVariables> => {\n const table = useTable<TData, TError, TSearchVariables>({ ...props });\n const edit = useForm<TData, TError, TVariables>({\n ...props,\n action: \"edit\",\n redirect: false,\n });\n\n const { id: editId, setId, saveButtonProps } = edit;\n\n const cancelButtonProps = {\n onClick: () => {\n setId(undefined);\n },\n };\n\n const editButtonProps = (id: BaseKey) => {\n return {\n onClick: () => setId(id),\n };\n };\n\n const isEditing = (id: BaseKey) => id === editId;\n\n return {\n ...table,\n ...edit,\n saveButtonProps,\n cancelButtonProps,\n editButtonProps,\n isEditing,\n };\n};\n","import { SelectProps } from \"antd/lib/select\";\nimport { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport {\n useSelect as useSelectCore,\n BaseRecord,\n GetManyResponse,\n GetListResponse,\n HttpError,\n UseSelectProps,\n} from \"@refinedev/core\";\n\nexport type UseSelectReturnType<TData extends BaseRecord = BaseRecord> = {\n selectProps: SelectProps<{ value: string; label: string }>;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n defaultValueQueryResult: QueryObserverResult<GetManyResponse<TData>>;\n};\n\n/**\n * `useSelect` hook allows you to manage an Ant Design {@link https://ant.design/components/select/ Select} component when records in a resource needs to be used as select options.\n *\n * @see {@link https://refine.dev/docs/api-references/hooks/field/useSelect} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n *\n */\nexport const useSelect = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n>(\n props: UseSelectProps<TData, TError>,\n): UseSelectReturnType<TData> => {\n const { queryResult, defaultValueQueryResult, onSearch, options } =\n useSelectCore(props);\n\n return {\n selectProps: {\n options,\n onSearch,\n loading: defaultValueQueryResult.isFetching,\n showSearch: true,\n filterOption: false,\n },\n queryResult,\n defaultValueQueryResult,\n };\n};\n","import { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport { CheckboxGroupProps } from \"antd/lib/checkbox\";\nimport {\n BaseRecord,\n GetListResponse,\n HttpError,\n UseSelectProps,\n useSelect,\n BaseKey,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nexport type UseCheckboxGroupReturnType<TData extends BaseRecord = BaseRecord> =\n {\n checkboxGroupProps: CheckboxGroupProps;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n };\n\n/**\n * `useCheckboxGroup` hook allows you to manage an Ant Design {@link https://ant.design/components/checkbox/#components-checkbox-demo-group Checkbox.Group} component when records in a resource needs to be used as checkbox options.\n *\n * @see {@link https://refine.dev/docs/ui-framewors/antd/hooks/field/useCheckboxGroup} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n *\n */\n\ntype UseCheckboxGroupProps<TData, TError> = Omit<\n UseSelectProps<TData, TError>,\n \"defaultValue\"\n> & {\n /**\n * Sets the default value\n */\n defaultValue?: BaseKey[];\n};\n\nexport const useCheckboxGroup = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n>({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta,\n metaData,\n dataProviderName,\n}: UseCheckboxGroupProps<TData, TError>): UseCheckboxGroupReturnType<TData> => {\n const { queryResult, options } = useSelect({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n });\n return {\n checkboxGroupProps: {\n options,\n defaultValue,\n },\n queryResult,\n };\n};\n","import { QueryObserverResult } from \"@tanstack/react-query\";\n\nimport { RadioGroupProps } from \"antd/lib/radio\";\nimport {\n BaseKey,\n BaseRecord,\n GetListResponse,\n HttpError,\n pickNotDeprecated,\n useSelect,\n UseSelectProps,\n} from \"@refinedev/core\";\n\nexport type UseRadioGroupReturnType<TData extends BaseRecord = BaseRecord> = {\n radioGroupProps: RadioGroupProps;\n queryResult: QueryObserverResult<GetListResponse<TData>>;\n};\n\n/**\n * `useRadioGroup` hook allows you to manage an Ant Design {@link https://ant.design/components/radio/#components-radio-demo-radiogroup-with-name Radio.Group} component when records in a resource needs to be used as radio options.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/field/useRadioGroup} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/core/interfaceReferences#baserecord `BaseRecord`}\n *\n */\n\ntype UseRadioGroupProps<TData, TError> = Omit<\n UseSelectProps<TData, TError>,\n \"defaultValue\"\n> & {\n /**\n * Sets the default value\n */\n defaultValue?: BaseKey;\n};\n\nexport const useRadioGroup = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n>({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta,\n metaData,\n dataProviderName,\n}: UseRadioGroupProps<TData, TError>): UseRadioGroupReturnType<TData> => {\n const { queryResult, options } = useSelect({\n resource,\n sort,\n sorters,\n filters,\n optionLabel,\n optionValue,\n queryOptions,\n fetchSize,\n pagination,\n liveMode,\n defaultValue,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n });\n\n return {\n radioGroupProps: {\n options,\n defaultValue,\n },\n queryResult,\n };\n};\n","import React from \"react\";\nimport { ButtonProps, notification, UploadProps, Progress } from \"antd\";\nimport {\n useTranslate,\n useResource,\n BaseRecord,\n HttpError,\n useImport as useImportCore,\n UseImportReturnType,\n ImportOptions,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\n/**\n * `useImport` hook allows you to handle your csv import logic easily.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/import/useImport} for more details.\n *\n * @typeParam TItem - Interface of parsed csv data\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TVariables - Values for mutation function\n *\n */\nexport const useImport = <\n TItem = any,\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TVariables = any,\n>({\n resource: resourceFromProp,\n resourceName,\n mapData = (item) => item as unknown as TVariables,\n paparseOptions,\n batchSize = Number.MAX_SAFE_INTEGER,\n onFinish,\n meta,\n metaData,\n dataProviderName,\n onProgress: onProgressFromProp,\n}: ImportOptions<TItem, TVariables, TData> = {}): Omit<\n UseImportReturnType<TData, TVariables, TError>,\n \"handleChange\" | \"inputProps\"\n> & {\n uploadProps: UploadProps;\n buttonProps: ButtonProps;\n} => {\n const t = useTranslate();\n\n const { resource } = useResource(resourceFromProp ?? resourceName);\n\n const { mutationResult, isLoading, handleChange } = useImportCore<\n TItem,\n TData,\n TError,\n TVariables\n >({\n resource: resource?.identifier ?? resource?.name,\n mapData,\n paparseOptions,\n batchSize,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n onFinish,\n onProgress:\n onProgressFromProp ??\n (({ totalAmount, processedAmount }) => {\n if (totalAmount > 0 && processedAmount > 0) {\n const description = (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginTop: \"-7px\",\n }}\n >\n <Progress\n type=\"circle\"\n percent={Math.floor(\n (processedAmount / totalAmount) * 100,\n )}\n width={50}\n strokeColor=\"#1890ff\"\n status=\"normal\"\n />\n <span style={{ marginLeft: 8, width: \"100%\" }}>\n {t(\n \"notifications.importProgress\",\n {\n processed: processedAmount,\n total: totalAmount,\n },\n `Importing: ${processedAmount}/${totalAmount}`,\n )}\n </span>\n </div>\n );\n\n notification.open({\n description,\n message: null,\n key: `${resource}-import`,\n duration: 0,\n });\n\n if (processedAmount >= totalAmount) {\n }\n\n if (processedAmount === totalAmount) {\n setTimeout(() => {\n notification.destroy(`${resource}-import`);\n }, 4500);\n }\n }\n }),\n });\n\n return {\n uploadProps: {\n onChange: handleChange,\n beforeUpload: () => false,\n showUploadList: false,\n accept: \".csv\",\n },\n buttonProps: {\n type: \"default\",\n loading: isLoading,\n },\n mutationResult,\n isLoading,\n };\n};\n","import { Children, createElement, Fragment } from \"react\";\nimport { ListProps, FormProps, Form, Grid } from \"antd\";\n\nimport {\n BaseRecord,\n CrudFilters,\n SuccessErrorNotification,\n HttpError,\n LiveModeProps,\n useTable as useTableCore,\n useTableProps as useTablePropsCore,\n useTableReturnType,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { useLiveMode } from \"@refinedev/core\";\nimport { PaginationLink } from \"@hooks/table/useTable/paginationLink\";\nimport { PaginationConfig } from \"antd/lib/pagination\";\n\nexport type useSimpleListProps<TData, TError, TSearchVariables> =\n useTablePropsCore<TData, TError> & {\n onSearch?: (\n data: TSearchVariables,\n ) => CrudFilters | Promise<CrudFilters>;\n } & SuccessErrorNotification &\n LiveModeProps;\n\nexport type useSimpleListReturnType<\n TData extends BaseRecord = BaseRecord,\n TSearchVariables = unknown,\n> = Omit<useTableReturnType<TData>, \"tableQueryResult\"> & {\n listProps: ListProps<TData>;\n queryResult: useTableReturnType[\"tableQueryResult\"];\n searchFormProps: FormProps<TSearchVariables>;\n};\n\n/**\n * By using `useSimpleList` you get props for your records from API in accordance with Ant Design {@link https://ant.design/components/list/ `<List>`} component.\n * All features such as pagination, sorting come out of the box.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/list/useSimpleList} for more details.\n *\n * @typeParam TData - Result data of the query extends {@link https://refine.dev/docs/api-references/interfaceReferences#baserecord `BaseRecord`}\n * @typeParam TError - Custom error object that extends {@link https://refine.dev/docs/api-references/interfaceReferences#httperror `HttpError`}\n * @typeParam TSearchVariables - Antd form values\n *\n */\n\nexport const useSimpleList = <\n TData extends BaseRecord = BaseRecord,\n TError extends HttpError = HttpError,\n TSearchVariables = unknown,\n>({\n resource,\n initialCurrent,\n initialPageSize,\n pagination,\n hasPagination = true,\n initialSorter,\n permanentSorter,\n initialFilter,\n permanentFilter,\n defaultSetFilterBehavior,\n filters: filtersFromProp,\n sorters: sortersFromProp,\n onSearch,\n queryOptions,\n syncWithLocation,\n successNotification,\n errorNotification,\n liveMode: liveModeFromProp,\n onLiveEvent,\n liveParams,\n meta,\n metaData,\n dataProviderName,\n}: useSimpleListProps<\n TData,\n TError,\n TSearchVariables\n> = {}): useSimpleListReturnType<TData, TSearchVariables> => {\n const {\n sorters,\n sorter,\n filters,\n current,\n pageSize,\n pageCount,\n setFilters,\n setCurrent,\n setPageSize,\n setSorter,\n setSorters,\n createLinkForSyncWithLocation,\n tableQueryResult: queryResult,\n } = useTableCore({\n resource,\n initialSorter,\n permanentSorter,\n initialFilter,\n permanentFilter,\n filters: filtersFromProp,\n sorters: sortersFromProp,\n defaultSetFilterBehavior,\n initialCurrent,\n initialPageSize,\n queryOptions,\n successNotification,\n errorNotification,\n liveMode: liveModeFromProp,\n onLiveEvent,\n liveParams,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n syncWithLocation,\n dataProviderName,\n pagination,\n hasPagination,\n });\n\n const hasPaginationString = hasPagination === false ? \"off\" : \"server\";\n const isPaginationEnabled =\n (pagination?.mode ?? hasPaginationString) !== \"off\";\n\n const breakpoint = Grid.useBreakpoint();\n\n const liveMode = useLiveMode(liveModeFromProp);\n\n const [form] = Form.useForm<TSearchVariables>();\n\n const { data, isFetched, isLoading } = queryResult;\n\n const onChange = (page: number, pageSize?: number): void => {\n if (isPaginationEnabled) {\n setCurrent(page);\n setPageSize(pageSize || 10);\n }\n };\n\n const onFinish = async (values: TSearchVariables) => {\n if (onSearch) {\n const searchFilters = await onSearch(values);\n if (isPaginationEnabled) {\n setCurrent?.(1);\n }\n return setFilters(searchFilters);\n }\n };\n\n const antdPagination = (): false | PaginationConfig => {\n if (isPaginationEnabled) {\n return {\n itemRender: (page, type, element) => {\n const link = createLinkForSyncWithLocation({\n pagination: {\n pageSize,\n current: page,\n },\n sorters,\n filters,\n });\n\n if (type === \"page\") {\n return createElement(PaginationLink, {\n to: link,\n element: `${page}`,\n });\n }\n if (type === \"next\" || type === \"prev\") {\n return createElement(PaginationLink, {\n to: link,\n element: element,\n });\n }\n\n if (type === \"jump-next\" || type === \"jump-prev\") {\n const elementChildren = (element as React.ReactElement)\n ?.props?.children;\n\n return createElement(PaginationLink, {\n to: link,\n element:\n Children.count(elementChildren) > 1\n ? createElement(\n Fragment,\n {},\n elementChildren,\n )\n : elementChildren,\n });\n }\n\n return element;\n },\n pageSize,\n current,\n simple: !breakpoint.sm,\n total: data?.total,\n onChange,\n };\n }\n\n return false;\n };\n\n return {\n searchFormProps: {\n form,\n onFinish,\n },\n listProps: {\n dataSource: data?.data,\n loading: liveMode === \"auto\" ? isLoading : !isFetched,\n pagination: antdPagination(),\n },\n queryResult,\n filters,\n setFilters,\n sorter,\n setSorter,\n sorters,\n setSorters,\n current,\n setCurrent,\n pageSize,\n setPageSize,\n pageCount,\n createLinkForSyncWithLocation,\n };\n};\n","import { useCallback, useMemo, useState } from \"react\";\nimport { UploadChangeParam } from \"antd/lib/upload\";\n\nexport type UseFileUploadStateType = () => {\n isLoading: boolean;\n onChange: (info: UploadChangeParam) => void;\n};\n\nexport const useFileUploadState: UseFileUploadStateType = () => {\n const [isLoading, setIsloading] = useState(false);\n\n const onChange = useCallback((info: UploadChangeParam) => {\n const fileListLoadings = mapStatusToLoading(info.fileList);\n\n if (fileListLoadings.includes(true)) {\n setIsloading(true);\n } else {\n setIsloading(false);\n }\n }, []);\n\n return useMemo(() => ({ isLoading, onChange }), [isLoading]);\n};\n\nconst mapStatusToLoading = (files: UploadChangeParam[\"fileList\"]) => {\n return files.map((file) => {\n switch (file.status) {\n case \"uploading\":\n return true;\n default:\n return false;\n }\n });\n};\n","import { ModalProps } from \"antd\";\nimport {\n useModal as useCoreModal,\n useModalReturnType as useCoreModelReturnType,\n} from \"@refinedev/core\";\n\nexport type useModalReturnType = {\n modalProps: ModalProps;\n} & Omit<useCoreModelReturnType, \"visible\">;\n\nexport type useModalProps = {\n /**\n * Default props for Ant Design {@link https://ant.design/components/modal/ `<Modal>`} component.\n */\n modalProps?: ModalProps;\n};\n\n/**\n * By using `useModal` you get props for your records from API in accordance with Ant Design {@link https://ant.design/components/modal/ `<Modal>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/hooks/ui/useModal} for more details.\n */\nexport const useModal = ({\n modalProps = {},\n}: useModalProps = {}): useModalReturnType => {\n const { show, close, visible } = useCoreModal({\n defaultVisible: modalProps.open,\n });\n\n return {\n modalProps: {\n ...modalProps,\n onCancel: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n modalProps.onCancel?.(e);\n close();\n },\n open: visible,\n visible,\n },\n show,\n close,\n };\n};\n","import React from \"react\";\nimport { NotificationProvider } from \"@refinedev/core\";\nimport { notification } from \"antd\";\n\nimport { UndoableNotification } from \"@components/undoableNotification\";\n\nexport const notificationProvider: NotificationProvider = {\n open: ({\n key,\n message,\n description,\n type,\n cancelMutation,\n undoableTimeout,\n }) => {\n if (type === \"progress\") {\n notification.open({\n key,\n description: (\n <UndoableNotification\n notificationKey={key}\n message={message}\n cancelMutation={cancelMutation}\n undoableTimeout={undoableTimeout}\n />\n ),\n message: null,\n duration: 0,\n closeIcon: <></>,\n });\n } else {\n notification.open({\n key,\n description: message,\n message: description ?? null,\n type,\n });\n }\n },\n close: (key) => notification.destroy(key),\n};\n","import React from \"react\";\nimport { Button, notification, Progress } from \"antd\";\nimport { OpenNotificationParams } from \"@refinedev/core\";\nimport { UndoOutlined } from \"@ant-design/icons\";\n\nexport type UndoableNotificationProps = {\n notificationKey: OpenNotificationParams[\"key\"];\n message: OpenNotificationParams[\"message\"];\n cancelMutation: OpenNotificationParams[\"cancelMutation\"];\n undoableTimeout: OpenNotificationParams[\"undoableTimeout\"];\n};\n\nexport const UndoableNotification: React.FC<UndoableNotificationProps> = ({\n notificationKey,\n message,\n cancelMutation,\n undoableTimeout,\n}) => (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n marginTop: \"-7px\",\n }}\n >\n <Progress\n type=\"circle\"\n percent={(undoableTimeout ?? 0) * 20}\n format={(time) => time && time / 20}\n width={50}\n strokeColor=\"#1890ff\"\n status=\"normal\"\n />\n <span style={{ marginLeft: 8, width: \"100%\" }}>{message}</span>\n <Button\n style={{ flexShrink: 0 }}\n onClick={() => {\n cancelMutation?.();\n notification.destroy(notificationKey ?? \"\");\n }}\n disabled={undoableTimeout === 0}\n icon={<UndoOutlined />}\n ></Button>\n </div>\n);\n","import React from \"react\";\nimport { Grid, Layout as AntdLayout } from \"antd\";\n\nimport { Sider as DefaultSider } from \"./sider\";\nimport { Header as DefaultHeader } from \"./header\";\nimport { RefineLayoutLayoutProps } from \"./types\";\n\nexport const Layout: React.FC<RefineLayoutLayoutProps> = ({\n children,\n Header,\n Sider,\n Title,\n Footer,\n OffLayoutArea,\n}) => {\n const breakpoint = Grid.useBreakpoint();\n const SiderToRender = Sider ?? DefaultSider;\n const HeaderToRender = Header ?? DefaultHeader;\n const isSmall = typeof breakpoint.sm === \"undefined\" ? true : breakpoint.sm;\n\n return (\n <AntdLayout style={{ minHeight: \"100vh\" }}>\n <SiderToRender Title={Title} />\n <AntdLayout>\n <HeaderToRender />\n <AntdLayout.Content>\n <div\n style={{\n minHeight: 360,\n padding: isSmall ? 24 : 12,\n }}\n >\n {children}\n </div>\n {OffLayoutArea && <OffLayoutArea />}\n </AntdLayout.Content>\n {Footer && <Footer />}\n </AntdLayout>\n </AntdLayout>\n );\n};\n","import React, { useState } from \"react\";\nimport { Layout, Menu, Grid, ConfigProvider, Drawer, Button } from \"antd\";\nimport {\n DashboardOutlined,\n LogoutOutlined,\n UnorderedListOutlined,\n BarsOutlined,\n} from \"@ant-design/icons\";\nimport {\n useTranslate,\n useLogout,\n useTitle,\n CanAccess,\n ITreeMenu,\n useIsExistAuthentication,\n useRouterContext,\n useMenu,\n useRefineContext,\n useLink,\n useRouterType,\n useActiveAuthProvider,\n pickNotDeprecated,\n} from \"@refinedev/core\";\n\nimport { Title as DefaultTitle } from \"@components\";\n\nimport { drawerButtonStyles } from \"./styles\";\nimport { RefineLayoutSiderProps } from \"../types\";\n\nconst { SubMenu } = Menu;\n\nexport const Sider: React.FC<RefineLayoutSiderProps> = ({\n Title: TitleFromProps,\n render,\n meta,\n}) => {\n const [collapsed, setCollapsed] = useState<boolean>(false);\n const [drawerOpen, setDrawerOpen] = useState<boolean>(false);\n const isExistAuthentication = useIsExistAuthentication();\n const routerType = useRouterType();\n const NewLink = useLink();\n const { Link: LegacyLink } = useRouterContext();\n const Link = routerType === \"legacy\" ? LegacyLink : NewLink;\n const TitleFromContext = useTitle();\n const translate = useTranslate();\n const { menuItems, selectedKey, defaultOpenKeys } = useMenu({ meta });\n const breakpoint = Grid.useBreakpoint();\n const { hasDashboard } = useRefineContext();\n const authProvider = useActiveAuthProvider();\n const { mutate: mutateLogout } = useLogout({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const isMobile =\n typeof breakpoint.lg === \"undefined\" ? false : !breakpoint.lg;\n\n const RenderToTitle = TitleFromProps ?? TitleFromContext ?? DefaultTitle;\n\n const renderTreeView = (tree: ITreeMenu[], selectedKey?: string) => {\n return tree.map((item: ITreeMenu) => {\n const {\n icon,\n label,\n route,\n key,\n name,\n children,\n parentName,\n meta,\n options,\n } = item;\n\n if (children.length > 0) {\n return (\n <CanAccess\n key={item.key}\n resource={name.toLowerCase()}\n action=\"list\"\n params={{\n resource: item,\n }}\n >\n <SubMenu\n key={item.key}\n icon={icon ?? <UnorderedListOutlined />}\n title={label}\n >\n {renderTreeView(children, selectedKey)}\n </SubMenu>\n </CanAccess>\n );\n }\n const isSelected = key === selectedKey;\n const isRoute = !(\n pickNotDeprecated(meta?.parent, options?.parent, parentName) !==\n undefined && children.length === 0\n );\n return (\n <CanAccess\n key={item.key}\n resource={name.toLowerCase()}\n action=\"list\"\n params={{\n resource: item,\n }}\n >\n <Menu.Item\n key={item.key}\n style={{\n fontWeight: isSelected ? \"bold\" : \"normal\",\n }}\n icon={icon ?? (isRoute && <UnorderedListOutlined />)}\n >\n <Link to={route ?? \"\"}>{label}</Link>\n {!collapsed && isSelected && (\n <div className=\"ant-menu-tree-arrow\" />\n )}\n </Menu.Item>\n </CanAccess>\n );\n });\n };\n\n const logout = isExistAuthentication && (\n <Menu.Item\n key=\"logout\"\n onClick={() => mutateLogout()}\n icon={<LogoutOutlined />}\n >\n {translate(\"buttons.logout\", \"Logout\")}\n </Menu.Item>\n );\n\n const dashboard = hasDashboard ? (\n <Menu.Item\n key=\"dashboard\"\n style={{\n fontWeight: selectedKey === \"/\" ? \"bold\" : \"normal\",\n }}\n icon={<DashboardOutlined />}\n >\n <Link to=\"/\">{translate(\"dashboard.title\", \"Dashboard\")}</Link>\n {!collapsed && selectedKey === \"/\" && (\n <div className=\"ant-menu-tree-arrow\" />\n )}\n </Menu.Item>\n ) : null;\n\n const items = renderTreeView(menuItems, selectedKey);\n\n const renderSider = () => {\n if (render) {\n return render({\n dashboard,\n items,\n logout,\n collapsed,\n });\n }\n return (\n <>\n {dashboard}\n {items}\n {logout}\n </>\n );\n };\n\n const renderMenu = () => {\n return (\n <>\n <Menu\n theme=\"dark\"\n selectedKeys={selectedKey ? [selectedKey] : []}\n defaultOpenKeys={defaultOpenKeys}\n mode=\"inline\"\n onClick={() => {\n setDrawerOpen(false);\n if (!breakpoint.lg) {\n setCollapsed(true);\n }\n }}\n >\n {renderSider()}\n </Menu>\n </>\n );\n };\n\n const renderDrawerSider = () => {\n return (\n <>\n <Drawer\n open={drawerOpen}\n onClose={() => setDrawerOpen(false)}\n placement=\"left\"\n closable={false}\n width={200}\n bodyStyle={{\n padding: 0,\n }}\n maskClosable={true}\n >\n <Layout>\n <Layout.Sider\n style={{ height: \"100vh\", overflow: \"hidden\" }}\n >\n <RenderToTitle collapsed={false} />\n {renderMenu()}\n </Layout.Sider>\n </Layout>\n </Drawer>\n <Button\n style={drawerButtonStyles}\n size=\"large\"\n onClick={() => setDrawerOpen(true)}\n icon={<BarsOutlined />}\n ></Button>\n </>\n );\n };\n\n const renderContent = () => {\n if (isMobile) {\n return renderDrawerSider();\n }\n\n return (\n <Layout.Sider\n collapsible\n collapsed={collapsed}\n onCollapse={(collapsed: boolean): void =>\n setCollapsed(collapsed)\n }\n collapsedWidth={80}\n breakpoint=\"lg\"\n >\n <RenderToTitle collapsed={collapsed} />\n {renderMenu()}\n </Layout.Sider>\n );\n };\n\n return (\n <ConfigProvider\n theme={{\n components: {\n Menu: {\n colorItemBg: \"transparent\",\n colorItemText: \"#fff\",\n colorItemTextSelected: \"#fff\",\n colorItemBgSelected: \"transparent\",\n colorItemTextHover: \"#fff\",\n },\n },\n }}\n >\n {renderContent()}\n </ConfigProvider>\n );\n};\n","import { CSSProperties } from \"react\";\n\nexport const drawerButtonStyles: CSSProperties = {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n position: \"fixed\",\n top: 64,\n zIndex: 999,\n};\n","import React from \"react\";\nimport { Layout as AntdLayout, Typography, Avatar, Space } from \"antd\";\nimport { useGetIdentity, useActiveAuthProvider } from \"@refinedev/core\";\nimport { RefineLayoutHeaderProps } from \"../types\";\nconst { Text } = Typography;\n\nexport const Header: React.FC<RefineLayoutHeaderProps> = () => {\n const authProvider = useActiveAuthProvider();\n const { data: user } = useGetIdentity({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const shouldRenderHeader = user && (user.name || user.avatar);\n\n return shouldRenderHeader ? (\n <AntdLayout.Header\n style={{\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n padding: \"0px 24px\",\n height: \"64px\",\n }}\n >\n <Space>\n {user.name && (\n <Text ellipsis strong>\n {user.name}\n </Text>\n )}\n {user.avatar && (\n <Avatar size=\"large\" src={user?.avatar} alt={user?.name} />\n )}\n </Space>\n </AntdLayout.Header>\n ) : null;\n};\n","import React from \"react\";\nimport {\n TitleProps,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\n\nexport const Title: React.FC<TitleProps> = ({ collapsed }) => {\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n return (\n <ActiveLink to=\"/\">\n {collapsed ? (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <img\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine-mini.svg\"\n alt=\"Refine\"\n style={{\n margin: \"0 auto\",\n padding: \"12px 0\",\n maxHeight: \"65.5px\",\n }}\n />\n </div>\n ) : (\n <img\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine\"\n style={{\n width: \"200px\",\n padding: \"12px 24px\",\n }}\n />\n )}\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { PlusSquareOutlined } from \"@ant-design/icons\";\nimport {\n useNavigation,\n useTranslate,\n useCan,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { CreateButtonProps } from \"../types\";\n\n/**\n * <CreateButton> uses Ant Design's {@link https://ant.design/components/button/ `<Button> component`}.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#create `create`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful to redirect the app to the create page route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/create-button} for more details.\n */\nexport const CreateButton: React.FC<CreateButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const { createUrl: generateCreateUrl } = useNavigation();\n\n const { resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"create\",\n queryOptions: {\n enabled: accessControlEnabled,\n },\n params: {\n resource,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const createUrl = resource ? generateCreateUrl(resource, meta) : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={createUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<PlusSquareOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.CreateButton}\n {...rest}\n >\n {!hideText &&\n (children ?? translate(\"buttons.create\", \"Create\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { EditOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { EditButtonProps } from \"../types\";\n\n/**\n * `<EditButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#edit `edit`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the edit page with the record id route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/edit-button} for more details.\n */\nexport const EditButton: React.FC<EditButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const { editUrl: generateEditUrl } = useNavigation();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"edit\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const editUrl =\n resource && (recordItemId ?? id)\n ? generateEditUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={editUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<EditOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.EditButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.edit\", \"Edit\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button, Popconfirm } from \"antd\";\nimport { DeleteOutlined } from \"@ant-design/icons\";\nimport {\n useDelete,\n useTranslate,\n useMutationMode,\n useCan,\n useResource,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { DeleteButtonProps } from \"../types\";\n\n/**\n * `<DeleteButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} and {@link https://ant.design/components/button/ `<Popconfirm>`} components.\n * When you try to delete something, a pop-up shows up and asks for confirmation. When confirmed it executes the `useDelete` method provided by your `dataProvider`.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/delete-button} for more details.\n */\nexport const DeleteButton: React.FC<DeleteButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n onSuccess,\n mutationMode: mutationModeProp,\n children,\n successNotification,\n errorNotification,\n hideText = false,\n accessControl,\n metaData,\n meta,\n dataProviderName,\n confirmTitle,\n confirmOkText,\n confirmCancelText,\n invalidates,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { mutationMode: mutationModeContext } = useMutationMode();\n\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const { mutate, isLoading, variables } = useDelete();\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"delete\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <Popconfirm\n key=\"delete\"\n okText={confirmOkText ?? translate(\"buttons.delete\", \"Delete\")}\n cancelText={\n confirmCancelText ?? translate(\"buttons.cancel\", \"Cancel\")\n }\n okType=\"danger\"\n title={\n confirmTitle ?? translate(\"buttons.confirm\", \"Are you sure?\")\n }\n okButtonProps={{ disabled: isLoading }}\n onConfirm={(): void => {\n if ((recordItemId ?? id) && resource?.name) {\n mutate(\n {\n id: recordItemId ?? id ?? \"\",\n resource: resource?.name,\n mutationMode,\n successNotification,\n errorNotification,\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n dataProviderName,\n invalidates,\n },\n {\n onSuccess: (value) => {\n onSuccess && onSuccess(value);\n },\n },\n );\n }\n }}\n disabled={\n typeof rest?.disabled !== \"undefined\"\n ? rest.disabled\n : data?.can === false\n }\n >\n <Button\n danger\n loading={(recordItemId ?? id) === variables?.id && isLoading}\n icon={<DeleteOutlined />}\n disabled={data?.can === false}\n data-testid={RefineButtonTestIds.DeleteButton}\n {...rest}\n >\n {!hideText &&\n (children ?? translate(\"buttons.delete\", \"Delete\"))}\n </Button>\n </Popconfirm>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { RedoOutlined } from \"@ant-design/icons\";\nimport {\n useOne,\n useTranslate,\n useResource,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { RefreshButtonProps } from \"../types\";\n\n/**\n * `<RefreshButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component\n * to update the data shown on the page via the {@link https://refine.dev/docs/core/hooks/data/useOne `useOne`} method provided by your dataProvider.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/refresh-button} for more details.\n */\nexport const RefreshButton: React.FC<RefreshButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n meta,\n metaData,\n dataProviderName,\n children,\n onClick,\n ...rest\n}) => {\n const translate = useTranslate();\n\n const { resource, id } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { refetch, isFetching } = useOne({\n resource: resource?.name,\n id: recordItemId ?? id,\n queryOptions: {\n enabled: false,\n },\n meta: pickNotDeprecated(meta, metaData),\n metaData: pickNotDeprecated(meta, metaData),\n liveMode: \"off\",\n dataProviderName,\n });\n\n return (\n <Button\n // TODO: fix any type\n onClick={(e) => (onClick ? onClick(e as any) : refetch())}\n icon={<RedoOutlined spin={isFetching} />}\n data-testid={RefineButtonTestIds.RefreshButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.refresh\", \"Refresh\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { EyeOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ShowButtonProps } from \"../types\";\n\n/**\n * `<ShowButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#show `show`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the show page with the record id route of resource.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/show-button} for more details.\n */\nexport const ShowButton: React.FC<ShowButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { showUrl: generateShowUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"show\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const showUrl =\n resource && (recordItemId || id)\n ? generateShowUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={showUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<EyeOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.ShowButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.show\", \"Show\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { BarsOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n pickNotDeprecated,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ListButtonProps } from \"../types\";\n\n/**\n * `<ListButton>` is using Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#list `list`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation `useNavigation`} under the hood.\n * It can be useful when redirecting the app to the list page route of resource}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/list-button} for more details.\n */\nexport const ListButton: React.FC<ListButtonProps> = ({\n resource: resourceNameFromProps,\n resourceNameOrRouteName: propResourceNameOrRouteName,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { listUrl: generateListUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"list\",\n queryOptions: {\n enabled: accessControlEnabled,\n },\n params: {\n resource,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const listUrl = resource ? generateListUrl(resource, meta) : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={listUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<BarsOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.ListButton}\n {...rest}\n >\n {!hideText &&\n (children ??\n translate(\n `${\n resource?.name ??\n resourceNameFromProps ??\n propResourceNameOrRouteName\n }.titles.list`,\n userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.label ??\n resource?.name ??\n pickNotDeprecated(\n resourceNameFromProps,\n propResourceNameOrRouteName,\n ),\n \"plural\",\n ),\n ))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { ExportOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ExportButtonProps } from \"../types\";\n\n/**\n * `<ExportButton>` is an Ant Design {@link https://ant.design/components/button/ `<Button>`} with a default export icon and a default text with \"Export\".\n * It only has presentational value.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/export-button} for more details.\n */\nexport const ExportButton: React.FC<ExportButtonProps> = ({\n hideText = false,\n children,\n ...rest\n}) => {\n const translate = useTranslate();\n\n return (\n <Button\n type=\"default\"\n icon={<ExportOutlined />}\n data-testid={RefineButtonTestIds.ExportButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.export\", \"Export\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { SaveOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { SaveButtonProps } from \"../types\";\n\n/**\n * `<SaveButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} component.\n * It uses it for presantation purposes only. Some of the hooks that refine has adds features to this button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/save-button} for more details.\n */\nexport const SaveButton: React.FC<SaveButtonProps> = ({\n hideText = false,\n children,\n ...rest\n}) => {\n const translate = useTranslate();\n\n return (\n <Button\n type=\"primary\"\n icon={<SaveOutlined />}\n data-testid={RefineButtonTestIds.SaveButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.save\", \"Save\"))}\n </Button>\n );\n};\n","import React from \"react\";\nimport { Button } from \"antd\";\nimport { PlusSquareOutlined } from \"@ant-design/icons\";\nimport {\n useCan,\n useNavigation,\n useTranslate,\n useResource,\n useRouterContext,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { CloneButtonProps } from \"../types\";\n\n/**\n * `<CloneButton>` uses Ant Design's {@link https://ant.design/components/button/ `<Button> component`}.\n * It uses the {@link https://refine.dev/docs/core/hooks/navigation/useNavigation#clone `clone`} method from {@link https://refine.dev/docs/core/hooks/navigation/useNavigation useNavigation} under the hood.\n * It can be useful when redirecting the app to the create page with the record id route of resource.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/clone-button} for more details.\n */\nexport const CloneButton: React.FC<CloneButtonProps> = ({\n resourceNameOrRouteName: propResourceNameOrRouteName,\n resource: resourceNameFromProps,\n recordItemId,\n hideText = false,\n accessControl,\n meta,\n children,\n onClick,\n ...rest\n}) => {\n const accessControlEnabled = accessControl?.enabled ?? true;\n const hideIfUnauthorized = accessControl?.hideIfUnauthorized ?? false;\n const { cloneUrl: generateCloneUrl } = useNavigation();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const translate = useTranslate();\n\n const { id, resource } = useResource(\n resourceNameFromProps ?? propResourceNameOrRouteName,\n );\n\n const { data } = useCan({\n resource: resource?.name,\n action: \"create\",\n params: { id: recordItemId ?? id, resource },\n queryOptions: {\n enabled: accessControlEnabled,\n },\n });\n\n const createButtonDisabledTitle = () => {\n if (data?.can) return \"\";\n else if (data?.reason) return data.reason;\n else\n return translate(\n \"buttons.notAccessTitle\",\n \"You don't have permission to access\",\n );\n };\n\n const cloneUrl =\n resource && (recordItemId || id)\n ? generateCloneUrl(resource, recordItemId! ?? id!, meta)\n : \"\";\n\n if (accessControlEnabled && hideIfUnauthorized && !data?.can) {\n return null;\n }\n\n return (\n <ActiveLink\n to={cloneUrl}\n replace={false}\n onClick={(e: React.PointerEvent<HTMLButtonElement>) => {\n if (data?.can === false) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n e.preventDefault();\n onClick(e);\n }\n }}\n >\n <Button\n icon={<PlusSquareOutlined />}\n disabled={data?.can === false}\n title={createButtonDisabledTitle()}\n data-testid={RefineButtonTestIds.CloneButton}\n {...rest}\n >\n {!hideText && (children ?? translate(\"buttons.clone\", \"Clone\"))}\n </Button>\n </ActiveLink>\n );\n};\n","import React from \"react\";\nimport { Button, Upload } from \"antd\";\nimport { ImportOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\nimport { RefineButtonTestIds } from \"@refinedev/ui-types\";\n\nimport { ImportButtonProps } from \"../types\";\n\n/**\n * `<ImportButton>` is compatible with the {@link https://refine.dev/docs/ui-frameworks/antd/hooks/import/useImport `useImport`} hook and is meant to be used as it's upload button.\n * It uses Ant Design's {@link https://ant.design/components/button/ `<Button>`} and {@link https://ant.design/components/upload/ `<Upload>`} components.\n * It wraps a `<Button>` component with an `<Upload>` component and accepts properties for `<Button>` and `<Upload>` components separately.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/buttons/import-button} for more details.\n */\nexport const ImportButton: React.FC<ImportButtonProps> = ({\n uploadProps,\n buttonProps,\n hideText = false,\n children,\n}) => {\n const translate = useTranslate();\n\n return (\n <Upload {...uploadProps}>\n <Button\n icon={<ImportOutlined />}\n data-testid={RefineButtonTestIds.ImportButton}\n {...buttonProps}\n >\n {!hideText &&\n (children ?? translate(\"buttons.import\", \"Import\"))}\n </Button>\n </Upload>\n );\n};\n","import React from \"react\";\nimport { Space } from \"antd\";\nimport {\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useResource,\n} from \"@refinedev/core\";\n\nimport { Breadcrumb, CreateButton, PageHeader } from \"@components\";\nimport { ListProps } from \"../types\";\n\n/**\n * `<List>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/list} for more details.\n */\nexport const List: React.FC<ListProps> = ({\n canCreate,\n title,\n children,\n createButtonProps,\n resource: resourceFromProps,\n wrapperProps,\n contentProps,\n headerProps,\n breadcrumb: breadcrumbFromProps,\n headerButtonProps,\n headerButtons,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n\n const { resource } = useResource(resourceFromProps);\n\n const isCreateButtonVisible =\n canCreate ??\n ((resource?.canCreate ?? !!resource?.create) || createButtonProps);\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const defaultExtra = isCreateButtonVisible ? (\n <CreateButton\n size=\"middle\"\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n {...createButtonProps}\n />\n ) : null;\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n title={\n title ??\n translate(\n `${resource?.name}.titles.list`,\n userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"plural\",\n ),\n )\n }\n extra={\n headerButtons ? (\n <Space wrap {...headerButtonProps}>\n {typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultExtra,\n })\n : headerButtons}\n </Space>\n ) : (\n defaultExtra\n )\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <div {...(contentProps ?? {})}>{children}</div>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useResource,\n useBack,\n} from \"@refinedev/core\";\n\nimport { Breadcrumb, SaveButton, PageHeader } from \"@components\";\nimport { CreateProps } from \"../types\";\n\n/**\n * `<Create>` provides us a layout to display the page.\n * It does not contain any logic but adds extra functionalities like action buttons and giving titles to the page.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/create} for more details.\n */\nexport const Create: React.FC<CreateProps> = ({\n title,\n saveButtonProps,\n children,\n resource: resourceFromProps,\n isLoading = false,\n breadcrumb: breadcrumbFromProps,\n wrapperProps,\n headerProps,\n contentProps,\n headerButtonProps,\n headerButtons,\n footerButtonProps,\n footerButtons,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n const back = useBack();\n const { goBack } = useNavigation();\n\n const { resource, action } = useResource(resourceFromProps);\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const defaultFooterButtons = (\n <>\n <SaveButton\n {...(isLoading ? { disabled: true } : {})}\n {...saveButtonProps}\n htmlType=\"submit\"\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" || typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.create`,\n `Create ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n extra={\n <Space wrap {...(headerButtonProps ?? {})}>\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: null,\n })\n : headerButtons\n : null}\n </Space>\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={[\n <Space\n key=\"action-buttons\"\n style={{ float: \"right\", marginRight: 24 }}\n {...(footerButtonProps ?? {})}\n >\n {footerButtons\n ? typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons:\n defaultFooterButtons,\n })\n : footerButtons\n : defaultFooterButtons}\n </Space>,\n ]}\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\n\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useMutationMode,\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useRouterType,\n useBack,\n useResource,\n useGo,\n useToPath,\n} from \"@refinedev/core\";\n\nimport {\n DeleteButton,\n RefreshButton,\n ListButton,\n SaveButton,\n Breadcrumb,\n PageHeader,\n} from \"@components\";\nimport { EditProps } from \"../types\";\n\n/**\n * `<Edit>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/edit} for more details.\n */\nexport const Edit: React.FC<EditProps> = ({\n title,\n saveButtonProps,\n mutationMode: mutationModeProp,\n recordItemId,\n children,\n deleteButtonProps,\n canDelete,\n resource: resourceFromProps,\n isLoading = false,\n dataProviderName,\n breadcrumb: breadcrumbFromProps,\n wrapperProps,\n headerProps,\n contentProps,\n headerButtonProps,\n headerButtons,\n footerButtonProps,\n footerButtons,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n const { mutationMode: mutationModeContext } = useMutationMode();\n const mutationMode = mutationModeProp ?? mutationModeContext;\n\n const routerType = useRouterType();\n const back = useBack();\n const go = useGo();\n const { goBack, list: legacyGoList } = useNavigation();\n\n const {\n resource,\n action,\n id: idFromParams,\n } = useResource(resourceFromProps);\n\n const goListPath = useToPath({\n resource,\n action: \"list\",\n });\n\n const id = recordItemId ?? idFromParams;\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const isDeleteButtonVisible =\n canDelete ??\n ((resource?.meta?.canDelete ?? resource?.canDelete) ||\n deleteButtonProps);\n\n const defaultHeaderButtons = (\n <>\n {!recordItemId && (\n <ListButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n />\n )}\n <RefreshButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n dataProviderName={dataProviderName}\n />\n </>\n );\n\n const defaultFooterButtons = (\n <>\n {isDeleteButtonVisible && (\n <DeleteButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n mutationMode={mutationMode}\n onSuccess={() => {\n if (routerType === \"legacy\") {\n legacyGoList(\n resource?.route ?? resource?.name ?? \"\",\n );\n } else {\n go({ to: goListPath });\n }\n }}\n recordItemId={id}\n dataProviderName={dataProviderName}\n {...deleteButtonProps}\n />\n )}\n <SaveButton\n {...(isLoading ? { disabled: true } : {})}\n {...saveButtonProps}\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" && typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.edit`,\n `Edit ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n extra={\n <Space wrap {...(headerButtonProps ?? {})}>\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultHeaderButtons,\n })\n : headerButtons\n : defaultHeaderButtons}\n </Space>\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={[\n <Space\n key=\"footer-buttons\"\n wrap\n style={{\n float: \"right\",\n marginRight: 24,\n }}\n {...(footerButtonProps ?? {})}\n >\n {footerButtons\n ? typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons:\n defaultFooterButtons,\n })\n : footerButtons\n : defaultFooterButtons}\n </Space>,\n ]}\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Card, Space, Spin } from \"antd\";\nimport {\n useNavigation,\n useTranslate,\n userFriendlyResourceName,\n useRefineContext,\n useResource,\n useToPath,\n useRouterType,\n useBack,\n useGo,\n} from \"@refinedev/core\";\n\nimport {\n EditButton,\n DeleteButton,\n RefreshButton,\n ListButton,\n Breadcrumb,\n PageHeader,\n} from \"@components\";\nimport { ShowProps } from \"../types\";\n\n/**\n * `<Show>` provides us a layout for displaying the page.\n * It does not contain any logic but adds extra functionalities like a refresh button.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/basic-views/show} for more details.\n */\nexport const Show: React.FC<ShowProps> = ({\n title,\n canEdit,\n canDelete,\n isLoading = false,\n children,\n resource: resourceFromProps,\n recordItemId,\n dataProviderName,\n breadcrumb: breadcrumbFromProps,\n contentProps,\n headerProps,\n wrapperProps,\n headerButtons,\n footerButtons,\n footerButtonProps,\n headerButtonProps,\n goBack: goBackFromProps,\n}) => {\n const translate = useTranslate();\n const { options: { breadcrumb: globalBreadcrumb } = {} } =\n useRefineContext();\n\n const routerType = useRouterType();\n const back = useBack();\n const go = useGo();\n const { goBack, list: legacyGoList } = useNavigation();\n\n const {\n resource,\n action,\n id: idFromParams,\n } = useResource(resourceFromProps);\n\n const goListPath = useToPath({\n resource,\n action: \"list\",\n });\n\n const id = recordItemId ?? idFromParams;\n\n const breadcrumb =\n typeof breadcrumbFromProps === \"undefined\"\n ? globalBreadcrumb\n : breadcrumbFromProps;\n\n const isDeleteButtonVisible =\n canDelete ?? resource?.meta?.canDelete ?? resource?.canDelete;\n const isEditButtonVisible =\n canEdit ?? resource?.canEdit ?? !!resource?.edit;\n\n const defaultHeaderButtons = (\n <>\n {!recordItemId && (\n <ListButton\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n />\n )}\n {isEditButtonVisible && (\n <EditButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n />\n )}\n {isDeleteButtonVisible && (\n <DeleteButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n onSuccess={() => {\n if (routerType === \"legacy\") {\n legacyGoList(\n resource?.route ?? resource?.name ?? \"\",\n );\n } else {\n go({ to: goListPath });\n }\n }}\n dataProviderName={dataProviderName}\n />\n )}\n <RefreshButton\n {...(isLoading ? { disabled: true } : {})}\n resource={\n routerType === \"legacy\"\n ? resource?.route\n : resource?.identifier ?? resource?.name\n }\n recordItemId={id}\n dataProviderName={dataProviderName}\n />\n </>\n );\n\n return (\n <div {...(wrapperProps ?? {})}>\n <PageHeader\n ghost={false}\n backIcon={goBackFromProps}\n onBack={\n action !== \"list\" && typeof action !== \"undefined\"\n ? routerType === \"legacy\"\n ? goBack\n : back\n : undefined\n }\n title={\n title ??\n translate(\n `${resource?.name}.titles.show`,\n `Show ${userFriendlyResourceName(\n resource?.meta?.label ??\n resource?.options?.label ??\n resource?.label ??\n resource?.name,\n \"singular\",\n )}`,\n )\n }\n extra={\n <Space\n key=\"extra-buttons\"\n wrap\n {...(headerButtonProps ?? {})}\n >\n {headerButtons\n ? typeof headerButtons === \"function\"\n ? headerButtons({\n defaultButtons: defaultHeaderButtons,\n })\n : headerButtons\n : defaultHeaderButtons}\n </Space>\n }\n breadcrumb={\n typeof breadcrumb !== \"undefined\" ? (\n <>{breadcrumb}</> ?? undefined\n ) : (\n <Breadcrumb />\n )\n }\n {...(headerProps ?? {})}\n >\n <Spin spinning={isLoading}>\n <Card\n bordered={false}\n actions={\n footerButtons\n ? [\n <Space\n key=\"footer-buttons\"\n wrap\n {...footerButtonProps}\n >\n {typeof footerButtons === \"function\"\n ? footerButtons({\n defaultButtons: null,\n })\n : footerButtons}\n </Space>,\n ]\n : undefined\n }\n {...(contentProps ?? {})}\n >\n {children}\n </Card>\n </Spin>\n </PageHeader>\n </div>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Text } = Typography;\n\nimport { TextFieldProps } from \"../types\";\n\n/**\n * This field lets you show basic text. It uses Ant Design's {@link https://ant.design/components/typography/#Typography.Text `<Typography.Text>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/text} for more details.\n */\nexport const TextField: React.FC<TextFieldProps> = ({ value, ...rest }) => {\n return <Text {...rest}>{value}</Text>;\n};\n","import React from \"react\";\nimport { Tag } from \"antd\";\n\nimport { TagFieldProps } from \"../types\";\n\n/**\n * This field lets you display a value in a tag. It uses Ant Design's {@link https://ant.design/components/tag/ `<Tag>`} component.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/tag} for more details.\n */\nexport const TagField: React.FC<TagFieldProps> = ({ value, ...rest }) => {\n return <Tag {...rest}>{value?.toString()}</Tag>;\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Link } = Typography;\n\nimport { EmailFieldProps } from \"../types\";\n\n/**\n * This field is used to display email values. It uses the {@link https://ant.design/components/typography/#FAQ `<Link>`} component\n * of {@link https://ant.design/components/typography `<Typography>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/email} for more details.\n */\nexport const EmailField: React.FC<EmailFieldProps> = ({ value, ...rest }) => {\n return (\n <Link href={`mailto:${value}`} {...rest}>\n {value}\n </Link>\n );\n};\n","import React from \"react\";\nimport { Image } from \"antd\";\n\nimport { ImageFieldProps } from \"../types\";\n\n/**\n * This field is used to display images and uses {@link https://ant.design/components/image/#header `<Image>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/image} for more details.\n */\nexport const ImageField: React.FC<ImageFieldProps> = ({\n value,\n imageTitle,\n ...rest\n}) => {\n return <Image {...rest} src={value} title={imageTitle} />;\n};\n","import React from \"react\";\nimport { Tooltip } from \"antd\";\n\nimport { CheckOutlined, CloseOutlined } from \"@ant-design/icons\";\n\nimport { BooleanFieldProps } from \"../types\";\n\n/**\n * This field is used to display boolean values. It uses the {@link https://ant.design/components/tooltip/#header `<Tooltip>`} values from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/boolean} for more details.\n */\nexport const BooleanField: React.FC<BooleanFieldProps> = ({\n value,\n valueLabelTrue = \"true\",\n valueLabelFalse = \"false\",\n trueIcon = <CheckOutlined />,\n falseIcon = <CloseOutlined />,\n ...rest\n}) => {\n return (\n <Tooltip title={value ? valueLabelTrue : valueLabelFalse} {...rest}>\n {value ? <span>{trueIcon}</span> : <span>{falseIcon}</span>}\n </Tooltip>\n );\n};\n","import React from \"react\";\nimport dayjs from \"dayjs\";\nimport { Typography } from \"antd\";\n\nimport LocalizedFormat from \"dayjs/plugin/localizedFormat\";\n\ndayjs.extend(LocalizedFormat);\n\nconst defaultLocale = dayjs.locale();\n\nimport { DateFieldProps } from \"../types\";\n\n/**\n * This field is used to display dates. It uses {@link https://day.js.org/docs/en/display/format `Day.js`} to display date format.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/date} for more details.\n */\nexport const DateField: React.FC<DateFieldProps> = ({\n value,\n locales,\n format: dateFormat = \"L\",\n ...rest\n}) => {\n const { Text } = Typography;\n\n return (\n <Text {...rest}>\n {dayjs(value)\n .locale(locales || defaultLocale)\n .format(dateFormat)}\n </Text>\n );\n};\n","import React from \"react\";\n\nimport { UrlField } from \"@components\";\nimport { FileFieldProps } from \"../types\";\n\n/**\n * This field is used to display files and uses {@link https://ant.design/components/typography `<Typography.Link>`} from Ant Design.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/file} for more details.\n */\nexport const FileField: React.FC<FileFieldProps> = ({\n title,\n src,\n ...rest\n}) => {\n return (\n <UrlField value={src} title={title} {...rest}>\n {title ?? src}\n </UrlField>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Link } = Typography;\n\nimport { UrlFieldProps } from \"../types\";\n\n/**\n * This field lets you embed a link. It uses Ant Design's {@link https://ant.design/components/typography/ `<Typography.Link>`} component.\n * You can pass a URL in its `value` property and you can show a text in its place by passing any `children`.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/url} for more details.\n */\nexport const UrlField: React.FC<UrlFieldProps> = ({\n children,\n value,\n ...rest\n}) => {\n return (\n <Link href={value} {...rest}>\n {children ?? value}\n </Link>\n );\n};\n","import React from \"react\";\nimport { Typography } from \"antd\";\n\nconst { Text } = Typography;\n\nfunction toLocaleStringSupportsOptions() {\n return !!(\n typeof Intl == \"object\" &&\n Intl &&\n typeof Intl.NumberFormat == \"function\"\n );\n}\n\nimport { NumberFieldProps } from \"../types\";\n\n/**\n * This field is used to display a number formatted according to the browser locale, right aligned. and uses {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl `Intl`} to display date format.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/number} for more details.\n */\nexport const NumberField: React.FC<NumberFieldProps> = ({\n value,\n locale,\n options,\n ...rest\n}) => {\n const number = parseFloat(value.toString());\n\n return (\n <Text {...rest}>\n {toLocaleStringSupportsOptions()\n ? number.toLocaleString(locale, options)\n : number}\n </Text>\n );\n};\n","import React from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport gfm from \"remark-gfm\";\n\nimport { RefineFieldMarkdownProps } from \"../types\";\n\n/**\n * This field lets you display markdown content. It supports {@link https://github.github.com/gfm/ GitHub Flavored Markdown}.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/fields/markdown} for more details.\n */\nexport const MarkdownField: React.FC<RefineFieldMarkdownProps> = ({\n value = \"\",\n}) => {\n return <ReactMarkdown plugins={[gfm]}>{value}</ReactMarkdown>;\n};\n","import React, { ReactNode, useState } from \"react\";\nimport { Button, Space } from \"antd\";\nimport type { FilterDropdownProps as AntdFilterDropdownProps } from \"antd/lib/table/interface\";\nimport dayjs from \"dayjs\";\nimport { FilterOutlined } from \"@ant-design/icons\";\nimport { useTranslate } from \"@refinedev/core\";\n\nexport type FilterDropdownProps = AntdFilterDropdownProps & {\n mapValue?: (selectedKeys: React.Key[]) => any;\n children: ReactNode;\n};\n\n/**\n * `<FilterDropdown>` is a helper component for {@link https://ant.design/components/table/#components-table-demo-custom-filter-panel filter dropdowns in Ant Design `<Table>` components.}\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/filter-dropdown} for more details.\n */\nexport const FilterDropdown: React.FC<FilterDropdownProps> = (props) => {\n const {\n setSelectedKeys,\n confirm,\n clearFilters,\n mapValue,\n selectedKeys,\n children,\n } = props;\n\n const [value, setValue] = useState<any[] | undefined>(selectedKeys);\n const translate = useTranslate();\n\n const clearFilter = () => {\n if (clearFilters) {\n setValue([]);\n clearFilters();\n }\n };\n\n const onFilter = () => {\n const _mappedValue = mappedValue(value);\n\n let keys;\n if (typeof _mappedValue === \"number\") {\n keys = `${_mappedValue}`;\n } else if (dayjs.isDayjs(_mappedValue)) {\n keys = [_mappedValue.toISOString()];\n } else {\n keys = _mappedValue;\n }\n\n setSelectedKeys(keys);\n\n confirm?.();\n };\n\n const mappedValue = (value: any) => (mapValue ? mapValue(value) : value);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const onChange = (e: any) => {\n if (typeof e === \"object\") {\n if (Array.isArray(e)) {\n const _mappedValue = mappedValue(e);\n\n setValue(_mappedValue);\n return setSelectedKeys(_mappedValue);\n }\n\n const changeEvent =\n !e || !e.target || dayjs.isDayjs(e)\n ? { target: { value: e } }\n : e;\n\n const { target }: React.ChangeEvent<HTMLInputElement> = changeEvent;\n const _mappedValue = mappedValue(target.value);\n setValue(_mappedValue);\n return;\n }\n\n const _mappedValue = mappedValue(e);\n\n setValue(_mappedValue);\n };\n\n const childrenWithProps = React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n onChange,\n value: mappedValue(value),\n });\n }\n return child;\n });\n return (\n <div\n style={{\n padding: 10,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"flex-end\",\n }}\n >\n <div style={{ marginBottom: 15 }}>{childrenWithProps}</div>\n <Space>\n <Button type=\"primary\" size=\"small\" onClick={() => onFilter()}>\n <FilterOutlined /> {translate(\"buttons.filter\", \"Filter\")}\n </Button>\n <Button danger size=\"small\" onClick={() => clearFilter()}>\n {translate(\"buttons.clear\", \"Clear\")}\n </Button>\n </Space>\n </div>\n );\n};\n","import React, { useEffect, useState } from \"react\";\nimport { useGo, useResource, useRouterType } from \"@refinedev/core\";\nimport { RefineErrorPageProps } from \"@refinedev/ui-types\";\nimport { Button, Result, Typography, Space, Tooltip } from \"antd\";\nimport { InfoCircleOutlined } from \"@ant-design/icons\";\nimport { useNavigation, useTranslate } from \"@refinedev/core\";\n\nconst { Text } = Typography;\n\n/**\n * When the app is navigated to a non-existent route, refine shows a default error page.\n * A custom error component can be used for this error page.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#catchall} for more details.\n */\nexport const ErrorComponent: React.FC<RefineErrorPageProps> = () => {\n const [errorMessage, setErrorMessage] = useState<string>();\n const translate = useTranslate();\n const { push } = useNavigation();\n const go = useGo();\n const routerType = useRouterType();\n\n const { resource, action } = useResource();\n\n useEffect(() => {\n if (resource) {\n if (action) {\n setErrorMessage(\n translate(\n \"pages.error.info\",\n {\n action: action,\n resource: resource?.name,\n },\n `You may have forgotten to add the \"${action}\" component to \"${resource?.name}\" resource.`,\n ),\n );\n }\n }\n }, [resource, action]);\n\n return (\n <Result\n status=\"404\"\n title=\"404\"\n extra={\n <Space direction=\"vertical\" size=\"large\">\n <Space>\n <Text>\n {translate(\n \"pages.error.404\",\n \"Sorry, the page you visited does not exist.\",\n )}\n </Text>\n {errorMessage && (\n <Tooltip title={errorMessage}>\n <InfoCircleOutlined data-testid=\"error-component-tooltip\" />\n </Tooltip>\n )}\n </Space>\n <Button\n type=\"primary\"\n onClick={() => {\n if (routerType === \"legacy\") {\n push(\"/\");\n } else {\n go({ to: \"/\" });\n }\n }}\n >\n {translate(\"pages.error.backHome\", \"Back Home\")}\n </Button>\n </Space>\n }\n />\n );\n};\n","import React from \"react\";\nimport { LoginPageProps, useActiveAuthProvider } from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n Checkbox,\n} from \"antd\";\nimport { useLogin, useTranslate } from \"@refinedev/core\";\n\nimport {\n layoutStyles,\n containerStyles,\n titleStyles,\n imageContainer,\n} from \"./styles\";\n\nconst { Text, Title } = Typography;\nexport interface ILoginForm {\n username: string;\n password: string;\n remember: boolean;\n}\n\n/**\n * @deprecated LoginPage is deprecated. Use AuthPage instead. @see {@link https://refine.dev/docs/api-reference/antd/components/antd-auth-page} for more details.\n * **refine** has a default login page form which is served on `/login` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#loginpage} for more details.\n */\nexport const LoginPage: React.FC<LoginPageProps> = () => {\n const [form] = Form.useForm<ILoginForm>();\n const translate = useTranslate();\n\n const authProvider = useActiveAuthProvider();\n const { mutate: login, isLoading } = useLogin<ILoginForm>({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.login.title\", \"Sign in your account\")}\n </Title>\n );\n\n return (\n <Layout style={layoutStyles}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n <div style={containerStyles}>\n <div style={imageContainer}>\n <img\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine Logo\"\n />\n </div>\n <Card title={CardTitle} headStyle={{ borderBottom: 0 }}>\n <Form<ILoginForm>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => {\n login(values);\n }}\n requiredMark={false}\n initialValues={{\n remember: false,\n }}\n >\n <Form.Item\n name=\"username\"\n label={translate(\n \"pages.login.username\",\n \"Username\",\n )}\n rules={[{ required: true }]}\n >\n <Input\n size=\"large\"\n placeholder={translate(\n \"pages.login.username\",\n \"Username\",\n )}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\n \"pages.login.password\",\n \"Password\",\n )}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <div style={{ marginBottom: \"12px\" }}>\n <Form.Item\n name=\"remember\"\n valuePropName=\"checked\"\n noStyle\n >\n <Checkbox\n style={{\n fontSize: \"12px\",\n }}\n >\n {translate(\n \"pages.login.remember\",\n \"Remember me\",\n )}\n </Checkbox>\n </Form.Item>\n\n <a\n style={{\n float: \"right\",\n fontSize: \"12px\",\n }}\n href=\"#\"\n >\n {translate(\n \"pages.login.forgotPassword\",\n \"Forgot password?\",\n )}\n </a>\n </div>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </Button>\n </Form>\n <div style={{ marginTop: 8 }}>\n <Text style={{ fontSize: 12 }}>\n {translate(\n \"pages.login.noAccount\",\n \"Don’t have an account?\",\n )}{\" \"}\n <a href=\"#\" style={{ fontWeight: \"bold\" }}>\n {translate(\n \"pages.login.signup\",\n \"Sign up\",\n )}\n </a>\n </Text>\n </div>\n </Card>\n </div>\n </Col>\n </Row>\n </Layout>\n );\n};\n","import { CSSProperties } from \"react\";\n\nexport const layoutStyles: CSSProperties = {\n background: `radial-gradient(50% 50% at 50% 50%, #63386A 0%, #310438 100%)`,\n backgroundSize: \"cover\",\n};\n\nexport const containerStyles: CSSProperties = {\n maxWidth: \"408px\",\n margin: \"auto\",\n};\n\nexport const titleStyles: CSSProperties = {\n textAlign: \"center\",\n color: \"#626262\",\n fontSize: \"30px\",\n letterSpacing: \"-0.04em\",\n};\n\nexport const imageContainer: CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n marginBottom: \"28px\",\n};\n","import * as React from \"react\";\nimport { RefineReadyPageProps } from \"@refinedev/ui-types\";\nimport { Row, Col, Typography, Space, Button } from \"antd\";\nimport { ReadOutlined, FolderOutlined, TeamOutlined } from \"@ant-design/icons\";\n\nconst styles: { [key: string]: React.CSSProperties } = {\n root: {\n height: \"100vh\",\n backgroundImage:\n \"url('https://refine.ams3.cdn.digitaloceanspaces.com/login-background/background.png')\",\n backgroundSize: \"cover\",\n backgroundColor: \"#331049\",\n },\n title: {\n color: \"white\",\n fontWeight: 800,\n fontSize: \"64px\",\n marginBottom: \"8px\",\n },\n p1: {\n color: \"white\",\n marginBottom: 0,\n fontSize: \"20px\",\n fontWeight: \"bold\",\n },\n p2: {\n color: \"white\",\n fontSize: \"20px\",\n },\n code: {\n backgroundColor: \"white\",\n color: \"#331049\",\n },\n};\n\nconst { Title } = Typography;\n\n/**\n * **refine** shows a default ready page on root route when no `resources` is passed to the `<Refine>` component as a property.\n *\n * @see {@link https://refine.dev/docs/api-references/components/refine-config#readypage} for more details.\n * @deprecated `ReadyPage` is deprecated and will be removed in the next major release.\n */\nexport const ReadyPage: React.FC<RefineReadyPageProps> = () => {\n return (\n <Row align=\"middle\" justify=\"center\" style={styles.root}>\n <Col style={{ textAlign: \"center\" }}>\n <img\n style={{ marginBottom: \"48px\" }}\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine Logo\"\n />\n <Title style={styles.title}>Welcome on board</Title>\n <p style={styles.p1}>Your configuration is completed.</p>\n <p style={styles.p2}>\n Now you can get started by adding your resources to the{\" \"}\n <code style={styles.code}>{`resources`}</code> property of{\" \"}\n <code style={styles.code}>{`<Refine>`}</code>\n </p>\n <Space\n size=\"large\"\n wrap\n style={{ marginTop: \"70px\", justifyContent: \"center\" }}\n >\n <a\n href=\"https://refine.dev\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<ReadOutlined />}>\n Documentation\n </Button>\n </a>\n <a\n href=\"https://refine.dev/examples\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<FolderOutlined />}>\n Examples\n </Button>\n </a>\n <a\n href=\"https://discord.gg/refine\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<TeamOutlined />}>\n Community\n </Button>\n </a>\n </Space>\n </Col>\n </Row>\n );\n};\n","import * as React from \"react\";\nimport { Row, Col, Typography, Space, Button } from \"antd\";\nimport { ReadOutlined, FolderOutlined, TeamOutlined } from \"@ant-design/icons\";\n\nconst styles: { [key: string]: React.CSSProperties } = {\n root: {\n height: \"100vh\",\n backgroundImage:\n \"url('https://refine.ams3.cdn.digitaloceanspaces.com/login-background/background.png')\",\n backgroundSize: \"cover\",\n backgroundColor: \"#331049\",\n },\n title: {\n color: \"white\",\n fontWeight: 800,\n fontSize: \"64px\",\n marginBottom: \"8px\",\n },\n p1: {\n color: \"white\",\n marginBottom: 0,\n fontSize: \"20px\",\n fontWeight: \"bold\",\n },\n p2: {\n color: \"white\",\n fontSize: \"20px\",\n },\n code: {\n backgroundColor: \"white\",\n color: \"#331049\",\n },\n};\n\nconst { Title } = Typography;\n\n/**\n * It is a page that welcomes you after the configuration is completed.\n */\nexport const WelcomePage: React.FC = () => {\n return (\n <Row align=\"middle\" justify=\"center\" style={styles.root}>\n <Col style={{ textAlign: \"center\" }}>\n <img\n style={{ marginBottom: \"48px\" }}\n src=\"https://refine.ams3.cdn.digitaloceanspaces.com/logo/refine.svg\"\n alt=\"Refine Logo\"\n />\n <Title style={styles.title}>Welcome on board</Title>\n <p style={styles.p1}>Your configuration is completed.</p>\n <Space\n size=\"large\"\n wrap\n style={{ marginTop: \"70px\", justifyContent: \"center\" }}\n >\n <a\n href=\"https://refine.dev\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<ReadOutlined />}>\n Documentation\n </Button>\n </a>\n <a\n href=\"https://refine.dev/examples\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<FolderOutlined />}>\n Examples\n </Button>\n </a>\n <a\n href=\"https://discord.gg/refine\"\n target=\"_blank\"\n rel=\"noreferrer\"\n >\n <Button size=\"large\" icon={<TeamOutlined />}>\n Community\n </Button>\n </a>\n </Space>\n </Col>\n </Row>\n );\n};\n","import React from \"react\";\nimport { CardProps, FormProps, LayoutProps } from \"antd\";\nimport { AuthPageProps } from \"@refinedev/core\";\n\nimport {\n LoginPage,\n RegisterPage,\n ForgotPasswordPage,\n UpdatePasswordPage,\n} from \"./components\";\n\nexport type AuthProps = AuthPageProps<LayoutProps, CardProps, FormProps>;\n\n/**\n * **refine** has a default auth page form served on the `/login` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/authpage/} for more details.\n */\nexport const AuthPage: React.FC<AuthProps> = (props) => {\n const { type } = props;\n const renderView = () => {\n switch (type) {\n case \"register\":\n return <RegisterPage {...props} />;\n case \"forgotPassword\":\n return <ForgotPasswordPage {...props} />;\n case \"updatePassword\":\n return <UpdatePasswordPage {...props} />;\n default:\n return <LoginPage {...props} />;\n }\n };\n\n return <>{renderView()}</>;\n};\n","import React from \"react\";\nimport {\n LoginPageProps,\n LoginFormTypes,\n useLink,\n useRouterType,\n useActiveAuthProvider,\n} from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n Checkbox,\n CardProps,\n LayoutProps,\n Divider,\n FormProps,\n} from \"antd\";\nimport { useLogin, useTranslate, useRouterContext } from \"@refinedev/core\";\n\nimport { layoutStyles, containerStyles, titleStyles } from \"../styles\";\n\nconst { Text, Title } = Typography;\n\ntype LoginProps = LoginPageProps<LayoutProps, CardProps, FormProps>;\n\n/**\n * **refine** has a default login page form which is served on `/login` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/antd-auth-page/#login} for more details.\n */\nexport const LoginPage: React.FC<LoginProps> = ({\n providers,\n registerLink,\n forgotPasswordLink,\n rememberMe,\n contentProps,\n wrapperProps,\n renderContent,\n formProps,\n}) => {\n const [form] = Form.useForm<LoginFormTypes>();\n const translate = useTranslate();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const authProvider = useActiveAuthProvider();\n const { mutate: login, isLoading } = useLogin<LoginFormTypes>({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.login.title\", \"Sign in to your account\")}\n </Title>\n );\n\n const renderProviders = () => {\n if (providers && providers.length > 0) {\n return (\n <>\n {providers.map((provider) => {\n return (\n <Button\n key={provider.name}\n type=\"default\"\n block\n icon={provider.icon}\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n marginBottom: \"8px\",\n }}\n onClick={() =>\n login({\n providerName: provider.name,\n })\n }\n >\n {provider.label}\n </Button>\n );\n })}\n <Divider>{translate(\"pages.login.divider\", \"or\")}</Divider>\n </>\n );\n }\n return null;\n };\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={{ borderBottom: 0 }}\n style={containerStyles}\n {...(contentProps ?? {})}\n >\n {renderProviders()}\n <Form<LoginFormTypes>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => login(values)}\n requiredMark={false}\n initialValues={{\n remember: false,\n }}\n {...formProps}\n >\n <Form.Item\n name=\"email\"\n label={translate(\"pages.login.fields.email\", \"Email\")}\n rules={[\n { required: true },\n {\n type: \"email\",\n message: translate(\n \"pages.login.errors.validEmail\",\n \"Invalid email address\",\n ),\n },\n ]}\n >\n <Input\n size=\"large\"\n placeholder={translate(\n \"pages.login.fields.email\",\n \"Email\",\n )}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\"pages.login.fields.password\", \"Password\")}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: \"12px\",\n }}\n >\n {rememberMe ?? (\n <Form.Item\n name=\"remember\"\n valuePropName=\"checked\"\n noStyle\n >\n <Checkbox\n style={{\n fontSize: \"12px\",\n }}\n >\n {translate(\n \"pages.login.buttons.rememberMe\",\n \"Remember me\",\n )}\n </Checkbox>\n </Form.Item>\n )}\n {forgotPasswordLink ?? (\n <ActiveLink\n style={{\n fontSize: \"12px\",\n marginLeft: \"auto\",\n }}\n to=\"/forgot-password\"\n >\n {translate(\n \"pages.login.buttons.forgotPassword\",\n \"Forgot password?\",\n )}\n </ActiveLink>\n )}\n </div>\n <Form.Item>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </Button>\n </Form.Item>\n </Form>\n <div style={{ marginTop: 8 }}>\n {registerLink ?? (\n <Text style={{ fontSize: 12 }}>\n {translate(\n \"pages.login.buttons.noAccount\",\n \"Don’t have an account?\",\n )}{\" \"}\n <ActiveLink\n to=\"/register\"\n style={{ fontWeight: \"bold\" }}\n >\n {translate(\"pages.login.signup\", \"Sign up\")}\n </ActiveLink>\n </Text>\n )}\n </div>\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? renderContent(CardContent) : CardContent}\n </Col>\n </Row>\n </Layout>\n );\n};\n","import { CSSProperties } from \"react\";\n\nexport const layoutStyles: CSSProperties = {\n background: `radial-gradient(50% 50% at 50% 50%, #6813CB 0%, #2A2A42 100%)`,\n backgroundSize: \"cover\",\n};\n\nexport const containerStyles: CSSProperties = {\n maxWidth: \"408px\",\n margin: \"auto\",\n};\n\nexport const titleStyles: CSSProperties = {\n textAlign: \"center\",\n color: \"#626262\",\n marginBottom: 0,\n fontSize: \"24px\",\n letterSpacing: \"-0.04em\",\n overflowWrap: \"break-word\",\n hyphens: \"manual\",\n textOverflow: \"unset\",\n whiteSpace: \"pre-wrap\",\n};\n","import React from \"react\";\nimport {\n RegisterPageProps,\n RegisterFormTypes,\n useRouterType,\n useLink,\n useActiveAuthProvider,\n} from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n LayoutProps,\n CardProps,\n FormProps,\n Divider,\n} from \"antd\";\nimport { useTranslate, useRouterContext, useRegister } from \"@refinedev/core\";\n\nimport { layoutStyles, containerStyles, titleStyles } from \"../styles\";\n\nconst { Text, Title } = Typography;\n\ntype RegisterProps = RegisterPageProps<LayoutProps, CardProps, FormProps>;\n\n/**\n * **refine** has register page form which is served on `/register` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/antd-auth-page/#register} for more details.\n */\nexport const RegisterPage: React.FC<RegisterProps> = ({\n providers,\n loginLink,\n wrapperProps,\n contentProps,\n renderContent,\n formProps,\n}) => {\n const [form] = Form.useForm<RegisterFormTypes>();\n const translate = useTranslate();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const authProvider = useActiveAuthProvider();\n const { mutate: register, isLoading } = useRegister<RegisterFormTypes>({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.register.title\", \"Sign up for your account\")}\n </Title>\n );\n\n const renderProviders = () => {\n if (providers && providers.length > 0) {\n return (\n <>\n {providers.map((provider) => {\n return (\n <Button\n key={provider.name}\n type=\"ghost\"\n block\n icon={provider.icon}\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n marginBottom: \"8px\",\n }}\n onClick={() =>\n register({\n providerName: provider.name,\n })\n }\n >\n {provider.label}\n </Button>\n );\n })}\n <Divider>{translate(\"pages.login.divider\", \"or\")}</Divider>\n </>\n );\n }\n return null;\n };\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={{ borderBottom: 0 }}\n style={containerStyles}\n {...(contentProps ?? {})}\n >\n {renderProviders()}\n <Form<RegisterFormTypes>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => register(values)}\n requiredMark={false}\n {...formProps}\n >\n <Form.Item\n name=\"email\"\n label={translate(\"pages.register.email\", \"Email\")}\n rules={[\n { required: true },\n {\n type: \"email\",\n message: translate(\n \"pages.register.errors.validEmail\",\n \"Invalid email address\",\n ),\n },\n ]}\n >\n <Input\n size=\"large\"\n placeholder={translate(\n \"pages.register.fields.email\",\n \"Email\",\n )}\n />\n </Form.Item>\n <Form.Item\n name=\"password\"\n label={translate(\n \"pages.register.fields.password\",\n \"Password\",\n )}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: \"12px\",\n }}\n >\n {loginLink ?? (\n <Text\n style={{\n fontSize: 12,\n marginLeft: \"auto\",\n }}\n >\n {translate(\n \"pages.login.buttons.haveAccount\",\n \"Have an account?\",\n )}{\" \"}\n <ActiveLink\n style={{\n fontWeight: \"bold\",\n }}\n to=\"/login\"\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </ActiveLink>\n </Text>\n )}\n </div>\n\n <Form.Item>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\"pages.register.buttons.submit\", \"Sign up\")}\n </Button>\n </Form.Item>\n </Form>\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? renderContent(CardContent) : CardContent}\n </Col>\n </Row>\n </Layout>\n );\n};\n","import React from \"react\";\nimport {\n ForgotPasswordPageProps,\n ForgotPasswordFormTypes,\n useRouterType,\n useLink,\n} from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n LayoutProps,\n CardProps,\n FormProps,\n} from \"antd\";\nimport {\n useTranslate,\n useRouterContext,\n useForgotPassword,\n} from \"@refinedev/core\";\n\nimport { layoutStyles, containerStyles, titleStyles } from \"../styles\";\n\ntype ResetPassworProps = ForgotPasswordPageProps<\n LayoutProps,\n CardProps,\n FormProps\n>;\n\nconst { Text, Title } = Typography;\n\n/**\n * **refine** has forgot password page form which is served on `/forgot-password` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/antd-auth-page/#forgot-password} for more details.\n */\nexport const ForgotPasswordPage: React.FC<ResetPassworProps> = ({\n loginLink,\n wrapperProps,\n contentProps,\n renderContent,\n formProps,\n}) => {\n const [form] = Form.useForm<ForgotPasswordFormTypes>();\n const translate = useTranslate();\n const routerType = useRouterType();\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n const { mutate: forgotPassword, isLoading } =\n useForgotPassword<ForgotPasswordFormTypes>();\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.forgotPassword.title\", \"Forgot your password?\")}\n </Title>\n );\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={{ borderBottom: 0 }}\n style={containerStyles}\n {...(contentProps ?? {})}\n >\n <Form<ForgotPasswordFormTypes>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => forgotPassword(values)}\n requiredMark={false}\n {...formProps}\n >\n <Form.Item\n name=\"email\"\n label={translate(\n \"pages.forgotPassword.fields.email\",\n \"Email\",\n )}\n rules={[\n { required: true },\n {\n type: \"email\",\n message: translate(\n \"pages.forgotPassword.errors.validEmail\",\n \"Invalid email address\",\n ),\n },\n ]}\n >\n <Input\n type=\"email\"\n size=\"large\"\n placeholder={translate(\n \"pages.forgotPassword.fields.email\",\n \"Email\",\n )}\n />\n </Form.Item>\n <div\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: \"12px\",\n }}\n >\n {loginLink ?? (\n <Text\n style={{\n fontSize: 12,\n marginLeft: \"auto\",\n }}\n >\n {translate(\n \"pages.register.buttons.haveAccount\",\n \"Have an account? \",\n )}{\" \"}\n <ActiveLink\n style={{\n fontWeight: \"bold\",\n }}\n to=\"/login\"\n >\n {translate(\"pages.login.signin\", \"Sign in\")}\n </ActiveLink>\n </Text>\n )}\n </div>\n <Form.Item>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\n \"pages.forgotPassword.buttons.submit\",\n \"Send reset instructions\",\n )}\n </Button>\n </Form.Item>\n </Form>\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? renderContent(CardContent) : CardContent}\n </Col>\n </Row>\n </Layout>\n );\n};\n","import React from \"react\";\nimport {\n UpdatePasswordPageProps,\n UpdatePasswordFormTypes,\n useActiveAuthProvider,\n} from \"@refinedev/core\";\nimport {\n Row,\n Col,\n Layout,\n Card,\n Typography,\n Form,\n Input,\n Button,\n LayoutProps,\n CardProps,\n FormProps,\n} from \"antd\";\nimport { useTranslate, useUpdatePassword } from \"@refinedev/core\";\n\nimport { layoutStyles, containerStyles, titleStyles } from \"../styles\";\n\nconst { Title } = Typography;\n\ntype UpdatePasswordProps = UpdatePasswordPageProps<\n LayoutProps,\n CardProps,\n FormProps\n>;\n\n/**\n * **refine** has update password page form which is served on `/update-password` route when the `authProvider` configuration is provided.\n *\n * @see {@link https://refine.dev/docs/ui-frameworks/antd/components/antd-auth-page/#update-password} for more details.\n */\nexport const UpdatePasswordPage: React.FC<UpdatePasswordProps> = ({\n wrapperProps,\n contentProps,\n renderContent,\n formProps,\n}) => {\n const [form] = Form.useForm<UpdatePasswordFormTypes>();\n const translate = useTranslate();\n const authProvider = useActiveAuthProvider();\n const { mutate: updatePassword, isLoading } =\n useUpdatePassword<UpdatePasswordFormTypes>({\n v3LegacyAuthProviderCompatible: Boolean(authProvider?.isLegacy),\n });\n\n const CardTitle = (\n <Title level={3} style={titleStyles}>\n {translate(\"pages.updatePassword.title\", \"Set New Password\")}\n </Title>\n );\n\n const CardContent = (\n <Card\n title={CardTitle}\n headStyle={{ borderBottom: 0 }}\n style={containerStyles}\n {...(contentProps ?? {})}\n >\n <Form<UpdatePasswordFormTypes>\n layout=\"vertical\"\n form={form}\n onFinish={(values) => updatePassword(values)}\n requiredMark={false}\n {...formProps}\n >\n <Form.Item\n name=\"password\"\n label={translate(\n \"pages.updatePassword.fields.password\",\n \"New Password\",\n )}\n rules={[{ required: true }]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <Form.Item\n name=\"confirmPassword\"\n label={translate(\n \"pages.updatePassword.fields.confirmPassword\",\n \"Confirm New Password\",\n )}\n hasFeedback\n dependencies={[\"password\"]}\n rules={[\n {\n required: true,\n },\n ({ getFieldValue }) => ({\n validator(_, value) {\n if (\n !value ||\n getFieldValue(\"password\") === value\n ) {\n return Promise.resolve();\n }\n return Promise.reject(\n new Error(\n translate(\n \"pages.updatePassword.errors.confirmPasswordNotMatch\",\n \"Passwords do not match\",\n ),\n ),\n );\n },\n }),\n ]}\n style={{ marginBottom: \"12px\" }}\n >\n <Input\n type=\"password\"\n placeholder=\"●●●●●●●●\"\n size=\"large\"\n />\n </Form.Item>\n <Form.Item>\n <Button\n type=\"primary\"\n size=\"large\"\n htmlType=\"submit\"\n loading={isLoading}\n block\n >\n {translate(\n \"pages.updatePassword.buttons.submit\",\n \"Update\",\n )}\n </Button>\n </Form.Item>\n </Form>\n </Card>\n );\n\n return (\n <Layout style={layoutStyles} {...(wrapperProps ?? {})}>\n <Row\n justify=\"center\"\n align=\"middle\"\n style={{\n height: \"100vh\",\n }}\n >\n <Col xs={22}>\n {renderContent ? renderContent(CardContent) : CardContent}\n </Col>\n </Row>\n </Layout>\n );\n};\n","import React from \"react\";\nimport {\n useBreadcrumb,\n useLink,\n useRefineContext,\n useRouterContext,\n useRouterType,\n useResource,\n matchResourceFromRoute,\n} from \"@refinedev/core\";\nimport { RefineBreadcrumbProps } from \"@refinedev/ui-types\";\n\nimport {\n Breadcrumb as AntdBreadcrumb,\n BreadcrumbProps as AntdBreadcrumbProps,\n} from \"antd\";\nimport { HomeOutlined } from \"@ant-design/icons\";\n\nexport type BreadcrumbProps = RefineBreadcrumbProps<AntdBreadcrumbProps>;\n\nexport const Breadcrumb: React.FC<BreadcrumbProps> = ({\n breadcrumbProps,\n showHome = true,\n hideIcons = false,\n meta,\n}) => {\n const routerType = useRouterType();\n const { breadcrumbs } = useBreadcrumb({\n meta,\n });\n const Link = useLink();\n const { Link: LegacyLink } = useRouterContext();\n const { hasDashboard } = useRefineContext();\n\n const { resources } = useResource();\n\n const rootRouteResource = matchResourceFromRoute(\"/\", resources);\n\n const ActiveLink = routerType === \"legacy\" ? LegacyLink : Link;\n\n if (breadcrumbs.length === 1) {\n return null;\n }\n\n return (\n <AntdBreadcrumb {...breadcrumbProps}>\n {showHome && (hasDashboard || rootRouteResource.found) && (\n <AntdBreadcrumb.Item>\n <ActiveLink to=\"/\">\n {rootRouteResource?.resource?.meta?.icon ?? (\n <HomeOutlined />\n )}\n </ActiveLink>\n </AntdBreadcrumb.Item>\n )}\n {breadcrumbs.map(({ label, icon, href }) => {\n return (\n <AntdBreadcrumb.Item key={label}>\n {!hideIcons && icon}\n {href ? (\n <ActiveLink to={href}>{label}</ActiveLink>\n ) : (\n <span>{label}</span>\n )}\n </AntdBreadcrumb.Item>\n );\n })}\n </AntdBreadcrumb>\n );\n};\n","import React, { FC } from \"react\";\nimport {\n PageHeader as AntdPageHeader,\n PageHeaderProps as AntdPageHeaderProps,\n} from \"@ant-design/pro-layout\";\nimport { Button, Typography } from \"antd\";\nimport { ArrowLeftOutlined } from \"@ant-design/icons\";\n\nexport type PageHeaderProps = AntdPageHeaderProps;\n\nexport const PageHeader: FC<AntdPageHeaderProps> = ({ children, ...props }) => {\n const backIcon =\n typeof props.backIcon === \"undefined\" ? (\n <Button type=\"text\" icon={<ArrowLeftOutlined />} />\n ) : (\n props.backIcon\n );\n\n const title =\n typeof props.title === \"string\" ? (\n <Typography.Title level={4} style={{ marginBottom: 0 }}>\n {props.title}\n </Typography.Title>\n ) : (\n props.title\n );\n\n const subtitle =\n typeof props.title === \"string\" ? (\n <Typography.Title\n level={5}\n type=\"secondary\"\n style={{ marginBottom: 0 }}\n >\n {props.subTitle}\n </Typography.Title>\n ) : (\n props.subTitle\n );\n\n return (\n <AntdPageHeader\n {...props}\n backIcon={backIcon}\n title={title}\n subTitle={subtitle}\n style={{ padding: 0, ...props.style }}\n >\n {children}\n </AntdPageHeader>\n );\n};\n","import type { UploadFile, UploadChangeParam } from \"antd/lib/upload/interface\";\n\nexport const getValueFromEvent = (event: UploadChangeParam): UploadFile[] => {\n const { fileList } = event;\n\n return [...fileList];\n};\n\nexport function file2Base64(file: UploadFile): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n const resultHandler = () => {\n if (reader.result) {\n reader.removeEventListener(\"load\", resultHandler, false);\n\n resolve(reader.result as string);\n }\n };\n\n reader.addEventListener(\"load\", resultHandler, false);\n\n reader.readAsDataURL(file.originFileObj as Blob);\n reader.onerror = (error) => {\n reader.removeEventListener(\"load\", resultHandler, false);\n return reject(error);\n };\n });\n}\n"],"mappings":"AAAA,OAAOA,OAAW,QAClB,OAAkC,QAAAC,OAAY,OAC9C,OAAS,WAAWC,OAAiB,iBAGrC,OAGI,WAAWC,GAEX,sBAAAC,GAIA,qBAAAC,OACG,kBAwCA,IAAMC,GAAU,CAIrB,CACE,OAAAC,EACA,SAAAC,EACA,kBAAmBC,EACnB,gBAAAC,EACA,cAAAC,EAAgB,GAChB,uBAAwBC,EACxB,SAAAC,EACA,oBAAAC,EACA,kBAAAC,EACA,KAAAC,EACA,SAAAC,EACA,SAAAC,EACA,WAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,YAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,sBAAAC,EACA,sBAAAC,EACA,GAAIC,CACR,EAA6C,CAAC,IAIzC,CAtFL,IAAAC,EAAAC,EAuFI,GAAM,CAACC,CAAO,EAAI9B,GAAK,QAAQ,EACzB+B,EAAS9B,GAA6B,CACxC,KAAM6B,CACV,CAAC,EACK,CAAE,KAAAE,CAAK,EAAID,EAEXE,EAAoB/B,GAAuC,CAC7D,kBAAmBM,GAEb,OACN,gBAAAC,EACA,SAAAG,EACA,OAAAN,EACA,SAAAC,EACA,oBAAAM,EACA,kBAAAC,EACA,KAAMV,GAAkBW,EAAMC,CAAQ,EACtC,SAAUZ,GAAkBW,EAAMC,CAAQ,EAC1C,SAAAC,EACA,WAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,YAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,sBAAAC,EACA,sBAAAC,EACA,GAAIC,CACR,CAAC,EAEK,CAAE,YAAAO,EAAa,SAAAC,EAAU,YAAAC,EAAa,GAAAC,CAAG,EAAIJ,EAE7C,CACF,uBAAwBK,EACxB,YAAAC,CACJ,EAAIpC,GAAmB,EACjBqC,EACF7B,GAAA,KAAAA,EAA8B2B,EAElCvC,GAAM,UAAU,IAAM,CAClBiC,EAAK,YAAY,CACrB,EAAG,EAACJ,EAAAQ,GAAA,YAAAA,EAAa,OAAb,YAAAR,EAAmB,KAAMS,CAAE,CAAC,EAEhC,IAAMI,EAAWC,GAAgD,CACzDhC,GAAiBgC,EAAM,MAAQ,SAC/BV,EAAK,OAAO,CAEpB,EAEMW,EAAkBC,IAChBA,GAAgBJ,GAChBD,EAAY,EAAI,EAEbK,GAGLC,EAAkB,CACpB,SAAUX,EACV,QAAS,IAAM,CACXF,EAAK,OAAO,CAChB,CACJ,EAEA,MAAO,CACH,KAAMD,EAAO,KACb,UAAW,CACP,GAAGA,EAAO,UACV,SAAWe,GACPX,EAASW,CAAM,EAAE,MAAOC,GAAUA,CAAK,EAC3C,QAAAN,EACA,eAAAE,EACA,eAAed,EAAAO,GAAA,YAAAA,EAAa,OAAb,YAAAP,EAAmB,IACtC,EACA,gBAAAgB,EACA,GAAGZ,EACH,SAAU,MAAOa,GACN,MAAMX,EAASW,GAAA,KAAAA,EAAUf,EAAO,KAAK,eAAe,EAAI,CAAC,CAExE,CACJ,ECvKA,OAAS,eAAAiB,GAAa,aAAAC,OAAiB,QAEvC,OACI,gBAAgBC,OAEb,iBAEP,OACI,mBAAAC,GACA,gBAAAC,GACA,sBAAAC,GAMA,4BAAAC,GACA,eAAAC,GAEA,aAAAC,GACA,SAAAC,OACG,kBAEP,OAAOC,OAAW,QAsDX,IAAMC,GAAe,CAI1B,CACE,aAAcC,EACd,iBAAAC,KACGC,CACP,IAIK,CAzFL,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EA0FI,IAAMC,EAAkBb,GAAM,OAAO,EAAK,EAEpCc,EAAeC,GAAmC,CACpD,GAAGX,EACH,aAAcF,CAClB,CAAC,EAEK,CAAE,KAAAc,EAAM,UAAAC,EAAW,GAAAC,EAAI,MAAAC,EAAO,YAAAC,EAAa,eAAAC,CAAe,EAC5DP,EAEE,CAAE,SAAAQ,EAAU,OAAQC,CAAiB,EAAIC,GAAYpB,EAAK,QAAQ,EAElEqB,EAASC,GAAU,EACnBC,EAAKC,GAAM,EAEXC,GAASvB,GAAAD,EAAAD,EAAK,SAAL,KAAAC,EAAekB,IAAf,KAAAjB,EAAmC,GAE5CwB,EACF,OAAO3B,GAAqB,UAAYA,EAAiB,OAEvD4B,EACF,OAAO5B,GAAqB,UAAY,QAASA,EAC3CA,EAAiB,IACjBmB,GAAYO,GAAU1B,EACtB,UAASI,EAAAe,GAAA,YAAAA,EAAU,aAAV,KAAAf,EAAwBe,GAAA,YAAAA,EAAU,QAAQO,IACnD,OAEJG,EAAYC,GAAa,EAEzB,CAAE,SAAAC,EAAU,YAAAC,CAAY,EAAIC,GAAmB,EAE/CC,EAAoBC,GAAkC,CACxD,GAAGlC,EACH,KAAMY,CACV,CAAC,EAEK,CACF,QAAAuB,EACA,MAAAC,EACA,KAAAC,EACA,KAAMC,EACN,UAAWC,EACX,WAAAC,CACJ,EAAIP,EAEJrC,GAAM,UAAU,IAAM,CAvI1B,IAAAK,EAAAC,GAAAC,GAAAC,GAwIQ,GAAIK,EAAgB,UAAY,IAASkB,EAAqB,CAC1D,IAAMc,GAAavC,IAAAD,EAAAoB,GAAA,YAAAA,EAAQ,SAAR,YAAApB,EAAiB0B,KAAjB,YAAAzB,GAAuC,KAW1D,GAVI,OAAOuC,GAAe,UAClBA,GACAJ,EAAK,EAEF,OAAOI,GAAe,UACzBA,IAAe,QACfJ,EAAK,EAITX,EAAW,CACX,IAAMgB,GAAetC,IAAAD,GAAAkB,GAAA,YAAAA,EAAQ,SAAR,YAAAlB,GAAiBwB,KAAjB,YAAAvB,GAAuC,GACxDsC,IACA3B,GAAA,MAAAA,EAAQ2B,GAEhB,CAEAjC,EAAgB,QAAU,EAC9B,CACJ,EAAG,CAACkB,EAAqBN,EAAQK,EAAWX,CAAK,CAAC,EAElDnB,GAAM,UAAU,IAAM,CA/J1B,IAAAK,EAgKYQ,EAAgB,UAAY,KACxB0B,GAAWR,EACXJ,EAAG,CACC,MAAO,CACH,CAACI,GAAsB,CACnB,IAAG1B,EAAAoB,GAAA,YAAAA,EAAQ,SAAR,YAAApB,EAAiB0B,GACpB,KAAM,GACN,GAAID,GAAaZ,GAAM,CAAE,GAAAA,CAAG,CAChC,CACJ,EACA,QAAS,CAAE,UAAW,EAAK,EAC3B,KAAM,SACV,CAAC,EACMa,GAAuB,CAACQ,GAC/BZ,EAAG,CACC,MAAO,CACH,CAACI,GAAsB,MAC3B,EACA,QAAS,CAAE,UAAW,EAAK,EAC3B,KAAM,SACV,CAAC,EAGb,EAAG,CAACb,EAAIqB,EAASE,EAAMV,EAAqBD,CAAS,CAAC,EAEtD,GAAM,CAAE,aAAciB,CAAoB,EAAIC,GAAgB,EACxDC,EAAe/C,GAAA,KAAAA,EAAoB6C,EAEnC,CACF,UAAWG,EACX,UAAWC,EACX,MAAOC,CACX,EAAI/B,GAAA,KAAAA,EAAkB,CAAC,EAEvBgC,GAAU,IAAM,CACRd,GAAWU,IAAiB,eACxBE,GAAqB,CAACD,IACtBV,EAAM,EACNY,GAAA,MAAAA,IAEA,WAAW,IAAM,CACbpC,EAAK,YAAY,CACrB,CAAC,EAGb,EAAG,CAACmC,EAAmBD,CAAiB,CAAC,EAEzC,IAAMI,EAAoB,CACtB,SAAUlC,EACV,QAAS,IAAM,CACXsB,EAAU,OAAO,EAEXO,IAAiB,gBACnBT,EAAM,EAEN,WAAW,IAAM,CACbxB,EAAK,YAAY,CACrB,CAAC,EAET,EACA,QAASI,CACb,EAEMmC,EAAcC,GAAY,IAAM,CAClC,GAAItB,EAQA,GAPwB,OAAO,QAC3BF,EACI,yBACA,2DACJ,CACJ,EAGIG,EAAY,EAAK,MAEjB,QAIRhB,GAAA,MAAAA,EAAQ,QACRkB,EAAkB,MAAM,CAC5B,EAAG,CAACH,CAAQ,CAAC,EAEPuB,EAAaD,GAAatC,GAAiB,CAC7CC,GAAA,MAAAA,EAAQD,GAERmB,EAAkB,KAAK,CAC3B,EAAG,CAAC,CAAC,EAEL,MAAO,CACH,GAAGvB,EACH,GAAGuB,EACH,KAAMoB,EACN,MAAOF,EACP,KAAMhB,EACN,UAAW,CACP,GAAGI,EACH,GAAG7B,EAAa,UAChB,eAAgBG,GAAA,YAAAA,EAAW,eAC3B,QAASA,GAAA,YAAAA,EAAW,QACpB,SAAUA,EAAU,QACxB,EACA,WAAY,CACR,GAAG2B,EACH,MAAO,SACP,cAAeU,EACf,MAAOtB,EACH,GAAGV,GAAA,YAAAA,EAAU,eAAelB,EAAK,SACjC,GAAGsD,GACC,GAAGtD,EAAK,WACJQ,GAAAD,GAAAD,GAAAF,EAAAc,GAAA,YAAAA,EAAU,OAAV,YAAAd,EAAgB,QAAhB,KAAAE,GACAD,EAAAa,GAAA,YAAAA,EAAU,UAAV,YAAAb,EAAmB,QADnB,KAAAE,EAEAW,GAAA,YAAAA,EAAU,QAFV,KAAAV,EAGAU,GAAA,YAAAA,EAAU,OAEd,UACJ,GACJ,EACA,OAAQU,EAAU,eAAgB,MAAM,EACxC,WAAYA,EAAU,iBAAkB,QAAQ,EAChD,SAAUuB,EACV,YAAa,EACjB,EACA,YAAAnC,CACJ,CACJ,EC7RA,OAAS,eAAAuC,GAAa,aAAAC,GAAW,YAAAC,OAAgB,QAGjD,OACI,mBAAAC,GACA,gBAAAC,GACA,sBAAAC,GAOA,eAAAC,GACA,aAAAC,GACA,SAAAC,OACG,kBAIP,OAAOC,OAAW,QA4CX,IAAMC,GAAgB,CAI3B,CACE,aAAcC,EACd,iBAAAC,KACGC,CACP,IAIK,CA5EL,IAAAC,EAAAC,EAAAC,EA6EI,IAAMC,EAAkBR,GAAM,OAAO,EAAK,EAEpCS,EAAeC,GAAmC,CACpD,GAAGN,EACH,aAAcF,CAClB,CAAC,EAEK,CAAE,KAAAS,EAAM,UAAAC,EAAW,YAAAC,EAAa,eAAAC,EAAgB,GAAAC,EAAI,MAAAC,CAAM,EAC5DP,EAEE,CAAE,SAAAQ,EAAU,OAAQC,CAAiB,EAAIC,GAAYf,EAAK,QAAQ,EAElEgB,EAASC,GAAU,EACnBC,EAAKC,GAAM,EAEXC,GAASlB,GAAAD,EAAAD,EAAK,SAAL,KAAAC,EAAea,IAAf,KAAAZ,EAAmC,GAE5CmB,EACF,OAAOtB,GAAqB,UAAYA,EAAiB,OAEvDuB,EACF,OAAOvB,GAAqB,UAAY,QAASA,EAC3CA,EAAiB,IACjBc,GAAYO,GAAUrB,EACtB,WAAUI,EAAAU,GAAA,YAAAA,EAAU,aAAV,KAAAV,EAAwBU,GAAA,YAAAA,EAAU,QAAQO,IACpD,OAEJ,CAACG,EAAMC,CAAO,EAAIC,GAAS,EAAK,EAEtC7B,GAAM,UAAU,IAAM,CA1G1B,IAAAK,EAAAC,EAAAC,EAAAuB,EA2GQ,GAAItB,EAAgB,UAAY,IAASkB,EAAqB,CAC1D,IAAMK,GAAazB,GAAAD,EAAAe,GAAA,YAAAA,EAAQ,SAAR,YAAAf,EAAiBqB,KAAjB,YAAApB,EAAuC,KAO1D,GANI,OAAOyB,GAAe,UACtBH,EAAQG,CAAU,EACX,OAAOA,GAAe,UAC7BH,EAAQG,IAAe,MAAM,EAG7BN,EAAW,CACX,IAAMO,GAAeF,GAAAvB,EAAAa,GAAA,YAAAA,EAAQ,SAAR,YAAAb,EAAiBmB,KAAjB,YAAAI,EAAuC,GACxDE,IACAhB,GAAA,MAAAA,EAAQgB,GAEhB,CAEAxB,EAAgB,QAAU,EAC9B,CACJ,EAAG,CAACkB,EAAqBN,EAAQK,EAAWT,CAAK,CAAC,EAElDhB,GAAM,UAAU,IAAM,CA9H1B,IAAAK,EA+HYG,EAAgB,UAAY,KACxBmB,GAAQD,EACRJ,EAAG,CACC,MAAO,CACH,CAACI,GAAsB,CACnB,IAAGrB,EAAAe,GAAA,YAAAA,EAAQ,SAAR,YAAAf,EAAiBqB,GACpB,KAAM,GACN,GAAID,GAAaV,GAAM,CAAE,GAAAA,CAAG,CAChC,CACJ,EACA,QAAS,CAAE,UAAW,EAAK,EAC3B,KAAM,SACV,CAAC,EACMW,GAAuB,CAACC,GAC/BL,EAAG,CACC,MAAO,CACH,CAACI,GAAsB,MAC3B,EACA,QAAS,CAAE,UAAW,EAAK,EAC3B,KAAM,SACV,CAAC,EAGb,EAAG,CAACX,EAAIY,EAAMD,EAAqBD,CAAS,CAAC,EAE7C,IAAMQ,EAAYC,GAAa,EAEzB,CAAE,SAAAC,EAAU,YAAAC,CAAY,EAAIC,GAAmB,EAE/C,CAAE,aAAcC,CAAoB,EAAIC,GAAgB,EACxDC,EAAetC,GAAA,KAAAA,EAAoBoC,EAEnC,CACF,UAAWG,EACX,UAAWC,EACX,MAAOC,CACX,EAAI7B,GAAA,KAAAA,EAAkB,CAAC,EAEvB8B,GAAU,IAAM,CACRjB,GAAQa,IAAiB,eACrBE,GAAqB,CAACD,IACtBb,EAAQ,EAAK,EACbe,GAAA,MAAAA,IAGZ,EAAG,CAACD,EAAmBD,CAAiB,CAAC,EAEzC,IAAMI,EAAkB,CACpB,SAAUhC,EACV,QAAS,IAAM,CACXF,GAAA,MAAAA,EAAM,SACA6B,IAAiB,eACnBZ,EAAQ,EAAK,CAErB,EACA,QAASf,CACb,EAEMiC,EAAoB,CACtB,aAAc/B,EACd,UAAW,IAAM,CACbC,GAAA,MAAAA,EAAQ,QACRY,EAAQ,EAAK,CACjB,CACJ,EAEMmB,EAAcC,GAAY,IAAM,CAClC,GAAIb,EAQA,GAPwB,OAAO,QAC3BF,EACI,yBACA,2DACJ,CACJ,EAGIG,EAAY,EAAK,MAEjB,QAIRR,EAAQ,EAAK,EACbZ,GAAA,MAAAA,EAAQ,OACZ,EAAG,CAACmB,CAAQ,CAAC,EAEPc,EAAaD,GAAajC,GAAiB,CAC7CC,GAAA,MAAAA,EAAQD,GAERa,EAAQ,EAAI,CAChB,EAAG,CAAC,CAAC,EAEL,MAAO,CACH,GAAGnB,EACH,KAAMwC,EACN,MAAOF,EACP,UAAW,CACP,KAAApC,EACA,GAAGF,EAAa,UAChB,eAAgBG,GAAA,YAAAA,EAAW,eAC3B,QAASA,GAAA,YAAAA,EAAW,QACpB,SAAUA,EAAU,QACxB,EACA,YAAa,CACT,MAAO,QACP,QAASmC,EACT,KAAApB,EACA,YAAa,EACjB,EACA,gBAAAkB,EACA,kBAAAC,EACA,YAAAjC,CACJ,CACJ,EChPA,OACI,gBAAgBqC,OAEb,iBAsDA,IAAMC,GAAe,CAKxBC,EAAsD,CAAC,IACH,CACpD,IAAMC,EAAeC,GAAmC,CAAE,GAAGF,CAAM,CAAC,EAC9D,CAAE,KAAAG,EAAM,UAAAC,CAAU,EAAIH,EAEtBI,EAAsBC,GAAkC,CAC1D,eAAgB,GAChB,KAAMH,EACN,OAASI,GAAgB,CAtEjC,IAAAC,GAuEYA,EAAAJ,GAAA,YAAAA,EAAW,WAAX,MAAAI,EAAA,KAAAJ,EAAsBG,EAC1B,EACA,GAAGP,CACP,CAAC,EAED,MAAO,CACH,GAAGC,EACH,GAAGI,EACH,UAAW,CACP,GAAGA,EAAoB,UACvB,GAAGJ,EAAa,UAChB,eAAgBG,GAAA,YAAAA,EAAW,eAC3B,QAASA,GAAA,YAAAA,EAAW,OACxB,EACA,gBAAiB,CACb,GAAGH,EAAa,gBAChB,QAAS,IAAMI,EAAoB,OAAO,CAC9C,CACJ,CACJ,EC1FA,OAAgB,YAAAI,GAAU,iBAAAC,GAAe,YAAAC,OAAgB,QACzD,OAAS,QAAAC,GAAiB,QAAAC,OAA+C,OACzE,OAAS,WAAWC,OAAiB,iBAIrC,OACI,eAAAC,GAMA,YAAYC,GAGZ,qBAAAC,OACG,kBCjBP,OAKI,oBAAoBC,GACpB,uBAAuBC,OAGpB,kBAGA,IAAMC,GAAsB,CAC/BC,EACAC,IACwB,CACxB,IAAMC,EAAOJ,GAAwBE,EAAYC,CAAM,EAEvD,GAAIC,EACA,MAAO,GAAGA,MAIlB,EAKaC,GAAmB,CAC5BH,EACAI,EACAC,EAA8B,OAEvBR,GAAqBG,EAAYI,EAASC,CAAY,EAGpDC,GACTL,GACc,CAtClB,IAAAM,EAuCI,IAAMC,EAA2B,CAAC,EAClC,GAAI,MAAM,QAAQP,CAAM,EACpBA,EACK,KAAK,CAACQ,EAAGC,IAAM,CA1C5B,IAAAH,EAAAI,EAAAC,EAAAC,EA2CgB,QAASF,IAAAJ,EAAAE,EAAE,SAAF,YAAAF,EAAU,QAAiC,WAA3C,KAAAI,EACL,KACEE,IAAAD,EAAAF,EAAE,SAAF,YAAAE,EAAU,QAAiC,WAA3C,KAAAC,EAAuD,GACvD,GACA,CACV,CAAC,EACA,IAAKC,GAAS,CAjD3B,IAAAP,EAkDgB,GAAIO,EAAK,OAASA,EAAK,MAAO,CAC1B,IAAMC,EAAQ,MAAM,QAAQD,EAAK,KAAK,EAChCA,EAAK,MAAM,KAAK,GAAG,EACnB,GAAGA,EAAK,QAEdN,EAAY,KAAK,CACb,MAAO,IAAGD,EAAAO,EAAK,YAAL,KAAAP,EAAkBQ,IAC5B,MAAOD,EAAK,MAAM,QAAQ,MAAO,EAAE,CACvC,CAAC,CACL,CACJ,CAAC,UAEDb,EAAO,OAASA,EAAO,MAAO,CAC9B,IAAMc,EAAQ,MAAM,QAAQd,EAAO,KAAK,EAClCA,EAAO,MAAM,KAAK,GAAG,EACrB,GAAGA,EAAO,QAEhBO,EAAY,KAAK,CACb,MAAO,IAAGD,EAAAN,EAAO,YAAP,KAAAM,EAAoBQ,IAC9B,MAAOd,EAAO,MAAM,QAAQ,MAAO,EAAE,CACzC,CAAC,CACL,CAGJ,OAAOO,CACX,EAEaQ,GAA4B,CACrCC,EAIAC,EACAC,IACc,CACd,IAAMC,EAA2B,CAAC,EAC5BC,GACFF,GAAA,KAAAA,EAAkB,CAAC,GACrB,OAAO,CAACG,EAAKR,IAAS,CACpB,IAAMC,EACDD,EAA2B,KAAQA,EAAuB,MAC/D,MAAO,CAAE,GAAGQ,EAAK,CAACP,GAAQD,CAAK,CACnC,EAAG,CAAC,CAAC,EAEL,cAAO,KAAKG,CAAY,EAAE,IAAKF,GAAU,CA9F7C,IAAAR,EAAAI,EA+FQ,IAAMY,EAAQN,EAAaF,GACrBS,IACFjB,EAAAW,EACK,OAAQO,GAAMA,EAAE,WAAa,IAAI,EACjC,KAAMC,GAAWA,EAAE,QAAUX,CAAK,IAFvC,YAAAR,EAE0C,aAC1CI,EAAAU,EAAiBN,KAAjB,YAAAJ,EAAyB,UAEzBa,IAAa,MAAQA,IAAa,OAClCJ,EAAY,KAAK,CACb,MAAAL,EACA,SAAUS,GAAA,KAAAA,EAAa,MAAM,QAAQD,CAAK,EAAI,KAAO,KACrD,MAAAA,CACJ,CAAC,CAET,CAAC,EAEMH,CACX,EChHA,OAAS,WAAAO,GAAS,oBAAAC,GAAkB,iBAAAC,OAAqB,kBACzD,OAAOC,OAA0B,QAO1B,IAAMC,GAAiB,CAAC,CAAE,GAAAC,EAAI,QAAAC,CAAQ,IAA2B,CACpE,GAAM,CAAE,KAAMC,CAAW,EAAIN,GAAiB,EACxCO,EAAaN,GAAc,EAC3BO,EAAOT,GAAQ,EAIrB,OACIG,GAAA,cAHeK,IAAe,SAAWD,EAAaE,EAGrD,CACG,GAAIJ,EACJ,QAAS,GACT,QAAUK,GAA6C,CACnDA,EAAE,eAAe,CACrB,GAECJ,CACL,CAER,EF4BO,IAAMK,GAAW,CAItB,CACE,SAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,cAAAC,EAAgB,GAChB,WAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,yBAAAC,EACA,QAASC,EACT,QAASC,EACT,iBAAAC,EACA,SAAAC,EACA,oBAAAC,EACA,kBAAAC,EACA,aAAAC,EACA,SAAUC,EACV,YAAAC,EACA,WAAAC,EACA,KAAAC,EACA,SAAAC,EACA,iBAAAC,CACJ,EAAoD,CAAC,IAIhD,CAtFL,IAAAC,EAuFI,GAAM,CACF,iBAAAC,EACA,QAAAC,EACA,WAAAC,EACA,SAAAC,EACA,YAAAC,EACA,QAAAC,EACA,WAAAC,EACA,QAAAC,EACA,WAAAC,EACA,OAAAC,EACA,UAAAC,EACA,8BAAAC,EACA,UAAAC,CACJ,EAAIC,GAA4B,CAC5B,gBAAA/B,EACA,gBAAAE,EACA,eAAAP,EACA,gBAAAC,EACA,WAAAE,EACA,cAAAD,EACA,QAASO,EACT,QAASC,EACT,cAAAN,EACA,cAAAE,EACA,iBAAAK,EACA,SAAAC,EACA,yBAAAJ,EACA,oBAAAK,EACA,kBAAAC,EACA,aAAAC,EACA,SAAUC,EACV,YAAAC,EACA,WAAAC,EACA,KAAMmB,GAAkBlB,EAAMC,CAAQ,EACtC,SAAUiB,GAAkBlB,EAAMC,CAAQ,EAC1C,iBAAAC,CACJ,CAAC,EACKiB,EAAaC,GAAK,cAAc,EAChC,CAACC,CAAI,EAAIC,GAAK,QAA0B,EACxCC,EAASC,GAAiC,CAC5C,KAAMH,CACV,CAAC,EACKI,EAAWC,GAAY7B,CAAgB,EAEvC8B,EAAsB5C,IAAkB,GAAQ,MAAQ,SACxD6C,IACDzB,EAAAnB,GAAA,YAAAA,EAAY,OAAZ,KAAAmB,EAAoBwB,KAAyB,MAE5CE,EAA0BX,GAC5B5B,GAAA,YAAAA,EAAiB,QACjBH,CACJ,EAEM,CAAE,KAAA2C,EAAM,UAAAC,EAAW,UAAAC,EAAU,EAAI5B,EAEjC6B,GAAW,CACbC,GACAC,GAIAtB,KACC,CACD,GAAIsB,IAAgB,OAAO,KAAKA,EAAY,EAAE,OAAS,EAAG,CAEtD,IAAMC,GAAcC,GAChBF,GACA1B,EACAoB,CACJ,EACAnB,EAAW0B,EAAW,CAC1B,CAEA,GAAIvB,IAAU,OAAO,KAAKA,EAAM,EAAE,OAAS,EAAG,CAE1C,IAAMyB,GAAcC,GAA2B1B,EAAM,EACrDD,EAAW0B,EAAW,CAC1B,CAEIV,IACAtB,GAAA,MAAAA,EAAa4B,GAAgB,SAAW,GACxC1B,GAAA,MAAAA,EAAc0B,GAAgB,UAAY,IAElD,EAEMM,GAAW,MAAOC,IAA4B,CAChD,GAAI7D,EAAU,CACV,IAAM8D,GAAgB,MAAM9D,EAAS6D,EAAK,EAC1C/B,EAAWgC,EAAa,EAEpBd,IACAtB,GAAA,MAAAA,EAAa,GAErB,CACJ,EAEMqC,EAAiB,IACff,EACO,CACH,WAAY,CAACgB,GAAMC,GAAMC,KAAY,CA3LrD,IAAA3C,GA4LoB,IAAM4C,GAAOhC,EAA8B,CACvC,WAAY,CACR,SAAAR,EACA,QAASqC,EACb,EACA,QAAAjC,EACA,QAAAF,CACJ,CAAC,EAED,GAAIoC,KAAS,OACT,OAAOG,GAAcC,GAAgB,CACjC,GAAIF,GACJ,QAAS,GAAGH,IAChB,CAAC,EAEL,GAAIC,KAAS,QAAUA,KAAS,OAC5B,OAAOG,GAAcC,GAAgB,CACjC,GAAIF,GACJ,QAASD,EACb,CAAC,EAGL,GAAID,KAAS,aAAeA,KAAS,YAAa,CAC9C,IAAMK,IAAmB/C,GAAA2C,IAAA,YAAAA,GACnB,QADmB,YAAA3C,GACZ,SAEb,OAAO6C,GAAcC,GAAgB,CACjC,GAAIF,GACJ,QACII,GAAS,MAAMD,EAAe,EAAI,EAC5BF,GACII,GACA,CAAC,EACDF,EACJ,EACAA,EACd,CAAC,CACL,CAEA,OAAOJ,EACX,EACA,SAAAvC,EACA,QAAAF,EACA,OAAQ,CAACc,EAAW,GACpB,SAAWA,EAAW,GAAwB,CAAC,aAAa,EAAjC,CAAC,cAAc,EAC1C,MAAOW,GAAA,YAAAA,EAAM,KACjB,EAGG,GAGX,MAAO,CACH,gBAAiB,CACb,GAAGP,EAAO,UACV,SAAAiB,EACJ,EACA,WAAY,CACR,WAAYV,GAAA,YAAAA,EAAM,KAClB,QAASL,IAAa,OAASO,GAAY,CAACD,EAC5C,SAAAE,GACA,WAAYU,EAAe,EAC3B,OAAQ,CAAE,EAAG,EAAK,CACtB,EACA,iBAAAvC,EACA,QAAAO,EACA,OAAAE,EACA,QAAAJ,EACA,WAAAG,EACA,UAAAE,EACA,WAAAJ,EACA,QAAAL,EACA,WAAAC,EACA,SAAAC,EACA,YAAAC,EACA,UAAAQ,EACA,8BAAAD,CACJ,CACJ,EGhOO,IAAMsC,GAAmB,CAM5BC,EAKI,CAAC,IACqE,CAC1E,IAAMC,EAAQC,GAA0C,CAAE,GAAGF,CAAM,CAAC,EAC9DG,EAAOC,GAAmC,CAC5C,GAAGJ,EACH,OAAQ,OACR,SAAU,EACd,CAAC,EAEK,CAAE,GAAIK,EAAQ,MAAAC,EAAO,gBAAAC,CAAgB,EAAIJ,EAgB/C,MAAO,CACH,GAAGF,EACH,GAAGE,EACH,gBAAAI,EACA,kBAlBsB,CACtB,QAAS,IAAM,CACXD,EAAM,MAAS,CACnB,CACJ,EAeI,gBAbqBE,IACd,CACH,QAAS,IAAMF,EAAME,CAAE,CAC3B,GAWA,UAReA,GAAgBA,IAAOH,CAS1C,CACJ,ECnFA,OACI,aAAaI,OAMV,kBAgBA,IAAMC,GAITC,GAC6B,CAC7B,GAAM,CAAE,YAAAC,EAAa,wBAAAC,EAAyB,SAAAC,EAAU,QAAAC,CAAQ,EAC5DN,GAAcE,CAAK,EAEvB,MAAO,CACH,YAAa,CACT,QAAAI,EACA,SAAAD,EACA,QAASD,EAAwB,WACjC,WAAY,GACZ,aAAc,EAClB,EACA,YAAAD,EACA,wBAAAC,CACJ,CACJ,EC3CA,OAKI,aAAAG,GAEA,qBAAAC,OACG,kBA2BA,IAAMC,GAAmB,CAG9B,CACE,SAAAC,EACA,KAAAC,EACA,QAAAC,EACA,QAAAC,EACA,YAAAC,EACA,YAAAC,EACA,aAAAC,EACA,UAAAC,EACA,WAAAC,EACA,SAAAC,EACA,aAAAC,EACA,YAAAC,EACA,WAAAC,EACA,KAAAC,EACA,SAAAC,EACA,iBAAAC,CACJ,IAA+E,CAC3E,GAAM,CAAE,YAAAC,EAAa,QAAAC,CAAQ,EAAIpB,GAAU,CACvC,SAAAG,EACA,KAAAC,EACA,QAAAC,EACA,QAAAC,EACA,YAAAC,EACA,YAAAC,EACA,aAAAC,EACA,UAAAC,EACA,WAAAC,EACA,SAAAC,EACA,aAAAC,EACA,YAAAC,EACA,WAAAC,EACA,KAAMd,GAAkBe,EAAMC,CAAQ,EACtC,SAAUhB,GAAkBe,EAAMC,CAAQ,EAC1C,iBAAAC,CACJ,CAAC,EACD,MAAO,CACH,mBAAoB,CAChB,QAAAE,EACA,aAAAP,CACJ,EACA,YAAAM,CACJ,CACJ,ECjFA,OAKI,qBAAAE,GACA,aAAAC,OAEG,kBA0BA,IAAMC,GAAgB,CAG3B,CACE,SAAAC,EACA,KAAAC,EACA,QAAAC,EACA,QAAAC,EACA,YAAAC,EACA,YAAAC,EACA,aAAAC,EACA,UAAAC,EACA,WAAAC,EACA,SAAAC,EACA,aAAAC,EACA,YAAAC,EACA,WAAAC,EACA,KAAAC,EACA,SAAAC,EACA,iBAAAC,CACJ,IAAyE,CACrE,GAAM,CAAE,YAAAC,EAAa,QAAAC,CAAQ,EAAInB,GAAU,CACvC,SAAAE,EACA,KAAAC,EACA,QAAAC,EACA,QAAAC,EACA,YAAAC,EACA,YAAAC,EACA,aAAAC,EACA,UAAAC,EACA,WAAAC,EACA,SAAAC,EACA,aAAAC,EACA,YAAAC,EACA,WAAAC,EACA,KAAMf,GAAkBgB,EAAMC,CAAQ,EACtC,SAAUjB,GAAkBgB,EAAMC,CAAQ,EAC1C,iBAAAC,CACJ,CAAC,EAED,MAAO,CACH,gBAAiB,CACb,QAAAE,EACA,aAAAP,CACJ,EACA,YAAAM,CACJ,CACJ,ECpFA,OAAOE,OAAW,QAClB,OAAsB,gBAAAC,GAA2B,YAAAC,OAAgB,OACjE,OACI,gBAAAC,GACA,eAAAC,GAGA,aAAaC,GAGb,qBAAAC,OACG,kBAaA,IAAMC,GAAY,CAKvB,CACE,SAAUC,EACV,aAAAC,EACA,QAAAC,EAAWC,GAASA,EACpB,eAAAC,EACA,UAAAC,EAAY,OAAO,iBACnB,SAAAC,EACA,KAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,WAAYC,CAChB,EAA6C,CAAC,IAMzC,CA9CL,IAAAC,EA+CI,IAAMC,EAAIjB,GAAa,EAEjB,CAAE,SAAAkB,CAAS,EAAIjB,GAAYI,GAAA,KAAAA,EAAoBC,CAAY,EAE3D,CAAE,eAAAa,EAAgB,UAAAC,EAAW,aAAAC,CAAa,EAAInB,GAKlD,CACE,UAAUc,EAAAE,GAAA,YAAAA,EAAU,aAAV,KAAAF,EAAwBE,GAAA,YAAAA,EAAU,KAC5C,QAAAX,EACA,eAAAE,EACA,UAAAC,EACA,KAAMP,GAAkBS,EAAMC,CAAQ,EACtC,SAAUV,GAAkBS,EAAMC,CAAQ,EAC1C,iBAAAC,EACA,SAAAH,EACA,WACII,GAAA,KAAAA,EACC,CAAC,CAAE,YAAAO,EAAa,gBAAAC,CAAgB,IAAM,CACnC,GAAID,EAAc,GAAKC,EAAkB,EAAG,CACxC,IAAMC,EACF3B,GAAA,cAAC,OACG,MAAO,CACH,QAAS,OACT,WAAY,SACZ,eAAgB,gBAChB,UAAW,MACf,GAEAA,GAAA,cAACE,GAAA,CACG,KAAK,SACL,QAAS,KAAK,MACTwB,EAAkBD,EAAe,GACtC,EACA,MAAO,GACP,YAAY,UACZ,OAAO,SACX,EACAzB,GAAA,cAAC,QAAK,MAAO,CAAE,WAAY,EAAG,MAAO,MAAO,GACvCoB,EACG,+BACA,CACI,UAAWM,EACX,MAAOD,CACX,EACA,cAAcC,KAAmBD,GACrC,CACJ,CACJ,EAGJxB,GAAa,KAAK,CACd,YAAA0B,EACA,QAAS,KACT,IAAK,GAAGN,WACR,SAAU,CACd,CAAC,EAEGK,GAAmBD,EAGnBC,IAAoBD,GACpB,WAAW,IAAM,CACbxB,GAAa,QAAQ,GAAGoB,UAAiB,CAC7C,EAAG,IAAI,CAEf,CACJ,CACR,CAAC,EAED,MAAO,CACH,YAAa,CACT,SAAUG,EACV,aAAc,IAAM,GACpB,eAAgB,GAChB,OAAQ,MACZ,EACA,YAAa,CACT,KAAM,UACN,QAASD,CACb,EACA,eAAAD,EACA,UAAAC,CACJ,CACJ,ECrIA,OAAS,YAAAK,GAAU,iBAAAC,GAAe,YAAAC,OAAgB,QAClD,OAA+B,QAAAC,GAAM,QAAAC,OAAY,OAEjD,OAMI,YAAYC,GAGZ,qBAAAC,OACG,kBACP,OAAS,eAAAC,OAAmB,kBAiCrB,IAAMC,GAAgB,CAI3B,CACE,SAAAC,EACA,eAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,cAAAC,EAAgB,GAChB,cAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,yBAAAC,EACA,QAASC,EACT,QAASC,EACT,SAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,oBAAAC,EACA,kBAAAC,EACA,SAAUC,EACV,YAAAC,EACA,WAAAC,EACA,KAAAC,EACA,SAAAC,EACA,iBAAAC,CACJ,EAII,CAAC,IAAwD,CA/E7D,IAAAC,GAgFI,GAAM,CACF,QAAAC,EACA,OAAAC,EACA,QAAAC,EACA,QAAAC,EACA,SAAAC,EACA,UAAAC,EACA,WAAAC,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EACA,WAAAC,EACA,8BAAAC,EACA,iBAAkBC,CACtB,EAAIC,GAAa,CACb,SAAArC,EACA,cAAAK,EACA,gBAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,QAASE,EACT,QAASC,EACT,yBAAAF,EACA,eAAAR,EACA,gBAAAC,EACA,aAAAW,EACA,oBAAAE,EACA,kBAAAC,EACA,SAAUC,EACV,YAAAC,EACA,WAAAC,EACA,KAAMmB,GAAkBlB,EAAMC,CAAQ,EACtC,SAAUiB,GAAkBlB,EAAMC,CAAQ,EAC1C,iBAAAP,EACA,iBAAAQ,EACA,WAAAnB,EACA,cAAAC,CACJ,CAAC,EAEKmC,EAAsBnC,IAAkB,GAAQ,MAAQ,SACxDoC,IACDjB,GAAApB,GAAA,YAAAA,EAAY,OAAZ,KAAAoB,GAAoBgB,KAAyB,MAE5CE,EAAaC,GAAK,cAAc,EAEhCC,EAAWC,GAAY3B,CAAgB,EAEvC,CAAC4B,CAAI,EAAIC,GAAK,QAA0B,EAExC,CAAE,KAAAC,EAAM,UAAAC,EAAW,UAAAC,CAAU,EAAIb,EAEjCc,EAAW,CAACC,EAAcvB,IAA4B,CACpDY,IACAT,EAAWoB,CAAI,EACfnB,EAAYJ,GAAY,EAAE,EAElC,EAEMwB,GAAW,MAAOC,GAA6B,CACjD,GAAIzC,EAAU,CACV,IAAM0C,EAAgB,MAAM1C,EAASyC,CAAM,EAC3C,OAAIb,IACAT,GAAA,MAAAA,EAAa,IAEVD,EAAWwB,CAAa,CACnC,CACJ,EAEMC,GAAiB,IACff,EACO,CACH,WAAY,CAACW,EAAMK,EAAMC,KAAY,CAvJrD,IAAAlC,GAwJoB,IAAMmC,GAAOvB,EAA8B,CACvC,WAAY,CACR,SAAAP,EACA,QAASuB,CACb,EACA,QAAA3B,EACA,QAAAE,CACJ,CAAC,EAED,GAAI8B,IAAS,OACT,OAAOG,GAAcC,GAAgB,CACjC,GAAIF,GACJ,QAAS,GAAGP,GAChB,CAAC,EAEL,GAAIK,IAAS,QAAUA,IAAS,OAC5B,OAAOG,GAAcC,GAAgB,CACjC,GAAIF,GACJ,QAASD,EACb,CAAC,EAGL,GAAID,IAAS,aAAeA,IAAS,YAAa,CAC9C,IAAMK,IAAmBtC,GAAAkC,IAAA,YAAAA,GACnB,QADmB,YAAAlC,GACZ,SAEb,OAAOoC,GAAcC,GAAgB,CACjC,GAAIF,GACJ,QACII,GAAS,MAAMD,EAAe,EAAI,EAC5BF,GACII,GACA,CAAC,EACDF,EACJ,EACAA,EACd,CAAC,CACL,CAEA,OAAOJ,EACX,EACA,SAAA7B,EACA,QAAAD,EACA,OAAQ,CAACc,EAAW,GACpB,MAAOM,GAAA,YAAAA,EAAM,MACb,SAAAG,CACJ,EAGG,GAGX,MAAO,CACH,gBAAiB,CACb,KAAAL,EACA,SAAAO,EACJ,EACA,UAAW,CACP,WAAYL,GAAA,YAAAA,EAAM,KAClB,QAASJ,IAAa,OAASM,EAAY,CAACD,EAC5C,WAAYO,GAAe,CAC/B,EACA,YAAAnB,EACA,QAAAV,EACA,WAAAI,EACA,OAAAL,EACA,UAAAQ,EACA,QAAAT,EACA,WAAAU,EACA,QAAAP,EACA,WAAAI,EACA,SAAAH,EACA,YAAAI,EACA,UAAAH,EACA,8BAAAM,CACJ,CACJ,ECpOA,OAAS,eAAA6B,GAAa,WAAAC,GAAS,YAAAC,OAAgB,QAQxC,IAAMC,GAA6C,IAAM,CAC5D,GAAM,CAACC,EAAWC,CAAY,EAAIH,GAAS,EAAK,EAE1CI,EAAWN,GAAaO,GAA4B,CAC7BC,GAAmBD,EAAK,QAAQ,EAEpC,SAAS,EAAI,EAC9BF,EAAa,EAAI,EAEjBA,EAAa,EAAK,CAE1B,EAAG,CAAC,CAAC,EAEL,OAAOJ,GAAQ,KAAO,CAAE,UAAAG,EAAW,SAAAE,CAAS,GAAI,CAACF,CAAS,CAAC,CAC/D,EAEMI,GAAsBC,GACjBA,EAAM,IAAKC,GAAS,CACvB,OAAQA,EAAK,YACJ,YACD,MAAO,WAEP,MAAO,GAEnB,CAAC,EC/BL,OACI,YAAYC,OAET,kBAkBA,IAAMC,GAAW,CAAC,CACrB,WAAAC,EAAa,CAAC,CAClB,EAAmB,CAAC,IAA0B,CAC1C,GAAM,CAAE,KAAAC,EAAM,MAAAC,EAAO,QAAAC,CAAQ,EAAIL,GAAa,CAC1C,eAAgBE,EAAW,IAC/B,CAAC,EAED,MAAO,CACH,WAAY,CACR,GAAGA,EACH,SAAWI,GAAuD,CAhC9E,IAAAC,GAiCgBA,EAAAL,EAAW,WAAX,MAAAK,EAAA,KAAAL,EAAsBI,GACtBF,EAAM,CACV,EACA,KAAMC,EACN,QAAAA,CACJ,EACA,KAAAF,EACA,MAAAC,CACJ,CACJ,EC1CA,OAAOI,OAAW,QAElB,OAAS,gBAAAC,OAAoB,OCF7B,OAAOC,OAAW,QAClB,OAAS,UAAAC,GAAQ,gBAAAC,GAAc,YAAAC,OAAgB,OAE/C,OAAS,gBAAAC,OAAoB,oBAStB,IAAMC,GAA4D,CAAC,CACtE,gBAAAC,EACA,QAAAC,EACA,eAAAC,EACA,gBAAAC,CACJ,IACIT,GAAA,cAAC,OACG,MAAO,CACH,QAAS,OACT,WAAY,SACZ,eAAgB,gBAChB,UAAW,MACf,GAEAA,GAAA,cAACG,GAAA,CACG,KAAK,SACL,SAAUM,GAAA,KAAAA,EAAmB,GAAK,GAClC,OAASC,GAASA,GAAQA,EAAO,GACjC,MAAO,GACP,YAAY,UACZ,OAAO,SACX,EACAV,GAAA,cAAC,QAAK,MAAO,CAAE,WAAY,EAAG,MAAO,MAAO,GAAIO,CAAQ,EACxDP,GAAA,cAACC,GAAA,CACG,MAAO,CAAE,WAAY,CAAE,EACvB,QAAS,IAAM,CACXO,GAAA,MAAAA,IACAN,GAAa,QAAQI,GAAA,KAAAA,EAAmB,EAAE,CAC9C,EACA,SAAUG,IAAoB,EAC9B,KAAMT,GAAA,cAACI,GAAA,IAAa,EACvB,CACL,EDtCG,IAAMO,GAA6C,CACtD,KAAM,CAAC,CACH,IAAAC,EACA,QAAAC,EACA,YAAAC,EACA,KAAAC,EACA,eAAAC,EACA,gBAAAC,CACJ,IAAM,CACEF,IAAS,WACTG,GAAa,KAAK,CACd,IAAAN,EACA,YACIO,GAAA,cAACC,GAAA,CACG,gBAAiBR,EACjB,QAASC,EACT,eAAgBG,EAChB,gBAAiBC,EACrB,EAEJ,QAAS,KACT,SAAU,EACV,UAAWE,GAAA,cAAAA,GAAA,aAAE,CACjB,CAAC,EAEDD,GAAa,KAAK,CACd,IAAAN,EACA,YAAaC,EACb,QAASC,GAAA,KAAAA,EAAe,KACxB,KAAAC,CACJ,CAAC,CAET,EACA,MAAQH,GAAQM,GAAa,QAAQN,CAAG,CAC5C,EExCA,OAAOS,OAAW,QAClB,OAAS,QAAAC,GAAM,UAAUC,OAAkB,OCD3C,OAAOC,GAAS,YAAAC,OAAgB,QAChC,OAAS,UAAAC,GAAQ,QAAAC,GAAM,QAAAC,GAAM,kBAAAC,GAAgB,UAAAC,GAAQ,UAAAC,OAAc,OACnE,OACI,qBAAAC,GACA,kBAAAC,GACA,yBAAAC,GACA,gBAAAC,OACG,oBACP,OACI,gBAAAC,GACA,aAAAC,GACA,YAAAC,GACA,aAAAC,GAEA,4BAAAC,GACA,oBAAAC,GACA,WAAAC,GACA,oBAAAC,GACA,WAAAC,GACA,iBAAAC,GACA,yBAAAC,GACA,qBAAAC,OACG,kBCpBA,IAAMC,GAAoC,CAC7C,oBAAqB,EACrB,uBAAwB,EACxB,SAAU,QACV,IAAK,GACL,OAAQ,GACZ,EDqBA,GAAM,CAAE,QAAAC,EAAQ,EAAIC,GAEPC,GAA0C,CAAC,CACpD,MAAOC,EACP,OAAAC,EACA,KAAAC,CACJ,IAAM,CAnCN,IAAAC,EAoCI,GAAM,CAACC,EAAWC,CAAY,EAAIC,GAAkB,EAAK,EACnD,CAACC,EAAYC,CAAa,EAAIF,GAAkB,EAAK,EACrDG,EAAwBC,GAAyB,EACjDC,EAAaC,GAAc,EAC3BC,EAAUC,GAAQ,EAClB,CAAE,KAAMC,CAAW,EAAIC,GAAiB,EACxCC,EAAON,IAAe,SAAWI,EAAaF,EAC9CK,EAAmBC,GAAS,EAC5BC,EAAYC,GAAa,EACzB,CAAE,UAAAC,EAAW,YAAAC,EAAa,gBAAAC,CAAgB,EAAIC,GAAQ,CAAE,KAAAvB,CAAK,CAAC,EAC9DwB,EAAaC,GAAK,cAAc,EAChC,CAAE,aAAAC,CAAa,EAAIC,GAAiB,EACpCC,EAAeC,GAAsB,EACrC,CAAE,OAAQC,CAAa,EAAIC,GAAU,CACvC,+BAAgC,QAAQH,GAAA,YAAAA,EAAc,QAAQ,CAClE,CAAC,EAEKI,EACF,OAAOR,EAAW,GAAO,IAAc,GAAQ,CAACA,EAAW,GAEzDS,GAAgBhC,EAAAH,GAAA,KAAAA,EAAkBkB,IAAlB,KAAAf,EAAsCiC,GAEtDC,EAAiB,CAACC,EAAmBf,IAChCe,EAAK,IAAKC,GAAoB,CACjC,GAAM,CACF,KAAAC,EACA,MAAAC,EACA,MAAAC,EACA,IAAAC,EACA,KAAAC,EACA,SAAAC,EACA,WAAAC,EACA,KAAA5C,EACA,QAAA6C,CACJ,EAAIR,EAEJ,GAAIM,EAAS,OAAS,EAClB,OACIG,EAAA,cAACC,GAAA,CACG,IAAKV,EAAK,IACV,SAAUK,EAAK,YAAY,EAC3B,OAAO,OACP,OAAQ,CACJ,SAAUL,CACd,GAEAS,EAAA,cAACnD,GAAA,CACG,IAAK0C,EAAK,IACV,KAAMC,GAAA,KAAAA,EAAQQ,EAAA,cAACE,GAAA,IAAsB,EACrC,MAAOT,GAENJ,EAAeQ,EAAUtB,CAAW,CACzC,CACJ,EAGR,IAAM4B,EAAaR,IAAQpB,EACrB6B,GAAU,EACZC,GAAkBnD,GAAA,YAAAA,EAAM,OAAQ6C,GAAA,YAAAA,EAAS,OAAQD,CAAU,IACvD,QAAaD,EAAS,SAAW,GAEzC,OACIG,EAAA,cAACC,GAAA,CACG,IAAKV,EAAK,IACV,SAAUK,EAAK,YAAY,EAC3B,OAAO,OACP,OAAQ,CACJ,SAAUL,CACd,GAEAS,EAAA,cAAClD,GAAK,KAAL,CACG,IAAKyC,EAAK,IACV,MAAO,CACH,WAAYY,EAAa,OAAS,QACtC,EACA,KAAMX,GAAA,KAAAA,EAASY,IAAWJ,EAAA,cAACE,GAAA,IAAsB,GAEjDF,EAAA,cAAC/B,EAAA,CAAK,GAAIyB,GAAA,KAAAA,EAAS,IAAKD,CAAM,EAC7B,CAACrC,GAAa+C,GACXH,EAAA,cAAC,OAAI,UAAU,sBAAsB,CAE7C,CACJ,CAER,CAAC,EAGCM,EAAS7C,GACXuC,EAAA,cAAClD,GAAK,KAAL,CACG,IAAI,SACJ,QAAS,IAAMkC,EAAa,EAC5B,KAAMgB,EAAA,cAACO,GAAA,IAAe,GAErBnC,EAAU,iBAAkB,QAAQ,CACzC,EAGEoC,EAAY5B,EACdoB,EAAA,cAAClD,GAAK,KAAL,CACG,IAAI,YACJ,MAAO,CACH,WAAYyB,IAAgB,IAAM,OAAS,QAC/C,EACA,KAAMyB,EAAA,cAACS,GAAA,IAAkB,GAEzBT,EAAA,cAAC/B,EAAA,CAAK,GAAG,KAAKG,EAAU,kBAAmB,WAAW,CAAE,EACvD,CAAChB,GAAamB,IAAgB,KAC3ByB,EAAA,cAAC,OAAI,UAAU,sBAAsB,CAE7C,EACA,KAEEU,EAAQrB,EAAef,EAAWC,CAAW,EAE7CoC,EAAc,IACZ1D,EACOA,EAAO,CACV,UAAAuD,EACA,MAAAE,EACA,OAAAJ,EACA,UAAAlD,CACJ,CAAC,EAGD4C,EAAA,cAAAA,EAAA,cACKQ,EACAE,EACAJ,CACL,EAIFM,EAAa,IAEXZ,EAAA,cAAAA,EAAA,cACIA,EAAA,cAAClD,GAAA,CACG,MAAM,OACN,aAAcyB,EAAc,CAACA,CAAW,EAAI,CAAC,EAC7C,gBAAiBC,EACjB,KAAK,SACL,QAAS,IAAM,CACXhB,EAAc,EAAK,EACdkB,EAAW,IACZrB,EAAa,EAAI,CAEzB,GAECsD,EAAY,CACjB,CACJ,EAIFE,EAAoB,IAElBb,EAAA,cAAAA,EAAA,cACIA,EAAA,cAACc,GAAA,CACG,KAAMvD,EACN,QAAS,IAAMC,EAAc,EAAK,EAClC,UAAU,OACV,SAAU,GACV,MAAO,IACP,UAAW,CACP,QAAS,CACb,EACA,aAAc,IAEdwC,EAAA,cAACe,GAAA,KACGf,EAAA,cAACe,GAAO,MAAP,CACG,MAAO,CAAE,OAAQ,QAAS,SAAU,QAAS,GAE7Cf,EAAA,cAACb,EAAA,CAAc,UAAW,GAAO,EAChCyB,EAAW,CAChB,CACJ,CACJ,EACAZ,EAAA,cAACgB,GAAA,CACG,MAAOC,GACP,KAAK,QACL,QAAS,IAAMzD,EAAc,EAAI,EACjC,KAAMwC,EAAA,cAACkB,GAAA,IAAa,EACvB,CACL,EAyBR,OACIlB,EAAA,cAACmB,GAAA,CACG,MAAO,CACH,WAAY,CACR,KAAM,CACF,YAAa,cACb,cAAe,OACf,sBAAuB,OACvB,oBAAqB,cACrB,mBAAoB,MACxB,CACJ,CACJ,IAjCc,IACdjC,EACO2B,EAAkB,EAIzBb,EAAA,cAACe,GAAO,MAAP,CACG,YAAW,GACX,UAAW3D,EACX,WAAaA,GACTC,EAAaD,CAAS,EAE1B,eAAgB,GAChB,WAAW,MAEX4C,EAAA,cAACb,EAAA,CAAc,UAAW/B,EAAW,EACpCwD,EAAW,CAChB,GAkBe,CACnB,CAER,EEpQA,OAAOQ,OAAW,QAClB,OAAS,UAAUC,GAAY,cAAAC,GAAY,UAAAC,GAAQ,SAAAC,OAAa,OAChE,OAAS,kBAAAC,GAAgB,yBAAAC,OAA6B,kBAEtD,GAAM,CAAE,KAAAC,EAAK,EAAIL,GAEJM,GAA4C,IAAM,CAC3D,IAAMC,EAAeH,GAAsB,EACrC,CAAE,KAAMI,CAAK,EAAIL,GAAe,CAClC,+BAAgC,QAAQI,GAAA,YAAAA,EAAc,QAAQ,CAClE,CAAC,EAID,OAF2BC,IAASA,EAAK,MAAQA,EAAK,QAGlDV,GAAA,cAACC,GAAW,OAAX,CACG,MAAO,CACH,QAAS,OACT,eAAgB,WAChB,WAAY,SACZ,QAAS,WACT,OAAQ,MACZ,GAEAD,GAAA,cAACI,GAAA,KACIM,EAAK,MACFV,GAAA,cAACO,GAAA,CAAK,SAAQ,GAAC,OAAM,IAChBG,EAAK,IACV,EAEHA,EAAK,QACFV,GAAA,cAACG,GAAA,CAAO,KAAK,QAAQ,IAAKO,GAAA,YAAAA,EAAM,OAAQ,IAAKA,GAAA,YAAAA,EAAM,KAAM,CAEjE,CACJ,EACA,IACR,EH7BO,IAAMC,GAA4C,CAAC,CACtD,SAAAC,EACA,OAAAC,EACA,MAAAC,EACA,MAAAC,EACA,OAAAC,EACA,cAAAC,CACJ,IAAM,CACF,IAAMC,EAAaC,GAAK,cAAc,EAChCC,EAAgBN,GAAA,KAAAA,EAASA,GACzBO,EAAiBR,GAAA,KAAAA,EAAUA,GAC3BS,EAAU,OAAOJ,EAAW,GAAO,IAAc,GAAOA,EAAW,GAEzE,OACIK,GAAA,cAACC,GAAA,CAAW,MAAO,CAAE,UAAW,OAAQ,GACpCD,GAAA,cAACH,EAAA,CAAc,MAAOL,EAAO,EAC7BQ,GAAA,cAACC,GAAA,KACGD,GAAA,cAACF,EAAA,IAAe,EAChBE,GAAA,cAACC,GAAW,QAAX,KACGD,GAAA,cAAC,OACG,MAAO,CACH,UAAW,IACX,QAASD,EAAU,GAAK,EAC5B,GAECV,CACL,EACCK,GAAiBM,GAAA,cAACN,EAAA,IAAc,CACrC,EACCD,GAAUO,GAAA,cAACP,EAAA,IAAO,CACvB,CACJ,CAER,EIxCA,OAAOS,OAAW,QAClB,OAEI,oBAAAC,GACA,iBAAAC,GACA,WAAAC,OACG,kBAEA,IAAMC,GAA8B,CAAC,CAAE,UAAAC,CAAU,IAAM,CAC1D,IAAMC,EAAaJ,GAAc,EAC3BK,EAAOJ,GAAQ,EACf,CAAE,KAAMK,CAAW,EAAIP,GAAiB,EAI9C,OACID,GAAA,cAHeM,IAAe,SAAWE,EAAaD,EAGrD,CAAW,GAAG,KACVF,EACGL,GAAA,cAAC,OACG,MAAO,CACH,QAAS,OACT,WAAY,SACZ,eAAgB,QACpB,GAEAA,GAAA,cAAC,OACG,IAAI,sEACJ,IAAI,SACJ,MAAO,CACH,OAAQ,SACR,QAAS,SACT,UAAW,QACf,EACJ,CACJ,EAEAA,GAAA,cAAC,OACG,IAAI,iEACJ,IAAI,SACJ,MAAO,CACH,MAAO,QACP,QAAS,WACb,EACJ,CAER,CAER,EC/CA,OAAOS,OAAW,QAClB,OAAS,UAAAC,OAAc,OACvB,OAAS,sBAAAC,OAA0B,oBACnC,OACI,iBAAAC,GACA,gBAAAC,GACA,UAAAC,GACA,eAAAC,GACA,oBAAAC,GACA,iBAAAC,GACA,WAAAC,OACG,kBACP,OAAS,uBAAAC,OAA2B,sBAW7B,IAAMC,GAA4C,CAAC,CACtD,SAAUC,EACV,wBAAyBC,EACzB,SAAAC,EAAW,GACX,cAAAC,EACA,KAAAC,EACA,SAAAC,EACA,QAAAC,KACGC,CACP,IAAM,CAhCN,IAAAC,EAAAC,EAiCI,IAAMC,GAAuBF,EAAAL,GAAA,YAAAA,EAAe,UAAf,KAAAK,EAA0B,GACjDG,GAAqBF,EAAAN,GAAA,YAAAA,EAAe,qBAAf,KAAAM,EAAqC,GAC1DG,EAAYpB,GAAa,EACzBqB,EAAajB,GAAc,EAC3BkB,EAAOjB,GAAQ,EACf,CAAE,KAAMkB,CAAW,EAAIpB,GAAiB,EAExCqB,EAAaH,IAAe,SAAWE,EAAaD,EAEpD,CAAE,UAAWG,CAAkB,EAAI1B,GAAc,EAEjD,CAAE,SAAA2B,CAAS,EAAIxB,GACjBM,GAAA,KAAAA,EAAyBC,CAC7B,EAEM,CAAE,KAAAkB,CAAK,EAAI1B,GAAO,CACpB,SAAUyB,GAAA,YAAAA,EAAU,KACpB,OAAQ,SACR,aAAc,CACV,QAASR,CACb,EACA,OAAQ,CACJ,SAAAQ,CACJ,CACJ,CAAC,EAEKE,EAA4B,IAC1BD,GAAA,MAAAA,EAAM,IAAY,GACbA,GAAA,MAAAA,EAAM,OAAeA,EAAK,OAExBP,EACH,yBACA,qCACJ,EAGFS,EAAYH,EAAWD,EAAkBC,EAAUd,CAAI,EAAI,GAEjE,OAAIM,GAAwBC,GAAsB,EAACQ,GAAA,MAAAA,EAAM,KAC9C,KAIP/B,GAAA,cAAC4B,EAAA,CACG,GAAIK,EACJ,QAAS,GACT,QAAUC,GAA6C,CACnD,IAAIH,GAAA,YAAAA,EAAM,OAAQ,GAAO,CACrBG,EAAE,eAAe,EACjB,MACJ,CACIhB,IACAgB,EAAE,eAAe,EACjBhB,EAAQgB,CAAC,EAEjB,GAEAlC,GAAA,cAACC,GAAA,CACG,KAAMD,GAAA,cAACE,GAAA,IAAmB,EAC1B,UAAU6B,GAAA,YAAAA,EAAM,OAAQ,GACxB,MAAOC,EAA0B,EACjC,cAAatB,GAAoB,aAChC,GAAGS,GAEH,CAACL,IACGG,GAAA,KAAAA,EAAYO,EAAU,iBAAkB,QAAQ,EACzD,CACJ,CAER,ECtGA,OAAOW,OAAW,QAClB,OAAS,UAAAC,OAAc,OACvB,OAAS,gBAAAC,OAAoB,oBAC7B,OACI,UAAAC,GACA,iBAAAC,GACA,gBAAAC,GACA,eAAAC,GACA,oBAAAC,GACA,iBAAAC,GACA,WAAAC,OACG,kBACP,OAAS,uBAAAC,OAA2B,sBAW7B,IAAMC,GAAwC,CAAC,CAClD,SAAUC,EACV,wBAAyBC,EACzB,aAAAC,EACA,SAAAC,EAAW,GACX,cAAAC,EACA,KAAAC,EACA,SAAAC,EACA,QAAAC,KACGC,CACP,IAAM,CAjCN,IAAAC,EAAAC,EAkCI,IAAMC,GAAuBF,EAAAL,GAAA,YAAAA,EAAe,UAAf,KAAAK,EAA0B,GACjDG,GAAqBF,EAAAN,GAAA,YAAAA,EAAe,qBAAf,KAAAM,EAAqC,GAC1DG,EAAYpB,GAAa,EAEzBqB,EAAalB,GAAc,EAC3BmB,EAAOlB,GAAQ,EACf,CAAE,KAAMmB,CAAW,EAAIrB,GAAiB,EAExCsB,EAAaH,IAAe,SAAWE,EAAaD,EAEpD,CAAE,QAASG,CAAgB,EAAI1B,GAAc,EAE7C,CAAE,GAAA2B,EAAI,SAAAC,CAAS,EAAI1B,GACrBM,GAAA,KAAAA,EAAyBC,CAC7B,EAEM,CAAE,KAAAoB,CAAK,EAAI9B,GAAO,CACpB,SAAU6B,GAAA,YAAAA,EAAU,KACpB,OAAQ,OACR,OAAQ,CAAE,GAAIlB,GAAA,KAAAA,EAAgBiB,EAAI,SAAAC,CAAS,EAC3C,aAAc,CACV,QAAST,CACb,CACJ,CAAC,EAEKW,EAA4B,IAC1BD,GAAA,MAAAA,EAAM,IAAY,GACbA,GAAA,MAAAA,EAAM,OAAeA,EAAK,OAExBR,EACH,yBACA,qCACJ,EAGFU,EACFH,IAAalB,GAAA,KAAAA,EAAgBiB,GACvBD,EAAgBE,EAAUlB,GAAA,KAAAA,EAAiBiB,EAAKd,CAAI,EACpD,GAEV,OAAIM,GAAwBC,GAAsB,EAACS,GAAA,MAAAA,EAAM,KAC9C,KAIPjC,GAAA,cAAC6B,EAAA,CACG,GAAIM,EACJ,QAAS,GACT,QAAUC,GAA6C,CACnD,IAAIH,GAAA,YAAAA,EAAM,OAAQ,GAAO,CACrBG,EAAE,eAAe,EACjB,MACJ,CACIjB,IACAiB,EAAE,eAAe,EACjBjB,EAAQiB,CAAC,EAEjB,GAEApC,GAAA,cAACC,GAAA,CACG,KAAMD,GAAA,cAACE,GAAA,IAAa,EACpB,UAAU+B,GAAA,YAAAA,EAAM,OAAQ,GACxB,MAAOC,EAA0B,EACjC,cAAaxB,GAAoB,WAChC,GAAGU,GAEH,CAACL,IAAaG,GAAA,KAAAA,EAAYO,EAAU,eAAgB,MAAM,EAC/D,CACJ,CAER,ECxGA,OAAOY,OAAW,QAClB,OAAS,UAAAC,GAAQ,cAAAC,OAAkB,OACnC,OAAS,kBAAAC,OAAsB,oBAC/B,OACI,aAAAC,GACA,gBAAAC,GACA,mBAAAC,GACA,UAAAC,GACA,eAAAC,GACA,qBAAAC,OACG,kBACP,OAAS,uBAAAC,OAA2B,sBAU7B,IAAMC,GAA4C,CAAC,CACtD,SAAUC,EACV,wBAAyBC,EACzB,aAAAC,EACA,UAAAC,EACA,aAAcC,EACd,SAAAC,EACA,oBAAAC,EACA,kBAAAC,EACA,SAAAC,EAAW,GACX,cAAAC,EACA,SAAAC,EACA,KAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,YAAAC,KACGC,CACP,IAAM,CAxCN,IAAAC,EAAAC,EAyCI,IAAMC,GAAuBF,EAAAT,GAAA,YAAAA,EAAe,UAAf,KAAAS,EAA0B,GACjDG,GAAqBF,EAAAV,GAAA,YAAAA,EAAe,qBAAf,KAAAU,EAAqC,GAC1DG,EAAY7B,GAAa,EAEzB,CAAE,GAAA8B,EAAI,SAAAC,CAAS,EAAI5B,GACrBI,GAAA,KAAAA,EAAyBC,CAC7B,EAEM,CAAE,aAAcwB,CAAoB,EAAI/B,GAAgB,EAExDgC,EAAetB,GAAA,KAAAA,EAAoBqB,EAEnC,CAAE,OAAAE,EAAQ,UAAAC,EAAW,UAAAC,CAAU,EAAIrC,GAAU,EAE7C,CAAE,KAAAsC,CAAK,EAAInC,GAAO,CACpB,SAAU6B,GAAA,YAAAA,EAAU,KACpB,OAAQ,SACR,OAAQ,CAAE,GAAItB,GAAA,KAAAA,EAAgBqB,EAAI,SAAAC,CAAS,EAC3C,aAAc,CACV,QAASJ,CACb,CACJ,CAAC,EAED,OAAIA,GAAwBC,GAAsB,EAACS,GAAA,MAAAA,EAAM,KAC9C,KAIP1C,GAAA,cAACE,GAAA,CACG,IAAI,SACJ,OAAQwB,GAAA,KAAAA,EAAiBQ,EAAU,iBAAkB,QAAQ,EAC7D,WACIP,GAAA,KAAAA,EAAqBO,EAAU,iBAAkB,QAAQ,EAE7D,OAAO,SACP,MACIT,GAAA,KAAAA,EAAgBS,EAAU,kBAAmB,eAAe,EAEhE,cAAe,CAAE,SAAUM,CAAU,EACrC,UAAW,IAAY,CAhFnC,IAAAV,GAiFqBhB,GAAA,KAAAA,EAAgBqB,KAAOC,GAAA,YAAAA,EAAU,OAClCG,EACI,CACI,IAAIT,EAAAhB,GAAA,KAAAA,EAAgBqB,IAAhB,KAAAL,EAAsB,GAC1B,SAAUM,GAAA,YAAAA,EAAU,KACpB,aAAAE,EACA,oBAAApB,EACA,kBAAAC,EACA,KAAMV,GAAkBc,EAAMD,CAAQ,EACtC,SAAUb,GAAkBc,EAAMD,CAAQ,EAC1C,iBAAAE,EACA,YAAAI,CACJ,EACA,CACI,UAAYe,GAAU,CAClB5B,GAAaA,EAAU4B,CAAK,CAChC,CACJ,CACJ,CAER,EACA,SACI,OAAOd,GAAA,YAAAA,EAAM,UAAa,IACpBA,EAAK,UACLa,GAAA,YAAAA,EAAM,OAAQ,IAGxB1C,GAAA,cAACC,GAAA,CACG,OAAM,GACN,SAAUa,GAAA,KAAAA,EAAgBqB,MAAQM,GAAA,YAAAA,EAAW,KAAMD,EACnD,KAAMxC,GAAA,cAACG,GAAA,IAAe,EACtB,UAAUuC,GAAA,YAAAA,EAAM,OAAQ,GACxB,cAAahC,GAAoB,aAChC,GAAGmB,GAEH,CAACT,IACGH,GAAA,KAAAA,EAAYiB,EAAU,iBAAkB,QAAQ,EACzD,CACJ,CAER,ECzHA,OAAOU,OAAW,QAClB,OAAS,UAAAC,OAAc,OACvB,OAAS,gBAAAC,OAAoB,oBAC7B,OACI,UAAAC,GACA,gBAAAC,GACA,eAAAC,GACA,qBAAAC,OACG,kBACP,OAAS,uBAAAC,OAA2B,sBAU7B,IAAMC,GAA8C,CAAC,CACxD,SAAUC,EACV,wBAAyBC,EACzB,aAAAC,EACA,SAAAC,EAAW,GACX,KAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,QAAAC,KACGC,CACP,IAAM,CACF,IAAMC,EAAYf,GAAa,EAEzB,CAAE,SAAAgB,EAAU,GAAAC,CAAG,EAAIhB,GACrBI,GAAA,KAAAA,EAAyBC,CAC7B,EAEM,CAAE,QAAAY,EAAS,WAAAC,CAAW,EAAIpB,GAAO,CACnC,SAAUiB,GAAA,YAAAA,EAAU,KACpB,GAAIT,GAAA,KAAAA,EAAgBU,EACpB,aAAc,CACV,QAAS,EACb,EACA,KAAMf,GAAkBO,EAAMC,CAAQ,EACtC,SAAUR,GAAkBO,EAAMC,CAAQ,EAC1C,SAAU,MACV,iBAAAC,CACJ,CAAC,EAED,OACIf,GAAA,cAACC,GAAA,CAEG,QAAUuB,GAAOP,EAAUA,EAAQO,CAAQ,EAAIF,EAAQ,EACvD,KAAMtB,GAAA,cAACE,GAAA,CAAa,KAAMqB,EAAY,EACtC,cAAahB,GAAoB,cAChC,GAAGW,GAEH,CAACN,IAAaI,GAAA,KAAAA,EAAYG,EAAU,kBAAmB,SAAS,EACrE,CAER,EC5DA,OAAOM,OAAW,QAClB,OAAS,UAAAC,OAAc,OACvB,OAAS,eAAAC,OAAmB,oBAC5B,OACI,UAAAC,GACA,iBAAAC,GACA,gBAAAC,GACA,eAAAC,GACA,oBAAAC,GACA,iBAAAC,GACA,WAAAC,OACG,kBACP,OAAS,uBAAAC,OAA2B,sBAW7B,IAAMC,GAAwC,CAAC,CAClD,SAAUC,EACV,wBAAyBC,EACzB,aAAAC,EACA,SAAAC,EAAW,GACX,cAAAC,EACA,KAAAC,EACA,SAAAC,EACA,QAAAC,KACGC,CACP,IAAM,CAjCN,IAAAC,EAAAC,EAkCI,IAAMC,GAAuBF,EAAAL,GAAA,YAAAA,EAAe,UAAf,KAAAK,EAA0B,GACjDG,GAAqBF,EAAAN,GAAA,YAAAA,EAAe,qBAAf,KAAAM,EAAqC,GAC1D,CAAE,QAASG,CAAgB,EAAIrB,GAAc,EAC7CsB,EAAalB,GAAc,EAC3BmB,EAAOlB,GAAQ,EACf,CAAE,KAAMmB,CAAW,EAAIrB,GAAiB,EAExCsB,EAAaH,IAAe,SAAWE,EAAaD,EAEpDG,EAAYzB,GAAa,EAEzB,CAAE,GAAA0B,EAAI,SAAAC,CAAS,EAAI1B,GACrBM,GAAA,KAAAA,EAAyBC,CAC7B,EAEM,CAAE,KAAAoB,CAAK,EAAI9B,GAAO,CACpB,SAAU6B,GAAA,YAAAA,EAAU,KACpB,OAAQ,OACR,OAAQ,CAAE,GAAIlB,GAAA,KAAAA,EAAgBiB,EAAI,SAAAC,CAAS,EAC3C,aAAc,CACV,QAAST,CACb,CACJ,CAAC,EAEKW,EAA4B,IAC1BD,GAAA,MAAAA,EAAM,IAAY,GACbA,GAAA,MAAAA,EAAM,OAAeA,EAAK,OAExBH,EACH,yBACA,qCACJ,EAGFK,EACFH,IAAalB,GAAgBiB,GACvBN,EAAgBO,EAAUlB,GAAA,KAAAA,EAAiBiB,EAAKd,CAAI,EACpD,GAEV,OAAIM,GAAwBC,GAAsB,EAACS,GAAA,MAAAA,EAAM,KAC9C,KAIPjC,GAAA,cAAC6B,EAAA,CACG,GAAIM,EACJ,QAAS,GACT,QAAUC,GAA6C,CACnD,IAAIH,GAAA,YAAAA,EAAM,OAAQ,GAAO,CACrBG,EAAE,eAAe,EACjB,MACJ,CACIjB,IACAiB,EAAE,eAAe,EACjBjB,EAAQiB,CAAC,EAEjB,GAEApC,GAAA,cAACC,GAAA,CACG,KAAMD,GAAA,cAACE,GAAA,IAAY,EACnB,UAAU+B,GAAA,YAAAA,EAAM,OAAQ,GACxB,MAAOC,EAA0B,EACjC,cAAaxB,GAAoB,WAChC,GAAGU,GAEH,CAACL,IAAaG,GAAA,KAAAA,EAAYY,EAAU,eAAgB,MAAM,EAC/D,CACJ,CAER,ECvGA,OAAOO,OAAW,QAClB,OAAS,UAAAC,OAAc,OACvB,OAAS,gBAAAC,OAAoB,oBAC7B,OACI,UAAAC,GACA,iBAAAC,GACA,gBAAAC,GACA,4BAAAC,GACA,eAAAC,GACA,oBAAAC,GACA,iBAAAC,GACA,WAAAC,GACA,qBAAAC,OACG,kBACP,OAAS,uBAAAC,OAA2B,sBAW7B,IAAMC,GAAwC,CAAC,CAClD,SAAUC,EACV,wBAAyBC,EACzB,SAAAC,EAAW,GACX,cAAAC,EACA,KAAAC,EACA,SAAAC,EACA,QAAAC,KACGC,CACP,IAAM,CAlCN,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAmCI,IAAMC,GAAuBR,EAAAL,GAAA,YAAAA,EAAe,UAAf,KAAAK,EAA0B,GACjDS,GAAqBR,EAAAN,GAAA,YAAAA,EAAe,qBAAf,KAAAM,EAAqC,GAC1D,CAAE,QAASS,CAAgB,EAAI5B,GAAc,EAC7C6B,EAAaxB,GAAc,EAC3ByB,EAAOxB,GAAQ,EACf,CAAE,KAAMyB,CAAW,EAAI3B,GAAiB,EAExC4B,EAAaH,IAAe,SAAWE,EAAaD,EAEpDG,EAAYhC,GAAa,EAEzB,CAAE,SAAAiC,CAAS,EAAI/B,GACjBO,GAAA,KAAAA,EAAyBC,CAC7B,EAEM,CAAE,KAAAwB,CAAK,EAAIpC,GAAO,CACpB,SAAUmC,GAAA,YAAAA,EAAU,KACpB,OAAQ,OACR,aAAc,CACV,QAASR,CACb,EACA,OAAQ,CACJ,SAAAQ,CACJ,CACJ,CAAC,EAEKE,EAA4B,IAC1BD,GAAA,MAAAA,EAAM,IAAY,GACbA,GAAA,MAAAA,EAAM,OAAeA,EAAK,OAExBF,EACH,yBACA,qCACJ,EAGFI,EAAUH,EAAWN,EAAgBM,EAAUpB,CAAI,EAAI,GAE7D,OAAIY,GAAwBC,GAAsB,EAACQ,GAAA,MAAAA,EAAM,KAC9C,KAIPvC,GAAA,cAACoC,EAAA,CACG,GAAIK,EACJ,QAAS,GACT,QAAUC,GAA6C,CACnD,IAAIH,GAAA,YAAAA,EAAM,OAAQ,GAAO,CACrBG,EAAE,eAAe,EACjB,MACJ,CACItB,IACAsB,EAAE,eAAe,EACjBtB,EAAQsB,CAAC,EAEjB,GAEA1C,GAAA,cAACC,GAAA,CACG,KAAMD,GAAA,cAACE,GAAA,IAAa,EACpB,UAAUqC,GAAA,YAAAA,EAAM,OAAQ,GACxB,MAAOC,EAA0B,EACjC,cAAa5B,GAAoB,WAChC,GAAGS,GAEH,CAACL,IACGG,GAAA,KAAAA,EACGkB,EACI,IACIZ,GAAAD,EAAAc,GAAA,YAAAA,EAAU,OAAV,KAAAd,EACAV,IADA,KAAAW,EAEAV,gBAEJT,IACIuB,GAAAD,GAAAD,GAAAD,EAAAY,GAAA,YAAAA,EAAU,OAAV,YAAAZ,EAAgB,QAAhB,KAAAC,EACIW,GAAA,YAAAA,EAAU,QADd,KAAAV,EAEIU,GAAA,YAAAA,EAAU,OAFd,KAAAT,EAGIlB,GACIG,EACAC,CACJ,EACJ,QACJ,CACJ,EACZ,CACJ,CAER,ECzHA,OAAO4B,OAAW,QAClB,OAAS,UAAAC,OAAc,OACvB,OAAS,kBAAAC,OAAsB,oBAC/B,OAAS,gBAAAC,OAAoB,kBAC7B,OAAS,uBAAAC,OAA2B,sBAU7B,IAAMC,GAA4C,CAAC,CACtD,SAAAC,EAAW,GACX,SAAAC,KACGC,CACP,IAAM,CACF,IAAMC,EAAYN,GAAa,EAE/B,OACIH,GAAA,cAACC,GAAA,CACG,KAAK,UACL,KAAMD,GAAA,cAACE,GAAA,IAAe,EACtB,cAAaE,GAAoB,aAChC,GAAGI,GAEH,CAACF,IAAaC,GAAA,KAAAA,EAAYE,EAAU,iBAAkB,QAAQ,EACnE,CAER,EC/BA,OAAOC,OAAW,QAClB,OAAS,UAAAC,OAAc,OACvB,OAAS,gBAAAC,OAAoB,oBAC7B,OAAS,gBAAAC,OAAoB,kBAC7B,OAAS,uBAAAC,OAA2B,sBAU7B,IAAMC,GAAwC,CAAC,CAClD,SAAAC,EAAW,GACX,SAAAC,KACGC,CACP,IAAM,CACF,IAAMC,EAAYN,GAAa,EAE/B,OACIH,GAAA,cAACC,GAAA,CACG,KAAK,UACL,KAAMD,GAAA,cAACE,GAAA,IAAa,EACpB,cAAaE,GAAoB,WAChC,GAAGI,GAEH,CAACF,IAAaC,GAAA,KAAAA,EAAYE,EAAU,eAAgB,MAAM,EAC/D,CAER,EC/BA,OAAOC,OAAW,QAClB,OAAS,UAAAC,OAAc,OACvB,OAAS,sBAAAC,OAA0B,oBACnC,OACI,UAAAC,GACA,iBAAAC,GACA,gBAAAC,GACA,eAAAC,GACA,oBAAAC,GACA,iBAAAC,GACA,WAAAC,OACG,kBACP,OAAS,uBAAAC,OAA2B,sBAW7B,IAAMC,GAA0C,CAAC,CACpD,wBAAyBC,EACzB,SAAUC,EACV,aAAAC,EACA,SAAAC,EAAW,GACX,cAAAC,EACA,KAAAC,EACA,SAAAC,EACA,QAAAC,KACGC,CACP,IAAM,CAjCN,IAAAC,EAAAC,EAkCI,IAAMC,GAAuBF,EAAAL,GAAA,YAAAA,EAAe,UAAf,KAAAK,EAA0B,GACjDG,GAAqBF,EAAAN,GAAA,YAAAA,EAAe,qBAAf,KAAAM,EAAqC,GAC1D,CAAE,SAAUG,CAAiB,EAAIrB,GAAc,EAC/CsB,EAAalB,GAAc,EAC3BmB,EAAOlB,GAAQ,EACf,CAAE,KAAMmB,CAAW,EAAIrB,GAAiB,EAExCsB,EAAaH,IAAe,SAAWE,EAAaD,EAEpDG,EAAYzB,GAAa,EAEzB,CAAE,GAAA0B,EAAI,SAAAC,CAAS,EAAI1B,GACrBO,GAAA,KAAAA,EAAyBD,CAC7B,EAEM,CAAE,KAAAqB,CAAK,EAAI9B,GAAO,CACpB,SAAU6B,GAAA,YAAAA,EAAU,KACpB,OAAQ,SACR,OAAQ,CAAE,GAAIlB,GAAA,KAAAA,EAAgBiB,EAAI,SAAAC,CAAS,EAC3C,aAAc,CACV,QAAST,CACb,CACJ,CAAC,EAEKW,EAA4B,IAC1BD,GAAA,MAAAA,EAAM,IAAY,GACbA,GAAA,MAAAA,EAAM,OAAeA,EAAK,OAExBH,EACH,yBACA,qCACJ,EAGFK,EACFH,IAAalB,GAAgBiB,GACvBN,EAAiBO,EAAUlB,GAAA,KAAAA,EAAiBiB,EAAKd,CAAI,EACrD,GAEV,OAAIM,GAAwBC,GAAsB,EAACS,GAAA,MAAAA,EAAM,KAC9C,KAIPjC,GAAA,cAAC6B,EAAA,CACG,GAAIM,EACJ,QAAS,GACT,QAAUC,GAA6C,CACnD,IAAIH,GAAA,YAAAA,EAAM,OAAQ,GAAO,CACrBG,EAAE,eAAe,EACjB,MACJ,CACIjB,IACAiB,EAAE,eAAe,EACjBjB,EAAQiB,CAAC,EAEjB,GAEApC,GAAA,cAACC,GAAA,CACG,KAAMD,GAAA,cAACE,GAAA,IAAmB,EAC1B,UAAU+B,GAAA,YAAAA,EAAM,OAAQ,GACxB,MAAOC,EAA0B,EACjC,cAAaxB,GAAoB,YAChC,GAAGU,GAEH,CAACL,IAAaG,GAAA,KAAAA,EAAYY,EAAU,gBAAiB,OAAO,EACjE,CACJ,CAER,ECvGA,OAAOO,OAAW,QAClB,OAAS,UAAAC,GAAQ,UAAAC,OAAc,OAC/B,OAAS,kBAAAC,OAAsB,oBAC/B,OAAS,gBAAAC,OAAoB,kBAC7B,OAAS,uBAAAC,OAA2B,sBAW7B,IAAMC,GAA4C,CAAC,CACtD,YAAAC,EACA,YAAAC,EACA,SAAAC,EAAW,GACX,SAAAC,CACJ,IAAM,CACF,IAAMC,EAAYP,GAAa,EAE/B,OACIJ,GAAA,cAACE,GAAA,CAAQ,GAAGK,GACRP,GAAA,cAACC,GAAA,CACG,KAAMD,GAAA,cAACG,GAAA,IAAe,EACtB,cAAaE,GAAoB,aAChC,GAAGG,GAEH,CAACC,IACGC,GAAA,KAAAA,EAAYC,EAAU,iBAAkB,QAAQ,EACzD,CACJ,CAER,ECnCA,OAAOC,OAAW,QAClB,OAAS,SAAAC,OAAa,OACtB,OACI,gBAAAC,GACA,4BAAAC,GACA,oBAAAC,GACA,iBAAAC,GACA,eAAAC,OACG,kBAWA,IAAMC,GAA4B,CAAC,CACtC,UAAAC,EACA,MAAAC,EACA,SAAAC,EACA,kBAAAC,EACA,SAAUC,EACV,aAAAC,EACA,aAAAC,EACA,YAAAC,EACA,WAAYC,EACZ,kBAAAC,EACA,cAAAC,CACJ,IAAM,CA/BN,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAgCI,IAAMC,EAAYC,GAAa,EACzB,CAAE,QAAS,CAAE,WAAYC,CAAiB,EAAI,CAAC,CAAE,EACnDC,GAAiB,EAEfC,EAAaC,GAAc,EAE3B,CAAE,SAAAC,CAAS,EAAIC,GAAYtB,CAAiB,EAE5CuB,EACF3B,GAAA,KAAAA,IACEW,EAAAc,GAAA,YAAAA,EAAU,YAAV,KAAAd,EAAuB,CAAC,EAACc,GAAA,MAAAA,EAAU,UAAWtB,EAE9CyB,EACF,OAAOpB,EAAwB,IACzBa,EACAb,EAEJqB,EAAeF,EACjBG,GAAA,cAACC,GAAA,CACG,KAAK,SACL,SACIR,IAAe,SACTE,GAAA,YAAAA,EAAU,OACVb,EAAAa,GAAA,YAAAA,EAAU,aAAV,KAAAb,EAAwBa,GAAA,YAAAA,EAAU,KAE3C,GAAGtB,EACR,EACA,KAEJ,OACI2B,GAAA,cAAC,OAAK,GAAIzB,GAAA,KAAAA,EAAgB,CAAC,GACvByB,GAAA,cAACE,GAAA,CACG,MAAO,GACP,MACI/B,GAAA,KAAAA,EACAkB,EACI,GAAGM,GAAA,YAAAA,EAAU,mBACbQ,IACIhB,GAAAD,GAAAD,GAAAF,EAAAY,GAAA,YAAAA,EAAU,OAAV,YAAAZ,EAAgB,QAAhB,KAAAE,GACID,EAAAW,GAAA,YAAAA,EAAU,UAAV,YAAAX,EAAmB,QADvB,KAAAE,EAEIS,GAAA,YAAAA,EAAU,QAFd,KAAAR,EAGIQ,GAAA,YAAAA,EAAU,KACd,QACJ,CACJ,EAEJ,MACIf,EACIoB,GAAA,cAACI,GAAA,CAAM,KAAI,GAAE,GAAGzB,GACX,OAAOC,GAAkB,WACpBA,EAAc,CACV,eAAgBmB,CACpB,CAAC,EACDnB,CACV,EAEAmB,EAGR,WACI,OAAOD,EAAe,KAClBV,EAAAY,GAAA,cAAAA,GAAA,cAAGF,CAAW,IAAd,KAAAV,EAAqB,OAErBY,GAAA,cAACK,GAAA,IAAW,EAGnB,GAAI5B,GAAA,KAAAA,EAAe,CAAC,GAErBuB,GAAA,cAAC,OAAK,GAAIxB,GAAA,KAAAA,EAAgB,CAAC,GAAKJ,CAAS,CAC7C,CACJ,CAER,ECxGA,OAAOkC,OAAW,QAClB,OAAS,QAAAC,GAAM,SAAAC,GAAO,QAAAC,OAAY,OAClC,OACI,iBAAAC,GACA,gBAAAC,GACA,4BAAAC,GACA,oBAAAC,GACA,iBAAAC,GACA,eAAAC,GACA,WAAAC,OACG,kBAWA,IAAMC,GAAgC,CAAC,CAC1C,MAAAC,EACA,gBAAAC,EACA,SAAAC,EACA,SAAUC,EACV,UAAAC,EAAY,GACZ,WAAYC,EACZ,aAAAC,EACA,YAAAC,EACA,aAAAC,EACA,kBAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,cAAAC,EACA,OAAQC,CACZ,IAAM,CApCN,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAqCI,IAAMC,EAAYC,GAAa,EACzB,CAAE,QAAS,CAAE,WAAYC,CAAiB,EAAI,CAAC,CAAE,EACnDC,GAAiB,EAEfC,EAAaC,GAAc,EAC3BC,EAAOC,GAAQ,EACf,CAAE,OAAAC,CAAO,EAAIC,GAAc,EAE3B,CAAE,SAAAC,EAAU,OAAAC,CAAO,EAAIC,GAAY7B,CAAiB,EAEpD8B,EACF,OAAO5B,EAAwB,IACzBiB,EACAjB,EAEJ6B,EACFC,GAAA,cAAAA,GAAA,cACIA,GAAA,cAACC,GAAA,CACI,GAAIhC,EAAY,CAAE,SAAU,EAAK,EAAI,CAAC,EACtC,GAAGH,EACJ,SAAS,SACb,CACJ,EAGJ,OACIkC,GAAA,cAAC,OAAK,GAAI7B,GAAA,KAAAA,EAAgB,CAAC,GACvB6B,GAAA,cAACE,GAAA,CACG,MAAO,GACP,SAAUxB,EACV,OACIkB,IAAW,QAAU,OAAOA,EAAW,IACjCP,IAAe,SACXI,EACAF,EACJ,OAEV,MACI1B,GAAA,KAAAA,EACAoB,EACI,GAAGU,GAAA,YAAAA,EAAU,qBACb,UAAUQ,IACNpB,GAAAD,GAAAD,GAAAF,EAAAgB,GAAA,YAAAA,EAAU,OAAV,YAAAhB,EAAgB,QAAhB,KAAAE,GACID,EAAAe,GAAA,YAAAA,EAAU,UAAV,YAAAf,EAAmB,QADvB,KAAAE,EAEIa,GAAA,YAAAA,EAAU,QAFd,KAAAZ,EAGIY,GAAA,YAAAA,EAAU,KACd,UACJ,GACJ,EAEJ,WACI,OAAOG,EAAe,KAClBd,EAAAgB,GAAA,cAAAA,GAAA,cAAGF,CAAW,IAAd,KAAAd,EAAqB,OAErBgB,GAAA,cAACI,GAAA,IAAW,EAGpB,MACIJ,GAAA,cAACK,GAAA,CAAM,KAAI,GAAE,GAAI/B,GAAA,KAAAA,EAAqB,CAAC,GAClCC,EACK,OAAOA,GAAkB,WACrBA,EAAc,CACV,eAAgB,IACpB,CAAC,EACDA,EACJ,IACV,EAEH,GAAIH,GAAA,KAAAA,EAAe,CAAC,GAErB4B,GAAA,cAACM,GAAA,CAAK,SAAUrC,GACZ+B,GAAA,cAACO,GAAA,CACG,SAAU,GACV,QAAS,CACLP,GAAA,cAACK,GAAA,CACG,IAAI,iBACJ,MAAO,CAAE,MAAO,QAAS,YAAa,EAAG,EACxC,GAAI7B,GAAA,KAAAA,EAAqB,CAAC,GAE1BC,EACK,OAAOA,GAAkB,WACrBA,EAAc,CACV,eACIsB,CACR,CAAC,EACDtB,EACJsB,CACV,CACJ,EACC,GAAI1B,GAAA,KAAAA,EAAgB,CAAC,GAErBN,CACL,CACJ,CACJ,CACJ,CAER,ECtIA,OAAOyC,MAAW,QAElB,OAAS,QAAAC,GAAM,SAAAC,GAAO,QAAAC,OAAY,OAClC,OACI,mBAAAC,GACA,iBAAAC,GACA,gBAAAC,GACA,4BAAAC,GACA,oBAAAC,GACA,iBAAAC,GACA,WAAAC,GACA,eAAAC,GACA,SAAAC,GACA,aAAAC,OACG,kBAkBA,IAAMC,GAA4B,CAAC,CACtC,MAAAC,EACA,gBAAAC,EACA,aAAcC,EACd,aAAAC,EACA,SAAAC,EACA,kBAAAC,EACA,UAAAC,EACA,SAAUC,EACV,UAAAC,EAAY,GACZ,iBAAAC,EACA,WAAYC,EACZ,aAAAC,EACA,YAAAC,EACA,aAAAC,EACA,kBAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,cAAAC,EACA,OAAQC,CACZ,IAAM,CApDN,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAAC,GAAAC,GAqDI,IAAMC,EAAYC,GAAa,EACzB,CAAE,QAAS,CAAE,WAAYC,CAAiB,EAAI,CAAC,CAAE,EACnDC,GAAiB,EACf,CAAE,aAAcC,CAAoB,EAAIC,GAAgB,EACxDC,EAAelC,GAAA,KAAAA,EAAoBgC,EAEnCG,EAAaC,GAAc,EAC3BC,EAAOC,GAAQ,EACfC,EAAKC,GAAM,EACX,CAAE,OAAAC,EAAQ,KAAMC,CAAa,EAAIC,GAAc,EAE/C,CACF,SAAAC,EACA,OAAAC,EACA,GAAIC,CACR,EAAIC,GAAY1C,CAAiB,EAE3B2C,EAAaC,GAAU,CACzB,SAAAL,EACA,OAAQ,MACZ,CAAC,EAEKM,EAAKjD,GAAA,KAAAA,EAAgB6C,EAErBK,EACF,OAAO3C,EAAwB,IACzBsB,EACAtB,EAEJ4C,EACFhD,GAAA,KAAAA,IACEc,GAAAD,EAAA2B,GAAA,YAAAA,EAAU,OAAV,YAAA3B,EAAgB,YAAhB,KAAAC,EAA6B0B,GAAA,YAAAA,EAAU,YACrCzC,EAEFkD,EACFC,EAAA,cAAAA,EAAA,cACK,CAACrD,GACEqD,EAAA,cAACC,GAAA,CACI,GAAIjD,EAAY,CAAE,SAAU,EAAK,EAAI,CAAC,EACvC,SACI6B,IAAe,SACTS,GAAA,YAAAA,EAAU,OACVzB,EAAAyB,GAAA,YAAAA,EAAU,aAAV,KAAAzB,EAAwByB,GAAA,YAAAA,EAAU,KAEhD,EAEJU,EAAA,cAACE,GAAA,CACI,GAAIlD,EAAY,CAAE,SAAU,EAAK,EAAI,CAAC,EACvC,SACI6B,IAAe,SACTS,GAAA,YAAAA,EAAU,OACVxB,EAAAwB,GAAA,YAAAA,EAAU,aAAV,KAAAxB,EAAwBwB,GAAA,YAAAA,EAAU,KAE5C,aAAcM,EACd,iBAAkB3C,EACtB,CACJ,EAGEkD,EACFH,EAAA,cAAAA,EAAA,cACKF,GACGE,EAAA,cAACI,GAAA,CACI,GAAIpD,EAAY,CAAE,SAAU,EAAK,EAAI,CAAC,EACvC,SACI6B,IAAe,SACTS,GAAA,YAAAA,EAAU,OACVvB,EAAAuB,GAAA,YAAAA,EAAU,aAAV,KAAAvB,EAAwBuB,GAAA,YAAAA,EAAU,KAE5C,aAAcV,EACd,UAAW,IAAM,CA3HrC,IAAAjB,EAAAC,EA4H4BiB,IAAe,SACfO,GACIxB,GAAAD,EAAA2B,GAAA,YAAAA,EAAU,QAAV,KAAA3B,EAAmB2B,GAAA,YAAAA,EAAU,OAA7B,KAAA1B,EAAqC,EACzC,EAEAqB,EAAG,CAAE,GAAIS,CAAW,CAAC,CAE7B,EACA,aAAcE,EACd,iBAAkB3C,EACjB,GAAGJ,EACR,EAEJmD,EAAA,cAACK,GAAA,CACI,GAAIrD,EAAY,CAAE,SAAU,EAAK,EAAI,CAAC,EACtC,GAAGP,EACR,CACJ,EAGJ,OACIuD,EAAA,cAAC,OAAK,GAAI7C,GAAA,KAAAA,EAAgB,CAAC,GACvB6C,EAAA,cAACM,GAAA,CACG,MAAO,GACP,SAAU5C,EACV,OACI6B,IAAW,QAAU,OAAOA,EAAW,IACjCV,IAAe,SACXM,EACAJ,EACJ,OAEV,MACIvC,GAAA,KAAAA,EACA8B,EACI,GAAGgB,GAAA,YAAAA,EAAU,mBACb,QAAQiB,IACJnC,IAAAD,IAAAD,GAAAF,EAAAsB,GAAA,YAAAA,EAAU,OAAV,YAAAtB,EAAgB,QAAhB,KAAAE,GACID,EAAAqB,GAAA,YAAAA,EAAU,UAAV,YAAArB,EAAmB,QADvB,KAAAE,GAEImB,GAAA,YAAAA,EAAU,QAFd,KAAAlB,GAGIkB,GAAA,YAAAA,EAAU,KACd,UACJ,GACJ,EAEJ,MACIU,EAAA,cAACQ,GAAA,CAAM,KAAI,GAAE,GAAIlD,GAAA,KAAAA,EAAqB,CAAC,GAClCC,EACK,OAAOA,GAAkB,WACrBA,EAAc,CACV,eAAgBwC,CACpB,CAAC,EACDxC,EACJwC,CACV,EAEJ,WACI,OAAOF,EAAe,KAClBxB,GAAA2B,EAAA,cAAAA,EAAA,cAAGH,CAAW,IAAd,KAAAxB,GAAqB,OAErB2B,EAAA,cAACS,GAAA,IAAW,EAGnB,GAAIrD,GAAA,KAAAA,EAAe,CAAC,GAErB4C,EAAA,cAACU,GAAA,CAAK,SAAU1D,GACZgD,EAAA,cAACW,GAAA,CACG,SAAU,GACV,QAAS,CACLX,EAAA,cAACQ,GAAA,CACG,IAAI,iBACJ,KAAI,GACJ,MAAO,CACH,MAAO,QACP,YAAa,EACjB,EACC,GAAIhD,GAAA,KAAAA,EAAqB,CAAC,GAE1BC,EACK,OAAOA,GAAkB,WACrBA,EAAc,CACV,eACI0C,CACR,CAAC,EACD1C,EACJ0C,CACV,CACJ,EACC,GAAI9C,GAAA,KAAAA,EAAgB,CAAC,GAErBT,CACL,CACJ,CACJ,CACJ,CAER,EC5NA,OAAOgE,OAAW,QAClB,OAAS,QAAAC,GAAM,SAAAC,GAAO,QAAAC,OAAY,OAClC,OACI,iBAAAC,GACA,gBAAAC,GACA,4BAAAC,GACA,oBAAAC,GACA,eAAAC,GACA,aAAAC,GACA,iBAAAC,GACA,WAAAC,GACA,SAAAC,OACG,kBAkBA,IAAMC,GAA4B,CAAC,CACtC,MAAAC,EACA,QAAAC,EACA,UAAAC,EACA,UAAAC,EAAY,GACZ,SAAAC,EACA,SAAUC,EACV,aAAAC,EACA,iBAAAC,EACA,WAAYC,EACZ,aAAAC,EACA,YAAAC,EACA,aAAAC,EACA,cAAAC,EACA,cAAAC,EACA,kBAAAC,EACA,kBAAAC,EACA,OAAQC,CACZ,IAAM,CAhDN,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAiDI,IAAMC,EAAYC,GAAa,EACzB,CAAE,QAAS,CAAE,WAAYC,CAAiB,EAAI,CAAC,CAAE,EACnDC,GAAiB,EAEfC,EAAaC,GAAc,EAC3BC,EAAOC,GAAQ,EACfC,EAAKC,GAAM,EACX,CAAE,OAAAC,EAAQ,KAAMC,CAAa,EAAIC,GAAc,EAE/C,CACF,SAAAC,EACA,OAAAC,EACA,GAAIC,CACR,EAAIC,GAAYzC,CAAiB,EAE3B0C,EAAaC,GAAU,CACzB,SAAAL,EACA,OAAQ,MACZ,CAAC,EAEKM,EAAK3C,GAAA,KAAAA,EAAgBuC,EAErBK,EACF,OAAO1C,EAAwB,IACzBwB,EACAxB,EAEJ2C,GACFjC,EAAAhB,GAAA,KAAAA,GAAae,EAAA0B,GAAA,YAAAA,EAAU,OAAV,YAAA1B,EAAgB,YAA7B,KAAAC,EAA0CyB,GAAA,YAAAA,EAAU,UAClDS,GACFjC,EAAAlB,GAAA,KAAAA,EAAW0C,GAAA,YAAAA,EAAU,UAArB,KAAAxB,EAAgC,CAAC,EAACwB,GAAA,MAAAA,EAAU,MAE1CU,EACFC,GAAA,cAAAA,GAAA,cACK,CAAChD,GACEgD,GAAA,cAACC,GAAA,CACG,SACIrB,IAAe,SACTS,GAAA,YAAAA,EAAU,OACVvB,EAAAuB,GAAA,YAAAA,EAAU,aAAV,KAAAvB,EAAwBuB,GAAA,YAAAA,EAAU,KAEhD,EAEHS,GACGE,GAAA,cAACE,GAAA,CACI,GAAIrD,EAAY,CAAE,SAAU,EAAK,EAAI,CAAC,EACvC,SACI+B,IAAe,SACTS,GAAA,YAAAA,EAAU,OACVtB,EAAAsB,GAAA,YAAAA,EAAU,aAAV,KAAAtB,EAAwBsB,GAAA,YAAAA,EAAU,KAE5C,aAAcM,EAClB,EAEHE,GACGG,GAAA,cAACG,GAAA,CACI,GAAItD,EAAY,CAAE,SAAU,EAAK,EAAI,CAAC,EACvC,SACI+B,IAAe,SACTS,GAAA,YAAAA,EAAU,OACVrB,EAAAqB,GAAA,YAAAA,EAAU,aAAV,KAAArB,EAAwBqB,GAAA,YAAAA,EAAU,KAE5C,aAAcM,EACd,UAAW,IAAM,CAhHrC,IAAAhC,GAAAC,GAiH4BgB,IAAe,SACfO,GACIvB,IAAAD,GAAA0B,GAAA,YAAAA,EAAU,QAAV,KAAA1B,GAAmB0B,GAAA,YAAAA,EAAU,OAA7B,KAAAzB,GAAqC,EACzC,EAEAoB,EAAG,CAAE,GAAIS,CAAW,CAAC,CAE7B,EACA,iBAAkBxC,EACtB,EAEJ+C,GAAA,cAACI,GAAA,CACI,GAAIvD,EAAY,CAAE,SAAU,EAAK,EAAI,CAAC,EACvC,SACI+B,IAAe,SACTS,GAAA,YAAAA,EAAU,OACVpB,EAAAoB,GAAA,YAAAA,EAAU,aAAV,KAAApB,EAAwBoB,GAAA,YAAAA,EAAU,KAE5C,aAAcM,EACd,iBAAkB1C,EACtB,CACJ,EAGJ,OACI+C,GAAA,cAAC,OAAK,GAAI3C,GAAA,KAAAA,EAAgB,CAAC,GACvB2C,GAAA,cAACK,GAAA,CACG,MAAO,GACP,SAAU3C,EACV,OACI4B,IAAW,QAAU,OAAOA,EAAW,IACjCV,IAAe,SACXM,EACAJ,EACJ,OAEV,MACIpC,GAAA,KAAAA,EACA8B,EACI,GAAGa,GAAA,YAAAA,EAAU,mBACb,QAAQiB,IACJhC,GAAAD,GAAAD,GAAAF,EAAAmB,GAAA,YAAAA,EAAU,OAAV,YAAAnB,EAAgB,QAAhB,KAAAE,GACID,EAAAkB,GAAA,YAAAA,EAAU,UAAV,YAAAlB,EAAmB,QADvB,KAAAE,EAEIgB,GAAA,YAAAA,EAAU,QAFd,KAAAf,EAGIe,GAAA,YAAAA,EAAU,KACd,UACJ,GACJ,EAEJ,MACIW,GAAA,cAACO,GAAA,CACG,IAAI,gBACJ,KAAI,GACH,GAAI9C,GAAA,KAAAA,EAAqB,CAAC,GAE1BH,EACK,OAAOA,GAAkB,WACrBA,EAAc,CACV,eAAgByC,CACpB,CAAC,EACDzC,EACJyC,CACV,EAEJ,WACI,OAAOH,EAAe,KAClBrB,GAAAyB,GAAA,cAAAA,GAAA,cAAGJ,CAAW,IAAd,KAAArB,GAAqB,OAErByB,GAAA,cAACQ,GAAA,IAAW,EAGnB,GAAIpD,GAAA,KAAAA,EAAe,CAAC,GAErB4C,GAAA,cAACS,GAAA,CAAK,SAAU5D,GACZmD,GAAA,cAACU,GAAA,CACG,SAAU,GACV,QACInD,EACM,CACIyC,GAAA,cAACO,GAAA,CACG,IAAI,iBACJ,KAAI,GACH,GAAG/C,GAEH,OAAOD,GAAkB,WACpBA,EAAc,CACV,eAAgB,IACpB,CAAC,EACDA,CACV,CACJ,EACA,OAET,GAAIJ,GAAA,KAAAA,EAAgB,CAAC,GAErBL,CACL,CACJ,CACJ,CACJ,CAER,ECtNA,OAAO6D,OAAW,QAClB,OAAS,cAAAC,OAAkB,OAE3B,GAAM,CAAE,KAAAC,EAAK,EAAID,GASJE,GAAsC,CAAC,CAAE,MAAAC,KAAUC,CAAK,IAC1DL,GAAA,cAACE,GAAA,CAAM,GAAGG,GAAOD,CAAM,ECblC,OAAOE,OAAW,QAClB,OAAS,OAAAC,OAAW,OASb,IAAMC,GAAoC,CAAC,CAAE,MAAAC,KAAUC,CAAK,IACxDJ,GAAA,cAACC,GAAA,CAAK,GAAGG,GAAOD,GAAA,YAAAA,EAAO,UAAW,ECX7C,OAAOE,OAAW,QAClB,OAAS,cAAAC,OAAkB,OAE3B,GAAM,CAAE,KAAAC,EAAK,EAAID,GAUJE,GAAwC,CAAC,CAAE,MAAAC,KAAUC,CAAK,IAE/DL,GAAA,cAACE,GAAA,CAAK,KAAM,UAAUE,IAAU,GAAGC,GAC9BD,CACL,ECjBR,OAAOE,OAAW,QAClB,OAAS,SAAAC,OAAa,OASf,IAAMC,GAAwC,CAAC,CAClD,MAAAC,EACA,WAAAC,KACGC,CACP,IACWL,GAAA,cAACC,GAAA,CAAO,GAAGI,EAAM,IAAKF,EAAO,MAAOC,EAAY,ECf3D,OAAOE,OAAW,QAClB,OAAS,WAAAC,OAAe,OAExB,OAAS,iBAAAC,GAAe,iBAAAC,OAAqB,oBAStC,IAAMC,GAA4C,CAAC,CACtD,MAAAC,EACA,eAAAC,EAAiB,OACjB,gBAAAC,EAAkB,QAClB,SAAAC,EAAWR,GAAA,cAACE,GAAA,IAAc,EAC1B,UAAAO,EAAYT,GAAA,cAACG,GAAA,IAAc,KACxBO,CACP,IAEQV,GAAA,cAACC,GAAA,CAAQ,MAAOI,EAAQC,EAAiBC,EAAkB,GAAGG,GACzDL,EAAQL,GAAA,cAAC,YAAMQ,CAAS,EAAUR,GAAA,cAAC,YAAMS,CAAU,CACxD,ECvBR,OAAOE,OAAW,QAClB,OAAOC,OAAW,QAClB,OAAS,cAAAC,OAAkB,OAE3B,OAAOC,OAAqB,+BAE5BF,GAAM,OAAOE,EAAe,EAE5B,IAAMC,GAAgBH,GAAM,OAAO,EAStBI,GAAsC,CAAC,CAChD,MAAAC,EACA,QAAAC,EACA,OAAQC,EAAa,OAClBC,CACP,IAAM,CACF,GAAM,CAAE,KAAAC,CAAK,EAAIR,GAEjB,OACIF,GAAA,cAACU,EAAA,CAAM,GAAGD,GACLR,GAAMK,CAAK,EACP,OAAOC,GAAWH,EAAa,EAC/B,OAAOI,CAAU,CAC1B,CAER,EChCA,OAAOG,OAAW,QAUX,IAAMC,GAAsC,CAAC,CAChD,MAAAC,EACA,IAAAC,KACGC,CACP,IAEQC,GAAA,cAACC,GAAA,CAAS,MAAOH,EAAK,MAAOD,EAAQ,GAAGE,GACnCF,GAAA,KAAAA,EAASC,CACd,EClBR,OAAOI,OAAW,QAClB,OAAS,cAAAC,OAAkB,OAE3B,GAAM,CAAE,KAAAC,EAAK,EAAID,GAUJE,GAAoC,CAAC,CAC9C,SAAAC,EACA,MAAAC,KACGC,CACP,IAEQN,GAAA,cAACE,GAAA,CAAK,KAAMG,EAAQ,GAAGC,GAClBF,GAAA,KAAAA,EAAYC,CACjB,ECrBR,OAAOE,OAAW,QAClB,OAAS,cAAAC,OAAkB,OAE3B,GAAM,CAAE,KAAAC,EAAK,EAAID,GAEjB,SAASE,IAAgC,CACrC,MAAO,CAAC,EACJ,OAAO,MAAQ,UACf,MACA,OAAO,KAAK,cAAgB,WAEpC,CASO,IAAMC,GAA0C,CAAC,CACpD,MAAAC,EACA,OAAAC,EACA,QAAAC,KACGC,CACP,IAAM,CACF,IAAMC,EAAS,WAAWJ,EAAM,SAAS,CAAC,EAE1C,OACIL,GAAA,cAACE,GAAA,CAAM,GAAGM,GACLL,GAA8B,EACzBM,EAAO,eAAeH,EAAQC,CAAO,EACrCE,CACV,CAER,ECnCA,OAAOC,OAAW,QAClB,OAAOC,OAAmB,iBAC1B,OAAOC,OAAS,aAST,IAAMC,GAAoD,CAAC,CAC9D,MAAAC,EAAQ,EACZ,IACWJ,GAAA,cAACC,GAAA,CAAc,QAAS,CAACC,EAAG,GAAIE,CAAM,ECdjD,OAAOC,IAAoB,YAAAC,OAAgB,QAC3C,OAAS,UAAAC,GAAQ,SAAAC,OAAa,OAE9B,OAAOC,OAAW,QAClB,OAAS,kBAAAC,OAAsB,oBAC/B,OAAS,gBAAAC,OAAoB,kBAYtB,IAAMC,GAAiDC,GAAU,CACpE,GAAM,CACF,gBAAAC,EACA,QAAAC,EACA,aAAAC,EACA,SAAAC,EACA,aAAAC,EACA,SAAAC,CACJ,EAAIN,EAEE,CAACO,EAAOC,CAAQ,EAAIf,GAA4BY,CAAY,EAC5DI,EAAYX,GAAa,EAEzBY,EAAc,IAAM,CAClBP,IACAK,EAAS,CAAC,CAAC,EACXL,EAAa,EAErB,EAEMQ,EAAW,IAAM,CACnB,IAAMC,EAAeC,EAAYN,CAAK,EAElCO,EACA,OAAOF,GAAiB,SACxBE,EAAO,GAAGF,IACHhB,GAAM,QAAQgB,CAAY,EACjCE,EAAO,CAACF,EAAa,YAAY,CAAC,EAElCE,EAAOF,EAGXX,EAAgBa,CAAI,EAEpBZ,GAAA,MAAAA,GACJ,EAEMW,EAAeN,GAAgBH,EAAWA,EAASG,CAAK,EAAIA,EAG5DQ,EAAYC,GAAW,CACzB,GAAI,OAAOA,GAAM,SAAU,CACvB,GAAI,MAAM,QAAQA,CAAC,EAAG,CAClB,IAAMJ,EAAeC,EAAYG,CAAC,EAElC,OAAAR,EAASI,CAAY,EACdX,EAAgBW,CAAY,CACvC,CAEA,IAAMK,EACF,CAACD,GAAK,CAACA,EAAE,QAAUpB,GAAM,QAAQoB,CAAC,EAC5B,CAAE,OAAQ,CAAE,MAAOA,CAAE,CAAE,EACvBA,EAEJ,CAAE,OAAAE,CAAO,EAAyCD,EAClDL,EAAeC,EAAYK,EAAO,KAAK,EAC7CV,EAASI,CAAY,EACrB,MACJ,CAEA,IAAMA,EAAeC,EAAYG,CAAC,EAElCR,EAASI,CAAY,CACzB,EAEMO,EAAoB3B,GAAM,SAAS,IAAIc,EAAWc,GAChD5B,GAAM,eAAe4B,CAAK,EACnB5B,GAAM,aAAa4B,EAAO,CAC7B,SAAAL,EACA,MAAOF,EAAYN,CAAK,CAC5B,CAAC,EAEEa,CACV,EACD,OACI5B,GAAA,cAAC,OACG,MAAO,CACH,QAAS,GACT,QAAS,OACT,cAAe,SACf,WAAY,UAChB,GAEAA,GAAA,cAAC,OAAI,MAAO,CAAE,aAAc,EAAG,GAAI2B,CAAkB,EACrD3B,GAAA,cAACG,GAAA,KACGH,GAAA,cAACE,GAAA,CAAO,KAAK,UAAU,KAAK,QAAQ,QAAS,IAAMiB,EAAS,GACxDnB,GAAA,cAACK,GAAA,IAAe,EAAE,IAAEY,EAAU,iBAAkB,QAAQ,CAC5D,EACAjB,GAAA,cAACE,GAAA,CAAO,OAAM,GAAC,KAAK,QAAQ,QAAS,IAAMgB,EAAY,GAClDD,EAAU,gBAAiB,OAAO,CACvC,CACJ,CACJ,CAER,EC/GA,OAAOY,IAAS,aAAAC,GAAW,YAAAC,OAAgB,QAC3C,OAAS,SAAAC,GAAO,eAAAC,GAAa,iBAAAC,OAAqB,kBAElD,OAAS,UAAAC,GAAQ,UAAAC,GAAQ,cAAAC,GAAY,SAAAC,GAAO,WAAAC,OAAe,OAC3D,OAAS,sBAAAC,OAA0B,oBACnC,OAAS,iBAAAC,GAAe,gBAAAC,OAAoB,kBAE5C,GAAM,CAAE,KAAAC,EAAK,EAAIN,GAQJO,GAAiD,IAAM,CAChE,GAAM,CAACC,EAAcC,CAAe,EAAIf,GAAiB,EACnDgB,EAAYL,GAAa,EACzB,CAAE,KAAAM,CAAK,EAAIP,GAAc,EACzBQ,EAAKjB,GAAM,EACXkB,EAAahB,GAAc,EAE3B,CAAE,SAAAiB,EAAU,OAAAC,CAAO,EAAInB,GAAY,EAEzC,OAAAH,GAAU,IAAM,CACRqB,GACIC,GACAN,EACIC,EACI,mBACA,CACI,OAAQK,EACR,SAAUD,GAAA,YAAAA,EAAU,IACxB,EACA,sCAAsCC,oBAAyBD,GAAA,YAAAA,EAAU,iBAC7E,CACJ,CAGZ,EAAG,CAACA,EAAUC,CAAM,CAAC,EAGjBvB,GAAA,cAACO,GAAA,CACG,OAAO,MACP,MAAM,MACN,MACIP,GAAA,cAACS,GAAA,CAAM,UAAU,WAAW,KAAK,SAC7BT,GAAA,cAACS,GAAA,KACGT,GAAA,cAACc,GAAA,KACII,EACG,kBACA,6CACJ,CACJ,EACCF,GACGhB,GAAA,cAACU,GAAA,CAAQ,MAAOM,GACZhB,GAAA,cAACW,GAAA,CAAmB,cAAY,0BAA0B,CAC9D,CAER,EACAX,GAAA,cAACM,GAAA,CACG,KAAK,UACL,QAAS,IAAM,CACPe,IAAe,SACfF,EAAK,GAAG,EAERC,EAAG,CAAE,GAAI,GAAI,CAAC,CAEtB,GAECF,EAAU,uBAAwB,WAAW,CAClD,CACJ,EAER,CAER,EC5EA,OAAOM,MAAW,QAClB,OAAyB,yBAAAC,OAA6B,kBACtD,OACI,OAAAC,GACA,OAAAC,GACA,UAAAC,GACA,QAAAC,GACA,cAAAC,GACA,QAAAC,GACA,SAAAC,GACA,UAAAC,GACA,YAAAC,OACG,OACP,OAAS,YAAAC,GAAU,gBAAAC,OAAoB,kBCXhC,IAAMC,GAA8B,CACvC,WAAY,gEACZ,eAAgB,OACpB,EAEaC,GAAiC,CAC1C,SAAU,QACV,OAAQ,MACZ,EAEaC,GAA6B,CACtC,UAAW,SACX,MAAO,UACP,SAAU,OACV,cAAe,SACnB,EAEaC,GAAgC,CACzC,QAAS,OACT,WAAY,SACZ,eAAgB,SAChB,aAAc,MAClB,EDFA,GAAM,CAAE,KAAAC,GAAM,MAAAC,EAAM,EAAIC,GAaXC,GAAsC,IAAM,CACrD,GAAM,CAACC,CAAI,EAAIC,GAAK,QAAoB,EAClCC,EAAYC,GAAa,EAEzBC,EAAeC,GAAsB,EACrC,CAAE,OAAQC,EAAO,UAAAC,CAAU,EAAIC,GAAqB,CACtD,+BAAgC,QAAQJ,GAAA,YAAAA,EAAc,QAAQ,CAClE,CAAC,EAEKK,EACFC,EAAA,cAACb,GAAA,CAAM,MAAO,EAAG,MAAOc,IACnBT,EAAU,oBAAqB,sBAAsB,CAC1D,EAGJ,OACIQ,EAAA,cAACE,GAAA,CAAO,MAAOC,IACXH,EAAA,cAACI,GAAA,CACG,QAAQ,SACR,MAAM,SACN,MAAO,CACH,OAAQ,OACZ,GAEAJ,EAAA,cAACK,GAAA,CAAI,GAAI,IACLL,EAAA,cAAC,OAAI,MAAOM,IACRN,EAAA,cAAC,OAAI,MAAOO,IACRP,EAAA,cAAC,OACG,IAAI,iEACJ,IAAI,cACR,CACJ,EACAA,EAAA,cAACQ,GAAA,CAAK,MAAOT,EAAW,UAAW,CAAE,aAAc,CAAE,GACjDC,EAAA,cAACT,GAAA,CACG,OAAO,WACP,KAAMD,EACN,SAAWmB,GAAW,CAClBb,EAAMa,CAAM,CAChB,EACA,aAAc,GACd,cAAe,CACX,SAAU,EACd,GAEAT,EAAA,cAACT,GAAK,KAAL,CACG,KAAK,WACL,MAAOC,EACH,uBACA,UACJ,EACA,MAAO,CAAC,CAAE,SAAU,EAAK,CAAC,GAE1BQ,EAAA,cAACU,GAAA,CACG,KAAK,QACL,YAAalB,EACT,uBACA,UACJ,EACJ,CACJ,EACAQ,EAAA,cAACT,GAAK,KAAL,CACG,KAAK,WACL,MAAOC,EACH,uBACA,UACJ,EACA,MAAO,CAAC,CAAE,SAAU,EAAK,CAAC,EAC1B,MAAO,CAAE,aAAc,MAAO,GAE9BQ,EAAA,cAACU,GAAA,CACG,KAAK,WACL,YAAY,mDACZ,KAAK,QACT,CACJ,EACAV,EAAA,cAAC,OAAI,MAAO,CAAE,aAAc,MAAO,GAC/BA,EAAA,cAACT,GAAK,KAAL,CACG,KAAK,WACL,cAAc,UACd,QAAO,IAEPS,EAAA,cAACW,GAAA,CACG,MAAO,CACH,SAAU,MACd,GAECnB,EACG,uBACA,aACJ,CACJ,CACJ,EAEAQ,EAAA,cAAC,KACG,MAAO,CACH,MAAO,QACP,SAAU,MACd,EACA,KAAK,KAEJR,EACG,6BACA,kBACJ,CACJ,CACJ,EACAQ,EAAA,cAACY,GAAA,CACG,KAAK,UACL,KAAK,QACL,SAAS,SACT,QAASf,EACT,MAAK,IAEJL,EAAU,qBAAsB,SAAS,CAC9C,CACJ,EACAQ,EAAA,cAAC,OAAI,MAAO,CAAE,UAAW,CAAE,GACvBA,EAAA,cAACd,GAAA,CAAK,MAAO,CAAE,SAAU,EAAG,GACvBM,EACG,wBACA,6BACJ,EAAG,IACHQ,EAAA,cAAC,KAAE,KAAK,IAAI,MAAO,CAAE,WAAY,MAAO,GACnCR,EACG,qBACA,SACJ,CACJ,CACJ,CACJ,CACJ,CACJ,CACJ,CACJ,CACJ,CAER,EE3KA,UAAYqB,MAAW,QAEvB,OAAS,OAAAC,GAAK,OAAAC,GAAK,cAAAC,GAAY,SAAAC,GAAO,UAAAC,OAAc,OACpD,OAAS,gBAAAC,GAAc,kBAAAC,GAAgB,gBAAAC,OAAoB,oBAE3D,IAAMC,GAAiD,CACnD,KAAM,CACF,OAAQ,QACR,gBACI,wFACJ,eAAgB,QAChB,gBAAiB,SACrB,EACA,MAAO,CACH,MAAO,QACP,WAAY,IACZ,SAAU,OACV,aAAc,KAClB,EACA,GAAI,CACA,MAAO,QACP,aAAc,EACd,SAAU,OACV,WAAY,MAChB,EACA,GAAI,CACA,MAAO,QACP,SAAU,MACd,EACA,KAAM,CACF,gBAAiB,QACjB,MAAO,SACX,CACJ,EAEM,CAAE,MAAAC,EAAM,EAAIP,GAQLQ,GAA4C,IAEjD,gBAACV,GAAA,CAAI,MAAM,SAAS,QAAQ,SAAS,MAAOQ,GAAO,MAC/C,gBAACP,GAAA,CAAI,MAAO,CAAE,UAAW,QAAS,GAC9B,gBAAC,OACG,MAAO,CAAE,aAAc,MAAO,EAC9B,IAAI,iEACJ,IAAI,cACR,EACA,gBAACQ,GAAA,CAAM,MAAOD,GAAO,OAAO,kBAAgB,EAC5C,gBAAC,KAAE,MAAOA,GAAO,IAAI,kCAAgC,EACrD,gBAAC,KAAE,MAAOA,GAAO,IAAI,0DACuC,IACxD,gBAAC,QAAK,MAAOA,GAAO,MAAO,WAAY,EAAO,eAAa,IAC3D,gBAAC,QAAK,MAAOA,GAAO,MAAO,UAAW,CAC1C,EACA,gBAACL,GAAA,CACG,KAAK,QACL,KAAI,GACJ,MAAO,CAAE,UAAW,OAAQ,eAAgB,QAAS,GAErD,gBAAC,KACG,KAAK,qBACL,OAAO,SACP,IAAI,cAEJ,gBAACC,GAAA,CAAO,KAAK,QAAQ,KAAM,gBAACC,GAAA,IAAa,GAAI,eAE7C,CACJ,EACA,gBAAC,KACG,KAAK,8BACL,OAAO,SACP,IAAI,cAEJ,gBAACD,GAAA,CAAO,KAAK,QAAQ,KAAM,gBAACE,GAAA,IAAe,GAAI,UAE/C,CACJ,EACA,gBAAC,KACG,KAAK,4BACL,OAAO,SACP,IAAI,cAEJ,gBAACF,GAAA,CAAO,KAAK,QAAQ,KAAM,gBAACG,GAAA,IAAa,GAAI,WAE7C,CACJ,CACJ,CACJ,CACJ,EC7FR,UAAYI,MAAW,QACvB,OAAS,OAAAC,GAAK,OAAAC,GAAK,cAAAC,GAAY,SAAAC,GAAO,UAAAC,OAAc,OACpD,OAAS,gBAAAC,GAAc,kBAAAC,GAAgB,gBAAAC,OAAoB,oBAE3D,IAAMC,GAAiD,CACnD,KAAM,CACF,OAAQ,QACR,gBACI,wFACJ,eAAgB,QAChB,gBAAiB,SACrB,EACA,MAAO,CACH,MAAO,QACP,WAAY,IACZ,SAAU,OACV,aAAc,KAClB,EACA,GAAI,CACA,MAAO,QACP,aAAc,EACd,SAAU,OACV,WAAY,MAChB,EACA,GAAI,CACA,MAAO,QACP,SAAU,MACd,EACA,KAAM,CACF,gBAAiB,QACjB,MAAO,SACX,CACJ,EAEM,CAAE,MAAAC,EAAM,EAAIP,GAKLQ,GAAwB,IAE7B,gBAACV,GAAA,CAAI,MAAM,SAAS,QAAQ,SAAS,MAAOQ,GAAO,MAC/C,gBAACP,GAAA,CAAI,MAAO,CAAE,UAAW,QAAS,GAC9B,gBAAC,OACG,MAAO,CAAE,aAAc,MAAO,EAC9B,IAAI,iEACJ,IAAI,cACR,EACA,gBAACQ,GAAA,CAAM,MAAOD,GAAO,OAAO,kBAAgB,EAC5C,gBAAC,KAAE,MAAOA,GAAO,IAAI,kCAAgC,EACrD,gBAACL,GAAA,CACG,KAAK,QACL,KAAI,GACJ,MAAO,CAAE,UAAW,OAAQ,eAAgB,QAAS,GAErD,gBAAC,KACG,KAAK,qBACL,OAAO,SACP,IAAI,cAEJ,gBAACC,GAAA,CAAO,KAAK,QAAQ,KAAM,gBAACC,GAAA,IAAa,GAAI,eAE7C,CACJ,EACA,gBAAC,KACG,KAAK,8BACL,OAAO,SACP,IAAI,cAEJ,gBAACD,GAAA,CAAO,KAAK,QAAQ,KAAM,gBAACE,GAAA,IAAe,GAAI,UAE/C,CACJ,EACA,gBAAC,KACG,KAAK,4BACL,OAAO,SACP,IAAI,cAEJ,gBAACF,GAAA,CAAO,KAAK,QAAQ,KAAM,gBAACG,GAAA,IAAa,GAAI,WAE7C,CACJ,CACJ,CACJ,CACJ,ECpFR,OAAOI,OAAW,QCAlB,OAAOC,MAAW,QAClB,OAGI,WAAAC,GACA,iBAAAC,GACA,yBAAAC,OACG,kBACP,OACI,OAAAC,GACA,OAAAC,GACA,UAAAC,GACA,QAAAC,GACA,cAAAC,GACA,QAAAC,GACA,SAAAC,GACA,UAAAC,GACA,YAAAC,GAGA,WAAAC,OAEG,OACP,OAAS,YAAAC,GAAU,gBAAAC,GAAc,oBAAAC,OAAwB,kBCrBlD,IAAMC,GAA8B,CACvC,WAAY,gEACZ,eAAgB,OACpB,EAEaC,GAAiC,CAC1C,SAAU,QACV,OAAQ,MACZ,EAEaC,GAA6B,CACtC,UAAW,SACX,MAAO,UACP,aAAc,EACd,SAAU,OACV,cAAe,UACf,aAAc,aACd,QAAS,SACT,aAAc,QACd,WAAY,UAChB,EDKA,GAAM,CAAE,KAAAC,GAAM,MAAAC,EAAM,EAAIC,GASXC,GAAkC,CAAC,CAC5C,UAAAC,EACA,aAAAC,EACA,mBAAAC,EACA,WAAAC,EACA,aAAAC,EACA,aAAAC,EACA,cAAAC,EACA,UAAAC,CACJ,IAAM,CACF,GAAM,CAACC,CAAI,EAAIC,GAAK,QAAwB,EACtCC,EAAYC,GAAa,EACzBC,EAAaC,GAAc,EAC3BC,EAAOC,GAAQ,EACf,CAAE,KAAMC,CAAW,EAAIC,GAAiB,EAExCC,EAAaN,IAAe,SAAWI,EAAaF,EAEpDK,EAAeC,GAAsB,EACrC,CAAE,OAAQC,EAAO,UAAAC,CAAU,EAAIC,GAAyB,CAC1D,+BAAgC,QAAQJ,GAAA,YAAAA,EAAc,QAAQ,CAClE,CAAC,EAEKK,EACFC,EAAA,cAAC5B,GAAA,CAAM,MAAO,EAAG,MAAO6B,IACnBhB,EAAU,oBAAqB,yBAAyB,CAC7D,EAGEiB,EAAkB,IAChB3B,GAAaA,EAAU,OAAS,EAE5ByB,EAAA,cAAAA,EAAA,cACKzB,EAAU,IAAK4B,GAERH,EAAA,cAACI,GAAA,CACG,IAAKD,EAAS,KACd,KAAK,UACL,MAAK,GACL,KAAMA,EAAS,KACf,MAAO,CACH,QAAS,OACT,eAAgB,SAChB,WAAY,SACZ,MAAO,OACP,aAAc,KAClB,EACA,QAAS,IACLP,EAAM,CACF,aAAcO,EAAS,IAC3B,CAAC,GAGJA,EAAS,KACd,CAEP,EACDH,EAAA,cAACK,GAAA,KAASpB,EAAU,sBAAuB,IAAI,CAAE,CACrD,EAGD,KAGLqB,EACFN,EAAA,cAACO,GAAA,CACG,MAAOR,EACP,UAAW,CAAE,aAAc,CAAE,EAC7B,MAAOS,GACN,GAAI7B,GAAA,KAAAA,EAAgB,CAAC,GAErBuB,EAAgB,EACjBF,EAAA,cAAChB,GAAA,CACG,OAAO,WACP,KAAMD,EACN,SAAW0B,GAAWb,EAAMa,CAAM,EAClC,aAAc,GACd,cAAe,CACX,SAAU,EACd,EACC,GAAG3B,GAEJkB,EAAA,cAAChB,GAAK,KAAL,CACG,KAAK,QACL,MAAOC,EAAU,2BAA4B,OAAO,EACpD,MAAO,CACH,CAAE,SAAU,EAAK,EACjB,CACI,KAAM,QACN,QAASA,EACL,gCACA,uBACJ,CACJ,CACJ,GAEAe,EAAA,cAACU,GAAA,CACG,KAAK,QACL,YAAazB,EACT,2BACA,OACJ,EACJ,CACJ,EACAe,EAAA,cAAChB,GAAK,KAAL,CACG,KAAK,WACL,MAAOC,EAAU,8BAA+B,UAAU,EAC1D,MAAO,CAAC,CAAE,SAAU,EAAK,CAAC,EAC1B,MAAO,CAAE,aAAc,MAAO,GAE9Be,EAAA,cAACU,GAAA,CACG,KAAK,WACL,YAAY,mDACZ,KAAK,QACT,CACJ,EACAV,EAAA,cAAC,OACG,MAAO,CACH,QAAS,OACT,eAAgB,gBAChB,aAAc,MAClB,GAECtB,GAAA,KAAAA,EACGsB,EAAA,cAAChB,GAAK,KAAL,CACG,KAAK,WACL,cAAc,UACd,QAAO,IAEPgB,EAAA,cAACW,GAAA,CACG,MAAO,CACH,SAAU,MACd,GAEC1B,EACG,iCACA,aACJ,CACJ,CACJ,EAEHR,GAAA,KAAAA,EACGuB,EAAA,cAACP,EAAA,CACG,MAAO,CACH,SAAU,OACV,WAAY,MAChB,EACA,GAAG,oBAEFR,EACG,qCACA,kBACJ,CACJ,CAER,EACAe,EAAA,cAAChB,GAAK,KAAL,KACGgB,EAAA,cAACI,GAAA,CACG,KAAK,UACL,KAAK,QACL,SAAS,SACT,QAASP,EACT,MAAK,IAEJZ,EAAU,qBAAsB,SAAS,CAC9C,CACJ,CACJ,EACAe,EAAA,cAAC,OAAI,MAAO,CAAE,UAAW,CAAE,GACtBxB,GAAA,KAAAA,EACGwB,EAAA,cAAC7B,GAAA,CAAK,MAAO,CAAE,SAAU,EAAG,GACvBc,EACG,gCACA,6BACJ,EAAG,IACHe,EAAA,cAACP,EAAA,CACG,GAAG,YACH,MAAO,CAAE,WAAY,MAAO,GAE3BR,EAAU,qBAAsB,SAAS,CAC9C,CACJ,CAER,CACJ,EAGJ,OACIe,EAAA,cAACY,GAAA,CAAO,MAAOC,GAAe,GAAIjC,GAAA,KAAAA,EAAgB,CAAC,GAC/CoB,EAAA,cAACc,GAAA,CACG,QAAQ,SACR,MAAM,SACN,MAAO,CACH,OAAQ,OACZ,GAEAd,EAAA,cAACe,GAAA,CAAI,GAAI,IACJlC,EAAgBA,EAAcyB,CAAW,EAAIA,CAClD,CACJ,CACJ,CAER,EE9OA,OAAOU,MAAW,QAClB,OAGI,iBAAAC,GACA,WAAAC,GACA,yBAAAC,OACG,kBACP,OACI,OAAAC,GACA,OAAAC,GACA,UAAAC,GACA,QAAAC,GACA,cAAAC,GACA,QAAAC,GACA,SAAAC,GACA,UAAAC,GAIA,WAAAC,OACG,OACP,OAAS,gBAAAC,GAAc,oBAAAC,GAAkB,eAAAC,OAAmB,kBAI5D,GAAM,CAAE,KAAAC,GAAM,MAAAC,EAAM,EAAIC,GASXC,GAAwC,CAAC,CAClD,UAAAC,EACA,UAAAC,EACA,aAAAC,EACA,aAAAC,EACA,cAAAC,EACA,UAAAC,CACJ,IAAM,CACF,GAAM,CAACC,CAAI,EAAIC,GAAK,QAA2B,EACzCC,EAAYC,GAAa,EACzBC,EAAaC,GAAc,EAC3BC,EAAOC,GAAQ,EACf,CAAE,KAAMC,CAAW,EAAIC,GAAiB,EAExCC,EAAaN,IAAe,SAAWI,EAAaF,EAEpDK,EAAeC,GAAsB,EACrC,CAAE,OAAQC,EAAU,UAAAC,CAAU,EAAIC,GAA+B,CACnE,+BAAgC,QAAQJ,GAAA,YAAAA,EAAc,QAAQ,CAClE,CAAC,EAEKK,EACFC,EAAA,cAAC1B,GAAA,CAAM,MAAO,EAAG,MAAO2B,IACnBhB,EAAU,uBAAwB,0BAA0B,CACjE,EAGEiB,EAAkB,IAChBzB,GAAaA,EAAU,OAAS,EAE5BuB,EAAA,cAAAA,EAAA,cACKvB,EAAU,IAAK0B,GAERH,EAAA,cAACI,GAAA,CACG,IAAKD,EAAS,KACd,KAAK,QACL,MAAK,GACL,KAAMA,EAAS,KACf,MAAO,CACH,QAAS,OACT,eAAgB,SAChB,WAAY,SACZ,MAAO,OACP,aAAc,KAClB,EACA,QAAS,IACLP,EAAS,CACL,aAAcO,EAAS,IAC3B,CAAC,GAGJA,EAAS,KACd,CAEP,EACDH,EAAA,cAACK,GAAA,KAASpB,EAAU,sBAAuB,IAAI,CAAE,CACrD,EAGD,KAGLqB,EACFN,EAAA,cAACO,GAAA,CACG,MAAOR,EACP,UAAW,CAAE,aAAc,CAAE,EAC7B,MAAOS,GACN,GAAI5B,GAAA,KAAAA,EAAgB,CAAC,GAErBsB,EAAgB,EACjBF,EAAA,cAAChB,GAAA,CACG,OAAO,WACP,KAAMD,EACN,SAAW0B,GAAWb,EAASa,CAAM,EACrC,aAAc,GACb,GAAG3B,GAEJkB,EAAA,cAAChB,GAAK,KAAL,CACG,KAAK,QACL,MAAOC,EAAU,uBAAwB,OAAO,EAChD,MAAO,CACH,CAAE,SAAU,EAAK,EACjB,CACI,KAAM,QACN,QAASA,EACL,mCACA,uBACJ,CACJ,CACJ,GAEAe,EAAA,cAACU,GAAA,CACG,KAAK,QACL,YAAazB,EACT,8BACA,OACJ,EACJ,CACJ,EACAe,EAAA,cAAChB,GAAK,KAAL,CACG,KAAK,WACL,MAAOC,EACH,iCACA,UACJ,EACA,MAAO,CAAC,CAAE,SAAU,EAAK,CAAC,EAC1B,MAAO,CAAE,aAAc,MAAO,GAE9Be,EAAA,cAACU,GAAA,CACG,KAAK,WACL,YAAY,mDACZ,KAAK,QACT,CACJ,EACAV,EAAA,cAAC,OACG,MAAO,CACH,QAAS,OACT,eAAgB,gBAChB,aAAc,MAClB,GAECtB,GAAA,KAAAA,EACGsB,EAAA,cAAC3B,GAAA,CACG,MAAO,CACH,SAAU,GACV,WAAY,MAChB,GAECY,EACG,kCACA,kBACJ,EAAG,IACHe,EAAA,cAACP,EAAA,CACG,MAAO,CACH,WAAY,MAChB,EACA,GAAG,UAEFR,EAAU,qBAAsB,SAAS,CAC9C,CACJ,CAER,EAEAe,EAAA,cAAChB,GAAK,KAAL,KACGgB,EAAA,cAACI,GAAA,CACG,KAAK,UACL,KAAK,QACL,SAAS,SACT,QAASP,EACT,MAAK,IAEJZ,EAAU,gCAAiC,SAAS,CACzD,CACJ,CACJ,CACJ,EAGJ,OACIe,EAAA,cAACW,GAAA,CAAO,MAAOC,GAAe,GAAIjC,GAAA,KAAAA,EAAgB,CAAC,GAC/CqB,EAAA,cAACa,GAAA,CACG,QAAQ,SACR,MAAM,SACN,MAAO,CACH,OAAQ,OACZ,GAEAb,EAAA,cAACc,GAAA,CAAI,GAAI,IACJjC,EAAgBA,EAAcyB,CAAW,EAAIA,CAClD,CACJ,CACJ,CAER,ECjNA,OAAOS,OAAW,QAClB,OAGI,iBAAAC,GACA,WAAAC,OACG,kBACP,OACI,OAAAC,GACA,OAAAC,GACA,UAAAC,GACA,QAAAC,GACA,cAAAC,GACA,QAAAC,GACA,SAAAC,GACA,UAAAC,OAIG,OACP,OACI,gBAAAC,GACA,oBAAAC,GACA,qBAAAC,OACG,kBAUP,GAAM,CAAE,KAAAC,GAAM,MAAAC,EAAM,EAAIC,GAOXC,GAAkD,CAAC,CAC5D,UAAAC,EACA,aAAAC,EACA,aAAAC,EACA,cAAAC,EACA,UAAAC,CACJ,IAAM,CACF,GAAM,CAACC,CAAI,EAAIC,GAAK,QAAiC,EAC/CC,EAAYC,GAAa,EACzBC,EAAaC,GAAc,EAC3BC,EAAOC,GAAQ,EACf,CAAE,KAAMC,CAAW,EAAIC,GAAiB,EAExCC,EAAaN,IAAe,SAAWI,EAAaF,EAEpD,CAAE,OAAQK,EAAgB,UAAAC,CAAU,EACtCC,GAA2C,EAEzCC,EACFC,GAAA,cAACvB,GAAA,CAAM,MAAO,EAAG,MAAOwB,IACnBd,EAAU,6BAA8B,uBAAuB,CACpE,EAEEe,EACFF,GAAA,cAACG,GAAA,CACG,MAAOJ,EACP,UAAW,CAAE,aAAc,CAAE,EAC7B,MAAOK,GACN,GAAItB,GAAA,KAAAA,EAAgB,CAAC,GAEtBkB,GAAA,cAACd,GAAA,CACG,OAAO,WACP,KAAMD,EACN,SAAWoB,GAAWT,EAAeS,CAAM,EAC3C,aAAc,GACb,GAAGrB,GAEJgB,GAAA,cAACd,GAAK,KAAL,CACG,KAAK,QACL,MAAOC,EACH,oCACA,OACJ,EACA,MAAO,CACH,CAAE,SAAU,EAAK,EACjB,CACI,KAAM,QACN,QAASA,EACL,yCACA,uBACJ,CACJ,CACJ,GAEAa,GAAA,cAACM,GAAA,CACG,KAAK,QACL,KAAK,QACL,YAAanB,EACT,oCACA,OACJ,EACJ,CACJ,EACAa,GAAA,cAAC,OACG,MAAO,CACH,QAAS,OACT,eAAgB,gBAChB,aAAc,MAClB,GAECpB,GAAA,KAAAA,EACGoB,GAAA,cAACxB,GAAA,CACG,MAAO,CACH,SAAU,GACV,WAAY,MAChB,GAECW,EACG,qCACA,mBACJ,EAAG,IACHa,GAAA,cAACL,EAAA,CACG,MAAO,CACH,WAAY,MAChB,EACA,GAAG,UAEFR,EAAU,qBAAsB,SAAS,CAC9C,CACJ,CAER,EACAa,GAAA,cAACd,GAAK,KAAL,KACGc,GAAA,cAACO,GAAA,CACG,KAAK,UACL,KAAK,QACL,SAAS,SACT,QAASV,EACT,MAAK,IAEJV,EACG,sCACA,yBACJ,CACJ,CACJ,CACJ,CACJ,EAGJ,OACIa,GAAA,cAACQ,GAAA,CAAO,MAAOC,GAAe,GAAI5B,GAAA,KAAAA,EAAgB,CAAC,GAC/CmB,GAAA,cAACU,GAAA,CACG,QAAQ,SACR,MAAM,SACN,MAAO,CACH,OAAQ,OACZ,GAEAV,GAAA,cAACW,GAAA,CAAI,GAAI,IACJ5B,EAAgBA,EAAcmB,CAAW,EAAIA,CAClD,CACJ,CACJ,CAER,ECtKA,OAAOU,OAAW,QAClB,OAGI,yBAAAC,OACG,kBACP,OACI,OAAAC,GACA,OAAAC,GACA,UAAAC,GACA,QAAAC,GACA,cAAAC,GACA,QAAAC,GACA,SAAAC,GACA,UAAAC,OAIG,OACP,OAAS,gBAAAC,GAAc,qBAAAC,OAAyB,kBAIhD,GAAM,CAAE,MAAAC,EAAM,EAAIC,GAaLC,GAAoD,CAAC,CAC9D,aAAAC,EACA,aAAAC,EACA,cAAAC,EACA,UAAAC,CACJ,IAAM,CACF,GAAM,CAACC,CAAI,EAAIC,GAAK,QAAiC,EAC/CC,EAAYC,GAAa,EACzBC,EAAeC,GAAsB,EACrC,CAAE,OAAQC,EAAgB,UAAAC,CAAU,EACtCC,GAA2C,CACvC,+BAAgC,QAAQJ,GAAA,YAAAA,EAAc,QAAQ,CAClE,CAAC,EAECK,EACFC,GAAA,cAACjB,GAAA,CAAM,MAAO,EAAG,MAAOkB,IACnBT,EAAU,6BAA8B,kBAAkB,CAC/D,EAGEU,EACFF,GAAA,cAACG,GAAA,CACG,MAAOJ,EACP,UAAW,CAAE,aAAc,CAAE,EAC7B,MAAOK,GACN,GAAIjB,GAAA,KAAAA,EAAgB,CAAC,GAEtBa,GAAA,cAACT,GAAA,CACG,OAAO,WACP,KAAMD,EACN,SAAWe,GAAWT,EAAeS,CAAM,EAC3C,aAAc,GACb,GAAGhB,GAEJW,GAAA,cAACT,GAAK,KAAL,CACG,KAAK,WACL,MAAOC,EACH,uCACA,cACJ,EACA,MAAO,CAAC,CAAE,SAAU,EAAK,CAAC,EAC1B,MAAO,CAAE,aAAc,MAAO,GAE9BQ,GAAA,cAACM,GAAA,CACG,KAAK,WACL,YAAY,mDACZ,KAAK,QACT,CACJ,EACAN,GAAA,cAACT,GAAK,KAAL,CACG,KAAK,kBACL,MAAOC,EACH,8CACA,sBACJ,EACA,YAAW,GACX,aAAc,CAAC,UAAU,EACzB,MAAO,CACH,CACI,SAAU,EACd,EACA,CAAC,CAAE,cAAAe,CAAc,KAAO,CACpB,UAAUC,EAAGC,EAAO,CAChB,MACI,CAACA,GACDF,EAAc,UAAU,IAAME,EAEvB,QAAQ,QAAQ,EAEpB,QAAQ,OACX,IAAI,MACAjB,EACI,sDACA,wBACJ,CACJ,CACJ,CACJ,CACJ,EACJ,EACA,MAAO,CAAE,aAAc,MAAO,GAE9BQ,GAAA,cAACM,GAAA,CACG,KAAK,WACL,YAAY,mDACZ,KAAK,QACT,CACJ,EACAN,GAAA,cAACT,GAAK,KAAL,KACGS,GAAA,cAACU,GAAA,CACG,KAAK,UACL,KAAK,QACL,SAAS,SACT,QAASb,EACT,MAAK,IAEJL,EACG,sCACA,QACJ,CACJ,CACJ,CACJ,CACJ,EAGJ,OACIQ,GAAA,cAACW,GAAA,CAAO,MAAOC,GAAe,GAAI1B,GAAA,KAAAA,EAAgB,CAAC,GAC/Cc,GAAA,cAACa,GAAA,CACG,QAAQ,SACR,MAAM,SACN,MAAO,CACH,OAAQ,OACZ,GAEAb,GAAA,cAACc,GAAA,CAAI,GAAI,IACJ1B,EAAgBA,EAAcc,CAAW,EAAIA,CAClD,CACJ,CACJ,CAER,EL3IO,IAAMa,GAAiCC,GAAU,CACpD,GAAM,CAAE,KAAAC,CAAK,EAAID,EAcjB,OAAOE,GAAA,cAAAA,GAAA,eAbY,IAAM,CACrB,OAAQD,OACC,WACD,OAAOC,GAAA,cAACC,GAAA,CAAc,GAAGH,EAAO,MAC/B,iBACD,OAAOE,GAAA,cAACE,GAAA,CAAoB,GAAGJ,EAAO,MACrC,iBACD,OAAOE,GAAA,cAACG,GAAA,CAAoB,GAAGL,EAAO,UAEtC,OAAOE,GAAA,cAACI,GAAA,CAAW,GAAGN,EAAO,EAEzC,GAEqB,CAAE,CAC3B,EMlCA,OAAOO,OAAW,QAClB,OACI,iBAAAC,GACA,WAAAC,GACA,oBAAAC,GACA,oBAAAC,GACA,iBAAAC,GACA,eAAAC,GACA,0BAAAC,OACG,kBAGP,OACI,cAAcC,OAEX,OACP,OAAS,gBAAAC,OAAoB,oBAItB,IAAMC,GAAwC,CAAC,CAClD,gBAAAC,EACA,SAAAC,EAAW,GACX,UAAAC,EAAY,GACZ,KAAAC,CACJ,IAAM,CAzBN,IAAAC,EAAAC,EAAAC,EA0BI,IAAMC,EAAab,GAAc,EAC3B,CAAE,YAAAc,CAAY,EAAIlB,GAAc,CAClC,KAAAa,CACJ,CAAC,EACKM,EAAOlB,GAAQ,EACf,CAAE,KAAMmB,CAAW,EAAIjB,GAAiB,EACxC,CAAE,aAAAkB,CAAa,EAAInB,GAAiB,EAEpC,CAAE,UAAAoB,CAAU,EAAIjB,GAAY,EAE5BkB,EAAoBjB,GAAuB,IAAKgB,CAAS,EAEzDE,EAAaP,IAAe,SAAWG,EAAaD,EAE1D,OAAID,EAAY,SAAW,EAChB,KAIPnB,GAAA,cAACQ,GAAA,CAAgB,GAAGG,GACfC,IAAaU,GAAgBE,EAAkB,QAC5CxB,GAAA,cAACQ,GAAe,KAAf,KACGR,GAAA,cAACyB,EAAA,CAAW,GAAG,MACVR,GAAAD,GAAAD,EAAAS,GAAA,YAAAA,EAAmB,WAAnB,YAAAT,EAA6B,OAA7B,YAAAC,EAAmC,OAAnC,KAAAC,EACGjB,GAAA,cAACS,GAAA,IAAa,CAEtB,CACJ,EAEHU,EAAY,IAAI,CAAC,CAAE,MAAAO,EAAO,KAAAC,EAAM,KAAAC,CAAK,IAE9B5B,GAAA,cAACQ,GAAe,KAAf,CAAoB,IAAKkB,GACrB,CAACb,GAAac,EACdC,EACG5B,GAAA,cAACyB,EAAA,CAAW,GAAIG,GAAOF,CAAM,EAE7B1B,GAAA,cAAC,YAAM0B,CAAM,CAErB,CAEP,CACL,CAER,ECrEA,OAAOG,OAAmB,QAC1B,OACI,cAAcC,OAEX,yBACP,OAAS,UAAAC,GAAQ,cAAAC,OAAkB,OACnC,OAAS,qBAAAC,OAAyB,oBAI3B,IAAMC,GAAsC,CAAC,CAAE,SAAAC,KAAaC,CAAM,IAAM,CAC3E,IAAMC,EACF,OAAOD,EAAM,SAAa,IACtBP,GAAA,cAACE,GAAA,CAAO,KAAK,OAAO,KAAMF,GAAA,cAACI,GAAA,IAAkB,EAAI,EAEjDG,EAAM,SAGRE,EACF,OAAOF,EAAM,OAAU,SACnBP,GAAA,cAACG,GAAW,MAAX,CAAiB,MAAO,EAAG,MAAO,CAAE,aAAc,CAAE,GAChDI,EAAM,KACX,EAEAA,EAAM,MAGRG,EACF,OAAOH,EAAM,OAAU,SACnBP,GAAA,cAACG,GAAW,MAAX,CACG,MAAO,EACP,KAAK,YACL,MAAO,CAAE,aAAc,CAAE,GAExBI,EAAM,QACX,EAEAA,EAAM,SAGd,OACIP,GAAA,cAACC,GAAA,CACI,GAAGM,EACJ,SAAUC,EACV,MAAOC,EACP,SAAUC,EACV,MAAO,CAAE,QAAS,EAAG,GAAGH,EAAM,KAAM,GAEnCD,CACL,CAER,ECjDO,IAAMK,GAAqBC,GAA2C,CACzE,GAAM,CAAE,SAAAC,CAAS,EAAID,EAErB,MAAO,CAAC,GAAGC,CAAQ,CACvB","names":["React","Form","useFormSF","useFormCore","useWarnAboutChange","pickNotDeprecated","useForm","action","resource","onMutationSuccessProp","onMutationError","submitOnEnter","warnWhenUnsavedChangesProp","redirect","successNotification","errorNotification","meta","metaData","liveMode","liveParams","mutationMode","dataProviderName","onLiveEvent","invalidates","undoableTimeout","queryOptions","createMutationOptions","updateMutationOptions","idFromProps","_a","_b","formAnt","formSF","form","useFormCoreResult","formLoading","onFinish","queryResult","id","warnWhenUnsavedChangesRefine","setWarnWhen","warnWhenUnsavedChanges","onKeyUp","event","onValuesChange","changeValues","saveButtonProps","values","error","useCallback","useEffect","useModalFormSF","useMutationMode","useTranslate","useWarnAboutChange","userFriendlyResourceName","useResource","useParsed","useGo","React","useModalForm","mutationModeProp","syncWithLocation","rest","_a","_b","_c","_d","_e","_f","_g","_h","initiallySynced","useFormProps","useForm","form","formProps","id","setId","formLoading","mutationResult","resource","actionFromParams","useResource","parsed","useParsed","go","useGo","action","syncingId","syncWithLocationKey","translate","useTranslate","warnWhen","setWarnWhen","useWarnAboutChange","sunflowerUseModal","useModalFormSF","visible","close","show","modalForm","modalFormProps","modalProps","openStatus","idFromParams","mutationModeContext","useMutationMode","mutationMode","isLoadingMutation","isSuccessMutation","resetMutation","useEffect","saveButtonPropsSF","handleClose","useCallback","handleShow","userFriendlyResourceName","useCallback","useEffect","useState","useMutationMode","useTranslate","useWarnAboutChange","useResource","useParsed","useGo","React","useDrawerForm","mutationModeProp","syncWithLocation","rest","_a","_b","_c","initiallySynced","useFormProps","useForm","form","formProps","formLoading","mutationResult","id","setId","resource","actionFromParams","useResource","parsed","useParsed","go","useGo","action","syncingId","syncWithLocationKey","open","setOpen","useState","_d","openStatus","idFromParams","translate","useTranslate","warnWhen","setWarnWhen","useWarnAboutChange","mutationModeContext","useMutationMode","mutationMode","isLoadingMutation","isSuccessMutation","resetMutation","useEffect","saveButtonProps","deleteButtonProps","handleClose","useCallback","handleShow","useStepsFormSF","useStepsForm","props","useFormProps","useForm","form","formProps","stepsPropsSunflower","useStepsFormSF","values","_a","Children","createElement","Fragment","Grid","Form","useFormSF","useLiveMode","useTableCore","pickNotDeprecated","getDefaultFilterCore","getDefaultSortOrderCore","getDefaultSortOrder","columnName","sorter","sort","getDefaultFilter","filters","operatorType","mapAntdSorterToCrudSorting","_a","crudSorting","a","b","_b","_c","_d","item","field","mapAntdFilterToCrudFilter","tableFilters","prevFilters","initialFilters","crudFilters","mapInitialFilter","acc","value","operator","i","p","useLink","useRouterContext","useRouterType","React","PaginationLink","to","element","LegacyLink","routerType","Link","e","useTable","onSearch","initialCurrent","initialPageSize","hasPagination","pagination","initialSorter","permanentSorter","initialFilter","permanentFilter","defaultSetFilterBehavior","filtersFromProp","sortersFromProp","syncWithLocation","resource","successNotification","errorNotification","queryOptions","liveModeFromProp","onLiveEvent","liveParams","meta","metaData","dataProviderName","_a","tableQueryResult","current","setCurrent","pageSize","setPageSize","filters","setFilters","sorters","setSorters","sorter","setSorter","createLinkForSyncWithLocation","pageCount","useTableCore","pickNotDeprecated","breakpoint","Grid","form","Form","formSF","useFormSF","liveMode","useLiveMode","hasPaginationString","isPaginationEnabled","preferredInitialFilters","data","isFetched","isLoading","onChange","paginationState","tableFilters","crudFilters","mapAntdFilterToCrudFilter","crudSorting","mapAntdSorterToCrudSorting","onFinish","value","searchFilters","antdPagination","page","type","element","link","createElement","PaginationLink","elementChildren","Children","Fragment","useEditableTable","props","table","useTable","edit","useForm","editId","setId","saveButtonProps","id","useSelectCore","useSelect","props","queryResult","defaultValueQueryResult","onSearch","options","useSelect","pickNotDeprecated","useCheckboxGroup","resource","sort","sorters","filters","optionLabel","optionValue","queryOptions","fetchSize","pagination","liveMode","defaultValue","onLiveEvent","liveParams","meta","metaData","dataProviderName","queryResult","options","pickNotDeprecated","useSelect","useRadioGroup","resource","sort","sorters","filters","optionLabel","optionValue","queryOptions","fetchSize","pagination","liveMode","defaultValue","onLiveEvent","liveParams","meta","metaData","dataProviderName","queryResult","options","React","notification","Progress","useTranslate","useResource","useImportCore","pickNotDeprecated","useImport","resourceFromProp","resourceName","mapData","item","paparseOptions","batchSize","onFinish","meta","metaData","dataProviderName","onProgressFromProp","_a","t","resource","mutationResult","isLoading","handleChange","totalAmount","processedAmount","description","Children","createElement","Fragment","Form","Grid","useTableCore","pickNotDeprecated","useLiveMode","useSimpleList","resource","initialCurrent","initialPageSize","pagination","hasPagination","initialSorter","permanentSorter","initialFilter","permanentFilter","defaultSetFilterBehavior","filtersFromProp","sortersFromProp","onSearch","queryOptions","syncWithLocation","successNotification","errorNotification","liveModeFromProp","onLiveEvent","liveParams","meta","metaData","dataProviderName","_a","sorters","sorter","filters","current","pageSize","pageCount","setFilters","setCurrent","setPageSize","setSorter","setSorters","createLinkForSyncWithLocation","queryResult","useTableCore","pickNotDeprecated","hasPaginationString","isPaginationEnabled","breakpoint","Grid","liveMode","useLiveMode","form","Form","data","isFetched","isLoading","onChange","page","onFinish","values","searchFilters","antdPagination","type","element","link","createElement","PaginationLink","elementChildren","Children","Fragment","useCallback","useMemo","useState","useFileUploadState","isLoading","setIsloading","onChange","info","mapStatusToLoading","files","file","useCoreModal","useModal","modalProps","show","close","visible","e","_a","React","notification","React","Button","notification","Progress","UndoOutlined","UndoableNotification","notificationKey","message","cancelMutation","undoableTimeout","time","notificationProvider","key","message","description","type","cancelMutation","undoableTimeout","notification","React","UndoableNotification","React","Grid","AntdLayout","React","useState","Layout","Menu","Grid","ConfigProvider","Drawer","Button","DashboardOutlined","LogoutOutlined","UnorderedListOutlined","BarsOutlined","useTranslate","useLogout","useTitle","CanAccess","useIsExistAuthentication","useRouterContext","useMenu","useRefineContext","useLink","useRouterType","useActiveAuthProvider","pickNotDeprecated","drawerButtonStyles","SubMenu","Menu","Sider","TitleFromProps","render","meta","_a","collapsed","setCollapsed","useState","drawerOpen","setDrawerOpen","isExistAuthentication","useIsExistAuthentication","routerType","useRouterType","NewLink","useLink","LegacyLink","useRouterContext","Link","TitleFromContext","useTitle","translate","useTranslate","menuItems","selectedKey","defaultOpenKeys","useMenu","breakpoint","Grid","hasDashboard","useRefineContext","authProvider","useActiveAuthProvider","mutateLogout","useLogout","isMobile","RenderToTitle","Title","renderTreeView","tree","item","icon","label","route","key","name","children","parentName","options","React","CanAccess","UnorderedListOutlined","isSelected","isRoute","pickNotDeprecated","logout","LogoutOutlined","dashboard","DashboardOutlined","items","renderSider","renderMenu","renderDrawerSider","Drawer","Layout","Button","drawerButtonStyles","BarsOutlined","ConfigProvider","React","AntdLayout","Typography","Avatar","Space","useGetIdentity","useActiveAuthProvider","Text","Header","authProvider","user","Layout","children","Header","Sider","Title","Footer","OffLayoutArea","breakpoint","Grid","SiderToRender","HeaderToRender","isSmall","React","AntdLayout","React","useRouterContext","useRouterType","useLink","Title","collapsed","routerType","Link","LegacyLink","React","Button","PlusSquareOutlined","useNavigation","useTranslate","useCan","useResource","useRouterContext","useRouterType","useLink","RefineButtonTestIds","CreateButton","resourceNameFromProps","propResourceNameOrRouteName","hideText","accessControl","meta","children","onClick","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","translate","routerType","Link","LegacyLink","ActiveLink","generateCreateUrl","resource","data","createButtonDisabledTitle","createUrl","e","React","Button","EditOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","RefineButtonTestIds","EditButton","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","accessControl","meta","children","onClick","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","translate","routerType","Link","LegacyLink","ActiveLink","generateEditUrl","id","resource","data","createButtonDisabledTitle","editUrl","e","React","Button","Popconfirm","DeleteOutlined","useDelete","useTranslate","useMutationMode","useCan","useResource","pickNotDeprecated","RefineButtonTestIds","DeleteButton","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","onSuccess","mutationModeProp","children","successNotification","errorNotification","hideText","accessControl","metaData","meta","dataProviderName","confirmTitle","confirmOkText","confirmCancelText","invalidates","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","translate","id","resource","mutationModeContext","mutationMode","mutate","isLoading","variables","data","value","React","Button","RedoOutlined","useOne","useTranslate","useResource","pickNotDeprecated","RefineButtonTestIds","RefreshButton","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","meta","metaData","dataProviderName","children","onClick","rest","translate","resource","id","refetch","isFetching","e","React","Button","EyeOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","RefineButtonTestIds","ShowButton","resourceNameFromProps","propResourceNameOrRouteName","recordItemId","hideText","accessControl","meta","children","onClick","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","generateShowUrl","routerType","Link","LegacyLink","ActiveLink","translate","id","resource","data","createButtonDisabledTitle","showUrl","e","React","Button","BarsOutlined","useCan","useNavigation","useTranslate","userFriendlyResourceName","useResource","useRouterContext","useRouterType","useLink","pickNotDeprecated","RefineButtonTestIds","ListButton","resourceNameFromProps","propResourceNameOrRouteName","hideText","accessControl","meta","children","onClick","rest","_a","_b","_c","_d","_e","_f","_g","_h","accessControlEnabled","hideIfUnauthorized","generateListUrl","routerType","Link","LegacyLink","ActiveLink","translate","resource","data","createButtonDisabledTitle","listUrl","e","React","Button","ExportOutlined","useTranslate","RefineButtonTestIds","ExportButton","hideText","children","rest","translate","React","Button","SaveOutlined","useTranslate","RefineButtonTestIds","SaveButton","hideText","children","rest","translate","React","Button","PlusSquareOutlined","useCan","useNavigation","useTranslate","useResource","useRouterContext","useRouterType","useLink","RefineButtonTestIds","CloneButton","propResourceNameOrRouteName","resourceNameFromProps","recordItemId","hideText","accessControl","meta","children","onClick","rest","_a","_b","accessControlEnabled","hideIfUnauthorized","generateCloneUrl","routerType","Link","LegacyLink","ActiveLink","translate","id","resource","data","createButtonDisabledTitle","cloneUrl","e","React","Button","Upload","ImportOutlined","useTranslate","RefineButtonTestIds","ImportButton","uploadProps","buttonProps","hideText","children","translate","React","Space","useTranslate","userFriendlyResourceName","useRefineContext","useRouterType","useResource","List","canCreate","title","children","createButtonProps","resourceFromProps","wrapperProps","contentProps","headerProps","breadcrumbFromProps","headerButtonProps","headerButtons","_a","_b","_c","_d","_e","_f","_g","_h","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","resource","useResource","isCreateButtonVisible","breadcrumb","defaultExtra","React","CreateButton","PageHeader","userFriendlyResourceName","Space","Breadcrumb","React","Card","Space","Spin","useNavigation","useTranslate","userFriendlyResourceName","useRefineContext","useRouterType","useResource","useBack","Create","title","saveButtonProps","children","resourceFromProps","isLoading","breadcrumbFromProps","wrapperProps","headerProps","contentProps","headerButtonProps","headerButtons","footerButtonProps","footerButtons","goBackFromProps","_a","_b","_c","_d","_e","_f","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","back","useBack","goBack","useNavigation","resource","action","useResource","breadcrumb","defaultFooterButtons","React","SaveButton","PageHeader","userFriendlyResourceName","Breadcrumb","Space","Spin","Card","React","Card","Space","Spin","useMutationMode","useNavigation","useTranslate","userFriendlyResourceName","useRefineContext","useRouterType","useBack","useResource","useGo","useToPath","Edit","title","saveButtonProps","mutationModeProp","recordItemId","children","deleteButtonProps","canDelete","resourceFromProps","isLoading","dataProviderName","breadcrumbFromProps","wrapperProps","headerProps","contentProps","headerButtonProps","headerButtons","footerButtonProps","footerButtons","goBackFromProps","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","translate","useTranslate","globalBreadcrumb","useRefineContext","mutationModeContext","useMutationMode","mutationMode","routerType","useRouterType","back","useBack","go","useGo","goBack","legacyGoList","useNavigation","resource","action","idFromParams","useResource","goListPath","useToPath","id","breadcrumb","isDeleteButtonVisible","defaultHeaderButtons","React","ListButton","RefreshButton","defaultFooterButtons","DeleteButton","SaveButton","PageHeader","userFriendlyResourceName","Space","Breadcrumb","Spin","Card","React","Card","Space","Spin","useNavigation","useTranslate","userFriendlyResourceName","useRefineContext","useResource","useToPath","useRouterType","useBack","useGo","Show","title","canEdit","canDelete","isLoading","children","resourceFromProps","recordItemId","dataProviderName","breadcrumbFromProps","contentProps","headerProps","wrapperProps","headerButtons","footerButtons","footerButtonProps","headerButtonProps","goBackFromProps","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","translate","useTranslate","globalBreadcrumb","useRefineContext","routerType","useRouterType","back","useBack","go","useGo","goBack","legacyGoList","useNavigation","resource","action","idFromParams","useResource","goListPath","useToPath","id","breadcrumb","isDeleteButtonVisible","isEditButtonVisible","defaultHeaderButtons","React","ListButton","EditButton","DeleteButton","RefreshButton","PageHeader","userFriendlyResourceName","Space","Breadcrumb","Spin","Card","React","Typography","Text","TextField","value","rest","React","Tag","TagField","value","rest","React","Typography","Link","EmailField","value","rest","React","Image","ImageField","value","imageTitle","rest","React","Tooltip","CheckOutlined","CloseOutlined","BooleanField","value","valueLabelTrue","valueLabelFalse","trueIcon","falseIcon","rest","React","dayjs","Typography","LocalizedFormat","defaultLocale","DateField","value","locales","dateFormat","rest","Text","React","FileField","title","src","rest","React","UrlField","React","Typography","Link","UrlField","children","value","rest","React","Typography","Text","toLocaleStringSupportsOptions","NumberField","value","locale","options","rest","number","React","ReactMarkdown","gfm","MarkdownField","value","React","useState","Button","Space","dayjs","FilterOutlined","useTranslate","FilterDropdown","props","setSelectedKeys","confirm","clearFilters","mapValue","selectedKeys","children","value","setValue","translate","clearFilter","onFilter","_mappedValue","mappedValue","keys","onChange","e","changeEvent","target","childrenWithProps","child","React","useEffect","useState","useGo","useResource","useRouterType","Button","Result","Typography","Space","Tooltip","InfoCircleOutlined","useNavigation","useTranslate","Text","ErrorComponent","errorMessage","setErrorMessage","translate","push","go","routerType","resource","action","React","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","Checkbox","useLogin","useTranslate","layoutStyles","containerStyles","titleStyles","imageContainer","Text","Title","Typography","LoginPage","form","Form","translate","useTranslate","authProvider","useActiveAuthProvider","login","isLoading","useLogin","CardTitle","React","titleStyles","Layout","layoutStyles","Row","Col","containerStyles","imageContainer","Card","values","Input","Checkbox","Button","React","Row","Col","Typography","Space","Button","ReadOutlined","FolderOutlined","TeamOutlined","styles","Title","ReadyPage","React","Row","Col","Typography","Space","Button","ReadOutlined","FolderOutlined","TeamOutlined","styles","Title","WelcomePage","React","React","useLink","useRouterType","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","Checkbox","Divider","useLogin","useTranslate","useRouterContext","layoutStyles","containerStyles","titleStyles","Text","Title","Typography","LoginPage","providers","registerLink","forgotPasswordLink","rememberMe","contentProps","wrapperProps","renderContent","formProps","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","authProvider","useActiveAuthProvider","login","isLoading","useLogin","CardTitle","React","titleStyles","renderProviders","provider","Button","Divider","CardContent","Card","containerStyles","values","Input","Checkbox","Layout","layoutStyles","Row","Col","React","useRouterType","useLink","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","Divider","useTranslate","useRouterContext","useRegister","Text","Title","Typography","RegisterPage","providers","loginLink","wrapperProps","contentProps","renderContent","formProps","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","authProvider","useActiveAuthProvider","register","isLoading","useRegister","CardTitle","React","titleStyles","renderProviders","provider","Button","Divider","CardContent","Card","containerStyles","values","Input","Layout","layoutStyles","Row","Col","React","useRouterType","useLink","Row","Col","Layout","Card","Typography","Form","Input","Button","useTranslate","useRouterContext","useForgotPassword","Text","Title","Typography","ForgotPasswordPage","loginLink","wrapperProps","contentProps","renderContent","formProps","form","Form","translate","useTranslate","routerType","useRouterType","Link","useLink","LegacyLink","useRouterContext","ActiveLink","forgotPassword","isLoading","useForgotPassword","CardTitle","React","titleStyles","CardContent","Card","containerStyles","values","Input","Button","Layout","layoutStyles","Row","Col","React","useActiveAuthProvider","Row","Col","Layout","Card","Typography","Form","Input","Button","useTranslate","useUpdatePassword","Title","Typography","UpdatePasswordPage","wrapperProps","contentProps","renderContent","formProps","form","Form","translate","useTranslate","authProvider","useActiveAuthProvider","updatePassword","isLoading","useUpdatePassword","CardTitle","React","titleStyles","CardContent","Card","containerStyles","values","Input","getFieldValue","_","value","Button","Layout","layoutStyles","Row","Col","AuthPage","props","type","React","RegisterPage","ForgotPasswordPage","UpdatePasswordPage","LoginPage","React","useBreadcrumb","useLink","useRefineContext","useRouterContext","useRouterType","useResource","matchResourceFromRoute","AntdBreadcrumb","HomeOutlined","Breadcrumb","breadcrumbProps","showHome","hideIcons","meta","_a","_b","_c","routerType","breadcrumbs","Link","LegacyLink","hasDashboard","resources","rootRouteResource","ActiveLink","label","icon","href","React","AntdPageHeader","Button","Typography","ArrowLeftOutlined","PageHeader","children","props","backIcon","title","subtitle","getValueFromEvent","event","fileList"]}